Drukowanie w Linux-ie: Urządzenia dotyczące drukarki w jądrze.
Następna strona
Poprzednia strona
Spis treści
3. Urządzenia dotyczące drukarki w jądrze.
3.1 Urządzenie lp.
Jądro Linux-a (<=2.1.32), zakładając, że wkompilowałeś lub załadowałeś
urządzenie lp (polecenie cat /proc/devices powinno
pokazać urządzenie lp), dostarcza jedno lub więcej urządzeń
/dev/lp0, /dev/lp1 i /dev/lp2. Nie są
one kojarzone dynamicznie, ale są one na stałe przypisane
konkretnym adresom I/O. Oznacza to, że twoja pierwsza drukarka może
być na lp0, albo lp1 w zależności od sprzętu. Spróbuj
obu. ;)
Kilku użytkowników zgłosiło, że ich dwukierunkowe porty lp nie
zostają wykryte jeśli używają starszego, jednokierunkowego kabla.
Sprawdź czy masz przyzwoity kabel.
Na danym porcie nie można mieć na raz sterowników plip oraz
lp. Ale można załadować jeden albo drugi sterownik w każdej
chwili; ręcznie albo przez kerneld przy jądrze w wersji 2.x.x
(lub późniejsze 1.3.x). Jeśli dokładnie ustawisz przerwania itp., to
możesz przypuszczalnie mieć plip na jednym porcie, a lp
na drugim. Jedna osoba zrobiła tak, przez edycję sterowników; z
niecierpliwością oczekuję osoby, która zrobiłaby to tylko przy
użyciu argumentów z linii poleceń.
Jest takie narzędzie zwane
tunelp, przy pomocy którego "root" może ustawiać
przerwania i inne opcje na urządzeniu lp.
Jeśli urządzenie lp jest wbudowane w jądro w wersji 1.3.x lub
wyższej, to możesz przekazać parametr lp= do jądra, w którym
możesz ustawić przerwanie, adres itp.
Jeśli sterownik lp jest wbudowany w jądro, to możesz użyć parametru
LILO/LOADLIN, aby ustawić adres portu i przerwanie, których sterownik
będzie używał.
Składnia: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]
Na przykład: lp=0x378,0 lub lp=0x278,5,0x378,7 **
Zauważ, że jeśli używasz tego parametru, to musisz podać *wszystkie*
porty, których będziesz używać - nie ma wartości domyślnych. Możesz
wyłączyć wbudowany sterownik parametrem lp=0.
Jeśli ładujesz sterownik drukarki jako moduł w wersji jądra 2.x.x
lub późnej 1.3.x, to możesz podać przerwanie i port jako parametr w
linii poleceń przy insmod (albo w pliku
/etc/conf.modules, żeby działało także dla
kerneld). Parametry to: io=port0,port1,port2 i
irq=irq0,irq1,irq2. Więcej informacji znajdziesz w podręczniku
systemowym man na stronie dotyczącej insmod.
**Dla tych, którzy (jak ja) nigdy nie mogą znaleźć standardowego
portu kiedy go potrzeba, to są one takie jak w podanym wyżej drugim
przykładzie. Drugi port (lp0) jest pod adresem 0x3bc. Nie mam
pojęcia jakiego przerwania zwykle używa.
Kod źródłowy linux-owego sterownika portu równoległego jest w
pliku /usr/src/linux/drivers/char/lp.c
3.2 Urządzenie parport (jądra >= 2.1.33)
Począwszy od jądra w wersji 2.1.33 (dostępne także jako łata dla
jądra 2.0.30), urządzenie lp jest po prostu klientem nowego
urządzenia parport. Dodanie urządzenia parport naprawia pewną
ilość błędów, które dręczyły poprzedni sterownik urządzenia lp -
może ono wpółdzielić port z innym urządzeniem, przypisuje
dynamicznie dostępne porty równoległe numerom urządzeń zamiast
wymuszać z góry narzuconą komunikację pomiędzy adresami I/O a
numerami portów i tak dalej.
Więcej szczegółów na temat parport podam kiedy sam znajdę się w
sytuacji kiedy będę tego używał. A w międzyczasie możesz
przeczytać plik Documentation/parport.txt w drzewie ze źródłami
jądra albo zajrzyj
na stronę parport.
3.3 Urządzenia szeregowe.
Urządzenia szeregowe pod Linux-em zwykle nazywają się
/dev/ttyS1 lub podobnie. Narzędzie
stty pozwala na interaktywne przeglądanie lub określanie
ustawień dla portu szeregowego;
setserial
pozwoli ci na kontrolowanie kilku rozszerzonych właściwości oraz na
skonfigurowanie IRQ i adresów I/O dla niestandardowych
portów. Więcej na temat portów szeregowych znajdziesz w
Serial-HOWTO dostępnym także w języku polskim.
Jeśli używasz wolnej drukarki szeregowej z kontrolą przepływu (flow
control), może się okazać, że niektóre z twoich wydruków są
obcinane. Może być to spowodowane zachowaniem portu szeregowego,
który wyrzuca wszystkie znaki ze swojego bufora po 30 sekundach od
momentu zamknięcia portu. W buforze może się znajdować do 4096
znaków a jeśli twoja drukarka używa kontroli przepływu i jest
wystarczająco wolna, tak że nie może przyjąć wszystkich 4096 znaków
z portu w ciągu 30 sekund, po tym jak oprogramowanie drukujące
zakmnęło port, to końcowa zawartość bufora zostanie utracona. Jeśli
w wyniku polecenia cat plik > /dev/ttyS2 pojawia się
cały wydruk dla krótkich plików, a dłuższe są obcinane, to to może
być twój problem.
Okres 30 sekund może zostać zmieniony poprzez opcję "closing_wait"
programu setserial (wersja 2.12 i późniejsze). Porty szeregowe
maszyny są z reguły inicjowane poprzez odwołanie do setserial w
pliku startowym rc.serial. Odwołanie do portu szeregowego drukarki
może być zmodyfikowane, tak aby ustawić closing_wait w tym samym
czasie kiedy ustawia inne parametry tego portu.
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
printing howto pl 5printing howto pl 4printing howto pl 6printing howto pl 12printing howto pl 10printing howto pl 8printing howto pl 9printing howto pl 14printing howto plprinting howto pl 1printing howto pl 15printing howto pl 13Printing HOWTO pl (2)printing howto pl 7Printing HOWTO plprinting howto pl 2printing howto pl 16printing howto pl 11printing usage howto pl 5więcej podobnych podstron