Currently running Meego/Mer/Nemo/etc on the N900 requires a number of closed blobs.

This message is aimed at discussing the efforts to replace those blobs and to make people aware of replacements for them where such things exist or are being done. (the ultimate aim would be to have as little binary code as possible I guess)

1.Bluetooth and WiFi settings modules (wl1251-cal-bin, libppu-bin, libwl1251-bin, sysinfod-rx51)
Code is here
http://maemo.org/community/maemo-developers/replacement_for_bluetooth-sysinfo-and_plans_for_libcal_and_wl1251-cal/
and here
http://maemo.org/community/maemo-developers/replacement_for_wl1251-cal/
that will replace all of the above mentioned packages and do complete bluetooth and WiFi wl1251 initialization.
Will need cleanup and creation of packaging though.
Replacing this stuff would allow the kernel drivers to be cleaned up so that they don't need to expose non-standard APIs anymore (e.g. the Nokia/Maemo specific Netlink stuff).

2.Pulseaudio (pulseaudio-modules-nokia)
Newest Mer/Nemo PulseAudio does not use these blobs anymore. However, there may still be value in identifying which algorithms exist in these blobs (including speaker protection) and writing (or finding) open-source replacements where necessary/possible.

3.BME (contextkit-maemo-battery-rx51-bin and bme-rx-51-bin)
Code is here (including kernel drivers and stuff) to completly replace bme-rx-51-bin and its contents
https://gitorious.org/rx51-bme-replacement
contextkit-maemo-battery-rx51-bin may need to be updated to work with this (source for contextkit-maemo-battery-rx51-bin is available but it was provided as pre-compiled because it links to libbmeipc which for various reasons didn't have a public -dev package) Would probably need a bit of cleanup to fit Mer/Nemo and its kernel and its not 100% clear to me if this thing is 100% feature complete or not (e.g. are there things in the BME CAL area that need to be handled) Advantage of using this is that there is no longer a need to use a big binary blob that no-one understands.

4.CAL (libcal-rx-51-bin)
Replacement exists here
https://gitorious.org/cal
that should be a drop-in replacement for libcal-rx-51-bin.
Will need cleanup/creation of makefiles, packaging etc though.
See #1 for the advantages of replacing this.

5.Camera (gst-nokia-camera)
The camera as currently implemented uses a binary blob (libomap3camd), a module that links to it (the module is open source but the headers for libomap3camd are not available so the module cant be rebuilt) and a couple other modules that are 100% open.
Best way to replace this would be to port the 100% open FCam-n900 work.
That or write a new module that does similar things to libomap3camd only open.
Advantage of replacing this is that we no longer need binary omap camera libraries (presumably they are closed because TI wrote the code for them, not Nokia)

6.GPS (location-adaptation-rx-51, liblocation-headers)
GPS is handled through the cellular modem over ISI (same as calls, SMS etc)
There is a header file out there (in a Nokia QT SDK among other places) called pn_location_isi.h that contains details of the ISI/phonet packets and data necessary to talk to the GPS chip. As far as I know, no-one has yet started working on an open GPS setup for the N900. The way to replace this bit then would be for someone to take pn_location_isi.h and from there write a new GPS system (or a plugin for an existing GPS system) Advantage for replacing this is possibility to plug directly into existing GPS system without all the extra blobs being required.

I might have another poke at the GPS stuff (e.g. location-daemon, liblas, libisi) if I get some free time to do it.

7.GPU (ti-omap3-sgx)
Again, as far as I know no-one is working on open source PowerVR drivers (although the FSF has said its a high priority project due to the number of mobile devices out there with PowerVR GPUs in them). Advantage of replacing this would be that we are totally independent with regards to kernel and X version etc.


Reply via email to