当usb大容量存储设备连接到主机上时,设备的枚举发生,给设备提供地址的过程发生,得到描述符,然后对所需的类驱动程序进行核心检查,并分配大容量存储驱动程序。之后会发生什么?SCSI在哪里出现?
检查以下dmesg
输出:
[23870.089465] usb 3-2: new high-speed USB device number 5 using xhci_hcd
[23870.158769] usb 3-2: New USB device found, idVendor=058f, idProduct=6387
[23870.158778] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[23870.158782] usb 3-2: Product: Mass Storage
[23870.158785] usb 3-2: Manufacturer: Generic
[23870.158788] usb 3-2: SerialNumber: EEA1EE5B
[23870.202363] usb-storage 3-2:1.0: USB Mass Storage device detected
[23870.202469] scsi6 : usb-storage 3-2:1.0
发布于 2014-04-08 12:37:56
一旦usb-storage
将设备附加到给定的接口,内核也会启动SCSI仿真过程(如果适用的话),定义sg
和sd
名称(比如/dev/sdb,这对我们来说是最重要的)。
要检查哪个设备对应于scsi6
,请安装sg3-utils
包:
sudo apt-get install sg3-utils
并键入以下命令:
sudo sg_scan
您将得到与此类似的输出:
/dev/sg0: scsi0 channel=0 id=0 lun=0 [em]
/dev/sg1: scsi1 channel=0 id=0 lun=0 [em]
/dev/sg2: scsi6 channel=0 id=0 lun=0 [em]
这里,scsi6
被定义为/dev/sg2
。
USB海量存储设备也可以使用各种SCSI标准定义的SCSI命令.
SCSI命令集指定用于传输数据块和状态以及控制信息的协议,例如设备的容量和交换数据的准备状态。具有USB和其他硬件接口的设备可以使用SCSI命令集。
我并不是说USB存储可以控制SCSI、硬盘驱动器、闪存驱动器和其他USB大容量存储设备,这些设备支持SCSI主命令(SPC)集和SCSI块命令集(SBC)集中的www.t10.org (INCITS技术委员会T10)中的命令。
来源
https://askubuntu.com/questions/444845
复制相似问题