# CUPS - nie działa drukarka

## Black_hole

Dodałem drukarkę w CUPS poprzed localhost:631. W "Location" napisałem "/dev/lp0". Drukarka dodana została pomyślnie, jak mnie poinformowało na przeglądarce.

Polecenie

```
echo "Printer testing..." > /dev/lp0
```

nie powoduje żadnej reakcji drukarki.

Po wykonaniu

```
dmesg | tail
```

wyrzuca mi: *Quote:*   

> pnp: Device 00:0a activated.
> 
> parport: PnPBIOS parport detected.
> 
> parport1: PC-style at 0x278, irq 5 [PCSPP,TRISTATE,EPP]
> ...

 Czy nie powinno być w ostatnich liniach "(polling)"  :Question: 

Pomóżcie  :Rolling Eyes: 

----------

## Piecia

Za dużo nie pomogę ale cupsy zostaw na później i sprawdź czemu nie drukuje bezpośrednio na /dev/lp0, może brak czegoś w jądrze??

Pozatym za pewne znane

Z kolei u mnie na jednym komputerze z gentoo drukarka drukuje bezpośrednio na /dev/usb/lp0 i przez cupsy a na drugim(też gentoo, jądro hardened-dev-sources-2.6.10-r1) przez cupsy nie chce(w obu przypadkach standardowa konfiguracja cups, nic nie zmieniana).

Niekiedy na informacji na localhost:631 pisze że drukarka nie jest podłączona , spróbuje za 30s(Ale bardzo rzadko, już nie pamiętam iedy to się pojawiło). Przy drukowaniu strony testowej otrzymuję "Test page sent; job ID is HP640C-1.". W Show Completed Jobs mam:

"HP640C-1 (State)aborted", no to biorę Restart Job i:

```

Error:

client-error-not-possible
```

Jakaś rada??

----------

## krzysiek

Ustaw w /etc/cups/cupsd.con LogLevel na debug i zobacz co masz w /var/log/cups/error_log a pewnie się dowiesz w czym jest problem.

Pozdrawiam

Krzysiek

----------

## qermit

mówisz że wklepujesz

 *Quote:*   

> echo "Printer testing..." > /dev/lp0

 

ale musisz jeszcze wysłac znak końca strony. Gdy miałem jeszcze drukarke pod lpt (hp) to bawiłem się nią troszeczke i musiałem dodać do znaku końca wiersza (\n) znak powrotu karetki (\r), ale dawno tego nie robiłem i nie pamiętam jak to szło. Poza tym nie kożystalem z CUPS'a a z lpr'a

Pozdrawiam[/code]

----------

## Black_hole

 *Piecia wrote:*   

> Przy drukowaniu strony testowej otrzymuję "Test page sent; job ID is HP640C-1.". W Show Completed Jobs mam:
> 
> "HP640C-1 (State)aborted", no to biorę Restart Job i:
> 
> ```
> ...

 Mam prawie identycznie  :Rolling Eyes: 

qermit: dodanie "\n" nic nie powoduje  :Confused: 

Skssowałem plik /var/log/cups/error_log i teraz go w ogóle nie tworzy i nie chce do niego zapisywać, jak go utworzę i nadam prawa takie, jakie mają pozostałe pliki w tym katalogu  :Sad: 

----------

## Rav70

Przyłączę się do tego co napisał krzysiek 3 posty wyżej - przestaw LogLevel na debug, spróbuj coś wydrukować i przejrzyj logi. 'Restart job' nie działa zapewne dlatego że cups nie jest skonfigurowany tak, aby przechowywał pliki ukończonych (w ten czy inny sposób) zadań drukowania.

Pozdr. Rav

----------

## qermit

chodziło mi o to że jak wysyła się coś bezpośrednio na drukarkę (/dev/lp0) to tekst musi mieć odpowiednie znaczki kontrolne i samo 'echo "blablabla...." > /dev/lp0' żeczywiście nic nie da bo drukarka "nie wie" że to już koniec tekstu do wydrukowania. Podobnie jest naprzykład z nową stroną - trzeba wysłać odpowiedni znaczek. Oto przykładowe kody znaków kontrolnych dla drukarek:

0x0a - wysunięcie papieru o jeden wiersz

0x0c - wysunięcie papieru do końca strony

0x0d - powrót głowicy do początku wiersza

0x14 - czyszczenie bufora drukarki

0x7f - usunięcie znaku z bufora drukarki

Niestety nie mogę tego przetestować bo nie wiem gdzie jest zasilacz od mojego HP690C.

----------

## qdlacz

HP 640 C nie wydrukuje tekstu po wysaniu np. tak

```
echo "costam" > /dev/lp0
```

mam taka w serwisie wlasnie i nie drukuje, tj. zaczyna mrugac lampkami i dostaje swira  (pewnie dlatego jest zepsuta  :Very Happy:  za to komunikacja dziala ) a z cupsa drukuje ok.

moje ustawienia w kernelu:

```

<*> Parallel port support

<*>   PC-style hardware

<*>     Multi-IO cards (parallel and serial)

[*]     Use FIFO/DMA if available (EXPERIMENTAL)

[*]     SuperIO chipset support (EXPERIMENTAL)

```

----------

## Piecia

Zgodnie z powyższym likiem który zapodałem: *Quote:*   

> Note: Niektóre drukarki (np. kilka HP LaserJets) potrzebują ^L (Control-L) na końcu pliku, aby zacząć drukowanie. Bez ^L polecenie cat się uda, ale drukarka pochłonie dane, potem zastopuje i nic nie będzie robiła.

  U mnie akurat to nie jest potrzebne, ale swoja drogą przydałoby się poznać znaki sterują swoją drukarką. 

Moja drukarka jest podłączona przez USB.

----------

## martin.k

A u mnie dmesg zapodaje:

```
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]

parport0: faking semi-colon

parport0: Printer, HEWLETT-PACKARD DESKJET 710C

parport_pc: Via 686A parallel port: io=0x378

lp0: using parport0 (polling).

```

Sprawdź swoje ustawienia w .configu, czy masz coś takiego:

```

CONFIG_PARPORT=m

CONFIG_PARPORT_PC=m

CONFIG_PARPORT_PC_CML1=m

CONFIG_PARPORT_SERIAL=m

CONFIG_PARPORT_PC_FIFO=y

CONFIG_PARPORT_PC_SUPERIO=y

# CONFIG_PARPORT_OTHER is not set

CONFIG_PARPORT_1284=y

 
```

Jeśli kompilujesz wsparcie dla portów jako moduły, to nie zapomnij dodać lp do /etc/modules.autoload.d/kernel-2.x

----------

## Black_hole

Ja mam teraz tak w jądrze:

```
<M> Parallel port support

<M>   PC-style hardware

< >     Multi-IO cards (parallel and serial)

[*]     Use FIFO/DMA if available (EXPERIMENTAL)

[ ]     SuperIO chipset support (EXPERIMENTAL)

[ ] Support foreign hardware

[*] IEEE 1284 transfer modes
```

Przekompilowałem CUPS. Wgrałem moduły

```
modprobe lp

modprobe parport

