Вопрос или проблема
Я купил USB-адаптер Ethernet для своей ARM-платы, работающей под управлением Debian, чтобы иметь второй интерфейс. Я скомпилировал и загрузил драйвер/модуль, и устройство распознается:
[ 5.285487] usb 2-1.3.1: новое устройство USB высокой скорости номер 5 используется usb20_host
[ 5.410218] usb 2-1.3.1: Новое USB-устройство найдено, idVendor=0b95, idProduct=1790
[ 5.415139] usb 2-1.3.1: Новые строки USB-устройства: Mfr=1, Product=2, SerialNumber=3
[ 5.419292] usb 2-1.3.1: Продукт: AX88179
[ 5.423656] usb 2-1.3.1: Производитель: ASIX Elec. Corp.
[ 5.428398] usb 2-1.3.1: Серийный номер: 00803F5AF88883
[ 38.570534] ax88179_178a 2-1.3.1:1.0: eth1: зарегистрирован 'ax88179_178a' на usb-usb20_host-1.3.1, ASIX AX88179 USB 3.0 Gigabit Ethernet, 80:4a:56:02:1e:84
Некоторая дополнительная информация:
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 002 Device 003: ID 0bda:0724 Realtek Semiconductor Corp.
Bus 002 Device 004: ID 2109:2812
Bus 002 Device 005: ID 0b95:1790 ASIX Electronics Corp.
Затем я запустил
ifconfig eth1 up
ifconfig eth1 192.168.2.2 netmask 255.255.255.0
После чего интерфейс стал отображаться так:
ifconfig eth1
eth1 Link encap:Ethernet HWaddr 80:4a:56:02:1e:84
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Но когда я подключаю к ARM-плате, светодиоды на устройстве (для соединения и активности) не горят. Поэтому я проверил потребление энергии (несмотря на то, что USB-адаптер Ethernet подключен через активный USB-хаб):
lsusb -s 002:005 -v | grep MaxPower
MaxPower 248mA
Более того, я не могу пинговать IP снаружи, и я не могу достичь других ПК или шлюза в сети. Таким образом, похоже, что вход-выход вообще не работает. Адаптер полностью исправен и также мигает, когда подключен к моему ноутбуку с установленным opensuse 13.1 (с включенными драйверами).
Есть идеи, что может быть причиной этой проблемы?
EDIT2: В текущей конфигурации оба интерфейса подключены к одному коммутатору, я также поменял кабели и попробовал в общей сложности 5 разных, все они работают при использовании USB-адаптера с ноутбуком, подключенным к тому же коммутатору:
# ethtool eth1
Настройки для eth1:
Поддерживаемые порты: [ TP MII ]
Поддерживаемые режимы соединения: 10baseT/Полудуплекс 10baseT/Полный дуплекс
100baseT/Полудуплекс 100baseT/Полный дуплекс
1000baseT/Полудуплекс 1000baseT/Полный дуплекс
Поддержка использования пауз: Нет
Поддерживает автоопределение: Да
Рекламируемые режимы соединения: Не указано
Рекламируемая пауза: Нет
Рекламируемая автоопределение: Нет
Скорость: 10 Мбит/с
Дуплекс: Полудуплекс
Порт: MII
PHYAD: 3
Передатчик: встроенный
Автоопределение: отключено
Поддерживает Wake-on: pg
Wake-on: g
Уровень текущего сообщения: 0x00000007 (7)
drv probe link
Соединение не обнаружено: нет
# ethtool eth0
Настройки для eth0:
Поддерживаемые порты: [ TP MII ]
Поддерживаемые режимы соединения: 10baseT/Полудуплекс 10baseT/Полный дуплекс
100baseT/Полудуплекс 100baseT/Полный дуплекс
Поддержка использования пауз: Симметричный, только прием
Поддерживает автоопределение: Да
Рекламируемые режимы соединения: 10baseT/Полудуплекс 10baseT/Полный дуплекс
100baseT/Полудуплекс 100baseT/Полный дуплекс
Рекламируемая пауза: Симметричный, только прием
Рекламируемая автоопределение: Да
Скорость: 100 Мбит/с
Дуплекс: Полный
Порт: MII
PHYAD: 0
Передатчик: внешний
Автоопределение: включено
Соединение обнаружено: да
Вот еще немного информации о конфигурации:
ifconfig
eth0 Link encap:Ethernet HWaddr de:ad:ff:ad:fe:ef
inet addr:192.168.178.3 Bcast:192.168.178.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1295 errors:0 dropped:0 overruns:0 frame:0
TX packets:1115 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:321305 (313.7 KiB) TX bytes:184021 (179.7 KiB)
Interrupt:51
eth1 Link encap:Ethernet HWaddr 80:4a:56:02:1e:84
inet addr:192.168.178.10 Bcast:192.168.178.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
# ip addr show
1: lo: <LOOPBACK> mtu 16436 qdisc noop state DOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether de:ad:ff:ad:fe:ef brd ff:ff:ff:ff:ff:ff
inet 192.168.178.3/24 brd 192.168.178.255 scope global eth0
inet 192.168.2.2/24 brd 192.168.2.255 scope global eth0
8: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 80:4a:56:02:1e:84 brd ff:ff:ff:ff:ff:ff
inet 192.168.178.10/24 brd 192.168.178.255 scope global eth1
Вам следует убедиться, что таблица маршрутов и DNS настроены правильно. Чтобы исправить первое:
sudo ip route add 192.168.2.0/24 dev eth1
sudo ip route add default via 192.168.2.1
А для второго, с помощью sudo, добавьте следующие две строки в /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
Ответ или решение
Чтобы решить проблему с USB-адаптером Ethernet, который обнаружен системой и активен, но не работает, необходимо предпринять несколько шагов для диагностики и устранения неисправностей. Вот несколько предложений, которые могут помочь:
1. Проверка подключения и работоспособности адаптера
-
Состояние портов: Убедитесь, что адаптер правильно подключен к USB-порту и что порт работает. Попробуйте подключить адаптер к другому USB-порту, если это возможно.
-
Проверка питания: Убедитесь, что адаптер получает достаточное питание. Если вы используете активный USB-хаб, попробуйте подключить адаптер напрямую к плате.
2. Проверка конфигурации сети
-
Параметры IP-адреса: Убедитесь, что вы правильно настроили IP-адрес для
eth1
. Например, если ваша сеть работает на 192.168.2.0/24, убедитесь, что IP-адрес 192.168.2.2 не конфликтует с другими устройствами в сети. -
Маршрутизация: Проверьте, правильно ли настроены маршруты. Используйте команду:
ip route
Если ваш маршрутизатор в этой сети имеет адрес, например, 192.168.2.1, добавьте маршрут:
sudo ip route add 192.168.2.0/24 dev eth1 sudo ip route add default via 192.168.2.1
3. Проверка настройки DNS
Убедитесь, что настройки DNS корректны, чтобы ваше устройство могло резолвить адреса. Проверьте файл /etc/resolv.conf
и добавьте следующие строки:
nameserver 8.8.8.8
nameserver 8.8.4.4
4. Проверка состояния адаптера
- Использование
ethtool
: Выполните командуethtool eth1
, чтобы узнать информацию о состоянии соединения. Если вы видитеLink detected: no
, это означает, что проблема может быть в физическом соединении или совместимости.
5. Дополнительные проверки
-
Проверка выводов
dmesg
: Просмотрите сообщения системного журнала для поиска ошибок, связанных с адаптером:dmesg | grep eth1
-
Тестирование с другим устройством: Если у вас есть доступ к другому устройству, работающему на Linux, попробуйте подключить USB-адаптер к нему, чтобы проверить, работает ли адаптер при других условиях.
6. Обновление драйверов и системы
Если предыдущие шаги не помогли, подумайте о том, чтобы обновить драйверы USB-адаптера или саму операционную систему до последней версии, если возможно. Иногда обновления могут улучшить совместимость с оборудованием.
Заключение
Если ни один из этих шагов не решает проблему, возможно, проблема кроется в самом аппаратном обеспечении адаптера. Попробуйте обратиться к производителю за поддержкой или заменой устройства.