0.7 3G: Dell 5520 Mobile Broadband not detected

Bug #262498 reported by Craig Ringer
8
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Invalid
Medium
Unassigned
network-manager (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Binary package hint: network-manager

Dell 5520 Mobile Broadband card is not detected by NetworkManager 0.7 on Hardy.

By default the kernel doesn't load a driver for it. If I load the usbserial driver by creating an /etc/modprobe.d/3g file containing:

install 3g modprobe usbserial vendor=0x413c product=0x8138

then it'll load. It can then be used with a pretty ordinary chat script and pppd configuration, using the /dev/ttyUSB0 node.

NetworkManager still doesn't see it according to the gnome applet or nm-tool. See attached lshal, nm-tool output, lsusb, etc.

Revision history for this message
Craig Ringer (ringerc) wrote :
Revision history for this message
Craig Ringer (ringerc) wrote :
Revision history for this message
Craig Ringer (ringerc) wrote :
Revision history for this message
Craig Ringer (ringerc) wrote :
Revision history for this message
Craig Ringer (ringerc) wrote :
Revision history for this message
Craig Ringer (ringerc) wrote :

craig@ayaki:~/tmp$ uname -a
Linux ayaki 2.6.24-21-generic #1 SMP Mon Aug 25 17:32:09 UTC 2008 i686 GNU/Linux
craig@ayaki:~/tmp$ dpkg -l network-manager
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-f/Unpacked/Failed-cfg/Half-inst/t-aWait/T-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii network-manage 0.7~~svn200808 network management framework daemon

Revision history for this message
Craig Ringer (ringerc) wrote :

With the attached patch to option.c, it's no longer necessary to force loading of the usbserial driver with vendor and product ID parameters. I've re-tested dialing with pppd+chat and it works fine.

NM still does not see the device even though it's now using the `option' driver for GSM modems.

I'm attaching updated lshal output for the patched kernel. nm-tool output is unchanged, so I won't provide that.

lshal confirms that the option driver is being used for the built-in HSDPA modem, so I'm not too sure why NM doesn't recognise it. If it has to be told about each device individually then it's going to be a losing battle getting hardware support ; anything using the `option' driver should work, right?

Revision history for this message
Craig Ringer (ringerc) wrote :

A HAL change was required too, perhaps because the device doesn't use any standard USB interface subclass descriptors.

Note, however, that `lsusb' does recognise the device as a Novatel Wireless HSDPA modem.

I'm a bit worried about this, actually. Both my N95-3 and my built-in HSDPA devices I had required HAL changes to get them to work, and the built-in HSDPA needed a kernel change too. Both were already supported in every way except that they lacked product ID listings. I really hope there's a better way to recognise these devices than product ID listings.

Also, before the release of Intrepid, it strikes me as a good idea to borrow the code from the usbserial kernel module that lets it take a vendor and product ID as module arguments, and add that to option.c as well. That way Ubuntu users won't have to rebuild and repackage their kernel to get the option driver to recognise their GSM/UMTS/HSDPA modem. I may submit a hack-job patch for this myself, but holding your breath in wait could be unwise.

Some documentation on what to do to get your modem to work would also be wise. Even a quick tip like:

----
If your modem isn't detected by NetworkManager, you may be able to get it working by forcing the `option' driver to recognise your modem. Use `lsusb' to find out the vendor and product IDs for your modem, then run:

rmmod option
modprobe option vendor=0xdead product=0xbeef

(where 0xdead is your vendor ID, and 0xbeef is your product ID).

Check dmesg to see if the option driver recognised your device and created one or more USB tty devices (/dev/ttyS0 etc) for it.

Now you need to modify HAL's policy to get HAL to recognise the device as a GSM modem and tell NetworkManager about it. I'm not sure about the cleanest way to tell a user to do this safely by ading policy in /etc/hal/fdi .
----

Anyway... with the patch to hal's FDI information and the option.c change this device now works fine. It's just a pity it takes a kernel rebuild and digging around in the HAL config.

Revision history for this message
Alexander Sack (asac) wrote :

adding kernel source package as your modem is not even detected as a serial device by default.

Changed in linux:
importance: Undecided → Medium
Revision history for this message
Alexander Sack (asac) wrote :

network-manager will get a probe for gsm/cdma modem ... which is the route cause why modems that are properly setup with usbserial are not detected without fdi tweakage. adding each and every product id as a fdi entry doesnt make much sense.

Changed in network-manager:
status: New → Triaged
Revision history for this message
Craig Ringer (ringerc) wrote :

The modem doesn't advertise CDC ACM interface/subinterface descriptors in its USB interfaces, so it's not surprising that it's not detected automaticaly. See bInterfaceClass and bInterfaceSubclass of both USB interfaces in the attached lsusb -vvv output (above).

The only way to handle these devices will probably be to explicitly list them by USB vendor and product id in a suitable USB serial driver, like option.c .

I don't know whether the use of the option driver alone tells NM enough to treat the device as a GSM modem. If option can support CDMA devices too, then some sort of device probe or configuration hint might be needed.

This looks relevant:

http://www.nabble.com/-PATCH--hal-probe-modem-caps-ondemand-td17043581.html

Revision history for this message
Craig Ringer (ringerc) wrote :

AT+CGAP output from Dell 5520 (over usbserial, unpatched kernel):

+GCAP: +CGSM,+DS,+ES

Revision history for this message
Craig Ringer (ringerc) wrote :

A newer kernel (2.6.27-2-generic, latest from intrepid) now detects the device without any changes being required to option.c or any explicit forcing of module loading.

NetworkManager still doesn't see it without a HAL FDI change. I've attached a standalone snippet that can be dropped into /etc/hal/fdi/information/dell5520.fdi to get current NM (0.7~~svn20080818t061112+eni1-0ubuntu1~nm1) to detect it.

The kernel is still relevant though, as it's clear that these devices often get rebranded with new product and vendor IDs, so a method of forcing option.c to use unrecognised devices without a kernel rebuild will probably be required.

Revision history for this message
Alexander Sack (asac) wrote :

the network manager probe part is now tracked in bug 268095. i dont mark this as dupe to keep this un-duped for the kernel task.

Changed in network-manager:
status: Triaged → Invalid
Revision history for this message
Craig Ringer (ringerc) wrote :

This bug is NOT a dupe of bug 268095 . This device lacks CDC ACM descriptors, and there is no way to recognize it as a GSM modem without the option driver being explicitly told about it by USB vendor/device ID.

To ensure that NM can then identify it, all devices found to be using the `option', `airprime', etc drivers should really be given a modem.command_sets attribute including V.250 , so NM's future GSM/CDMA probing can identify them.

I've attached a new HAL fdi file that matches the option and airprime drivers (for a start; there are surely other GSM/CDMA drivers out there) and adds the V.250 capability to them. This should be added to hal-info.

Revision history for this message
Antti Kaijanmäki (kaijanmaki) wrote :

This bug report contains two separate bugs.

bug #1: option driver in 2.6.24 kernel is missing some IDs
solution: patch the driver (btw, the patch is not attached to this report, there's only the lshal output)

bug #2: hal does not add modem capability to the modem serial interface
solution: add the USB product ID to the existing match block of "Dell Wireless" in modem.fdi.

Adding module parameters to option driver would be #3, but that's a feature request.

I will comment on bug 268095 why you must not add modem capability to all serial interfaces exposed by a certain driver.

Revision history for this message
Alexander Sack (asac) wrote :

from what i see, hal-info now ships your fdi entry.

Changed in linux:
status: New → 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.