modprobe parport_pc
```

W dmesg nadal pisze: *Quote:*   

> lp0: using parport0 (interrupt-driven).
> 
> lp1: using parport1 (interrupt-driven).

 

Ustawiłem w cups.conf LogLevel na "debug". Jednak, gdy kliknąłem w przeglądarce, by wygrukowało stronę testową, to do /var/log/cups/log_error wpisało ok. 244kB. To końcowa część tego pliku: *Quote:*   

> I [04/Feb/2005:13:32:25 +0000] [Job 8] Printing page 1, 0% complete...
> 
> D [04/Feb/2005:13:32:25 +0000] [Job 8] cups_print_chunked - flip = 0, height = 3208
> 
> I [04/Feb/2005:13:32:25 +0000] [Job 8] Printing page 1, 3% complete...
> ...

 

Mam drukarkę HP LaserJet 4 Plus.

P.S. Jaki jest kod ASCII znaku "^L"  :Question: 

----------

## Black_hole

Czy nikt mi nie pomoże?  :Sad: 

----------

## Pepek

 *Black_hole wrote:*   

> P.S. Jaki jest kod ASCII znaku "^L" 

 

Dziesiętny : 12, ósemkowy : 014, szesnastkowy : C, nazwa wg ASCII : "FF".

Pozdrówki.  :Cool: 

----------

## Black_hole

Ludzie! Pomocy!!  :Sad: 

----------

## Schem

No to w końcu jak? Drukuje przez > /dev/lp0 ??

A jeżeli chodzi o cupsa, to może jakiś filterek? Gimpprint+foomatic dla mojego Canona s500 to jedyna opcja. Żadny inny sterownik nie powoduje reakcji drukarki. Choć kiedyś znalazłem jakiś, który powodował jej włączenie i przeładowanie. I wyłączenie  :Surprised:  W logach nic (ale ja się nie znam) i zero errorów. Według niego strona wydrukowana...

 Polecam http://www.linuxprinting.org/ - może coś znajdziesz

----------

## Black_hole

Na /dev/lp0 nie druguje  :Confused: 

A ma jakieś znaczenie to, iż w /dev mam -lp0, a nie +lp0  :Question: 

----------

## amenus

Mam identyczny problem z moim Lexmarkiem Z43. Niby jądro skonfigurowane jak terzeba, Cups i sterowniki są zainstalowane, drukarka podłączona a drukować nie chce.. Z logu też za wiele dowiedzieć się nie można. Kilka godzin googlowania i efektów żadnych.. Może ktoś wie jak to cholerstwo naprawić?? :Crying or Very sad: 

----------

## Schem

Moja drukarka po którymś z updateów (ostatnio kilka razy robiłem a nic nie drukowałem, więc nie wiem który namieszał) przestała się wogóle odzywać. Działała i nie działa. Emergowałem ponownie cupsa, gimpprinta, foomatic itp. Wywaliłem ją i zainstalowałem od nowa. NIC...

Czekam na kolejną aktualizację tego czegoś... ;(

----------

## amenus

Może to jednak nie jest wina Cupsa a złej konfiguracji/instalacji portu równoległego w systemie... Jak wogóle sprawdzić czy drukarka została wykryta, tzn. czy system "wie" że jest podłączona?? (wiem, że to lamerskie pytanie, ale jestem początkujący, więc nie bijcie  :Wink:  )

----------

## qdlacz

Na wstepie nalezalo by obadac czy ten model drukarki drukuje "surowe" dane w postaci txt wysylanego na port, zapwne testowales drukarke pod windowsami ze sterami ala M$ proponuje zainstalowac takie cos jak "drukarka bezposrednia" wtedy to CUPS posyla na port czysty PS i drukarka powinna drukowac po kolei zaklecia. Dalej mozna to samo zrobic pod M$ (jak masz jeszcze win98 to w "czystym DOSie" wcisnij Print Screen powinien druknac zaw. ekranu lub chociaz odebrac dale i cosik ruszyc karetka) Pod WinXP masz sterownik "Rodzajowe -> Generic / Text Only" 

Jesli drukarka jest w stanie drukowac takie cos to dopiero zabieramy sie do wysylania czegos do lp0, mozliwe jest ze bedzie drukowac tylko z PCLa albo czegos w tym stylu.

U nas w serwisie przy naprawie drukarek uzywamy CUPSa i jak narazie nie mialem przypadku zeby mi cos nie drukowalo, przelecialem juz chyba z polowe modeli drukarek jakie sa tam dostepne (USB/LAN/Równolegle/Szeregowe)

jak trzeba moge wyslac config od jadra.

Pozdrawiam

----------

## Piecia

Coś dodam od siebie.

Jakiś czas temu zająłem się xinetd'em. Instalując ów pakiet, automaycznie jest tworzony plik /etc/xinetd.d/cups-lpd, nie pamiętam tylko czy ta usługa była u mnie on czy off( i czy w ogóle plik ten miał poprawną zawartość). Bynajmiej akutalnie usługa cups-lpd jest wyłączona no i przy normalnie uruchomionym cups'ie ( /etc/init.d/cupds start) drukarka mi drukuje przez cups'y.

Ogólnie cały czas coś u siebie eksperymentuję na serwerku i bywa że albo zapomnę co zmieniłem albo po prostu coś zamieszam. Sprawdź u siebie.

Akutalnie wszystko dotyczącego drukarki i usb mam wkompilowane w jądro. 

[OT]Zastanawia mnie tylko jedno jaka jest zasadnicza różnica czy coś jest wkompilowane w jądro czy działa jako modół. Pomijając fakt że modół można załadować/wyładować.[/OT]

----------

## Schem

Wątek trochę stary, ale może komuś się przyda.

U mnie już ok, choć zrobiłem to poza distro. Otóż wszedłem na linuxprinting.org i stamtąd ściągnąłem plik .ppd do mojej drukarki. Poprzez przeglądarkę wszedłem na localhost i o dziwo, nie znalazłem sterownika do swojej drukarki (Canon s500). A kiedyś był w gimpprincie+foomatic. Pokazałem mu plik, który ściągnąłem i ruszyło jak złoto. Teraz mam działającą drukarkę i drukuje nawet lepiej, niż wtedy, kiedy działała na dystrybucyjnym sterowniku. Czyli dalej nie znam przyczyny, ale nie była to wina cupsa.

----------

## rebus

1.   początek http://www.gentoo.org/doc/en/printing-howto.xml po emergach i etc-update pełne i dostaniesz zestaw drukarek

2. jeśli coś nie tak to wybierz drukarke i szukaj na stronie http://linuxprinting.org/printer_list.cgi

ps 

dwa dni temu przechodziłem podobny problem  i 

- emerge cups foomatic   /poźniej restart cups-a/

- etc-update -3

dało pełny rezultat tylko że z canonem LBP2000

----------

## melk0r

moze mi ktos pomoze:

```
tomek tomek # foomatic-configure -s cups -p HP-DeskJet_3550 -c file:/dev/usb/lp0 -n HP -d hpijs

