Unusual USB Devices in Linux Kernel

Orange Pi Development Boards

Some USB devices (especially cheap ones) are not fully compatible with the USB Stack and when you connect such devices to your target board, the kernel may output errors similar to the one below even though most other devices work perfectly.

sd 3:0:0:0: SCSI error: return code = 0x10070000
end_request: I/O error, dev sda, sector 0
Buffer I/O error on device sda, logical block 0
sd 3:0:0:0: SCSI error: return code = 0x10070000
end_request: I/O error, dev sda, sector 8
Buffer I/O error on device sda, logical block 1
sd 3:0:0:0: SCSI error: return code = 0x10070000
end_request: I/O error, dev sda, sector 16
sd 3:0:0:0: SCSI error: return code = 0x10070000
end_request: I/O error, dev sda, sector 24
sd 3:0:0:0: SCSI error: return code = 0x10070000

It previously happened to us with a IDE to USB adapter based on Super Top Bridge ( VID: 0x14CD / PID: 0x6600).

The Linux kernel has a special file to handle such devices (mass storage class only) called unusual_devs.h in drivers/usb/storage/, where you just need to add your device (with VID/PID) and add relevant flags.

The code for the device above is:


This is now part of the kernel tree and a patch is available at https://lists.one-eyed-alien.net/pipermail/usb-storage/2007-February/002890.html.

Please check The unusual_devs.h Guide for full details.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

Leave a Reply

avatar
  Subscribe  
Notify of