NM: Please add support for Novatel Merlin U630 UMTS PCMCIA modem

Bug #248630 reported by Jonathan Riddell
20
This bug affects 1 person
Affects Status Importance Assigned to Milestone
network-manager (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Binary package hint: network-manager

Network Manager 0.7 doesn't see my UMTS PCMCIA vodafone 3G card.

Hal info

udi = '/org/freedesktop/Hal/devices/pcmcia__1__1_0_serial_platform_1'
  info.capabilities = {'serial'} (string list)
  info.category = 'serial' (string)
  info.parent = '/org/freedesktop/Hal/devices/pcmcia__1__1_0' (string)
  info.product = 'Merlin UMTS Modem' (string)
  info.subsystem = 'tty' (string)
  info.udi = '/org/freedesktop/Hal/devices/pcmcia__1__1_0_serial_platform_1' (string)
  linux.device_file = '/dev/ttyS1' (string)
  linux.hotplug_type = 2 (0x2) (int)
  linux.subsystem = 'tty' (string)
  linux.sysfs_path = '/sys/class/tty/ttyS1' (string)
  serial.device = '/dev/ttyS1' (string)
  serial.originating_device = '/org/freedesktop/Hal/devices/pcmcia__1__1_0' (string)
  serial.port = 1 (0x1) (int)
  serial.type = 'platform' (string)

Revision history for this message
Jonathan Riddell (jr) wrote :

More HAL entries

udi = '/org/freedesktop/Hal/devices/pcmcia__1__1'
  info.linux.driver = 'serial_cs' (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_1180_476' (string)
  info.product = 'Merlin UMTS Modem' (string)
  info.subsystem = 'pcmcia' (string)
  info.udi = '/org/freedesktop/Hal/devices/pcmcia__1__1' (string)
  info.vendor = 'Novatel Wireless' (string)
  linux.hotplug_type = 2 (0x2) (int)
  linux.subsystem = 'pcmcia' (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1e.0/0000:15:00.0/0.0' (string)
  pcmcia.card_id = 630 (0x276) (int)
  pcmcia.func_id = 2 (0x2) (int)
  pcmcia.manf_id = 164 (0xa4) (int)
  pcmcia.prod_id1 = 'Novatel Wireless' (string)
  pcmcia.prod_id2 = 'Merlin UMTS Modem' (string)
  pcmcia.prod_id3 = 'U630' (string)
  pcmcia.product = 'Novatel Wireless' (string)
  pcmcia.socket_number = 0 (0x0) (int)
  pcmcia.vendor = 'Novatel Wireless' (string)

udi = '/org/freedesktop/Hal/devices/pcmcia__1__1_serial_platform_0'
  info.capabilities = {'serial'} (string list)
  info.category = 'serial' (string)
  info.parent = '/org/freedesktop/Hal/devices/pcmcia__1__1' (string)
  info.product = 'Merlin UMTS Modem' (string)
  info.subsystem = 'tty' (string)
  info.udi = '/org/freedesktop/Hal/devices/pcmcia__1__1_serial_platform_0' (string)
  linux.device_file = '/dev/ttyS0' (string)
  linux.hotplug_type = 2 (0x2) (int)
  linux.subsystem = 'tty' (string)
  linux.sysfs_path = '/sys/class/tty/ttyS0' (string)
  serial.device = '/dev/ttyS0' (string)
  serial.originating_device = '/org/freedesktop/Hal/devices/pcmcia__1__1' (string)
  serial.port = 0 (0x0) (int)
  serial.type = 'platform' (string)

Revision history for this message
Jonathan Riddell (jr) wrote :

One more

udi = '/org/freedesktop/Hal/devices/pcmcia__1__1_0'
  info.linux.driver = 'serial_cs' (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_1180_476' (string)
  info.product = 'Merlin UMTS Modem' (string)
  info.subsystem = 'pcmcia' (string)
  info.udi = '/org/freedesktop/Hal/devices/pcmcia__1__1_0' (string)
  info.vendor = 'Novatel Wireless' (string)
  linux.hotplug_type = 2 (0x2) (int)
  linux.subsystem = 'pcmcia' (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1e.0/0000:15:00.0/0.1' (string)
  pcmcia.card_id = 630 (0x276) (int)
  pcmcia.func_id = 2 (0x2) (int)
  pcmcia.manf_id = 164 (0xa4) (int)
  pcmcia.prod_id1 = 'Novatel Wireless' (string)
  pcmcia.prod_id2 = 'Merlin UMTS Modem' (string)
  pcmcia.prod_id3 = 'U630' (string)
  pcmcia.product = 'Novatel Wireless' (string)
  pcmcia.socket_number = 0 (0x0) (int)
  pcmcia.vendor = 'Novatel Wireless' (string)

Revision history for this message
João Neves (jneves) wrote :

Attached file in /usr/share/hal/fdi/information/10freedesktop/ allows Merlin U630 to be detected by NM. I'm pretty sure that's not the correct dir, but it works.

Issues:
* NM detects 2 ports.
* You need to disable all types of compression. At least in my machine this seems to be failing from NM.
* I haven't been able to connect through NM yet.

Revision history for this message
csantiago (santiago-carlos) wrote :

Try the installer in attachment. This modem works great with my provider (PT Kanguru).

I think you only have to change the APN from 'myconnection' to 'internet.vodafone.pt'
(i.e. change AT+CGDCONT=1,"IP","myconnection" to AT+CGDCONT=1,"IP","internet.vodafone.pt" on the chatscript)

Revision history for this message
João Neves (jneves) wrote :

csantiago,

Wrong bug. This bug is about support inside NM 0.7, not in Ubuntu in general.

Thanks anyway,
João Miguel Neves

Revision history for this message
csantiago (santiago-carlos) wrote :

You right, this bug is about NetworkManager and the modem is not picked by it. However I thought it could be useful to some people to explain how one can put this modem into work. Even to the developers who will correct the NetworkManager bug.

Moreover, I take this opportunity to say that I cannot access my university VPN when connection with this modem, either with NetworkManager or any other way.

I think it may be a PPP conflict (both Kanguru and VPN use it), because I have no problem in connecting to the VPN when using a wired network.

Revision history for this message
csantiago (santiago-carlos) wrote :

Novatel Merlin UMTS U630 (PCMCIA) is not working with NM 0.7.
Fortunately, it works using a command line configuration.

I am using Ubuntu 8.04 with Network Manager upgraded to version 0.7.

1) Provider info:
Name: Kanguru
Country: PT (Portugal)
Operator: P OPTIMUS
APN: myconnection
DNS: 62.169.67.172, 62.169.67.171
user: anything
password: anything

1.2) Same provider but with fixed location contract
Name: Kanguru (fixo)
Country: PT (Portugal)
Operator: P OPTIMUS
APN: kangurufixo
DNS: 62.169.67.172, 62.169.67.171
user: anything
password: anything

2) Novatel Merlin U630 (PCMCIA)
vendor=0x00a4
product=0x0276

2.1) setserial command
/bin/setserial /dev/ttyS0 baud_base 460800 spd_warp low_latency
This command is required in order to work at full bandwidth.

2.2) chatscript (/etc/chatscripts/novatel_U630)
ABORT BUSY
ABORT VOICE
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "NO DIAL TONE"
"" ATZ
OK 'ATE1'
OK 'AT$NWRAT=0,2'
OK 'AT+COPS=0,0,"P OPTIMUS",2'
OK 'AT+CGDCONT=1,"IP","myconnection","0.0.0.0",0,0'
OK 'AT+CGEQREQ=1,4,0,0,,,2,1500,"0E0","0E0",3,,0'
OK 'AT+CGEQMIN=1,4,0,0,0,0,2,1500,"0E0","0E0",3,0,0'
OK 'ATDT*99***1#'
CONNECT ""

