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

17

Como descubro qual módulo do kernel é usado para qualquer interface de rede?

Matt Joiner
fonte

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.

Florian Diesch
fonte
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.

Jeremy Kerr
fonte
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
pevik
fonte
1

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

lsusb -t
Pierz
fonte