Настройка USB2NET на примере Dlink DUB-E100, STlab (Moschip)

Бывают ситуации, когда свободных ethernet портов у вас уже нет, а потребность в них появилась. Выходов может быть несколько: покупка ещё одной сетевой платы, замена текущих сетевых плат на платы с 2-мя или 4-мя портами, покупка USB2Ethernet устройств. В этой статье мы рассмотрим последний вариант.

Для этих целей я взял именно устройство Dlink DUB-E100 по причине того, что это устройство использует режим USB2.0. Есть и другие устройства по дешевле по $5(для сравнения — Dlink стоит $25 ), но они используют USB1.0 (редко USB1.1) в связи

 

В этой статье будем рассмотрена настройка устройств usb-to-ethernet на примере Dlink DUB-E100 для систем на базе Linux и FreeBSD и роутеров с прошивками OpenWRT

Так же рассмотрю ещё и другое устройство STlab USB2Ethernet, которое мне удалось завести на FreeBSD.

В результате тестов выяснилось, что пропускная способность составляет чуть меньше 4 Мбай/с (тесты проводились на FreeBSD 8.1 и замерялись через trafshow)

Тестовый стенд: роутер Linksys 160NL с прошивкой OpenWRT Backfire (10.03, r20728), ядро Linux OpenWrt 2.6.32.10 #20 Tue Apr 6 15:01:26 CEST 2010 mips GNU/Linux, FreeBSD 8.1 i386, Debian linux lenny 5 kernel 2.6.26

FreeBSD 8.1 i386

Внимание!.

Известен баг на http://lists.freebsd.org/pipermail/freebsd-virtualization/2012-July/000952.html : при вставлянии на живую USB-Ethernet с ядром, в который включён Vimage — сервер крешится.

Dlink DUB-E100

Поддержка этого устройства осуществляется с помощью модуля if_axe.ko. Для нормального функционирования делаем следующее:

— добавляем запись

if_axe_load="YES"

в файл /boot/loader.conf

— добавить запись

usbd_enable="YES"

в файл /etc/rc.conf

после этого перегружаемся и смотрим в dmesg:

ugen4.2: <vendor 0x2001> at usbus4
axe0: <vendor 0x2001 product 0x3c05, rev 2.00/0.01, addr 2> on usbus4
axe0: PHYADDR 0xe0:0x03
miibus4: <MII bus> on axe0
rlphy1: <IC Plus 10/100 PHY> PHY 3 on miibus4
rlphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
ue0: <USB Ethernet> on axe0
ue0: Ethernet address: 00:80:c8:3c:4c:35

После этого можно работать с интерфейсом ue0 как с обычным сетевым интерфейсом.

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

STlab USB2Ethernet

На FreeBSD 8.2 оно определяется как

ugen4.2: <Moschip Semiconductor> at usbus4

и больше ничего. А значит драйверов для него нет. Поиски привели на тыц1 (здесь описано как заставить работать под FreeBSD 7.X) и тыц2 . Именно тыц2 нам и надо. Скачиваем все файлы в одну папку и компилируем, копируем файлы if_mos.ko* в /boot/kernel и подгружаем:

#make && cp if_mos.ko* /boot/kernel/ && kldload /boot/kernel/if_mos.ko

После этого появляется сетевой интерфейс ue0:

# ifconfig ue0
ue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:12:34:55:55:90
media: Ethernet 100baseTX <full-duplex>
status: no carrier

Дальше можно присваивать адрес и работать как с обычной сетевой.

Не забудьте добавить строку

if_mos_load="YES"

в /boot/loader.conf

Linux Debian 5.0 Lenny

Модули ядра уже есть в стандартном базовом ядре (проверялось на ядре 2.6.26) для этого устройства.  Если же нету, то нужно пересобрать ядро с поддержкой этого устройства:

Drivers -> Networking -> USB -> Asix

Или добавить в конфигурационный файл ядра такие строки:

USB_USBNET
USB_NET_AX8817X

после чего пересобрать ядро.

Подгружаем модуль:

#modprobe usbnet
#modprobe asix

После чего вставляем наше устройство. В dmesg наблюдаем следующую картину:

[  303.295223] eth1: register 'asix' at usb-0000:02:03.0-1, ASIX AX88772 USB 2.0 Ethernet, 00:80:c8:3c:4c:35
[  303.296256] usbcore: registered new interface driver asix

Теперь у нас появился интерфейс eth1, с которым можно работать как с обычным сетевым

OpenWRT

 

Dlink DUB-E100

На поставляемом в комплекте диске идут драйвера под Windows, Linux, MacOS, но мы пойдём другим путём.

Данное устройство относится к модели ASIX AX8817X. Первым делом проверим, присутствует ли поддержка данного устройства в ядре. Для этого скачиваем исходники прошивки по адресу http://downloads.openwrt.org/backfire/10.03/backfire_10.03_source.tar.bz2, распаковываем и переходим в каталог backfire_10.03\package\kernel\modules. Открываем файл usb.mk и ищем строки содержащие ASIX. В данном случае они будут выглядеть так:

