Carlos Puchol wrote:
> hi, i am trying to debug the situation of an hp officejet g55
> connected to one of the onboard usb ports in my spakin' new
> asus a7v133. the printer is recognized but there is no way
> to print or scan from it
...
> so, maybe the problem is in the kernel. i am running a fresh
> redhat 7.1 install. i am trying to run the printer drivers from
> the hpoj group.
...
> when running them with the usb mode, the first indication
> that there is something wrong is that open() calls to
> the /dev/usb/lp0 return -1 in the ptal-mlcd daemon when someone tries to
> use it:
> 
> open("/dev/usb/lp0", O_RDWR)            = -1 ENODEV (No such device)
Hi, Carlos.  I tried running the HP OfficeJet software with USB on RedHat
7.1 (kernel 2.4.2), and ran into some problems that seem to be related to
SMP.  When I ran the box in UP mode, the problems went away.  I don't know
if this is related to the problems you reported, but I think the linux-usb
folks will want to know about it.  :-)

Specifically, after I start ptal-mlcd (the hpoj MLC/1284.4 daemon), if I
start a scan (using SANE), ptal-mlcd segfaults and I get the following
in /var/log/messages:

May 24 16:28:37 paschal5 kernel: Unable to handle kernel NULL pointer dereference at 
virtual address 000000a0
May 24 16:28:37 paschal5 kernel:  printing eip:
May 24 16:28:37 paschal5 kernel: c58646c7
May 24 16:28:37 paschal5 kernel: pgd entry c13ab000: 0000000000000000
May 24 16:28:37 paschal5 kernel: pmd entry c13ab000: 0000000000000000
May 24 16:28:37 paschal5 kernel: ... pmd not present!
May 24 16:28:37 paschal5 kernel: Oops: 0000
May 24 16:28:37 paschal5 kernel: CPU:    0
May 24 16:28:37 paschal5 kernel: EIP:    
0010:[pcnet32:__insmod_pcnet32_O/lib/modules/2.4.2-2smp/kernel/drivers/ne+-88377/96]
May 24 16:28:37 paschal5 kernel: EIP:    0010:[<c58646c7>]
May 24 16:28:37 paschal5 kernel: EFLAGS: 00010096
May 24 16:28:37 paschal5 kernel: eax: c169ff40   ebx: 00000202   ecx: 00000000   edx: 
c13fe060
May 24 16:28:37 paschal5 kernel: esi: c4705218   edi: 00000000   ebp: c4705218   esp: 
c1383efc
May 24 16:28:37 paschal5 kernel: ds: 0018   es: 0018   ss: 0018
May 24 16:28:37 paschal5 kernel: Process ptal-mlcd (pid: 1135, stackpage=c1383000)
May 24 16:28:37 paschal5 kernel: Stack: c5869004 c5866df7 00000387 c13fe060 c4705218 
c169ff40 00000202 c4705218 
May 24 16:28:37 paschal5 kernel:        c4acf000 c13fe060 c5863641 c4705218 c1382000 
c1382000 00000000 00000001 
May 24 16:28:37 paschal5 kernel:        c0008200 c13fe060 c4acf000 c47051c0 c13ff000 
00000000 00000009 c585604c 
May 24 16:28:37 paschal5 kernel: Call Trace: 
[pcnet32:__insmod_pcnet32_O/lib/modules/2.4.2-2smp/kernel/drivers/ne+-69628/96] 
[pcnet32:__insmod_pcnet32_O/lib/modules/2.4.2-2smp/kernel/drivers/ne+-78345/96] 
[pcnet32:__insmod_pcnet32_O/lib/modules/2.4.2-2smp/kernel/drivers/ne+-92607/96] 
[pcnet32:__insmod_pcnet32_O/lib/modules/2.4.2-2smp/kernel/drivers/ne+-147380/96] 
[ipchains:__insmod_ipchains_S.bss_L1072+38862/79684770] [sys_write+150/208] 
[system_call+51/56] 
May 24 16:28:37 paschal5 kernel: Call Trace: [<c5869004>] [<c5866df7>] [<c5863641>] 
[<c585604c>] [<c587e60e>] [<c013a486>] [<c01091cb>] 
May 24 16:28:37 paschal5 kernel:        [startup_32+43/203] 
May 24 16:28:37 paschal5 kernel:        [<c010002b>] 
May 24 16:28:37 paschal5 kernel: 
May 24 16:28:37 paschal5 kernel: Code: 8b 81 a0 00 00 00 8d 59 0c 8b 40 24 89 44 24 10 
8b 45 34 89 

I attached gdb to ptal-mlcd, but the process died such an ugly death that
gdb wasn't able to determine where in the code the segfault happened, which
would have possibly indicated what specific operation caused the segfault.

After the oops, lsmod indicated that the USB "printer" module was still
in use, even though ptal-mlcd had exited:
Module                  Size  Used by
printer                 5120   1
usb-ohci               17744   0  (unused)
usbcore                52416   1  [printer usb-ohci]

When I tried to restart ptal-mlcd and re-establish communication with the
peripheral, ptal-mlcd was unable to open /dev/usb/lp0 due to errno 16
(device or resource busy), probably because printer.o was in a bad state.
After messing around with it some more (I forget exactly what I did), my
machine eventually locked up completely and I had to press the reset button.

Running smaller tasks, such as talking to the "echo" service on the
peripheral, seems to work fine even in SMP.  In non-SMP, I can scan all I
want without problems.

> - shouldn't the ptal-mlcd process cause the uhci and/or printer
>   module to be "in use"? although i believe the driver does not
>   talk to the printer unless it is required.
ptal-mlcd waits until an application tries to talk to the peripheral before
it opens /dev/usb/lpX.  Once that's open, it stays open until ptal-mlcd is
killed, a communication or protocol error happens, or the daemon is
explicitly deactivated with the "deactivate" command on the debug console.

David

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to