lpinfo: cups-get-devices failed: client-error-forbidden

Use of uninitialized value in substitution (s///) at /usr/lib/perl5/vendor_perl/5.8.6/Foomatic/DB.pm line 3427.

lpadmin: add-printer (enable) failed: client-error-forbidden

Could not set up/change the queue "HP"!
```

w kernelu mam opcje zwiazane z drukarka wkompilowane w jadro, zarowno usb jak i zwykle lp (ponoc ma byc), nie mam juz kompletnie pomyslu jak wlaczyc drukowanie

----------

## rebus

pogubiłem się PODAJ PEŁNĄ NAZWĘ FARYCZNĄ DRUKARKI to na pewno coś się da wykrzesać a na razie przeglądnij :

/nie mam HP ale czytając mam wrażenie że zamiast foomatic trzeba uzyc ghostscript /

http://gentoo-wiki.com/HOWTO_HP_Deskjet_720C_with_CUPS

zerknij na to  : http://gentoo-wiki.com/HOWTO_hpoj_/_CUPS

http://hpinkjet.sourceforge.net/

http://hpinkjet.sourceforge.net/printmodedescr.php#DJ3320

----------

## argasek

Może być to też wina rodzaju ghostscripta, AFPL GhostScript nie jest specjalnie dobrym wyborem, przynajmniej przed wersją 8.50, nie wiem jak teraz

----------

## Lord_Raven

mam identyczny problem z moim Lexmarkiem3200.

dmesg zwraca:

```
parport_pc: VIA 686A/8231 detected

parport_pc: probing current configuration

parport_pc: Current parallel port base: 0x378

parport0: PC-style at 0x378, irq 7 [PCSPP(,...)]

parport_pc: VIA parallel port: io=0x378, irq=7

lp0: using parport0 (interrupt-driven).
```

cups tu chyba niewiele ma do gadania. raczej szukalbym jakiegos zonka w kernelu (linux-2.6.11-gentoo-r8 ) [na r6 rowniez nie dzialalo]. probowalem zarowno wkompilowywac paralela w kernela jak i modul lecz bez skutku.

poprzez http://localhost:631/ dodalem swoja drukarke uprzednio zasysajac: Lexmark-3200-lxm3200-tweaked.ppd lecz kazda proba wydrukowania strony testowej konczy sie niepowodzeniem.

z ciekawszych zeczy przedstawie rowniez:

```
Description: 

Location: /dev/lp0

Printer State: idle, accepting jobs. 

Device URI: parallel:/dev/lp0
```

----------

## amenus

No właśnie - mam identyczny problem z moim Lexmarkiem Z43, wszystko opisałem w osobnym temacie, ale jak dotąd nikt nie wpadł na rozwiązanie. Wedlug mnie sprawcą zamieszania raczej nie jest jądro. Na kernel-2.6.10-gentoo-r6, jak i na ręcznie pobranym z www.kernel.org i skonfigurowanym jajku w wersji 2.6.11.8 też nic nie chce ruszyć... w moim error logu mozna wyszukać, że przyczyną są  ustawienia  locales w PERLu. Może ktoś mądry wie co można z tym zrobić??

----------

## Lord_Raven

mój problem juz rozwiazany. Wprawdzie nadal wyskakuje 'interrupt-driven' ale drukarka dziala  :Smile: 

okazalo sie ze brakuje zamergowanego foomatic wraz ze swoimi zaleznosciami. zakladalem ze pakiet ten jest zbedny w przypadku sciagniecia gotowege pliku ppd.

----------

