|
|
Linux-PC als Druckserver
Ein PostScript-Drucker mit Netzschnittstelle ist nicht billig. Da ist es ein
nahe liegender Gedanke, einen ausgedienten PC mit den preiswerten PC-Druckern
auszustatten und an das Netz anzuschließen. Gegenüber einem netzwerkfähigen
TCP/IP-Drucker hat diese Lösung den Vorteil, dass der Linux-PC das
Filter und PostScriptUnter UNIX ist PostScript der Standard für Drucker. Das ist sehr praktisch, da die meisten Anwendungsprogramme kein Problem damit haben, eine PostScriptausgabe zu erzeugen. Das Programm GhostScript ist ein Übersetzer von PostScript auf die verschiedensten Ausgabemedien. Dazu zählen neben dem Bildschirm auch alle gängigen Drucker.
Die Umwandlung von PostScript in die druckereigene Sprache erfolgt durch einen
Filter, der mit dem Eintrag
Ein Interface-Skript wie
/usr/bin/gs -q -dNOPAUSE -dSAFER -sDEVICE=clj5 -sOutputFile=-
Der Name des Skripts (beispielsweise /usr/local/cljf) wird dann unter
Druckerdevices unter LinuxDer Zugriff auf die Schnittstellen erfolgt über die Gerätedateien im Verzeichnis /dev, wie dies unter UNIX üblich ist. Bei PCs sind die Druckeranschlüsse parallele Schnittstellen. Davon kann jeder PC drei Stück haben, wobei der dritte keinen Interrupt besitzt und per Polling abgefragt werden muss. Dazu kommen die USB-Anschlüsse und die maximal vier Mit einer speziellen Karte sind auch mehr als vier serielle Schnittstellen möglich. Diese teilen sich dann den Interrupt. Man sollte aber vor der Verwendung prüfen, ob sie auch von Linux unterstützt werden. seriellen Schnittstellen, von denen wiederum zwei mit eigenen Interrupts belegbar sind. Insgesamt kann man einen solchen Rechner also recht ordentlich bestücken.
[Druckeranschlüsse am PC]L|L|C
Device & Anschluss & Interrupt
Druckerinterrupt auf Linux-SystemenAuf einem Einzelplatzsystem wie MS-DOS wartet das Programm normalerweise in einer Endlosschleife auf den Druckauftrag. Dies nennt man Polling. Die Alternative dazu ist die Interruptsteuerung. Dazu wird der Prozess, der den Druck steuert, direkt nach Ablieferung eines Druckzeichens in eine Warteschlange gesetzt. Die CPU wendet sich neuen Aufgaben zu. Sobald der Drucker fertig ist, unterbricht er (Interrupt) die derzeitige Beschäftigung der CPU. Diese holt den wartenden Prozess wieder aus der Warteschlange und setzt ihn fort. Während das Polling zu einer Beobachtungsschleife führt, die die CPU stark belastet, findet bei der Interruptsteuerung nur dann eine Aktion statt, wenn der Ablauf das erfordert. Bei Einzelplatzsystemen ist der Unterschied nicht signifikant. Unter Multitasking-Systemen, insbesondere bei mehreren Druckern, sollte eine interruptgetriebene Ansteuerung verwendet werden. Beim Design des PCs waren von vornherein Interrupts für den Drucker vorgesehen. Für die erste parallele Schnittstelle ist der Interrupt 7 reserviert. Ein zweiter Parallelanschluss (LPT2) ist mit dem Interrupt 5 vorgesehen. Aufgrund der Interrupt-Knappheit in einem PC wird dieser Interrupt allerdings häufig für andere Peripherie verwendet, da nur wenige PCs wirklich zwei Druckerschnittstellen besitzen. Ein dritter Anschluss (LPT3) ist zwar ansteuerbar, hat aber keinen Interrupt zugeordnet.
Unter Linux kann durch den Befehl
tunelp /dev/lp1 -i7 tunelp /dev/lp2 -i5 Hier wird die Schnittstelle LPT1 auf den Interrupt 7 und die Schnittstelle LPT2 auf den Interrupt 5 gesetzt. Seit der Kernelversion 2.1.131Die Kernelversion meldet der Befehl uname -r. wird die Steuerung der parallelen Schnittstellen durch das parport-System übernommen. In der Konfigurationsdatei /etc/modules.conf erreicht der folgende Eintrag, dass die Druckerschnittstellen 1 und 2 per Interrupt betrieben werden.
alias parport_lowlevel parport_pc options parport_pc io=0x378,0x278 irq=7,5
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|