There is new version of usb_modeswitch since January (and February for data-package) but there is no ebuild in the Portage tree. New version (and data package) supports many new USB modems and other hardware. It would be nice if it appear in packages.
Please note that /lib/udev/usb_modeswitch is broken on Gentoo since usb_modeswitch-2.4.0 ! Here's what happens: systemd-udevd[24124]: starting 'usb_modeswitch '/3-2'' systemd-udevd[24109]: 'usb_modeswitch '/3-2''(err) 'basename: missing operand' systemd-udevd[24109]: 'usb_modeswitch '/3-2''(err) 'Try 'basename --help' for more information.' systemd-udevd[24109]: 'usb_modeswitch '/3-2''(err) '/lib/udev/usb_modeswitch: line 68: [: =: unary operator expected' systemd-udevd[24109]: Process 'usb_modeswitch '/3-2'' succeeded. Reason is that 'readlink /sbin/init' fails because it is not a symlink on Gentoo. Here's a fix that worksforme [tm]: zephyr udev # diff -u /lib/udev/usb_modeswitch{-2.5.0,} --- /lib/udev/usb_modeswitch-2.5.0 2017-07-12 10:34:17.809756612 +0200 +++ /lib/udev/usb_modeswitch 2017-07-12 10:38:03.755741578 +0200 @@ -64,7 +64,7 @@ fi PATH=/bin:/sbin:/usr/bin:/usr/sbin -init_path=`readlink /sbin/init` +init_path=`readlink /proc/1/exe` if [ `basename $init_path` = "systemd" ]; then systemctl --no-block start usb_modeswitch@$p2.service elif [ -e "/etc/init/usb-modeswitch-upstart.conf" ]; then zephyr udev #
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=54bc2d02fa53adc994266479764f352543bbec67 commit 54bc2d02fa53adc994266479764f352543bbec67 Author: Gilles Dartiguelongue <eva@gentoo.org> AuthorDate: 2018-03-25 17:53:08 +0000 Commit: Gilles Dartiguelongue <eva@gentoo.org> CommitDate: 2018-03-25 20:40:27 +0000 sys-apps/usb_modeswitch: version bump to 2.5.2, bug #622656 Closes: https://bugs.gentoo.org/show_bug.cgi?id=622656 Package-Manager: Portage-2.3.24, Repoman-2.3.6 sys-apps/usb_modeswitch/Manifest | 2 + .../usb_modeswitch/usb_modeswitch-2.5.2.ebuild | 67 ++++++++++++++++++++++ 2 files changed, 69 insertions(+)