Como encontro o módulo do kernel por trás de uma interface de rede?


Respostas:


17

Na linha de comando, execute

sudo lshw -C network 

Para cada interface de rede, você terá uma seção começando com *-network. Cada seção logical name:possui uma linha que contém o nome da interface e uma configuration:linha que contém o driver e algumas outras informações.


10

Você pode consultar o sysfs para informar essas informações. Para saber qual driver uma interface de rede está usando:

ls -l /sys/class/net/<devname>/device/driver

... onde <devname>é algo parecido eth0. Este driverdiretório será um link simbólico para o nó do driver no sysfs.

Para obter o nome do módulo que fornece esse driver:

ls -l /sys/class/net/<devname>/device/driver/module

... e esse modulediretório será um link simbólico para o nó do módulo no sysfs.


Como detectar drivers virtuais (por exemplo veth)? É possível com ethtool -i IFACE_NAME, mas como encontrá-lo no sysfs?
Pevik

4

O IMHO para scripts é o melhor para usar as informações do sysfs (como Jeremy Kerr mostra), mas para obter mais informações:

ethtool -i IFACE_NAME

Por exemplo:

$ 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

1

Para dispositivos USB, você pode usar o lsusbcomando, por exemplo:

lsusb -t
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.