Come faccio a sapere quale modulo del kernel viene usato per qualsiasi interfaccia di rete?
Come faccio a sapere quale modulo del kernel viene usato per qualsiasi interfaccia di rete?
Risposte:
In fuga da riga di comando
sudo lshw -C network
Per ogni interfaccia di rete si otterrà una sezione che inizia con *-network
. Ogni sezione hai un logical name:
riga che contiene il nome dell'interfaccia e una configuration:
linea che contiene il driver e alcune altre informazioni.
Puoi interrogare sysfs per dirti queste informazioni. Per sapere quale driver utilizza un'interfaccia di rete:
ls -l /sys/class/net/<devname>/device/driver
... dov'è <devname>
qualcosa del genere eth0
. Questa driver
directory sarà un collegamento simbolico al nodo del driver in sysfs.
Per ottenere il nome del modulo che fornisce quel driver:
ls -l /sys/class/net/<devname>/device/driver/module
... e questa module
directory sarà un link simbolico al nodo del modulo in sysfs.
IMHO per gli script il migliore è usare le informazioni sysfs (come mostra Jeremy Kerr), ma per maggiori informazioni:
ethtool -i IFACE_NAME
Per esempio:
$ 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
)? È possibile conethtool -i IFACE_NAME
, ma come trovarlo da sysfs?