Ok, so I fixed up the quad sata drivers locally based partially on the penta sata drivers. I compiled libmraa locally as well, as I couldn’t get it out of the repos that are described on the wiki, but I could be confused.
With my updates to the drivers, the OLED display and fan control work. However, I’m still only seeing 2/4 disks. Also, here’s the end of my dmesg:
[ 9.576887] scsi host1: uas
[ 9.597398] scsi 1:0:0:0: Direct-Access JMicron Tech 8136 PQ: 0 ANSI: 6
[ 9.599842] scsi 1:0:0:1: Direct-Access JMicron Tech 8136 PQ: 0 ANSI: 6
[ 9.603671] sd 1:0:0:0: [sda] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)
[ 9.605211] sd 1:0:0:1: [sdb] 7814037168 512-byte logical blocks: (4.00 TB/3.64 TiB)
[ 9.606600] sd 1:0:0:0: [sda] Write Protect is off
[ 9.606626] sd 1:0:0:0: [sda] Mode Sense: 67 00 10 08
[ 9.607137] sd 1:0:0:1: [sdb] Write Protect is off
[ 9.607161] sd 1:0:0:1: [sdb] Mode Sense: 67 00 10 08
[ 9.607277] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, supports DPO and FUA
[ 9.607533] xhci-hcd xhci-hcd.9.auto: ERROR Transfer event for disabled endpoint or incorrect stream ring
[ 9.608395] xhci-hcd xhci-hcd.9.auto: @00000000697579b0 00000000 00000000 1b000000 01078000
[ 9.609463] sd 1:0:0:1: [sdb] Write cache: enabled, read cache: enabled, supports DPO and FUA
[ 9.609759] xhci-hcd xhci-hcd.9.auto: ERROR Transfer event for disabled endpoint or incorrect stream ring
[ 9.610614] xhci-hcd xhci-hcd.9.auto: @0000000069757a50 00000000 00000000 1b000000 01078000
[ 9.731414] sda: sda1 sda9
[ 9.732639] sdb: sdb1 sdb9
[ 9.738973] sd 1:0:0:1: [sdb] Attached SCSI disk
[ 9.740655] sd 1:0:0:0: [sda] Attached SCSI disk
Other posts that reference ERROR Transfer event for disabled endpoint or incorrect stream ring
indicate a hardware defect. Am I stuck now?
Relevant section of /boot/hw_intfc.conf
:
intfc:pwm0=on
intfc:pwm1=on
intfc:uart2=off
intfc:uart4=off
intfc:spi1=off
intfc:spi2=off
intfc:i2c2=off
intfc:i2c6=off
intfc:i2c7=on
Relevant update to misc.py
:
def set_mode(pin, mode=1):
try:
pin = mraa.Gpio(pin)
pin.dir(mraa.DIR_OUT)
pin.write(mode)
except Exception as ex:
print(ex)
def disk_turn_on():
blk1 = get_blk()
set_mode(37, 1)
time.sleep(0.5)
set_mode(22, 1)
wait_blk(10)
blk2 = get_blk()
conf['disk'] = sorted(list(set(blk2) - set(blk1)))
def disk_turn_off():
set_mode(37, 0)
time.sleep(0.5)
set_mode(22, 0)
I can share the rest of my changes if it helps.