Ostatnio Na Forum
Logowanie

Polityka prywatno?ci

Portal openrouter.info stosuje pliki cookies ("ciasteczka") pozwalające na dostosowanie zawartości portalu do indywidualnych potrzeb. Korzystanie z portalu bez zmiany ustawień dotyczących ciasteczek oznacza akceptację umieszczenia ich na urządzenia użytkownika. Zmianę ustawień pliku ciasteczek można wykonać zmieniając opcję w ustawieniach przeglądarki internetowej. Więcej informacji można znaleźć w Polityce prywatności.

USBIP w OpenWrt czyli udost?pnienie zdalnie drukarki/scanera usb

Email Drukuj

Je?li posiadamy drukark? usb to cz?sto spotykamy si? z problemem udost?pnienia jej po sieci. O ile same drukarki jeszcze wzgl?dnie da si? udost?pni? innym i dzia?a to bez problemu o tyle drukarki z skanerami, czytnikami kart i innymi dodatkami raczej nie da si? w prosty sposb udost?pni?. Co prawda s? print serwery na USB jednak raczej one tylko udost?pniaj? drukowanie a bardzo rzadko i skanowanie - bardzo mocno zale?y to od wsparcia technicznego danego urz?dzenia.

Przedstawi? tutaj metod? pod??czenia zdalnego drukarki USB do komputera po sieci TCP/IP. Wykorzystam w tym celu router WR1043ND, ktry ma wbudowany port usb. Do niego poprzez hub pod??cz? nasz? drukark? - w moim przypadku HP C5180. Wszystko udost?pnienie po sieci TCP/IP pod??czaj?c j? do innego komputera zdalnie. Wszystko to dzi?ki programowi USBIP, ktry dzia?a jako klient-server. Dzi?ki temu programowi port USB zdalny z routera b?dzie widziany jako port USB lokalny w komputerze - b?dzie to dla komputera zupe?nie przezroczyste tak jakby to by?y jego w?asne porty sprz?towe do ktrych pod??czyli?my drukark?.

Nale?y sie tutaj jedna wa?na uwaga. Jest to po??czenie 1:1 czyli nie mo?e kilka komputerw pod??czy? si? na raz do tak udost?pnionego portu USB na routerze (mo?e kiedy? b?dzie mo?na, projekt ca?y czas si? rozwija).

Tak jak drukark? mo?emy i udost?pni? dowolne urz?dzenie np. kamer? usb, pendrive, dysk usb, kart? muzyczn? i co tam kto? sobie wymy?li na usb.
Wszystko co tutaj opisz? testowane by?o na OpenWrt 10.03.x Backfire z jednej strony a Ubuntu 10.04 z drugiej.

Jeszcze jedna ma?a uwaga. USBIP ci?gle si? rozwija i ci?gle poprawiane s? jakie? b??dy. Dlatego nale?y zdawa? sobie spraw? ?e z cz??ci? sprz?tu mog? wyst?pi? problemy uniemo?liwiaj?ce poprawn? prac?.

Schemat pod??czenia:

openwrt_wr1043nd_hpc5180_usbip

Instalacja:
Niestety w Backfire w pakietach nie jest wszystko skompilowane w zwi?zku z powy?szym aby u?ywa? USBIP nale?y skompilowa? sobie dystrybucj?:
Potrzebujemy poni?szych pakietw:

libsysfs
sysfsutils
glib2
libwrap
usbip
usbip-server
kmod-usbip
kmod_usbip-server


W make menuconfig zaznaczamy:

Kernel modules -> USB Support -> kmod-usbip
Kernel modules -> USB Support -> kmod-usbip-server
Network -> usbip
Network -> usbip-server

reszta pakietw zaznaczy nam si? automatycznie jak wybierzemy te wy?ej.


Mo?e nam si? przyda? ale nie jest wymagane:


Utilities -> usbutils


Kompilacj? przeprowadzisz wedle hosto na http://openwrt.pl

Pakiety skompilowane na backfire 10.03.x dla wr1043nd mo?esz pobra? z repozytorium. Musisz zwrci? uwag?, i? backfire ci?gle si? rozwija i w czasie instalacji mo?e wyst?pi? niezgodno?? wersji pakietw. W takim uk?adzie musisz sobie przekompilowa? we w?asnym zakresie te pakiety.


Uruchomienie w OpenWrt:

Sprawdzamy jakie mamy urz?dzenia pod??czone do usb:

