Using CMake for Maemo development April 11, 2008
Posted by Florian in Linux, Maemo, Source.add a comment
Since OpenSync switched to CMake build system I had to get along with CMake in the Maemo SDK. I have to admit the fun was limited. In fact CMake has some advantages over autotools - most notably: It is much faster. One major drawback is that it is more complicated to use pkg-config with it.
I have never worked with CMake before, but OpenSync had some quite good examples how to check and support additional libraries. So I hacked cmake support for some basic Maemo components (libhildon, libosso) and Maemo-like Debian packages.
My cmake files can be found here:
http://www.kernelconcepts.de/~fuchs/maemo/
CMake itself is in the official extras-devel repository at maemo.org. Just add this line to your sources.list:
deb http://repository.maemo.org/extras-devel chinook free
The package is available for all other SDKs from the same location.
The DpkgDeb.cmake file is based on the updated DpkgDeb.cmake by Mehdi Rabah. The other ones are based on random files found in OpenSync SVN.
Preparing LinuxTag 2008 April 1, 2008
Posted by Florian in GPE, Linux, OpenEmbedded, kernel concepts.1 comment so far
LinuxTag 2008 will be great for people interested in mobile and embedded Linux. I do not know about all the projects that will have a booth there, but GPE, GPE Phone Edition, QuantumSTEP and OpenEmbedded will be there at least. The application for a booth for these projects was accepted some days ago.
LinuxTag is one of the largest and most interesting Open Source events in Europe. It is known to be a great forum for meeting all sorts of people interested in Open Source - LinuxTag attracts developers, business people and users in equal measure. It will take place in Berlin from May 28th till May 31st
A big thanks to the LinuxTag people and the booth sponsors for the opportunity to show what we are doing.
For OpenEmbedded event planning we have a wiki page that can be found here.
Maemo, S60 and a nice reward March 27, 2008
Posted by Florian in GPE, Linux, Maemo, Source, kernel concepts.7 comments
I made some progress porting the multisync-gui to Maemo. The idea is to offer an easy to use graphical user interface for synchronizing data between the Maemo based tablets and other devices. The OpenSync framework that is used offers several plugins for interfacing data sources already. The most interesting ones are the two SyncML ones (HTTP server and client) and the GPE plugin we can use for the PIM applications on the Maemo device.

Currently it is far from beeing useful, but there are some windows to make screenshots now :-) The first thing I want to archieve is to be able to sync PIM data from a Series60 cellphone.
Speaking about Series60 - I received my Forum Nokia Champion diploma today which came with a great target device for syncing experiments :) Many thanks to Nokia for this nice reward and for the great Forum Nokia Champion program and to Nils who suggested me for it!

How to make a mobile Logic Analyzer February 13, 2008
Posted by Florian in Linux, Maemo, OpenEmbedded, Source, kernel concepts.Tags: Java, Logic Analyzer, mobile, N810, Neo1973, Open Source
add a comment
Making a useful mobile Logic Analyzer is quite a challenge, but the basic needs are there. sump.org has a nice VHDL design and Java software for a 32 channel Logic Analyzer
based on a Xilinx Spartan FPGA. The whole design is GPL licensed. The current VHDL implementation is available for several Xilinx FPGA evaluation boards and uses a serial port for communication with a device (usually a PC) running the GUI software. The FPGA board takes care about sampling and buffering of the sample data before it is transferred to the controlling device.
Robert Schuster of tarent did a great job to get the Java software running on a Nokia N800 and on the Neo1973.

