How to configure USB modem in opensuse 11.1

I have bought a new USB modem from my service provider. The model they provided is “Huawei EC1260” Huawei Terminal. As usual the official support is for windows and mac.

I tried to install this device using two methods…

  1. Set knetworkmanager settings to “traditional with ifup”. Then in wireless setup there is a choice of having “usb” (A tick box). I selected that, and setup completed successfully but the knetworkmanager was not up(I did ifdown wlan0 (wlan0 was the wireless config name), ifup wlan0 and the rcnetwork restart.)

  2. Again knetworkmanager was set to "traditional method with ifup. This times while adding the connection I specifically selected the type “USB”, then clicked to finish the configuration. The configuration finished without any errors but when I checked the Network Configuration screen no USB device was added there.

Are there any specific steps to configure a USB modem, Please let me know any directions, steps, etc that can help me configure this device…

Please let me know if any clarification or information is needed.

Oh… forgot to mention I am using KDE 4.1, planning to upgrade to KDE 4.3 once my device starts working…

Try two more approaches:

As swerdna mentioned, you can see if your device is supported by NetworkManager. It will need to be enabled in YaST > Network Devices > Network Settings. With knetworkmanager running, it should appear in the list of available connections. This very much depends on the chipset used in your device.

If not supported yet by NM, (as with my Sierra Compass 597 device), you will need to configure as a modem (via YaST). Then connect using KInternet.

Now, many broadband wireless modem devices also behave like cdrom devices as well when initially plugged in, so you may also need some help with creating a udev rule to deal with this, so that only the modem device is active. There are numerous HOWTOs concerning this if you search. Post again if you have problems.

check posts by me techwiz03 re the mc950d USB wireless as I think this uses the same chipset. The system In my case decided the device was /dev/sr0 but not mounted. If this is your case too, you may need to issue eject /dev/sr0 or whatever it decided was the filesystem portion of the device and then it will be seen as a modem and work. I and others posted ways to test but struggling to remember the commands. Think one was lsUSB.

Thanks all for your pointers. I will just try them out and let you know of the outcome…

I am not still able to use my USB device as a modem. Here are the steps I took.

First I created a rule as per deano_ferrari beacuse I felt that my USB was not getting detected as modem.
Then I have given the output of “dmesg” after I plugged in the USB device. (Please let me know if anything is wrong with it).

The rule is working as /dev/modem is linked to “REL_MODEM” which I have named the device in the rule.
But I am not sure if it is forcing the device to work as modem…


 **linux-5brr:/etc/udev/rules.d # cat 10-my-rules.rules**
 **KERNEL=="sr1", SUBSYSTEM=="block", ATTR{size}=="67584", SUBSYSTEMS=="usb", ATTRS{product}=="HUAWEI Mobile", NAME+="REL MODEM", SYMLINK+="modem"**
 

 **linux-5brr:/etc/udev/rules.d #**
 **linux-5brr:/etc/udev/rules.d # dmesg**
 **usb 1-1: USB disconnect, address 8**
 **usb 1-1: new full speed USB device using ohci_hcd and address 9**
 **usb 1-1: configuration #1 chosen from 1 choice**
 **scsi11 : SCSI emulation for USB Mass Storage devices**
 **usb 1-1: New USB device found, idVendor=12d1, idProduct=140b**
 **usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=4**
 **usb 1-1: Product: HUAWEI Mobile**
 **usb 1-1: Manufacturer: HUA�WEI TECHNOLOGIES**
 **usb 1-1: SerialNumber: �������������������**
 **usb-storage: device found at 9**
 **usb-storage: waiting for device to settle before scanning**
 **scsi 11:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 0**
 **sr1: scsi-1 drive**
 **sr 11:0:0:0: Attached scsi CD-ROM sr1**
 **sr 11:0:0:0: Attached scsi generic sg2 type 5**
 **usb-storage: device scan complete**
 **linux-5brr:/etc/udev/rules.d #**
 **linux-5brr:/etc/udev/rules.d # ls -l /dev/modem**
 **lrwxrwxrwx 1 root root 9 2009-09-20 17:09 /dev/modem -> REL_MODEM**
 **linux-5brr:/etc/udev/rules.d #**
 

