usb_modeswitch: ver. 2.2.1 with data package 2015-01-15
[tomato.git] / release / src / router / usbmodeswitch / ChangeLog
blobd9a5271737c18b46191038aeb6a3e93835a86beb
2 History of USB_ModeSwitch
3 =========================
5 Version 2.2.1, 2015/01/15
6     Fixed unreliable switching function for Cisco AM10
7 Version 2.2.0, 2014/05/29
8     Introduction of parameter "HuaweiNewMode", wrapping the standard bulk
9     message for all newer Huawei devices; support for generic fall-back
10     config files, combined with OS switch (per vendor ID), implementation
11     to use a specific switching command on Android for all Huawei devices
12     (see README of data package for details); this change was suggested
13     by Huawei
14 Version 2.1.1, 2014/03/27
15     Code cleanup, better use of libusb1; this also fixes problems with
16     determination of the active USB configuration (Samsung, Option modems);
17     "Interface" parameter was not working as expected, fixed (see also:
18     https://bugs.launchpad.net/bugs/1261923 ); fixed bogus interface release
19     in "inquire" function, again a report by "Sonya@zte"
20 Version 2.1.0, 2014/01/28
21     ATTENTION: -I flag meaning reversed, default is to skip SCSI inquiry;
22     introduction of StandardEject, replacing many MessageContents with the
23     same function, reducing size of device config files, and always including
24     the 'Allow Medium Removal' before ejecting (thanks to Lars Melin for
25     the idea); fix in "bulk_read", removing bogus CSW request (report from
26     "Sonya@zte")
27 Version 2.0.1, 2013/09/03
28     Fixed stupid string size bug which could lead to memory corruption
29     (thanks to Leonid Myravjev)
30 Version 2.0.0, 2013/09/01
31     Switched to libusb1.0, with much help from folks of the wl500g project
32     (http://wl500g.googlecode.com): Vladislav Grishenko, Leonid Lisovskiy,
33     Roman Samarev, Andrey Tikhomirov;
34     major code and debug output cleanup; man page corrections and additions
35     (thanks to Thomas Haller);
36     experimental systemd and upstart integration, if present
37     (Explanation: newer udev versions kill all subprocesses, detached or
38     not. The suggested way to handle longer running processes like the
39     usb_modeswitch_dispatcher is to add simple services or tasks and start
40     these by sending signals from the udev rule)
41     !! Attention, system integrators: a crude install facility is included
42     in the Makefile to check if "upstart" or "systemd" is active and to
43     install the matching service file; you may want to adapt it better to
44     your respective system, possibly adding dependencies/targets to the
45     services. Note that the udev starter script usb_modeswitch.sh also
46     checks for the existence of the service files
47 Version 1.2.7, 2013/08/07
48     Two new dedicated control message functions to support Pantech LTE
49     (thanks to Adam Goode) and Blackberry Q10/Z10 (thanks to Daniel Mende)
50 Version 1.2.6, 2013/06/02
51     Several changes to streamline compiling as part of larger projects
52     (thanks to Nicolas Carrier), mostly in Makefile; fix compiler warnings
53     appearing in certain build environments (N. Carrier); new Quanta
54     procedure (thanks to Andrey Tikhomirov) for Quanta 1K3 LTE; fix for
55     error with cascaded hubs in dispatcher script (hint from N. Carrier)
56 Version 1.2.5, 2012/11/09
57     Initial support for MBIM devices, use with data package >= 20121109;
58     checking for these is the automatic default, new parameter NoMBIMCheck
59     prevents the check per device in case of problems; new global option
60     to set "delay_use" of usb-storage (as low values may prevent
61     mode-switching); fix for handling multi-configuration devices (thanks
62     to Bjørn Mork for advice)
63 Version 1.2.4, 2012/08/12
64     Additional interface checks to prevent sending UFI commands to non-
65     storage interfaces (prompted by more ambiguous device IDs popping up);
66     change in SierraMode for handling newer devices which caused an error
67     abort before; Makefile fix for parallelized make runs
68 Version 1.2.3, 2012/01/28
69     Fixed two bugs both causing the embedded-jimsh install variant of the
70     dispatcher crash (the "pure-script" install variant was NOT affected);
71     fixed some "regexp" incompatibilities with Debian's libjim
72 Version 1.2.2, 2012/01/19
73     Fixed bad bug preventing mode switch for devices using TargetClass;
74     improved logging in case of negative success check
75 Version 1.2.1, 2011/12/26
76     Fixed possible ambiguities when multiple identical modems are plugged
77     synchronously; this is achieved by adding -b and -g parameter (busnum
78     and devnum) for proper id'ing; some resulting workflow changes and
79     shortcuts in "system integration" mode (use sysfs/wrapper for success
80     control, reduce informative checks); improved hub usage robustness;
81     future data packages can be ridded of redundancies (default ID, success
82     check parameters), resulting in smaller files;
83     fixed bad bug which may prevent switching completely when logging is
84     not activated; fixed possible overflow in dispatcher C code (thanks to
85     Gilles Espinasse)
86 Version 1.2.0, 2011/10/23
87     Added QisdaMode for Qisda H21 (thanks to Chi-Hang Long for the code);
88     dispatcher can now be installed with an embedded interpreter, so that
89     Tcl is no longer required; added command line options for binary program
90     to accept configuration data via stdin or as a long string parameter -
91     this fixes the bug with non-writable temporary file during boot;
92     reversed skipping of pre-switching delay, which has caused problems;
93     fixed potential buffer overflow (thanks to Rafael Silva for the find);
94     get first interface right even on some broken devices (thanks to
95     Alexander Gordeev for the patch); increased post-switch delay before
96     driver binding to avoid possible conflict with usb-storage
97 Version 1.1.9, 2011/08/05
98     Added CiscoMode for Valet device; additional checking for CDC ACM device
99     to prevent erroneous driver loading after switching; no more post-switch
100     check for access to initial device if target parameters are given
101 Version 1.1.8, 2011/06/19
102     Cleaned up switchSendMessage(); added workaround for quirky devices not
103     reporting configuration setting; added non-CSW response for arbitrary
104     bulk transfers; added SequansMode and MobileActionMode; check for active
105     configuration will be skipped if bNumConfigurations is 1 (most cases)
106 Version 1.1.7, 2011/02/27
107     Attention: paths for runtime files and database have changed! Old places
108     will be found but are deprecated; /usr/share/usb_modeswitch for database,
109     /var/lib/usb_modeswitch for "remembered" IDs;
110     fix for configuration setting race (thanks to Amit Mendapara); discovered
111     incompatibility between Tcl versions <= 8.3 and >=8.4, so 8.4 is the
112     minimum prerequisite now;
113     first availability of an alternative source pack which includes "jimsh",
114     a fast Tcl mini shell, intended for resource-constrained systems
115 Version 1.1.6, 2010/12/22
116     Moved warm-boot driver binding to sh wrapper, was unreliable in 1.1.5;
117     sh wrapper overhaul, made compatible with Ubuntu's "dash" shell, tclsh
118     calls reduced further; initial device checking includes current
119     bConfigurationValue now, should work with config setting for multiple
120     devices; made tcl script conform to limitations of "jimsh", the minimal
121     tcl shell (hint from Barry Kauler); fixes for "usbserial" fallback
122     (driver binding for old systems); in the C program, changed parameter
123     "MessageDelay" (hitherto unused) to "ReleaseDelay", to be used in one
124     device configuration (delay interface release after bulk message sending)
125 Version 1.1.5, 2010/11/28
126     Added special control message for Kobil devices (patch from Filip Aben);
127     try to get active configuration for interface class checking (there are
128     some new devices 'switching' via configuration selection);
129     fixed "0000" target product ID - again; new bash and tcl wrapper logic:
130     the convenience functions for driver binding and symlinking will now
131     start the tcl shell ONLY for known devices; changed and appended logging
132     capabilities of said convenience functions; add loading of "usbserial"
133     as a fallback for older systems to support new devices;
134     add workaround for bug in libusb1 which affects device search during
135     success check
136 Version 1.1.4, 2010/08/17
137     The package should work at boot time now (cold and warm);
138     product IDs of "0000" do exist but were not accepted, fixed (thanks to
139     Sakis Dimopoulos); response endpoint is now always detected (led to
140     possible error report when resetting all endpoints in version 1.1.3);
141     wrapper script can now work with a packed collection of config files as
142     well as with the plain folder of files; use with the "install-packed"
143     make target of the data package (for use on systems with resource
144     constraints); wrapper fix for the symlink feature: handling of multiple
145     interrupt ports was incomplete; wrapper does not longer use a temporary
146     file for the symlink feature (security considerations, Marco d'Itri)
147 Version 1.1.3, 2010/06/21
148     Added delay option to separate multiple message transfers by millisecs;
149     fixed (possibly dangerous) sloppy string handling (thanks to Christophe
150     Fergeau); added "clear_halt" for response endpoint; small additions in
151     Makefile (install with -D); changes in option handling (NO MORE DEFAULT
152     CONFIG FILE!) and help text; symlink feature in wrapper can now cope
153     with devices providing more than one interrupt port; wrapper now ignores
154     package manager leftovers in config folder; replaced bash-specific syntax
155     in wrapper; changed ZTE skipping (if existing rules are found) to warning
156 Version 1.1.2, 2010/04/18
157     Added support for two additional bulk messages; wrapper handles special
158     ZTE case; generalized driver loading, new parameter "DriverModule" and
159     "DriverIDPath"; new wrapper facility to add symlink pointing to interrupt
160     port (used in rule file from data pack >= 20100418)
161 Version 1.1.1, 2010/03/17
162     Attention: old usb_modeswitch.conf renamed to usb_modeswitch.setup!
163     Add separate config file for wrapper (global settings for switching and
164     logging); add config file option to disable driver loading; handling of
165     kernel attribute AVOID_RESET_QUIRK added; bug fixed in SonyMode (reported
166     by "no-0n3"); bug fixed in SuccessCheck logic; minor flow alignments and
167     fixes; new devices
168 Version 1.1.0, 2010/01/24
169     Attention: wrapper script location changed, uninstall old versions!
170     Major fixes in the wrapper script (stabilizing and time-saving);
171     back to unified installation, defaults to "integrated" approach;
172     new -D parameter to enable "integrated" behaviour; bugs fixed in
173     success check; man file included (borrowed from the Debian package);
174     C code and binary works with the compat library from libusb-1.0;
175     some new devices
176 Version 1.0.7, 2010/01/06
177     Bug fixed for Sony mode, thanks to Marco Chiaranda; fix for parameter
178     substitution in newer udev versions, fix for bad bug in wrapper script
179     practically disabling automatic mode
180 Version 1.0.6, 2009/12/21
181     New "GCT Mode", fixes for device quirks (NXP Dragonfly), fix for multiple
182     Huawei devices, cleanups, loads of new devices in config file and database,
183     minor tcl script changes
184 Version 1.0.5, 2009/08/26
185     More changes and fixes regarding success check; "--version" option;
186     config "database" updated
187 Version 1.0.4, 2009/08/23
188     Success check bugs (and others) fixed
189 Version 1.0.3, 2009/08/20
190     Success check improved; experimental system integration (fully automated),
191     optional; new parameter "TargetProductList" needed for this; other
192     necessary small adaptations; more devices
193 Version 1.0.2, 2009/06/10
194     Output bugs fixed
195 Version 1.0.1, 2009/06/08
196     Added output of descriptor strings for further identification
197 Version 1.0.0, 2009/06/01
198     Attention: possible incompatibilities for command line control!
199     On/off flags don't require arguments anymore (-H, -S, -O, -d, -R,
200     -n, new: -I), meaning "-R 0" does a reset like "-R 1" or "-R";
201     long option names changed to standard format (e.g. --HuaweiMode to
202     --huawei-mode); added device inquiry, for future help with device
203     identification; catch error -19 as possible success; send and response
204     endpoints now autoselected (consequently NeedResponse is back);
205     new devices
206 Version 0.9.7, 2009/04/15
207     Updated SonyMode, MD 400 now stable; automatic default endpoint
208     detection from Andrew Bird
209 Version 0.9.7beta, 2009/03/15
210     Major code clean up, optional success control (both suggested
211     by Daniel Cooper), new devices
212 Version 0.9.6, 2009/01/08
213     Special modes added for Sierra and Sony Ericsson, new devices
214 Version 0.9.5, 2008/10/27
215     New options for USB tuning (jokedst), lots of new devices, clean up
216 Version 0.9.4, 2008/06/09
217     Compat fix for libusb on FreeBSD quirks, more devices
218 Version 0.9.4beta2, 2008/03/19
219     Successful udev device release fix
220 Version 0.9.4beta, 2008/03/16
221     Multiple device support
222 Version 0.9.3, 2008/03/09
223     More devices, no changes from beta version
224 Version 0.9.3beta, 2007/12/30
225     New TargetClass parameter for recent Option firmware (Paul Hardwick), more
226     devices
227 Version 0.9.2, 2007/11/02
228     New Huawei mode (code from Miroslav Bobovsky, added by Denis Sutter), more
229     devices
230 Version 0.9.1beta, 2007/09/04 (jokedst)
231     Added command line parsing, cleaned up config stuff, doc updates
232 Version 0.9beta, 2007/08/15
233     Name change from "icon_switch", parameter file and generalizing
234 Version 0.2, 2006/09/25
235     Code cleaning, more messages
236 Version 0.1, 2006/09/24
237     (as "icon_switch") Just very basic functionality ...