Debian

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Making the cursor invisible)
(add a remark that zhone is dead and phoneui-apps should be used instead)
 
(334 intermediate revisions by 92 users not shown)
Line 1: Line 1:
= Installation =
+
{{Languages|Debian}}
There are official instructions on how to install Debian on http://wiki.debian.org/DebianOnFreeRunner, and the [http://lists.linuxtogo.org/pipermail/smartphones-standards/2008-August/000232.html announcement].
+
  
Previous, partly now outdated information on how to install Debian manually has been moved to [[Manual Debian]].
+
Debian is a ''universal operating system'' used on many other embedded devices, and also on home computers. Using Debian on the FreeRunner gives access to the Huge army of software packaged in the Debian repositories, already compiled for the Neo's arm(v4) processor. Moreover, one can build one's own source files for programs without having to learn the OpenEmbedded way. For example compiling natively is a snap with Debian, just apt-get gcc&libc-dev.
  
= System =
+
For an existing Debian/Ubuntu user, choosing Debian for Neo FreeRunner makes phone a very familiar, trustworthy and flexible place to hack in.
== Speeding up booting ==
+
What's good for every linux booting is also good for our debian on the freerunner: booting in quiet mode. To do so by default just boot your Neo Freerunner in NOR-Flash and execute this configure-script: [http://paste.ubuntuusers.de/391456/ configure-uboot.sh].
+
  
It changes default booting to quiet-mode and adds another boot-option to boot without quiet-mode for debugging purpose.
+
'''The bulk of information related to running Debian on FreeRunner is supposed to be at [http://wiki.debian.org/ wiki.debian.org]. For all installation, support or bug reporting needs please see [http://wiki.debian.org/DebianOnFreeRunner DebianOnFreeRunner] in the Debian wiki.'''
== Suspend ==
+
To make suspend available you have to install apmd:
+
apt-get install apmd
+
After that you can suspend your phone with:
+
apm -s
+
and make it wake up again with pressing the power button.
+
  
 +
''The current method of installation, install.sh, is not fail-proof. Work is progressing on a real debian-installer support.'' Please be sure Bash is installed before trying install.sh. The main reason why install.sh fails is because it installs debian unstable which is constantly in motion.
  
