Konfiguracja drukarki USB dla DIR-320 z DD-WRT

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.

Ten wpis został opublikowany w kategorii Komputery i oznaczony tagami , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

0 odpowiedzi na Konfiguracja drukarki USB dla DIR-320 z DD-WRT

  1. Kordian pisze:

    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.

  2. damian pisze:

    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

  3. damian pisze:

    Przepraszam, oczywiście wpisuję „–tmp” zamiast „-tmp”, jak omyłkowo napisałem w poprzednim komentarzu.

  4. looking pisze:

    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?

  5. maguda pisze:

    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

Skomentuj Kordian Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *