User:TimoJyrinki

From Openmoko

Revision as of 15:34, 7 June 2010 by TimoJyrinki (Talk | contribs)

Jump to: navigation, search

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

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.

Notes on What I've Changed Since 03/2010

The instructions below 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 Hardware Control

The instructions used openmoko-panel-plugin as an example, but in reality I prefer finger usable applications so I used a heavily modified, but alas non-free / freedom uncertain mokoservices.py.

[06/2010] I have now written a hackish C application of my own to handle both screen lock, application switching and hardware control as used to be provided by mokoservices.py and openmoko-panel-plugin. It is not very ready for general consumption, but I love it myself :P Sources are GPLv3, I may publish them for reference later or simply a send a copy on request.

Current Theme

I've switched from Darklooks theme to original "Moko" theme that was developed for Om2007.2. I'm currently not exactly sure where I've copied it from, but probably unpacked some .opk package in Openmoko repositories. The benefit is tremendously faster GTK button display.

Current Phone Stack

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 in official Debian squeeze repositories, or used to be. 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:

  • fso-frameworkd_0.8.5.1-1_all.deb
  • fso-usaged_0.9.1+git20091016-2_armel.deb
  • libgsm0710-0_1.2.0-1_armel.deb
  • libgsm0710mux0_0.9.0-1_armel.deb
  • libfso-glib0_0.2.1-2_armel.deb
  • libfsobasics0_0.8.9.9-1_armel.deb
  • libfsoframework0_0.2.3.1-1_armel.deb
  • libfsotransport0_0.9.5.9-1_armel.deb

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

Installation 03/2010

Debian timo1.png
Debian timo2.png

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://users.tkk.fi/~tajyrink/moko/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://users.tkk.fi/~tajyrink/moko/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

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

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.

Notes on What I've Changed Since 03/2010

The instructions below 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 Hardware Control

The instructions used openmoko-panel-plugin as an example, but in reality I prefer finger usable applications so I used a heavily modified, but alas non-free / freedom uncertain mokoservices.py.

[06/2010] I have now written a hackish C application of my own to handle both screen lock, application switching and hardware control as used to be provided by mokoservices.py and openmoko-panel-plugin. It is not very ready for general consumption, but I love it myself :P Sources are GPLv3, I may publish them for reference later or simply a send a copy on request.

Current Theme

I've switched from Darklooks theme to original "Moko" theme that was developed for Om2007.2. I'm currently not exactly sure where I've copied it from, but probably unpacked some .opk package in Openmoko repositories. The benefit is tremendously faster GTK button display.

Current Phone Stack

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 in official Debian squeeze repositories, or used to be. 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:

  • fso-frameworkd_0.8.5.1-1_all.deb
  • fso-usaged_0.9.1+git20091016-2_armel.deb
  • libgsm0710-0_1.2.0-1_armel.deb
  • libgsm0710mux0_0.9.0-1_armel.deb
  • libfso-glib0_0.2.1-2_armel.deb
  • libfsobasics0_0.8.9.9-1_armel.deb
  • libfsoframework0_0.2.3.1-1_armel.deb
  • libfsotransport0_0.9.5.9-1_armel.deb

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

Installation 03/2010

Debian timo1.png
Debian timo2.png

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://users.tkk.fi/~tajyrink/moko/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://users.tkk.fi/~tajyrink/moko/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!