« Back to overview

Some SSD drives fail on Raspberry Pi 4 on the USB3 port.

Notable, the Adata SD600, but there are others. Apparently, this may have something to do with the external drive not supporting 'UAS', and may be solved by enabling 'quirks mode' for the drive (read this).


Enabling quirks mode for the drive

We have to find the device id.
First, start up the RPI with the drive on an USB2 port (it should boot).
Then, in the terminal, execute:


lsusb

# output:
# Bus 001 Device 003: ID 125f:a88a A-DATA Technology Co., Ltd.

Enable quirks mode for the deive

So now we have the device id, in this case 125f:a88a.
Still in the terminal,


# Take note of the device id, and add an ':u' to it.
# In our case it will be 125f:a88a:u

# Then, (you must be root)
sudo su
echo " usb-storage.quirks=125f:a88a:u" >> /boot/firmware/cmdline.txt

echo -e "usb-storage.quirks=125f:a88a:u $(cat /boot/firmware/cmdline.txt)" > /boot/firmware/cmdline.txt

# Note if you have multiple devices, separate them with commas instead of repeating the command above
# i.e. usb-storage.quirks=aaaa:bbbb:u,cccc:dddd:u

Now, halt the system with

sync && halt && shutdown

; connect the ssd to the usb3 port and see if it works.


VERDICT: SUCCESS

What is UAS

'USB Attached SCSI (UAS) or USB Attached SCSI Protocol (UASP) is a computer protocol used to move data to and from USB storage devices such as hard drives (HDDs), solid-state drives (SSDs), and thumb drives. UAS depends on the USB protocol, and uses the standard SCSI command set.'


Quirks mode for USB ethernet adapters

Some adapters may also not be recognized when booting, I have an RTL8153 ethernet adapter and it is only recognized if I hotplug it into usb.
This may follow a similar approach according to some sources: find out the id of the adapter using lsusb, and then add quirks mode in cmdline.txt:


# add to cmdline.txt, the network adapter id is 0bda:8151
# note, this is the 'o' quirk (slow reset), you may have to add additional quirks, like 'k'
usbcore.quirks=0bda:8151:o

VERDICT: NO LUCK

Alas, this did not bring up my usb network adapter. It turned out te be something completely different and was caused by the usb adapter trying to offer drivers to Windows (and therefore, presented itself as a storage device). Read how to fix your network usb adapter being recognized as a storage device.

find out more on quirks on: https://www.kernel.org/doc/htm...