LINUX.ORG.RU

BananaPi D1+ Usb to Ethernet adapter

 , , ,


0

1

Всем привет. Ребята, выручайте.Есть ip камера BananaPi D1 c linux 3.4.35. Хочу к ней прикрутить Usb to Ethernet adapter. Есть 2 адаптера. Один на чипе Asix, другой на Realtek 8152b. Компилирую модули, подгружаю в систему и ни один адаптер не работает. В ifconfig нет Tx пакетов. Вывод каких команд предоставить? Причем wifi адаптеры на чипах 8188 и 8192 работают. Направьте на путь решения проблемы. Спасибо.


Ответ на: комментарий от alx777

[root@test ~]# dmesg

  • usb 1-1: new high-speed USB device number 2 using usb-host
  • usb 1-1: New USB device found, idVendor=0b95, idProduct=772b
  • usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  • usb 1-1: Product: AX88772B
  • usb 1-1: Manufacturer: ASIX Elec. Corp.
  • usb 1-1: SerialNumber: 0011DB

[root@test ~]# lsusb

  • Bus 001 Device 002: ID 0b95:772b
  • Bus 001 Device 001: ID 1d6b:0002

затем подгружаю модули

[root@test ~]# insmod /mnt/mii.ko

[root@test ~]# insmod /mnt/usbnet.ko

[root@test ~]# insmod /mnt/asix.ko

  • ASIX USB Ethernet Adapter:v4.21.0http://www.asix.com.tw
  • eth%d: status ep1in, 8 bytes period 11
  • eth0: register 'asix' at usb-Anyka usb host controller-1, ASIX AX88772B USB 2.0 Ethernet, 00:0e:c6:8f:d5:e3
  • usbcore: registered new interface driver asix

[root@test ~]# ifconfig -a

  • eth0 Link encap:Ethernet HWaddr 00:0E:C6:8F:D5:E3
  • BROADCAST 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)
  • lo Link encap:Local Loopback
  • LOOPBACK MTU:16436 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:0
  • RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
tohax
() автор топика
Ответ на: комментарий от tohax

А что ты с ним делать собираешься ? Если TCP/IP, то адрес какой-нибудь было бы неплохо назначить статический или по DHCP. Вручную можно так попробовать

ifconfig eth0 192.168.1.111

Ну а так вроде все ок

alx777 ★★
()
Ответ на: комментарий от alx777

назначаю

[root@test ~]# ifconfig eth0 192.168.1.111 up
eth0: rxqlen 0 --> 5
[root@test ~]# eth0: ax88772b - Link status is: 0

подключаю патчкорд, который подключен к ноутбуку с адресом 192.168.1.112
[root@test ~]# eth0: ax88772b - Link status is: 1

Линк статус поменялся на 1, значит физика есть, и адаптер определил подключение кабеля. НО пинги не идут. Пакеты не ходят. В этом то и проблема

