USB 隨身碟(FOR LINUX)

本文參考linux USB(http://www.linux-usb.org/)這埵陶\多關於 usb的詳細資料
csc 2004/04/22


現在大部份的電腦週邊設備都是USB,因此懂得設USB是一件很重要的事,原來我裝 redhat Fedora 1.0,可以自動幫我將USB設定好(除了mount的動作(有時可以有時不行)),但是重灌一次之後所有的USB都找不到,因此想要自己來設定,否則可 能又要重灌了....,以下針對redhat Fedora 1.0來設定(入門非重理論)



問題:
  1. 那一個核心有支援?
    2.2.7以後,最佳的是(2.4)
  2. 我需要重新編譯核心嗎?
    如果核心支援,就不需要重新編譯,你需要的就是本文了
  3. USB1.1及USB2.0有什麼不一樣?
    純就速度USB1.1(1.5Mbit/sec-12Mbit/sec),而USB2.0(最高可以480Mbit/sec),也就是最快速度 480/12=40快了40倍(2.0適用於大容量)


以下是重點了
先查看/lib/modules/"你的核心版本"/kernel/drivers/usb/host
裡面有四個檔案
echi-hcd.o,uhci.o,usb-ohci.o,usb-usci.o
目前主要使用host
  1. usb1.1:
    usb-ohci.o(compaq),usb-usci.o(intel),因為向下相容所以有USB介面的主機板一定有,但那一種這是要看你的主機板 上支援那一種
  2. usb2.0:
      ehci.o,新的主機板大概都有支援
ohci(open host controller interface)
usci(universal host controller interface)
如果你沒有看到可能核心沒有編譯支援USB



手動設定(每次開機都需要重設)
看一下目前使用的模組,有沒有載入上述的任一模組,沒有載入則週邊設備就無法使用
lsmod  |grep usb  (lsmod | grep usci)
#lsmod = list modules ,顯示載入的模組
#insmod = insert modules,載入模組
如果沒有,切換到上述的到host的目錄
insmod usb-usci.o 或
insmod usb-ohci.o
應該有一個可以使用,再看一下
/proc/bus/usb是不是有類似下面
ls /proc/bus/usb
001 002 devices drivers
如果沒有
mount -t usbdevfs none /proc/bus/usb
再檢查一下
ls /proc/bus/usb
lsusb
如果有資料那應該沒問題



自動設定(修改一次就好了,開機會 自動設定)
修改/etc/modules.conf (/etc/modprobe.conf)
加入alias usb-controller usb-usci
或  alias usb-controller usb-ohci
修改/etc/fstab
在proc後加一行
none   /proc/bus/usb   usbdevfs defaults 0 0

因為我是使用USB隨身碟(拇指 碟),是屬於storage因此使用還需要mount
我們電腦沒有scsi,所以/dev的設備就變成了/dev/sda1
mount -t fat /dev/sda1 /mnt/flash
就好了,如果有scsi硬碟就沒有試過了

其它有用的命令lspci, lsusb
lspci查看pci介面(內建的USB介面也是PCI)
lsusb查看usb設備
usbmodules --device /proc/bus/usb/001/001 (查詢設定使用的模組)