On 13 Nov, To: freebsd-current_at_freebsd.org wrote: > I've had a Virgin Mobile MiFi 2200 CDMA modem for a few years that I've > successfully been using in tethered mode on my 8-STABLE laptop. The > only issue is that I have to do a camcontrol eject to get it to switch > from being a umass device to being a modem. > > Today I decided to try to add this device to usbdevices and u3g, with > the U3GINIT_SCSIEJECT quirk so it would be more convenient to use. > > I plugged it into my 11-CURRENT machine to find it's ID. This showed > up in /var/log/messages: > > Nov 13 16:42:16 scratch kernel: ugen2.2: <Novatel Wireless Inc.> at usbus2 > Nov 13 16:42:16 scratch kernel: umass0: <Novatel Wireless Inc. Novatel Wireless CDMA, class 0/0, rev 1.10/0.00, addr 2> on usbus2 > Nov 13 16:42:16 scratch kernel: umass0: SCSI over Bulk-Only; quirks = 0x0100 > Nov 13 16:42:16 scratch kernel: umass0:9:0: Attached to scbus9 > Nov 13 16:42:16 scratch kernel: cd0 at umass-sim0 bus 0 scbus9 target 0 lun 0 > Nov 13 16:42:16 scratch kernel: cd0: <Novatel Mass Storage 1.00> Removable CD-ROM SCSI-2 device > Nov 13 16:42:16 scratch kernel: cd0: Serial Number 091166643730000 > Nov 13 16:42:16 scratch kernel: cd0: 1.000MB/s transfers > Nov 13 16:42:16 scratch kernel: cd0: Attempt to query device size failed: NOT READY, Medium not present > Nov 13 16:42:16 scratch kernel: cd0: quirks=0x10<10_BYTE_ONLY> > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:17 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:18 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:19 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:19 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:19 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:19 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:19 scratch kernel: (cd0:umass-sim0:0:0:0): Error 6, Retries exhausted > Nov 13 16:42:19 scratch kernel: (cd0:umass-sim0:0:0:0): cddone: got error 0x6 back > Nov 13 16:42:20 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:20 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:20 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:20 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:20 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:21 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): Error 6, Retries exhausted > Nov 13 16:42:22 scratch kernel: (cd0:umass-sim0:0:0:0): cddone: got error 0x6 back > Nov 13 16:42:23 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:23 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:23 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:23 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:23 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:24 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): Error 6, Retries exhausted > Nov 13 16:42:25 scratch kernel: (cd0:umass-sim0:0:0:0): cddone: got error 0x6 back > Nov 13 16:42:26 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:26 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:26 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:26 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:26 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:27 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): Retrying command (per sense data) > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 c8 00 00 00 01 00 > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): CAM status: SCSI Status Error > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI status: Check Condition > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:ffffffff,ffffffff (Reserved ASC/ASCQ pair) > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): Error 6, Retries exhausted > Nov 13 16:42:28 scratch kernel: (cd0:umass-sim0:0:0:0): cddone: got error 0x6 back > > > I'm assuming that the errors are caused by some missing quirk for the > umass device. > > A short while later, I got this panic, possibly triggered by doing > ls -l /dev/cd0 > > cd0 at umass-sim0 bus 0 scbus9 target 0 lun 0 > cd0: <Novatel Mass Storage 1.00> s/n 091166643730000 detached > (cd0:umass-sim0:0:0:0): Periph destroyed > panic: mtx_lock() of destroyed mutex _at_ /usr/src/sys/cam/cam_xpt.c:5251 > cpuid = 1 > KDB: stack backtrace: > db_trace_self_wrapper(c112eacc,a3135,10000000,e4f97b90,e4f97b88,...) at db_trace_self_wrapper+0x2d/frame 0xe4f97b50 > kdb_backtrace(c12eca4f,1,c1127e81,e4f97c28,e4f97bf8,...) at kdb_backtrace+0x30/frame 0xe4f97bb8 > vpanic(c140ca38,100,c1127e81,e4f97c28,e4f97c28,...) at vpanic+0x11f/frame 0xe4f97bf8 > kassert_panic(c1127e81,c0fee59f,1483,c0fee59f,0,...) at kassert_panic+0xea/frame 0xe4f97c1c > __mtx_lock_flags(c9a70ad0,0,c0fee59f,1483,c9a70ad0,...) at __mtx_lock_flags+0x153/frame 0xe4f97c50 > xpt_done_process(c13d2a10,0,c0fee59f,1499,0,...) at xpt_done_process+0x44f/frame 0xe4f97c80 > xpt_done_td(c13d2a00,e4f97d08,c1123cf4,3db,0,...) at xpt_done_td+0x164/frame 0xe4f97ccc > fork_exit(c04c7b80,c13d2a00,e4f97d08) at fork_exit+0x7f/frame 0xe4f97cf4 > fork_trampoline() at fork_trampoline+0x8/frame 0xe4f97cf4 > --- trap 0, eip = 0, esp = 0xe4f97d40, ebp = 0 --- > KDB: enter: panic > > I've got the vmcore file, so I can extract more info from it if > necessary. > > > This is what I see when I plug it into my 8.4-STABLE laptop: > > umass0: <Novatel Wireless Inc. Novatel Wireless CDMA, class 0/0, rev 1.10/0.00, addr 2> on usbus1 > umass0: SCSI over Bulk-Only; quirks = 0x0100 > umass0:2:0:-1: Attached to scbus2 > (probe0:umass-sim0:0:0:0): TEST UNIT READY. CDB: 00 00 00 00 00 00 > (probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error > (probe0:umass-sim0:0:0:0): SCSI status: Check Condition > (probe0:umass-sim0:0:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) > cd1 at umass-sim0 bus 0 scbus2 target 0 lun 0 > cd1: <Novatel Mass Storage 1.00> Removable CD-ROM SCSI-2 device > cd1: 1.000MB/s transfers > cd1: Attempt to query device size failed: NOT READY, Medium not present > cd1: quirks=0x10<10_BYTE_ONLY> I discovered that if I just wait a while (about 10 minutes), the umass device on my laptop will just go away by itself and the u3g device will appear: ugen1.2: <Novatel Wireless Inc.> at usbus1 (disconnected) umass0: at uhub1, port 1, addr 2 (disconnected) (cd1:umass-sim0:0:0:0): lost device (cd1:umass-sim0:0:0:0): removing device entry That might be what triggered the panic on my 11-CURRENT box. If I add this quirk on my 11-CURRENT box, the CAM errors above go away, and the panic seems to go away as well: Index: dev/usb/quirk/usb_quirk.c =================================================================== --- dev/usb/quirk/usb_quirk.c (revision 258079) +++ dev/usb/quirk/usb_quirk.c (working copy) _at__at_ -288,6 +288,7 _at__at_ UQ_MSC_NO_INQUIRY), USB_QUIRK(NIKON, D300, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI), + USB_QUIRK(NOVATEL, MIFI2200V, 0x0000, 0xffff, UQ_MSC_NO_PREVENT_ALLOW), USB_QUIRK(OLYMPUS, C1, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_WRONG_CSWSIG), USB_QUIRK(OLYMPUS, C700, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN), Index: dev/usb/usbdevs =================================================================== --- dev/usb/usbdevs (revision 258079) +++ dev/usb/usbdevs (working copy) _at__at_ -3174,6 +3174,7 _at__at_ product NOVATEL U727 0x4100 Merlin U727 CDMA product NOVATEL MC950D 0x4400 Novatel MC950D HSUPA product NOVATEL ZEROCD 0x5010 Novatel ZeroCD +product NOVATEL MIFI2200V 0x5020 Novatel MiFi 2200 CDMA Virgin Mobile product NOVATEL ZEROCD2 0x5030 Novatel ZeroCD product NOVATEL MIFI2200 0x5041 Novatel MiFi 2200 CDMA product NOVATEL U727_2 0x5100 Merlin U727 CDMA Now I see this: ugen2.2: <Novatel Wireless Inc.> at usbus2 umass0: <Novatel Wireless Inc. Novatel Wireless CDMA, class 0/0, rev 1.10/0.00, addr 2> on usbus2 umass0: SCSI over Bulk-Only; quirks = 0x8100 umass0:9:0: Attached to scbus9 cd0 at umass-sim0 bus 0 scbus9 target 0 lun 0 cd0: <Novatel Mass Storage 1.00> Removable CD-ROM SCSI-2 device cd0: Serial Number 091166643730000 cd0: 1.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present cd0: quirks=0x10<10_BYTE_ONLY> [long pause] ugen2.2: <Novatel Wireless Inc.> at usbus2 (disconnected) umass0: at uhub0, port 1, addr 2 (disconnected) cd0 at umass-sim0 bus 0 scbus9 target 0 lun 0 cd0: <Novatel Mass Storage 1.00> s/n 091166643730000 detached (cd0:umass-sim0:0:0:0): Periph destroyed usb_alloc_device: set address 2 failed (USB_ERR_IOERROR, ignored) usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_IOERROR ugen2.2: <Novatel Wireless Inc.> at usbus2 u3g0: <Data Interface> on usbus2 u3g0: Found 3 ports. I'm getting some new USB errors, but they seem to be harmless. Next I tried adding this quirk to trigger the eject, but I still see a 10 minute pause before the umass device goes away and the u3g device shows up. Index: dev/usb/serial/u3g.c =================================================================== --- dev/usb/serial/u3g.c (revision 258079) +++ dev/usb/serial/u3g.c (working copy) _at__at_ -345,6 +345,7 _at__at_ U3G_DEV(NOVATEL, MC547, 0), U3G_DEV(NOVATEL, MC950D, 0), U3G_DEV(NOVATEL, MIFI2200, U3GINIT_SCSIEJECT), + U3G_DEV(NOVATEL, MIFI2200V, U3GINIT_SCSIEJECT), U3G_DEV(NOVATEL, U720, 0), U3G_DEV(NOVATEL, U727, 0), U3G_DEV(NOVATEL, U727_2, 0), Hmn ...Received on Thu Nov 14 2013 - 07:40:54 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:44 UTC