Как создать петлю для устройства Ethernet через программное обеспечение?

468
linker06

Я хотел бы создать петлю для некоторых адаптеров usb-ethernet с набором микросхем ax88772b или axe 88179. В техническом описании упоминается петля PHY. Я думаю, это то, что я ищу, хотя я не уверен на 100%. Я попытался установить функцию обратной петли для ax88772b с помощью ethtool, однако там написано: «Операция не поддерживается». Так что либо я использую его неправильно, либо, возможно, драйвер не поддерживается. Я знаю, что это может быть сделано также с помощью аппаратного шлейфа (подключение проводов TX и RX), но мне нужно решение только для программного обеспечения (также для gbit ethernet скорость будет ограничена до 100 Мбит для аппаратного шлейфа afaik.) Таблица данных для ax88772b можно найти здесь:

https://github.com/fabiobaltieri/usb-100basefx/blob/master/docs/AX88772B_Datasheet_v104.pdf

0
В листе данных говорится, что конечная точка 0 является конечной точкой управления, регистр PHY PM_BMCR (адрес 0) имеет бит для обратной петли, а специфичные для производителя команды для чтения / записи регистров PHY находятся на p. 36. Так что попробуйте, и посмотрите, работает ли это? Ethtool вряд ли будет поддерживать специфичные для поставщика команды. dirkt 8 лет назад 0
Как [записать необработанные данные на USB] (http://unix.stackexchange.com/questions/292933/how-can-i-write-raw-data-to-a-usb-device). dirkt 8 лет назад 0
Большое спасибо. Я на самом деле нуб на эту тему. Но из того, что я понимаю, мне нужно было бы выдать команду через передачу управления в конечную точку 0. Я до сих пор не знаю, как это выглядит в реальной жизни, но это выглядит, по крайней мере, как то, что может быть сделано программным обеспечением. Знаете ли вы какие-нибудь хорошие книги / веб-сайты, которые помогают вам читать такую ​​таблицу данных или которые каким-то образом показывают путь от таблицы данных до драйвера? linker06 8 лет назад 0
Нет, я не знаю хороших книг / сайтов. В основном все оборудование работает аналогично - у оборудования есть регистры, вы записываете значения в регистры или считываете значения из них, и это оказывает некоторое влияние на оборудование. Единственное отличие для USB заключается в том, что вы читаете / записываете регистр с помощью специальных команд от производителя. Я тоже никогда не делал этого через USB, но я бы начал смотреть на примеры, используя libusb. И да, вам нужно написать программу на Си. В вашем случае, что на самом деле нужно сделать, очень просто (прочитать регистр, изменить бит, записать регистр), так что это не должно быть слишком сложным. dirkt 8 лет назад 0
Вы можете найти больше примеров использования libusb в python, например, это [учебник] (https://github.com/walac/pyusb/blob/master/docs/tutorial.rst), который использует библиотеку поверх libusb. [Здесь] (http://www.beyondlogic.org/usbnutshell/usb6.shtml#StandardRequests) - запросы протокола USB. meuh 8 лет назад 0

0 ответов на вопрос