Unusual USB Devices in Linux Kernel

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.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC