Я работаю над пользовательской Linux встроенной платой. На нем установлен KSZ9031 в качестве контроллера Ethe rnet. Из командной строки я могу установить его параметры, такие как скорость соединения и автосогласование, используя ethtool
, пример:
ethtool -s eth0 speed 100 duplex full autoneg off
Мне интересно понять, как драйвер устанавливает внутренние регистры KSZ9031 после выполнения этой команды.
Я нашел этот репозиторий, который должен быть официальным заголовком Micrel, с поддержкой моего специфицированного чипа c. Но я не могу найти, где драйвер устанавливает внутренние регистры. Здесь Я не могу найти исходный файл для моего указанного c устройства.
Куда мне обратиться?
ОБНОВЛЕНИЕ
Здесь вывод strace
команда, предложенная Марко Бонелли:
# strace -f ethtool -s eth0 speed 10 duplex full autoneg
off
execve("/usr/sbin/ethtool", ["ethtool", "-s", "eth0", "speed", "10", "duplex", "full", "autoneg", "off"], 0xbec3bd04 /* 17 vars */) = 0
...
...
socket(AF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
ioctl(3, SIOCETHTOOL, 0xbe9d4b48) = 0
ioctl(3, SIOCETHTOOL, 0xbe9d4b48) = 0
brk(NULL) = 0x5b000
brk(0x7c000) = 0x7c000
ioctl(3, SIOCETHTOOL, 0xbe9d4b48) = 0
exit_group(0) = ?
+++ exited with 0 +++