核心选择大容量存储后会发生什么

核心选择大容量存储后会发生什么

当 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

答案1

一旦usb-storage将设备连接到给定接口,内核还会启动 SCSI 模拟过程(如果适用),定义sgsd命名(如/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-storage 控制 SCSI、硬盘、闪存驱动器和其他 USB 大容量存储设备支持命令SCSI 主命令 (SPC) 集和 SCSI 块命令 (SBC) 集摘自 www.t10.org(INCITS 技术委员会 T10)。

来源

相关内容