2.3) PPPD Config (/etc/ppp/peers/kanguru_ttyS0)
connect "/usr/sbin/chat -v -f /etc/chatscripts/novatel_U630"
/dev/ttyS0
460800
noipdefault
usepeerdns
defaultroute
persist
noauth

Revision history for this message
csantiago (santiago-carlos) wrote :
Revision history for this message
João Neves (jneves) wrote :

OK, modem is detected with the file above. NM fails to initialize it. NM sends AT+COPS=1,2,"%s" and Merlin U630 replies with "+CME ERROR: PLMN not allowed". NM then aborts.

Revision history for this message
João Neves (jneves) wrote :

It works. I changed the line above and added a few nm_debug() calls to know what's going on. This was the final result:

Sep 18 09:56:11 home NetworkManager: <info> Activation (ttyS1) Stage 1 of 5 (Device Prepare) complete.
Sep 18 09:56:11 home NetworkManager: <debug> [1221728171.639507] modem_wait_for_reply(): sending to device: AT E0
Sep 18 09:56:11 home NetworkManager: <debug> [1221728171.643485] modem_wait_for_reply(): sending to device: AT+CPIN?
Sep 18 09:56:11 home NetworkManager: <debug> [1221728171.647612] modem_wait_for_reply(): sending to device: AT+COPS=0,0,"P OPTIMUS"
Sep 18 09:56:11 home NetworkManager: <debug> [1221728171.667688] modem_wait_for_reply(): sending to device: AT+CGDCONT=1, "IP", "myconnection"
Sep 18 09:56:11 home NetworkManager: <debug> command: ATD*99***1#
Sep 18 09:56:11 home NetworkManager: <debug> [1221728171.779754] modem_wait_for_reply(): sending to device: ATD*99***1#
Sep 18 09:56:11 home NetworkManager: <info> Connected, Woo!

