Jestli máte někde několik počítačů na jednu (nesíťovou) tiskárnu stejně
jako my doma, tak se možná potýkáte s problémem, jak tisknout. Mnoho
lidí napadne posílání souborů na počítač připojený k tiskárně přes
služby určené pro normální komunikaci mezi lidmi - např. email nebo
různé chatovací aplikace. Toto řešení je ale dost neefektivní a vyžaduje
několik zcela zbytečných úkonů. Aby se tomuto předešlo, tak existují
tiskové servery, které přijímají tiskové úlohy po síti a tisknou je.
Můžeme jej nechat běžet na klasickém osobním počítači, ale to je opět
docela blbé, protože musíme stroj startovat a při běhu žere docela dost
elektriky.
Dobré je k tomuto účelu využít nějaké drobné nízkoenergetické zařízení,
které má alespoň USB a interface pro připojení k internetu. Já
momentálně používám Raspberry PI v jeho nejlevnější a nejméně vybavené
variantě Zero. Má 512 MB paměti a 1 GHz procesor, což je pro tento účel
až až. V minulosti jsem to zkoušel i na nějakém levném routeru, kde se
dalo rozjet Openwrt. Abych tam mohl vůbec něco
zprovoznit, tak jsem do USB musel připojit flashku, kterou jsem mountnul
do rootu jako overlay, abych rozšířil úložiště. Zkoušel jsem zprovoznit
CUPS server, ale bohužel to nešlo, protože 32 MB operační paměti
nestačilo ke stabilnímu fungování. Použitelné to ale do své smrti bylo,
šlo tam zprovoznit alespoň direct-printing, kdy to, co přijde po
internetu jde přímo do tiskárny. Server pro toto se jmenuje p910nd
a v
openwrt to má přímo balíček. Návod na zprovoznění mají
tady.
Výhody:
Nevýhody:
Až mi jednoho dne router odešel do křemíkového nebe, tak jsem jako
náhradu použil již zmíněné Raspberry PI Zero. Abych předešel nastavování
driverů úplně všude, tak jsem zvolil CUPS server, který se pro tisk
používá snad ve všech unixových distribucích. Stáhl jsem si Raspbian
Lite (bez grafického prostředí). Nastavil jsem si standardní věci -
nastavení internetu, SSH přístup, hostname, přihlašování a další takové
srandy. Potom jsem se pustil do instalace potřebných věcí.
sudo apt install cups
sudo usermod -a -G lpadmin pi
sudo cupsctl --remote-any
http://ip_adresa_rpi:631
Administration
a z tama dáme Add a printer
Právě s těmi drivery je největší problém při provozu na Raspberry PI.
Pokud bychom stáhli ty od výrobce, tak je sice nainstalujeme, ale ale
nebudou fungovat, protože je výrobce nevytváří pro ARMHF architekturu.
Nejspíše se potom při tisku zobrazí chybová hláška
/usr/lib/cups/filter/rastertospl failed
, protože to tu binárku prostě
nespustí správně. S tím se bohužel nedá nic dělat, takže budeme muset
použít alternativu. Tou je splix
driver. Dokonce je i v oficiálních
repozitářích jako balíček printer-driver-splix
, jenže je to nějaká
starší verze, která některé tiskárny nepodporuje. Mezi ně zrovna patří
moje Samsung M2020
. Jak to ale vyřešit? No, vezmeme si aktuální verzi
a zkompilujeme si to ze zdrojáků. Na Raspberry PI to sice bude trvat
dýl, ale já byl líný to cross-compilovat na jinším počítači, tak jsem si
raději počkal. Jak na to:
sudo apt-get install libcups2-dev
git clone https://github.com/Distrotech/jbigkit.git
cd jbigkit
make
sudo make install
git clone https://gitlab.com/ScumCoder/splix.git
git checkout patches
cd splix/splix
make
sudo make install
sudo cp ppd/m2020.ppd /usr/share/cups/model/
sudo systemctl restart cups
Share this printer
Ještě takový tip na konec: Když už to Raspberry PI jede, tak je škoda
jej používat jen na tisk, můžeme přes USB připojit přes převodník velký
harddisk a vytvořit si domácí NAS úložiště a nebo klidně cokoliv
dalšího, představivosti se meze nekladou.