16.5. USB 存储设备

Contributed by Marc Fonvieille.

到目前为止,有许多外部外部存储解决方案, 例如:通用串行总线 (USB):硬盘、USB thumbdrives、CD-R burners 等等。 FreeBSD 为这些设备提供了支持。

16.5.1. 配置

USB 大容量存储设备驱动,在 umass(4), 中提供了对 USB 存储设备的支持。如果您使用 GENERIC 内核,您不必要改变配置文件里的任何内容。 如果您使用了定制的内核,就要确定下面的行出现在您的内核配置文件里:

device scbus
device da
device pass
device uhci
device ohci
device usb
device umass

umass(4) 驱动程序使用 SCSI 子系统来访问 USB 存储设备, 您的 USB 设备将被系统看成为一个 SCSI 设备。依靠您主板上的 USB 芯片, 您只须选择 device uhci 或 device ohci 二者之一即可, 但是两者都加入内核配置文件当中也没有坏外。 不要忘了如果您加入了上面的几行要重新编译和安装内核。

Note: 如果您的 USB 设备是一个 CD-R 或 DVD 刻录机, SCSI CD-ROM 驱动程序, cd(4), 就必须加入内核中通过下面这行:

device cd

因为刻录机被看作一个 SCSI 设备drive, 驱动程序 atapicam(4) 不应该在内核配置文件中使用。

在FreeBSD 5.X,中提供了对 USB 2.0 控制器的支持, 在 4.X 分支从 FreeBSD 4.10-RELEASE 后,您应该加入:

device ehci

到您的配置文件以提供对 USB 2.0 的支持。注意 uhci(4) 和 ohci(4) 驱动程序仍然需要,如果您想提供对 USB 1.X 的支持。

Note: 在 FreeBSD 4.X 上, USB daemon (usbd(8)) 必须能够 检测到正在运行的一些 USB 设备。为了启用它, 添加 usbd_enable="YES" 到您的 /etc/rc.conf 文件里,然后重新启动 计算机。

16.5.2. 测试配置

配置好后准备进行测试:插入您的 USB 设备, 在系统信息中 (dmesg(8)), 应该会出现像下面的设备:

umass0: USB Solid state disk, rev 1.10/1.00, addr 2
GEOM: create disk da0 dp=0xc2d74850
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device 
da0: 1.000MB/s transfers
da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)

当然啦,商标,设备标识 (da0) 和其它的细节信息会根据您的配置不同 而有所不同。

因为 USB 设备被看作 SCSI 设备中的一个, camcontrol 命令也能够用来列出 USB 存储设备和系统的关联:

# camcontrol devlist
<Generic Traveling Disk 1.11>      at scbus0 target 0 lun 0 (da0,pass0)

如果设备要作成文件系统,您应该能够挂接它。 Section 16.3 将帮助您格式化和创建分区在 USB 设备上,如果您需要。

如果您要去摘下设备 (在此这前磁盘必须被 unmount), 在系统信息中您能够看到下面的信息:

umass0: at uhub0 port 1 (addr 2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
GEOM: destroy disk da0 dp=0xc2d74850
umass0: detached

16.5.3. 深入阅读

除了 Adding Disks 和 Mounting and Unmounting File Systems 章之外,阅读 umass(4), camcontrol(8), 和 usbdevs(8) 也是很有益的。