The Raspberry Pi 4B has known issues with certain USB storage controllers, particularly when it comes to rebooting. These issues can cause devices to fail detection after a reboot or lead to boot failures when using USB storage as the boot device. Here are the main culprits:
1. JMicron JMS578 & JMS583 Controllers
- Symptoms: USB drive fails to be detected after a warm reboot (
sudo reboot
), but works after a cold boot (power cycle). - Cause: These controllers have issues handling UAS (USB Attached SCSI) mode on Raspberry Pi 4.
- Workarounds:
- Disable UAS by adding
usb-storage.quirks=152d:0578:u
(for JMS578) or152d:0583:u
(for JMS583) to/boot/cmdline.txt
. - Use a different firmware: Some JMS583 adapters allow firmware updates that can improve compatibility.
- Switch to a different USB-to-SATA adapter.
- Disable UAS by adding
2. ASMedia ASM1153 & ASM235CM Controllers
- Symptoms: Similar to JMicron, may disappear after a reboot, requiring a power cycle.
- Cause: UAS issues and power reset problems.
- Workarounds:
- Disable UAS with
usb-storage.quirks=174c:1153:u
(for ASM1153) or174c:235c:u
(for ASM235CM). - Try different firmware updates if available.
- Disable UAS with
3. Realtek RTL9210 & RTL9210B
- Symptoms: Failure to reconnect after a soft reboot, and sometimes boot failure when used as a boot drive.
- Cause: Firmware bugs in early versions.
- Workaround:
- Update firmware to the latest version (use Realtek’s update tools).
- Disable UAS with
usb-storage.quirks=0bda:9210:u
if issues persist.
4. VIA VL715 & VL716
- Symptoms: May fail after reboot, especially when using NVMe enclosures.
- Cause: Power management issues with Raspberry Pi 4’s USB controller.
- Workaround: Use powered hubs or update firmware.
5. Generic USB-to-SATA Bridge Chips (Unknown Vendor)
- Symptoms: Some cheap adapters don’t work reliably and may disappear on reboot.
- Cause: Poor firmware or bad power handling.
- Workaround: Use a powered USB hub or a better-known controller.
General Recommendations
-
Use Known Good Adapters:
- StarTech USB3S2SAT3CB (works well with RPi 4).
- Sabrent EC-SS31 (compatible without quirks).
- UGREEN SATA to USB 3.0 adapter (some models are OK, but check the chipset).
-
Disable UAS for Problematic Controllers:
- Find the device ID with:
lsusb
- Add the quirk to
/boot/cmdline.txt
:usb-storage.quirks=152d:0578:u
- Find the device ID with:
-
Use a Powered USB Hub:
If power issues are suspected, a USB hub with external power can help stabilize certain drives. -
Update Raspberry Pi Firmware:
- Ensure you’re running the latest firmware by updating EEPROM (as explained in the first section of this thread):
sudo rpi-eeprom-update -a
- Ensure you’re running the latest firmware by updating EEPROM (as explained in the first section of this thread):
Would you like help checking your specific USB controller? Let me know what lsusb
shows!
DISCLAIMER:
OTA upgrade will overwrite /boot/cmdline.txt and your changes will be lost.
Kind Regards,