[REŠENO] IOS7 + Avahi + CUPS

Sve u vezi mreža i povezivanja na Internet

Moderator: Urednik

Post Reply

offline
User avatar

Posts: 4
Joined: 28 Oct 2014, 02:49

Post Napisano: 31 Oct 2014, 19:28


Pozdrav za sve ljubitelje Slackwera,... zadnjih 10 godina guglam slackware ovo, slackware ono,..nikad mi ovaj forum nije izasao.

Elem...
Jel uspeo da namontira ovo? Mozda malo preambiciozno...
Naime, Cups radi normalno, vidi se na mrezi, windows se konektuje i stampa normalno. Avahi isto ne prijavljuje nikakve greske, mada nemam iskustva sa njim. Pokrenuo sam taj neki skript koji prepoznaje cups printere, i ubacio conf file tamo gde treba.

avahi-browse --all --resolve mi izbacuje izmedju ostalog i ovo:

Code: Select all

+   eth0 IPv4 AirPrint HP-LaserJet-4l @ slack141            Internet Printer     localhost
+   eth0 IPv4 slack141 [00:15:f2:42:4b:c3]                  Workstation          localhost
+   eth0 IPv4 slack141                                      Remote Disk Management localhost
+   eth0 IPv4 slack141                                      SSH Remote Terminal  localhost
+   eth0 IPv4 slack141                                      SFTP File Transfer   localhost
=   eth0 IPv4 AirPrint HP-LaserJet-4l @ slack141            Internet Printer     localhost
   hostname = [slack141.localhost]
   address = [192.168.1.108]
   port = [631]
   txt = ["pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,text/html,text/plain,application/vnd.cups-banner,application/vnd.cups-pdf,application/vnd.cups-postscript" "printer-type=0x2901c" "printer-state=3" "product=(GPL Ghostscript)" "note=HP LaserJet 4l" "rp=printers/HP-LaserJet-4l" "URF=none" "Transparent=T" "qtotal=1" "txtvers=1"]
Ali IOS7 i dalje ne vidi nikakav printer.
Mozda sam propustio nesto. Po forumima se pominje port 5454 ili neki slican. Ja nemam nista sto slusa na tom portu.

Jel uspeo neko da natera Cups da bude preoznatljiv za IOS na Slackwaru 14.1?

EDIT by stereo: radi čitljivosti.



Administrator
Administrator
offline
User avatar

Posts: 3451
Joined: 01 Apr 2012, 13:50
Location: Mlečni put

Post Napisano: 31 Oct 2014, 21:09


Pozdrav @lesorsier i dobro došao na forum :)

Ne znam koliko nas ima IOS ali ako neka ima verovatno će se javiti.
Use the source, Luke
SSZ irc kanal
Spread the Word, “CHOOSE SLACK! and Don’t look back.”



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 01 Nov 2014, 13:05


Koliko vidim na netu, iOS podržava samo Airprint kompatibilne uređaje. Taj Airprint mu dođe kao neka propriatry ekstenzija IPP protokola. CUPS je IPP server, ali nije Airprint kompatibilan. Da bi koristio obične štampače iz iOS-a, moraš da instaliraš eksternu aplikaciju kao što je Magic Printer.

http://www.macnn.com/articles/09/10/15/ ... an.iphone/" onclick="window.open(this.href);return false;

Ne posedujem iOS bazirani uređaj pa je ovaj odgovor čisto teorijski na osnovu javno dostupnih informacija na netu. Možda nije loša ideja da postaviš pitanje i na nekom od Mac/iPhone foruma. Možda je predrasuda, ali kapiram da je tamo veća mogućnost da neko ima iOS bazirani uređaj. Mac forumi su možda dobro mesto pošto i OS X koristi CUPS ispod haube. Linkove nemam, ali ima Google:

https://www.google.com/search?q=mac+forum+srbija" onclick="window.open(this.href);return false;
https://www.google.com/search?q=iphone+forum+srbija" onclick="window.open(this.href);return false;



offline
User avatar

Posts: 4
Joined: 28 Oct 2014, 02:49

Post Napisano: 02 Nov 2014, 17:14


Pozdrav za admine...

Po mek forumima uglavnom raspravljaju trivijalne stvari tipa "gde su mi fajlovi". Jailbreak rasprava im je najdalje sto obicno stignu. IOS je samo client, nema nikakvih podesavanja. Cups treba da se podesi da emulira Airprint, sto su ljudi i uspeli, ali na ubuntu, debianu, suseu,.. itd. A to obicno zna neko ko se bavi linux serverima i mrezama. Postoje narano te client-server aplikacije. To radi, nije sporno ali nema ih za linux, (bar ja nisam nasao). Jednu sam stavio Win8, selektovao mrezni printer, (ovaj cups koji je na Slackwaru) i radi normalno. Kliknes print na Ipad-u, Slack stampa (na ovom HP laserjetu od pre 20 godina). Ali imam izmedju Windows i tu aplikaciju.

A to moze i bez toga. Evo dokle sam stigao.
AirPrint je baziran na Zeroconfu, apple to zove bonjour. Na linuxu se taj servis zove Avahi koji treba da se instalira i podesi.
Postoji python skript airprint-generate.py koji za instalirane printere pravi uslovno receno "airprint driver". Poterbno ga je smestiti u /etc/avahi/services/
Za ios6+ u samom fajlu potrebno je dodati image/urf u pdl sekciju. Avahi isto ima conf file koji treba precekirati.

I sad iPad (ios7) vidi printer, ali cups nece da stampa,...

D [02/Nov/2014:14:22:08 +0100] cupsdAcceptClient: 13 from 192.168.1.13:631 (IPv4) (adresa-iPada)
D [02/Nov/2014:14:22:08 +0100] cupsdReadClient: 13 POST /printers/HP-LaserJet-4l HTTP/1.1
D [02/Nov/2014:14:22:08 +0100] cupsdSetBusyState: newbusy="Active clients", busy="Not busy"
D [02/Nov/2014:14:22:08 +0100] cupsdAuthorize: No authentication data provided.
D [02/Nov/2014:14:22:08 +0100] cupsdReadClient: 13 2.0 Get-Printer-Attributes 5
D [02/Nov/2014:14:22:08 +0100] Get-Printer-Attributes ipp://slack141.local.:631/printers/HP-LaserJet-4l" onclick="window.open(this.href);return false;
D [02/Nov/2014:14:22:08 +0100] Returning IPP successful-ok for Get-Printer-Attributes (ipp://slack141.local.:631/printers/HP-LaserJet-4l" onclick="window.open(this.href);return false;) from 192.168.1.13
D [02/Nov/2014:14:22:08 +0100] cupsdSetBusyState: newbusy="Not busy", busy="Active clients"
D [02/Nov/2014:14:22:08 +0100] cupsdReadClient: 13 WAITING Closing on EOF
D [02/Nov/2014:14:22:08 +0100] cupsdCloseClient: 13
D [02/Nov/2014:14:22:08 +0100] cupsdSetBusyState: newbusy="Not busy", busy="Not busy"

Mislim da je problem sa cups-pdf... ili ne funkcionise, ili nije setovan kako treba,...

...mada direktna komanda lp file.pdf stampa normalno,.. :huh:



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 02 Nov 2014, 19:51


lesorsier wrote:Cups treba da se podesi da emulira Airprint, sto su ljudi i uspeli, ali na ubuntu, debianu, suseu,..
Obično to nema puno veze. Retko su u pitanju neke specifičnosti u podešavanju. Ko je imao prilike da radi na više distribucija obično lako konvertuje uputstvo sa jedne na drugu.

Pre svega bilo bi dobro da instaliraš i podesiš sbopkg, alat koji nam omogućava automatizovanu instalaciju iz SlackBuild.org repoa SlackBuild skripti, pošto će ga sledeće uputstvo koristiti za instalaciju Avahi paketa i zavisnosti. Inače ono je nastalo na osnovu ovog članka uz izmene sa članaka linkovanih kasnije u tekstu.

Kao što rekoh, uputstvo je netestirano na pravoj mašini, ali je bazirano na nekoliko uputstva koje su i isprobana i testirana. Po meni je jako velika šansa da pomogne. Odmoći ne bi trebalo. ;)