root@OpenWrt:/tmp# lsusb
Bus 001 Device 006: ID 1110:9041 Analog Devices Canada, Ltd (Allied Telesyn)
Bus 001 Device 005: ID 0951:1608 Kingston Technology
Bus 001 Device 003: ID 03f0:5811 Hewlett-Packard PhotoSmart C5100 series
Bus 001 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

wida? z tego ?e mamy modem Fast800 Sagema, Pendrive Kingstona, Drukark? HP C5180, dodatkowy hub USB


Najpierw uruchamiamy demon usbipd:

usbipd -D

w wyniku uruchomienia dostaniemy poni?szy komunikat:

usbip err: stub_server.c: 433 (do_standalone_mode) open usb.ids
Bind usbip.ko to a usb device to be exportable!

Aby usbipd nie wyrzuca? nam b??du nr. 433 musimy utworzy? katalog i zrobi? link symboliczny:

mkdir /usr/share/hwdata
ln -s /usr/share/usbip/usb.ids /usr/share/hwdata/usb.ids

Jeszcze jedna ma?a uwaga. Plik usb.ids jest w do?? starej wersji 2008. Co prawda to tylko opis urz?dze? do portw usb wi?c na usbip nie ma to jakiego? wp?ywu ale je?li kto? chcia?by mie? najnowsz? wersj? to ?ci?gnie j? ze strony:

http://www.linux-usb.org/usb.ids

Jak mamy juz uruchomionego demona usbipd pod??czymy do niego nasza drukark?. Aby to zrobi? najpierw musimy dowiedzie? jaki ma identyfikator usbip. S?u?y do tego jedna z opcji bind_driver:

root@OpenWrt:/tmp# bind_driver --list
List USB devices
- busid 1-1 (0409:005a)
1-1:1.0 -> hub

- busid 1-1.1 (03f0:5811)
1-1.1:1.0 -> none
1-1.1:1.1 -> none
1-1.1:1.2 -> none
1-1.1:1.3 -> usb-storage

- busid 1-1.3 (1110:9041)
1-1.3:1.0 -> ueagle-atm
1-1.3:1.1 -> ueagle-atm
1-1.3:1.2 -> ueagle-atm

- busid 1-1.4 (0951:1608)
1-1.4:1.0 -> usb-storage

wida? teraz, i? urz?dzenie o numerze usbip=1-1.1 to nasza drukarka HP C5180. Wida? rwnie?, i? ten port ma 4 wpisy. Drukarka C5180 to tak naprawd? skaner, drukarka, czytnik kart Flash - ma 4 porty. Dlatego ka?dy z tych kana?w obs?uguje inn? funkcjonalno?? drukarki po usb i dlatego musimy pod??czy? ca?y identyfikator.

Pod??czenie portu usb drukarki wykonujemy tym samym co poprzednio programem - czyli bind_drivers:

bind_driver --usbip 1-1.1

Je?li chodzi o router to w zasadzie wszystko co robimy. Demon usbipd udost?pnia nasz? drukark? na porcie tcpip 3240 do ktrego to portu si? b?dziemy pod??cza?. Demon nas?uchuje na wszystkich adresach ip.

Jak od??czy? urz?dzenie wcze?niej pod??czone ? Wykonujemy komend?:

bind_driver --other 1-1.1


Jak wy??czy? demona usbipd ? Wykonujemy komend?:

killall usbipd

Program bind_driver ma nast?puj?ce parametry:

root@OpenWrt:~# bind_driver
Usage: bind-driver [OPTION]
Change driver binding for USB/IP.
--usbip busid make a device exportable
--other busid use a device by a local driver
--list print usb devices and their drivers
--allusbip make all devices exportable

Skrypt do uruchomienia tego co powy?ej opisane w OpenWrt:
Tworzymy plik i nadajemy odpowiednie uprawnienia:

touch /etc/init.d/usbipd
chmod +x /etc/init.d/usbipd

o zawarto?ci:

#!/bin/sh /etc/rc.common

START=98

start() {
usbipd -D
bind_driver --usbip 1-1.1
}

stop() {
bind_driver --other 1-1.1
killall usbipd
}

potem ju? tylko nale?y wykona?:

/etc/init.d/usbipd enable
/etc/init.d/usbipd start

UWAGA: nale?y wpisa? do skryptu prawid?owy identyfikator usbid pobrany z "bind_drivers --list".



Pod??czenie udost?pnionej drukarki w Ubuntu 10.04:

Instalacja:

apt-get update
apt-get install usbip usbip-client


