Naprej Nazaj Kazalo

4. Tiskalniške naprave jedra

Za vzporedna vrata sta na voljo dva popolnoma različna gonilnika naprav; katerega uporabljate, je odvisno od različice vašega jedra (izveste jo z ukazom uname -a). Gonilnik se je spremenil v Linuxu 2.1.33; praktično vsi trenutni sistemi poganjajo jedro 2.2 ali poznejše, zato boste verjetno želeli skočiti kar na razdelek o gonilniku parport.

Nekaj podrobnosti je enakih za oba sloga gonilnika. Veliko ljudi je ugotovilo, da Linux ne zazna njihovih vzporednih vrat, razen če v svojem PC BIOS onemogočijo naprave ,,Plug and Play``. (To ni presenetljivo; zaznavanje PnP za ne-PCI naprave je tudi v Windows in drugje precej katastrofalno.)

4.1 Naprava lp (jedra <=2.1.32)

Jedro sistema Linux (<=2.1.32) poskrbi za eno ali več naprav /dev/lp0, /dev/lp1 in /dev/lp2, če ste le podporo teh naprav vključili med prevajanjem ali posebej naložili (izhod cat /proc/devices mora vsebovati napravo lp, če je naložena). Te naprave se ne določajo dinamično, temveč vsaka ustreza določenemu strojnemu vhodno/izhodnemu (V/I) naslovu. To pomeni, da je lahko vaš prvi tiskalnik znan kot naprava lp0 ali lp1, odvisno od vaše strojne opreme. Le preizkusite oboje.

Nekateri uporabniki so poročali, da sistem ne zazna njihovih dvosmernih vrat lp, če uporabljajo starejši enosmerni tiskalniški kabel. Preverite, ali imate spodoben kabel.

Gonilnikov za plip in lp ne morete poganjati hkrati na enih vratih (vsaj ne z 2.0). Lahko pa imate kadarkoli en ali drug gonilnik naložen ročno ali s kerneld različice jedra 2.x (ali poznih 1.3.x). Če pozorno nastavite prekinitve in podobne zadeve, lahko baje poganjate plip na enih vratih in lp na drugih. Nekdo je storil tako s popravljanjem gonilnikov; željno pričakujem poročilo o uspehu nekoga, ki mu je to uspelo le z bistro ukazno vrstico.

Na voljo je droben pripomoček, imenovan tunelp, s katerim lahko (kot root) uglasite uporabo prekinitev naprave lp v Linuxu 2.0, polling rate, in druge izbire.

Če je gonilnik lp vgrajen v jedro, bo to sprejelo izbiro lp= za nastavitev prekinitev ali V/I naslovov:

When the lp driver is built in to the kernel, you may use the
LILO/LOADLIN command line to set the port addresses and interrupts
that the driver will use.

Syntax:      lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]

For example:   lp=0x378,0   or   lp=0x278,5,0x378,7 **

Note that if this feature is used, you must specify *all* the ports
you want considered, there are no defaults.  You can disable a
built-in driver with lp=0.

Če je podpora naložena kot modul, je mogoče določiti V/I naslove in prekinitvene vrstice v ukazni vrstici za klic insmod (ali v /etc/conf.modules, če naj prizadene kerneld) z uporabo običajne skladnje. Parametri so io=port0,port1,port2 in irq=irq0,irq1,irq2. Preberite stran o ukazu insmod v referenčnem priročniku za več informacij o tem.

**Za tiste med vami, ki (kot jaz) nikoli ne najdete standardnih številk vrat, ko jih potrebujete, so podane v drugem zgledu zgoraj. Druga vrata (lp0) so na naslovu 0x3bc. Pojma nimam, katero prekinitev navadno uporabljajo.

Izvirna koda gonilnika vzporednih vrat v Linuxu je v datoteki /usr/src/linux/drivers/char/lp.c.

4.2 Naprava parport (jedra >= 2.1.33)

Začenši z jedri 2.1.33 (in na voljo kot popravek za jedro 2.0.30), je naprava lp le odjemalec nove naprave parport. Naprava parport dodatno odpravlja številne težave, ki so morile stari gonilnik naprave lp -- lahko deli vrata z drugimi gonilniki, dinamično dodeljuje dostopna vzporedna vrata številkam naprav, namesto da vsiljuje fiksno korespondenco med V/I naslovi in številkami vrat, in tako naprej.

