Vero 4K+ with Kodi 19 won't boot if a particular usb drive is present on the usb hub

I’m having this peculiar problem, I have noticed it only today.
Recently, I’ve upgraded from Kodi 18 to Kodi 19, reinstalling OSMC on my Vero 4K+.
Everything works, BUT I can’t reboot properly.
There is this self-powered disk, a 4TB WD My Passport, connected to my wall powered usb hub, connected to the Vero. It’s formatted with ext4 like all my drives.
If I reboot the machine from the Kodi interface or via ssh via usual commands, it hangs at the famous ‘Please Stand by’ initial screen.

other details:

  • this powered hub has 3 self-powered usb hard drives connected to it; I used this configuration for more than a year with Kodi 18, and I always rebooted without incidents
  • these 3 drivers are mounted via PARTUUID in fstab as soon as OSMC boots up
  • the usb hub (model: AUKEY CB-H6) is not backfeeding and never gave me any problem
  • during the booting process, if I disconnect this drive by hand, wait for the blue screen with the OSMC symbol in the center, and then I reconnect it to the hub, OSMC boots normally
  • the other 2 drives don’t give any problem (another 4TB disk and a 2TB one)
  • if I shutdown the Vero, disconnect the Passport, connect it to a PC (with Debian), mount it, unmount it, reconnect it to the hub and then boot the Vero, everything works (so without manual intervention during powerup time)
  • therefore I’ve thought to use some shutdown script symlinked in /lib/systemd/system-shutdown/, with hdparm or the newest hd-idle: they’ve performed well, but didn’t do the trick.
  • I’ve tried different power plugs (same specs and barrel connector), the problem persists
  • I’ve tried different usb 3 cables for the various connections, nothing has changed
  • BUT if I connect this drive directly to a usb port on the Vero (either the black or the white one) and the hub with the other disks on the other one, everything works.

I’ve read all the threads with similar problems but nothing fixes it for real. Logs seem to record after the ‘Please Stand by’ screen so no help there.
Passing from Kodi 18 to Kodi 19 Matrix, something has changed either in the bootloader or in the shutdown process, so this drive can’t properly detach or boot up from a hub, or something.
I can survive with the aforementioned temporary fix, but if I’ll have to substitute one of the other disks, I’ve run out of usb ports already.

What happens if you connect the Passport to the hub but disconnect one or two of the other hdds and reboot the Vero?

I found this part interesting:

Since you’re using fstab, add nofail to the mount options and see if that helps things.

How long are you waiting in that screen? In the past we saw an issue with certain drives but it would normally boot after 2 minutes delay.

  • if I connect the Passport to the hub but disconnect one or two of the other hdds and reboot the Vero, it hangs at the StandBy screen. I’m sorry I haven’t mentioned before but yes I checked and the culprit is in fact this drive
  • I’m waiting up to 10 minutes on the initial screen, it flashes the words every 8-10 seconds or so
  • I’ve added nofail but it fails to add improvements

this is how its line looks in /etc/fstab now
PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /media/KodiDisk ext4 rw,nofail,nosuid,nodev,relatime,data=ordered,uhelper=udisks 0 0
I remind that I had no problem with kodi 18 on the Vero. the other disks (other models) have same specifications in their entries.
Thank you for the fast replies, anyway.

Have you tried with these options removed? I’ve never used them before, so I’m not sure if they could be an issue. If getting rid of both options help, add them back one at a time so we can see which option is the culprit (I’m guessing it’s the uhelper, but it is just a guess) [data=ordered is the default for ext4, so really shouldn’t be needed]

tried, it didn’t help.

If there is a way to have boot logs before the OSMC logo on the light blue screen, I would provide them.

I’ve extracted the OSMC_TGT_vero3_20210808.img and the OSMC_TGT_vero3_20201227.img install images to compare them, but the boot/config-4.9.113-45-osmc file is 149.0 KiB, while the older equivalent boot/config-3.14.29-160-osmc is 91.7 KiB, too many differences, too many changes to narrow down the problem.

