Не LANом единым жив Ethernet. Есть в природе такая замечательная вещь как USBnet, начитавшись про которую, я купил специальный кабель с шилдиком Gembird.
Вся специальность данного кабеля заключается в наличие чипа (в моем случае Prolific PL-2501) между штекерами. Под катом привожу описание того как я заставил его рабоать под ОС Linux.
Хочу сказать что на момент написания этой записи я использовал ядро 2.6.37-rc1, и при этом не смог заставить работать данный девай без патча на модуль plusb, но об этом далее.
После подключения кабеля к ПК наблюдаем:
root@localhost:~$ lsusb ... Bus 002 Device 012: ID 067b:2501 Prolific Technology, Inc. PL2501 USB-USB Bridge (USB 2.0) ...
Самой полезной ссылкой, найденной в гугле, оказалась Bugzilla Novell. По ссылке предлагается патч добавляющий поддержку чипа PL-2501 в модуль plusb, а так же предлагается обходной вариант через modprobe.
Начнем с обходного варианта, может быть кому-то он будет полезен, но у меня он не сработал. Создаем файл /etc/modprobe.d/plusb.conf:
alias usb:v067Bp2501d*dc*dsc*dp*ic*isc*ip* plusb install plusb /sbin/modprobe --ignore-install plusb; echo "067b 2501" > /sys/bus/usb/drivers/plusb/newid
Пользы от этого для меня не было:
root@localhost:~$ dmesg ... [223790.973057] usb 2-2: new high speed USB device using ehci_hcd and address 12 [223791.119709] usb 2-2: New USB device found, idVendor=067b, idProduct=2501 [223791.119713] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [223791.119717] usb 2-2: Product: USB Transfer Cable [223791.119720] usb 2-2: Manufacturer: Prolific Technology Inc. root@localhost:~$ ifconfig usb0 usb0: error fetching interface information: Device not found
Ну что же, будем патчить модуль, тем более изменения там не критичные. Добываем исходники ядра и патчимся:
root@localhost:~$ cd /usr/src/linux/drivers/net/usb root@localhost:/usr/src/linux/drivers/net/usb$ wget http://rascal.su/uploads/2010/11/plusb.patch root@localhost:/usr/src/linux/drivers/net/usb$ patch < plusb.patch root@localhost:/usr/src/linux/drivers/net/usb$ cd /usr/src/linux root@localhost:/usr/src/linux$ make SUBDIRS=drivers/net/usb modules
Заменяем родной модуль:
root@localhost:~$ rmmod -f plusb root@localhost:~$ mv /lib/modules/`uname -r`/kernel/drivers/net/usb/plusb.ko \ /lib/modules/`uname -r`/kernel/drivers/net/usb/plusb.ko.orig root@localhost:~$ cp /usr/src/linux/drivers/net/usb/plusb.ko \ /lib/modules/`uname -r`/kernel/drivers/net/usb/plusb.ko
После чего подключаем кабель:
root@localhost:~$ dmesg ... [225265.854230] usb 2-2: new high speed USB device using ehci_hcd and address 13 [225266.000203] usb 2-2: New USB device found, idVendor=067b, idProduct=2501 [225266.000208] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [225266.000212] usb 2-2: Product: USB Transfer Cable [225266.000214] usb 2-2: Manufacturer: Prolific Technology Inc. [225266.020489] plusb 2-2:1.0: usb0: register 'plusb' at usb-0000:00:1d.7-2, Prolific PL-2301/PL-2302, ea:7f:f0:96:b0:af [225266.020596] usbcore: registered new interface driver plusb root@localhost:~$ ifconfig usb0 usb0 Link encap:Ethernet HWaddr ea:7f:f0:96:b0:af 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)
И вот, чудо произошло!
Честно говоря, мне не совсем понятно, почему модуль plusb все еще не поддерживает чип PL-2501 "из коробки".