Instalacija i podešavanje sbopkg alata

Code: Select all

wget http://sbopkg.googlecode.com/files/sbopkg-0.37.0-noarch-1_cng.tgz
su -l -c bash
i zatim kad upišeš lozinku:

Code: Select all

installpkg sbopkg-0.37.0-noarch-1_cng.tgz
sbopkg -r
Opcionalno možeš kreirati i sqg datoteke sa build zavisnostima:

Code: Select all

sh /usr/doc/sbopkg-0.37.0/contrib/sqg -a
Instalacija Avahi servisa

Ako nisi kreirao sqg datoteke, uradi to za Avahi paket (i dalje kao root):

Code: Select all

sh /usr/doc/sbopkg-0.37.0/contrib/sqg -p avahi
Pre instalacije Avahija, bacimo pogled na SlackBuild.org stranu za Avahi. Na njoj je navedeno da postoje dodatna upustva za instalaciju u fajlu README.SBo.

Dakle, prateći uputstvo (i ako instaliraš Avahi prvi put):

Code: Select all

groupadd -g 214 avahi
useradd -u 214 -g 214 -c "Avahi User" -d /dev/null -s /bin/false avahi
Zatim postavljamo da se Avahi startuje sa sistemom (ali prvo proveri da slučajno ove linije već ne postoje u /etc/rc.d/rc.local).

Code: Select all

cat << EOF >>/etc/rc.d/rc.local
        # Start avahidaemon
	if [ -x /etc/rc.d/rc.avahidaemon ]; then
	  /etc/rc.d/rc.avahidaemon start
	fi
        # Start avahidnsconfd
	if [ -x /etc/rc.d/rc.avahidnsconfd ]; then
	  /etc/rc.d/rc.avahidnsconfd start
	fi
EOF
Moramo podesiti i da se Avahi gasi sa ostatkom sistema. Opet proveri da /etc/rc.d/rc.local_shutdown možda već ne sadrži ove linije.

Code: Select all

cat << EOF >>/etc/rc.d/rc.local_shutdown
        # Stop avahidnsconfd
	if [ -x /etc/rc.d/rc.avahidnsconfd ]; then
	  /etc/rc.d/rc.avahidnsconfd stop
	fi
        # Stop avahidaemon
	if [ -x /etc/rc.d/rc.avahidaemon ]; then
	  /etc/rc.d/rc.avahidaemon stop
	fi
EOF
Podešavanje Cupsa za Airprint

Sudeći po ovome za iOS 6 je potrebno dodati novi MIME unos u CUPS MIME bazu. Uz malu ispravku sa ovog linka.

Code: Select all

cat << EOF >>/usr/share/cups/mime/airprint.types
# Airprint Types
more airprint.types
image/urf urf string(0,UNIRAST<00>)
EOF

cat << EOF>>/usr/share/cups/mime/airprint.convs
# AirPrint
image/urf application/vnd.cups-raster 100 imagetoraster
EOF
To bi u principu trebalo da bude to. Mada, neki tvrde da je neophodno i napisati Avahi servis za štampač, ali srećom postoji skripta koja to olakšava.

Code: Select all

git clone https://github.com/tjfontaine/airprint-generate
cd airprint-generate
./airprint-generate.py 
cat *services >> /etc/avahi/services
Primena podešavanja

Restartuj CUPS:

Code: Select all

sh /etc/rc.d/rc.cups restart

Pokreni Avahi i prateći unicast DNS servis (ovo drugo je opcionalno, ali ne bi trebalo da škodi)

Code: Select all

sh /etc/rc.d/rc.avahidaemon start
sh /etc/rc.d/rc.avahidnsconfd start
Overi da li su ove skripte podešene da se pokreću pri startovanju sistema:

Code: Select all

chmod +x /etc/rc.d/rc.{avahidaemon,avahidnsconfd,cups}
Edit:
Ok, vidim po tvom odgovoru da si veći deo ovoga odradio. Onda bacni pogled na ispravke sa nekih od ovih linkova. Ili proveri još jednom da li je sve ok podešeno. ;)



offline
User avatar

Posts: 4
Joined: 28 Oct 2014, 02:49

Post Napisano: 02 Nov 2014, 21:11


uh,. hvala na detaljnom odgovoru,.. ali uspeo sam u medjuvremenu,.. ;))... elem, problem je bio sledeci:

jedan fajl mi je falio:

Code: Select all

/usr/share/cups/mime/local.convs
i u njemu:

Code: Select all

image/urf application/vnd.cups-postscript 66 pdftops
druga dva fajla koja su neophodna, koje sam napravio prethodno ali moguce da su imala problem sa permisnima:

Code: Select all

/usr/share/cups/mime/apple.types
/usr/share/cups/mime/apple.convs
stavio sam ceo mime folder na 777 testa radi i proradilo je odmah.

Stampa ko bog sa svih ipeda i iphona koje imam u kuci,..na laserjetu starom 20 godina koji nema nikakve veze sa Airprintom,..

hvala za ovo objasnjenje za sbopkg, nisam znao da postoji nesto sto malo automatizuje proces. Uglavnom sam sve skidao rucno sa slackbuilda ili jos gore, kompajlirao rucno...

evo i mali update, proucio sam malo ovo tvoje upustvo. To je od prilike to. S tim sto avahi ima dependencies koje sam ja rucno instalirao. Jedina razlika je u ovim mime fajlovima.
u airprint.types je

Code: Select all

image/urf urf (0,UNIRAST)
u airprint.convs

Code: Select all

image/urf application/pdf 100 pdftoraster
i taj local.convs koji sam pomenuo vec.

Airprint skript jeste neophodan i dobijeni fajl mora da se edituje, tj da se ubaci [image/urf]. Bez ovoga ios ne vidi nikakav stampac. A bez ovih mime fajlova nece da stampa.

ps, malo sam ispao iz slackwara zadnjih godina. Do verzije 12.2 imao sam ga na svim kompjuterima. A svi serveri koji su mi u nekoj produkciji su ili na centosu ili debianu... al evo, vracam se polako,.. ;) :beer:

pps, kako da ubacim u naslov [SOLVED]?

EDIT by stereo: radi preglednosti :) Dodao sam samo

Code: Select all

 tagove.



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 03 Nov 2014, 10:47


Drago mi je da si rešio problem i hvala na dodatnom komentaru. A i sada imamo super referencu ako neko naiđe na isti problem. :)

Inače, kad je u pitanju sbopkg - vrlo korisna alatka, ali imaj na umu da ne obrađuje automatski i opcionalne zavisnosti tako da je ponekad potrebno izmeniti sqf fajl(ove) koje generiše alatka sgq. Dobar primer je recimo ffmpeg. Ali to nije komplikovano za uraditi.



offline
User avatar

Posts: 4
Joined: 28 Oct 2014, 02:49

Post Napisano: 05 Nov 2014, 02:00


ok je i ovo, ubrzava proces dosta...
sto se tice airprinta, jos da pomenem da ima jos nekih sitnih podesavanja, cupsd.conf, samba itd... ali glavni problem je ono sto sam naveo.
osx, tj macbook pro, gde nemam instaliran nikakav stampac, samo kliknem print,.. i on kaze doduse, nemas instaliran stampac, al evo imas jedan mrezni AirPrint HP....pa mozes tu da stampas... i radi.

tako da korisna stvar. znam gomilu ljudi koji imaju iphone i ipade, i nikog ko je uspeo nesto da odstampa sa njih...

ako se neko zaglavi sa ovim,.. samo uporno,.. moze da se namesti;)


Post Reply

Who is online

Users browsing this forum: No registered users and 20 guests