- Homepage: http://iki.fi/tjyrinki/
- Founder of Ubuntu Finland, Debian Developer, translator in Gnome, Ubuntu, Pidgin etc.
When setting up my second FreeRunner to use Debian, I took care to document how I had ended up with the Debian system I've been using. At the same time, I made some of my ugly hacks a bit less ugly. I have been also working on packaging the software I use in Debian, if they are not available there (like literki, woosh).
Notes on What I've Changed More Recently
The instructions at the bottom of the page were a one-time effort in March 2010. After that I've done a great deal of changes, so they are not up to date what I'm using. Nevertheless, they will certainly contain interesting information to start making Your Debian instead.
Current File System
I've switched to three partitions. A very small ext2 boot partition, 1.5GB ext4 partition for main Debian and the rest of the 8GB as ext4 for data (maps, music, etc.). Boot partition is ext2 because Qi doesn't support ext4.
Current Hardware Control
The instructions used openmoko-panel-plugin as an example, but in reality I prefer finger usable applications so at the time I used a heavily modified, but alas non-free / freedom uncertain mokoservices.py.
I have now written a hackish, but fast C application of my own to handle both screen lock, application switching (getting rid of matchbox top bar) and hardware control as used to be provided by mokoservices.py and openmoko-panel-plugin. Unlike my previous very simple neolockscreen, it's "always on" and therefore appears instantly on the screen. It is not very ready for general consumption, but I love it myself :P Sources are GPLv3, I have not had time to polish / make it less awful for a while. https://github.com/tjyrinki/tihos
GTK: I've switched from Darklooks theme to original "Moko" theme that was developed for Om2007.2. Sources for it can be found in svn (browse, binaries) repositories. The benefit is tremendously faster GTK button display.
Matchbox: No top bar anymore, tihos gives full control to switching and closing windows. Likewise, I'm not using fbpanel anymore either, all applications are full screen.
Zhone: I've modified the default zhone theme with edje_decc and edje_cc tools so that I've changed the background and made all icons black-and-white.
Current Phone Stack
I've now finally upgraded my main (daily) FreeRunner phone to current stack in Debian 6.0 (squeeze) + pkg-fso without breaking anything! "Current" meaning still FSO1 (fso-frameworkd, not fso-gsmd et cetera), but still 1-1.5 years newer than before.
Earlier my attempts at upgrading resulted in not registering into network and no time to debug what went wrong - even if at the same time the same stack worked on my other, development FreeRunner.
I'm still doing my own tweaks to mixer settings, but otherwise using all defaults, including frameworkd.conf - except that I also uncommented the fso-abyss line there since it seems to work as well and is the newer muxer.
The instructions install the default Debian FreeSmartphone.Org stack, ie. the latest one that has been packaged. I however use older one myself, which is roughly the one that used to be in official Debian squeeze repositories in 2009. It has its own problems, but in the "real use Neo" I've had more problems when I've tried to upgrade, so I've stayed at one that mostly works (but occasionally needs restart). The binaries I have in use:
Note on Keyboard Setup
When writing the instructions, I did a last minute change to .keylaunchrc when my Debian sid had for some reason weird bindings to the physical buttons. The "Down" binding obviously causes other problems when trying to move downwards with the keyboard... so in practice you should do some keyboard reconfiguration magic (sorry, I'm not sure what I did) and remove the Down binding from .keylaunchrc
Cross-compiling own kernel
Just in case the pkg-fso kernel is not enough for you: http://paste.debian.net/120048/
The instructions are divided in three sections, the two first (Nice and Ugly) you are probably quite interested in. The Bad thing is needed as well by the other configuration but you may choose to compile the software yourself. This series of commands and configuration is aimed for people who wish to have similar setup, or simply learn potentially very useful things if the default Debian setup is too dull. The images show a running setup.
These instructions were written in March 2010. I like my current setup more, read about changes done after these above.
The Nice Part
Install Debian: http://wiki.debian.org/DebianOnFreeRunner
Boot Neo, bring up the keyboard with AUX and then:
# ctrl-alt-x to bring up terminal passwd # select your root password
Now you can connect to Neo from your desktop as root.
# Now attach the USB cable and check that connection between your desktop and Neo works. ssh firstname.lastname@example.org # Fix PATH echo export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin >> /root/.bashrc exit ssh email@example.com # If you installed with TASKS="ALL", the following should already be # installed: # wicd, navit, tangogps, midori, pidgin, mokomaze apt-get install wicd navit tangogps midori pidgin mokomaze # intone as E17 dependent only in sid # gnome-bluetooth did not install from testing as well at the moment apt-get install intone gnome-bluetooth # Settle down for more stable stuff sed -i '/experimental/d' /etc/apt/sources.list sed -i 's/sid/testing/' /etc/apt/sources.list apt-get update # More of my setup apt-get install fbpanel literki woosh mtpaint neon leafpad abiword gnumeric \ xserver-xorg-video-glamo synaptic gnome-games lxterminal libgtkstylus \ gnome-themes-extras keylaunch omhacks gpsd # Add gpsd device sed -i 's/DEVICES=""/DEVICES="\/dev\/ttySAC1"/' /etc/default/gpsd # Take glamo into use sed -i 's/fbdev/glamo/' /etc/X11/xorg.conf exit
The Ugly Part
The Ugly and Bad parts are about transferring and unpacking ready-made files to Neo. Please grab the files containing configuration and binaries from:
# Transfer the stuff needed in Ugly and Bad parts to Neo and SSH in # (of course, you can also wget them directly at Neo) scp custom_config.tar.gz custom_binaries.tar.gz fbpanel_5.6-1_armel.deb firstname.lastname@example.org: ssh email@example.com mv /root/.xsession /root/.xsession.debianoriginal # "Ok" changes, human-readable files and an image. My copyrighted under either # original license (if modified from upstream) or BSD. tar -C / -z -x -v -f custom_config.tar.gz
Files in custom_config.tar.gz explained:
- /etc/literki: my literki configuration which diminishes the active area to not overlap with Zhone's bottom right buttons, adds ä,ö,å letters and adds another "X" behind Fn which closes current window
- /root/.fbpanel/default: my fbpanel configuration, cat for details. Note that Debian logo menu's active area is four times the width of the actual (visible) icon.
- /root/helpers: quite a stub directory, but in reality I have loads of stuff here and have added it to path
- /root/.gtkrc-2.0: setting Darklooks theme into use
- /root/.keylaunchrc: my personal keylock application to AUX and suspend helper to Power button
- /root/.panel-pluginrc: openmoko-panel-plugin customization and disabling of the problematic buttons plugin
- /root/.xsession: this is the big one importance-wise, crude hacks to have fbpanel and literki nicely behaving among else. quite well commented.
- /root/debian-swirl.png: Debian logo
- /usr/local/bin: fbpanel, literki and lockscreen helpers
- /usr/share/themes/NeoSpecial: my matchbox theme
The Bad Part
This is the really bad stuff, binaries from random source (me)! Luckily you can compile these three pieces of software easily yourself as well, although that means you need to install development environment on the Neo as well.
# Bad changes: # - literki compiled with 02_optional_reduce_to_plain_keyboard.patch that # I've included in the Debian literki packaging sources: apt-get source literki # - neolockscreen, sources at # http://people.debian.org/~timo/NeoFreeRunner/neolockscreen.tar.gz tar -C / -z -x -v -f custom_binaries.tar.gz # From upstream tarball, http://fbpanel.sourceforge.net/, with checkinstall dpkg -i fbpanel_5.6-1_armel.deb
poweroff # Boot!