Ostatnio pojawiło się sporo prośb o opisanie konfiguracji serwera wydruku na DIR-320 z zainstalowanym DD-WRT. Tak naprawdę wiele do opisywania nie ma, bo jest to bardzo proste. Ale przejdźmy przez cały proces krok po kroku.
Pierwszą rzeczą, którą trzeba zrobić jest włączenie obsługi drukarki w menu webowym routera. W zakładce Services/USB przestawiamy opcję USB Printer Support na Enabled i zapisujemy konfigurację. Włączymy też drukarkę, podłączoną np. do huba USB podłączonego do routera. Jeżeli cała operacja się udała, to po zalogowaniu do DIR-320 przez ssh lub telnet i wykonaniu poniższej komendy zobaczymy, że port drukarki jest widoczny jako plik w katalogu /dev/usb:
ls -l /dev/usb crw-rw---- 1 root root 180, 0 Jan 1 1970 lp0
Jak widać jest i znamy ścieżkę do niego – /dev/usb/lp0. Przechodzimy więc do instalacji potrzebnego pakietu (p910nd):
/opt/bin/ipkg-opt --tmp-dir /tmp install p910nd
Jak działa p910nd? Otwiera port 9100 i wszystko co na niego przyjdzie, przekierowuje do odpowiedniego portu routera. Wygląda znajomo? Tak, tak właśnie działają np. printservery w drukarkach HP. Stąd też protokół czasem nazywany jest hplj lub laserjet, a Windows przy konfigurowaniu drukarki port należy ustawić na RAW. Oczywiście nie oznacza to, że w ten sposób możemy podłączyć wyłącznie drukarkę firmy HP. Ja mam podłączonego, świetnego skądinąd, Canon ip4000. Wadą jest natomiast to, że w przypadku mojej drukarki nie działa komunikacja dwustronna. Można więc zapomnieć np. o sprawdzeniu stanu tuszy z komputera. Drukowanie natomiast działa i z Windows i z Linuksa.
Gdy już mamy zainstalowany pakiet nd910np, pora go uruchomić.
p910nd -b -f /dev/usb/lp0 0 &
& na końcu oznacza, że chcemy, żeby program działał w tle. Możemy oczywiście wywołać komendę bez tego i po sprawdzeniu przerwać pracę p9100nd przez ctrl+c. Załóżmy jednak, że program działa w tle. Opcja -b włącza komunikację dwustronną, a -f /dev/usb/lp0 specyfikuje port, o który nam chodzi. Zero na końcu oznacza, że jest to pierwsza drukarka a portem będzie 9100. Możemy przecież podłączyć kolejną drukarkę, wtedy zajmie ona następny port. Sprawdzimy jeszcze czy rzeczywiście nasłuchuje na porcie 9100:
netstat -an | grep 9100 tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN
Działa, wpiszmy więc p910nd do naszego skryptu startowego (/opt/config/startup.sh). Dodajemy po prostu na końcu linię
/opt/bin/p910nd -b -f /dev/usb/lp0 0 &
U mnie poprzedzona jest ona jeszcze 5-sekundowym opóźnieniem (sleep 5). Nie do końca pamiętam dlaczego, ale w przypadku gdyby były problemy ze startem p910nd, warto także i tę linię dołożyć.
I to właściwie wszystko. Pozostaje konfiguracja drukarki na komputerach. W konfiguracji w Linuksie jako Device URI podajemy przykładowo socket://192.168.132.1:9100 (oczywiście wstawiając właściwy adres).
W Windows dodając drukarkę konfigurujemy ją jako lokalną, tworząc port TCP/IP RAW. Oczywiście w jednym i drugim przypadku wybieramy odpowiedni model/sterownik drukarki.
I to już naprawdę wszystko. Oczywiście nie ma gwarancji, że z każdą drukarką zadziała, ale z większością nie powinno być problemów.


25 Luty 2010 @ 23:42
Następnym bardzo ciekawym tematem na kolejny tutorial może być DIR-320 +kamerka USB
W zasobach jest bardzo dobry program z detekcja ruchu – “motion”.
Pozdrawiam i gratuluję bardzo ciekawych i przydatnych opisów.
14 Marzec 2010 @ 22:15
Cześć,
Bardzo ciekawa seria!
Mam tylko jeden problem, mianowicie nie potrafię zainstalować pakietu p910nd.
Mam Windows, z routerem łączę się przez SSH za pomocą PuTTY.
Problem jest taki, że gdy wpisuję:
/opt/bin/ipkg-opt –tmp-dir /tmp install p910nd
dostaję odpowiedź:
-sh: /opt/bin/ipkg-opt: not found
Czy mogę liczyć na pomoc?
Pozdrawiam
15 Marzec 2010 @ 10:22
W którymś z pierwszych tekstów jest opisane jak się instaluje pakiety, w tym ipkg-opt.
15 Marzec 2010 @ 11:01
Przepraszam, oczywiście wpisuję “–tmp” zamiast “-tmp”, jak omyłkowo napisałem w poprzednim komentarzu.
6 Kwiecień 2010 @ 10:14
Posiadam w/w router, czy ktos nie orientuje sie czy da się podpiąć modem usb 3g Huawei E180, aby wykorzystać router jako zapasowe łącze internetowe?
29 Czerwiec 2010 @ 14:01
Wielki szacunek za dobrą robotę..
Byłbym bardzo wdzięczny za pomoc w ustawieniu tunelu L2TP. Wersja oprogramowania z obsługą usb ma bardzo okrojoną konfigurację VPN.
Znalazłem w necie opis ustawienia OPENVPN http://blog.gruszka.info/2010/05/31/konfiguracja-openvpn-na-routerze-z-dd-wrt/
ale niestety bra