define KernelPackage/usb-net-asix
$(call KernelPackage/usb-net/Depends,@LINUX_2_6)
TITLE:=Kernel module for USB-to-Ethernet Asix convertors
KCONFIG:=CONFIG_USB_NET_AX8817X
FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/asix.$(LINUX_KMOD_SUFFIX)
AUTOLOAD:=$(call AutoLoad,61,asix)
endef
define KernelPackage/usb-net-asix/description
Kernel module for USB-to-Ethernet Asix convertors
endef
$(eval $(call KernelPackage,usb-net-asix))

Если же подобного кода нет — тогда можно либо добавив этот код и пересобрать ядро, либо обратиться к ссылке http://open-wrt.ru/dev/ticket/1481.

После этого устанавливаем такие пакеты: kmod-usb-net, kmod-usb-net-asix, kmod-usb-core, kmod-usb-ohci, kmod-usb-serial, kmod-usb-storage, kmod-usb2, libusb. Это можно сделать либо через web-интерфейс, либо через командную строку.

В итоге после подключения Dlink DUB-E100 в dmesg можно увидеть следующее:

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
usbcore: registered new interface driver asix
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
usb 1-1: new high speed USB device using ar71xx-ehci and address 2
usb 1-1: configuration #1 chosen from 1 choice
eth2: register 'asix' at usb-ar71xx-ehci-1, ASIX AX88772 USB 2.0 Ethernet, 00:80:c8:3c:4c:35

После этого можно настраивать сеть на интерфейсе eth2 и работать как с обычным сетевым интерфейсом.

DM9601 (SR9600)

У меня она определилась так:

# lsusb
Bus 001 Device 003: ID 0fe6:8101 Kontron (Industrial Computer Source / ICS Advent) DM9601 Fast Ethernet Adapter

А в Windows она определяется как

SR9600 USB To Fast Ethernet Adapter

Для его поддержки нужно установить пакет kmod-usb-net-dm9601-ether. А дальше точно так же, как и в случае выше.

Настройка USB2NET на примере Dlink DUB-E100, STlab (Moschip): 7 комментариев

  1. Ярослав

    Здравствуйте.
    Прошу помочь в установке dub e100 на 12.04
    Не могу найти пакеты kmod-usb-net, kmod-usb-net-asix, kmod-usb-core, kmod-usb-ohci, kmod-usb-serial, kmod-usb-storage, kmod-usb2
    чтобы выполнить установку.
    где они живут? 🙂

    1. skeletor Автор записи

      Перед любой уставкой пакета делайте
      opkg update
      Если не помогает, можно использовать пакеты из 10.X

      1. Ярослав

        на драйвер из коробки с dub e100

        :~/Рабочий стол/DUB_E100_Linux_v420$ make
        make -C /lib/modules/3.2.0-31-generic-pae/build SUBDIRS=/home/ya/Рабочий стол/DUB_E100_Linux_v420 modules
        make[1]: Вход в каталог `/usr/src/linux-headers-3.2.0-31-generic-pae’
        make[1]: *** Нет правила для сборки цели `стол/DUB_E100_Linux_v420′. Останов.
        make[1]: Выход из каталога `/usr/src/linux-headers-3.2.0-31-generic-pae’
        make: *** [default] Ошибка 2

        1. skeletor Автор записи

          Почитайте как собирать модули ядра. Вам сначала нужно скачать исходники.

  2. Ярослав

    сорри, вот что пишет:
    opkg update
    No command ‘opkg’ found, did you mean:
    Command ‘dpkg’ from package ‘dpkg’ (main)
    opkg: command not found
    я только начинающий пользователь ubuntu 12.04.
    пробовал установить драйвер с диска:
    «берем Linux kernel 3.x/2.6.x Driver тут: http://asix.com.tw/FrootAttach/driver/A … Source.zip

    Но их нужно «допилить». В файл asix.c функция usb_device_id нужно добавить блок

    // DLink DUB-E100C
    USB_DEVICE (0x2001, 0x1a02),
    .driver_info = (unsigned long) &ax88772b_info, »

    так и сделал, далее в терминале:

    make

    make -C /lib/modules/3.2.0-31-generic-pae/build SUBDIRS=/home/ya/Документы/AX88772B_772A_760_772_178_LINUX_Driver_v4.4.0_Source modules
    make[1]: Вход в каталог `/usr/src/linux-headers-3.2.0-31-generic-pae’
    Building modules, stage 2.
    MODPOST 1 modules
    make[1]: Выход из каталога `/usr/src/linux-headers-3.2.0-31-generic-pae’

    make install
    su -c «cp -v asix.ko /lib/modules/3.2.0-31-generic-pae/kernel/drivers/net/usb && /sbin/depmod -a»
    Пароль:
    su: Сбой при проверке подлинности
    make: *** [install] Ошибка 1

    какой пароль хочет?

    1. skeletor Автор записи

      Ну так почему вы сразу не сказали, что у вас линукс, а не wrt? Почитайте внимательно раздел про Linux Debian 5.0 Lenny, там написано, что делать. Скорее всего драйвера уже есть и нужно будет только подгрузить модуль.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*