Tópico: Arquitetura de Sistema
Funcionamento da USB no Linux
Neste post vou falar um pouco sobre a USB no linux. Falar sobre USB pode parecer um assunto trivial, porém existem certos conceitos sobre a USB que podem vir a cair na LPIC-1 e que podem confundí-lo e levá-lo a perder uma questão aparentemente fácil da prova. Este será um post mais teórico, mas sem muita enrolação ou decoreba, é mais a nível de conhecimento mesmo.
Controladores USB
Podemos encontramos 4 tipos de controles de USB:
- Open Host Controller Interface - OHCI : Um controlador para USB 1.1 de código aberto.
- Universal Host Controller Interface - UHCI : Um Controlador proprietário criado pela Intel para USB 1.0 incompatível com OHCI. Geralmente utilizados por dispositivos Intel e VIA.
- Enhanced Host Controller Interface - EHCI: Um controlador de alta velocidade para o padrão USB 2.0.
- Extensible Host Controller Interface - XHCI: Padrão recente de controlador com melhoria de velocidade e eficiência de energia sobre o seu predecessor. Pode vir a substituir o OHCI, UHCI e EHCI pois suporta todas as velocidade USB, inclusive a USB 3.0.
Classes de dispositivos USB
Existem muitas classes de dispositivos USB, as mais conhecidas são:
- Human Interface Device (HID)
Exemplo: Modens
- Mass storage device
Exemplo: Discos Rígidos, HD Externo, Pendrive etc.
- Audio
Exemplo: Dispositivos de Audio
- IrDA
Exemplo: Dispositivos Infravermelho
- Printer
Exemplo: Impressoras
Drivers USB
O suporte a USB no Linux chegou com o desenvolvimento do Kernel 2.3.x e mais tarde foi portado para 2.2.x com excessão do suporte a dispositivos da classe de armazenamento em massa.
Os drivers de USB do Kernel do Linux são divididos em 3 categorias:
- Host controller drivers: incluem usb-ohci.o (OHCI driver), usb-uhci.o (UHCI driver), uhci.o (versão antiga “alternativa” do UHCI driver) e o ehci-hcd.o (EHCI driver).
- Class drivers: Incluem hid.o, usb-storage.o (mass storage driver), acm.o (Automated Control Model [ACM] communications class driver, para enviar comando AT para um modem de interface serial), printer.o, e audio.o.
-Other device drivers: Outros drivers de dispositivos o quais não se incluem nas duas categorias acima.