[See English summary in the end of article]
Eipä ole koskaan aiemmin tarvinnut perehtyä *nix ympäristöissä tulostamiseen näin perusteellisesti. Pieni suunnitteluvirhe nimittäin tapahtui aikanaan, kun hankin HP LaserJet 1018 USB -tulostimen. Windows Printing -tulostimeen kyllästyttyäni halusin “jotain muuta”, mutta menin taas ansaan. 1018 ei ole Windows Printing -laite, mutta sikäli täysin rampa, ettei vehkeessä ole firmwarea ollenkaan rommilla ja laite on “Host based printing” vempele. Käytännössä siis aina kun laite kytketään, pitää sille lähettää firmware binaari. Tuo fimwaren lähettäminen vaatii omat erikoisjärjestelynsä (esim. udeviin). Lisäksi 1018 ja 1020 tulostimille on olemassa vain Windows ajurit sekä Un-official tuki HPlip ohjelmistolla Linuxille.
Macit taloon
Kun PC:t kannettiin talosta ulos ja Macit sisään, tuli mieleen, että tulostaakin joskus pitäisi. Homma piti saada siis toimimaan sekaympäristössä ja erityisesti Mac OSX:llä. Potentiaalisia tulostajia siis Windowsit, Linuxit ja Macit.
Ensin Linuxista ja siitä jako verkkoon
1018 kiinni Debian koneeseen ja apt-get install hplip. Asensi 2.8.6a:n. Pari päivää tämän kanssa tappelin ja luovutin. Ei toimi.
HP:n sivuilta uusi 3.10.5 Hplip ladaten ja asentaen. Asentaminen oilskin sitten aikamoinen trial-by-error ja sisälsi noin 20 muun Debianin dev -paketin asentamisen. Udev -toiminnallisuus firmwaren on-demand -lataamiseen toimii. Firmwarekin löytyi joltain sumuiselta .ru saitilta. Tulostusjonoja on erilaisten konfisteluiden jälkeen varmaan 27 erilaista. Yksikään ei tulosta. Huomaa muuten asennuksessa, että Hplip valittaa puuttuvasta kirjastosta, mutta tarkoittaa ko. kirjaston -dev versiota aina…
Cupsd:n logitus on surkeaa jopa debug moodissa, mutta yhdestä rakosesta vilahtaa virheilmoituksesta vinkki ; “foomatic-rip-hplip no such file”. Ahaa.
KVG
Onneksi yhdestä keskusteluketjusta löytyi vinkki, että hplip:in asennusohjelma on mitä on ja että homma pitää tehdä itse komentoriviltä (no niin tietysti, miten ajattelinkin toisin
. Configure -skriptille pitää luetella optiot eri tavalla, kuin asentaja ohjelma ne tekee. Foomatic-rip-hplip ei nimittäin muuten ainakaan Debianissa toimi. Asentaja antaa drivereille jollain sumealla logiikalla –disable määreitä, kun joillain pitää olla –enable. Käytännössä siis ; aja asentaja, jos ei toimi => muuta configure:n kaikki drivereitä, foomaticcia ym. koskevat –disablet –enable:ksi.
No tämän jälkeen hplip alkoikin toimimaan ja Debianista nyt saa tulostettua paikallisesti. Sitten ne muut koneet…
Puuttuva OSX ajuri 1018:lle
Tulostimen voi jakaa eri tavoin verkkoon. Ensin tein sen Samballa. Hetki meni ymmärtäessä miten näitä “erikoisia” tulostusjonoja lisätään OSX:ään. Tarvittava dialogi nimittäin puuttuu valikosta (Tulostimet ja faksit => Lisää => Lisävalinnat on se joka puuttuu) ja sen ikoni pitää ensin lisätä toolbaariin (mistä tämä olisi pitänyt tietää?). Jonon saa sitten nätisti Macista kiinni, mutta 1018 ajuria ei tietysti ole. Tavara päätyy jonoon asti, mutta on väärässä muodossa ja menee roskiin. Tätä päättelyä en kuitenkaan heti osannut tehdä, joten tuli mahdollistettua myös suora cupsd IPP -tulostaminen cupsd:lle verkon yli (lisää IP osoite -> Allow from x.y.z.f cupsd.conf:iin). Muista avata portti 631 iptablesta sekä udp-, että http-protokollille. No kaikkinensa, tavara tulee kaikilla perille, mutta ei tulostu, kun ajuri on väärä ja faili sopimatonta.
Foo2zjs, gs ja foomatic
OSX:aan saa 1018 ajurin asentamalla foo2zjs paketin. Se vaatii kaverikseen paketit Ghostcript ja foomatic. Ne kaikki onneksi kääntyvät ja asentuvat nätisti, kunhan uusin XCode on asennettuna. Yhden illan turaamisen jälkeen 1018 ajuri löytyy hienosti asennusdialogista. Ei vaan toimi. Mihinkään ei tule mitään virheilmoitusta, mutta koska Debianin cupsd:lle menee n. 240 tavua huolimatta mitä tulostaa, voinee olettaa että Macistä lähtee tyhjä tiedosto.
FOOMATIC ja FOO2ZJS SAAMINEN TOIMIMAAN: Valehtelematta meni viikon illat, koska en antanut periksi tälle ongelmalle. Lopulta Samba tulostuksen autentikointivirhe sai Macin cupsin tulostamaan sellaisen error_login, josta Foomaticin toimimattomuuden syy selvisi:
D [03/Aug/2010:21:57:11 +0300] [Job 74] /usr/bin/foo2zjs-wrapper: line 213: gs: command not found
D [03/Aug/2010:21:57:11 +0300] [Job 74] /usr/bin/foo2zjs-wrapper: line 816: gs: command not found
Eli todellakin arvaus piti paikkansa, eli tyhjä tiedostohan sitä Macistä lähti. Jostain syystä tuon wrapperin (joka on Perliä) toiminnassa oli kaksi virhettä:
1) Foomatic ei saanut ladattua moduleitaan, koska Foomaticin asennuskripti ei osaa laittaa oikeaan paikkaan Perl moduleita. Ratkaisin asian kopioimalla käsin asennushakemistosta foomatic-db-engine-4.0.4/lib/Foomatic -hakemiston /System/Library/Perl/Extras/5.10.0/ alle.
2) Foo2zjs-wrapper ei löytänyt Ghostscript (eli gs binaaria)
Vaikka gs toimii komentoriviltä (/usr/local/bin:issä kun on) kaikilla halutuilla käyttäjillä, typerä skripti arpoo sen pieleen. Korjasin lisäämällä /usr/bin/foo2zjs-wrapper skriptiin riville 185:
GSBIN=/usr/local/bin/gs
Tulee kohtaan “Process the options” juuri ennen CMDLINE=”$*” -riviä.
Vaihtoehtoinen korjaus postscript -kikkaa käyttäen, tosin rikkonaisilla marginaaleilla
Luovutus oli monesti lähellä, mutta huomasin cupsd:n logista, että “auto recognizing file”. Hmm. Debianissa kun on kaikki mahdolliset Ghostscript ja foomatic filtterit ja ne toimivat, joten mitähän jos tuolle syöttäisikin ps -tiedoston ? No eikun kokeilemaan ja taas jono kiinni OSX:stä, ajuriksi “Generic postscript printer” ja voilá! Macista lähtee nyt IPP-http:nä postscript -tiedosto, jonka Debianissa oleva tulostusjono tunnistaa ps:ksi ja vääntää sen printterille sopivaksi. Tulostuvat kuvat ja tekstit niin kuin pitääkin. Case almost closed. (Paitsi että oli marginaalit pielessä. Tämä toimi siksi, ettei foomaticcia käytetty ollenkaan. Jos säätäisi marginaalit PPD tiedostosta käsin kohdilleen niin saattaisi toimia.)
Luovutinkin kerran jo
Tarina sai sikäli myös epäonnellisen lopun, että kävin ostamassa offset -ongelmien takia uuden HP P1102 tulostimen 89 eurolla Expertistä. Sen mukana tullut HP:n asennuspaketti kuitenkin sai jatkamaan tuon 1018:n kanssa tappelua, sillä uuden tulostimen mukana tuli myös “piilotettu” foo2zjs asennus. Uusi tulostin nimittäin käyttää sitä samaa, joskin HP on vääntänyt siitä omat binaarinsa (rastertozps). Sitäkin yritin käyttää, mutta kun tuosta paketista taas puuttui 1018 tuki, niin tulostinten erilainen resoluutio sai rasteroinnin epäonnistumaan. Hyviä vinkkejä siitä sai!
Nyt on sitten kaksi toimivaa tulostinta
English summary
To be able to print to HP Laser Jet 1018 from Mac OSX, you need to do a lot. The only way seems to be to use foo2zjs package, which I first didn’t get to work. Instead I installed a remote printer to my Debian bpx using HP’s version of hplip 3.10.5. After discovering, that in Debian 5.0.4 the installation script composes a wrong configure statement (disables drivers instead of enabling them) I got to work it locally in Linux. Even the on-demand firmware download works as an udev script. After that, it was simple to share the printer through the network to Mac. Both Samba and IPP work just fine.
Since my foo2zjs on OSX (probably due to foomatic problem) does not work (always outputs 237 bytes of something, probably just an error message) I’m using the general postscript driver for that print-queue and the Debian hplip then translates that to what-ever-that-monster-printer-talks. That works automatically, since the hplip installation works. However, it has wrong margins for the print-area, which might be fixed by editing the PPD (I didn’t have spark to do it).
I did buy the new printer too… 89 euros with OSX support for HP P1102. But since it came with HP’s version of foo2zjs, which worked, it gave me more strength to fight the 1018 installation too. Unfortunately the package for P1102 lacks driver for 1018 and it uses HP’s own rastertozps binary, I wasn’t able to use that driver for 1018.
I got foo2zjs and foomatic to work at last. There were two problems:
1) Foomatic couldn’t load it’s Perl modules (installation script doesn’t recognize Apple’s Perl version’s @INC
=> Copy directory foomatic-db-engine-4.0.4/lib/Foomatic into /System/Library/Perl/Extras/5.10.0/
2) Foo2zjs-wrapper can’t locate gs, even it works from command line (/usr/local/bin/gs)
=> Add following to /usr/bin/foo2zjs-wrapper as line 185
GSBIN=/usr/local/bin/gs
To subsection “Process the options” just before line CMDLINE=”$*”
After that it works. Voilá!
0 kommenttia tähän mennessä ↓
Miksei kukaan kommentoi...
Kirjaudu kommentoidaksesi.