-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
321 lines (319 loc) · 18.6 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
History of USB_ModeSwitch
=========================
Version 2.5.2, 2017/12/31
Bugfix release: fixed additional MessageContent parameters not working,
reported by Frank Schmirler (see
http://draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=18369 );
fixed "early crash" when killed before libusb context initialization
(see https://bugzilla.redhat.com/show_bug.cgi?id=1358472 ), reported
by Lubomir Rintel;
fixed bad string reference, reported by Lubomir Rintel, (see
http://draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=18238 );
fixed detection of systemd if /sbin/init is a cascaded symlink
(see http://draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=18218 );
fixed quirk in help message from usb_modeswitch binary
Version 2.5.1, 2017/08/06
New parameter "HuaweiAltMode", uses an alternative Huawei standard bulk
message which will either provide NCM (newer modems) or plain PPP ports
(older modems); new option in the global configuration file
"HuaweiAltModeGlobal", allowing easy override of "HuwaeiNewMode" with
"HuaweiAltMode"; reworked USB configuration switching, configuring a
device reset first before setting the target configuration; improved
driver detachment, now taking all configured interfaces into account
Version 2.5.0, 2017/01/17
ATTENTION: Parameter transmitted from udev now reduced to %k (kernel
name), however, rules file parameters can be '%b/%k' or '%k' - this
fixes issues with parameter handling by the systemd unit file;
remove endpoint reset ahead of bulk message transmission, only reset
if endpoints are actually stalled, helping with quirky device behaviour
(see www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?f=2&t=2582 );
stability fix by making a buffer in the config parser static, preventing
problems seen in Fedora (thanks to Lubomir Rintel for patches and hints
regarding the three previous issues); removed premature driver unbinding
in wrapper which could disrupt certain devices already in target mode
(reported by Aleksander Morgado); improved check for determining install
mode (essential with generic config files present, e.g. 12d1:#linux)
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 ...