/* Case (c): HAL thinks it's a modem, but udev doesn't */
nm_info ("(%s): ignoring due to lack of probed mobile broadband capabilties", ttyname);
later = FALSE;
So I've got to make udev return that extra capability, which is obviously what Alexander's patches are about, but at least know I know why and how I might be able to help.
From looking at the source code, we have a udev test and a HAL test.
The udev path looks for ID_NM_MODEM_GSM=1 in the capabilities.
On my system, my Sierra device has:
$ sudo /sbin/udevadm info --query=env --path= /sys/devices/ pci0000: 00/0000: 00:1e.0/ 0000:03: 01.0/0000: 04:00.0/ usb8/8- 1/8-1:1. 0 /devices/ pci0000: 00/0000: 00:1e.0/ 0000:03: 01.0/0000: 04:00.0/ usb8/8- 1/8-1:1. 0 usb_interface /proc/bus/ usb/008/ 002 255/255/ 255 usb:v1199p6820d 0002dc00dsc00dp 00icFFiscFFipFF
UDEV_LOG=3
DEVPATH=
DEVTYPE=
DRIVER=sierra
DEVICE=
PRODUCT=1199/6820/2
TYPE=0/0/0
INTERFACE=
MODALIAS=
So no GSM string.
But in the HAL path, it looks for 'GSM-07.07' in modem.command_sets, which my system does have:
$ sudo lshal op/Hal/ devices/ usb_device_ 1199_6820_ noserial_ if0_serial_ usb_0' control. file = '/dev/ttyUSB0' (string) control. type = 'modem' (string) callouts. remove = {'hal-acl-tool --remove-device'} (string list) op/Hal/ devices/ usb_device_ 1199_6820_ noserial_ if0' (string) op/Hal/ devices/ usb_device_ 1199_6820_ noserial_ if0_serial_ usb_0' (string) hotplug_ type = 2 (0x2) (int) pci0000: 00/0000: 00:1e.0/ 0000:03: 01.0/0000: 04:00.0/ usb8/8- 1/8-1:1. 0/ttyUSB0/ tty/ttyUSB0' (string) command_ sets = {'GSM-07.07', 'GSM-07.05'} (string list) originating_ device = '/org/freedeskt op/Hal/ devices/ usb_device_ 1199_6820_ noserial_ if0' (string)
[...]
udi = '/org/freedeskt
access_
access_
info.callouts.add = {'hal-acl-tool --add-device'} (string list)
info.
info.capabilities = {'serial', 'modem', 'access_control'} (string list)
info.category = 'serial' (string)
info.parent = '/org/freedeskt
info.product = 'AC875 Device' (string)
info.subsystem = 'tty' (string)
info.udi = '/org/freedeskt
linux.device_file = '/dev/ttyUSB0' (string)
linux.
linux.subsystem = 'tty' (string)
linux.sysfs_path = '/sys/devices/
modem.
serial.device = '/dev/ttyUSB0' (string)
serial.
serial.port = 0 (0x0) (int)
serial.type = 'usb' (string)
[...]
Then the code says we trust udev over HAL...
/* Case (c): HAL thinks it's a modem, but udev doesn't */
nm_info ("(%s): ignoring due to lack of probed mobile broadband capabilties", ttyname);
later = FALSE;
So I've got to make udev return that extra capability, which is obviously what Alexander's patches are about, but at least know I know why and how I might be able to help.