Prolific PL-2501 USBnet кабель и Linux

Не LANом единым жив Ethernet. Есть в природе такая замечательная вещь как USBnet, начитавшись про которую, я купил специальный кабель с шилдиком Gembird.
Вся специальность данного кабеля заключается в наличие чипа (в моем случае Prolific ) между штекерами. Под катом привожу описание того как я заставил его рабоать под ОС .

Хочу сказать что на момент написания этой записи я использовал ядро 2.6.37-rc1, и при этом не смог заставить работать данный девай без патча на модуль plusb, но об этом далее.

После подключения кабеля к ПК наблюдаем:

[email protected]:~$ 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 

Пользы от этого для меня не было:

[email protected]:~$ 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. [email protected]:~$ ifconfig usb0 usb0: error fetching interface information: Device not found 

Ну что же, будем патчить модуль, тем более изменения там не критичные. Добываем исходники ядра и патчимся:

[email protected]:~$ cd /usr/src/linux/drivers/net/usb [email protected]:/usr/src/linux/drivers/net/usb$ wget http://rascal.su/uploads/2010/11/plusb. [email protected]:/usr/src/linux/drivers/net/usb$  < plusb. [email protected]:/usr/src/linux/drivers/net/usb$ cd /usr/src/linux [email protected]:/usr/src/linux$ make SUBDIRS=drivers/net/usb modules 

Заменяем родной модуль:

[email protected]:~$ rmmod -f plusb [email protected]:~$ mv /lib/modules/`uname -r`/kernel/drivers/net/usb/plusb.ko \ /lib/modules/`uname -r`/kernel/drivers/net/usb/plusb.ko.orig [email protected]:~$ cp /usr/src/linux/drivers/net/usb/plusb.ko \ /lib/modules/`uname -r`/kernel/drivers/net/usb/plusb.ko 

После чего подключаем кабель:

[email protected]:~$ 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 [email protected]:~$ 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 "из коробки".