[maemo-community] Maemo Community Awards

From: Pali Rohár pali.rohar at gmail.com
Date: Mon May 28 12:35:30 EEST 2012

my name is Pavol Rohár, I'm from Slovakia and people from Maemo 
Community know me under name Pali. I'm using nickname Pali as my 
maemo.org and TMO account. Also I'm Pali on #maemo IRC Freenode 
channel. I'm Maemo/N900 user and developer for 2 years.

I'm applying for device N950 in category Community Awards for my 
work which I done for people around Maemo and Nokia devices.

For Maemo/N900 I'm developing more applications. All are open 
source with free license. Here is list of some:

* Fanoush BootMenu:
It is on-screen bootmenu which can start other init script/daemon 
then default /sbin/init stored in maemo rootfs. For example it 
can boot Maemo system from eMMC/SD card or start Recovery Console 
Mode. Also it is essential script for BackupMenu application. 
Original version was written by Fanoush, now I'm maintaining it. 
I fixed more bugs, added support for USB mass storage support or 
better USB network mode (with dhcp/avahi support).
Download page: 
Package page: http://maemo.org/packages/view/bootmenu/
Garage page: https://garage.maemo.org/projects/bootmenu/
TMO thread: http://talk.maemo.org/showthread.php?t=74720

* Recovery Console Mode:
This is menu entry for BootMenu which launch framebuffer recovery 
console mode. It is full linux console under framebuffer, so it 
can be used for hotfixing problems. Useful when Maemo system is 
unbootable, but BootMenu will start and allow user to choose boot 
Package page: http://maemo.org/packages/view/recovery-boot/
TMO thread: http://talk.maemo.org/showthread.php?t=72726

* Kernel power:
I think everybody know what is Linux Kernel. Kernel Power has 
enabled additional modules (ipv6, iptables, other filesystems), 
usb host mode, overclock and more patches from upstream or other 
community people (who fixed more kernel problems, thanks 
Freemangordon!). I took maintaining of Kernel Power after Titan 
did not have time for it. Last version v50 of Kernel Power is 
stable, has fixed more problems and very popular in community.
Download page: http://maemo.org/downloads/product/Maemo5/kernel-
Package page: http://maemo.org/packages/view/kernel-power-
Garage page: https://garage.maemo.org/projects/kernel-power/
TMO thread: http://talk.maemo.org/showthread.php?t=83118

PS: I think everybody knows that last version is not in Maemo 
Extras repository (and on Download page) due to some repository 
problems. After year it is still not fixed and I cannot promote 
package. I will be very happy if somebody can fix repository 
problems and promote v50 to Extras...

* bq2415x charging kernel module:
Battery charging in Nokia N900 is done by non-free user-space 
closed undocumented unconfigurable application crap BME. I'm 
working on proper charger driver in kernel which will charge 
battery and support boost mode for usb host mode. This will be 
kernel open source replacement for BME. When kernel driver will 
ready it will be included in kernel-power.

* bq27x00 battery kernel module:
bq27200 chip which is in Nokia N900 is battery monitor chip. It 
reports current, voltage, capacity and other values. On Maemo 
system this chip is not used, because Maemo use only BME for 
battery support and BME counting battery capacity somehow (nobody 
know how). But other applications can use information from this 
chip and this kernel driver. I updated this kernel driver which 
use standard power supply kernel interface and I upstreamed all 
changes into upstream kernel. Driver is available in kernel power 
but disabled by default because cannot live together with BME. 
Either BME or bq27x00_battery driver can be started.

* U-Boot for Nokia N900:
U-Boot is bootloader which can boot other bootloaders or linux 
kernel. With previous code by Ali I'm doing on upstreaming U-Boot 
Nokia N900 support. U-Boot is essential part for supporting 
booting other systems then Maemo on N900. It is maybe only one 
solution for dual booting. Now is U-Boot stored in mtd kernel 
area (and loaded by NoLo), but maybe one day U-Boot will replace 
closed source unconfigurable NoLo bootloader. Current version has 
working on-screen BootMenu which is useful for dual boot for 
choosing system.
TMO thread: http://talk.maemo.org/showthread.php?t=81613

* Open source cold flasher:
I decrypted, disassembled and reverse engineered protocol (it was 
not easy) which is used for cold flashing Nokia N900. Cold 
flashing is flashing/starting new bootloader when previous in 
N900 was erased/damaged. Without bootloader (X-Loader or NoLo) 
device will not start and it is not possible to flash via normal 
method. Cold flashing sending bootloader image via USB at early 
board startup. I created open source tool which can cold flash 
N900 bootloader (both X-Loader and NoLo) as equivalent to 
proprietary functionality in flasher-3.5 tool. My tool is 
complete, I think stable and working fine. Maybe it can be one 
day merged with 0xFFFF tool (0pen Free Fiasco Firmware Flasher) 
for regular flashing.
TMO thread: http://talk.maemo.org/showthread.php?t=80840

* Open source getbootstate:
I reverse engineered closed source Nokia program getbootstate. 
This program is started at early booting and is responsible for 
entering correct boot state. It is critical part of booting, 
because can shutdown device (MALF state) and is executed before 
init daemon. So this program can decide if N900 is not bootable. 
I created open source alternative to this program (based on 
opened Meego/Harmattan sources and reverse engineered data) which 
should work as closed program. So if my open source alternative 
decide that N900 is not bootable other people can look into 
source code and find real reason why device is not bootable.
TMO thread: http://talk.maemo.org/showthread.php?t=73792

