Bug 391324

Summary: yast2-printer shows /dev/lp4 when adding a parallel port printer
Product: [openSUSE] openSUSE 11.0 Reporter: Johannes Meixner <jsmeix>
Component: YaST2Assignee: Michal Zugec <mzugec>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None    
Version: Beta 3   
Target Milestone: ---   
Hardware: All   
OS: openSUSE 11.0   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: screenshot with "/dev/lp4"
snapshot after [Next]...[Next]...[Next]...
y2log

Description Johannes Meixner 2008-05-16 13:00:51 UTC
I tried to add a queue for a parallel port printer
and got "/dev/lp4" by default but I have nowhere
such a device node (neither in the file system
nor in CUPS
--------------------------------------------------------
nelson:~ # ls -l /dev/lp*
crw-rw---- 1 root lp 6, 0 May  9 23:41 /dev/lp0

nelson:~ # lpinfo -l -v | grep lp
Device: uri = canon:/dev/lp0
Device: uri = epson:/dev/lp0
Device: uri = epson:/dev/usb/lp1
Device: uri = lpd
Device: uri = parallel:/dev/lp0
--------------------------------------------------------
Comment 1 Johannes Meixner 2008-05-16 13:02:40 UTC
Created attachment 215962 [details]
screenshot with "/dev/lp4"
Comment 2 Johannes Meixner 2008-05-16 13:06:38 UTC
Created attachment 215964 [details]
snapshot after [Next]...[Next]...[Next]...

There was no model selection because bug 387226
is still not fixed.
Comment 3 Johannes Meixner 2008-05-16 13:07:44 UTC
Created attachment 215965 [details]
y2log
Comment 4 Michal Zugec 2008-05-18 12:29:49 UTC
Johannes, can you try to run code from /usr/share/YaST2/scrconf/proc_parport_devices.scr manually?
Comment 5 Johannes Meixner 2008-05-20 06:27:39 UTC
/usr/share/YaST2/scrconf/proc_parport_devices.scr
-----------------------------------------------------------------
 * Summary:
 *   SCR Agent for reading autoprobe information from 
 *   /proc/parport (2.2) or /proc/sys/dev/parport (2.4)
-----------------------------------------------------------------

What crap is this?

Read
http://en.opensuse.org/SDB:CUPS_in_a_Nutshell
"The Backends"!

Why do you always prefer to inspect the file system
when it is the local running cupsd and only this cupsd
which has the currently actually correct information?

I explained it already so many many times to you!

Use "lpinfo -h localhost ..." and nothing else!

Get rid of all this crap in yast2-printer which
leads only to more and more problems!

Start to implement it in compliance with CUPS!

Stop re-implementing stuff as YaST-specific ditry-hacks!

Only

lpinfo -h localhost -l -v

(or equivalent CUPS library calls) results what you need!

Comment 7 Johannes Meixner 2008-05-20 10:19:49 UTC
nelson:~ # grep lp4 /var/log/*
nelson:~ #

nelson:~ # set -x

nelson:~ # if [ 2.4 = `uname -r | cut -b1-3 -` -o 2.6 = `uname -r | cut -b1-3 -` ] ; then for I in `ls /proc/sys/dev/parport 2>/dev/null | grep parport | sed 's/parport/\\/dev\\/lp/g'`; do echo \"$I\"; done; else for I in `ls /proc/parport 2> /dev/null`; do echo \"/dev/lp$I\"; done; fi
++ uname -r
++ cut -b1-3 -
++ uname -r
++ cut -b1-3 -
+ '[' 2.4 = 2.6 -o 2.6 = 2.6 ']'
++ ls -A -N --color=tty -T 0 /proc/sys/dev/parport
++ grep parport
++ sed 's/parport/\/dev\/lp/g'
+ for I in '`ls /proc/sys/dev/parport 2>/dev/null | grep parport | sed '\''s/parport/\\/dev\\/lp/g'\''`'
+ echo '"/dev/lp4"'
"/dev/lp4"

nelson:~ # set +x

nelson:~ # uname -r | cut -b1-3 -
2.6

nelson:~ # for I in `ls /proc/sys/dev/parport`; do echo \"$I\"; done
"default"
"parport4"

nelson:~ # cat /proc/sys/dev/parport/parport4/autoprobe
CLASS:PRINTER;
MODEL:DESKJET 970C;
MANUFACTURER:HEWLETT-PACKARD;
DESCRIPTION:Hewlett-Packard DeskJet 970C;
COMMAND SET:MLC,PCL,PML;

nelson:~ # ls -l /dev/lp*
crw-rw---- 1 root lp 6, 0 May  9 23:41 /dev/lp0

nelson:~ # /usr/lib/cups/backend/parallel 
direct parallel:/dev/lp0 "Unknown" "LPT #1"

nelson:~ # for i in $( seq 0 4 ) ; do grep lp$i /var/log/messages ; done \
 | grep -v usb
May 15 14:31:12 nelson klogd: lp0: using parport0 (polling).
May 15 14:31:12 nelson klogd: lp0: using parport0 (interrupt-driven).
May 16 11:39:25 nelson klogd: lp0: using parport1 (polling).
May 16 11:39:25 nelson klogd: lp0: using parport1 (interrupt-driven).
May 16 11:40:34 nelson klogd: lp0: using parport2 (polling).
May 16 11:40:34 nelson klogd: lp0: using parport2 (interrupt-driven).
May 16 13:23:34 nelson klogd: lp0: using parport3 (polling).
May 16 13:23:34 nelson klogd: lp0: using parport3 (interrupt-driven).
May 16 13:31:58 nelson klogd: lp0: using parport4 (polling).
May 16 13:31:58 nelson klogd: lp0: using parport4 (interrupt-driven).
May 16 14:59:45 nelson klogd: lp0: using parport4 (polling).
May 16 14:59:46 nelson klogd: lp0: using parport4 (interrupt-driven).
May 16 15:51:35 nelson klogd: lp0: using parport4 (polling).
May 16 15:51:35 nelson klogd: lp0: using parport4 (interrupt-driven).
May 16 15:53:45 nelson klogd: lp0: using parport4 (polling).
May 16 15:53:45 nelson klogd: lp0: using parport4 (interrupt-driven).
May 16 15:55:23 nelson klogd: lp0: using parport4 (polling).
May 16 15:55:23 nelson klogd: lp0: using parport4 (interrupt-driven).
May 16 15:59:29 nelson klogd: lp0: using parport4 (polling).
May 16 15:59:29 nelson klogd: lp0: using parport4 (interrupt-driven).
May 16 16:01:20 nelson klogd: lp0: using parport4 (polling).
May 16 16:01:20 nelson klogd: lp0: using parport4 (interrupt-driven).
Comment 8 Johannes Meixner 2008-05-20 10:22:46 UTC
I guess it is some new udev automated device magic.
CUPS works, yast2-printer hacks not - get rid of them!
Comment 9 Johannes Meixner 2008-05-20 10:28:29 UTC
More precisely: CUPS does not autodetect the model name
but its reported DeviceURI "parallel:/dev/lp0" works so
that the missing printer model information is unimportant
compared to the fact that yast2-printer set up the queue
with a wrong DeviceURI which cannot work at all.
Comment 10 Michal Zugec 2008-05-20 14:05:37 UTC
fixed in yast2-printer-2.16.28