====== USB su Linux ======
===== Controller USB =====
Sono stati costruiti diversi tipi di controller, seguendo alcuni standard:
^ UHCI | Universal Host Controller Interface | Prima versione di USB, sviluppato inizialmente da Intel, svolge gran parte delle funzioni in software. Molti chpset Intel e VIA hanno USB di questo tipo. |
^ OHCI | Open Host Controller Interface | Controller USB 1.1, sviluppato da Compaq ed altri, l'hardware compie gran parte del lavoro e ci sono meno problemi di brevetti. |
^ EHCI | Enhanced Host Controller Interface | Per fortuna questo è l'unico standard per il veloce USB 2.0 |
===== Quali moduli kernel caricare? =====
^ Modulo ^ Kernel ^ Note ^
| usbcore | | |
| usb-uhci | 2.4 | Driver per Linux 2.4 e controller UHCI |
| uhci | 2.4 | Driver alternativo per controller UHCI, conosciuto come driver //JE//. Riscritto da zero, dovrebbe essere migliore. |
| usb-ohci | 2.4 | Driver per Linux 2.4 e controller OHCI |
| uhci-hcd | 2.6 | Driver per controller UHCI |
| ohci-hcd | 2.6 | Driver per controller OHCI |
| ehci-hcd | 2.6 | Unico driver esistente per controller EHCI, si usa in combinazione con un driver OHCI o UHCI |
| usb-storage | | |
Il controller USB generalmente è integrato nel [[..:..:hardware:chipset|chipset]] della scheda madre, ecco cosa riporta il comando ''**lspci**'' in alcuni casi:
==== Scheda madre Chipset Intel 865GV ====
0000:00:1d.0 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #1 (rev 02)
0000:00:1d.1 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #2 (rev 02)
0000:00:1d.2 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #3 (rev 02)
0000:00:1d.3 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #4 (rev 02)
0000:00:1d.7 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)
==== Scheda madre Northbridge VIA PT880, Southebridge VIA 8237 ====
0000:00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
0000:00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
===== USB Storage =====
Se si vuole montare un filesystem USB automaticamente al boot bisogna prestare attenzione all'ordine in cui vengono caricati i moduli kernel e quando viene letto il file ''**/etc/fstab**''. Potrebbe accadere che al momento di montare il filesystem, i moduli kernel ancora non ci siano. In tal caso conviene forzare il caricamento dei moduli elencandoli in ''**/etc/modules**'':
# USB external HD (/dev/sda).
scsi_mod
sd_mod
usbcore
# Driver per controller USB: sceglierne uno.
# I controller possono essere di tipo UHCI, OHCI oppure EHCI.
# Vedere lspci.
#
# Kernel 2.4
#usb-uhci
#uhci
#usb-ohci
#
#Kernel 2.6
uhci-hcd
#ohci-hcd
ehci-hcd
usb-storage