|
History of USB_ModeSwitch
|
=========================
|
|
Version 2.4.0, 2016/06/12
|
ATTENTION: All ad-hoc driver binding code (using new_id driver attribute)
|
removed - was a potential source of side effects and should now be
|
obsoleted by good kernel support for modems; Added "dummy" setting for
|
config files, to conditionally refrain from handling a device (see this
|
topic: www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=4&t=2458 );
|
extended StandardEject sequence to include LUN 1, required for some D-Link
|
devices; add device class 239 ("miscellaneous") to sanity check (thanks to
|
Daniel Drake for reporting); udev shell script - removed driver binding,
|
removed almost all waiting and forking, improved check for systemd (thanks
|
to Daniel Drake for problem analysis and solution, see this topic/patch:
|
www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=16777#p16777 ,
|
gist.github.com/dsd/9f83c4830ab78ce94078aedb2cf16a8f )
|
Version 2.3.0, 2016/01/12
|
ATTENTION: -I flag is now history and being ignored - determining SCSI
|
attributes is really an 'outside task'; -n flag (NeedResponse) is being
|
ignored, CSW response will now always be read; introduction of parameter
|
"OptionMode", wrapping the standard bulk message for all newer Huawei
|
devices; fixed missing variable initialization in dispatcher script which
|
could lead to crash (thanks, Dmitry Kunilov!); fixed bug which prevented
|
early logging; fixed success report for Cisco AM10; some source code
|
formatting and clean-up
|
Version 2.2.6, 2015/11/01
|
Renamed function abort(), avoiding possible conflicts in static builds
|
with libjim (thanks, Gustavo Zacharias); removed storage class check of
|
interface 0 from dispatcher, enabling new multi-config devices in data
|
package 20151101
|
Version 2.2.5, 2015/07/16
|
Fixed bug in configuration check, possibly leading to segfault (thanks,
|
Leonid Lisovskiy); fixed Pantech commandline parameter evaluation (was
|
not working at all); added driver unbind step via sysfs in wrapper,
|
getting rid of the USB subsystem complaint "interface 0 claimed by
|
usb-storage while 'usb_modeswitch' <does this and that>"
|
Version 2.2.4, 2015/07/14
|
Fixed buggy check of USB configuration selection (possibly leading
|
to segfault), tested with Alcatel X602D; removed call to 'libusb_strerror'
|
from libusb initialization - not available in earlier libusb1 versions
|
Version 2.2.3, 2015/06/29
|
Fixed problem arising with systemd version 221 (220 untested), which
|
affects starting the usb_modeswitch systemd unit from the sh script
|
(reported by Archlinux users)
|
Version 2.2.2, 2015/06/27
|
Added catch for libusb init error (thanks, Henrik Gustafsson); removed
|
global function result variable; added catch for USB configuration
|
read error (both thanks to "otila"); fixed wrapper script where port
|
search for symlinking modem port was broken ("/dev/gsmmodem"); changed
|
PantechMode parameter to represent different targets; added global
|
config option to disable MBIM checking and setting alltogether (request
|
from "kai"); changed udev sh script so that systemd processing takes
|
precedence over upstart; changed systemd template unit parameter to
|
avoid escaping problems
|
Version 2.2.1, 2015/01/15
|
Fixed unreliable switching function for Cisco AM10
|
Version 2.2.0, 2014/05/29
|
Introduction of parameter "HuaweiNewMode", wrapping the standard bulk
|
message for all newer Huawei devices; support for generic fall-back
|
config files, combined with OS switch (per vendor ID), implementation
|
to use a specific switching command on Android for all Huawei devices
|
(see README of data package for details); this change was suggested
|
by Huawei
|
Version 2.1.1, 2014/03/27
|
Code cleanup, better use of libusb1; this also fixes problems with
|
determination of the active USB configuration (Samsung, Option modems);
|
"Interface" parameter was not working as expected, fixed (see also:
|
https://bugs.launchpad.net/bugs/1261923 ); fixed bogus interface release
|
in "inquire" function, again a report by "Sonya@zte"
|
Version 2.1.0, 2014/01/28
|
ATTENTION: -I flag meaning reversed, default is to skip SCSI inquiry;
|
introduction of StandardEject, replacing many MessageContents with the
|
same function, reducing size of device config files, and always including
|
the 'Allow Medium Removal' before ejecting (thanks to Lars Melin for
|
the idea); fix in "bulk_read", removing bogus CSW request (report from
|
"Sonya@zte")
|
Version 2.0.1, 2013/09/03
|
Fixed stupid string size bug which could lead to memory corruption
|
(thanks to Leonid Myravjev)
|
Version 2.0.0, 2013/09/01
|
Switched to libusb1.0, with much help from folks of the wl500g project
|
(http://wl500g.googlecode.com): Vladislav Grishenko, Leonid Lisovskiy,
|
Roman Samarev, Andrey Tikhomirov;
|
major code and debug output cleanup; man page corrections and additions
|
(thanks to Thomas Haller);
|
experimental systemd and upstart integration, if present
|
(Explanation: newer udev versions kill all subprocesses, detached or
|
not. The suggested way to handle longer running processes like the
|
usb_modeswitch_dispatcher is to add simple services or tasks and start
|
these by sending signals from the udev rule)
|
!! Attention, system integrators: a crude install facility is included
|
in the Makefile to check if "upstart" or "systemd" is active and to
|
install the matching service file; you may want to adapt it better to
|
your respective system, possibly adding dependencies/targets to the
|
services. Note that the udev starter script usb_modeswitch.sh also
|
checks for the existence of the service/unit files
|
Version 1.2.7, 2013/08/07
|
Two new dedicated control message functions to support Pantech LTE
|
(thanks to Adam Goode) and Blackberry Q10/Z10 (thanks to Daniel Mende)
|
Version 1.2.6, 2013/06/02
|
Several changes to streamline compiling as part of larger projects
|
(thanks to Nicolas Carrier), mostly in Makefile; fix compiler warnings
|
appearing in certain build environments (N. Carrier); new Quanta
|
procedure (thanks to Andrey Tikhomirov) for Quanta 1K3 LTE; fix for
|
error with cascaded hubs in dispatcher script (hint from N. Carrier)
|
Version 1.2.5, 2012/11/09
|
Initial support for MBIM devices, use with data package >= 20121109;
|
checking for these is the automatic default, new parameter NoMBIMCheck
|
prevents the check per device in case of problems; new global option
|
to set "delay_use" of usb-storage (as low values may prevent
|
mode-switching); fix for handling multi-configuration devices (thanks
|
to Bjørn Mork for advice)
|
Version 1.2.4, 2012/08/12
|
Additional interface checks to prevent sending UFI commands to non-
|
storage interfaces (prompted by more ambiguous device IDs popping up);
|
change in SierraMode for handling newer devices which caused an error
|
abort before; Makefile fix for parallelized make runs
|
Version 1.2.3, 2012/01/28
|
Fixed two bugs both causing the embedded-jimsh install variant of the
|
dispatcher crash (the "pure-script" install variant was NOT affected);
|
fixed some "regexp" incompatibilities with Debian's libjim
|
Version 1.2.2, 2012/01/19
|
Fixed bad bug preventing mode switch for devices using TargetClass;
|
improved logging in case of negative success check
|
Version 1.2.1, 2011/12/26
|
Fixed possible ambiguities when multiple identical modems are plugged
|
synchronously; this is achieved by adding -b and -g parameter (busnum
|
and devnum) for proper id'ing; some resulting workflow changes and
|
shortcuts in "system integration" mode (use sysfs/wrapper for success
|
control, reduce informative checks); improved hub usage robustness;
|
future data packages can be ridded of redundancies (default ID, success
|
check parameters), resulting in smaller files;
|
fixed bad bug which may prevent switching completely when logging is
|
not activated; fixed possible overflow in dispatcher C code (thanks to
|
Gilles Espinasse)
|
Version 1.2.0, 2011/10/23
|
Added QisdaMode for Qisda H21 (thanks to Chi-Hang Long for the code);
|
dispatcher can now be installed with an embedded interpreter, so that
|
Tcl is no longer required; added command line options for binary program
|
to accept configuration data via stdin or as a long string parameter -
|
this fixes the bug with non-writable temporary file during boot;
|
reversed skipping of pre-switching delay, which has caused problems;
|
fixed potential buffer overflow (thanks to Rafael Silva for the find);
|
get first interface right even on some broken devices (thanks to
|
Alexander Gordeev for the patch); increased post-switch delay before
|
driver binding to avoid possible conflict with usb-storage
|
Version 1.1.9, 2011/08/05
|
Added CiscoMode for Valet device; additional checking for CDC ACM device
|
to prevent erroneous driver loading after switching; no more post-switch
|
check for access to initial device if target parameters are given
|
Version 1.1.8, 2011/06/19
|
Cleaned up switchSendMessage(); added workaround for quirky devices not
|
reporting configuration setting; added non-CSW response for arbitrary
|
bulk transfers; added SequansMode and MobileActionMode; check for active
|
configuration will be skipped if bNumConfigurations is 1 (most cases)
|
Version 1.1.7, 2011/02/27
|
Attention: paths for runtime files and database have changed! Old places
|
will be found but are deprecated; /usr/share/usb_modeswitch for database,
|
/var/lib/usb_modeswitch for "remembered" IDs;
|
fix for configuration setting race (thanks to Amit Mendapara); discovered
|
incompatibility between Tcl versions <= 8.3 and >=8.4, so 8.4 is the
|
minimum prerequisite now;
|
first availability of an alternative source pack which includes "jimsh",
|
a fast Tcl mini shell, intended for resource-constrained systems
|
Version 1.1.6, 2010/12/22
|
Moved warm-boot driver binding to sh wrapper, was unreliable in 1.1.5;
|
sh wrapper overhaul, made compatible with Ubuntu's "dash" shell, tclsh
|
calls reduced further; initial device checking includes current
|
bConfigurationValue now, should work with config setting for multiple
|
devices; made tcl script conform to limitations of "jimsh", the minimal
|
tcl shell (hint from Barry Kauler); fixes for "usbserial" fallback
|
(driver binding for old systems); in the C program, changed parameter
|
"MessageDelay" (hitherto unused) to "ReleaseDelay", to be used in one
|
device configuration (delay interface release after bulk message sending)
|
Version 1.1.5, 2010/11/28
|
Added special control message for Kobil devices (patch from Filip Aben);
|
try to get active configuration for interface class checking (there are
|
some new devices 'switching' via configuration selection);
|
fixed "0000" target product ID - again; new bash and tcl wrapper logic:
|
the convenience functions for driver binding and symlinking will now
|
start the tcl shell ONLY for known devices; changed and appended logging
|
capabilities of said convenience functions; add loading of "usbserial"
|
as a fallback for older systems to support new devices;
|
add workaround for bug in libusb1 which affects device search during
|
success check
|
Version 1.1.4, 2010/08/17
|
The package should work at boot time now (cold and warm);
|
product IDs of "0000" do exist but were not accepted, fixed (thanks to
|
Sakis Dimopoulos); response endpoint is now always detected (led to
|
possible error report when resetting all endpoints in version 1.1.3);
|
wrapper script can now work with a packed collection of config files as
|
well as with the plain folder of files; use with the "install-packed"
|
make target of the data package (for use on systems with resource
|
constraints); wrapper fix for the symlink feature: handling of multiple
|
interrupt ports was incomplete; wrapper does not longer use a temporary
|
file for the symlink feature (security considerations, Marco d'Itri)
|
Version 1.1.3, 2010/06/21
|
Added delay option to separate multiple message transfers by millisecs;
|
fixed (possibly dangerous) sloppy string handling (thanks to Christophe
|
Fergeau); added "clear_halt" for response endpoint; small additions in
|
Makefile (install with -D); changes in option handling (NO MORE DEFAULT
|
CONFIG FILE!) and help text; symlink feature in wrapper can now cope
|
with devices providing more than one interrupt port; wrapper now ignores
|
package manager leftovers in config folder; replaced bash-specific syntax
|
in wrapper; changed ZTE skipping (if existing rules are found) to warning
|
Version 1.1.2, 2010/04/18
|
Added support for two additional bulk messages; wrapper handles special
|
ZTE case; generalized driver loading, new parameter "DriverModule" and
|
"DriverIDPath"; new wrapper facility to add symlink pointing to interrupt
|
port (used in rule file from data pack >= 20100418)
|
Version 1.1.1, 2010/03/17
|
Attention: old usb_modeswitch.conf renamed to usb_modeswitch.setup!
|
Add separate config file for wrapper (global settings for switching and
|
logging); add config file option to disable driver loading; handling of
|
kernel attribute AVOID_RESET_QUIRK added; bug fixed in SonyMode (reported
|
by "no-0n3"); bug fixed in SuccessCheck logic; minor flow alignments and
|
fixes; new devices
|
Version 1.1.0, 2010/01/24
|
Attention: wrapper script location changed, uninstall old versions!
|
Major fixes in the wrapper script (stabilizing and time-saving);
|
back to unified installation, defaults to "integrated" approach;
|
new -D parameter to enable "integrated" behaviour; bugs fixed in
|
success check; man file included (borrowed from the Debian package);
|
C code and binary works with the compat library from libusb-1.0;
|
some new devices
|
Version 1.0.7, 2010/01/06
|
Bug fixed for Sony mode, thanks to Marco Chiaranda; fix for parameter
|
substitution in newer udev versions, fix for bad bug in wrapper script
|
practically disabling automatic mode
|
Version 1.0.6, 2009/12/21
|
New "GCT Mode", fixes for device quirks (NXP Dragonfly), fix for multiple
|
Huawei devices, cleanups, loads of new devices in config file and database,
|
minor tcl script changes
|
Version 1.0.5, 2009/08/26
|
More changes and fixes regarding success check; "--version" option;
|
config "database" updated
|
Version 1.0.4, 2009/08/23
|
Success check bugs (and others) fixed
|
Version 1.0.3, 2009/08/20
|
Success check improved; experimental system integration (fully automated),
|
optional; new parameter "TargetProductList" needed for this; other
|
necessary small adaptations; more devices
|
Version 1.0.2, 2009/06/10
|
Output bugs fixed
|
Version 1.0.1, 2009/06/08
|
Added output of descriptor strings for further identification
|
Version 1.0.0, 2009/06/01
|
Attention: possible incompatibilities for command line control!
|
On/off flags don't require arguments anymore (-H, -S, -O, -d, -R,
|
-n, new: -I), meaning "-R 0" does a reset like "-R 1" or "-R";
|
long option names changed to standard format (e.g. --HuaweiMode to
|
--huawei-mode); added device inquiry, for future help with device
|
identification; catch error -19 as possible success; send and response
|
endpoints now autoselected (consequently NeedResponse is back);
|
new devices
|
Version 0.9.7, 2009/04/15
|
Updated SonyMode, MD 400 now stable; automatic default endpoint
|
detection from Andrew Bird
|
Version 0.9.7beta, 2009/03/15
|
Major code clean up, optional success control (both suggested
|
by Daniel Cooper), new devices
|
Version 0.9.6, 2009/01/08
|
Special modes added for Sierra and Sony Ericsson, new devices
|
Version 0.9.5, 2008/10/27
|
New options for USB tuning (jokedst), lots of new devices, clean up
|
Version 0.9.4, 2008/06/09
|
Compat fix for libusb on FreeBSD quirks, more devices
|
Version 0.9.4beta2, 2008/03/19
|
Successful udev device release fix
|
Version 0.9.4beta, 2008/03/16
|
Multiple device support
|
Version 0.9.3, 2008/03/09
|
More devices, no changes from beta version
|
Version 0.9.3beta, 2007/12/30
|
New TargetClass parameter for recent Option firmware (Paul Hardwick), more
|
devices
|
Version 0.9.2, 2007/11/02
|
New Huawei mode (code from Miroslav Bobovsky, added by Denis Sutter), more
|
devices
|
Version 0.9.1beta, 2007/09/04 (jokedst)
|
Added command line parsing, cleaned up config stuff, doc updates
|
Version 0.9beta, 2007/08/15
|
Name change from "icon_switch", parameter file and generalizing
|
Version 0.2, 2006/09/25
|
Code cleaning, more messages
|
Version 0.1, 2006/09/24
|
(as "icon_switch") Just very basic functionality ...
|