Printerproblemen op de Sun
Start afdruk Stop afdruk KAVTA bonnenprinter Vreemde afdruk Axis printerserver Axel printer SPLSUN en Unix OKI settings
Algemeen
Voordat we dieper ingaan op de problemen die tijdens het printen kunnen optreden, is het wellicht zinvol om even in te gaan op het hele printproces, zoals dat op de Sun functioneert. Er zijn vijf componenten die een belangrijke rol in dit proces spelen:
- Het stuurbestand van de programmeertaal, zoals BASIC, waarin is vastgelegd welke printers er zijn en hoe die printers binnen de applicatie genoemd worden. Vaak is er bijvoorbeeld een Unix printer p0, en wordt in het configuratiebestand vastgelegd dat deze binnen de applicatie als P0 wordt aangesproken. Soms, zoals in BBx (VPRO5), wordt in deze configuratiebestanden ook vastgelegd welke codes de printer gebruikt voor zaken als groot schrift en dergelijke.
- De applicatie, die gegevens uit bestanden leest en naar de printer, bijvoorbeeld P0, stuurt. Een applicatie kan ook nog gebruik maken van eigen stuurbestanden, waarin bijvoorbeeld is vastgelegd wat voor bladlengte er moet worden gebruikt
- De Unix print spooler die de uitvoer naar de printer onderschept en in een bestand plaatst om vervolgens vanuit dat bestand de printer van gegevens te voorzien. Spoolers worden toegepast om het printproces te versnellen. Zelfs moderne printers zijn in verhouding met het Unix systeem traag. Als de applicatie op de printer moet wachten, zou ook de gebruiker op elke afdruk moeten wachten voordat men weer terugkeert naar het menu van de applicatie. Door de applicatie snel naar een spoolfile te laten schrijven en daarna de spooler, via een automatisch gestarte andere taak, de communicatie tussen spoolfile en printer te laten verzorgen, heeft men als gebruiker geen last van de traagheid van de printer. Unix kent verschillende commando's voor de spooling, welke deels ook vanuit uw applicatie via SPLSUN te benaderen zijn.
- De printer zelf tenslotte zorgt ervoor dat alle ontvangen bytes in een leesbare vorm op papier terechtkomen.
Printerproblemen kunnen verschillende vormen aannemen:
- Men wil een afdruk starten, omdat er iets niet wordt afgedrukt, waar men op zit te wachten
- Men wil de afdruk stoppen, omdat er iets wordt afgedrukt dat men eigenlijk niet wil hebben
- De afdrukt oogt eigenaardig, maar heeft wel betrekking op wat men wilde afdrukken
- De verkeerde printer wordt gebruikt. Dit probleem treedt soms op bij gebruikers van het KAVTA pakket
Printen via Solaris/Linux verloopt meestal zonder problemen, maar soms gaat het mis en wacht men op een uitdraai die maar niet verschijnt. Problemen treden meestal op als men een printer heeft uitgezet, of als een netvoedings- of datakabel is losgeraakt, doordat er bijvoorbeeld met de printer geschoven is. Heel soms worden problemen veroorzaakt doordat in de apparatuur defecten zijn onstaan. Daarbij hoeft het niet noodzakelijk om de printer zelf te gaan, maar kan het ook de printerserver betreffen. Het localiseren van het probleem kan dan best lastig zijn. Hieronder wordt een mogelijke aanpak beschreven.
- Voor we de printer de schuld geven, is het raadzaam om eens te kijken of er inderdaad wel iets te printen was.
Het kan tenslotte zijn dat men een overzicht heeft opgevraagd met een selectie waaraan geen enkel record voldeed. Van alles dat 'afgedrukt' is, kan een kopie worden bekeken via SPLSUN. Dit is een programma dat gewoon vanuit het menu kan worden opgestart. Uit het in het programma getoonde menu kiest men vervolgens voor optie 5 om informatie over de spoolfiles van een bepaalde printer op te vragen. In de getoonde lijst met spoolfiles staat de meest recente spoolfile bovenaan. Als men tussen de spoolfiles niet kan vinden wat men zoekt, dan wordt het probleem waarschijnlijk niet veroorzaakt door de printer. De makkelijkste manier om te controleren dat de printer wel functioneert, is door een overzicht van bijvoorbeeld een paar debiteuren af te drukken en te kijken of dat wel op papier verschijnt. Als dat niet gebeurt, en het overzicht is ook niet te vinden met SPLSUN, dan is het printproces geblokkeerd in een eerder stadium dan de printer.- Als aannemelijk is dat de printer iets had moeten printen, maar dat niet doet, kunnen we kiezen uit een lange en een korte weg. De korte weg is meestal ook de makkelijkste oplossing.
De makkelijkste oplossing
Als een printer voorheen zonder problemen werkte en nu plotseling niets meer doet, is het onwaarschijnlijk dat de instelling van de apparatuur het probleem veroorzaakt.
- Deactiveer en activeer de printer op een SUN op unix-nivo:
disable p#
enable p#
Of op een linux-machine:
/usr/bin/cupsdisable p#
/usr/bin/cupsensable p#
- Als er niet te veel mensen op het systeem werken en de vorige stap niet het gewenste resultaat had is de eenvoudigste oplossing om iedereen even de taken op de server af te laten sluiten. Vervolgens drukt men voor alle zekerheid de kabels naar de printer en de printerserver een keertje aan en reboot men de server. In zo'n 99 procent van de gevallen is het probleem hiermee opgelost.
- Als de simpele oplossing niet werkt, of men geen gelegenheid ziet om te rebooten, zal het noodzakelijk zijn om te bepalen welke component uit het printproces het probleem veroorzaakt. Dit is vaak nogal lastig. Daarom wordt het stappenplan hier alleen beschreven voor een printer, die gekoppeld is aan een Axis printerserver. Als u geen idee heeft of uw printer zo gekoppeld is, geeft u, vanuit Unix, het volgende commando in:
lpstat -v ¦ more
Er wordt op het scherm getoond wat er allemaal aan printers aanwezig is en hoe die printers aan de Sun geknoopt zijn. Hieronder een voorbeeld van zo'n scherm:
device for p0: /dev/null device for p1: /dev/null device for p2: /dev/null device for p3: /dev/axis_1_p1 device for p4: /dev/axelpc10 device for p6: /dev/axis_3_p1 device for p7: /dev/axis_2_p1 system for p8: saldata4Aan de hand van de tekst achter de dubbele punt kunt u het type koppeling van de gewenste printer bepalen. In dit voorbeeld zijn printers 3, 6 en 7 via een Axis printerserver gekoppeld. Ter informatie volgt hieronder een opsomming van de verschillende koppelingen, welke men aan kan treffen.
- /dev/axis-#-P#
Axis printerserver, zowel serieel als parallel.- /dev/term/a (of b)
Rechtstreeks op de Sun, altijd serieel- /dev/term/0 (t/m 7)
Seriële extensiebus (X1008A beige controller), serieel- /dev/printers/0
Seriële extensiebus (X1008A beige controller), parallel- /dev/cua/a000 (t/m a007)
Seriële extensiebus (PCI zwarte controller), serieel- system for p# pc# !kyo(kyo is hier de queuenaam)
Voor de gebruik van Solstice via de PC. Zowel serieel als parallel is mogelijk. Er is per font een queue beschikbaar.- /dev/axelpc# (# is het PC nummer van de Axel)
Serieel of parallel via de Axel- system for p# axelos1
Serieel via de Axel Office Server- Netbeui
Axis via de PC, zowel serieel als parallel. Dit is alleen bedoeld voor Windows applicaties- /dev/null
Dit kunnen 2 soorten printers zijn:- Een 'dummy' printer. Hiermee wordt wel een printbestand aangemaakt dat men kan bekijken via het beeldscherm, maar er wordt niets op papier afgedrukt
- Een printer die via een netwerkkaart of printerserver verbonden is. Voor deze printers is het dus noodzakelijk om de werkelijke configuratie op te vragen: cat /var/spool/lp/admins/lp/printers/p#/configuration , waarbij p# staat voor de op te zoeken printer.
Problemen oplossen met Axis printerservers
Indien uw problemen een Axis printserver betreffen, kunt u de hieronder beschreven procedure volgen om de mogelijke oorzaak op te sporen. Daarbij wordt een # gebruikt om aan te geven dat u daar een voor uw geval van toepassing zijnde nummer in moet geven.
- Voorafgaande controles en verdere benodigde informatie
- Brandt het (groene) netspanningslampje op de server?
- Zitten de netwerkkabels goed vast aan de server en de printer?
- Staat de printer wel online?
- Bepaal het MAC-adres van de printerserver. Dit staat meestal onderop de server achter Serial no:.
- Bepaal de Unix printernaam. Dit is meestal een p gevolgd door het printernummer, dus als uw binnen uw applicatie problemen heeft met P3, dan betreft het (veelal) Unix printer p3. Voor alle zekerheid is het raadzaam om in het configuratiebestand te kijken met pg. Het configuratiebestand van BBx heet normaal gesproken /usr/bbx/config.bbx.
- Bepaal de netwerknaam van de Axis
- Bekijk met pg bestand /usr/local/lib/axis/ftp_p# (waarbij p# vervangen wordt door de Unix printernaam).
- Daarin staat een regel met 'internet_adress=axis#' en een regel met 'logical_printer=pr?'. Axis# is de naam van de Axis server en pr? is de logische printernaam die we nog nodig hebben.
Als de printers gewoon als processen draaien, kan men deze gegevens ook op een andere manier bepalen, namelijk via ps -ef ¦ grep axis.
- Bepaal het TCP/IP adres van de Axis server
- Bekijk met more het bestand /etc/hosts.
- Daarin moet een regels staan met 'axis# 192.9.200.nnn. Zo niet, dan is de printerserver niet vanuit Unix benaderbaar.
- Controleer de koppeling tussen TCP/IP adres en MAC-adres
- Geef in arp -a om een tabel met addreskoppelingen op het scherm te krijgen.
- Hierbij moet de server genoemd worden. Controleer verder het MAC-adres (A), de servernaam (B) en het TCP/IP adres (D).
- Controleer de netwerkverbinding met de printserver
- Geef in ping axis# om de verbinding te testen.
- Als het systeem antwoordt met de melding 'not responding' is het mis. Een mogelijk oorzaak kan een (intern) beschadigde kabel zijn, of een loszittende kabel. Aan een beschadiging kunt u niet veel doen, maar probeer wel om de kabels eens extra aan te drukken. Als de boodschap 'is alive' verschijnt, dan is de netwerkverbinding in ieder geval in orde.
- Probeer in te loggen op de printserver
- Tik in telnet axis# en log in met usernaam 'root' en wachtwoord 'pass'.
- Tik in status om te bekijken of alles in orde is.
- Met de opdracht account krijgt men de laatst ontvangen printopdrachten te zien. Als de laatst ontvangen printopdracht ook de laatst verstuurde opdracht is (kijk naar het aantal bytes), zit het probleem vermoedelijk in de printer.
- Controleer de status (S)
- Tik in logout om weer uit te loggen
- Probeer te FTP-en naar de printserver
- Tik in ftp axis# en gebruik weer 'root' en 'pass' om in te loggen.
- Probeer nu een kort Unix bestand (hosts) naar de printer te sturen met put /etc/hosts pr?, waarbij pr? de logische printernaam uit stap B is.
- Als er niets wordt afgedrukt, probeer het dan eventueel met een andere logische printer.
- Sluit de FTP sessie met quit af.
- Printen vanuit Unix
- Als tot hier alles goed gegaan is, zou de printer vanuit Unix moeten werken. Tik in lp -dp# /etc/hosts om deze theorie te testen.
- Als het niet werkt zit het probleem wellicht in stap B.
- Als het wel werkt dan zit het probleem in de gebruikte applicatie.
Printproblemen bij een Axel terminal
Als de printer, welke gekoppeld is aan een Axel terminal niet werkt, is het raadzaam om de volgende controles uit te voeren:
- Is de Axel wel actief?
- Tik in lpstat -v ¦ more. Daarin staat als het goed is minimaal een regel met 'axelpc#', waarbij het hekje is vervangen door een getal.
- Geef in ping axis# om de verbinding te testen.
- Als het systeem antwoordt met de melding 'not responding' is het mis. Een mogelijk oorzaak kan een (intern) beschadigde kabel zijn, of een loszittende kabel. Aan een beschadiging kunt u niet veel doen, maar probeer in ieder geval om de kabels eens extra aan te drukken. Als de boodschap 'is alive' verschijnt, dan is de netwerkverbinding in ieder geval in orde.
- Werkt de printscreen?
Op het toetsenbord van de Axel zit een toets, waarmee een afdruk van het beeldscherm kan worden gemaakt. Druk op die printscreen-toets om te zien of die afdruk wel door de printer kan worden verwerkt. Als dat niet lukt, sluit dan eventuele taken op de Axel af en zet de Axel terminal eens uit en aan. Probeer hierna nog eens een schermafdruk te maken.- Zitten de kabels op de juiste plaats?
De parallelle en seriele connector hebben bij sommige Axel types een soortgelijke opbouw, zodat men de stekker makkelijk op de verkeerde plaats kan aansluiten. Vergelijk de situatie zo mogelijk met een andere printer die op een Axel is aangesloten en wel werkt. Bekijk ook of die werkende printer parallel of serieel is en hoe dit zit bij de printer die niet afdrukt. Als de ene printer namelijk parallel is en de andere serieel, dan horen de kabels in beide Axels dus niet op dezelfde plaats te zitten.Wat u ook doet, zet in ieder geval niet zo maar de printer uit. Dat is iets waar Unix slecht tegen kan. Als u de printer uitzet, kunt u meestal meteen een ander probleem oplossen, namelijk 'het starten van het afdrukken'. Praktisch gezien betekent het verbod om de printer uit te zetten dat u het afdrukken nooit kan stoppen, behalve als het om héééél lange lijsten gaat. Als u namelijk kortere lijsten afdrukt, passen die vaak helemaal in het interne buffer van de printer en als de tekst daar eenmaal is aangeland, kunt u er niet meer bij. Om het afdrukken van een lange lijst af te breken, gebruikt u programma SPLSUN. Binnen dat programma kiest u voor optie 4.
Vreemd uitziende afdrukken, worden vaak veroorzaakt doordat men een nieuwe printer heeft aangesloten of een oude printer door een nieuw type heeft vervangen. Er kunnen diverse manieren zijn waarop de afdruk eigenaardig oogt:
- Er verschijnen rare tekens op papier, en zaken als groot schrift werken niet meer
De nieuwe printer gebruikt andere stuurcodes voor de speciale effecten. De codes die de printer nu toegezonden krijgt, zeggen de printer niets, daarom probeert de printer om de code gewoon als tekens af te drukken. Men krijgt daarom wel misschien wat vreemde tekens te zien, maar geen speciale effecten als groot schrift. U kunt het beste contact met onze helpdesk opnemen, want er zal iets moeten worden gewijzigd in uw configuratiebestand.- De afdruk begint goed, maar na een tijdje vallen er gaten in en ontbreken er stukken tekst
Dit probleem wordt meestal veroorzaakt door problemen met de handshaking tussen computer en printer. De printer is namelijk veel trager dan de computer. Bij langere teksten kan de printerbuffer vol raken en stuurt de printer een signaal naar de computer om even geen gegevens meer te sturen, zodat de printer de gegevens uit de buffer kan afdrukken. Als de handshaking niet goed is ingesteld, komt dit verzoek niet bij de computer aan en blijft deze gegevens sturen, die door de printer worden genegeerd. In zo'n geval kunt u het beste contact opnemen met de technische dienst.- De afdruk is vanaf het begin onleesbaar
Als de afdruk helemaal onleesbaar is, staat waarschijnlijk de communicatie snelheid, de baudrate, verkeerd ingesteld. Zoals bekend werkt de communicatie via bits, die de waarde 0 en 1 kunnen aannemen. In de praktijk komt het meestal neer op een spanning die varieert tussen laag en hoog. Als de communicatie snelheid niet klopt, wordt die spanning op de verkeerde momenten gemeten en krijgt de printer dus verkeerde bits binnen, waardoor de verkeerde letters zullen worden afgedrukt. Ook hiermee kan de technische dienst u verder helpen.- De afdruk verloopt
Het afdrukken begint op een gegeven moment wel op de juiste regelhoogte, maar op de volgende bladzijden verloopt dit en komt men hoger of lager op het papier uit. Mogelijk staat de bladlengte van de printer verkeerd ingesteld of klopt de instelling van de bladlengte via de applicatie niet. In het laatste geval kan het probleem mogelijk worden opgelost door een en ander via BAX135 goed in te stellen.De 'verkeerde' bonnenprinter wordt gebruikt binnen KAVTA
Dit probleem komt alleen voor bij gebruikers van het KAVTA pakket, die met terminal gebonden printers werken voor sommige programma's, zoals bijvoorbeeld het afdrukken van contantbonnen. Het probleem komt voort uit een misverstand over het gebruik van het trefwoord T-P, waarmee printers aan een terminal worden gekoppeld. Als toevoeging bij het trefwoord moet een PC-id worden gegeven. Men denkt soms dat dit de inlognaam van de gebruiker is, maar dat is niet zo. De printers worden namelijk gekoppeld aan terminals en niet aan gebruikers. Als men er even over nadenkt is dat ook logisch, want als iemand tijdelijk op een andere afdeling gaat werken en dus met de eigen naam op een andere PC inlogt, is het wel zo makkelijk als die persoon bonnen kan afdrukken op de printers van die nieuwe afdeling, en niet voor elke afgedrukte bon naar een printer op de oude afdeling hoeft te lopen.
De makkelijkste manier om de PC-id van een terminal te achterhalen is om, mits men voldoende rechten heeft, de applicatie op te starten en in het hoofdmenu <F10> te geven om te escapen. Vervolgens tikt men in !set ¦ grep BBNAME . Er verschijnt als het goed is een regel, die begint met BBNAME=. De tekst achter het '=' teken, zonder de omringende haakjes geeft de PC-id, dus (pc8) betekent dat de PC-id gelijk is aan pc8. Met RUN "L" kunt u terugkeren naar het menu, en daar vervolgens het trefwoord herzien.
SPLSUN en Unix spool commando's
Normaal gesproken zal men de spooler besturen vanuit BBx met het programma SPLSUN, maar het kan ook via Unix commando's. SPLSUN werkt over het algemeen makkelijker dan het zelf intikken van de Unix commando's. Wat men ook gebruikt, voor een succesvolle printersturing moet men weten op welk deel van het printproces de opdrachten invloed uitoefenen. Hieronder is een en ander in een schema samengevat:
![]()
Hieronder wordt een opsomming gegeven van een aantal commando's dat vanuit Unix of via SPLSUN kan worden gebruikt. Niet alle commando's zijn voor elke gebruiker uit te voeren. Vaak heeft men de rechten van de root-gebruiker nodig. Zo is binnen SPLSUN alleen optie 5 door iedereen te gebruiken.
Commando Functie SPLSUN optie accept toestaan printerspooling 8 reject verbieden printerspooling cancel opheffen printopdracht 4 enable printer starten 2 disable printer stoppen 3 lpstat printer status 1 lpmove verplaats spoolfile 9 lpshut stoppen spooling 6 lpsched activeren spooling 7 info spoolfiles 5 Mocht u ooit van de Unix commando's gebruik willen maken, dan kunt u de bij elk commando te gebruiken syntax achterhalen via man.
Soms kan het gebeuren dat er oude spoolfiles worden afgedrukt, die in SPLSUN niet te zien zijn. Die spoolfiles zijn dan alleen binnen Unix zelf bekend en moeten ook via Unix verwijderd worden. Gewoonlijk kan men dan de volgende werkwijze hanteren:
- Log in als root
- Tik in lpstat -o voor informatie over de status van de uitvoeropdrachten
- Als er nog uitvoeropdrachten zijn verschijnt er een lijst met pn-xxx regels, waarbij n het printernummer en xxx het opdrachtnummer is
- Tik in cancel pn-xxx om een opdracht te verwijderen of cancel pn-xxx pn-xxx, etc. om meerdere opdrachten in één keer te verwijderen.
Als men een nieuwe OKI printer in gebruik neemt, zal deze bij grote spoolfiles wat bladzijden goed afdrukken en daarna stukken tekst kwijtraken. OKI printers gebruiken standaard namelijk een ander protocol dan uw Sun systeem, waardoor de printer er niet in slaagt om aan de Sun door te geven dat de printerbuffer vol zit. In de settings van de OKI printer dient het volgende te worden gewijzigd:
- Protocol: Ready/Busy
- Busy Line: DTR
Hoe de settings gewijzigd kunnen worden, verschilt per printertype. Belangrijk is hoe men in de menu selectie van de printer komt. Dit is meestal wel in de user manual van de printer te vinden. Voor een Microline 3410 moet men bijvoorbeeld tegelijk op de knop met 'print quality' en 'character pitch' drukken. Als men eenmaal in de menu selectie staat, is de werkwijze over het algemeen als volgt:
- Druk op de PRINT-knop om een lijst af te drukken met de huidige instellingen
- Ga via de GROUP-knop naar de gewenste groep met instellingen
- Kies via de ITEM-knop het gewenste item binnen de groep
- Selecteer via de SET-knop de gewenste instelling van het item
- Druk op de EXIT-knop als alle instellingen naar wens zijn
Terugkeren naar het hoofdmenu