Есть ли способ программно назвать имя драйвера интерфейса, кроме парсинга вывода "ethtool -i interface_name"?
Я был бы рад, если бы его можно было извлечь из файла.
Вы можете запросить sysfs для этого. Прочитайте цель символической ссылки /sys/class/net/$interface/device/driver и примите участие после последней /.
sysfs
/sys/class/net/$interface/device/driver
/
Пример:
$ stat --format '%N' /sys/class/net/*/device/driver ‘/sys/class/net/eth0/device/driver’ -> ‘../../../../bus/pci/drivers/jme’ ‘/sys/class/net/wlan0/device/driver’ -> ‘../../../../bus/pci/drivers/iwlagn’