After that I configured the modem using Yast (Referring swerdna’s site) which I opened as kinternet → seetings → configure with yast.
No device was listed there. So I clicked Add button. Here are the snapshots for the modem I configured. I took these snapshots after I first configured the modem so the modem is already on the screen.

Picasa Web Albums - Vivek - Suse Modem Setup
Picasa Web Albums - Vivek - Suse Modem Setup
Picasa Web Albums - Vivek - Suse Modem Setup
Picasa Web Albums - Vivek - Suse Modem Setup
Picasa Web Albums - Vivek - Suse Modem Setup
Picasa Web Albums - Vivek - Suse Modem Setup

Please let me know where I have gone wrong, your pointers as always are always highly appreciated…](http://picasaweb.google.com/vivekbhat9/SuseModemSetup#5383519586047928338)

I get lost at the udev rule stage. Need deano_ferrari to comment on the udev rule treatment.

I am not sure how this is related to my probelem, but whenever I plug in my USB device this line keeps adding to my /var/log/messages


Sep 20 21:54:10 linux-5brr kernel: ForceXPAon: 0

As soon as unplug the device this message stops coming in the /var/log/messages…

I found this article which may help me Using Reliance NetConnect with OpenSUSE 11.1 » Dreaming of an Ideal World!!!.

I am also having the same provider but the device is different.
But the author while giving out some commands uses values like



modprobe -r usb-storage usbserial; modeprobe usbserial vendor=0x19d2 product=0xfff6 

Can anyone please tell me how can I get this values assigned to vendor and product…

Tried above method but the script gets hung at


Looking for target devices ...
 Found devices in target mode or class (1)
Looking for default devices ...
 Found default devices (1)
Accessing device 013 on bus 001 ...
Using endpoints 0x08 (out) and 0x87 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("usb-storage")
 OK, driver "usb-storage" detached

This line that you quoted tells the codes:

usb 1-1: New USB device found, idVendor=12d1, idProduct=140b

Check that the usbserial driver exists with this command (run su to become root first):

modprobe -l usbserial

It should return someting like this:

/lib/modules/2.6.27.29-0.1-default/kernel/drivers/usb/serial/usbserial.ko

Then run this command (still as su root):

modprobe -v usbserial vendor=0x12d1 product=0x140b

See this tutorial for an example: Wireless broadband in Suse/openSUSE for Bigpond Next G Network (HSDPA-enabled bp3-usb)
Except that example didn’t have the complication of the pseudo CD device.

Might be worth a try.

Hi vendetta18. I see you are still trying to get your device to be seen as a modem. The udev rule you created will not work, since it is trying to assign the block device as a modem. The way forward is to expose the modem device, which can only be done after disabling the storage device.

Your dmesg results show

scsi 11:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 0
sr1: scsi-1 drive
sr 11:0:0:0: Attached scsi CD-ROM sr1
sr 11:0:0:0: Attached scsi generic sg2 type 5

From a terminal (as root) try

eject /dev/sr1
modprobe -r usb_storage

A commmon manual approach was then to reload the usbserial module with something like

modeprobe usbserial vendor=<0xvendorid> product=<0xproductid>

but you need the actual modem device ID first. I can’t remember, but this may be shown with ‘lshal -m’ running in another terminal while issuing the first commands I mentioned.

Anyway, see if you have any usb serial ports available with

ls -l /dev/ttyU*

Does anything get reported?

I note the usb_modeswitch link given from your guide link has this in the Troubleshooting section.

In newer kernels, some device families (Huawei, ZTE since 2.6.26) get a special treatment in the usb-storage code to enable switching right away. You don’t even need USB_ModeSwitch anymore; on the other hand you have no choice of accessing the “CD-ROM” part of your device. Plus, there were cases when the special treatment obviously brought no results and even prevented USB_ModeSwitch to work properly afterwards (happened with ZTE devices, error “-2”).

So it appears this utility is not needed for Huawei devices at least.

A blog I found that may help you get your Huawei EC 1260 (aka Reliance NetConnect Broadband) to work:

tata-indicom-photon-and-reliance-netconnect-broadband-on-ubuntu

Note: There should be no need to issue the mknod commands. The kernel should take care of the /dev/tty/USB0 device creation for you.

Once you have /dev/ttyUSB0 (or similar), it should be possible to dial out via wvdial or KInternet (configured via YaST).

Finally its done :slight_smile: Thanks a lot deano_ferrari and swerdna for sticking out on this for me, a lot of thanks again :slight_smile:

Here is the solution:
The device was actually acting like a storage device. Here are the steps I undertook to make system recogonise it as a modem instead of a storage device:

Get the device id by using dmesg or devadm.


$ lsusb
Bus 003 Device 003: ID **12d1:140b** Huawei Technologies Co., Ltd.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 138a:0001
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 093a:2510 Pixart Imaging, Inc.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 064e:a127 Suyin Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The bold part will be my vendor id and product id. So my product id was “0x140b” and vendor id is “0x12d1”.
Now with this information I took further steps:


$ modprobe -r usb-storage usbserial
$ modeprobe usbserial vendor=0x12d1 product=0x140b

After that execute usb-modeswitch

Now check /etc/usb_modeswitch.confto check if it contains your device definitions. Mine was not there, so I added:


DefaultVendor=  0x12d1
DefaultProduct= 0x140b

TargetVendor=   0x12d1
TargetProduct=  0x140b

# only for reference
# MessageEndpoint=0x07

MessageContent="555342431234567824000000800008FF05B112AEE102000000000000000000"

Now I executed “usb_modeswitch -W”. The output is like



 * usb_modeswitch: tool for controlling "flip flop" mode USB devices
 * Version 1.0.2 (C) Josua Dietze 2009                              
 * Works with libusb 0.1.12 and probably other versions             

Reading config file: /etc/usb_modeswitch.conf
DefaultVendor=  0x12d1                       
DefaultProduct= 0x140b                       
TargetVendor=   0x12d1                       
TargetProduct=  0x140b                       
TargetClass=    not set                      

DetachStorageOnly=0
HuaweiMode=0       
SierraMode=0       
SonyMode=0         
MessageEndpoint= not set
MessageContent="555342431234567824000000800008FF05B112AEE102000000000000000000"
NeedResponse=0                                                                 
ResponseEndpoint= not set                                                      
Interface=0x00                                                                 

InquireDevice enabled (default)
Success check disabled         

usb_set_debug: Setting debugging level to 15 (on)
usb_os_find_busses: Found 003                    
usb_os_find_busses: Found 006                    
usb_os_find_busses: Found 005                    
usb_os_find_busses: Found 004                    
usb_os_find_busses: Found 002                    
usb_os_find_busses: Found 001                    
usb_os_find_devices: Found 003 on 003            
usb_os_find_devices: Found 001 on 003            
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 001 on 006                            
usb_os_find_devices: Found 002 on 005                            
usb_os_find_devices: Found 001 on 005                            
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 002 on 004                            
skipped 1 class/vendor specific interface descriptors            
usb_os_find_devices: Found 001 on 004                            
error obtaining child information: Inappropriate ioctl for device
usb_os_find_devices: Found 001 on 002                            
usb_os_find_devices: Found 002 on 001                            
skipping descriptor 0xB                                          
skipped 1 class/vendor specific endpoint descriptors             
skipped 6 class/vendor specific interface descriptors            
skipping descriptor 0x25                                         
skipped 1 class/vendor specific endpoint descriptors             
skipped 9 class/vendor specific interface descriptors            
usb_os_find_devices: Found 001 on 001                            
error obtaining child information: Inappropriate ioctl for device

Looking for target devices ...
 Found devices in target mode or class (1)
Looking for default devices ...           
 Found default devices (1)                
Accessing device 003 on bus 003 ...       
Using endpoints 0x02 (out) and 0x82 (in)  
Not a storage device, skipping SCSI inquiry

Device description data (identification)
-------------------------               
Manufacturer: HUA�WEI TECHNOLOGIES      
     Product: HUAWEI Mobile             
  Serial No.: �������������������       
-------------------------               
Looking for active driver ...           
 OK, driver found ("usbserial_generic") 
 OK, driver "usbserial_generic" detached
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x02 ...
 OK, message successfully sent                 
-> Run lsusb to note any changes. Bye.   

Now here I got /dev/ttyUSB1 and /dev/ttyUSB1
Make changes in /etc/wvdial.conf. Here are my chanages:



[Dialer Defaults]
Modem = /dev/ttyUSB2
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Init3 =
Area Code =
Phone = #777
Username = myusername
Password = my_password
Ask Password = 0
Dial Command = ATDT
Stupid Mode = 1
Compuserve = 0
Force Address =
Idle Seconds = 300
DialMessage1 =
DialMessage2 =
ISDN = 0
Auto DNS = 1

I first tested with ttyUSB1, but it did not work so I selected ttyUSB2 then.
Ran wvdial from prompt and got connected :slight_smile:

Thanks again to everyone who helped me…
**[size=3]
[size=2]Can anyone help me in automating the above operations :)…[/size][/size]
**

