Package: usb-modeswitch-data Version: 20150115-1 Severity: normal Dear Maintainer,
This bug is very similar to archived bug # 751271. After upgrading from Debian 7 to Debian 8, my Huawei modem will no longer switch from "usb storage" to "modem mode" when the device is plugged in. I am experiencing this problem in latest Debian 8.2, udev 215, usb_modeswitch 2.2.0+repack0-2, and usb-modeswitch-data 20150115-1. I am using the Huawei 12d1:1446 device -- the same mentioned in archived bug # 751271. The catch-all udev rule does not work: # Generic entry for all Huawei devices ATTRS{idVendor}=="12d1", ATTR{bInterfaceNumber}=="00", ATTR{bInterfaceClass}=="08", RUN+="usb_modeswitch '%b/%k'" The switching does not occur by udev automatically. Switching by manually calling usb_modeswitch works fine: usb_modeswitch -v 12d1 -p 1446 -J And... a few moments later by new device 12d1:1506 appears and all is well. If I simply modify the udev rule, everything works automatically. For example, this rule works: ATTR{idVendor}=="12d1", ATTR{idProduct}=="1446", RUN+="/lib/udev/usb_modeswitch '%b/%k'" This does not work, however: ATTR{idVendor}=="12d1", ATTR{idProduct}=="1446", ATTR{bInterfaceNumber}=="00", RUN+="/lib/udev/usb_modeswitch '%b/%k'" Here's an except from `udevadm info` **before switching**: looking at device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0': KERNEL=="2-1:1.0" SUBSYSTEM=="usb" DRIVER=="usb-storage" ATTR{bInterfaceClass}=="08" ATTR{bInterfaceSubClass}=="06" ATTR{bInterfaceProtocol}=="50" ATTR{bNumEndpoints}=="02" ATTR{supports_autosuspend}=="1" ATTR{bAlternateSetting}==" 0" ATTR{bInterfaceNumber}=="00" looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb2/2-1': KERNELS=="2-1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{devpath}=="1" ATTRS{idVendor}=="12d1" ATTRS{speed}=="480" ATTRS{bNumInterfaces}==" 2" ATTRS{bConfigurationValue}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{busnum}=="2" ATTRS{devnum}=="18" ATTRS{configuration}=="Huawei Configuration" ATTRS{bMaxPower}=="500mA" ATTRS{authorized}=="1" ATTRS{bmAttributes}=="c0" ATTRS{bNumConfigurations}=="1" ATTRS{maxchild}=="0" ATTRS{bcdDevice}=="0000" ATTRS{avoid_reset_quirk}=="0" ATTRS{quirks}=="0x0" ATTRS{version}==" 2.00" ATTRS{urbnum}=="313" ATTRS{ltm_capable}=="no" ATTRS{manufacturer}=="Huawei Technologies" ATTRS{removable}=="unknown" ATTRS{idProduct}=="1446" ATTRS{bDeviceClass}=="00" ATTRS{product}=="HUAWEI Mobile" And, here is the output from `udevadm test -a add /devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0` **before switching**: calling: test version 215 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. load module index Network interface NamePolicy= disabled on kernel commandline, ignoring. timestamp of '/etc/systemd/network' changed timestamp of '/lib/systemd/network' changed Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. timestamp of '/etc/udev/rules.d' changed read rules file: /lib/udev/rules.d/40-usb_modeswitch.rules read rules file: /lib/udev/rules.d/42-usb-hid-pm.rules read rules file: /lib/udev/rules.d/50-firmware.rules read rules file: /lib/udev/rules.d/50-udev-default.rules read rules file: /lib/udev/rules.d/55-dm.rules read rules file: /lib/udev/rules.d/60-cdrom_id.rules read rules file: /lib/udev/rules.d/60-drm.rules read rules file: /lib/udev/rules.d/60-gnupg.rules read rules file: /lib/udev/rules.d/60-keyboard.rules read rules file: /lib/udev/rules.d/60-persistent-alsa.rules read rules file: /lib/udev/rules.d/60-persistent-input.rules read rules file: /lib/udev/rules.d/60-persistent-serial.rules read rules file: /lib/udev/rules.d/60-persistent-storage-dm.rules read rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules read rules file: /lib/udev/rules.d/60-persistent-storage.rules read rules file: /lib/udev/rules.d/60-persistent-v4l.rules read rules file: /lib/udev/rules.d/61-accelerometer.rules read rules file: /lib/udev/rules.d/64-btrfs.rules read rules file: /lib/udev/rules.d/64-xorg-xkb.rules read rules file: /lib/udev/rules.d/69-xorg-vmmouse.rules read rules file: /etc/udev/rules.d/70-persistent-net.rules read rules file: /lib/udev/rules.d/70-power-switch.rules read rules file: /lib/udev/rules.d/70-uaccess.rules read rules file: /lib/udev/rules.d/71-seat.rules read rules file: /lib/udev/rules.d/73-idrac.rules read rules file: /lib/udev/rules.d/73-seat-late.rules read rules file: /lib/udev/rules.d/75-net-description.rules read rules file: /lib/udev/rules.d/75-persistent-net-generator.rules read rules file: /lib/udev/rules.d/75-probe_mtd.rules read rules file: /lib/udev/rules.d/75-tty-description.rules read rules file: /lib/udev/rules.d/78-sound-card.rules read rules file: /lib/udev/rules.d/80-drivers.rules read rules file: /lib/udev/rules.d/80-net-setup-link.rules read rules file: /lib/udev/rules.d/80-networking.rules read rules file: /lib/udev/rules.d/85-hwclock.rules read rules file: /lib/udev/rules.d/90-alsa-restore.rules read rules file: /lib/udev/rules.d/95-udev-late.rules read rules file: /etc/udev/rules.d/99-custom.rules read rules file: /lib/udev/rules.d/99-systemd.rules rules contain 49152 bytes tokens (4096 * 12 bytes), 14073 bytes strings 3585 strings (38731 bytes), 2565 de-duplicated (25679 bytes), 1021 trie nodes used RUN 'usb_modeswitch '%b/%k'' /lib/udev/rules.d/40-usb_modeswitch.rules:24 IMPORT builtin 'hwdb' /lib/udev/rules.d/50-udev-default.rules:11 RUN 'kmod load $env{MODALIAS}' /lib/udev/rules.d/80-drivers.rules:5 ACTION=add DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-1/2-1:1.0 DEVTYPE=usb_interface DRIVER=usb-storage ID_MODEL_FROM_DATABASE=E1552/E1800/E173 (HSPA modem) ID_VENDOR_FROM_DATABASE=Huawei Technologies Co., Ltd. INTERFACE=8/6/80 MODALIAS=usb:v12D1p1446d0000dc00dsc00dp00ic08isc06ip50in00 PRODUCT=12d1/1446/0 SUBSYSTEM=usb TYPE=0/0/0 USEC_INITIALIZED=23090527 run: 'usb_modeswitch '2-1/2-1:1.0'' run: 'kmod load usb:v12D1p1446d0000dc00dsc00dp00ic08isc06ip50in00' unload module index Unloaded link configuration context. I should also note that running /lib/udev/usb_modeswitch '2-1/2-1:1.0' manually does not cause the USB device to switch. Interestingly, running /lib/udev/usb_modeswitch '2-1' does cause the USB device to switch. This could be why setting the rule on the USB device works but setting the rule on the USB device **interface** does not. I'd be happy to provide more information as needed. Thanks! -- System Information: Debian Release: 8.2 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) usb-modeswitch-data depends on no packages. Versions of packages usb-modeswitch-data recommends: ii udev 215-17+deb8u2 ii usb-modeswitch 2.2.0+repack0-2 usb-modeswitch-data suggests no packages. -- no debconf information