Have you tried unmounting the problem drive before rebooting?

sudo umount /media/KodiDisk

Or change the order that the drives are in fstab and see if the problem follows the drive, or stays with the last drive mounted?

Yes I’ve tried unmounting (via ssh), wait a minute, then reboot (via ssh or gui). Or even using hdparm or hd-idle on the command line after exiting kodi with sudo systemctl stop mediacenter. Also changing the order in fstab (I’m thinking, the problem is before mounting during boot, once it passes Please Stand By all goes smoothly). No change.

I know I’m kinda grasping at straws here… But have you swapped ports on the hub? Are the non-problem drives all self powered and the problem drive the only one powered by the hub? Do you have a spare drive you could test with to see if it’s a problem with 3 drives vs. 2? Do you have another hub you could test with?

We seem to be focusing on the power-up sequence, but since you mentioned that if you power the Vero down, connect the problem drive to Debian and then boot the Vero with the drive on the hub that it boots OK makes me think it’s a problem with the power down sequence, not power up.

Have you tried removing the fstab line and letting it automount under /media?

I have tried with an identical drive (even with same ext4 filesystem), it’s indeed this particular model! Here the details on lshw:

        *-usb:1
             description: Mass storage device
             product: Elements 2620
             vendor: Western Digital
             physical id: 2
             bus info: usb@1:2.2
             logical name: scsi2
             version: 10.18
             serial: 5758373244393050314C3131
             capabilities: usb-2.10 scsi scsi-host
             configuration: driver=usb-storage maxpower=500mA speed=480Mbit/s

I apologize, it’s a WD Elements, not a WD Passport (it’s even engraved on the enclosure…)

the other 2 drives are:

        *-usb:0
             description: Mass storage device
             product: Elements 2621
             vendor: Western Digital
             physical id: 1
             bus info: usb@1:2.1
             logical name: scsi0
             version: 10.26
             serial: 57584D31414139343945305A
             capabilities: usb-2.10 scsi scsi-host
             configuration: driver=usb-storage maxpower=500mA speed=480Mbit/s
        *-usb:2
             description: Mass storage device
             product: M3 Portable
             vendor: Seagate
             physical id: 3
             bus info: usb@1:2.3
             logical name: scsi1
             version: 0.00
             serial: NM13HN0W
             capabilities: usb-2.10 scsi scsi-host
             configuration: driver=usb-storage maxpower=100mA speed=480Mbit/s

ironically they don’t give me any problem.
the AUKEY CB-H6 hub appears as:

        *-usb:3
             description: USB hub
             product: USB2.1 Hub
             vendor: GenesysLogic
             physical id: 4
             bus info: usb@1:2.4
             version: 6.53
             capabilities: usb-2.10
             configuration: driver=hub maxpower=100mA slots=4 speed=480Mbit/s

Sorry I don’t have another powered usb hub to test (the power is needed as one of the other drives, a Maxtor M3 4TB, wasn’t able to play movies without it, but it mounted fine).

didn’t work, but I have an update:
if I shutdown the Vero, disconnect the drive from the hub, disconnect the barrel power plug on the Vero, wait 5 minutes, reconnect the usb drive and then replug the Vero booting it up, everything works! So connecting to a pc was a false flag: it’s something in the power cycle of this disk, I believe.

Are you sure disconnecting Vero is necessary? If so, this script I found on askubuntu might suggest something you could add in the shutdown sequence:

#!/bin/bash

if [ -z $1 ]; then
        echo usage gooseusb [[[bus]-port].subport]
        lsusb -t
        exit
else
        port="$1"
fi

# script by Patrick Cronin on askubuntu

#port="1" # replace '1' with actual bus number as shown by lsusb -t: {bus}-{port}(.{subport})

