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