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
.
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.
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.