Issues:
+
== Screenshot for Manual ==
* [[User:Wuth|Wuth]] 06:28, 17 August 2008 (UTC): I found that apmd was already installed by using the official debian installation procedure, but that the kernel didn't support apm.  I haven't yet resolved this issue.
+
It might be useful to improve this manual with screenshots. You can create screenshots on Debian with [http://www.imagemagick.org ImageMagick]:
 +
  # sudo apt-get install imagemagick
  
== Time ==
+
Then you can take a screenshot of the full screen with the '''import'''-command:
  
The default time zone is UTC. Reconfigure it by running
+
  # import -window root screenshot.jpg
  
  # dpkg-reconfigure tzdata
+
If you take the screenshot with some delay you have to add the pause parameter (e.g. waiting for 10sec)
  
Set the clock manual using, e.g.
+
import -pause 10 -window root screenshot.jpg
 +
 +
== Installation Debian on Freerunner ==
 +
The following steps are a quick installation guide with and installed [[SHR]] on your freerunner and [[Qi]] as bootloader already installed on your freerunner. For further information refer to the [http://wiki.debian.org/DebianOnFreeRunner Debian on Freerunner Wiki] from which this short summary is derived from.  
  
# date -s 00:33
+
{{Note|The installation script for Debian, used in the following manual, stopped on SHR with errors. To run a complete Debian installation process it might be necessary to flash the FR with current minimal rootfs for SHR again. You could also try in your [[SHR]] distribution to remove some software packages with [[opkg]] (not tested). Recommended to flash memory with a minimal [[SHR]].}}
 +
The following manual was successful with a fresh flash of [[SHR]] in NAND memory.
  
 +
=== Installing Qi ===
 +
The following manual needs [[Qi]] to be installed as bootloader. If you more options for using the bootloader usethe [http://wiki.debian.org/DebianOnFreeRunner Debian on Freerunner Wiki] for further details.
 +
 +
Switch off you freerunner (if necessary) and start NOR uBoot by pressing AUX and Power-On at the same time and then start [[dfu-util]] on your desktop computer with the following parameters for GTA2:
 +
  # dfu-util -a u-boot -R -D [http://wiki.openmoko.org/wiki/Qi#Download qi-s3c2442-master-hist_3b8513d8b3d9615e.udfu]
 +
See [[Flashing the Neo FreeRunner]] or [[Flashing the Neo 1973]] for more details on flashing your phone.
  
Issues:
+
=== Online Script Installation ===
* That's probably not sufficient to keep the clock accurate. It might be worth configuring some form of NTP.
+
==== Login to Freerunner with SHR ====
** Setting the clock could be done via GPS: [[Getting_GPS_console_output_with_gllin#GPRMC_message]]
+
Login to your freerunner with the booted SHR distribution:
 +
  # ssh -X -l root 192.168.0.202
 +
and an [[USB Networking]] connection (e.g. IP-address 192.168.0.202 of your freerunner). Change the IP-address if your network settings differ from this IP-address. Prepare SHR so that you have a working internet connection from your freerunner. This is necessary because SHR will download the Debian packages.
  
== WLAN ==
+
==== Script Installation and Running install.sh ====
 +
Run the following commands from shell in SHR after ssh-login to freerunner:
 +
# wget -O install.sh http://pkg-fso.alioth.debian.org/freerunner/install.sh
 +
# chmod +x install.sh
 +
# TASKS="ALL" QI=true ./install.sh all
 +
The following commands above assumes that you have [[Qi]] installed and you want to use a single partition for Debian on freerunner. The SD card (2GB suggested) will be formated by the script. 
 +
* If you want to install Debian with different installation parameters or
 +
*  if you ran into network problems or errors during installation
 +
please see [http://wiki.debian.org/DebianOnFreeRunner DebianOnFreerunner-Wiki] for further details and support.
  
You can set up the wireless connection to your home router.
+
{{Note|The installation could take more than 90 minutes to complete and you will download approximately 250MB on your freerunnner. Time for installation is depending on network speed.}}
Assuming your wireless router uses WPA security and DHCP:
+
# apt-get install wireless-tools wpasupplicant dhcp3-client
+
  
Edit <code>/etc/network/interfaces</code> to include a section like this:
+
After successful installation you will see:
<pre>
+
  I: Unmounting - done
auto eth0
+
  I: All done!
iface eth0 inet dhcp
+
  Now reboot, and hope for the best!
      wpa-driver wext
+
Shutdown SHR operating system with:
      wpa-ssid "MyWirelessName"
+
# shutdown -h now
      wpa-psk "MyWirelessPassword"
+
Press power on button to start Debian via Qi:
</pre>
+
Where, of course, you're using the name of your wireless network and it's password
+
instead of ''MyWirelessName'' and ''MyWirelessPassword''.
+
  
You can test by running
+
=== debian4freeunner.tar.gz ===
# ifup eth0
+
The online installation process sometimes fails. It is be helpful to an tar.gz-image for Debian that could be extracted to a SD-card with an installed bootloader [[Qi]]
  
You can determine your IP address by running
+
One such tarball is available here (add others if you have):
# ifconfig eth0
+
  
 +
http://people.debian.org/~timo/NeoFreeRunner/ (Debian_NeoFreeRunner_minimalrootfs_20120321.tar.xz)
  
Issues:
+
Note that it is a ''minimal'' rootfs, meaning that your first job is to connect to the device over USB cable and install more packages to your liking. Some basic libraries/daemons like FSO2 and omhacks are available, though, and the X starts (pretty much empty) by default via /root/.xsession. Root password is the default 'changeme'.
* only works if in presence of wireless network on boot, or when manually running <code>ifup eth0</code>
+
* booting away from wireless network is slower because waits for DHCP to time out
+
* does not reestablish connection when leaving wireless area and then returning
+
* does not support multiple wireless networks or open hotspots that you may travel between
+
  
= Software =
+
==== First Login on Debian ====
== Tangogps ==
+
Your Linux Desktop has created RNDIS/Ethernet Interface, configure the interface as in [[USB Networking]] explained:
 +
RNDIS/Ethernet Gadget
 +
Now you can login on Debian (if booted) with:
 +
  # ssh -X -l root 192.168.0.202
 +
{{Note|'''(SSH Known Hosts)''' If you have installed other distributions on your Freerunner before, edit '''<tt>.ssh/known_hosts</tt>''' and remove old key for your freerunner. }}
 +
The default password is ''"changeme"'', so change the password directly after first login on your Freerunner with:
 +
  neo# passwd
 +
Then run an update for apt-get
 +
  neo# apt-get update
 +
This could take several minutes depending on network speed.
  
Tangogps is a very nice GPS mapping application.  The latest version is available in Debian.
+
== Debian Showcase: Desktop Environments And Applications ==
  
Unfortunately it depends on gpsd which conflicts with frameworkd in fso-frameworkd.
+
=== fbpanel + Matchbox ===
  
# apt-get install gpsd tangogps
+
It is not really a Desktop environment, but using fbpanel with Matchbox you can have a fast, lightweight, gtk2 desktop panel.
 
+
[[Image:Debian_fbpanel_zhone.png|right|thumb|150px|Debian with fbpanel, matchbox-window-manager and Zhone running, default settings]]
Edit <code>/etc/frameworkd.conf</code>.  In the section <code>[ogpsd]<code>, edit to read:
+
[[Image:Debian5.png|right|thumb|150px|Custom matchbox theme and fbpanel configuration.]]
 +
 
 +
Quick howto:
 +
<ol><li>Install fbpanel:
 +
<pre>sudo apt-get install fbpanel hicolor-icon-theme</pre></li>
 +
<li>Customize the X startup process:
 +
<pre>~/.xsession</pre>
 
<pre>
 
<pre>
# path = /dev/ttySAC1
+
#!/bin/sh
path = /dev/null
+
export GTK_MODULES=libgtkstylus.so
 +
zhone &
 +
xsetroot -solid black
 +
matchbox-keyboard-toggle &
 +
matchbox-window-manager -use_titlebar yes &
 +
# -use_titlebar yes to minimize & toggle between apps
 +
# fbpanel's taskbar does not work with matchbox-window-manager
 +
#~/bin/auxlaunch &
 +
while true;
 +
do
 +
fbpanel;
 +
sleep 1;
 +
done;
 +
</pre></li>
 +
 
 +
<li>Read http://fbpanel.sourceforge.net/docs.html#config
 +
<pre>~/.fbpanel/default</pre>
 +
<pre>
 +
mkdir ~/.fbpanel
 +
cp /etc/fbpanel/default ~/.fbpanel/default
 +
nano ~/.fbpanel/default
 
</pre>
 
</pre>
 +
Remove section with 'taskbar' plugin - it's useless with matchbox-window-manager. You may add plugin 'cpu'
 +
<pre>Plugin {
 +
type = cpu
 +
}</pre>
 +
Also, plugin 'genmon' is useful:
 +
<pre>Plugin {
 +
type = genmon
 +
config {
 +
Command = echo -e $(grep "MemFree" /proc/meminfo | \
 +
awk '{printf "%0.2f", $2 / 1024}') "|"\
 +
$(cat /proc/loadavg | awk '{print $3}') "|" \
 +
$(apm | awk '{print $5}')
 +
PollingTime = 60
 +
TextSize = small
 +
TextColor = darkblue
 +
}
 +
}</pre>
 +
[[Image:Debian6.png|right|thumb|150px|Custom edje Zhone theme. Click to enlarge]]
 +
After 'killall fbpanel' it will show: free mem in megabytes | loadavg | battery % left.</li>
 +
<li>Default theme is ugly. You can change it and / or make fonts bigger:
 +
<pre>~/.gtkrc-2.0</pre>
 +
<pre>sudo apt-cache search gtk2-engines
 +
sudo apt-get install gtk2-engines gtk-theme-switch
 +
DISPLAY=:0 gtk-theme-switch2</pre>
 +
Now choose your theme, font and save it. To see changes do 'killall fbpanel'. (killall requires psmisc package to be installed)</li></ol>
 +
 +
=== Illume ===
 +
[[Image:Debian_illume_zhone.png|right|thumb|150px|Debian with illume, and Zhone running]]
 +
[[Image:Debian_illume_zhone_kb.png|right|thumb|150px|Debian with illume, and Zhone running, with the on-screen keyboard visible]]
 +
[[Illume]], the desktop environment used in recent openmoko distribution releases, is also available under Debian.  It's part of the Enlightenment window manager version 17 (which is currently in the alpha stage of development), which the Debian FSO package maintainers have placed in their repository.  If you have a Debian FSO system running, you can use the following commands to install illume.
 +
 +
apt-get install e17
 +
 +
Then use the following commands to ensure that it starts on boot.
 +
 +
apt-get remove zhone-session
 +
apt-get install nodm
 +
 +
mv /root/.xsession /root/.xsession.backup
 +
cat << END > /root/.xsession
 +
#!/bin/sh
 +
zhone &
 +
enlightenment_start
 +
END
 +
 +
'''Update 03/2012: zhone is a dead end. For current Debian, install phoneui-apps instead, which support the FSO2 now default in Debian.'''
 +
 +
<br style="clear:both" />
 +
 +
=== LXDE ===
 +
 +
If you want a really nice desktop enviroment but you think XFCE is too fat, you can try to install [http://en.wikipedia.org/wiki/LXDE LXDE]. It give to you the GTK comfort, but use only a fraction of the ram needed by XFCE.
 +
[[Image:Debian_lxde_zhone.png|right|thumb|300px|Debian with lxde and Zhone running]]
 +
To install it:
 +
<pre>apt-get install lxde</pre>
 +
 +
to launch it create a <code>/etc/init.d/lxde</code> script in the same way descripted for xfce4, replacing <code>startxfce4</code> occurrences with <code>startlxde</code>.
 +
<div style="clear:right;">&nbsp;</div>
 +
 +
=== OpenOffice.org ===
 +
[[Image:Freerunner_Debian_runs_openoffice3.jpg|right|thumb|300px|Debian running OpenOffice.org 3]]
 +
 +
Did we already mention you can install ''anything'' in Debian?
 +
 +
<br style="clear:both" />
 +
 +
=== XFCE ===
 +
The debian installation script installs by default the matchbox window manager. It doesn't feature a desktop environment. '''xfce''' is a small and lightweight desktop environment and so is quite fast for the FreeRunner.
 +
 +
<pre>apt-get install xfce4</pre>
 +
 +
Edit your .xsession to launch xfce4 at X startup :
 +
 +
<pre>#!/bin/sh
 +
xfce4-session</pre>
 +
 +
Edit section [Failsafe Session] of /etc/xdg/xfce4-session/xfce4-session.rc (or ~/.config/xfce4-session/xfce4-session.rc) to handle the auto-started apps. For example:
 +
<pre>[Failsafe Session]
 +
Count=3
 +
Client0_Command=xfce4-panel
 +
Client0_PerScreen=False
 +
Client1_Command=xfdesktop
 +
Client1_PerScreen=False
 +
Client2_Command=zhone
 +
Client2_PerScreen=True</pre>
 +
Start XFCE !
 +
 +
<pre>/etc/init.d/nodm restart</pre>
 +
 +
The desktop takes a while to start but once up was snappy as can be expected.
 +
I've not yet looked at the reason for the seemingly too slow start for the desktop.
 +
 +
zhone is available from the "Office" menu in xfce.
 +
The matchbox keyboard is available in "Accessories".
  
/etc/init.d/fso-frameworkd restart
+
If you want to display the screen on the long side (ie rotated, 4:3 aspect), add the following to the /etc/X11/xorg.conf in both the Device and InputDevice sections :
/etc/init.d/zhone-session stop && sleep 2 && /etc/init.d/zhone-session start
+
  
# dpkg-reconfigure gpsd
+
<pre>Option          "Rotate"                "CCW"</pre>
  
* Start gpsd automatically no boot? Yes.
+
and then (re)start xfce.
* Device the GPS receiver is attached to: /dev/ttySAC1
+
* Should gpsd handle attached USB GPS receivers automatically? Yes
+
** not certain what this answer should be
+
* Options to gpsd: none
+
  
 +
If you want to be able to shutdown/restart the device, add the following line to ''/etc/sudoers'' (don't forget to replace ''username'' with your actual username):
 +
<pre>username localhost = NOPASSWD: /usr/sbin/xfsm-shutdown-helper</pre>
  
Start tangogps like this:
+
''' Using matchbox-window-manager with XFCE '''
  
  # echo 1 >/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron
+
XFCE's window manager is poorly configured for use with the FreeRunner. Fortunately, matchbox's window manager is compatible with xfce. To use the matchbox window manager, modify ~/.xsession as follows:
Turns the GPS on.
+
  
# DISPLAY=:0 tangogps
+
<pre>#!/bin/sh
 +
exec matchbox-window-manager -use_titlebar no -use_cursor no &
 +
xfce4-session</pre>
  
 +
== Derivative Distributions of Debian ==
  
'''Issues:'''
+
Several distributions are sharing Debian's infrastructure - this is long known. For the Openmoko,
* The different daemons for the reading GPS data mean that both tangogps and the framework demo GPS application can't be configured to work at the same time. Reboots are probably necessary when switching between them.
+
* [[Fyp]] extends the basic Debian installation while avoiding the need of an SD
** Both gpsd and the framework publish GPS data through dbus, though with different interfaces.  This suggests a number of possible solutions.
+
* [[Hackable1]] focuses on GNOME Mobile integration
*** gpsd or the framework could implement the other's interface (along with their own).
+
* [[Mer]] : based on [[Maemo]] ; see demo and download image at http://www.newlc.com/en/mer-best-maemo-debianubuntu-mobiles-watch-freerunner-demo
*** the framework could have an option to read data from gpsd.
+
* [[QtMoko]] - Debian with Qt Extended Improved plus configuration changes put manually on top of it
*** tangogps could be extended to read data from the framework.
+
* [[Telefoninux]] http://telefoninux.projects.openmoko.org/index.html
 +
* [[Deb19]] - pre-configured, ready to copy to SD, Debian with improvements. No install.sh required.
  
= Miscellaneous =
+
[[Category:Debian| ]]
== Making the cursor invisible ==
+
To make the cursor invisible create a file called empty.cursor with this content:
+
#define empty.cursor_width 16
+
#define empty.cursor_height 16
+
static unsigned char empty.cursor_bits[] = {
+
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
Now you can execute:
+
xsetroot -cursor empty.cursor empty.cursor
+
and the cursor will be invisible. To make this permanent you have to invent something ;) It must be executed after zhone has finished starting up.
+

Latest revision as of 04:48, 26 March 2012


Debian is a universal operating system used on many other embedded devices, and also on home computers. Using Debian on the FreeRunner gives access to the Huge army of software packaged in the Debian repositories, already compiled for the Neo's arm(v4) processor. Moreover, one can build one's own source files for programs without having to learn the OpenEmbedded way. For example compiling natively is a snap with Debian, just apt-get gcc&libc-dev.

For an existing Debian/Ubuntu user, choosing Debian for Neo FreeRunner makes phone a very familiar, trustworthy and flexible place to hack in.

The bulk of information related to running Debian on FreeRunner is supposed to be at wiki.debian.org. For all installation, support or bug reporting needs please see DebianOnFreeRunner in the Debian wiki.

The current method of installation, install.sh, is not fail-proof. Work is progressing on a real debian-installer support. Please be sure Bash is installed before trying install.sh. The main reason why install.sh fails is because it installs debian unstable which is constantly in motion.

Contents

[edit] Screenshot for Manual

It might be useful to improve this manual with screenshots. You can create screenshots on Debian with ImageMagick:

 # sudo apt-get install imagemagick

Then you can take a screenshot of the full screen with the import-command:

 # import -window root screenshot.jpg

If you take the screenshot with some delay you have to add the pause parameter (e.g. waiting for 10sec)

import -pause 10 -window root screenshot.jpg

[edit] Installation Debian on Freerunner

The following steps are a quick installation guide with and installed SHR on your freerunner and Qi as bootloader already installed on your freerunner. For further information refer to the Debian on Freerunner Wiki from which this short summary is derived from.

NOTE: The installation script for Debian, used in the following manual, stopped on SHR with errors. To run a complete Debian installation process it might be necessary to flash the FR with current minimal rootfs for SHR again. You could also try in your SHR distribution to remove some software packages with opkg (not tested). Recommended to flash memory with a minimal SHR.


The following manual was successful with a fresh flash of SHR in NAND memory.

[edit] Installing Qi

The following manual needs Qi to be installed as bootloader. If you more options for using the bootloader usethe Debian on Freerunner Wiki for further details.

Switch off you freerunner (if necessary) and start NOR uBoot by pressing AUX and Power-On at the same time and then start dfu-util on your desktop computer with the following parameters for GTA2:

 # dfu-util -a u-boot -R -D qi-s3c2442-master-hist_3b8513d8b3d9615e.udfu

See Flashing the Neo FreeRunner or Flashing the Neo 1973 for more details on flashing your phone.

[edit] Online Script Installation

[edit] Login to Freerunner with SHR

Login to your freerunner with the booted SHR distribution:

# ssh -X -l root 192.168.0.202

and an USB Networking connection (e.g. IP-address 192.168.0.202 of your freerunner). Change the IP-address if your network settings differ from this IP-address. Prepare SHR so that you have a working internet connection from your freerunner. This is necessary because SHR will download the Debian packages.

[edit] Script Installation and Running install.sh

Run the following commands from shell in SHR after ssh-login to freerunner:

# wget -O install.sh http://pkg-fso.alioth.debian.org/freerunner/install.sh
# chmod +x install.sh
# TASKS="ALL" QI=true ./install.sh all

The following commands above assumes that you have Qi installed and you want to use a single partition for Debian on freerunner. The SD card (2GB suggested) will be formated by the script.

  • If you want to install Debian with different installation parameters or
  • if you ran into network problems or errors during installation

please see DebianOnFreerunner-Wiki for further details and support.

NOTE: The installation could take more than 90 minutes to complete and you will download approximately 250MB on your freerunnner. Time for installation is depending on network speed.


After successful installation you will see:

 I: Unmounting - done
 I: All done!
 Now reboot, and hope for the best!

Shutdown SHR operating system with:

# shutdown -h now

Press power on button to start Debian via Qi:

[edit] debian4freeunner.tar.gz

The online installation process sometimes fails. It is be helpful to an tar.gz-image for Debian that could be extracted to a SD-card with an installed bootloader Qi

One such tarball is available here (add others if you have):

http://people.debian.org/~timo/NeoFreeRunner/ (Debian_NeoFreeRunner_minimalrootfs_20120321.tar.xz)

Note that it is a minimal rootfs, meaning that your first job is to connect to the device over USB cable and install more packages to your liking. Some basic libraries/daemons like FSO2 and omhacks are available, though, and the X starts (pretty much empty) by default via /root/.xsession. Root password is the default 'changeme'.

[edit] First Login on Debian

Your Linux Desktop has created RNDIS/Ethernet Interface, configure the interface as in USB Networking explained:

RNDIS/Ethernet Gadget 

Now you can login on Debian (if booted) with:

 # ssh -X -l root 192.168.0.202
NOTE: (SSH Known Hosts) If you have installed other distributions on your Freerunner before, edit .ssh/known_hosts and remove old key for your freerunner.


The default password is "changeme", so change the password directly after first login on your Freerunner with:

 neo# passwd

Then run an update for apt-get

 neo# apt-get update

This could take several minutes depending on network speed.

[edit] Debian Showcase: Desktop Environments And Applications

[edit] fbpanel + Matchbox

It is not really a Desktop environment, but using fbpanel with Matchbox you can have a fast, lightweight, gtk2 desktop panel.

Debian with fbpanel, matchbox-window-manager and Zhone running, default settings
Custom matchbox theme and fbpanel configuration.

Quick howto:

  1. Install fbpanel:
    sudo apt-get install fbpanel hicolor-icon-theme
  2. Customize the X startup process:
    ~/.xsession
    #!/bin/sh
    export GTK_MODULES=libgtkstylus.so
    zhone &
    xsetroot -solid black
    matchbox-keyboard-toggle &
    matchbox-window-manager -use_titlebar yes &
    # -use_titlebar yes to minimize & toggle between apps
    # fbpanel's taskbar does not work with matchbox-window-manager
    #~/bin/auxlaunch &
    while true;
    do
    fbpanel;
    sleep 1;
    done;
    
  3. Read http://fbpanel.sourceforge.net/docs.html#config
    ~/.fbpanel/default
    mkdir ~/.fbpanel
    cp /etc/fbpanel/default ~/.fbpanel/default
    nano ~/.fbpanel/default
    

    Remove section with 'taskbar' plugin - it's useless with matchbox-window-manager. You may add plugin 'cpu'

    Plugin {
    type = cpu
    }

    Also, plugin 'genmon' is useful:

    Plugin {
    type = genmon
    config {
    Command = echo -e $(grep "MemFree" /proc/meminfo | \
     awk '{printf "%0.2f", $2 / 1024}') "|"\
    $(cat /proc/loadavg | awk '{print $3}') "|" \
     $(apm | awk '{print $5}')
    PollingTime = 60
    TextSize = small
    TextColor = darkblue
    }
    }
    Custom edje Zhone theme. Click to enlarge
    After 'killall fbpanel' it will show: free mem in megabytes | loadavg | battery % left.
  4. Default theme is ugly. You can change it and / or make fonts bigger:
    ~/.gtkrc-2.0
    sudo apt-cache search gtk2-engines
    sudo apt-get install gtk2-engines gtk-theme-switch
    DISPLAY=:0 gtk-theme-switch2
    Now choose your theme, font and save it. To see changes do 'killall fbpanel'. (killall requires psmisc package to be installed)

[edit] Illume

Debian with illume, and Zhone running
Debian with illume, and Zhone running, with the on-screen keyboard visible

Illume, the desktop environment used in recent openmoko distribution releases, is also available under Debian. It's part of the Enlightenment window manager version 17 (which is currently in the alpha stage of development), which the Debian FSO package maintainers have placed in their repository. If you have a Debian FSO system running, you can use the following commands to install illume.

apt-get install e17

Then use the following commands to ensure that it starts on boot.

apt-get remove zhone-session
apt-get install nodm

mv /root/.xsession /root/.xsession.backup 
cat << END > /root/.xsession
#!/bin/sh
zhone &
enlightenment_start
END

Update 03/2012: zhone is a dead end. For current Debian, install phoneui-apps instead, which support the FSO2 now default in Debian.


[edit] LXDE

If you want a really nice desktop enviroment but you think XFCE is too fat, you can try to install LXDE. It give to you the GTK comfort, but use only a fraction of the ram needed by XFCE.

Debian with lxde and Zhone running

To install it:

apt-get install lxde

to launch it create a /etc/init.d/lxde script in the same way descripted for xfce4, replacing startxfce4 occurrences with startlxde.

 

[edit] OpenOffice.org

Debian running OpenOffice.org 3

Did we already mention you can install anything in Debian?


[edit] XFCE

The debian installation script installs by default the matchbox window manager. It doesn't feature a desktop environment. xfce is a small and lightweight desktop environment and so is quite fast for the FreeRunner.

apt-get install xfce4

Edit your .xsession to launch xfce4 at X startup :

#!/bin/sh
xfce4-session

Edit section [Failsafe Session] of /etc/xdg/xfce4-session/xfce4-session.rc (or ~/.config/xfce4-session/xfce4-session.rc) to handle the auto-started apps. For example:

[Failsafe Session]
Count=3
Client0_Command=xfce4-panel
Client0_PerScreen=False
Client1_Command=xfdesktop
Client1_PerScreen=False
Client2_Command=zhone
Client2_PerScreen=True

Start XFCE !

/etc/init.d/nodm restart

The desktop takes a while to start but once up was snappy as can be expected. I've not yet looked at the reason for the seemingly too slow start for the desktop.

zhone is available from the "Office" menu in xfce. The matchbox keyboard is available in "Accessories".

If you want to display the screen on the long side (ie rotated, 4:3 aspect), add the following to the /etc/X11/xorg.conf in both the Device and InputDevice sections :

Option          "Rotate"                "CCW"

and then (re)start xfce.

If you want to be able to shutdown/restart the device, add the following line to /etc/sudoers (don't forget to replace username with your actual username):

username localhost = NOPASSWD: /usr/sbin/xfsm-shutdown-helper

Using matchbox-window-manager with XFCE

XFCE's window manager is poorly configured for use with the FreeRunner. Fortunately, matchbox's window manager is compatible with xfce. To use the matchbox window manager, modify ~/.xsession as follows:

#!/bin/sh
exec matchbox-window-manager -use_titlebar no -use_cursor no &
xfce4-session

[edit] Derivative Distributions of Debian

Several distributions are sharing Debian's infrastructure - this is long known. For the Openmoko,

Personal tools

Installation

There are official instructions on how to install Debian on http://wiki.debian.org/DebianOnFreeRunner, and the announcement.

Previous, partly now outdated information on how to install Debian manually has been moved to Manual Debian.

System

Speeding up booting

What's good for every linux booting is also good for our debian on the freerunner: booting in quiet mode. To do so by default just boot your Neo Freerunner in NOR-Flash and execute this configure-script: configure-uboot.sh.

It changes default booting to quiet-mode and adds another boot-option to boot without quiet-mode for debugging purpose.

Suspend

To make suspend available you have to install apmd:

apt-get install apmd

After that you can suspend your phone with:

apm -s

and make it wake up again with pressing the power button.


Issues:

  • Wuth 06:28, 17 August 2008 (UTC): I found that apmd was already installed by using the official debian installation procedure, but that the kernel didn't support apm. I haven't yet resolved this issue.

Time

The default time zone is UTC. Reconfigure it by running

# dpkg-reconfigure tzdata

Set the clock manual using, e.g.

# date -s 00:33


Issues:

WLAN

You can set up the wireless connection to your home router. Assuming your wireless router uses WPA security and DHCP:

# apt-get install wireless-tools wpasupplicant dhcp3-client

Edit /etc/network/interfaces to include a section like this:

auto eth0
iface eth0 inet dhcp
       wpa-driver wext
       wpa-ssid "MyWirelessName"
       wpa-psk "MyWirelessPassword"

Where, of course, you're using the name of your wireless network and it's password instead of MyWirelessName and MyWirelessPassword.

You can test by running

# ifup eth0

You can determine your IP address by running

# ifconfig eth0


Issues:

  • only works if in presence of wireless network on boot, or when manually running ifup eth0
  • booting away from wireless network is slower because waits for DHCP to time out
  • does not reestablish connection when leaving wireless area and then returning
  • does not support multiple wireless networks or open hotspots that you may travel between

Software

Tangogps

Tangogps is a very nice GPS mapping application. The latest version is available in Debian.

Unfortunately it depends on gpsd which conflicts with frameworkd in fso-frameworkd.

# apt-get install gpsd tangogps
 

Edit /etc/frameworkd.conf. In the section [ogpsd]<code>, edit to read:

# path = /dev/ttySAC1
path = /dev/null
/etc/init.d/fso-frameworkd restart
/etc/init.d/zhone-session stop && sleep 2 && /etc/init.d/zhone-session start 
# dpkg-reconfigure gpsd
  • Start gpsd automatically no boot? Yes.
  • Device the GPS receiver is attached to: /dev/ttySAC1
  • Should gpsd handle attached USB GPS receivers automatically? Yes
    • not certain what this answer should be
  • Options to gpsd: none


Start tangogps like this:

# echo 1 >/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-gps.0/pwron

Turns the GPS on.

# DISPLAY=:0 tangogps


Issues:

  • The different daemons for the reading GPS data mean that both tangogps and the framework demo GPS application can't be configured to work at the same time. Reboots are probably necessary when switching between them.
    • Both gpsd and the framework publish GPS data through dbus, though with different interfaces. This suggests a number of possible solutions.
      • gpsd or the framework could implement the other's interface (along with their own).
      • the framework could have an option to read data from gpsd.
      • tangogps could be extended to read data from the framework.

Miscellaneous

Making the cursor invisible

To make the cursor invisible create a file called empty.cursor with this content:

#define empty.cursor_width 16
#define empty.cursor_height 16
static unsigned char empty.cursor_bits[] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

Now you can execute:

xsetroot -cursor empty.cursor empty.cursor

and the cursor will be invisible. To make this permanent you have to invent something ;) It must be executed after zhone has finished starting up. </div>