Sakis3G: 0.2.0 Unleashed
After a severe networking problem which resulted into:
- extended downtime during 2010-04-28 (problem persists, resulting in network being dropped for 1-2 minutes, be patient and try again), and
- three days of delay against scheduled release date:
I am finally proud to announce version 0.2.0 of Sakis3G All-in-one script!!! Sakis3G script now has:
- Its own mini-site: http://www.sakis3g.org/.
- And its own Wiki, to get documentation out of my blog: http://wiki.sakis3g.org/.
- And its own forum for supporting users: http://forum.sakis3g.org/.
- Sakis3G.org is also affected by fore mentioned network problem.
- If you provide links on your site, referring to Sakis3G script, please update your site so it now points to www.sakis3g.org.
I really hope that you enjoy new version (especially those disappointed by previous versions)!!!
- By the way, if you are one of those who prefer legacy version's interface, use "--legacy" command line switch.
Release notes:
Version 0.2.0 is written from scratch and is not derived from 0.1.3 (now called legacy) series.
- Examples, user guides, instructions and documentation for legacy version, are not applicable to 0.2.0 series.
- Modified functionality:
- Drastically improved workflow and device selection procedure, allowing even more USB modems to work with Sakis3G script.
- Permanently dropped dependency to sharutils/uudecode. Script now depends on bunzip2 and tar instead.
- 9menu binary is not anymore embedded in script, still can be used if "--9menu" or "--legacy" switches are specified.
- Menu, presented by user interface, now has more options.
- Removed "replacedefaultroute" from pppd arguments since several pppd versions do not recognize it. Script anyway fixes routing table, unless newly introduced "--nofix" switch is set.
- You no longer need to again provide connection details, when using "reconnect" argument, while already connected.
- Several command line arguments and variables are now obsolete or replaced. Consult documentation for more details.
- Setting environment variables, before invoking script, is not anymore encouraged. Instead, they can now be supplied as arguments or within configuration files. Consult documentation for more details.
- Employed a workaround for "gksu" versions which do not respect arguments containing whitespace characters.
- Employed a workaround for modems not properly displaying operator's name. Name is read from operator's database, if an entry exists.
- Improved method of acquiring access to a running X session, when invoked with root privileges.
- Kernel module loading/unloading is now safer and cleaner. Script now attempts to unload module only when it refuses to unbind from device.
- Script should now be able to utilize even more USB modems (and not just option.ko handled ones).
- Modems can now be recognized and setup according to the model name they report, and not by their USB IDs.
- Script can now understand whether pppd or wvdial succeeded, or failed, into getting connected, and success is not determined upon timeouts.
- Improved desktop shortcut creation method.
- Several, less important, modifications.
- New functionality:
- A more sophisticated concept for command line arguments has been introduced for those wishing to max out possibilities.
- Command line arguments, environment variables and user input are now sanitized before being used. This should reduce risk of a malicious user passing specially crafted values.
- Several new configuration variables are now introduced, allowing better overall control over performed actions.
- Connection information is now available, while connection is still running.
- Configurations file(s) are now possible. Consult documentation for more information.
- Script can now discover available/best fitted kernel module(s) for a USB modem.
- Script can now create character device nodes, within /dev directory, when system did not already.
- Script now takes care of not becoming "stalled" when a broken USB device blocks access to USB bus.
- Script now exclusively locks "org.freedesktop.Hal.Device.Storage" before switching a device, unless "--nohal" switch is set. This improves stability by reducing simultaneous operations to storage and modem interfaces of a USB device.
- Script now utilizes "avoid_reset_quirk" available in recent kernels.
- Script now checks for mandatory dependencies being present in PATH, before proceeding with execution.
- Script now instructs pppd to use file /etc/ppp/peers/sakis3g, if file exists and pppd is used for connection.
- Script now offers a UI for selecting and setting up nearby Bluetooth devices, to be used as modems.
- When operator is not found within embedded operators' database, script attempts to fetch last APN, modem was used with, by querying modem.
- Subscribers to virtual operators are now presented their operator's name instead of network's name. This is possible by reading service provider's name from SIM card, if modem permits it.
- Script can now use "zenity", for becoming a "background process" reachable through an icon in notification area, when "helper" command line argument is used.
- It is now possible to keep "secret" a modem from HAL by using "--nohalinform" switch.
- It is now possible to request for storage part of a USB device being "eliminated", using "--nostorage" switch, which might improve stability on some devices.
- It is now possible to construct a binary free version of script, suitable for all architects. However, binary free version depends on a working Usb-ModeSwitch installation, for setting up switchable USB devices.
- It is now possible to disassemble script, back to its ingredients, by using "disassemble" command line argument.
- Script can now switch devices, not found within embedded Usb-ModeSwitch device database, if appropriate file is found within /etc/usb_modeswitch.d directory.
- Script now embeds man pages, accessible using "man" command line argument.
- Script now allows UTF-8 translations, so that localized versions appear in the future. A translation is currently available only for Greek language.
- Several, less important, newly introduced functionality.
- User interface:
- Sakis3G now has its own Tux icon. Icon is used when creating desktop shortcut, unless an operator logo is available and user selects that one instead.
- Script can now use anyone of "kdialog", "zenity", "Xdialog", "9menu", "whiptail" and "dialog" for displaying user interface.
- If none of them is available, script can resemble an elementary text-mode user interface through shell builtin functions, if "--interactive" switch is set.
- Balloon notifications can now appear, when "--balloons" switch is set, using libnotify.
- All options available through user interface, are available as command line arguments as well. The opposite statement is not true.
- Translations are not used when:
- using "Xdialog" or "9menu" as user interface.
- displaying OSD messages.
- Switch "--notranslate" is set.
- Embedded Usb-ModeSwitch:
- Upgraded to version 1.1.2alpha.
- Device database upgraded to 2010-04-18 version.
- It is now possible to compile it for your platform, by using "recompile" command line argument, or by selecting equivalent UI option.
- It is now possible to directly reach embedded Usb-ModeSwitch binary, by using "usb_modeswitch" command line argument.
- Operators' database:
- Entries available in legacy version were migrated to 0.2.0 version.
- You can now connect to any operator, even if not found within operators' database. You just need to know APN details.
- It is not anymore possible/required to add operators by modifying script.
- Modified following networks:
- 20201: Cosmote (Greece): Included an extra APN.
- 20209: Wind (Greece): Added "Q" APN.
- 20210: Wind (Greece): Added "Q" APN.
- 26202: Vodafone (Germany): Added "1und1" APN.
- 26204: Vodafone (Germany): Added "1und1" APN.
- 26209: Vodafone (Germany): Added "1und1" APN.
- 26801: Vodafone (Portugal): Added "ZON" APN.
- Added the following operators:
- 23430: T-Mobile (United Kingdom)
- 23802: Telenor (Denmark)
- 34001: Orange (French Caraibes)
Sakis3G 0.2.0 closed beta ended
Closed beta phase ends in like two hours. I need to thank people who participated, especially those who slept less because of me.
Version 0.2.0 will be released on 2010-04-27 22:00 GMT Update: I had to postpone until tonight 2010-04-28 21:00 GMT.
I know, it sounds like 2010-04-28, but I got some nice excuses.
Stay tuned for more happy days.
Sakis3G 0.2.0 closed beta initiated
Version 0.2.0 is mostly finished. Critical issues have been corrected and operation is stable. Being a complete re-write, counting 7,6k lines, I hesitate to directly release it to public. For this reason, a closed beta phase initiates today and will hopefully end by 2010-04-26.
People, eligible to participate in closed beta, will soon (if not having already) receive their invitation letter.
If you feel like participating, apply by making a comment on this post and I will contact you back through email.
Scheduled release date of 0.2.0 version of Sakis3G script is 2010-04-27, unless a release critical issue has shown up.
Dodging Wordpress comment spammers
I admit: Allowing anyone to post comments is bad practice. Though, I've got my reasons to stand my ground. I've many times read something on a blog and to some of them I even had something to add. Could potentially help blog's author or future visitors by sharing my own experience, or request a solution to one of my problems by posting a question. Guess what? I am so lazy that I rarely go through registration procedure, just to enable me posting a comment.