User:TimoJyrinki

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m
(fixed link to cross-compiling kernel instruction, seems like the "never expire" pastebin entry expired)
 
(27 intermediate revisions by one user not shown)
Line 1: Line 1:
 
* Homepage: http://iki.fi/tjyrinki/
 
* Homepage: http://iki.fi/tjyrinki/
 
* Founder of [http://ubuntu-fi.org/ Ubuntu Finland], Debian Developer, translator in Gnome, Ubuntu, Pidgin etc.
 
* Founder of [http://ubuntu-fi.org/ Ubuntu Finland], Debian Developer, translator in Gnome, Ubuntu, Pidgin etc.
 +
 +
= My Debian =
 +
 +
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).
 +
 +
If curious, you may check out my directory full of random Openmoko stuff: http://people.debian.org/~timo/NeoFreeRunner/
 +
 +
== Notes on What I've Changed More Recently ==
 +
[[Image:Debian10.png|240px|right|thumb|Zhone running in full screen, literki keyboard swiped to be visible]]
 +
[[Image:Debian11.png|240px|right|thumb|AUX button brings up a very fast, finger usable menu for application switching, screen locking etc. Moko GTK theme from Openmoko archives speeds up rendering.]]
 +
[[Image:Debian9.png|240px|right|thumb|Second page of the tihos app. Hardware switches (gprs, wlan, usb host mode) etc.]]
 +
 +
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 [http://www.freeyourphone.de/portal_v1/viewtopic.php?f=21&t=295&p=17308#p17308 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
 +
 +
''' Current Theme '''
 +
 +
GTK: I've switched from Darklooks theme to original "Moko" theme that was developed for Om2007.2. Sources for it can be found [http://svn.openmoko.org/trunk/src/target/OM-2007.2/libraries/moko-gtk-engine/ in svn] ([http://docs.openmoko.org/trac/browser/trunk/src/target/OM-2007.2/libraries/moko-gtk-engine browse], [http://downloads.openmoko.org/repository/Om2008.8/armv4t/ 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.
 +
 +
<span id="currentphonestack" name="currentphonestack"></span>
 +
'''Current Phone Stack '''
 +
 +
NEW 10/2010:
 +
 +
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.
 +
 +
''' 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://people.debian.org/~timo/NeoFreeRunner/crosskernel
 +
 +
== Installation 03/2010 ==
 +
 +
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.
 +
 +
[[Image:Debian_timo1.png|240px|right|thumb|Zhone, openmoko-panel-plugin and fbpanel menu]]
 +
[[Image:Debian_timo2.png|240px|right|thumb|TangoGPS, Literki keyboard and matchbox window switcher]]
 +
 +
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:
 +
<pre>
 +
# ctrl-alt-x to bring up terminal
 +
passwd
 +
# select your root password
 +
</pre>
 +
 +
Now you can connect to Neo from your desktop as root.
 +
<pre>
 +
# Now attach the USB cable and check that connection between your desktop and Neo works.
 +
 +
ssh root@192.168.0.202
 +
# Fix PATH
 +
echo export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin >> /root/.bashrc
 +
exit
 +
ssh root@192.168.0.202
 +
 +
# 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
 +
</pre>
 +
 +
'''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:
 +
 +
http://people.debian.org/~timo/NeoFreeRunner/mydebian/
 +
 +
<pre>
 +
# 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 root@192.168.0.202:
 +
 +
ssh root@192.168.0.202
 +
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
 +
</pre>
 +
 +
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.
 +
 +
<pre>
 +
# 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
 +
</pre>
 +
----
 +
<pre>
 +
poweroff
 +
 +
# Boot!
 +
</pre>

Latest revision as of 12:37, 30 January 2012

[edit] My Debian

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).

If curious, you may check out my directory full of random Openmoko stuff: http://people.debian.org/~timo/NeoFreeRunner/

[edit] Notes on What I've Changed More Recently

Zhone running in full screen, literki keyboard swiped to be visible
AUX button brings up a very fast, finger usable menu for application switching, screen locking etc. Moko GTK theme from Openmoko archives speeds up rendering.
Second page of the tihos app. Hardware switches (gprs, wlan, usb host mode) etc.

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

Current Theme

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

NEW 10/2010:

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.

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://people.debian.org/~timo/NeoFreeRunner/crosskernel

[edit] Installation 03/2010

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.

Zhone, openmoko-panel-plugin and fbpanel menu
TangoGPS, Literki keyboard and matchbox window switcher

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 root@192.168.0.202
# Fix PATH
echo export PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin >> /root/.bashrc
exit
ssh root@192.168.0.202

# 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:

http://people.debian.org/~timo/NeoFreeRunner/mydebian/

# 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 root@192.168.0.202:

ssh root@192.168.0.202
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!
Personal tools