- Linux: How to find the device driver used for a device?
- 8 Answers 8
- 🏷 Как найти имя и версию драйвера сетевой карты в Linux
- Способ первый
- Способ второй
- Способ третий
- Как узнать какой видеодрайвер и видеокарта используются в linux?
- lspci
- lshw
- HARDINFO
- KInfoCenter
- How to find network card driver name and version on Linux
- Method One: dmesg
- Method Two: ethtool
- Method Three: lshw
- Support Xmodulo
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 .
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.
Драйвер устройства 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 и их драйверах.
Как узнать какой видеодрайвер и видеокарта используются в linux?
Несколько советов, которые помогут вам узнать об установленной видеокарте и используемом драйвере в вашей системе Linux.
Часто бывает необходимо узнать подробности об используемых видеокарте и драйвере. В этой инструкции я расскажу и покажу, как посмотреть информацию о видеокарте и видео драйвере в системе Linux.
lspci
Во-первых, нужно обновить базу данных PCI-устройств:
Дальше вводим команду lspci, которая выводит подробную информацию об устройствах PCI в Linux системах. Большинство видеокарт, как правило, вставлено в слоты PCI на материнской плате.
lshw
Команду lshw также можно использовать для отображения различной информации об оборудовании, включая вашу видеокарту. Эта утилита немного отличается от приведенной выше команды lspci. Команда lshw показывает дополнительную информацию, такую как тактовая частота, скорость шины, адрес памяти.
HARDINFO
Ещё можно посмотреть информацию о видеокарте в программе Hardinfo. Это один из самых простых способов получить всю информацию о вашем оборудовании, включая видеокарту.
sudo apt install hardinfo (для Ubuntu и связанных)
sudo dnf install hardinfo (для Fedora и связанных)
pacman -S hardinfo (для Arch)
После установки вы можете запустить Hardinfo и получить необходимую информацию.
KInfoCenter
Если вы используете KDE Plasma, то у него есть собственный KInfoCenter(Информация о системе), который отображает всю информацию о вашей системе.
Я надеюсь, что эти инструменты помогут вам узнать о видеокарте, ее драйверах и других деталях вашей системы Linux.
How to find network card driver name and version on Linux
Question: An Ethernet network interface card is attached to my Linux box, and I would like to know which network adapter driver is installed for the NIC hardware. Is there a way to find out the name and version of a network card driver for my network card?
For network interface card (NIC) hardware to operate properly, you need a suitable device driver for the NIC hardware (e.g., ixgbe driver for Intel NICs). A NIC device driver implements a hardware-independent common interface between the Linux kernel and the NIC, so that packets can be moved between the kernel and the NIC. While some drivers may be statically built in the kernel, most drivers for modern NICs are dynamically loaded as kernel modules.
When you are troubleshooting a NIC hardware problem, one thing you can do is to check whether a correct network adapter driver is installed properly. In this case, you need to know which kernel module is your NIC driver.
There are several ways to find the name/version of an Ethernet card driver on Linux.
Method One: dmesg
The first method is to to check dmesg messages. Since the kernel loads necessary hardware drivers during boot, dmesg output should tell if an Ethernet card driver is installed.
The above output shows that a driver named tg3 is loaded in the kernel.
If you want to know more detail about this driver (e.g., driver version), you can use modinfo command.
If dmesg does not print any information about Ethernet driver, that means no suitable network device driver is available on your system.
Method Two: ethtool
The second method is to use the ethtool command. To find out the driver name for an interface eth0 , run the following.
Method Three: lshw
Another useful tool for NIC driver information is lshw . Type the following command to get detailed information about available Ethernet card(s) and their driver.
In the lshw output, look for the capabilities line, and examine driver and driverversion in the line.
If no suitable NIC driver is installed on your system, the driver field will remain empty.
Support Xmodulo
This website is made possible by minimal ads and your gracious donation via PayPal or credit card
Please note that this article is published by Xmodulo.com under a Creative Commons Attribution-ShareAlike 3.0 Unported License. If you would like to use the whole or any part of this article, you need to cite this web page at Xmodulo.com as the original source.