Problemy z drukarką Epson na USB - wcześniej działało.

Adam Skowroński askowron w ii.pw.edu.pl
Nie, 6 Wrz 2009, 17:41:51 CEST


Mam sobie kombajn Epson Stylus DX3850, który działał sensownie. Na Ac.
Na Th trafiłem na 3 problemy, z których ostatni 3 - jest najmłodszy i
najbardziej mnie boli. Gdyby komuś zechciało się pochylić, byłbym
wdzięczny.

=================================================
1. Problem
=================================================
Po przejściu na Th, okazało się, że skaner działa, ale jak uruchomię
xsane z roota. Po kilku dniach sprawdzania okazało się, że uprawnienia
do urządzenia skanera są:

[root w tytus.domek ~]# ls -la /dev/bus/usb/002/007
crw-rw-r-- 1 root root 189, 134 Sep  6 16:27 /dev/bus/usb/002/007

Konfiguracja skanera to (epson.conf):
	usb
	usb 0x4b8 0x818

Rozwiązanie na które wpadłem to - albo uruchamianie xsane z roota
(niewygodne) albo zmiana uprawnień do tego pliku /dev/bus/usb/002/007
(albo innego - zależy jak się podepnie) - ale to też niewygodne.
Póki co, ze skanera korzystam rzadko, więc olewałem sprawę.
1a. (tak przy okazji - xsane też chyba rykoszetem dostało zmianą libjpeg
- okienko podglądu chyba nie działa)



Dzisiaj zauważyłem, że mi nie działa drukarka.
=================================================
2. Problem
=================================================
W logach cups (error_log) znalazłem

-----------
D [06/Sep/2009:16:38:29 +0200] [Job 54] usb_find_busses=0
D [06/Sep/2009:16:38:29 +0200] [Job 54] usb_find_devices=0
D [06/Sep/2009:16:38:29 +0200] [Job 54] libusb couldn't open USB device
/dev/bus/usb/002/007: Permission denied.
D [06/Sep/2009:16:38:29 +0200] [Job 54] libusb requires write access to
USB device nodes.
-----------

Dodam, że drukarkę mam skonfigurowaną na urządzenie
	DeviceURI usb://dev/usb/lp0

Wieć dzielnie zmieniłem uprawnienia do tego urządzenia.

=================================================
3. Problem.
=================================================
No zmieniło to tylko tyle:

---------------
D [06/Sep/2009:16:56:16 +0200] [Job 57] usb_find_busses=0

D [06/Sep/2009:16:56:16 +0200] [Job 57] usb_find_devices=0

D [06/Sep/2009:16:56:16 +0200] [Job 57] STATE: +connecting-to-device