Prihod naprave parport je omogočil množico novih gonilnikov za vzporedna vrata za stvari, kot so pogoni ZIP, CD-ROM in diski Backpack in tako naprej. Nekateri od teh gonilnikov so na voljo tudi v različicah za jedra 2.0.x; ozrite se po spletu.

Poglavitna razlika, ki jo boste opazili, kar se tiče tiskanja, je ta, da jedra z napravo parport dodeljujejo naprave lp vzporednim vratom dinamično. Kar je torej v Linuxu 2.0 bilo lp1, je prav lahko lp0 v Linuxu 2.2. Ne pozabite tega preveriti, če nadgrajujete z jedra z gonilnikom lp na jedro z gonilnikom parport.

Videti je, da največje težave s to napravo izhajajo iz napačnih nastavitev:

distribucije

Nekatere distribucije Linuxa nimajo pravilno nastavljene datoteke /etc/modules.conf (ali /etc/conf.modules), zato se gonilnik ne naloži pravilno, ko ga potrebujete. Videti je, da se z novejšim paketom modutils pravilne magične vrstice glasijo:

alias /dev/printers lp             # le za devfs?
alias /dev/lp*      lp             # le za devfs?
alias parport_lowlevel parport_pc  # manjka v Red Hat 6.0-6.1

BIOS-a

Mnogi biosi v računalnikih PC bodo spremenili vzporedna vrata v napravo vrste Plug-and-Play. To popolnoma preprosto napravo, ki je skoraj vedno prisotna, le naredi po nepotrebnem kompleksno ; izključite nastavitve PnP za svoja vzporedna vrata (,,LPT1`` v mnogih biosih), če gonilnik v Linuxu ne zazna vaših vzporednih vrat (angl. parallel port). Pravilna nastavitev se pogosto imenuje ,,legacy``, ,,ISA``, ali ,,0x378``, a verjetno ne ,,disabled`` (onemogočeno).

Lahko tudi preberete dokumentacijo za parport v izvirni kodi vašega jedra, ali pogledate na spletno mesto o parport.

4.3 Naprave na zaporednih vratih

Naprave na zaporednih vratih se v Linuxu navadno imenujejo podobno kakor /dev/ttyS1. Pripomoček stty vam bo dovoljeval interaktivni pregled ali nastavitev zaporednih vrat; setserial vam pomaga nadzorovati nekaj dodatnih atributov in nastaviti prekinitve (IRQ) in V/I naslove za nestandardna vrata. Več o zaporednih vratih v Linuxu najdete v spisu Serial-HOWTO.

Če uporabljate počasen zaporedni tiskalnik z nadzorom pretoka (flow control), lahko ugotovite, da so nekatera od vaših tiskalniških opravil odrezana. Lahko so kriva zaporedna vrata, katerih privzeto obnašanje je čiščenje neprenesenih znakov iz vmesnega pomnilnika po 30 sekundah od trenutka zaprtja naprave za ta vrata. Vmesni pomnilnik lahko vsebuje do 4096 znakov in če vaš tiskalnik uporablja nadzor pretoka in je dovolj počasen, da ne more sprejeti vseh podatkov iz vmesnega pomnilnika niti po 30 sekundah, ko tiskalniško programje zapre zaporedna vrata, se zadnji del vsebine vmesnega pomnilnika izgubi. Ta problem lahko diagnosticirate z ukazom

cat datoteka > /dev/ttyS2

Če ta ukaz popolnoma izpiše krajše datoteke, daljše pa le odrezano, tiči zajec v tem grmu.

30-sekundni časovni interval lahko nastavite kot izbiro closing_wait v ukazni vrstici za klic setserial (različica 2.12 in poznejše). Zaporedna vrata stroja se navadno inicializirajo s klicem setserial v zagonski datoteki rc.serial. Klic za nastavitev tiskalniških zaporednih vrat spremenite tako, da vstavite closing_wait hkrati z drugimi izbirami za nastavitev teh vrat.

4.4 Naprave USB

Nimam naprav USB, s katerimi bi se lahko igral, zato vam lahko ponudim le kazalce na druge strani. Ko napravo enkrat nastavite, dobite datoteko naprave /dev/usb/lp0, podobno kakor pri vzporednih vratih, kar bo dobro delovalo v datoteki printcap ali kot naprava s krajevnimi vrati za PDQ.

USB je dokumentiran na spletnem mestu Linux USB.


Naprej Nazaj Kazalo