Első nekifutásra egy nagy probléma megoldásában segítenék, ez a GDI/Host-based printerek használata DNS-323-mal című problémakör, de mindenféle DNS-323-as téma gyűjtőhelyének szánom. Persze van már egy pár ilyan hely, de ha valaki sűrűbben használja a HWSW fórumait, itt is legyen egy...
Tehát... talán 5 év is eltelt, mióta megvettem a HP Laserjet 1000w lézernyomtatómat, és eddig még nem sikerült működésre bírni printer szerverrel... ... ...egészen idáig. Azt hiszem, vagyunk még egy páran, akik segítségre szorulunk...
Forrás: mitch által a "DSM-G600, DNS-323 and TS-I300 Hack Forum"-ból: [link]
-- (Nem pontos, kiegészített) idézet:
A GDI/host based printerek a működésükhöz szükséges alapszoftvert (firmware) a host-tól (pl. a számítógépre telepített printer driver) kapják meg a printer csatlakoztatása vagy számítógép indulása után, vagy közvetlenül az első nyomtatás előtt. Printer szerver használatával a nyomtató nem kapja meg a szükséges firmware-t, így nem működik a nyomtatás. DNS-323 használatával a következőre van szükségünk, hogy szóra bírjuk ezeket az egyszerű nyomtatókat:
1. A nyomtatóhoz megfelelő firmware letöltése
Google a barátod... Wink HP 1000, 1005, 1018, 1020-as lézerekhez innen lehet letölteni a megfelelő szoftvert: [link]
A file-t másold ide: /mnt/HD_a2/
2. A "hotplug" szkript megváltoztatása, így az feltölti a firmware-t a nyomtatóba csatlakoztatás után
Készíts biztonsági másolatot erről a file-ról: /etc/hotplug/usb.agent
cd /etc/hotplug/usb.agent cp usb.agent usb.agent.backup
"Hotplug" egy kernel funkció, mely engedélyezi a Linuxnak különböző műveletek elvégzését a csatlakoztatott vagy leválasztott USB eszközön. A DNS-323 (az 1.04-es firmware használatával) a kernel a /sbin/hotplug szkriptet hívja meg amikor egy eszköz csatlakozik. USB eszközöknek a /sbin/hotplug meghívja a /etc/hotplug/usb.agent szkriptet. Ezt a file-t kell módosítanunk. Valahol a file elején (a kommentek után) add hozzá a következőket:
# start of printer-specific code
if [ "$PRODUCT" = "{IDE JÖN A PRODUCT ID}" ]; then
if [ "$ACTION" = "add" ]; then
echo HP Laserjet on USB detected >> /mnt/HD_a2/hotplug.log
sleep 10
echo Uploading firmware assuming /dev/usblp0 >> /mnt/HD_a2/hotplug.log
cat /mnt/HD_a2/{FIRMWARE FILE NEVE} > /dev/usblp0
echo Firmware uploaded successfully >> /mnt/HD_a2/hotplug.log
fi
fi
# end of printer specific-code{IDE JÖN A PRODUCT ID}:
HP LaserJet 1018 = 3f0/4117/100
HP LaserJet 1000w = 3f0/517/120
{FIRMWARE FILE NEVE}:
HP LaserJet 1018 = sihp1018.dl
HP LaserJet 1000 = sihp1000.dl
stb.
Mit csinál a szkript? Ellenőrzi, hogy a csatlakoztatott eszköz PRODUCT változó által átadott értéke egyezik-e az általunk beírt ID-vel. Azután ellenőrzi, hogy csatlakoztatva van-e naomtató, és nem éppen eltávolítva (csak csatlakoztatáskor van értelme a firmware-rel foglalkozni). Vár 10 másodpercet a nyomtató teljes elindulásáig, majd feltölti a firmware-t a /dev/usblp0 eszközre írva.
4. Log file elkészítése
touch /mnt/HD_a2/hotplug.log
3. Teszt
tail -f /mnt/HD_a2/hotplug.log
Indítsd újra a nyomtatót és várj, amíg megjelenik a következő üzenet: "Firmware uploaded successfully". Nyomtass valamit!
Kész...
-- Idézet vége
Én még megpróbálok egy kicsit finomítani rajta, hogy ne a gyökérben kelljen rendetlenkedni, és csak most fogok utána járni, mi történik a DNS-323 újraindítása után. Lehet, hogy a fun_plug szkriptet is módosítani kell, hogy cserélje ki a hotplug szkriptet.
Nekem működik, remélem, más is örülni fog neki...
Időközben előjött egy olyan gond, hogy a printer bekapcsolása után a DNS-323 nem akart standby módba menni, csak az egyik vinyót állította le. Csekkoltam a vinyó használatot, és rájöttem, hogy az lpd démon folyamatosan olvassa a /mnt/mnt/HD_a4/.lpd könyvtárat.
Változtattam egy keveset az usb.agent fájlon, így az lpd démon együtt indul a nyomtatóval, kikapcsoláskor pedig automatikusan kilövődik. Most így néz ki:
if [ "$PRODUCT" = "3f0/517/120" ]; then if [ "$ACTION" = "add" ]; then echo "Printer detected" >>/mnt/HD_a2/fun_plug.d/log/hotplug.log sleep 5 echo "Uploading firmware assuming /dev/usblp0..." >>/mnt/HD_a2/fun_plug.d/log/hotplug.log cat /mnt/HD_a2/fun_plug.d/etc/sihp1000.dl > /dev/usblp0 echo "Starting lpd..." >>/mnt/HD_a2/fun_plug.d/log/hotplug.log lpd fi if [ "$ACTION" = "remove" ]; then echo "Printer removed" >>/mnt/HD_a2/fun_plug.d/log/hotplug.log echo "Killing lpd..." >>/mnt/HD_a2/fun_plug.d/log/hotplug.log kill `pidof lpd` fi fi
A "3f0/517/120" a HP 1000w nyomtatóm product ID-je. A fun_plug fájlhoz is hozzáadtam a következőt:
echo "* Killing lpd..." >>${LOGFILE}
kill `pidof lpd` >>${LOGFILE}Így már a DNS-323 indulásakor kilövődik az lpd. A nyomtatás befejeztével és a nyomtató kikapcsolása után után elalszik a DNS-323, csend és béke honol...

Súgó
A téma zárva.