Pretty much as I expected. Good work. Yes, its not hard to automate, however late for me. I’ll check on your status tomorrow.

Edit:I’m an addict!! I need sleep though…

Check this out:

http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=923&sid=fdcf0640876c87782333f4dadd9ce72a

Shows a udev rule that you can adapt.

Another:

http://tensixtyone.com/perma/howto-debian-lenny-huawei-e160g

I got a friend who got the same USB modem device from the same service provider. He uses fedora and told me that the device was working flawlessly on his HP Pavillion dv4. So I did a install of Fedora 11 on my system and the modem usb device did work exactly the way it should. It got detected itself and worked just as it should.

What is the reason that it is working fine on fedora and not on suse??? Is it the kernel?? Fedora 11 uses 2.6.29 while suse is at 2.6.27.

I am asking as I am not expert in these things, so just seeking an opinion. I did try out Fedora but I was lost :slight_smile: I seriously missed yast :).

suse 11.2 is scheduled to get released in November. And I am sure this problem will get solved in this release, I have faith in suse developers :)…

Now I need to get a workaround this problem. The solution I gave in last thread did work, but sometimes, not all the times :frowning:

I got a friend who got the same USB modem device from the same service provider. He uses fedora and told me that the device was working flawlessly on his HP Pavillion dv4. So I did a install of Fedora 11 on my system and the modem usb device did work exactly the way it should. It got detected itself and worked just as it should.

