Reference Ubuntu Maverick Meerkat :
READ ALL BEFORE COMMITTING
ALL ARE EXAMPLES : EDIT THE DETAILS ACCORDING TO YOUR DEVICE ID's (you have been advised)
Reference Ubuntu Maverick Meerkat : note usb_modeswitch and udev rules , not same as previous versions of Ubuntu,see USB_MODESWITCH: POST #1
AT COMMANDS PDF REFERENCE :REMAINS see foot of post
Huawie devices and other's .:Option driver not loading: Note the option driver is normally used with 3g devices
ZTE Devices not Switching See foot of page:same type of rule may apply for other new devices not recognized by udev or the kernel
to check . open up a terminal , enter the following code
the output will look similar to
T: Bus=01 Lev=01 Prnt=01 Port=08 Cnt=02 Dev#= 5 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev=00.00
S: Manufacturer=HUAWEI Technology
S: Product=HUAWEI Mobile
C: #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
I: If#= 0 Alt= 0 #
EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff
Driver=(none)
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff
Driver=(none)
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=
ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I: If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
(each device may show different parts)
also note " EPs= 3 " this usually indicates the modem
Notice the lines where it shows Driver=(none)
From the terminal enter the following code,to load the driver module
Code:
sudo modprobe option
enter your system password
then repeat the command "usb-devices"
you should now see
T: Bus=01 Lev=01 Prnt=01 Port=08 Cnt=02 Dev#= 5 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev=00.00
S: Manufacturer=HUAWEI Technology
S: Product=HUAWEI Mobile
C: #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff
Driver=option
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff
Driver=option
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff
Driver=option
I: If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I: If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
device should now be ready
as a temporary fix (applies to recent Ubuntu versions with usb_modeswitch)
Can try this
Code:
sudo gedit /lib/udev/rules.d/40-usb_modeswitch.rules
scroll down to the line which shows the id's of the device
EXAMPLE:
# Huawei E169
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1001", RUN+="usb_modeswitch '%b/%k'"
disable the line with a # . Add a line so it looks like the below . also double check the ID's prior to saving
Code:
# Huawei E169
#ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1001", RUN+="usb_modeswitch '%b/%k'"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1001", RUN+="/sbin/modprobe option"
save the file : unplug the device then reconnect : note changes by using the "usb-devices" command
If the mode-switching has been disabled (device not switching) remove the "#": note changes by using the "usb-devices" command
If the above has no effect reverse the changes :
once done: exit gedit
NOTE : after updating the system : check and reverse the changes : see what happens
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if the dialout method requires ID the modem port (recommend using Sakis3g as a tool (use more options menu) to update system , although it can't dial true CDMA: IE dial command #777)
also may save having to write new rules esp if new device + details not in any of the udev rules
this should give output similar to
T: Bus=01 Lev=01 Prnt=01 Port=08 Cnt=02 Dev#= 13 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev=00.00
S: Manufacturer=HUAWEI Technology
S: Product=HUAWEI Mobile
C: #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
I:
If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I: If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I: If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
Note the " If#= 0 Alt= 0 #EPs= 3 " : the part with EPs= 3 usually indicates the modem
Code:
ls -al /dev/serial/by-id/usb*
this should give output similar to
/dev/serial/by-id/usb-HUAWEI_Technology_HUAWEI_Mobile-
if00-port0 -> ../../ttyUSB0
/dev/serial/by-id/usb-HUAWEI_Technology_HUAWEI_Mobile-if01-port0 -> ../../ttyUSB1
/dev/serial/by-id/usb-HUAWEI_Technology_HUAWEI_Mobile-if02-port0 -> ../../ttyUSB2
Note the line with the if00-port0 -> ../../ttyUSB0
here are the two important lines
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
/dev/serial/by-id/usb-HUAWEI_Technology_HUAWEI_Mobile-if00-port0 -> ../../ttyUSB0
read again from " if the dialout method requires ID the modem port"
Identify the
This device indicates the modem is on ttyUSB0
Example: for wvdial
UDEVADM:
Note: udev rules does not allocate tty* as constant always check tty* : always check with "ls -al /dev/serial/by-id" or "ls -al /dev/serial/by-path"
Hence dialers like wvdial and ppp/chat with the tty* set as constant , may fail to identify the correct port , if the udev allocates a different device node
For info retrieval about devices suggest reading udevadm man pages
Example: redirect outputs to home directory /udevinf
dump all .. note this device does not list as a modem in Hal properties, listed by " lshal " command
Code:
udevadm info --export-db > `pwd`/udevinfo
open the file with gedit look for lines similar to
P: /devices/pci0000:00/0000:00:02.1/usb1/1-3/1-3:1.3/ttyUSB2/tty/ttyUSB2
N:
ttyUSB2
S:
gsmmodem
S: char/188:2
However: this is where a data base can give the wrong info / if a device is incorrectly switched (usually by manually ejecting or safely removing the device)
hence reason for two methods of detecting the correct port / also makes twice as hard if the device only reveals Eps=2 /even harder if a newer devices with 2 modem ports
can also be explained by reading post #16
the original fix script has been removed , but will update ASP to include devices which reveal only 2 Eps: See Post #61
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
ZTE DEVICES NOT SWITCHING: Also may apply to other devices
to find state of device : from the terminal
example reply
T: Bus=01 Lev=01 Prnt=01 Port=05 Cnt=01 Dev#= 5 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=
19d2 ProdID=
2000 Rev=00.00
S: Manufacturer=ZTE, Incorporated
S: Product=ZTE CDMA Technologies MSM
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=05 Prot=50 Driver=
usb-storage
to fix try
Code:
sudo gedit /etc/udev/rules.d/zte_eject.rules
add this line edit the device ID's according to the device
Code:
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2000", RUN+="/usr/bin/eject %k", OPTIONS+="last_rule"
save exit , reboot with the device connected or can try udevadm to reload the rule
Code:
udevadm control --reload-rules
Note any change with "lsusb" command
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Note: if running udevadm test ..../*/* : and Debug info , indicates the use of SYSFS, then Change the rules accordingly
add_rule: SYSFS{}= will be removed in a future udev version, please use ATTR{}= to match the event device, or ATTRS{}= to match a parent device, in /etc/udev/rules.d/*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some devices may not be recognized by the kernel modules(device recognition is usually built in)
so it is advantages to use a udev rule to use the generic usbserial driver (not always recommended)
but will suffice until the modules get updated
note :if the device is getting switched by usb_modeswitch , then it may have been registered to use the option module
this can be monitored by rebooting the system after modeswitching , long winded, but seems to work. can check with udevadm test.
example of udevadm test .../*/* : locate the file to which part of the device resides ( as mentioned earlier , one reason to ensure the driver is loading , can use "40-usb_modeswitch.rules)
Code:
udevadm test /sys/bus/usb/devices/1-3:1.0
this is a part of the output which indicates the usb_modeswitch binding the driver
udevadm_test: run: 'usb_modeswitch --driver-bind /devices/pci0000:00/0000:00:02.1/usb1/1-3/1-3:1.0 19d2/31/0'
udevadm_test: run: 'socket:@/org/freedesktop/hal/udev_event'
if driver not loaded possible , try reloading the rules with "udevadm control --reload-rules" command ,
see what happens
example udev rule to load the generic usbserial driver (remember the device has to be in the switched mode : + edit the ID's accoring to the device. )
Code:
sudo gedit /etc/udev/rules.d/usbserial.rules
enter
Code:
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1001", RUN+="/sbin/modprobe usbserial vendor=0x12d1 product=0x1001"
save and exit
Rules: Renaming /dev/tty* : This type of renaming convention can make life easier for the likes of wvdial, yet difficult for network manager , be careful as to its usage
here is an example of renaming the dev nodes : from previous info determine the functions of
ATTRS{bInterfaceNumber}=="**" and the ATTRS{bInterfaceProtocol}=="**" then make the rule in the /etc/udev/rules.d
example:here the modem port is at kernel ttyUSB0 : bInterfaceNumber 00 : renamed to /dev/Huawei1_modem (remember to edit the device ID's according to the device)
Code:
sudo gedit /etc/udev/rules.d/huawei1Nodes.rules
The rules
Code:
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="00", ATTRS{bInterfaceProtocol}=="ff", NAME="Huawei1_modem"
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="01", ATTRS{bInterfaceProtocol}=="ff", NAME="Huawei1_ctrl"
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="02", ATTRS{bInterfaceProtocol}=="ff", NAME="Huawei1_null"
note the changes with the "ls -al /dev/serial/by-id" command
Code:
ls -al /dev/serial/by-id
This type of renaming convention can make life easier for the likes of wvdial, yet difficult for network manager , be careful as to its usage
As mentioned earlier some devices can be incorrectly switched and tty* can be of different Numbers , if it is known That the modem part of the Device rule "bNumEndpoints=03,
then a udevrule can be used to good effect , see what I have done below with one such device, Note the difference in the rules, part of the old rules are disabled(this is a must do)
Code:
SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bNumEndpoints}=="03", ATTRS{bInterfaceProtocol}=="ff", NAME="Huawei1_modem"
# SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="01", ATTRS{bInterfaceProtocol}=="ff", NAME="Huawei1_aux"
# SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="02", ATTRS{bInterfaceProtocol}=="ff", NAME="Huawei1_null"
Note: at kernel level the tty* remain the same
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Advisory Note:
Bugs should now be reported to the source . IE : if it were a usb_modeswitch bug, or OOps , then report to usb_modeswitch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Reference Guide
Products: MTSMC-Cxx, MTMMC-Cxx, MTCBA-Cxx
PN S000294D, Revision D
Multi-Tech Systems, Inc.
AT Commands for CDMA Wireless Modems
Including ,Reference to CDMA : Qualcomm ,Verizon ® and Sprint®
Qualcomm , Verizon ® and Sprint® ; AT commands: read
Chapter 19 - Qualcomm Defined AT Commands for CDMA Operation
Chapter 22 - Verizon® Specific AT Commands
Chapter 23 - Sprint® Specific AT Commands
Warning : the below file is in pdf format :clicking on the link to will automatically download the file
AT Commands For CDMA Wireless Modems Reference Guide
VIEW ON LINE :AT COMMANDS 3g and cdma/ originating link is for cdma /
http://www.scribd.com/doc/41616367/CDMA-at-Commands
this site will list most known listed providers and or specific AT commands
including ZTE Corporation’s ME3000 Module/MG3006、MG3030、MG3036、MG3082、MG3088
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
Sierra Wireless AT commands
http://www.sierrawireless.com/resour...rence-v2.4.pdf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
ZTE AT commands clicking on the link to will automatically download the file
ZTE AT Commands GSM/GPRS Module AT Command Mannual
Bookmarks