Re: ZTE modems in unusual_devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 15 Feb 2009, Phil Dibowitz wrote:

> > I believe we should at least try to send "eject" command to these 
> > devices once they are detected, as that is sufficient to switch the 
> > mode for most of them, and I don't think it has potential to break 
> > anything. And we could simply.
> An eject command doesn't work, and in fact there's userspace tools to switch
> the mode. See the thread on linux-usb with the hardware manufacturer.

Yes, I am aware of the tool. Quite unfortunate that we can't do this is 
kernel, it's very inconvenient for users. Oh well, just another proof that 
hardware vendors are ... uhm ... creative bunch of people.

However, for my version of the device, the eject command errors out, but 
switches the device to the modem mode nevertheless :)

open("/dev/sr1", O_RDONLY|O_NONBLOCK)   = 3
ioctl(3, CDROMEJECT, 0x1)               = -1 EIO (Input/output error)
ioctl(3, SG_GET_VERSION_NUM, 0x7fff675bf7ac) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1e, 00, 00, 00, 00, 00], mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=8000, flags=0, status=00, masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=0, duration=4, info=0}) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1b, 00, 00, 00, 01, 00], mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=8000, flags=0, status=00, masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=0, duration=0, info=0}) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1b, 00, 00, 00, 02, 00], mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=8000, flags=0, status=02, masked_status=01, sb[18]=[f0, 00, 00, 00, 00, 00, 00, 0a, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00], host_status=0, driver_status=0x8, resid=0, duration=8, info=0x1}) = 0
ioctl(3, FDEJECT, 0x7fff675bf6a0)       = -1 EINVAL (Invalid argument)
ioctl(3, MGSL_IOCGPARAMS or MTIOCTOP or SNDCTL_MIDI_MPUMODE, 0x7fff675bf760) = -1 EINVAL (Invalid argument)
write(2, "eject: unable to eject, last err"..., 53eject: unable to eject, last error: Invalid argument) = 53

after this, the device switches its PID from 0x2000 to 0x0031 and the 
modem interface starts working.

By the way, after the device is switched to modem mode, there are three 
serial devices created. 

- ttyUSB0 seems to be completely silent, I guess that this provides 
  interface with some proprietary protocol that proprietary drivers use
- ttyUSB1 is quite strange device ... reading from it gives the same 
  output as from ttyUSB2, i.e something like

	SIM ready
	Waiting for Registration..(120 sec max)
	Registered on Home network: "RadioMobil",0
	Signal Quality: 29,99
  
  but when I try to dial out through this port, the PID of the device is 
  changed to 0x0076:

	usb 1-3: New USB device found, idVendor=19d2, idProduct=0076
	usb 1-3: New USB device strings: Mfr=2, Product=1, SerialNumber=0
	usb 1-3: Product: ZTE CDMA Technologies MSM
	usb 1-3: Manufacturer: ZTE, Incorporated
	usb 1-3: configuration #1 chosen from 1 choice

  Do you have any idea what mode did that beast switch itself over to?

- ttyUSB2 is the device that I can use to dial out normally

-- 
Jiri Kosina
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux