Понимать, как ethtool отключает автоматическое включение в драйвер Micrel - PullRequest
0 голосов
/ 24 апреля 2020

Я работаю над пользовательской 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 +++
...