Subject: bug#333: usb-modeswitch no longer creates /dev/gsmmodem symlink

From: Guenther Brunthaler <[email-masked]>
Date: Thu, 13 Jun 2019 22:53:54 +0200

Package: usb-modeswitch-data
Version: 20170120-1

The /dev/gsmmodem symlink is very useful as the device specified in
/etc/ppp/peers/* configurations, because it works no matter what modem
has actually been connected to the computer.

The eudev-rule from the the beforementioned package invokes the
usb_modeswitch binary with the --symlink-name which used to create the
/dev/gsmmodem symlink:

$ grep -A2 gsmmodem /lib/udev/rules.d/40-usb_modeswitch.rules
# Adds a symlink "gsmmodem[n]" to the lowest ttyUSB port with interrupt
# transfer; checked against a list of known modems, or else no action
KERNEL=="ttyUSB*", ATTRS{bNumConfigurations}=="*",
PROGRAM="usb_modeswitch --symlink-name %p %s{idVendor} %s{idProduct}
%E{PRODUCT}", SYMLINK+="%c"

The binary ignores the option, and hence no symlink is created.

I think the udev rule is incorrect and should invoke the
/lib/udev/usb_modeswitch shell script rather than the
/usr/sbin/usb_modeswitch binary, because only the shell script supports
the --symlink-name option.

This is at least the case in the current version 2.5.0+repack0-1 of the
usb-modeswitch package.

I am using Devuan GNU/Linux 2.0 (ascii)
on branch stretch
with kernel
Linux xeeepc 4.9.0-9-686 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13)
i686 GNU/Linux