Naprej Nazaj Vsebina

3. Tiskalniške naprave jedra

3.1 Naprava lp

Jedro sistema Linux (<=2.1.32), poskrbi za eno ali več od 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, pač pa vsaka naprava 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, da imate spodoben kabel.

Gonilnikov za plip in lp ne morete poganjati hkrati na katerihkoli že vratih. 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. Neka oseba je storila tako s popravljanjem gonilnikov; željno pričakujem poročilo o uspehu nekoga, ki mu je to uspelo le z bistro ukazno vrstico.

Obstaja majhen pripomoček imenovan tunelp, s katerim lahko (kot root) uglasite uporabo prekinitev naprave lp v Linuxu, polling rate, in druge izbire.

Jedro (od 1.3.x naprej) bo sprejelo izbiro lp= za nastavitev prekinitev ali V/I naslovov, če je ta možnost vgrajena v jedro:

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 v jedru različice Linuxa 2 ali zadnjih 1.3.x, 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 primeru zgoraj. Druga vrata (lp0) so na naslovu 0x3bc. Pojma nimam, katero prekinitev navadno uporabljajo.

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

3.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 veliko težav, 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-i, 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.

Gonilnik parport bom obdelal podrobneje, ko ga bom začel uporabljati tudi sam. Do takrat lahko preberete datoteko Documentation/parport.txt v izvorni kodi vašega jedra, ali pogledate na spletno stran parport.

3.3 Naprave na zaporednih vratih

Naprave na zaporednih vratih se v Linuxu običajno imenujejo podobno kot /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 lahko najdete v spisu Serial-HOWTO.

Če uporabljate počasen zaporedni tiskalnik s kontrolo pretoka (flow control), lahko ugotovite, da so nekatera od vaših tiskalniških opravil odrezana. To je lahko zaradi zaporednih vrat, katerih privzeto obnašanje je čiščenje neprenešenih 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 kontrolo 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 lahko spremenite tako, da vstavite closing_wait hkrati z drugimi izbirami za nastavitev teh vrat.


Naprej Nazaj Vsebina