Як дізнатися, який модуль ядра використовується для будь-якого мережевого інтерфейсу?
Як дізнатися, який модуль ядра використовується для будь-якого мережевого інтерфейсу?
Відповіді:
У командному рядку запустіть
sudo lshw -C network
Для кожного мережевого інтерфейсу ви отримаєте розділ, починаючи з *-network
. У кожному розділі міститься logical name:
рядок, що містить ім'я інтерфейсу та configuration:
рядок, що містить драйвер та деяку іншу інформацію.
Ви можете запитати sysfs, щоб повідомити вам цю інформацію. Щоб сказати, який драйвер використовує мережевий інтерфейс:
ls -l /sys/class/net/<devname>/device/driver
... де <devname>
щось подібне eth0
. Цей driver
каталог буде символьним посиланням на вузол драйвера в sysfs.
Щоб отримати ім'я модуля, який забезпечує цей драйвер:
ls -l /sys/class/net/<devname>/device/driver/module
... і цей module
каталог буде символьним посиланням на вузол модуля в sysfs.
Для сценаріїв IMHO найкраще використовувати інформацію про sysfs (як показує Джеремі Керр), але для отримання додаткової інформації:
ethtool -i IFACE_NAME
Наприклад:
$ ethtool -i eth0
driver: 8139cp
version: 1.3
firmware-version:
bus-info: 0000:00:07.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
veth
)? Це можливо зethtool -i IFACE_NAME
, але як знайти його з sysfs?