3

I am trying to boot my Raspberry Pi 4 from SSD attached to USB3.0 port via USB-SATA cable. The disk works fine under Linux (I am running Ubuntu 22 LTS) when Pi is booted from SD, but I can't boot from the USB.

I have the latest bootloader configured to boot from SSD:

vcgencmd bootloader_config

[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
BOOT_ORDER=0xf14
XHCI_DEBUG=0x1
DISABLE_HDMI=0

vcgencmd bootloader_version

2023/01/11 17:40:52
version 8ba17717fbcedd4c3b6d4bce7e50c7af4155cba9 (release)
timestamp 1673458852
update-time 1676496457
capabilities 0x0000007f

When I boot without the SD card and with my SSD disk connected (using Sabrent SSD to USB 3.1 adapter) I am greeted with:

Net:  eth0: ethernet@7d580000
starting USB...
No working controllers found
Hit any key to stop autoboot:  0
Card did not respond to voltage select! : -110 
sdhci_set_clock: Timeout to wait cmd & data inhibit
sdhci_set_clock: Timeout to wait cmd & data inhibit
sdhci_set_clock: Timeout to wait cmd & data inhibit
sdhci_send_command: MMC: 1 busy timeout increasing to: 200 ms.
sdhci_send_command: MMC: 1 busy timeout increasing to: 400 ms.
sdhci_send_command: MMC: 1 busy timeout increasing to: 800 ms.
sdhci_send_command: MMC: 1 busy timeout increasing to: 1600 ms.
sdhci_send_command: MMC: 1 busy timeout increasing to: 3200 ms.
sdhci_send_command: MMC: 1 busy timeout.
MMC Device 2 not found
no mmc device at slot 2
starting USB...
No working controllers found
USB is stopped. Please issue 'usb start' first.
starting USB...
No working controllers found
BOOTP broadcast 1
... (more messages trying to boot from network)

Note that altough I have the latest bootloader I don't have the "Boot diagnostics" screen and it seems that my bootloader doesn't recognize USB at all (although it works fine if I boot Linux from SD).

What am I doing wrong?

2
  • You tried using the raspi-config, right? I found that simpler. You can configure the boot under Advanced (Correct me if I'm wrong) Feb 21 at 15:53
  • I tried, though it makes no difference how you configure the bootloader_config. I believe the vcgencmd bootloader_config shows that the BOOT_ORDER is fine.
    – gozdal
    Feb 26 at 22:10

1 Answer 1

0

It seems I have found the answer: the output I thought is from Raspberry Pi bootloader, is actually from u-boot used in Ubuntu. Not sure if it doesn't support UASP or is configured to look only for SD card. You need to bypass it and boot from decompressed kernel directly as described in e.g. https://jamesachambers.com/raspberry-pi-4-ubuntu-20-04-usb-mass-storage-boot-guide/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.