Now I only need to (re)learn about +COPS to remember what the first 2 values mean to provide a patch.

Revision history for this message
João Neves (jneves) wrote :

OK, feature needed for NM.

Seems like Merlin U630 does not accept manual network selection (at least that's my conclusion trying to set it up manually in minicom - and yes, I checked the strings matched the ones in AT+COPS=?).

Default situation should be NM sending AT+COPS=0 (automated GSM operator selection). If the user wants to select the network, then AT+COPS=1,0,"%s" should be used, as it's more likely that the user will insert the long string (in my case "P OPTIMUS") than the numerical value (in my case "26803").

AT command set reference for this: http://gatling.ikk.sztaki.hu/~kissg/gsm/at+c.html

Should I try to hack up a patch later?

Revision history for this message
João Neves (jneves) wrote :

Attached correction for bug preventing Merlin U630 when you had a network defined.

Notes on configuration (specific to this modem):
* All PPP options MUST be disabled.
* AT+COPS? output for this modem doesn't show the correct network string (only needed for devs and people checking syslog).
* NM detects 2 serial ports and shows this modem twice on the list. Only one of the serial ports work. Which one works is found out by trial and error (in my computer it shows ttyS3 first on boot, and ttyS1 first if I insert the card later - only ttyS1 workd). So if one fails, try the other.

Notes on configuration (generic for NM):
* Number is *99 (NM generates the rest for the ATD*99***1# command).
* The safe way is to leave the network field empty (generating an automatic registration).

Warning related to this modem:
* You are connecting to the modem using PPP. The modem connection to the network is done independently. This means that sometimes you'll find yourself connected to the modem before it registered on the network. The result: DNS configuration is wrong and you aren't able to acess almost anything on the Internet. If your modem is blinking with a green or blue light, just disconnect and connect again. If it fails try again.

Changed in network-manager:
status: New → Confirmed
Revision history for this message
Anonio Fiol (antonio-fiol-es) wrote :

Trying with the same card, NM version 0.7~~svn20081018t105859-0ubuntu1.

Using modified version of fdi, as I saw that the device that works is always the "first" one (ttyS0, serial.port==0).

Enabled NM_SERIAL_DEBUG, and this is what I get:

Dec 15 12:12:46 fiol-laptop NetworkManager: <info> Activation (ttyS0) starting connection 'Movistar'
Dec 15 12:12:46 fiol-laptop NetworkManager: <info> (ttyS0): device state change: 3 -> 4
Dec 15 12:12:46 fiol-laptop NetworkManager: <info> Activation (ttyS0) Stage 1 of 5 (Device Prepare) scheduled...
Dec 15 12:12:46 fiol-laptop NetworkManager: <info> Activation (ttyS0) Stage 1 of 5 (Device Prepare) started...
Dec 15 12:12:46 fiol-laptop NetworkManager: <debug> [1229339566.192868] nm_serial_device_open(): (ttyS0) opening device...
Dec 15 12:12:46 fiol-laptop NetworkManager: <info> Activation (ttyS0) Stage 1 of 5 (Device Prepare) complete.
Dec 15 12:12:46 fiol-laptop NetworkManager: <debug> [1229339566.298240] nm_serial_debug(): Sending: 'ATZ E0 V1 X4 &C1 +FCLASS=0 '
Dec 15 12:12:46 fiol-laptop NetworkManager: <debug> [1229339566.328303] nm_serial_debug(): Got: 'ATZ E0 V1 X4 &C1 +FCLASS='
Dec 15 12:12:46 fiol-laptop NetworkManager: <debug> [1229339566.330317] nm_serial_debug(): Got: 'ATZ E0 V1 X4 &C1 +FCLASS=0 ERROR '
Dec 15 12:12:46 fiol-laptop NetworkManager: <WARN> init_done(): Modem initialization failed

Trying with wvdial, I have seen that this device returns an error to most anything (including ATZ) if the PIN has not been entered yet.

So this wvdial sequence works...
Init1 = AT
Init2 = AT+CPIN=0000 <--- Obviously with the right PIN
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

But this one does not:
Init1 = ATZ <<<---- Only change is the Z
Init2 = AT+CPIN=0000
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

How can I trick NM to enter the PIN first? Maybe some HAL-set property? I am pretty new to this stuff (not to GSM commands, but to NM and HAL)

Revision history for this message
Anonio Fiol (antonio-fiol-es) wrote :

I modified the source code of NM (in a very kludgy way) so that it ignores the error of the ATZ E0 V1 X4 &C1 +FCLASS=0 line, and goes on to AT+CPIN? regardless of the outcome of the previous line.
Then I got bug#306049, same symptom but with different hardware.
Retried the connection and it simply worked. Maybe rising the timeout for PPP a little bit, or somehow delaying its start time could make it work at the first attempt.
Will test more and report results.

Revision history for this message
Anonio Fiol (antonio-fiol-es) wrote :
Download full text (11.9 KiB)

Confirmed. It only works the second time, and only if NM ignores the error on ATZ...

Here are the logs.

First time:

Dec 16 21:25:45 fiol-laptop NetworkManager: <info> Activation (ttyS0) starting connection 'Movistar'
Dec 16 21:25:45 fiol-laptop NetworkManager: <info> (ttyS0): device state change: 3 -> 4
Dec 16 21:25:45 fiol-laptop NetworkManager: <info> Activation (ttyS0) Stage 1 of 5 (Device Prepare) scheduled...
Dec 16 21:25:45 fiol-laptop NetworkManager: <info> Activation (ttyS0) Stage 1 of 5 (Device Prepare) started...
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.360066] nm_serial_device_open(): (ttyS0) opening device...
Dec 16 21:25:45 fiol-laptop NetworkManager: <info> Activation (ttyS0) Stage 1 of 5 (Device Prepare) complete.
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.460799] nm_serial_debug(): Sending: 'ATZ E0 V1 X4 &C1 +FCLASS=0 '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.493567] nm_serial_debug(): Got: 'ATZ E0 V1 X4 &C1 +FCLASS=0 '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.497491] nm_serial_debug(): Got: 'ATZ E0 V1 X4 &C1 +FCLASS=0 ERROR '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.497592] nm_serial_debug(): Sending: 'AT+CPIN? '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.508652] nm_serial_debug(): Got: 'AT+CPI'
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.509334] nm_serial_debug(): Got: 'AT+CPIN? +CPIN: SIM PIN OK '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.509453] nm_serial_debug(): Sending: 'AT+CPIN="4553" '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.528491] nm_serial_debug(): Got: 'AT+CPIN="455'
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.528926] nm_serial_debug(): Got: 'AT+CPIN="4553" '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.628577] nm_serial_debug(): Got: 'AT+CPIN="4553" OK '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.628821] nm_serial_debug(): Sending: 'ATZ E0 V1 X4 &C1 +FCLASS=0 '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.662414] nm_serial_debug(): Got: 'ATZ E0 V1 X4 &C1 +FCLASS=0'
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.664543] nm_serial_debug(): Got: 'ATZ E0 V1 X4 &C1 +FCLASS=0 '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.672619] nm_serial_debug(): Got: 'ATZ E0 V1 X4 &C1 +FCLASS=0 OK '
Dec 16 21:25:45 fiol-laptop NetworkManager: <info> (ttyS0): powering up...
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.672925] nm_serial_debug(): Sending: 'AT+CFUN=1 '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.688693] nm_serial_debug(): Got: ' OK '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.688980] nm_serial_debug(): Sending: 'AT+CREG? '
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.704622] nm_serial_debug(): Got: ' +CREG: 0,2 OK '
Dec 16 21:25:45 fiol-laptop NetworkManager: <info> Searching for a network...
Dec 16 21:25:45 fiol-laptop NetworkManager: <debug> [1229459145.705202] nm_serial_de...

Thomas Hood (jdthood)
summary: - UMTS PCMCIA modem not picked up
+ NM doesn't see Merlin UMTS PCMCIA modem
Revision history for this message
Thomas Hood (jdthood) wrote : Re: NM doesn't see Merlin UMTS PCMCIA modem

HI guys. Please file a request upstream

    https://bugzilla.gnome.org/browse.cgi?product=NetworkManager

and include in it the useful information that has been submitted to this (bug #248630) report.

summary: - NM doesn't see Merlin UMTS PCMCIA modem
+ NM: Please add support for Novatel Merlin U630 UMTS PCMCIA modem
Revision history for this message
Thomas Hood (jdthood) wrote :

Closing since there is no need to track this request in two places.

Changed in network-manager (Ubuntu):
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.