¿Cómo encuentro qué módulo del kernel está detrás de una interfaz de red?

Respuestas:

17

En la línea de comando ejecutar

sudo lshw -C network 

Para cada interfaz de red, comenzará una sección *-network. Cada sección tiene una logical name:línea que contiene el nombre de la interfaz y una configuration:línea que contiene el controlador y alguna otra información.

Florian Diesch
fuente
10

Puede consultar sysfs para contarle esta información. Para saber qué controlador está utilizando una interfaz de red:

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

... donde <devname>es algo así eth0. Este driverdirectorio será un enlace simbólico al nodo del controlador en sysfs.

Para obtener el nombre del módulo que proporciona ese controlador:

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

... y este moduledirectorio será un enlace simbólico al nodo del módulo en sysfs.

Jeremy Kerr
fuente
¿Cómo detectar controladores virtuales (por ejemplo veth)? Es posible con ethtool -i IFACE_NAME, pero ¿cómo encontrarlo en sysfs?
pevik
4

En mi humilde opinión para los scripts, lo mejor es utilizar la información de sysfs (como muestra Jeremy Kerr), pero para obtener más información:

ethtool -i IFACE_NAME

P.ej:

$ 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
fuente
1

Para dispositivos USB puede usar el lsusbcomando, por ejemplo:

lsusb -t
Pierz
fuente