Is this via NetworkManager? For the device to be recognised by hal, it needs to be included in /usr/share/hal/fdi/information/10freedesktop/10-modem.fdi file. If you have a look through this, you will find a section for Huawei devices. Now, since you were able to dial out via wvdial, then there is a chance, you could simply add your product ID to the list, and it will then be recognised by NM. Others have tried adding devices this way and have been successful.

Now, I tried this for my Sierra (CDMA) device, and although it was recognised after editing 10-modem.fdi, it would not connect properly. (This was a NM specific issue, probably corrected in later version).

What is the reason that it is working fine on fedora and not on suse??? Is it the kernel?? Fedora 11 uses 2.6.29 while suse is at 2.6.27.

This is a typical situation. As new devices appear, developments are made, and new distro’s will support the new range of devices. AFAIK, openSUSE 11.1 has a kernel update available, but I think you’ll find it depends heavily on NM version.

Thats about all I can offer. Use the distro that works for you with your hardware. :slight_smile:

Yes it is!!

Thanks deano_ferrari for the information :slight_smile: I will surely check that.

Frankly speaking I do not want to try another distro just because SUSE failed to detect some of my hardware. I am not using Linux just for Desktop use, but I want to learn it… so if something is failing, it gives me chance to learn things :slight_smile:

I tried fedora, it worked but I missed SUSE sorely.

This is what I plan to do now, will install SUSE. After two months openSUSE 11.2 is releasing so that release should most probably solve my problem. In the mean time I will install two openSUSE setups in my laptop. One for my general day to day use and I will keep another for testing purposes where I will test my experiments … It is a wait for just two months and till then I think I can manage things … hope so…

Thanks again deano_ferrari for your valuable information, patience and time …

Umts - openSUSE <- try that