This is an old revision of the document!
Samsung tiskárna a Raspberry PI Zero
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:
- Dá se to rozjet i na té největší bramboře
- Je to funkční
- Jede to se všemi tiskárnami
Nevýhody:
- Na každém počítači ze kterého se tiskne je potřeba nainstalovat drivery pro tiskárnu
- Neumí probudit tiskárnu z režimu spánku
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í.
Instalace
- Přes micro USBéčko s OTG kabelem připojíme tiskárnu
- Nainstalujeme CUPS:
sudo apt install cups
- Přidáme současnému uživateli práva k přístupu k tiskárně:
sudo usermod -a -G lpadmin pi
- Povolíme přístup k tiskovému serveru zvnějšku:
sudo cupsctl –remote-any
- Přes prohlížeč na počítači ve stejné síti načteme ovládání CUPSu na
http://ip_adresa_rpi:631
- Jdeme do
Administration
a z tama dámeAdd a printer
- Nahoře zvolíme radio-input s názvem tiskárny. Pokud tam nebude, zkuste tistárnu probudit ze spaní/restartovat
- Mezitím ale zjistíme, že nemáme drivery
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:
- potřebujeme jbigkit:
git clone https://github.com/nu774/jbigkit.git
cd jbigkit
make
sudo make install
- Naklonujeme z gitu pomocí
git clone https://gitlab.com/ScumCoder/splix/tree/patches/splix
- Přepneme adresář:
cd splix/splix
- Stáhneme knihovnu potřebnou ke kompilaci:
sudo apt-get install libcups2-dev
make
- A nakonec dáme binárky na svá místa:
sudo make install
- Zkopírujeme .ppd, aby jej CUPS našel:
sudo cp ppd/m2020.ppd /usr/share/cups/model/
- Restartujeme CUPS:
sudo systemctl restart cups
- Opět půjdeme do administrace CUPSu a nastavíme tiskárnu. Driver by to mělo najít automaticky. Aby šlo na tiskárně tisknout i z jiných počítačů, zaškrtneme políčko
Share this printer
- Vyzkoušíme tisk testovací stránky
- Jestli to nevytiskne chybu, tak je hotovo!
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.