ZTE MF 192 fails to connect under gnome network manager openSUSE 12.1

Hi,

I am using a ZTE MF 192 HSPA+ USB modem supplied by Orange Uganda. It works on windows but not on openSUSE.

On plugging in, it is detected as a removable disk. On ejecting the disk, the modem component is detected. This appears in /dev as ttyACM0, ttyACM1 and ttyACM2. It is listed on the gnome networkmanager. I have configured the APN as per the settings suggested by the applet which are correct. The signal strength is shown, but when I click to connect it fails almost immediately.

Here is the log:

I don’t really understand this. How can I get the modem working?

Thanks,
James

On plugging in, it is detected as a removable disk. On ejecting the disk, the modem component is detected. This appears in /dev as ttyACM0, ttyACM1 and ttyACM2. It is listed on the gnome networkmanager.

That’s a good sign. BTW, you’d probably find that ‘usb-modeswitch’ would take care of the modem interface activation for you automatically.

I don’t really understand this. How can I get the modem working?

I’m not sure why it is failing to connect, but it may be worth trying to connect using ‘wvdial’ utility instead. (I’ve read of others successfully connecting this way even when NM cannot.) Assuming you have wired internet connectivity, you can install it with

zypper in wvdial

Make sure your user is a member of the ‘dialout’ group. Then proceed to detect with

sudo wvdialconf

This should detect the device, and create a basic /etc/wvdial.conf file. This configuration file can be edited (as root) to suit the connection requirements.

For example, the following may be sufficient to establish connectivity

Dialer Defaults]
Modem = /dev/ttyACM0
Modem Type = Analog Modem
ISDN = 0
Baud = 460800
Dial Attempts = 1
Username = orange
Password = orange
Init1 = ATZ
Init2 = AT&F &D2 &C1
Init3 = ATS7=60 S30=0 S0=0
Init4 = AT+CGDCONT=1,"IP","orange.ug"
Phone = *99#
Stupid Mode = 1

Type ‘wvdial’ to start the connection process.

You can find out more about wvdial via

man wvdialconf
man wvdial

Some other useful references
Configure a GPRS dialer in Linux using wvdial / gnome-ppp
https://wiki.archlinux.org/index.php/Wvdial

This probably won’t help you, but it does suggest that NM should be able to connect (but maybe not with that particular device).

Orange mobile

Thanks for your help!

wvdial gives

→ WvDial: Internet dialer version 1.60
→ Cannot set information for serial port.
→ Initializing modem.
→ Sending: ATZ
OK
→ Sending: AT&F &D2 &C1
AT&F &D2 &C1
OK
→ Sending: ATS7=60 S30=0 S0=0
ATS7=60 S30=0 S0=0
ERROR
→ Bad init string.
→ Cannot set information for serial port.
→ Initializing modem.
→ Sending: ATZ
ATZ
OK
→ Sending: AT&F &D2 &C1
AT&F &D2 &C1
OK
→ Sending: ATS7=60 S30=0 S0=0
ATS7=60 S30=0 S0=0
ERROR
→ Bad init string.
→ Cannot set information for serial port.
→ Initializing modem.
→ Sending: ATZ
ATZ
OK
→ Sending: AT&F &D2 &C1
AT&F &D2 &C1
OK
→ Sending: ATS7=60 S30=0 S0=0
ATS7=60 S30=0 S0=0
ERROR
→ Bad init string.

I also tried with ACM1 and ACM2.

Gnome-ppp installed from the OBS claims that “No modem was found on your system”.

The orange.ug instructions are lovely in that they include linux, but sadly no help here. Presumably this is either a problem specific to openSUSE or the instructions are for the old 2G Orange modem.

Not sure what to do with this as my google skills have failed me once more. Any suggestions?

Lets start with

sudo wvdialconf

We need confirmation that modem is found first. The utility can generate a basic /etc/wvdial.conf that can then be edited with

sudo wvdialconf /etc/wvdial.conf

Report back with the output and your edited /etc/wvdial.conf file.

Also, try connecting as root if you haven’t already)

sudo wvdial

In order to be able to run as a regular user, you need to first do (as root)

chmod u+s /usr/bin/wvdial

/etc/wvdial.conf


