[Angstrom-devel] Google Summer of Code ideas for Angstrom
utx at penguin.cz
Wed Mar 5 19:28:57 CET 2008
Jake Thebault-Spieker wrote:
> I've been working on coming up with ideas that Angstrom could use for it's
> Google Summer of Code application. These are the ideas I came up with, some
> of which were suggested by some people in the community(I think mickeyl,
> possibly others as well).
> The ideas are:
> First time install wizard/config wizard:
> -Walks through initial configuration/includes explanations
> -More Timezones
> -Pretty-fied to me more user friendly
> GUI package manager
> -One that functions(doesn't crash when trying to install more than
> one package)
> -Maybe w/ opkg
These two projects may be useful, but I guess that they are too minor
projects for SoC. You can even grab parts of code from other projects.
> GUI installation tool(from NAND?)
> -For ease of install
> -Is this possible?
Do you think extensions and improvement of u-boot to become generic
> GUI network config(smart)
> -Only configures interfaces it detects, non-generic
> -Easy for beginners, so as not to get confused
I guess we don't need yet another GUI tool on top of broken networking
design. ifup/ifdown works well for static networks, but has no support
for dynamic environments and there is nothing to replace it yet.
Implementing following (straightforward for beginners) complex scenario
needs much more than only GUI tool. It needs completely new design.
Imagine that you are sitting on your desk and you want to continue with
0. Ethernet cable was removed from the device. What to do now? (needs
support for hotplug - already implemented)
1. Connect to private AP (implement searching of best fit default
2. Out out of signal? (implement signal monitoring)
3. Try to find any free Wi-Fi AP (implement WLAN network scanning)
4. If not found, fire up Bluetooth, check whether mobile phone and GSM
signal are available (implement conditional actions and GSM modem
5. If yes, run pppd with on-demand GPRS networking (implement on demand
networking and PPP support)
6. If not, go offline (implement Online/Offline signalling)
It needs general discussion before starting to implement:
- Should it be based on hal? And should be hal the technology for OE to
- Should OE use upstream hal?
- Should OE use cut-down hal version?
- Should OE use uHAL (micro hal), small and device specific daemon
providing device independent interface?
- Should it duplicate design of NetworkManager (only one network
active in one moment)?
- If no:
- Should it use script based ifup/ifdown?
- Should it use D-Bus to notify users about change?
- How to solve huge overkill of any actions (fork, [unswap,] start
shell interpreter, start binary, change setup)
There are several tools, which try to do the same, but none of them is
really usable on PDA:
- NetworkManager: Needs too much memory for mobile devices, has strong
design limitation (only one network active in one moment) and cannot be
the only networking solution provided for the device.
- GPE networking setup: Helper for ifup/ifdown. Can be improved to work
well for static setups. Has design limitation, which does not allow
- WPA supplicant: Specialized application. Has D-Bus support to notify
about changes in WLAN networks. Future design of wireless networking in
kernel will require similar daemon running. Can be part of future
> Any feedback would be appreciated. I don't know if this is functionality
> Angstrom is looking for, but it's what I came up with.
I can image two projects:
- HAL/D-Bus integration for mobile devices
- Make GPE really usable
HAL/D-Bus integration for mobile devices
Do some benchmarks and make a decision regarding to HAL (see above).
Customize, implement or design and implement specific D-Bus interfaces
needed for portable devices:
- Network hotplugging
- Card swapping
- Screen rotation
- Backlight control
- Maybe phone interface communication
- Maybe positioning device interface
- Maybe camera interface
- Special keys launching special actions
- Headphones handling
- Remote control
- IrDA control
- Idle, auto sleep, sleep blocking
Most of these proposals already exist from notebook world. Some of them
needs to be created.
Benefits of such design:
- Reuse of existing design will allow to use conforming applications
- Applets don't need to poll to get status updates
- Control can be done from command line or other applications without
confusing of applets
- No problem with permissions
GPE may be improved in many ways:
- D-Busify GPE (see above).
- Fix things broken by design (for example GPE applications menu issues
system wake-up 10 times per second for no reason).
- Fix usability with and without stylus.
- Design new space saving widgets.
- Fixes of GTK+ regarding of fixed spacing.
- Fix unusable applications.
- Fix failures.
For more ideas see:
More information about the Angstrom-distro-devel