Linux Zone
Παναγιώτης Βρυώνης vrypan@hol.gr
Απρίλιος 1998
Το Linux Zone είναι μία στήλη που σκοπό της έχει να
παρουσιάζει μερικές από τις εμπειρίες μου στον χώρο του
Linux.
Πριν από λίγο καιρό αποφάσισα να αντικαταστήσω τον παλιό
μου εκτυπωτή, έναν Epson Stylus 800. Οι λόγοι ήταν δύο:
πρώτον ο Epson έδειχνε να "έχει φάει τα ψωμιά του" μετά
από τις ατελείωτες δοκιμασίες που είχε περάσει μαζί μου
τα τελευταία τρία χρόνια και δεύτερον η αδελφή μου που
χρησιμοποιεί τον υπολογιστή για computer graphics ήθελε
έναν έγχρωμο εκτυπωτή. Λόγω του ότι με κάλεσαν να
παρουσιαστώ στο ναυτικό δεν είχα πολύ χρόνο για να ψάξω
το θέμα και έτσι γρήγορα, γρήγορα κατέληξα να αγοράζω τον
Hewlett-Packard Deskjet 720C.
Ο HP συνδέθηκε, οι σχετικοί drivers για τα Windows95
εγκαταστάθηκαν και πραγματικά το αποτέλεσμα μου έρεσε: οι
μαυρόασπρες εκτυπώσεις ήταν ταχύτατες και οι έγχρωμες
εντυπωσιακές.
Αφού λοιπόν η αδελφή μου μπορούσε να δουλεύει στα Windows
ήταν ώρα να δω τί ρυθμίσεις θα χρειαζόντουσαν να γίνουν
για να μπορώ να εκτυπώνω από το RedHat Linux που
χρησιμοποιώ σχεδόν αποκλειστικά. Το RedHat παρέχει ένα
πολύ βολικό εργαλείο, το printtool, που απολοποιεί την
διαδικασία "εγκατάστασης" νέων εκτυπωτών στο σύστημα.
Επιλογή για "HP Deskjet 720C" δεν υπήρχε και αποφάσισα να
δοκιμάσω κάποιες άλλες που έμοιαζαν κοντινές. Δοκίμασα
"cdj550", "cdeskjet", "deskjet" και γενικά ό,τι έμοιαζε
να έχει κάποια πιθανότητα να δουλέψει άλλά μάταια. Το
αποτέλεσμα σε όλες τις περιπτώσεις ήταν το ίδιο: ο HP δεν
αντιδρούσε, λες και δεν δέχονταν δεδομένα.
Ευτυχώς ο Epson υπήρχε ακόμη. Το συνέδεσα και πάλι για να
βεβαιωθώ ότι ο lpd δουλεύει κανονικά και όντως δεν υπήρχε
κανένα πρόβλημα. Άρα, αυτό που θα έπρεπε να φταίει είναι
ότι τα δεδομένα που έστελνα στον HP δεν είχαν την μορφή
που θα έπρεπε...
Εκείνη την περίοδο φτάνει ένα e-mail στο magaz από τον
Νίκο Παπαγρηγορίου που αντιμετώπιζε το ίδιο πρόβλημα.
Μόνο που έχει παρατηρήσει κάτι που εμένα μου έχει
διαφύγει: το κουτί του εκτυπωτή λέει "Windows Printer"!!!
Καλά είναι δυνατόν να υπάρχει κάτι τέτοιο; Οι επισκέψεις
στο www site της HP καθώς και τα e-mail στην RedHat,
ενισχύουν την άποψη αυτή. Οι αναζητήσεις συνεχίζονται σε
news groups και διάφορα sites, αλλά μάταια...
Την λύση θα μου δώσει και πάλι ο Νίκος http://www.rpi.edu/~normat/technical/ppa/index.html.
Πράγματι, εκεί βρήκα πολλές πληροφορίες. Κατ' αρχήν, ο HP
Deskjet 720C χρησιμοποιεί ένα "πρωτόκολλο" επικοινωνίας
που η HP ονομάζει PPA αλλά τις λεπτομέρειες τις κρατάει
μυστικές. Κατά συνέπεια, μόνο αυτή μπορεί να φτιάξει
drivers (και δεν έχει από ό,τι φαίνεται κανένα ενδιαφέρον
να τους μεταφέρει στο Linux...).
Αν και τα πράγματα έδειχναν μαύρα, δεν ήταν και τόσο. Ο
συγγραφέας των παραπάνω σελίδων, ονόματι Tim Norman, είχε
καθήσει με υπομονή και προσπάθησε να αποκωδικοποιήσει τις
εκτυπώσεις που έπαιρνε από τα Windows. Σιγά, σιγά άρχισε
να καταλαβαίνει το PPA και αυτό του επέτρεψε να γράψει
ένα προγραμματάκι που να μετατρέπει pbm αρχεία (αυτό
είναι ένα format που μπορεί να παράγει και το
ghostscript) σε μορφή κατανοητή από τον 720C!
Download λοιπόν τα σχετικά αρχεία, διάβασμα των README
και INSTALL, compilation και η πρώτη εκτύπωση από το
Linux μου είναι γεγονός!!! Βέβαια, υπάρχουν κάποια
"προβληματάκια" (πολύ μικρή ταχύτητα, μόνο μαύρο-άσπρο)
αλλά ο Tim υποστηρίζει ότι δεν θα αργήσουν να λυθούν.
Ενημέρωσα και τον Νίκο, ο οποίος μου απάντησε ότι δεν
έχει καταφέρει να καταλάβει πώς θα χρησιμοποιήσει τα
executables που παράγονται από το compilation. Δεν έχει
και άδικο - αν δεν ξέρεις πώς δουλεύει ο lpd θα χρειαστεί
πρώτα λίγο διάβασμα (βλ. Printing-HOWTO κ.λ.). Γιατί να
μην απλοποιήσω λίγο την διαδικασία;
Το πρώτο βήμα ήταν να δώ πώς θα προσθέσω τον 720C στους
εκτυπωτές που υποστηρίζει το printtool. Ε, αν και το
συγκεκριμένο εργαλείο είναι δουλειά της RedHat, ο κώδικας
είναι σε Perl, τα στοιχεία διαβάζονται από ASCII files
και διανέμεται σύμφωνα με το CPL. Λίγο ψάξιμο λοιπόν στο
source code, μερικοί πειραματισμοί και το printtool
υποστήριζε και Deskjet 720C.
Το επόμενο βήμα ήταν να φτιάξω ένα RPM που να
αυτοματοποιεί την εγκατάσταση. Αν και έχω μία καλή
εμπειρία με τα διάφορα εργαλεία που χρησιμοποιούνται για
την αυτοματοποιήση της διαδικασίας του compile και της
εγκατάστασης όπως make, autoconf και automake ποτέ μου
δεν είχα κάτσει να ασχοληθώ με τον τρόπο που
κατασκευάζονται τα RPMs, αν και πάντα με ενδιέφερε.
Αυτή ήταν μία καλή ευκαιρία. Επισκεύθηκα το http://www.rpm.org, διάβασα ό,τι
μου φαινότανε απαραίτητο και μετά από ένα απόγευμα
ευχάριστης ταλαιπωρίας εγκατέστησα για πρώτη φορά το
ppa-0.8.2-1.rpm στο συστημά μου. (Μέχρι να γραψω το άρθρο
έχουμε φτάσει στο 8.4 που είναι και σαφώς ταχύτερο...)
Έστειλα την δουλειά μου στον Tim Norman για να την
αξιοποιήσει όπως νομίζει καλύτερα.
Τώρα; Ε, τώρα περιμένω νέα versions του ppa με
περισσότερες δυνατότητες. Ίσως να μπορούσε να γραφτεί και
ένα προγραμματάκι για X-Windows (KDE?) αντίστοιχο με το
πρόγραμμα της HP για τα Windows95 που να επιτρέπει την
επιλογή της ποιότητας εκτύπωσης κ.λ. Πάντως τώρα που
έμαθα πως δουλεύει το rpm σκοπεύω να φτιάξω ένα για το
grISOXkb (νομίζω ότι θα βοηθήσει πολύ κόσμο).
Περισσότερα από το Linux Zone στο επόμενο τεύχος του
magaz!