d [06/Sep/2009:16:56:16 +0200]
cupsdSetPrinterReasons(p=0x7f1ff2ed3b30(EpsonDX3850),s="+connecting-to-device"


D [06/Sep/2009:16:56:16 +0200] [Job 57] STATE: -connecting-to-device

d [06/Sep/2009:16:56:16 +0200]
cupsdSetPrinterReasons(p=0x7f1ff2ed3b30(EpsonDX3850),s="-connecting-to-device"


I [06/Sep/2009:16:56:16 +0200] [Job 57] czekam, aż drukarka stanie się
dostępna...
d [06/Sep/2009:16:56:16 +0200]
cupsdAddEvent(event=printer-state-changed,
dest=0x7f1ff2ed3b30(EpsonDX3850), job=(nil)(0), text="Printer "%s" state
changed.", ...)
D [06/Sep/2009:16:56:16 +0200] Discarding unused printer-state-changed
event...
d [06/Sep/2009:16:56:16 +0200] cupsdAddEvent(event=job-progress,
dest=0x7f1ff2ed3b30(EpsonDX3850), job=0x7f1ff2f5c590(57), text="%s",
...)
D [06/Sep/2009:16:56:16 +0200] Discarding unused job-progress event...

d [06/Sep/2009:16:56:17 +0200] select_timeout(0): 6 seconds to write
dirty config/state files
D [06/Sep/2009:16:56:21 +0200] [Job 57] usb_find_busses=0

D [06/Sep/2009:16:56:21 +0200] [Job 57] usb_find_devices=0

D [06/Sep/2009:16:56:21 +0200] [Job 57] STATE: +connecting-to-device

d [06/Sep/2009:16:56:21 +0200]
cupsdSetPrinterReasons(p=0x7f1ff2ed3b30(EpsonDX3850),s="+connecting-to-device"


D [06/Sep/2009:16:56:21 +0200] [Job 57] STATE: -connecting-to-device

d [06/Sep/2009:16:56:21 +0200]
cupsdSetPrinterReasons(p=0x7f1ff2ed3b30(EpsonDX3850),s="-connecting-to-device"


I [06/Sep/2009:16:56:21 +0200] [Job 57] czekam, aż drukarka stanie się
dostępna...
d [06/Sep/2009:16:56:21 +0200]
cupsdAddEvent(event=printer-state-changed,
dest=0x7f1ff2ed3b30(EpsonDX3850), job=(nil)(0), text="Printer "%s" state
changed.", ...)
D [06/Sep/2009:16:56:21 +0200] Discarding unused printer-state-changed
event...
d [06/Sep/2009:16:56:21 +0200] cupsdAddEvent(event=job-progress,
dest=0x7f1ff2ed3b30(EpsonDX3850), job=0x7f1ff2f5c590(57), text="%s",
...)
D [06/Sep/2009:16:56:21 +0200] Discarding unused job-progress event...

d [06/Sep/2009:16:56:21 +0200] cupsdCheckJobs: 1 active jobs,
sleeping=0, reload=0
I [06/Sep/2009:16:56:22 +0200] Saving job cache file
"/var/cache/cups/job.cache"...
d [06/Sep/2009:16:56:22 +0200] cupsdSaveJob(job=0x7f1ff2f4ae00(56)):
job->attrs=0x7f1ff2ef9980
d [06/Sep/2009:16:56:22 +0200] cupsdSaveJob(job=0x7f1ff2f5c590(57)):
job->attrs=0x7f1ff2ec91d0
D [06/Sep/2009:16:56:22 +0200] cupsdSetBusyState: Printing jobs

d [06/Sep/2009:16:56:22 +0200] select_timeout(0): 21 seconds to send
browse update
------------------

I tak dalej w kółko.

Reasumując: wygląda na to, że CUPS działa, tylko w jakiś dziwny sposób
nie może się dostać do fizycznego urządzenia.
Połączenie USB działa - bo mogę skanować. Więcej - używając escputils
mogę wymusić na drukarce jakieś czyszczenia głowic itp.

Ale sam CUPS - nie gada z drukarką.
Jakies pomysły macie na to?

W załączeniu konfiguracja cupsd.conf i printers.conf.

-------------------------
Dodakowe komendy
[root w tytus.domek cups]# lsusb | grep Epson
Bus 002 Device 007: ID 04b8:0818 Seiko Epson Corp. Stylus
CX3700/CX3800/DX3800

[root w tytus.domek backup]# lsmod | grep lp
usblp                  15859  0
usbcore               133992  12
cdc_acm,usb_storage,libusual,speedtch,usbatm,usbhid,usblp,gspca_zc3xx,gspca_main,ohci_hcd,ehci_hcd

[root w tytus.domek backup]# rpm -qa | grep "cups\|libusb" | sort
cups-1.4.0-2.x86_64
cups-backend-usb-1.4.0-2.x86_64
cups-clients-1.4.0-2.x86_64
cups-driver-pxl-8.15.4-2.x86_64
cups-filter-foomatic-3.0.20080317-1.x86_64
cups-filter-pstoraster-8.15.4-2.x86_64
cups-foomatic-db-20081228-2.noarch
cups-foomatic-db-Epson-20081228-2.noarch
cups-image-lib-1.4.0-2.x86_64
cups-lib-1.4.0-2.x86_64
cups-lpd-1.4.0-2.x86_64
cups-pdf-2.5.0-1.x86_64
gtk+2-cups-2.16.5-2.x86_64
gutenprint-cups-5.2.3-2.x86_64
libusb-1.0.2-1.i686
libusb-1.0.2-1.x86_64
libusb-compat-0.1.3-1.i686
libusb-compat-0.1.3-1.x86_64
libusb-compat-devel-0.1.3-1.x86_64
libusb-compat-static-0.1.3-1.x86_64
libusb-devel-1.0.2-1.x86_64
libusb-static-1.0.2-1.x86_64

[root w tytus.domek backup]# uname -a
Linux tytus.domek 2.6.28.10-3 #1 SMP Wed Jul 22 02:12:55 CEST 2009
x86_64 AMD_Athlon(tm)_64_Processor_3000+ PLD Linux

Adam


-- 
(""="")  Adam 'TYTUS' Skowroński           http://tytus.oldfield.org.pl/
 `.,,'    tytus w oldfield.org.pl      jabber:Adam.Skowronski w jabberpl.org
 ,' ',        Fanklub Oldfielda: http://mike.oldfield.org.pl/
      '         ...und alle Ochsen haben Angst vor mir...
"internet jest skanowany programem antywirusowym, prosze czekać"
-------------- następna część ---------
MaxLogSize 1m
Printcap /etc/printcap
LogLevel debug2
SystemGroup sys
User lp
# Allow remote access
Port 631
Listen /var/run/cups/cups.sock
# Enable printer sharing and shared printers.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseRemoteProtocols CUPS
BrowseAddress @LOCAL
BrowseLocalProtocols cups
DefaultAuthType Basic
<Location />
  # Allow shared printing...
  Order allow,deny
  Allow @LOCAL
</Location>
<Location /admin>
  Encryption Required
  # Restrict access to the admin pages...
  Order allow,deny
</Location>
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  # Restrict access to the configuration files...
  Order allow,deny
</Location>
<Policy default>
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job CUPS-Get-Document>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
<Policy authenticated>
  <Limit Create-Job Print-Job Print-URI>
  AuthType Default
  Order deny,allow
</Limit>
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job CUPS-Get-Document>
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
  AuthType Default
  Require user @SYSTEM
  Order deny,allow
    </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
      </Limit>
  <Limit Cancel-Job CUPS-Authenticate-Job>
      AuthType Default
      Require user @OWNER @SYSTEM
      Order deny,allow
        </Limit>
  <Limit All>
        Order deny,allow
          </Limit>
</Policy>
-------------- następna część ---------
# Printer configuration file for CUPS v1.4.0
# Written by cupsd on 2009-09-06 16:25
<DefaultPrinter EpsonDX3850>
Info EPSON Stylus DX3850
Location Dom
MakeModel Epson Stylus DX3850 - CUPS+Gutenprint v5.2.3
DeviceURI usb://dev/usb/lp0
State Idle
StateTime 1252247112
Type 8425484
Filter application/vnd.cups-raw 0 -
Filter application/vnd.cups-raster 100 rastertogutenprint.5.2
Filter application/vnd.cups-command 33 commandtoepson
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
AllowUser tytus
AllowUser monika
AllowUser wojtek
AllowUser root
OpPolicy default
ErrorPolicy stop-printer
</Printer>


Więcej informacji o liście pld-users-pl