Linux узнать каким драйвером

Linux: How to find the device driver used for a device?

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

8 Answers 8

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 

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

I know the OP asked for «drivers being used», but what if the driver is not installed nor being used? How to find out just by the vendorID:productID ? Also, what if it is not a PCI device, and you only see it in lsusb for example?

@DrBeco: But if driver is not installed, what do you want to find? You should just google in this case

#!/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 
$ ~/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) 

I’d like to find solution which would find also veth and other virtual drivers. IMHO the only solution is to use ethtool or lshw .

Читайте также:  Чем раздать интернет linux mint

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 

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

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

FTR: the driver is shown at line titled configuration , for example: configuration: driver=btusb maxpower=100mA speed=12Mbit/s

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 

Источник

🏷 Как найти имя и версию драйвера сетевой карты в Linux

Вопрос: Сетевая карта Ethernet подключена к моей Linux-системе, и я хотел бы узнать, какой драйвер сетевого адаптера установлен для оборудования NIC. Есть ли способ узнать имя и версию драйвера сетевой карты для моей сетевой карты?

Для правильной работы аппаратного обеспечения сетевой интерфейсной платы (NIC) необходим соответствующий драйвер устройства для аппаратного обеспечения NIC.

Читайте также:  Ssh server on linux mint

Драйвер устройства NIC реализует аппаратно-независимый общий интерфейс между ядром Linux и NIC, так что пакеты могут перемещаться между ядром и NIC.

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

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

В этом случае вам нужно знать, какой модуль ядра является вашим драйвером NIC.

Способ первый

Первый способ заключается в проверке сообщений dmesg.

Поскольку ядро загружает необходимые аппаратные драйверы во время загрузки, вывод dmesg должен сообщить, установлен ли драйвер карты Ethernet.

○ → dmesg | grep -i ethernet [ 1.998782] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded

Приведенный выше вывод показывает, что драйвер с именем r8169 загружен в ядро.

Если вы хотите узнать более подробно об этом драйвере (например, о версии драйвера), вы можете использовать команду modinfo.

Если dmesg не выводит какую- либо информацию о драйвере Ethernet, это означает, что в вашей системе нет подходящего драйвера сетевого устройства.

Способ второй

Второй способ – использовать команду ethtool. Чтобы узнать имя драйвера для интерфейса eth0, выполните следующее.

Способ третий

Введите следующую команду, чтобы получить подробную информацию о доступных картах Ethernet и их драйверах.

Источник

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

устанавливал пропиретарные драйвера для Nvidia Geforce 920m как узнать, правильно ли они поставились?

OC: Endeavour OS (Arch Linux)
Видеокарта: NVIDIA Geforce 920m
ЦП: Intel core i3-4005u

Простой 7 комментариев

Suntechnic

я для этих целей запускаю nvidia-settings — если она видит оборудование (карту, мониторы) — значит все ок

04:00.0 3D controller: NVIDIA Corporation GK208BM [GeForce 920M] (rev a1) Subsystem: ASUSTeK Computer Inc. Device 1a6d Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- Kernel modules: nouveau

Suntechnic

Suntechnic

R4mBLe, я понятия не имею что за дистр Endeavour.
В Убунте ставится просто из реп. Посмотри есть ли в репах пакет nvidia-driver-5 или просто nvidia-5

Читайте также:  Progressbar as in linux

Например nvidia-driver-515 (у меня выше не работает и я не разбирался почему) или nvidia-driver-525.

В крайнем случае можно поставить прямо с сайта nvidia.

Если lsmod показывает подгруженный модуль nvidia, то драйвера поставились нормально
Но geforce карта скорее всего не используется, а используется встроенный intel

Suntechnic

Suntechnic

xibir, не знаю что я делаю не так, но у меня никакого оптимуса нет (даже пакет не стоит) и карточка работает вполне себе.

Suntechnic

xibir, я просто вижу что есть в репах два пакета — mate-optimus и чтото там еще (для кед кажется). Они не стоят.
Карточка работает отлично.
Правда сейчас глянул — на новом ноуте даже нет выбиралки в настройках какую карту использовать. Может быть тут одна Quadro M2200 (или я выключил интеграшку в Bios)
Но на старом ноуте с M500 точно был какой-то интел и там даже можно было в Nvidia Settings выбирать что будет работать при следующей загрукзке
На лету конечно не переключалось.

Источник

Оцените статью
Adblock
detector