[root@test ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0E:C6:8F:D5:E3
inet addr:192.168.1.111 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2 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:92 (92.0 B) TX bytes:0 (0.0 B)

Rx 2 пакета , а Tx вообще тишина.
В чем может быть проблема?

tohax
() автор топика
Ответ на: комментарий от tohax

ping 192.168.1.112->192.168.1.111 и 192.168.1.111->192.168.1.112 оба не работают ?

А если wireshark'ом на ноуте этот интерфейс посмотреть ?

Может firewall ICMP режет ?

alx777 ★★
()
Ответ на: комментарий от alx777

Да. Ни в одну сторону пинг не идет. Пробовал подключать к 3 разным компьютерам. Брандмауэр отключен, антивируса нет. Wireshark показывает только исходящие пакеты с ноутбука. Может какие опции при компиляции ядра нужно удалить или добавить? Tcpdump пробовал скомпилить и запустить на камере, но при запуске пишет live packet capture is not supported on this device. Что еще попробовать?

tohax
() автор топика
Ответ на: комментарий от alx777

Пробовал подключать адаптер к компьютеру с Debian, Windows 8.1, Windows 10. Везде работает без проблем.

[root@test ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

tohax
() автор топика
Ответ на: комментарий от alx777

iptables нет. Конфигурил и собирал ядро сам. Может быть тогда добавить поддержку iptables и разрешить все соединения? Но с wifi свистками то и так работает...

tohax
() автор топика
Ответ на: комментарий от alx777

да

[root@test /mnt]# ./ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half
100baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 16
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pg
Wake-on: p
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes

tohax
() автор топика
Ответ на: комментарий от alx777

ASIX USB Ethernet Adapter:v4.21.0http://www.asix.com.tw
С пересборкой трудно. Пробовал пару раз. Не получается нормально перенести файлы (драйверы) этой платформы (anyka ak3918) в новое ядро. Buildroot тоже никак не осилю. Думаю может быть драйвер usb контроллера кривой, потому как производитель выпустил сырой продукт. Ни поддержки, ни документации. В коде драйверов для этой платформы постоянно встречается FIXME и TODO. Печально. Пробовал пропатчить ядро с 3.4.35 до 3.4.113. На 3.4.113 та же песня.

tohax
() автор топика
Ответ на: комментарий от tohax

Ну если он пакеты все-таки принимает то большая часть функционала присутствует

А с тем драйвером что по дефолту с 3.4.35 идет пробовал ?

Я подозреваю что с http://www.asix.com.tw уже под 4.x.x соптимирован

alx777 ★★
()
Ответ на: комментарий от alx777

да. родной тоже пробовал. Много всяких драйверов пробовал. такое же поведение. Д принимает только 1 или 2 пакета, а потом тишина.

tohax
() автор топика
Ответ на: комментарий от alx777

Контроллер встроен в процессор.Я так понимаю вот эти 2 файла отвечают за работу usb. https://github.com/tohax/Lamobo-wifi/tree/master/src/kernel/drivers/usb/host/...

Сегодня удалось запустить tcpdump на камере. Ничего не показывает. нет пакетов никаких.

tohax
() автор топика
Ответ на: комментарий от alx777

USB_AKOTG_DMA изначально отключен в конфиге. Пробовал с ним, но при его компиляции ошибка: ругается на строку какую-то. Я ее закоментировал к коде и тогда все прошло успешно. Но это не помогло. А если USB_AKOTG_HS_HCD отключить, то вообще usb устройства при подключении не определяются. В lsusb пусто. Заметил вот еще какую особенность. При подключении адаптера ASIX в компьютер с Debian можно наблюдать такую последовательность загрузки модулей:

root@debian:~# lsmod
Module Size Used by
asix 45056 0
usbnet 45056 1 asix
libphy 53248 1 asix
mii 16384 2 usbnet,asix

Причем видно, что mii, usbnet и libphy используются asix'ом(он зависит от них), а вот на камере другая история:

[root@test ~]# lsmod
asix 13233 0 - Live 0xbf015000
usbnet 12894 1 asix, Live 0xbf00d000
libphy 14243 0 - Live 0xbf004000
mii 3405 2 asix,usbnet, Live 0xbf000000

asix использует(зависит) только mii и usbnet. libphy 0. Это может влиять на работу сети?

tohax
() автор топика
Ответ на: комментарий от alx777

Для этого нужно выгружать драйвер USB_AKOTG_HS_HCD и подгружать udc.ko, тогда ethernet over usb работает(g_ether), и как флешка камера определяется(g_mass_storage). В нее флешку не втыкал.

tohax
() автор топика
Ответ на: комментарий от tohax

Сегодня удалось поймать этот единственный пакет. Может это как-то поможет

[root@test ~]# 08:27:51.448825 f0:76:1c:0e:ec:d7 (oui Unknown) > 33:33:00:01:00:02
(oui Unknown), ethertype IPv6 (0x86dd), length 150:
0x0000: 6000 0000 0060 1101 fe80 0000 0000 0000 `....`..........
0x0010: 907b d0be aba4 0db5 ff02 0000 0000 0000 .{..............
0x0020: 0000 0000 0001 0002 0222 0223 0060 b26c .........".#.`.l
0x0030: 01e2 e6e4 0008 0002 0000 0001 000e 0001 ................
0x0040: 0001 2198 f444 1008 b123 9105 0003 000c ..!..D...#......
0x0050: 17f0 761c 0000 0000 0000 0000 0027 000a ..v..........'..
0x0060: 0008 4164 6d69 6e2d 5043 0010 000e 0000 ..Admin-PC......
0x0070: 0137 0008 4d53 4654 2035 2e30 0006 0008 .7..MSFT.5.0....
0x0080: 0018 0017 0011 0027 .......'
asix 1-1:1.0: eth1: link up, 100Mbps, full-duplex, lpa 0xCDE1

tohax
() автор топика
Ответ на: комментарий от tohax

У меня было нечто похожее с USB драйвером на Zynq с Ethernet over USB, интерфейс конфигурировался и даже ping работал. Но при попытке залогиниться по ssh первые пара пакетов проходило, после чего интерфейс зависал. Оказалось что USB драйвер клинило от больших пакетов. Как workaround помогло переключить USB контроллер в full-speed mode (USB 1.1)

alx777 ★★
()
Ответ на: комментарий от tohax

Сложно сказать, в моем случае это был параметр в device tree

Попробуй еще MTU на интерфейсе уменьшить, если там дело в размере пакета то может помочь

ifconfig eth0 mtu 100

Только устанавливай MTU до получения первого пакета из сети, лучше всего с отключенным кабелем

alx777 ★★
()
Ответ на: комментарий от tohax

Тогда наверное остается только дебажить драйвера, включить AKOTG_HS_DEBUG и AKOTG_HS_VERBOSE_DEBUG, понавставлять printk и смотреть что там происходит.

alx777 ★★
()
Ответ на: комментарий от alx777

Большое спасибо за помощь и участие. Буду исследовать проблему дальше.

tohax
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.