Uruchomienie:
Nale?y za?adowa? poni?sze modu?y:

sudo modprobe usbip_common_mod
sudo modprobe vhci_hcd

Aby si? uruchamia?y modu?y w czasie startu komputera nale?y je dopisa? do modules:

sudo echo "usbip_common_mod" >> /etc/modules
sudo echo "vhci_hcd" >> /etc/modules


W tym momencie mo?na ju? przyst?pi? do pod??czenia zdalnej drukarki po usbip:
Sprawdzamy jakie urz?dzenia udost?pnione s? na routerze:

sudo usbip --list 192.168.1.1

wynikiem tej komendy b?dzie:

rpc@ubuntu:~$ sudo usbip -l 192.168.1.1
- 192.168.1.1
1-1.1: Hewlett-Packard : PhotoSmart C5100 series (03f0:5811)
: /sys/devices/platform/ar71xx-ehci/usb1/1-1/1-1.1
: (Defined at Interface level) (00/00/00)
: 0 - Vendor Specific Class / unknown subclass / unknown protocol (ff/cc/00)
: 1 - Printer / Printer / Bidirectional (07/01/02)
: 2 - Vendor Specific Class / Vendor Specific Subclass / Vendor Specific Protocol (ff/ff/ff)
: 3 - Mass Storage / SCSI / Bulk (Zip) (08/06/50)

Wita? od razu, i? na routerze zosta?a udost?pniona drukarka HP C5180 i jest ona osiagalna po identyfikatorze "1-1.1"


Jak znamy ju? identyfikator udost?pnionej drukarki to przyst?pujemy do jej zamontowania w linux:

sudo usbip -a 192.168.1.1 1-1.1

wynikiem tej komendy b?dzie:

rpc@ubuntu:~$ sudo usbip -a 192.168.1.1 1-1.1
8 ports available

port 0 attached

w tym momencie mamy ju? w systemie pod??czone porty usb drukarki z routera.

Aby to sprawdzi? wywo?ujemy:

rpc@ubuntu:~$ sudo usbip -p
8 ports available

Port 00: at High Speed(480Mbps)
Hewlett-Packard : PhotoSmart C5100 series (03f0:5811)
9-1 -> usbip://192.168.1.1:3240/1-1.1 (remote devid 00010003 (bus/dev 001/003))
9-1:1.0 used by unknown
9-1:1.1 used by usblp
/sys/devices/platform/vhci_hcd/usb9/9-1/9-1:1.1/usb/lp0/device
9-1:1.2 used by unknown
9-1:1.3 used by usb-storage
Port 01:
Port 02:
Port 03:
Port 04:
Port 05:
Port 06:
Port 07:

W sumie to nic nie trzeba robi? wi?cej. ubuntu sam nam zainstaluje drukark?.
Je?li chodzi o scaner to pracuje od razu. Jest automatycznie wykrywany przez xsane czy Proste Skanowanie Ubuntu.
Jak w?o?ymy kart? SD do czytnika w drukarce to automatycznie nam si? otworzy folder karty w Ubuntu.
Reasumuj?c: usbip przesy?a nam przezroczy?cie pod??czone urz?dzenie usb z routera po sieci TCP/IP tak jakby by?o pod??czone bezpo?rednio do komputera.


Od??czenie urz?dzenia od Ubuntu mo?emy wykona? za pomoc? komendy:

usbip --detach [portno]

gdzie numer portu wyczytamy z komendy powy?ej czyli "usbip -p"

Wygl?da? to mo?e nast?puj?co:

rpc@ubuntu:~$ sudo usbip -d 00
8 ports available

port 0 detached




Dzi?ki USBIP bezproblemowo drukowa?em, skanowa?em i mia?em dost?p do czytnika kart w drukarce.



Ps.

Pojawi? si? port na windows sterownikw usbip. Sterowniki uda?o mi si? zainstalowa? jednak?e samej drukarki nie uda?o mi si? z powodzeniem pod??czy?. Windows Xp rozpocz?? wykrywanie sprz?tu ale si? wywala. Wida? w takim uk?adzie i? jeszcze trzeba troch? pracy w?o?y? aby dzia?a?o. Co nie znaczy ?e np. jaka? kamera nie b?dzie z powodzeniem dzia?a?a.



Najaktualniejsz? wersj? tego dokumentu znajdziesz zawsze pod adresem http://rpc.one.pl

 
Share
designed by digi-led.pl
góra
...Copyright © 2010-2013, Ekipa openrouter.info