Как найти драйвер устройства для linux

If my target has one device connected and many drivers for that device loaded, how can I understand what device is using which driver?

Alexios's user avatar

Alexios

18.7k3 gold badges57 silver badges74 bronze badges

asked Jun 27, 2012 at 6:17

Just use /sys.

Example. I want to find the driver for my Ethernet card:

$ sudo lspci
...
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
$ find /sys | grep drivers.*02:00
/sys/bus/pci/drivers/r8169/0000:02:00.0

That is r8169.

First I need to find coordinates of the device using lspci; then I find driver that is used for the devices with these coordinates.

answered Jun 27, 2012 at 9:50

Igor Chubin's user avatar

Igor ChubinIgor Chubin

1,0868 silver badges11 bronze badges

8

Here’s a little script I wrote:

#!/bin/bash
for f in /sys/class/net/*; do
    dev=$(basename $f)
    driver=$(readlink $f/device/driver/module)
    if [ $driver ]; then
        driver=$(basename $driver)
    fi
    addr=$(cat $f/address)
    operstate=$(cat $f/operstate)
    printf "%10s [%s]: %10s (%s)n" "$dev" "$addr" "$driver" "$operstate"
done

Sample output:

$ ~/what_eth_drivers.sh 
      eth0 [52:54:00:aa:bb:cc]: virtio_net (up)
      eth1 [52:54:00:dd:ee:ff]: virtio_net (up)
      eth2 [52:54:00:99:88:77]: virtio_net (up)
        lo [00:00:00:00:00:00]:            (unknown)

answered Aug 25, 2015 at 22:53

Jonathon Reinhart's user avatar

3

sudo lspci -v will show it. like this:

$ sudo lspci -v
00:01.0 VGA compatible controller: Advanced Micro  Devices, Inc......
...
Kernel driver in use: radeon
Kernel modules: radeon

You can also combine it with grep like this:

$ sudo lspci -v | grep -A 20 VGA

Jonathon Reinhart's user avatar

answered Jan 10, 2017 at 21:31

mlibre's user avatar

mlibremlibre

1,2591 gold badge13 silver badges20 bronze badges

For USB based devices you can see the driver name by using the lsusb command:

lsusb -t

And/or you use lshw which enumerates the devices on all buses including USB, PCI, etc so you can see which driver it uses:

sudo lshw

answered Jan 8, 2018 at 19:37

Pierz's user avatar

PierzPierz

6619 silver badges9 bronze badges

1

If you just want to plainly use sysfs and doesn’t want to deal with all these commands which eventually looks inside sysfs anyways, here’s how:

say, what is the module/driver for eth6? “sfc” it is

# ls -l /sys/class/net/eth6/device/driver
lrwxrwxrwx 1 root root 0 Jan 22 12:30 /sys/class/net/eth6/device/driver ->
../../../../bus/pci/drivers/sfc

or better yet.. let readlink resolve the path for you.

# readlink -f /sys/class/net/eth6/device/driver
/sys/bus/pci/drivers/sfc 

so… to figure out what are the drivers for all of your network interfaces:

# ls -1 /sys/class/net/ | grep -v lo | xargs -n1 -I{} bash -c 'echo -n {} :" " ; basename `readlink -f /sys/class/net/{}/device/driver`'

eth0 : tg3
eth1 : tg3
eth10 : mlx4_core
eth11 : mlx4_core
eth2 : tg3
eth3 : tg3
eth4 : mlx4_core
eth5 : mlx4_core
eth6 : sfc
eth7 : sfc
eth8 : sfc
eth9 : sfc

Rui F Ribeiro's user avatar

Rui F Ribeiro

55.4k26 gold badges146 silver badges225 bronze badges

answered Jan 29, 2018 at 20:59

Monty Montemayor's user avatar

2

You can use the lsmod command to get the status of loaded modules / devices drivers in the Linux Kernel.

For a specific device, you can use dmesg |grep <device-name> to get the details too.

answered Jun 27, 2012 at 6:21

3

When ethtool is installed you can simply use:

$ ethtool -i enp2s0 | grep driver | awk '{print $2}'
r8169

where enp2s0 is the device name. ethtool provides detailed information about the interface:

$ ethtool -i enp2s0
driver: r8169
version: 2.3LK-NAPI
firmware-version: rtl8168e-3_0.0.4 03/27/12
expansion-rom-version: 
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

In order to install on Debian/Ubuntu:

apt install ethtool

answered Mar 10, 2021 at 8:49

Tombart's user avatar

TombartTombart

2,5305 gold badges26 silver badges38 bronze badges

For me I needed a way to link network device names to driver pci names, here is a one-liner (adjust or remove the “grep ens” to whatever name network device name you want to search for)

for i in $(ip -br addr show | awk '{print$1}' | grep ens); do echo "$i: $(ethtool -i $i| grep bus-info)" ; done

answered May 20, 2021 at 16:03

Dave's user avatar

DaveDave

4644 silver badges16 bronze badges

Как искать драйвера для Linux?
С windows как бы все ясно, есть VID_PID по нему боле мене легко найти драйвера. А по какому принципу искать драйвера для линукс?

Спасибо!


  • Вопрос задан

    более трёх лет назад

  • 1793 просмотра

Примерно так:
$ lspci -nnn

В выводе ищешь например:

0b:00.0 Ethernet controller [0200]: VMware VMXNET3 Ethernet Controller [15ad:07b0] (rev 01)

Потом уже гуглишь: [15ad:07b0]
kernel.org тащит )

Пригласить эксперта

Как правило, это делать не нужно – все драйвера в ядре.
Для всякой экзотики нужно рассматривать конкретный случай.

А что у вас за девайс, для которого в ядре нет драйверов?

Зачем искать? Самому написать!

lspci, lsusb и т.д.
Ну и конечно же Google.


  • Показать ещё
    Загружается…

20 мая 2023, в 03:03

4000 руб./за проект

20 мая 2023, в 02:13

1000 руб./за проект

20 мая 2023, в 01:15

100000 руб./за проект

Минуточку внимания

Содержание

  1. Как узнать, установлен драйвер или нет?
  2. Где устанавливаются драйверы Linux?
  3. Как проверить, все ли драйверы установлены в Ubuntu?
  4. Как вручную установить драйверы в Linux?
  5. Как проверить драйвер видеокарты?
  6. Как мне проверить все мои драйверы?
  7. Как использовать драйверы Windows в Linux?
  8. Linux автоматически находит драйверы?
  9. Где находятся модули в Linux?
  10. Как мне проверить свой графический драйвер Ubuntu?
  11. Как узнать, установлен ли драйвер WIFI в Ubuntu?
  12. Как узнать, установлен ли драйвер Nvidia на Ubuntu?
  13. Как установить принтер в Linux?
  14. Как работает драйвер для Linux?
  15. Как загрузить файл. KO в Linux?

Например, вы можете ввести lspci | grep SAMSUNG, если вы хотите узнать, установлен ли драйвер Samsung. Любой распознанный драйвер отобразится в результатах. Совет. Как и в случае с lspci или dmesg, добавьте | grep к любой из приведенных выше команд, чтобы отфильтровать результаты.

Как узнать, установлен драйвер или нет?

Щелкните устройство правой кнопкой мыши и выберите параметр «Свойства». Щелкните вкладку Драйвер. Проверьте версию установленного драйвера устройства.

Стандартные драйверы ядра

  • Многие драйверы входят в состав ядра дистрибутива. …
  • Эти драйверы, как мы видели, хранятся в каталоге / lib / modules /.
  • Иногда имя файла модуля указывает на тип поддерживаемого оборудования.

Как проверить, все ли драйверы установлены в Ubuntu?

Также можно перейти в Пуск – & gt; Дополнительные драйверы, а затем Ubuntu сообщит, есть ли устаревшие или рекомендуемые драйверы.

Как вручную установить драйверы в Linux?

Как загрузить и установить драйвер на платформе Linux

  1. Используйте команду ifconfig, чтобы получить список текущих сетевых интерфейсов Ethernet. …
  2. После загрузки файла драйверов Linux распакуйте и распакуйте драйверы. …
  3. Выберите и установите соответствующий пакет драйверов ОС. …
  4. Загрузить драйвер. …
  5. Идентифицируйте устройство NEM eth.

Как проверить драйвер видеокарты?

Чтобы определить драйвер видеокарты в отчете диагностики DirectX * (DxDiag):

  1. Пуск & gt; Выполнить (или Флаг + R) Примечание. Флаг – это ключ с логотипом Windows * на нем.
  2. Введите DxDiag в окне выполнения.
  3. Нажмите Enter.
  4. Перейдите на вкладку, обозначенную как Экран 1.
  5. Версия драйвера указана в разделе Драйвер как Версия.

Как мне проверить все мои драйверы?

Как запустить средство проверки драйверов

  1. Запустите окно командной строки, выбрав Запуск от имени администратора, и введите средство проверки, чтобы открыть диспетчер проверки драйверов.
  2. Выберите «Создать стандартные настройки» (задача по умолчанию) и нажмите «Далее». …
  3. В разделе «Выберите драйверы для проверки» выберите одну из схем выбора, описанных в следующей таблице.

20 апр. 2017 г.

Как использовать драйверы Windows в Linux?

Как конвертировать драйверы Windows в Linux

  1. Щелкните «Система», затем щелкните «Администрирование».
  2. Щелкните «Диспетчер пакетов Synaptic». Это откроет встроенную в Linux утилиту, позволяющую загружать и добавлять программное обеспечение на свой компьютер. …
  3. Введите «ndiswrapper-utils» в поле «Поиск».

Linux автоматически находит драйверы?

Ваша система Linux должна автоматически определять ваше оборудование и использовать соответствующие драйверы оборудования.

Где находятся модули в Linux?

Загружаемые модули ядра в Linux загружаются (и выгружаются) командой modprobe. Они расположены в / lib / modules и имеют расширение. ko («объект ядра»), начиная с версии 2.6 (предыдущие версии использовали расширение.o). Команда lsmod выводит список загруженных модулей ядра.

Как мне проверить свой графический драйвер Ubuntu?

Чтобы проверить это на рабочем столе Unity по умолчанию в Ubuntu, щелкните шестеренку в правом верхнем углу экрана и выберите «Об этом компьютере». Вы увидите эту информацию, отображаемую справа от «Тип ОС». Вы также можете проверить это в терминале.

Как узнать, установлен ли драйвер WIFI в Ubuntu?

Чтобы проверить, был ли распознан беспроводной USB-адаптер:

  1. Откройте терминал, введите lsusb и нажмите Enter.
  2. Просмотрите список отображаемых устройств и найдите все, которые относятся к беспроводным или сетевым устройствам. …
  3. Если вы нашли свой беспроводной адаптер в списке, перейдите к шагу «Драйверы устройств».

Как узнать, установлен ли драйвер Nvidia в Ubuntu?

По умолчанию используется встроенная видеокарта (Intel HD Graphics). Затем откройте softare & amp; обновляет программу из меню приложения. Щелкните вкладку дополнительных драйверов. Вы можете увидеть, какой драйвер используется для карты Nvidia (по умолчанию Nouveau) и список проприетарных драйверов.

Как установить принтер в Linux?

Добавление принтеров в Linux

  1. Щелкните «Система», «Администрирование», «Печать» или найдите «Печать» и выберите настройки для этого.
  2. В Ubuntu 18.04 выберите «Дополнительные настройки принтера…»
  3. Нажмите «Добавить»
  4. В разделе «Сетевой принтер» должна быть опция «Хост LPD / LPR или Принтер »
  5. Введите данные. …
  6. Щелкните «Вперед»

Как работает драйвер Linux?

Драйверы Linux собираются вместе с ядром, скомпилированы в составе или в виде модуля. В качестве альтернативы драйверы могут быть построены на основе заголовков ядра в дереве исходных текстов. Вы можете просмотреть список установленных в настоящее время модулей ядра, набрав lsmod, и, если они установлены, взглянуть на большинство устройств, подключенных через шину, с помощью lspci.

Как загрузить файл. KO в Linux?

1 Ответ

  1. Отредактируйте файл / etc / modules и добавьте имя модуля (без расширения.ko) в отдельной строке. …
  2. Скопируйте модуль в подходящую папку в / lib / modules / `uname -r` / kernel / drivers. …
  3. Запустить depmod. …
  4. На этом этапе я перезагрузился и запустил lsmod | grep имя-модуля, чтобы подтвердить, что модуль был загружен при загрузке.

Похожие сообщения:

    Как вы проверяете, какие шрифты установлены в Linux?
    Как проверить наличие обновлений драйверов в ubuntu?
    Частый вопрос: Где в Linux устанавливаются шрифты?
    Как проверить, что что-то установлено в Linux?
    Как проверить, установлен ли Apache в Linux?
    Как узнать, установлен ли графический драйвер в Ubuntu?

.

Если вы были достаточно опытным пользователем Windows, то после перехода на Linux, наверное, задавались вопросом, а где здесь диспетчер устройств? Программа, с помощью которой можно было бы посмотреть подключенные к компьютеру устройства, установленные для них драйвера, настроить драйвера, да и посмотреть информацию об оборудовании в одном месте. Но ситуация здесь неоднозначная, полной альтернативы нет, есть утилиты показывающие немного информации, есть консольные команды. Но все очень запутанно и непонятно.

В этой статье мы попытаемся расставить все точки над “i” в вопросе просмотр устройств Ubuntu, и в частности, ответим на вопрос где взять диспетчер устройств Ubuntu.

Немного теории

Работа с драйверами в операционных системах Linux и Windows очень сильно отличается. В Windows нужно отдельно искать и устанавливать каждый драйвер, в Linux же все доступные драйвера с открытым исходным кодом встроены в ядро и поэтому установка драйверов не нужна, за исключением нескольких проприетарных устройств, таких как видеокарты. Драйвера для таких устройств выделены в виде модулей ядра и загружаются по мере необходимости. Что же касается свободных драйверов, то для одного устройства в ядре может быть несколько модулей, из которых система выбирает то, что по ее мнению, будет лучше работать.

Таким образом, в Linux драйверы устройств, встроенные в ядро и выполненные в виде отдельных модулей логически разделены с оборудованием и настраиваются отдельно. Возможно, причиной этому сложность настройки, а может сам принцип GNU – одна утилита – одно действие. Дальше мы рассмотрим несколько способов посмотреть список устройств linux, для этого есть как консольные, так и графические утилиты. Настройку модулей мы сильно трогать не будем, потому что все уже описано в отдельной статье.

Устройства подключаются к материнской плате несколькими способами. Это может быть шина PCI, используется для многих основных компонентов компьютера, например, видеокарты, звуковой карты, сетевого адаптера и т д. Еще может использоваться USB, этот тип подключения чаще всего применяется для внешних устройств вроде веб-камеры, клавиатуры, мыши и т д. Жесткие диски не подключаются по PCI, для них существует отдельный интерфейс – SCSI (Small Computer System Interface). PCI шина является главной, к ней подключены другие контроллеры, в том числе USB и SCSI. Такое разделение необходимо, потому что это устройства разного типа, им нужно передавать разное количество информации, нужна разная скорость передачи и даже разное напряжение питания от сети.

В соответствии с принципом GNU в Linux есть отдельная утилита, для просмотра каждого из типов устройств. Называются они так же, как и технологии, с помощью которых подключены устройства с префиксом ls (list):

  • lspci
  • lsusb
  • lsscsi
  • lscpu

Рассмотрим каждую из этих утилит подробнее.

lspci

Как я уже сказал, к шине PCI подключаются многие важные устройства. PCI расшифровывается как Peripheral component interconnect или по-нашему взаимосвязь периферийных компонентов. Все видеокарты подключаются именно таким способом также чаще всего мы можем здесь встретить сетевые адаптеры, карт ридеры и другие адаптеры. В основном все что размещено на материнской плате, в корпусе компьютера, кроме процессора и жестких дисков подключено по PCI.

Посмотреть устройства Ubuntu подключенные по шине PCI можно с помощью команды lspci. Давайте рассмотрим ее синтаксис:

$ lspci опции

Опции утилиты указывают сколько данных нужно выводить и как их фильтровать. Рассмотрим подробнее:

  • -v – выводить подробную информацию об устройствах
  • -vv – выводить очень подробную информацию об устройствах
  • -n – показывать код производителя для устройства
  • -b – показать все адреса устройств на шине
  • -d – показать только устройства определенного производителя
  • -t – просмотр устройств ubuntu в виде дерева.
  • -s – показать информацию об определенном устройстве

Но обычно вам не понадобятся эти опции, чтобы посмотреть оборудование, подключенное по PCI просто выполните команду без параметров:

lspci

devices

В первой колонке отображен адрес устройства на шине PCI, так называемый, слот, во второй тип устройства, а затем его производитель и описание. Опция -n позволяет отображать вместо типа и описания id производителя и модели устройства.

Если вы хотите посмотреть только оборудование определенного типа, скажем, звуковую карту используйте фильтр grep:

lspci | grep audio

devices1

Или для видео карты:

lspci | grep VGA

devices2

Также можно фильтровать информацию по слоту устройства с помощью опции -s:

 lspci -s 00:02.0

devices3

Также мы можем фильтровать устройства по PCI id, идентификатору производителя:

 lspci -d 80ee:beef

devices4

Более подробную информацию об устройстве, можно посмотреть с помощью опции -v. По умолчанию мы видим только тип устройства и производителя, а с помощью этой опции можно увидеть дополнительные технические характеристики.

devices5

Хотите просмотреть какой драйвер ядра сейчас загружен для устройства? Эту информацию утилита предоставляет с опцией vv:

lspci -vv

devices9

Нас интересует строчка Kernel driver in use. Можем отфильтровать по ней:

lspci -vv | grep Kernel

devices10

lsusb

Несмотря на то, что контроллер USB подключен к PCI, в выводе команды lspci мы увидим только сам контроллер, для просмотра устройств  Ubuntu нам нужна другая команда, и это lsusb. Синтаксис тот же:

$ lsusb опции

Опций здесь поменьше:

  • –verbose – подробный вывод
  • -s – аналогично lspci, выводить устройства, подключенные к определенному порту
  • -d – выводить устройства по определенному идентификатора производителя
  • -t – включить отображение в виде дерева

Смотрим все подключенные устройства USB ubuntu:

lsusb

devices6Выбираем только устройства подключенные к первой шине, второму порту:

lsusb -s 001:002

devices7

Выбираем устройства по идентификатору производителя:

lsusb -d 80ee:0021

devices8

Здесь способ отображения похожий, в первой колонке шина и порт, разделенные двоеточием, дальше id производителя, а затем описание устройства.

lsscsi

SCSI контроллер тоже подключен к PCI, а к нему уже подключаются жесткие диски и оптические приводы. Для просмотра этих устройств используется утилита lsscsi. Если она не установлена в вашей системе, ее можно установить командой:

sudo apt-get install lsscsi

Синтаксис тот же:

$ lsscsi опции

Но опций тут немного больше:

  • -c – классический стиль, более подробная информация
  • -d – показать только определенное устройство
  • -k – отображать файлы дисков linux для устройств
  • -H – отображать хосты scsi, подключенные к системе
  • -l – вывод дополнительной информации по каждому устройству
  • -v – вывод файлов блочных устройств в каталоге /sys
  • -s – отобразить размер подключенного диска

Смотрим подключенные жесткие диски:

lsscsi

devices11

devices12А вместе с размером диска:

lsscsi -s

devices13

lscpu

Процессор подключен к отдельному слоту на материнской плате, и для просмотра информации о нем используется отдельная утилита – lscpu:

lscpu

devices15

lshw

Теперь, когда вы разобрались с основами, можно посмотреть еще одну утилиту. lshw выводит подробную информацию по каждому устройству в терминал. Здесь отображается как процессор и pci устройства, так и жесткие диски:

sudo lshw

devices14

С помощью опции -class можно указать тип оборудования, о котором нужно выводить информацию. Доступны такие классы:

sudo lshw | grep *

devices16

На этом дереве наглядно показана иерархия подключения устройств в Linux. Например, смотрим информацию только о видеокарте:

sudo lshw -class display

devices17

Или сетевом адаптере:

sudo lshw -class network

devices18

Здесь же можно посмотреть какой драйвер загружен для устройства, в строке Конфигурация, поле driver.

Как видите, консольные инструменты ничем не хуже программы Windows, и они полностью заменяют диспетчер устройств в Ubuntu.

Диспетчер устройств с графическим интерфейсом

Пожалуй, лучшей программой для решения таких задач будет hardinfo. Она позволяет посмотреть устройства Ubuntu подключенные к системе, подробную информацию о них, а также информацию об установленной системе и поддерживаемых ею функциях.

Эта программа не поставляется с дистрибутивом по умолчанию, но ее очень просто установить:

sudo apt install hardinfo

Вот так выглядит главное окно программы:

devices19

На вкладке Computer собрана информация о системе:

devices20

Если вам нужны только подключенные устройства ubuntu, то для этого есть раздел Devices, здесь есть подробная информация по каждому устройству:

devices21

Эта программа – отличная замена консольным методам, для тех кто не любит использовать терминал и хочет посмотреть устройства Ubuntu. Правда, здесь есть пару минусов – информация не настолько подробная, к тому же тут вы не узнаете какой модуль загружен для того или иного устройства.

Выводы

В этой статье мы рассмотрели как в Ubuntu посмотреть устройства, подключенные к компьютеру хотя и нет единой программы, диспетчер устройств в Ubuntu, но зато есть достаточно инструментов, чтобы ее заменить. Надеюсь, теперь для вас работа с устройствами в Linux стала чуть яснее. Если остались вопросы, пишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

На чтение 2 мин Просмотров 10 Опубликовано 23.09.2021

Несколько советов, которые помогут вам узнать об установленной видеокарте и используемом драйвере в вашей системе Linux.

Часто бывает необходимо узнать подробности об используемых видеокарте и драйвере. В этой инструкции я расскажу и покажу, как посмотреть информацию о видеокарте и видео драйвере в системе Linux.

Содержание

  1. lspci
  2. lshw
  3. HARDINFO
  4. KInfoCenter

lspci

Во-первых, нужно обновить базу данных PCI-устройств:

sudo update-pciids

Дальше вводим команду lspci, которая выводит подробную информацию об устройствах PCI в Linux системах. Большинство видеокарт, как правило, вставлено в слоты PCI на материнской плате.

lspci -v
lspci
Вывод команды lspci.

lshw

Команду lshw также можно использовать для отображения различной информации об оборудовании, включая вашу видеокарту. Эта утилита немного отличается от приведенной выше команды lspci. Команда lshw показывает дополнительную информацию, такую ​​как тактовая частота, скорость шины, адрес памяти.

sudo lshw -c video
lshw
Вывод команды lshw.

HARDINFO

Ещё можно посмотреть информацию о видеокарте в программе Hardinfo. Это один из самых простых способов получить всю информацию о вашем оборудовании, включая видеокарту.

Hardinfo
Вывод Hardinfo.

Установка Hardinfo:

sudo apt install hardinfo (для Ubuntu и связанных)
sudo dnf install hardinfo (для Fedora и связанных)
pacman -S hardinfo (для Arch)

После установки вы можете запустить Hardinfo и получить необходимую информацию.

KInfoCenter

Если вы используете KDE Plasma, то у него есть собственный KInfoCenter(Информация о системе), который отображает всю информацию о вашей системе.

KInfoCenter
Вывод KInfoCenter.

Я надеюсь, что эти инструменты помогут вам узнать о видеокарте, ее драйверах и других деталях вашей системы Linux.

Добавить комментарий