* Stratagus & Wargus:
Stratagus is open source game engine for strategic games. Wargus 
are lua scripts and other helper programs for Stratagus which 
clone old and famous Warcraft II game by Blizzard. So Wargus is 
open source clone of Warcraft II game. Now I'm current maintainer 
of both projects Stratagus and Wargus and I ported them to Nokia 
N900. Upstream projects have N900 support included so code is not 
divergented and version is releasing for Desktop and N900 
Package page: http://maemo.org/packages/view/wargus/
TMO thread: http://talk.maemo.org/showthread.php?t=60678

* Locale resolver config:
Locale recover is Nokia database (with own format) where is 
stored all languages which appear on "first run" welcome 
configure screen. Locale resolver config is small but powerful 
script which can modify this database and add new language. By 
default only languages supported by Nokia are on this list (so 
3rd languages cannot be chose at welcome screen). This script can 
be added to debian/postinst of 3rd language packages.
Package page: http://maemo.org/packages/view/locale-resolver-
TMO thread: http://talk.maemo.org/showthread.php?t=81848

* Slovak localization:
I'm Slovak, so I contributed also to Slovak localization project 
(but big thanks to Roman who translated majority of strings!). I 
also added above Locale resolver config, because Nokia did not 
included Slovak language in their language database.
Download page: http://maemo.org/downloads/product/Maemo5/slovak-
Package page: http://maemo.org/packages/view/slovak-l10n/
Garage page: http://garage.maemo.org/projects/slovak-l10n/

* mDNS support:
I created package which install and configure Maemo system for 
mDNS support. mDNS is multicast DNS and translate host name to ip 
addresses without central authority. Useful when connecting from 
N900 to computer without need to know IP address (just hostname).
Package page: http://maemo.org/packages/view/mdns-support/
TMO thread: http://talk.maemo.org/showthread.php?t=82397

* Battery widget:
Battery is simple desktop widget which show current status of 
battery. I changed code of this widget to support both values 
from BME and also from bq27x00_battery kernel module. Widget is 
useful for usb host mode when BME must be stopped (it will read 
values from bq27x00_battery driver and show battery status also 
when usb host mode is active)
Download page: http://maemo.org/downloads/product/Maemo5/battery/
Package page: http://maemo.org/packages/view/battery/
TMO thread: http://talk.maemo.org/showthread.php?t=57975

I created patches for USSD project which fixed some problems. For 
example to show small ussd dialog as reply in Phone application 
(instead starting external qussd application and wait until is 
started) or fixing problem with freezing desktop widget (when 
widget waiting for bad process, so create unix zombies).

OMP is open media player which is replacement for closed nokia 
player. I sent some patches which added support for N900 wired 
headset button and auto pause media player when bluetooth or 
wired headset is disconnected. Both features are implemented in 
OMP and do not need to install any other applications/daemons 
(like headphoned or headset-control).
TMO thread: 

Community SSU:
Except Extras applications I'm also developer of small CSSU team. 
I contributed more patches to CSSU. Some of my CSSU 

* Calculator:
I written open source replacement for original closed Nokia 
Calculator. My replacement support portrait mode and is written 
in Qt. Calculator is stable and is included in CSSU for long 
Git repository: http://gitorious.org/community-ssu/osso-

* TV-out widgets:
Based on previous Ville work I created control panel and status 
menu applet for configuring additional TV-out properties like 
16:9 wide mode or scaling output. Status menu applet is visible 
when TV-out connection is active.
Git repository: http://gitorious.org/community-ssu/maemo-tvout-

* ke-recv:
ke-recv is daemon responsible for auto mounting MyDocs (eMMC), SD 
card and now also usb flash disks in usb host mode. I changed ke-
recv code to support:
- other filesystems (original version support only FAT32, so SD 
card had to be FAT32)
- more partitions then one (original version mount only first 
partition, now mount all)
- auto mount usb disks in usb host mode (original version did not 
care about usb disks)
Git repository: http://gitorious.org/community-ssu/ke-recv

* Others:

For Maemo Community I got special piece of Nokia software which 
was closed until Dec 2011. It is Nokia Certification Manager 
control panel plugin which is now open source under LGPL license. 
Before plugin was closed source and had very critical bug: It 
showed blacklisted certificates as valid! Now this bug is fixed 
and after I got source code, Nokia decided to open this plugin 
and publish source code to gitorious.
TMO announcement: http://talk.maemo.org/showthread.php?t=79957
Public git repository: http://gitorious.org/maemo-5-certificate-

Also useful for open source community are my scripts which 
created list of all open and closed maemo fremantle packages. 
More information is in TMO thread on 
These scripts were used to generate wiki page about all closed 
packages in Maemo 5 Fremantle system: 
Some of packages on this page were opened and for some same 
version as is in Fremantle can be found in gitorious git 
repositories (see green packages).
Before, there was no page or list of all real closed source non 
free package in Fremantle. And for open source community is 
needed to know what parts of system are open and what not.

Except Maemo Extras/CSSU applications I'm active person in TMO 
discussions, on #maemo IRC channel and via my private email. I'm 
trying to help people if they asked me or have some problems.

In future I want to continue developing and maintaining above 
applications, finish N900 kernel battery charging driver, develop 
and upstream N900 port of U-Boot and contribute to CSSU.

If I get new device I will not stop doing for Maemo 5/Nokia N900. 
Because Nokia N900 is really brilliant :-)

Pali Rohár
pali.rohar at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.maemo.org/pipermail/maemo-community/attachments/20120528/f57f9090/attachment.pgp>
More information about the maemo-community mailing list