Debian
From Openmoko
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català
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
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
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.
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 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.
Online Script Installation
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.
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.
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:
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'.
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
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.
Debian Showcase: Desktop Environments And Applications
fbpanel + Matchbox
It is not really a Desktop environment, but using fbpanel with Matchbox you can have a fast, lightweight, gtk2 desktop panel.
Quick howto:
- Install fbpanel:
sudo apt-get install fbpanel hicolor-icon-theme
- 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;
- 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 } }
After 'killall fbpanel' it will show: free mem in megabytes | loadavg | battery % left. - 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)
Illume
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.
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.
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
.
OpenOffice.org
Did we already mention you can install anything in Debian?
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
Derivative Distributions of Debian
Several distributions are sharing Debian's infrastructure - this is long known. For the Openmoko,
- Fyp extends the basic Debian installation while avoiding the need of an SD
- Hackable1 focuses on GNOME Mobile integration
- Mer : based on Maemo ; see demo and download image at http://www.newlc.com/en/mer-best-maemo-debianubuntu-mobiles-watch-freerunner-demo
- QtMoko - Debian with Qt Extended Improved plus configuration changes put manually on top of it
- Telefoninux http://telefoninux.projects.openmoko.org/index.html
- Deb19 - pre-configured, ready to copy to SD, Debian with improvements. No install.sh required.