Differences between revisions 136 and 137
Revision 136 as of 2009-08-27 10:14:05
Size: 41004
Editor: Timo Jyrinki
Comment: move all the tips to the tips page
Revision 137 as of 2009-08-27 10:18:47
Size: 41009
Editor: Timo Jyrinki
Comment: fix a few more links
Deletions are marked like this. Additions are marked like this.
Line 240: Line 240:
If you want to make calls or interact with the gps daemon through a dbus interface, you user will have to have the rights to do that. [http://lists.linuxtogo.org/pipermail/smartphones-userland/2009-January/000902.html One way] of adding these rights is as follows: If you want to make calls or interact with the gps daemon through a dbus interface, you user will have to have the rights to do that. [[http://lists.linuxtogo.org/pipermail/smartphones-userland/2009-January/000902.html|One way]] of adding these rights is as follows:
Line 319: Line 319:
after installing [http://packages.debian.org/search?keywords=lsb-release lsb-release] and [http://packages.debian.org/search?keywords=hicolor-icon-theme hicolor-icon-theme]. after installing [[http://packages.debian.org/search?keywords=lsb-release|lsb-release] and [[http://packages.debian.org/search?keywords=hicolor-icon-theme|hicolor-icon-theme]].

Installing and Using Debian on an Openmoko's Neo FreeRunner

You can install Debian on your Openmoko Neo FreeRunner, and use that system to fulfill your telephone needs. You can then use almost all of the packages available for Debian, with just one call to apt-get install. It’s still the same full featured Distribution that you know from your desktop or server.

For a brief showcase of desktop environments to use on your Debian / FreeRunner installation, see the Debian page at the Openmoko wiki. For individual tips and tricks after you have the base system running and hardware configured, see DebianOnFreeRunnerTips.

Notes About Installation

Preface: In the early days, one had to install Debian manually. The current status is what this guide is about, an installation script. Work is progressing on a proper debian-installer support, which will lead to better Debian installation experience for everyone. It depends on getting a proper 2.6.31/2.6.32 kernel, though.

This installer (install.sh) is relatively new and probably contains bugs. You use it at your own risk.

If you want to learn something about your new Debian system, you can read the installation script and do the steps by hand. This also allows you to be more flexible with regard to partitioning, package selection and configuration.

At the moment, only the freesmartphone.org software stack is packaged for Debian, this means: frameworkd and zhone. Illume window management and paroli phone software will be available once all the dependencies of Enlightenment 17 environment are packaged to Debian. But this does not mean that you will not be able to use your favourite stack (e.g. SHR) on Debian, it just needs to be packaged by someone.

Instructions for installing on the Neo1973 instead of Neo FreeRunner can be found at DebianOnNeo1973

Known Bugs & Current Status of Installation

Bug found: there is an issue with "fdisk" while partitioning. The script need to close fdisk by sending >q<. The script of 22.08.2009 at ~19:00 doesn't close fdisk. To solve that you need to locate the "# run partitioner" section and found the parts where the script tells fdisk what to do. The letter "n" and "p"for example. You need to put a "q" above these lethers always, so solve you the partitioning problem.

Success report at 20.08.2009, workarounding two bugs: http://lists.alioth.debian.org/pipermail/pkg-fso-maint/2009-August/001725.html

Card Size

The Debian installation will take up most of the 512 megabytes of the stock MicroSD card that comes with the FreeRunner, leaving little room for installing additional .deb packages. One will soon find oneself purchasing a larger card and doing the Debian installation all over again. Hence one should consider purchasing a larger card first before proceeding.

Making Backup

If you do not have a card reader to backup your MicroSD card, you can copy the contents of the card including partition data over a network. You will need a booted Freerunner with network access (USB, Wireless etc.) and a *nix-based machine. Make sure power management is not set to suspend on the FreeRunner.

If you wish to take a backup of your MicroSD card to restore from later, run the following from your Freerunner:

dd if=/dev/mmcblk0 | ssh user@backup.server "gzip -9 > sdcard.gz"

This will create a compressed backup of your card performing the compression on the backup server (assuming that it's more powerful than 400MHz). To restore, run the following from your backup server:

zcat sdcard.gz | ssh root@freerunner.address dd of=/dev/mmcblk0

As always, double check you have used the correct syntax for 'dd'.

Swap Partition

Consider a swap partition [http://lists.openmoko.org/pipermail/community/2008-September/031106.html] [http://lists.openmoko.org/pipermail/community/2008-October/032964.html]. ?Some have reported a swap partition helps. The preparation of such can be performed by the install script by specifying the SD_SWAP_SIZE environment variable.

The user could consider integrating one into the plans below, as it would be much harder to do later when there is no free space left. Also consider where to place it when considering Qi's boot order.

If it's too late to make a swap partition, consider a swap file. See also thread. Another swap file success.

Install Procedure

To install Debian on your MicroSD card, you need to have any Linux system running already in flash. All official images (Om2007.2, Om2008.8, Om2009) should be fine. Ensure to use up-to-date uboot or Qi. Ensure that your FreeRunner is connected to the Internet, either via USB or wireless.

Log into your FreeRunner and download and run the installation script:

Note: using a local mirror, the installation should take around 30 minutes to complete given an Internet connection of 5MB/s or 50 minutes with a 575kB/s one. You will download approximately 250MB.

$ wget -O install.sh http://pkg-fso.alioth.debian.org/freerunner/install.sh
$ chmod +x install.sh
$ ./install.sh
Auto-Installer for Debian on the Openmoko FreeRunner (GTA02) v1.1
-----------------------------------------------------------------
Copyright 2008 Joachim Breitner <nomeata@debian.org>
Copyright 2008 Luca Capello <luca@pca.it>
This program is licensed under the terms of GNU General Public
License either version 2, or (at your option) any later version.
Usage: [variable1 variable2 ...] ./install.sh stage1 [stage2 ...]
Variables:
  HOSTNAME         the name of the machine (default to debian-gta02)
  SD_DEVICE        the character device to access the microSD card
                   (default to /dev/mmcblk0)
  SD_PART1_FS      the filesystem for the first microSD card partition,
                   i.e. the one containing the uImage.bin (default to
                   ext2, possible values are ext2/vfat)
  INST_DIR         the directory where the microSD card partitions
                   will be mounted to (default to /mnt/debian)
  INST_MIRROR      the Debian mirror used during installation, it
                   should be set to a mirror nearby that carries armel
                   binaries for unstable and experimental (default to
                   http://ftp2.de.debian.org/debian)
  APT_RECOMMENDS   control if APT should install recommends by default
                   (default to false, possible values are false/true)
  DASH_BINSH       configure dash as default /bin/sh (default to true,
                   possible values are true/false)
  FSO_MIRROR       the Debian FSO repository (default to
                   http://pkg-fso.alioth.debian.org/debian)
  FSO_DEVICE       the device the installation is being performed on
                   (default to gta02, possible value is gta02 only)
  QI               if you use Qi bootloader set this to true
                   (default to false)
  QI_VERBOSE_BOOT  set this to true if you want to see the kernel messages
                   do this only when QI=true (default to false)
  SINGLE_PART      set this to true if only one partition should be created
                   this is true by default for QI=true and false if SD_PART1_FS=vfat
Stages:
  all              Runs all the stages in the following order:
                   testing time partition format mount
                   debian apt fso configuration tasks
                   kernel cleanup unmount
  testing          Verifys that everything is in place for this
                   installer to work
  time             Fetches the current time from $RDATEHOST via rdate
  partition        Partitions the microSD card found in $SD_DEVICE
                   (WARNING, this will destroy all the data on the
                   microSD card unless the partioning is the same as
                   used before; this can be used to recover a broken
                   partiton table due to the suspend/resume problem)
  format           Formats the microSD card found in $SD_DEVICE
                   (WARNING, this will destroy all the data on the
                   microSD card)
  mount            Mounts microSD card partitions under $INST_DIR
  debian           Installs a basic Debian system, including an SSH
                   server
  apt              Sets up APT repositories
  fso              Installs packages required to use the Zhone GUI
  configuration    Configures various parts of the system, such as
                   the X server
  kernel           Downloads and installs the Debian kernel package
                   (only when $SD_PART1_FS is set to ext2)
  unmount          Unmounts the Debian filesystem mounted at $INST_DIR
Unsupported or buggy stages, use at your own risk:
  uboot            Configures the U-Boot environment to boot Debian
                   (it needs to run between the debian and the unmount
                   stage, only when $SD_PART1_FS is set to ext2)
For more information, go to http://wiki.debian.org/DebianOnFreeRunner

Please read these introductions to get an overview about what is going to happen. You can then run the installer with

$ ./install.sh all

or, to use a mirror of your choice. Mirrors might be unreliable and give E: Couldn't download Release! errors.

$ INST_MIRROR=http://ftp.cc.debian.org/debian ./install.sh all

Note that running 'all' involves the 'partition' action mentioned above, which destroys all information on the uSD card. You have been warned.

The default filesystem created by install.sh for the boot partition is ext2, but U-Boot needs the boot partition to be fat. You have some options:

I) Modify your NAND uBoot (as described below) so it can boot straight off ext2,

OR

II) Set boot partition to be vfat by running SD_PART1_FS=vfat ./install.sh all. Now you do not need to mess with modifying U-Boot's default setup, and can still boot to Debian using NOR boot. (Note this creates a tiny 8MB partition at the front of the card, which will be very hard to increase the size of later. So consider manually increasing the size. Even if not planning to use this partition now, it will be handy for emergency NOR boots later, as it is one of the places the NOR booter knows about.)

III) Instead learn about Qi , which however needs /boot to be on the same partition as / .

Now be patient for a while, as the script downloads, installs and sets up everything it needs. Once it finishes without an error, you have to adjust your uBoot environment:

In case of temporary errors (for example network problems), you can re-enter the installation by specifying the stages you want to run:

./install.sh  debian apt fso configuration kernel unmount

It is your responsibility to make sure that the installer finds a setup that equals that provided by previous stages, especially with regard to mounted filesystems.

With some larger SD cards, there is a known issue which prevents them from working properly. There is a workaround that involves modifying the uboot environment.

The installation script configures dash as the default shell (i.e. /bin/sh). If you still prefer bash as /bin/sh, either do this by running DASH_BINSH=false ./install.sh all at installation time or, once Debian is running, with dpkg-reconfigure dash.

At this point, if you want to run Debian from the FreeRunner's internal flash instead of the uSD card, see /MovingToFlash

Adjusting Your uBoot Environment

If you have installed your Debian with vfat as the boot partition file system, you can use the standard "Boot from SD (fat+ext2)" entry from the NOR uBoot and skip reading this chapter. If not, you need to modify your uBoot environment. You are welcome to do this manually, and set it up to your liking. We do however provide a script that configures uBoot so that:

  • Debian boots by default, from the MicroSD card, with an ext2 boot partition.

  • The image installed in Flash can be booted by entering the NAND uBoot menu and selecting the second entry.

(Note that we're talking about modifying the NAND boot, not the NOR boot (which one reaches via pressing AUX then POWER)!)

To run the script, you need:

  • fso-utils, available from the pkg-fso apt source mentioned further down on this page installed on your local machine, not on your Freerunner (Section "Installing the FSO applications on your desktop")
  • dfu-util installed, available from the regular Debian archive
  • FreeRunner booted into NOR-Flash and connected via USB. (See the OpenMoko Wiki for more information)

Now you can configure your uBoot using these commands, run as root:

wget http://pkg-fso.alioth.debian.org/freerunner/configure-uboot.sh
chmod +x configure-uboot.sh
./configure-uboot.sh

Instead of this configure-uboot.sh script you can also take this one configure-uboot.sh which will speed up the booting by using the quiet-mode. It also adds an additional boot-parameter for booting without quiet-mode for debugging purpose.You need to install the package dfu-util, despite the script's request to install dfo-util. Simple spelling mistake.

Do not use this script with a device other than the FreeRunner!

(Note that ANY errors probably mean the write failed, despite any final "all done" messages.)

Note that at the end of the script it tells you to reboot. Do it by pushing buttons, no just typing reboot, otherwise you will just reboot into the previous non-debian world.

Starting to Use Your Debian System

Apart from this page, you may find answers to your questions in openmoko.org:s wiki page Getting Started With Your neo FreeRunner.

If you have applied the above uboot configuration, the Debian System from SD-Card is booted by default. To Boot your normal system choose "Boot Flash" from uboot menu. If you did not modify the uboot configuration, enter the NAND uboot menu and select Boot from SD (fat+ext2) to boot Debian.

NOR is readonly. Press aux+power to boot NOR-bootmenu, there are fat+ext2. (This works very badly with debian, because debian wants boot from ext. But this has worked!). NAND is writable. Press power+aux to boot NAND-bootmenu. All these fso-utils and configure-uboots are about changing NAND-bootmenu.

After booting you should see Zhone running, and you should (theoretically) be able to make and accept Phonecalls, send and receive SMS, access the on-SIM phonebook and use the GPS (more details at FSO UI Tutorial. Debian, at the moment, does not ship Illume, so you do not have the status bars at the top. See below for alternatives.

If you are still using the factory uBoot image, then you may not be able to boot successfully. (For example, you may see the openmoko splash screen followed by bright white screen recursively.) Please get the newest uboot image from: http://downloads.openmoko.org/daily/testing/gta02v5_and_up-u-boot.bin and if you do not already know how to use dfu-util, then follow the instructions given at:http://wiki.openmoko.org/wiki/Flashing_the_Neo_FreeRunner#Flashing_the_boot_loader_to_the_NAND.

There is no Illume running, but you can pop up (and down) the matchbox keyboard using the AUX button. From the keyboard, you can run an xterm using the key combination Alt-Ctrl-x, and then switch between these two applications with Alt-Tab. From there on, there is nothing special about your telephone any more – it’s a Debian system!

Users And Passwords

The default root password is blank. You should change that as soon as possible with passwd command.

Running X as normal user

1. Create a new user

# useradd -m -G audio,dialout,floppy,video,staff username
# passwd username

2. Edit /etc/default/nodm (configuration file read by /etc/init.d/nodm) and change NODM_USER=root to NODM_USER=username in it. Then to make sure changes are not lost on upgrade, run

dpkg-divert --add /etc/init.d/nodm

This will make new versions of /etc/init.d/nodm be written to /etc/init.d/nodm.distrib.

3. Edit /etc/X11/Xwrapper.config and change allowed_users=console to allowed_users=anybody (Or use dpkg-reconfigure x11-common)

4. Copy /root/.xsession into ~username/, and change its ownership:

# cp /root/.xsession ~username/
# chown username:username ~username/.xsession

5. Note that, if you ran zhone as root first, you may have to change ownership or remove /tmp/zhone.log, as a normal user is not able to write to a file owned by root.

6. If you have already configured to use Xglamo as a driver, <tt>chmod u+s /usr/bin/Xglamo</tt> (as can be read below)

Using DBus as a normal user

If you want to make calls or interact with the gps daemon through a dbus interface, you user will have to have the rights to do that. One way of adding these rights is as follows: * copy /etc/dbus-1/system.d/frameworkd.conf to /etc/dbus-1/system.d/my-frameworkd.conf * open /etc/dbus-1/system.d/my-frameworkd.conf and replace all instances of 'user="root"' with 'user="youruser"'

Alternatively, replace all instances of 'user="root"' with 'group="messagebus"' and add your user to the messagebus group.

Suspend Settings

Press the power button or run 'apm -s' to suspend. To change the time for the display to darken/turn off edit or add in ~/.frameworkd.conf or /etc/frameworkd.conf the section

  • [odeviced.idlenotifier] idle = 10 idle_dim = 20 idle_prelock = 12 lock = 2 suspend = 20

idle_dim is the time in seconds to dim the display (which adds up to the idle time), idle_prelock is the time to turn it off. You can turn off Suspend completely by commenting out the entire section "Idleness Brightness Handling" in /etc/freesmartphone/oevents/rules.yaml

Setting Time And Date

The default time zone is UTC. Reconfigure it by running

  • dpkg-reconfigure tzdata

To set the clock manually do something like

  • date -s 00:33

If you have a network connection, do something like

  • apt-get install ntpdate ntpdate-debian

If you want to synchronize the internal clock with GPS time you can use a script like

#
# Set the gps time
# Be sure your GPS is active before to launch this script

import dbus
import subprocess
import time

proxy = dbus.SystemBus().get_object('org.freesmartphone.frameworkd', '/org/freedesktop/Gypsy') # bus name, object name
interface = dbus.Interface(proxy, 'org.freedesktop.Gypsy.Time');
subprocess.call(['date',time.strftime( '%m%d%H%M%Y.%S', time.localtime(interface.GetTime()))])

If you want to synchronize the internal clock with GPS time and use the program gpsd, you can use this script, also you can use it on another computer to synchronize the time. This script synchronize the hardware clock too. Use it like: "program.rb host port" or change the ARGV[0] and ARGV[1] vars.

require 'socket'

if ARGV.size == 0
        ARGV[0]="localhost"
        ARGV[1]="2947"
end

                @gpsserver = TCPSocket.open(ARGV[0],ARGV[1])
                sleep(0.1)
                @gpsserver.puts "r"
                result = ""
                while result[0,6] != "$GPZDA"
                        result = @gpsserver.gets
                end
                if result[7,1] != ","
                        # Software clock
                        system("date -u #{result[20,2]}#{result[17,2]}#{result[7,2]}#{result[9,2]}#{result[23,4]}")
                        # Hardware clock
                        system("hwclock --set --date=\"#{result[23,4]}-#{result[20,2]}-#{result[17,2]} #{result[7,2]}:#{result[9,2]}:#{result[11,2]}\"")
                end
                @gpsserver.close

Package Manager

You can install dselect (~2.2MB) or aptitude (~12MB) to visually inspect the available debian packages using the desktop's console.

Also the GTK-based package-manager synaptic (~15.7MB) is working after installing lsb-release] and [[http://packages.debian.org/search?keywords=hicolor-icon-theme.

Finally, on constrained systems, just issue the command:

grep -e Package: -e Description /var/lib/dpkg/available|more

Configuring Hardware Components

WLAN

See main article DebianOnFreeRunner/WLAN.

Bluetooth

The FreeRunner uses the standard Linux bluez stack, installed with

  • apt-get install bluez-utils

The only atypical part of using bluetooth on the FreeRunner is turning it on, which can be done with

  • mdbus -s org.freesmartphone.frameworkd /org/freesmartphone/Device/PowerControl/Bluetooth ?SetPower 1

Then the device should be visible using

  • hcitool dev

TODO: Then what to do next?

Sound

Make sure to put your user in the audio group ("adduser <username> audio").

If there is no error but no sound, try these state files: ?Talk:Manual_Debian#Sound

Keyboards And Other Input Methods

As a default the Matchbox keyboard is installed, which you can use to input characters into your neo. As an alternative you might want to install ?CellWriter. It is a grid-entry natural handwriting input panel. As you write characters into the cells, your writing is instantly recognized at the character level. It also features a full fledged onscreen keyboard.

Installation:

apt-get install cellwriter

More information can be found on the [http://risujin.org/cellwriter/ homepage].

Graphics (Smedia Glamo 3362)

By default debian uses fbdev, but we can use X.org xf86-video-glamo driver to get better performance:

  • apt-get install xserver-xorg-video-glamo

after that edit /etc/X11/xorg.conf and change the line

  • Driver "fbdev"

to:

  • Driver "glamo"

You may also want to force the X server to 96 dpi to have the same fonts as with fbdev. Add "-dpi 96" to the X_OPTIONS variable in /etc/init.d/nodm: X_OPTIONS="vt4 -nolisten tcp -dpi 96

With glamo driver you: *can use xrandr *don't have the pointer calibration bug with the rotated mode *have better performances

Using glamo you must remember that: *You can't use on xorg.conf the "Option Rotate" to rotate the screen *You can't use the tslib patch to simulate right click

Additional Software

Web Browser

Arne Anka suggested trying the light-weight webkit-based midori browser: apt-get install midori

Another light-weight browser is Dillo. It can be easily installed with: apt-get install dillo

If you think the previous options are quite slow on Freerunner try Links2. apt-get install links2

Run as: xlinks2

GPS

Openmoko Freerunner has integrated a good AGPS chip that can be used to know in every moment the phone position. The most known free applications to use gps with graphical maps are:

  • TangoGPS
  • Navit

E-Book reader

To read an E-Book you have diffent possibilities:

  • ?FBReader a good reader that can display txt, fb2, html and various other formats.

  • ?Epdfview a simple and lightweight PDF viewer, it can be installed from Debian repository.

  • Evince the official Gnome viewer, it can display pdf, djvu, cbz, and other formats. There is also an hack to convert drm protected adobe ebooks to .cbz files readable as mentioned on the mailing list.

PIM

Osmo is a lightweigt pim application. Although you will not be able to make phonecalls right from its adressbook it is still helpful for managing contacts and appointments. apt-get install osmo It reads iCal-files, which you might want to syncronize with your desktop with unison. Start it with the option --tinygui to fit it on the screen. If xfce or other are installed you can start it via the menu with that option by changing in /usr/share/applications/osmo.desktop the according line to Exec=osmo --tinygui Just make sure you have a working swap: it takes quite some memory!

Choosing Kernel

Debian way

When Debian is installed, the kernel is provided by the package linux-image-2.6.29-openmoko-gta02. Your kernel will be keep updated like the other packages of the system. You should use this way if you are unsure and you need an (almost) stable system.

'Caveat:' This package can be installed only in POSIX compliant filesystems, so it can not be used if your boot partition is a vfat one. The sole reason is that the tool dpkg cannot create the required symlinks from uImage to uImage-kernelversion, since the file system does not know symlinks. To save the situation, it is suggested to install the package anyway, then having /boot directory as a regular subdirectory, the first partition with the vfat not mounted. Once the kernel package was installed, copy the kernel image directly to the root (not a subdirectory) of the SD card's first partition.

Openmoko way

Otherwise you can choose to manual install an OM kernel. But only do this if you know what you are doing. At the moment there is a little problem in the question which kernel to use. Hopefully it will be solved in the near future.

The original openmoko kernel works fine inclusive suspending and supports different really nice usb gadgets (not all working at the moment). :)

Om2009: download stable: http://downloads.openmoko.org/distro/releases/ download testing: http://downloads.openmoko.org/distro/experimental/daily/

FSO: download testing: http://downloads.freesmartphone.org/fso-testing/images/<br> download unstable: http://downloads.freesmartphone.org/fso-unstable/images/

  1. Download a recent kernel and rootfs (tar.gz) from one of the above mentioned sources. It's your decision if you want suspend or usb gadget modules at the moment.

  2. Backup your running kernel like mv /boot/uImage.bin /boot/uImage.bin.old, then copy the downloaded uImage file to the freerunner as /boot/uImage.bin.

  3. Backup your actual modules like mv /lib/modules/2.6.24 /lib/modules/2.6.24.old, then extract the downloaded rootfs tar.gz to a temporary directory and copy lib/modules/2.6.24 from the temp directory to /lib/modules/2.6.24 on the FreeRunner.

  4. Do a chown -R root.root /lib/modules/2.6.24 because the owner from the tar.gz is something else (for me).

  5. Run a depmod -a.

  6. This step is only needed for the OM kernel but it doesn't harm the FSO kernel setup. Add "g_ether" Module to /etc/modules like echo g_ether >> /etc/modules. I read in an email, that the module "ohci-hcd" is also needed for some bluetooth functions, but i don't know this for real. I inserted it to my modules file to be on the safe side.

  7. Reboot and hope everything works as expected. :)

Running Debian chroot from within previous installation

If you are interested only in a few applications that Debian provides or if your interest is only cautious temporary, then run the Debian application in a chroot environment. The install.sh script prepares that for you in /mnt/debian. Then make sure, e.g. for the communication of the X server, that the same tmp and other key directories directory are used across the two Linux installations:

for f in dev proc sys tmp
do
        mount -t none -o bind /$f /mnt/debian/$f
done

You can then start your application of interest with the prefix "chroot /mnt/debian", as in

chroot /mnt/debian dpkg -l bash

Some ideas what you can do do from here

  • /UsbKeyboard: Use a USB keyboard.

  • Mount your partitions with relatime instead of noatime, if you use applications like mutt.

  • Install apmd. Then, zhone suspends the phone when you press POWER-BUTTON for more than a second. If it does not work, make sure that the apmd daemon is not started, there seems to be a strange bug with Xorg, apmd and the kernel

  • If you have fast internet connection "apt-get update" can spend considerable time applying pdiffs. You can skip pdiff processing with this command: apt-get update -o Acquire::PDiffs=false, or change the preference permanently by adding the line Acquire::PDiffs "false"; to the file /etc/apt/apt.conf (possibly by creating that file)

  • You might want to grab http://svn.openmoko.org/trunk//src/target/audio/om-gta02/voip-handset.state so you can start playing with voip.

  • Install some of the following FreeRunner-targetted packages available in Debian:

    • fso-gpsd gpsd-compatibility daemon, for example for !TangoGPS

    • openmoko-panel-plugin to add FreeRunner-specific information and control to your XFCE- or whatever-panel. You can use this also with matchbox if you install and run trayer in your X session.

    • pypennotes record notes on the touchscreen. (Start with pyPenNotes.py on the command line.)

    • remoko control your Desktop with your FreeRunner (read the /usr/share/doc/remoko/README.Debian, though!)

    • Adjust the timezone to your own, using dpkg-reconfigure tzdata.

    • Free up some space by installing localepurge which delets unused locales and manpages.

      • Alternatively add some dpkg filtering (once that is supported).
  • Use Qi bootloader

    • debian-gta02:~# cd /boot

    • debian-gta02:/boot# mkdir boot

    • debian-gta02:/boot# ln -s ../uImage.bin boot/uImage-GTA02.bin

    • debian-gta02:/boot# echo "root=/dev/mmcblk0p2" >boot/append-GTA02

    or
    • debian-gta02:/boot# echo "root=/dev/mmcblk0p2 console=tty0 loglevel=8" >boot/append-GTA02

    then following this Download_and_installation

Reporting Bugs

Please always inform the [http://wiki.debian.org/Teams/DebianFSO ?FreeSmartphoneOrg] packaging group about issues that you spot.

When something is not working, please help us by first checking if it works with the official FSO image. If it does not work there, it is likely not a Debian specific bug, and should be reported at http://trac.freesmartphone.org/.

Although some packages are not yet in the official Debian repository, you can use the bugtracking system to file bugs against them, preferentially using the reportbug program. We will find them, and eventually the packages will be added to the repository and the bugs will apply to them.

The first time you use reportbug, please configure it with:

reportbug --configure

Be sure to select a working SMTP server, most of the ISPs block outgoing traffic on the port 25, which results in the following error (bug #488417):

Submit this report on reportbug (e to edit) [Y|n|a|c|e|i|l|m|p|q|?]? y
Connecting to bugs.debian.org via SMTP...
SMTP send failure: (111, 'Connection refused')
Wrote bug report to /tmp/reportbug-reportbug-20080628-22940-UXH7BH

Before reporting any bug, please check if it has not been already submitted yet. All known bugs are listed here. It is always better to check each single package page, too. In case you have discovered a new bug, then submit it, but please:

  • CC pkg-fso-maint@lists.alioth.debian.org . If you use the reportbug program, please use the X-Debbugs-CC header instead.

  • mention that the package is not yet in the archive, to prevent confusion for the bugtracker admins, something like This package is not yet in Debian but it will be soon, please see http://wiki.debian.org/pkg-fso.

Known Problems

Developing Applications For And On Debian

You can develop and test your applications for Debian on your desktop (just as you can run Zhone on your desktop, if you like). If the application is architecture-independent (such as a python application), you can just install that package on your FreeRunner. For architecture-dependent packages, you can compile clean packages using qemubuilder.

To build packages for armel with qemubuilder, you can use this setup (everything run as root)

  • Get qemubuilder v0.48 or newer (otherwise qemubuilder does not know the armel architecture)
  • Get a kernel from http://ftp.us.debian.org/debian/dists/sid/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.26-1-versatile

  • Create a configuration file armel-rc with this content (adjust paths to your liking):

    KERNEL_IMAGE=/var/cache/pbuilder/armel/vmlinuz-2.6.26-1-versatile
    ARCH=armel
    BASEPATH=/var/cache/pbuilder/armel/base.qemu
    MEMORY_MEGS=256
    MIRRORSITE=http://the-mirror-of-your-choice/debian
  • Run qemubuilder --configfile armel-rc  --create

  • Run qemubuilder --configfile armel-rc  --login --save-after-login and adjust the apt-sources (see above)

  • Run qemubuilder --configfile armel-rc  --update

  • Build packages with qemubuilder --configfile armel-rc  --build package.dsc

  • Extra tip: If you copy armel-rc as ~/.pbuilderrc you don't need to specify "--build armel-rc" every time you use qemubuilder.
  • NOTE: If you are getting a kernel panic with an error like Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0), then you may want to try using an older kernel version at http://people.debian.org/~aurel32/qemu/armel/.

  • NOTE: after having some trouble with setting up qemubuilderr, i've put working instructions and a working kernel image to http://yoush.homelinux.org:8079/tech/setting-up-armel-qemubuilder -- ?NikitaYoushchenko 2009-01-03 15:37:00

Qemubuilder always starts from a clean base image and installs only build dependencies needed by the package that is being built. This is nice for repeatable builds but can be slow if you only need to make test many small changes or want to debug the builds process interactively. For this reason you might want to fetch a complete arm installation from e.g. http://people.debian.org/~aurel32/qemu/armel/.

NOTE: Building with qemubuilder is rather slow; if you are a DD you can use the sid dchroot at agricola.debian.org to prepare packages (thanks to Gismo for the hint). -- ?GregorHerrmann

Installing the FSO applications on your desktop

For development reasons, you might want to have the FSO applications available on your desktop. For that, add these lines to your sources.list:

deb http://pkg-fso.alioth.debian.org/debian unstable main
deb-src http://pkg-fso.alioth.debian.org/debian unstable main

and install the keyring:

apt-get update
apt-get install pkg-fso-keyring

Support And Getting Involved

To have more information about Debian go to [http://www.debian.org Debian homepage].

If you have some problems, you can find support in [http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/smartphones-userland smartphone mailing list]. Report your discovered bugs to this list but remember to put [mailto:nomeata@debian.org Joachim Breitner] in CC.

If you'd like to help the packaging activities, you can join the [http://lists.alioth.debian.org/mailman/listinfo/pkg-fso-maint fso maintainer list].

Debian on the FreeRunner was brought to you by the pkg-fso team. We provide the phone-specific packages and created the installation script. If you have questions, you can contact us at

FAQ

  • During the "debian" stage of the install, what does "E: Internal error: install" mean and how do I fix it?
    • You may get more details on the problem by running it in verbose mode (something like $ VERBOSE=true ./install.sh for instance).

    • One possible cause is a problem with the armel packages in Debian. Check /mnt/debian/var/log/bootstrap.log for dependency problems or the like.

      • ftp2.de.debian.org might be out of sync. Use another mirror instead, setting INST_MIRROR=ftp.debian.org.
    • If corrupt packages appear, then it might be related to the microSD card used in the installation, as explained in the discussion at the smartphones-standards. Other information are available in the upstream bug.

  • Problems booting the image could also be microSD related. See this mail for one possible fix.

  • If you get error messages like unknown type 255 when accessing SMS or the contact book, you can add the number in question to /var/lib/python-support/python2.5/framework/subsystems/ogsmd/gsm/const.py, line 805, to the list in

    phonebookTupleToNumber assert ntype in ( 129, 145, 208 ), "unknown type %i" % ntype
  • lindi from the irc channel has a nice script located at http://iki.fi/lindi/openmoko/energy-logger2 to get battery information.

  • It wold be helpful if you then find out what kind of number that is and suggest at http://trac.freesmartphone.org/ that this number is added to the list. Note that at the moment this issue has been worked around in a patch to the debian package so that it only gives an error message but does not exit the program.

See also

Derivative distributions

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