Nekem van egy egyszerű 'ócó' Samsung ml-2160-asom amit lokális nyomtatónak akartam beállítani, hogy ne keljen állandóan a földszintre rohangálni, ha csak egy oldal nyomtatására van szükség. Ehhez eredetileg egy tp-link routert akartam használni, de problémák adódtak. Amikor a nyomtató magától kikapcsolt, - energiatakarékosság - majd visszakapcsolt, és elveszett a hálózatról.
Ekkor gondoltam, hogy egy amúgy is próbaüzemét töltő Zential 4-el megoldom a problémát. Nos nem. Sőt ekkor állt elő a fent már emlegetett helyzet, vagyis a CUPS is becsődölt vele.
Egy nyomtató megosztásához nem feltétlenül kell CUPS, hanem pl. p910nd is alkalmas erre, - habár akkor maradhatott volna a routeren is a nyomtató. - telepítettem a Zentiálra a p910nd-t.
Természetesen ugyanaz a helyzet állt elő, mint amikor a routerrel volt megosztva a nyomtató, :) a nyomtató visszakapcsolása után elveszett a hálózatról, ill. elérhetetlen lett.
Miután ezeket a felesleges köröket megfutottam, belekezdtem abba, amit az elején kellett volna:) vagyis kinyomozni hova lesz a nyomtató, miután kikapcsol.
A dolog nagyon egyszerű. a nyomtató a /dev/usb/lp0-án keresztül érhető el. amikor kikapcsol a nyomtató akkor ez az lp0 törlődik, vagy törlődne, ha nem lenne foglalt a p910nd által, ha nem törlődött, és a nyomtatót visszakapcsolja v.ki, akkor az az lp0 helyett az lp1 nevet kapja, a megosztás viszont megmarad az lp0-án, ami viszont a dolgok természetes működése folytán időközben mégis törlődött.
Egy egyszerű problémát illene egyszerűen megoldani, de én erre csak azt a megoldást tudtam kieszelni:
ACTION=="add", ATTRS{serial}=="***************", GROUP="lp", MODE:="666", RUN+="/usr/local/sbin/p910xd %k 0"
Ez az udev szabály hívja meg a nyomtató megosztását biztosító scriptet.
Nagyon primitív, akár usb, akár lp dev az amit éppen érzékel, meghívja a scriptet.
#!/bin/bash
# /usr/local/sbin/p910xd
# find and kill process p910[0|1|2]d
echo "$2" | grep -q "^[0-2]$" || exit 0
PID=$(pidof p910${2}d)
[ "$PID" ] && kill $PID
# start p910nd with printer device and with port 910[0|1|2]
[ -c "/dev/usb/$1" ] || exit 0
p910nd -b -f "/dev/usb/$1" "$2"
exit 0
A script pedig kilövi a régi, printer scocketet, akár hibás a sockethez tartozó printer device-a akár nem, majd egy újat indít.
Nyilván csak egy nyomtató kezelésére alkalmas ez a megoldás jelen formájában, de arra legalább üzembiztosan alkalmas, de kis módosítással alkalmas lehet több nyomtató kezelésére is.:))
Próba szerencse.
- apostroph3 blogja
- A hozzászóláshoz be kell jelentkezni
- 875 megtekintés
Hozzászólások
A nyomtató kikapcsolását nem lehet kikapcsolni? Nem hiszem, hogy készenléti állapotban fú de sokat fogyasztana.
- A hozzászóláshoz be kell jelentkezni
de ki lehet kapcsolni, viszont olyan ritkán van használva...
vagyis akár ki van kapcsolva, akár be van kapcsolva, sosincs jól beállítva :))
- A hozzászóláshoz be kell jelentkezni
A legújabb splix driver tartalmazza az ML-2160 nyomtatóhoz szükséges PPD fájlt.
--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!
- A hozzászóláshoz be kell jelentkezni