USB drive problem; "Get Max Lun not supported" and NO_GETMAXLUN

Martin Swift martin at swift.is
Mon Dec 13 13:54:03 PST 2004


 list,

I have been battling getting my HP dvd420e usb drive to work without
much luck partly since I haven't been able to commit any resonable
time for the task. Finally having some time on my hands I rolled up my
sleaves, determined to tackle this bastard. 

My problem was that on attatching the drive, I got the message:
--------------------
Dec 12 20:32:29 sr-160 kernel: umass0: HEWLETT PACKARD S1, rev 2.00/0.01, addr 2
Dec 12 20:32:29 sr-160 kernel: umass0: SCSI over Bulk-Only; quirks = 0x0000
Dec 12 20:32:29 sr-160 kernel: umass0: Get Max Lun not supported (STALLED)
Dec 12 20:32:29 sr-160 kernel: umass0:0:0:-1: Attached to scbus0
Dec 12 20:32:29 sr-160 kernel: umass0: Phase Error, residue = 0
Dec 12 20:32:33 sr-160 last message repeated 4 times
--------------------
According to 
  <http://lists.freebsd.org/pipermail/freebsd-questions/2003-September/020826.html>
the "Get Max Lun" seems to be the purpotrator. Following advice from 
  <http://www.root.org/~nate/freebsd/quirks.html>
I added the lines:
--------------------
        { USB_VENDOR_HP, PID_WILDCARD, RID_WILDCARD,
          UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
          NO_GETMAXLUN
        },
        { USB_VENDOR_HP2, PID_WILDCARD, RID_WILDCARD,
          UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
          NO_GETMAXLUN
        },
--------------------
to /usr/src/sys/dev/usb/umass.c (vendor names taken from
/usr/obj/usr/src/sys/PALANTIR/usbdevs.h) and made world.

This, sadly, did not resolve the problem. On attach the machine now 
reboots and if booted with the drive attatched, I get:
--------------------
Fatal trap 18: integer divide fault while in kenel mode
instruction pointer   = 0x8:0xc0666b73
stack pointer         = 0x10:0xcc7017dc
frame pointer         = 0x10:0xcc701864
code segment          = base 0x0, limit 0xffffff, type 0x1b
                      = DPL 0, pres 1, def32 1, gran 1
processor eflags      = interrupt enabled, resume, IOPL = 0
current process       = 36 (swi3: cambis)
[thread 100040]
Stopped at __qdivrem+0x3b: div(   %ecx,%eax
--------------------
The same message appeared when I tried rebooting later, again with the 
drive attached.

Apparently, something more than just the NO_GETMAXLUN quirk to get 
this guy to work. Any suggestions?

Martin Swift

Ps. After modifying a source file, what exactly is needed to remake
the neccisary parts? Would in my instance
  cd sys/modules/usb/ && make && make install
have done the trick?
-- 
Góð ráð og dýr:
<http://www.webfoot.com/advice/email.top.html>
<http://www.rfc-editor.org/rfc/rfc1855.txt>
<http://catb.org/~esr/html-hell.html>


More information about the freebsd-usb mailing list