Сага о драйверах

Материал из ALT Linux Wiki

Статья пишется на основе знаменитой статьи "Сага о драйверах"

Замечания и предложения по статье можно посылать в телеграмм канал Saga_o_Driverah

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


У вас не работает "железо", что делать

Часто на форуме можно встретить вопрос такого типа:

"Я поставил ваш дистрибутив на свой ноутбук и у меня не работает WiFi карточка".

Давайте на примере этого вопроса узнаем кое-что об оборудовании компьютера (дальше для краткости я его буду просто называть "железо") и о программах,которые с ним работают (для краткости - драйвера).

"Железо" может быть внутри компьютера, или внешним. Оно может подсоединяться к "сердцу" компьютера, его процессору по различным шинам (линиям связи). Для обеспечения этой связи обычно используется "материнская плата".

Существует достаточно много различных типов таких шин - USB, PCI, PS/2, SATA, Com-порт, LPT порт и т.п.

Если мы говорим про Wi-Fi карточку в ноутбуке, то она может находится или на шине USB или на шине PCI (я говорю о них как о типе шин, так-как например, USB бывают разными, как впрочем и PCI ).

Для обнаружения таких устройств существуют две команды lspci и lsusb.

lsusb

Вот я сейчас сижу за ноутбуком и даю команду :

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 002: ID 0bda:57b4 Realtek Semiconductor Corp. USB Camera
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 002: ID 13d3:3501 IMC Networks 
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 004: ID 1ea7:0064 SHARKOON Technologies GmbH 2.4GHz Wireless rechargeable vertical mouse [More&Better]
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Что мы видим?

Bus 007 Device 004: ID 1ea7:0064 SHARKOON Technologies GmbH 2.4GHz Wireless rechargeable vertical mouse [More&Better]
Bus 007 - устройство висит на седьмой шине USB
Device 004:- оно на этой шине четвертое  
ID 1ea7:0064 - это его идентификатор, определяющая какая фирма произвела устройство и идентификатор самого устройства
SHARKOON Technologies GmbH 2.4GHz Wireless rechargeable vertical mouse [More&Better] - имя устройства

Допустим нам надо посмотреть какой драйвер (в данном случае модуль ядра) "обслуживает" устройство мыши.

Для этого даём команду :

 lsusb  -tv
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M
    ID 1d6b:0001 Linux Foundation 1.1 root hub
    |__ Port 5: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
        ID 13d3:3501 IMC Networks 
    |__ Port 5: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
        ID 13d3:3501 IMC Networks 
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M
    ID 1d6b:0001 Linux Foundation 1.1 root hub
    |__ Port 1: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        ID 1ea7:0064 SHARKOON Technologies GmbH 2.4GHz Wireless rechargeable vertical mouse [More&Better]
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/5p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 4: Dev 2, If 0, Class=Video, Driver=uvcvideo, 480M
        ID 0bda:57b4 Realtek Semiconductor Corp. 
    |__ Port 4: Dev 2, If 1, Class=Video, Driver=uvcvideo, 480M
        ID 0bda:57b4 Realtek Semiconductor Corp. 
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/5p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 5000M
    ID 1d6b:0003 Linux Foundation 3.0 root hub
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=vhci_hcd/8p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub