¿Cómo averiguo qué módulo de kernel se utiliza para una interfaz de red determinada?
¿Cómo averiguo qué módulo de kernel se utiliza para una interfaz de red determinada?
Respuestas:
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.
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 driver
directorio 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 module
directorio será un enlace simbólico al nodo del módulo en sysfs.
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
veth
)? Es posible conethtool -i IFACE_NAME
, pero ¿cómo encontrarlo en sysfs?