[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = ATS7=60 S30=0 S0=0
Init4 = AT+CGDCONT=1,"IP","orange.ug"
Password = orange
Phone = *99#
Modem Type = USB Modem
Stupid Mode = 1
Baud = 460800
Dial Attempts = 1
Modem = /dev/ttyACM0
ISDN = 0
Username = orange

The wvdialconf output looks good and confirms a modem device found at /dev/ttyACM0 (and /dev/ttyACM1, /dev/ttyACM2 as well).

Did you do (as root)

chmod u+s /usr/bin/wvdial

If so, you should try connecting again with ‘wvdial’ (as user), otherwise you’ll need to execute ‘sudo wvdial’

Yeah I have done that. Still gives ERROR Bad init string when sending ATS7=60 S30=0 S0=0.

How can I alter that string to make it work?

Thanks,
James

Yeah I have done that. Still gives ERROR Bad init string when sending ATS7=60 S30=0 S0=0.

You may want to try adjusting or removing some or all of it. Some of the commands are probably not applicable to your device anyway.

ATS7 sets the maximum time allowed between completion of dialling and the connection being established.
S30 used to set the modem’s inactivity timer
S0 is used to control auto-answer (0=off, any other number defines 'on which ring the modem will answer the call).

Hi Joban,
I am using the ZTE MF192 modem under debian in Uganda, with Orange as the operator. Using the last version of usb-modeswitch (installed via backports for debian squeeze), I don’t have to eject the device at startup. I am using the /etc/wvdial.conf file as suggested on this site:
https://mail.gnome.org/archives/networkmanager-list/2012-July/msg00074.html
and it works like a charm!

Copy the code into /etc/wvdial.conf , as root. You can do so by using the following command in a console:

sudo nano /etc/wvdial.conf

and the copy the following text into the file:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyACM0
ISDN = 0
Phone = *99#
Password = foo
Username = bar
Stupid Mode = 1

Hope it works for you!

Amooti

Hi Joban,
I am using the ZTE MF192 modem under debian in Uganda, with Orange as the operator. Using the last version of usb-modeswitch (installed via backports for debian squeeze), I don’t have to eject the device at startup. I am using the /etc/wvdial.conf file as suggested on this site:
https://mail.gnome.org/archives/networkmanager-list/2012-July/msg00074.html
and it works like a charm!

Copy the code into /etc/wvdial.conf , as root. You can do so by using the following command in a console:

sudo nano /etc/wvdial.conf

and the copy the following text into the file:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyACM0
ISDN = 0
Phone = *99#
Password = foo
Username = bar
Stupid Mode = 1

Hope this works under opensuse too!

Amooti

Thanks for posting your working wvdial.conf amooti! It is virtually the same as the one Joban tried, but with the problematic init string ‘Init3 = ATS7=60 S30=0 S0=0’ removed, and I note that no APN was supplied either. Anyway, I hope it works for you too Joban!

OK getting there…

This is now the output:


--> WvDial: Internet dialer version 1.60
--> Cannot set information for serial port.
--> Initializing modem.
--> Sending: ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1
AT+CGDCONT=1
OK
--> Modem initialized.
wvdial: utils/wvtask.cc:401: static void WvTaskMan::_stackmaster(): Assertion `magic_number == -0x123678' failed.
Aborted

Hmmm…for the moment I can only direct you to this bug report

https://bugzilla.novell.com/show_bug.cgi?id=779386

Awesome it works now. Probably should have mentioned that I had upgraded to 12.2… sorry.

OK in summary:

  • Added my user to the dialout group
  • Created a file /etc/wvdial.conf containing

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyACM0
ISDN = 0
Phone = *99#
Password = foo
Username = bar
Stupid Mode = 1

  • uninstalled wvstreams, ignoring dependancies
  • installed wvstreams from the openSUSE 12.1 repo
  • added two nameservers using the YaST network module

Thank you so much for all your help!
Also, any ideas why this isn’t working on network manager? I have no idea how it works…

Thank you so much for all your help!

My pleasure :slight_smile: Often it’s just about pointing people in the right direction.

Also, any ideas why this isn’t working on network manager? I have no idea how it works…

An educated guess is that it is trying to pass the wrong initialization strings (much like default wvdial was). This will be down to ModemManager, rather than NetworkManager I’m assuming. You might need to submit a bug report for that. The fact that the device is connecting successfully with wvdial will be of help to them.

I’m not sure about gnome but in KDE there are some advanced options to specify some connections strings (at least they were there in 11.4). Do you see anything like that in the gnome NetworkManager applet ?

glistwan: No advanced settings in nm-applet. Not gnome 3’s style.

deano_ferrari: I have submitted a bug report here: https://bugzilla.novell.com/show_bug.cgi?id=786107. Would you mind checking I have done it correctly? I think this is the first I have filed for openSUSE.

I have tried to follow the debugging advice here https://live.gnome.org/NetworkManager/Debugging#Debugging_NetworkManager_0.8_and_0.9_3G_connections but I did not understand the output.

Thanks all!
James

Hi Joban. It’s great that you found time to submit a bug report. You will probably get asked some questions in time. I think it would be a good idea to submit the working wvdial.conf, and maybe the /var/log/NetworkManager output relating to the failed connection. (Just cut and paste from your first post.) Good work. :slight_smile: