DIR-320 z DD-WRT i konfiguracja drukarki na USB

Po zainstalowaniu, puszczamy stronę testową i sprawdzamy czy wyszła.
Jeżeli wszystko zrobiliśmy poprawnie, strona powinna się wydrukować.

Teraz stajemy przed innym problemem. Po wyłączeniu drukarki, lub też zresetowaniu routera, nasz printserwer nie startuje, a dodanie powyższej komendy startu np. do poleceń autostartu z poziomu Web, nie wiele daje. W związku z tym, należy posłużyć się sprytnym skryptem, zastosowanym przy podobnej konfiguracji drukarki dla urządzenia WL-520gU, a mianowicie watchprinter.

Skrypt pobieramy do katalogu /jffs komendą:

wget http://wl520gu.googlepages.com/watchprinter

Lub też, tworzymy pusty plik:

touch watchprinter

A następnie wstawiamy do niego, korzystając z edycji pliku jak powyżej (vi, a lub Insert, Esc i :wq!) poniższą zawartość (przepisując lub przyklejając):

#!/bin/sh
if [ -z "`pidof p910nd`" ]; then
[ -e /dev/usb/lp0 ] &&  /jffs/usr/sbin/p910nd -b -f /dev/usb/lp0 0
else
[ -e /dev/usb/lp0 ] || killall p910nd
fi

Aby skrypt działał, należy nadać mu prawa do uruchamiania komendą chmod +x watchprinter.

Skrypt jest pewnego rodzaju pętlą. Jeżeli wykryje włączoną i podłączoną drukarkę, włączy nasz program robiący za printserwer. Jeżeli będzie odwrotnie – tzn. wyłączymy drukarkę – wyłączy go.

Ale, aby działał on tak, jak należy – trzeba go wrzucić do Crona (harmonogramu), aby nawet po ponownym uruchomieniu routera, skrypt działał. Mała adnotacja tutaj – okres pomiędzy włączeniem a wyłączeniem programu za pomocą skryptu, będącego w Cronie, trwa ok. 1 minuty, więc po włączeniu drukarki, do momentu jego zadziałania, tyle może minąć, aby zaczęła ona działać.

ps. w telnecie skończyliśmy, więc możemy z niego wyjść (exit), oraz przejść do zarządzania przez stronę Web.

Powyższy skrypt w postaci zadania harmonogramu wrzucamy do Crona, przechodząc do zakładki Administracja. Na stronie wyszukujemy pozycję Cron (upewniamy się że jest stan „Wlaczony”), oraz w polu „Additional Cron Jobs” dodajemy poniższą linijkę.

* * * * * /bin/sh /jffs/watchprinter

Całość powinna wyglądać tak:

Klikamy (na dole strony) Zapisz ustawienia a następnie Zastosuj, po czym czekamy na reboot naszego routera.

Teraz wszystko powinno działać – jeżeli nie, należy prześledzić, czy na ostatnim etapie, włącza się za pomocą skryptu watchprinter, nasz program p910nd – w telnecie poleceniem ps.