bind_usb() {
  echo "$1" | sudo tee /sys/bus/usb/drivers/usb/bind
}

unbind_usb() {
  echo "$1" | sudo tee /sys/bus/usb/drivers/usb/unbind
}

unbind_usb "$port"
sleep 1 # enable delay here
bind_usb "$port"

I have a similar disk

          product: Elements 25A3
          vendor: Western Digital

What is interesting is that yours reports as

maxpower=500mA

While mine reports as

maxpower=30mA

Is yours a 3.5" Disk with own power source?

it a WD Elements, 4TB, self-powered, usb 3.0, 2.5’’, just like this https://www.amazon.co.uk/WD-Elements-Portable-Hard-Drive/dp/B0713WPGLL/
I have to report that I did buy an OSMC powered hub some time ago, I’ve found it, but the power plug is missing, I don’t know where it is. I have a 5V 3A wall psu with usb cable and interchangable barrel connectors, but I can’t retrieve info on the correct output voltage, is 5V ok?

I’ve tried to unbind it after unmounting:

#!/bin/bash

unbind_usb() {
  echo "$1" | sudo tee /sys/bus/usb/drivers/usb/unbind
}

portx=""
idx="1058:2620" # WD Elements 4TB, from lsusb

IFS=$'\n'; 
for pathx in $(ls -l /sys/bus/usb/drivers/usb-storage/ | grep devices/platform/ | sed "s/^.* -> //g;s///g;s|\(.*\)/\(.*\)|\2|") ; do 
  if [[ "$(cat "/sys/bus/usb/drivers/usb-storage/$pathx/uevent" | grep PRODUCT= | sed "s/\//:/g;s/PRODUCT=//g" | cut -f1,2 -d":")" == "$idx" ]]; then 
    portx="$(echo "$pathx" | sed "s/:.*$//g")"
    echo $portx
  fi
done 
unset IFS

unbind_usb "$portx"

exit 0

it unbinds successfully. It didn’t help the problem on reboot.

Yes

I’m happy to report that using the official OSMC USB Hub, the Vero boots and reboots fine with all the disks. It stays about 60 seconds in the “Please Stand By” screen but it starts up afterwards.
I still don’t know what is causing this issue. The 4TB WD Elements (ID 1058:2620) is one of the most sold 2.5’’ external usb drives, someone is bound to have the same problem in the future. Most likely there is some regression somewhere.
I really appreciate the help I’ve got here because the Vero isn’t at my home but my parents’ house and I’m not able to be always present, so the less manual intervention from the user, the better. Therefore thank you.
I’ll monitor this thread, if someone finds a definitve solution; in the future I’ll report if it the situation improves after updating.

1 Like

Here https://technology.aukey.com/downloads/, I see a firmware update for the USB hub model string … but there is no Information about changes/fixes.

I’ve tried to update but I just can’t and propably I don’t need to.
First, the exact model, written on the back of the item, is AUKEY CB-H6S (with the 3 leftmost ports for charging only), the amazon page was deleted (sigh), but it’s present on the wayback machine and on camelcamelcamel. It’s written “On Amazon since (Date First Available) 8th November 2018”, while the update instructions come in a file dated 15th May 2018, and the actual update file is dated 24th June 2016.
Second, I don’t have a baremetal windows install, only virtual machines on kvm/qemu, and the fixes to pass a usb hub (not the ‘median’ usb device) to a guest are overly complicated for my immediate use.

For other info, I have to report that the same error (being stuck to the Please Stand By screen on boot) happens if I connect a double USB A male cable to the OSMC usb hub on one end and to an Android Philips TV on the usb2 port on the other end (for passing automated adb commands from the Vero to the TV without wifi). If I plug this cable to the Aukey hub everything is ok. Maybe for diagnostic it’s way cheaper to test this configuration buying such a cable that that particular model of usb disk (having a compatible Android television).
Anyway for now the solution remains as it is, to use different usb hubs for different usb things.