Бывают ситуации, когда свободных 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. А дальше точно так же, как и в случае выше.
7 коментарів “Настройка USB2NET на примере Dlink DUB-E100, STlab (Moschip)”
Здравствуйте.
Прошу помочь в установке 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
чтобы выполнить установку.
где они живут? 🙂
Перед любой уставкой пакета делайте
opkg update
Если не помогает, можно использовать пакеты из 10.X
на драйвер из коробки с 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
Почитайте как собирать модули ядра. Вам сначала нужно скачать исходники.
сорри, вот что пишет:
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
какой пароль хочет?
Ну так почему вы сразу не сказали, что у вас линукс, а не wrt? Почитайте внимательно раздел про Linux Debian 5.0 Lenny, там написано, что делать. Скорее всего драйвера уже есть и нужно будет только подгрузить модуль.
Очень долго мучился со сборкой дров на эту пакость. Существует проблемка с компиляцией на версии ядра выше 2.6.31
Выложил переделанные https://yadi.sk/d/CZRSPCWWnnp3U