It was not too complicated to make the VHDL part work on an inexpensive Spartan-3E eval board. This hardware of course does not really fit the needs for two reasons: First it is too big to accompany a mobile consumer device such as a N810 or the Neo 1973. Second it does not support other input signal levels than 3.3V which is a real showstopper. A better hardware design that fits the needs based on a small FPGA industry module, a battery and some line drivers would be easy to do… but that’s something for a new story later :-) Before that I need to get a serial connection from a N810 to the board and check how the software performs on this device…
The board I used for my test was a Xilinx Spartan-3E Starter Kit.Ther is quite some room for improvement since a a major share of the FPGAs blocks are unused and it does not yet make much of use of all the nice features on the board such as external RAM, flash, display and USB.
Additional screenshots can be found at http://scap.linuxtogo.org.
LinuxToGo project news December 12, 2007
Posted by Florian in Linux, LinuxToGo, Maemo, Source.add a comment
There are some cool things going at LinuxToGo - maybe the most notable is that the Linux on Smartphones project started to become active after sleeping for more than one year. The basic idea of this project / freesmartphone.org is to create a place for collecting, defining and implementing open standards for Linux driven smartphones. That means doing for mobile phones what freedesktop.org does for the desktop environments. Its quite interesting to take a look - there is quite some content yet.
Finally there is a new project some developers (including me) were waiting for a long time. The mobile-linux project joins efforts of projects porting Linux to all sorts of mobile devices. One important change in contrast to a similar but older project is that mobile-linux aims on merging its work upstream. It does not only provide a GIT repository but also a mailinglist for discussing kernel related topics. It would be cool if some more project joined this initiative in order to get in touch with each other.
There is a new release of gpe-sudoku which includes a lot of fixes and minor improvements. It is supposed to work in a plain GTK (non-Maemo) environment too and the Maemo variant works much better now. Packages for Chinook and Bora are avalilabe from here. Please report bugs!
Enjoy….
Cardman 4000 with GnuPG October 23, 2007
Posted by Florian in Cryptography, Linux, Source, World, kernel concepts.1 comment so far
I just received my FSFE Fellowship Smartcard and it took me a while to find out how GnuPG and the Omnikey Cardman 4000 PCMCIA smartcard reader can play together. It looks like there quite some more of thease cheap devices around… so lets write down some lines about how to make it work. The procedure was tested on Ubunty Gutsy but should work on any more or less up to date Debian based system.
You need an up to date kernel 2.6 with the cardman4000_cs driver. Make sure not to have the reader in the PCMCIA slot during boot or suspend - this caused some oopses here.
PC/SC-Lite used by GnuPG does not know how handle the CM4000 directly, but you can use OpenCT as a driver for PC/SC-Lite. So first get root and install the necessary software packges:
apt-get install pcscd pcsc-tools openct
In /etc/openct.conf you need to activate the cm4000 driver - comment in the cm4000 lines to read:
reader cm4000 {
driver = cm4000;
device = pcmcia:/dev/cmm0;
};
After this edit the PC/SC-Lite configuration file /etc/reader.conf.d/openct and activate the OpenCT driver:
FRIENDLYNAME “OpenCT”
DEVICENAME /dev/cmm0
LIBPATH /usr/lib/openct-ifd.so
CHANNELID 0
Start both services:
/etc/init.d/openct start
/etc/init.d/pcscd start
If you insert the reader and a Smartcard pcsc_scan should list a reader and card like this:
fuchs@gibson:~$ pcsc_scan
PC/SC device scanner
V 1.4.9 (c) 2001-2006, Ludovic Rousseau
Compiled with PC/SC lite version: 1.4.2
Scanning present readers
0: OpenCT 00 00
Tue Oct 23 16:35:02 2007
Reader 0: OpenCT 00 00
Card state: Card inserted,
ATR: 3B FA 13 00 FF 81 31 80 45…
Now make it usable as user:
We create a group scard and add the users that should be able to use the card to it.
# addgroup scard
# addgroup <username> scard
Now create a set of udev rules to create the device node with the correct owner and permission settings:
Edit /etc/udev/rules.d/99-gnupg.rules to read:
SUBSYSTEM=="cardman_4000", ACTION=="add", GROUP="scard", MODE="0660"
ACTION==”add”, SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”04e6″, SYSFS{idProduct}==”e003″, GROUP=”scard”, MODE=”0660″
ACTION==”add”, SUBSYSTEM==”usb_device”, SYSFS{idVendor}==”04e6″, SYSFS{idProduct}==”5115″, GROUP=”scard”, MODE=”0660″
This should cover the permissions for USB CCID readers as well.
If you insert the reader again you should get a device like this:
crw-rw---- 1 root scard 252, 0 2007-10-23 15:43 /dev/cmm0
Finally log out your user, log in again to make the group changes become active and check if it works. gpg should print out some lcard inflormation like this:
fuchs@gibson:~$ gpg --card-status
gpg: detected reader `OpenCT 00 00′
Application ID …: D276000124010101000100000D0E0000
Version ……….: 1.1
Manufacturer …..: PPC Card Systems
Serial number ….: 00000D0E
Name of cardholder: Florian Boor
…
If this doesn’t work confgure gpg not to use gpg-agent, I have read some reports that this might cause trouble in combination with Smartcards. This whole text was written from memory, I might have missed some important step - bug reports and additions are very welcome.
Enjoy!
References:
[1] FSFE Cardreader Howto: http://www.fsfe.org/en/card/howto/card_reader_howto_udev
[2] OpenCT Wiki: http://www.opensc-project.org/openct/wiki/cardman

