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.
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.
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
W którymś z pierwszych tekstów jest opisane jak się instaluje pakiety, w tym ipkg-opt.
Przepraszam, oczywiście wpisuję „–tmp” zamiast „-tmp”, jak omyłkowo napisałem w poprzednim komentarzu.
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?
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