= Installing and Using Debian on an Openmoko's Neo FreeRunner = You can install Debian on your [[http://www.openmoko.com/|Openmoko]] [[http://wiki.openmoko.org/wiki/Neo_FreeRunner|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 / Free``Runner installation, see [[http://wiki.openmoko.org/wiki/Debian|the Debian page at the Openmoko wiki]]. For more general Debian on Mobile Devices, user interface etc. topics, see [[Mobile]] wiki page. In addition to scarcity of suitable packaged UI:s (see Mobile above), the main "to do" item regarding Free``Runner is the remaining kernel work. See [[http://wiki.openmoko.org/wiki/Kernel/Upstreaming|Kernel/Upstreaming]] page on the Openmoko wiki for details of current patches. The kernel is the only package that is installed from the external pkg-fso repository. Instructions for installing on the Neo1973 instead of Neo Free``Runner can be found at DebianOnNeo1973 Subpages: [[DebianOnFreeRunner/MovingToFlash|/MovingToFlash]], [[DebianOnFreeRunner/Tips|/Tips]], [[DebianOnFreeRunner/Todo|/Todo]], [[DebianOnFreeRunner/WLAN|/WLAN]] ~-| [[Teams/DebianFSO]]-~ <> == Introduction == ''Preface: In the early days, one had to install [[http://wiki.openmoko.org/wiki/Manual Debian|Debian manually]] (still possible). The current status is what this guide is about, an installation script. Work was started as a [[http://wiki.debian.org/SummerOfCode2010/OpenMokoFreePhoneDebianInstaller|GSoC 2010 project]] on a proper debian-installer support, which, if finished, would lead to better Debian installation experience for everyone.'' This installer (install.sh) may contain bugs as Debian unstable is kind of a moving target. 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, the [[http://www.freesmartphone.org/|FreeSmartphone.Org]] (FSO) software stack is packaged and actively maintained for Debian. By default this means fso-deviced and friends, while the previous [[http://wiki.openmoko.org/wiki/FSO_UI_Tutorial | zhone]] phone software is abandoned since it only works with FSO1. The phoneui-apps from SHR works with the FSO2 now in Debian. Illume window management is available, as are most needed dependencies of the Enlightenment 17 environment. Paroli phone UI is not packaged but all dependencies are in. The basis of Debian provides a great infrastructure for bringing more mobile-oriented software by packaging it as part of our [[Teams/DebianFSO|team]]. Slightly off-topic: your Openmoko is a complete computer with some hardware (accelerometers, wifi, bluetooth, usb, gsm) that is exceptional. Please do not feel alienated if that mobile computing aspect is of importance for you - it also is to us. And since there is so much that you can do with this little device, we cannot cover it all, and certainly we embrace your helping hands or stimulating ideas. === Current Status of Installation via install.sh === ''To get a hint of recent work on install.sh, see [[http://git.debian.org/?p=pkg-fso/files.git;a=history;f=install.sh|git history]] and the comments on the commits there.'' '''Chances of getting Debian installed at the moment - 03/2012 - is: HIGH''' . This was tested 03/2012 (install.sh also updated in 03/2012) to be working for a minimal installation: ''INST_MIRROR=http://ftp.fi.debian.org/debian QI=true SINGLE_PART=true ./install.sh all'' (the default ftp2.de.debian.org had a problem) - you need to work your way from there because the install.sh has not been updated to take into account all of the transition to FSO2 and other changes in sid. After installation, run for example ''apt-get install e17 foxtrotgps gpsd navit omhacks monav midori wicd lxterminal phoneui-apps''. You may also want to ''apt-get remove --purge openmoko-panel-plugin'' which doesn't have much functionality nowadays and consumes a lot of CPU. ~-(if you still want to try FSO1, which you probably don't, ''apt-get install zhone/experimental python-ecore/experimental python-edje/experimental python-evas/experimental zhone-illume-glue/experimental'')-~ . [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=623095|tslib 1.0-8 dropped support for Linux 2.6.36 and older]] . install.sh now defaults to the newer 2.6.34 kernel that is patched to work with udev 171-1 - that udev originally dropped support for Linux 2.6.36 and older on ARM. ~-(please report at [[http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/smartphones-userland|smartphones-userland]] if you cannot install with the instructions on this page and these notes, and/or ask for help on #openmoko-debian @ Freenode IRC channel)-~ <
> ~-'''some old quirks/fixes available in appendix a: troubleshooting'''-~ == Before Installation == There are a few things to consider before installation. === SD Card === 2GB MicroSD card or bigger is recommended. See the "New list" at [[http://wiki.openmoko.org/index.php?title=Supported_microSD_cards|Supported MicroSD Cards]] (wiki.openmoko.org). ==== Swap Partition Or File? ==== Consider a swap partition or a swap file, some have reported it is useful. The preparation of a swap partition 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 [[http://wiki.openmoko.org/wiki/Qi|Qi]]'s boot order. If it's too late to make a swap partition, [[http://www.go2linux.org/Swap-memory-increase-with-swap-file|consider a swap file]]. See also [[http://lists.openmoko.org/pipermail/support/2008-December/003892.html|thread]]. [[http://lists.openmoko.org/pipermail/community/2008-October/032964.html|Another swap file success]]. === Filesystem And Bootloader Choice === The default filesystem created by install.sh for the boot partition is ext2, but some U-Boot images (really old) need the boot partition to be vfat. You have some options about how to choose bootloader + filesystem combination: I) Learn about a small and fast bootloader, [[http://wiki.openmoko.org/wiki/Qi|Qi]], now in Debian as package [[http://packages.qa.debian.org/q/qi.html|qi]], and use eg. {{{QI=true ./install.sh all}}}. This is described below in ”Using Qi”. OR II) Read Appendix C: Alternative Boot Choices. ==== Using Qi ==== Qi is the simplest bootloader to use. Preferred: use the [[http://packages.qa.debian.org/q/qi.html|qi]] packaged in Debian, flashable from host computer. Read the README.Debian. (random old links for history preservation purposes [[http://git.openmoko.org/?p=qi.git|1]], [[http://downloads.openmoko.org/distro/testing/NeoFreerunner/qi-s3c2442-1.0.2+gitr3b8513d8b3d9615ebda605de4bda18371aa3f359.udfu|2]], [[http://downloads.openmoko.org/distro/experimental/daily/om-gta02/20100104/qi-s3c2442-1.0.2+gitr243+36bb5c03756268ff15b2d95a043ffb39a919ce5c.udfu|3]], [[http://www.openmobile.nl/modules/download_gallery/dlc.php?file=53|4]], [[http://lists.openmoko.org/pipermail/community/2010-July/062495.html|5]], [[http://wiki.openmoko.org/wiki/Qi#Download_and_installation|6]]. Qi needs /boot to be on the same partition as / by default. To use more than one partition you have to do the following, although do note that install.sh takes care of it: {{{ cd /boot mkdir boot ln -s ../uImage.bin boot/uImage-GTA02.bin echo "root=/dev/mmcblk0p2" >boot/append-GTA02 # OR echo "root=/dev/mmcblk0p2 console=tty0 loglevel=8" > boot/append-GTA02 }}} === Which distro to install from? === There is a problem related to install.sh's usage of fdisk and the wide variety of fdisk versions in the Neo Free``Runner distributions. Since install.sh requires something to run from, ie a distribution on the NAND flash, this may hit you easily. Known problems include the ones with fdisk version in SHR. Problems may be fixed by doing partitioning by hand and giving install.sh the other steps as parameters as shown in instructions below. Qt``Moko is Debian based distribution, is NAND flashable and has a known good fdisk version (ie. similar to what install.sh has been developed with). A proper solution would be to detect various fdisks and calculate the partition values taking the fdisk version into account. == Installing == '''''Do not use this script with a device other than the !FreeRunner!''''' 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 that your !FreeRunner is connected to the Internet, either [[http://wiki.openmoko.org/wiki/USB_Networking | via USB]] or via wireless. Please make sure you have ''perl'' installed ~-(opkg update, opkg upgrade & opkg install perl)-~. When running under ''SHR'', you might also have to install ''bash'' before being able to execute the script properly. When running under ''Qt``Moko'' (which is a Debian-based system by itself as well), you need to install ''rdate'' and ''binutils'' ~-(apt-get install rdate binutils)-~. 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 # display usage instructions }}} '''[[http://pkg-fso.alioth.debian.org/freerunner/manual.php|Usage instructions]]''' (web copy) You need a working network connection on Neo. Most FreeRunner distributions already have a default gateway over USB and should work, provided you allow network forwarding from your USB connected computer to Neo: {{{ iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24 echo 1 | tee /proc/sys/net/ipv4/ip_forward iptables -P FORWARD ACCEPT }}} Please read the instructions to get an overview about what is going to happen. You can then run the installer with {{{ $ ./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. '''Examples''' '''(Recommended 03/2012) In case of troubles, a minimal installation after which you can apt-get on your own:''' {{{ $ QI=true SINGLE_PART=true ./install.sh all }}} ''To use a [[http://www.debian.org/mirror/list|mirror of your choice]]:'' {{{ $ INST_MIRROR=http://ftp.cc.debian.org/debian ./install.sh all }}} ''Using Qi and only a single SD partition, installing all optional packages right away:'' {{{ $ TASKS="ALL" QI=true SINGLE_PART=true ./install.sh all }}} You may want to add BOOTSTRAPPER=debootstrap to the above as cdebootstrap fails as of 23.11.2009 (that's why you need to install perl, see above). Also, install.sh may try to download older version of debootstrap and fail with 404 error; check the download site and correct the script. ''Continuing in case of eg. temporary errors (for example network problems), this example continues right after partitioning has been done:'' {{{ $ TASKS="ALL" QI=true SINGLE_PART=true ./install.sh format mount debian apt fso configuration tasks kernel cleanup unmount }}} ''If you run into errors by using the default cdebootstrap method (phase "debian") you may want to use debootstrap instead, which is slower and requires more memory. It is not generally recommended, but you may try it anyhow:'' {{{ $ BOOTSTRAPPER="debootstrap" TASKS="ALL" QI=true SINGLE_PART=true ./install.sh debian apt fso configuration tasks kernel cleanup 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. E.g. /mnt/debian/proc may stay mounted, which causes errors during "format" stage. If you get any input/output errors, you might be having problems with SD card compatibility. '''After Installation''' Now be patient for a log while, as the script downloads, installs and sets up everything it needs. Note that ANY errors probably mean the write failed, despite any final "all done" messages. 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. The installation script configures [[http://gondor.apana.org.au/~herbert/dash/|dash]] as the default shell (i.e. /bin/sh). If you still prefer [[http://www.gnu.org/software/bash/|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 [[DebianOnFreeRunner/MovingToFlash|/MovingToFlash]]. == Starting to Use Your Debian System == ''Apart from this page, you may find answers to your questions in openmoko.org:s wiki page [[http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunner|Getting Started With Your neo FreeRunner]].'' '''Qi''': If using Qi, just press power button to boot from SD card, ie. Debian (alternatively use the red LED indicator light + AUX button to select bootable partition). '''U-Boot''': Press power+aux to start NAND Flash U-Boot bootmenu, and select the option you have crafted to boot Debian. '''After Booting''': After booting you should see [[http://wiki.openmoko.org/wiki/Zhone|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 [[http://wiki.openmoko.org/wiki/FSO_UI_Tutorial|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. 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 ''changeme''. 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,powerdev 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. 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. === 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 }}} And then, to set manually the date (eg. 9 Oct 2010): {{{ date +%Y%m%d -s "101009" }}} If you have a network connection, do something like {{{ apt-get install ntpdate ntpdate-debian }}} For more advanced ways like synchronizing from GPS clock, see [[DebianOnFreeRunner/Tips#GPS|Tips]] === Package Management === You can install [[http://packages.debian.org/search?keywords=dselect|dselect]] (~2.2MB) or [[http://packages.debian.org/search?keywords=aptitude|aptitude]] (~12MB) to visually inspect the available debian packages using the desktop's console. Also the GTK-based package-manager [[http://packages.debian.org/search?keywords=synaptic|synaptic]] (~15.7MB) is working 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]]. Finally, on constrained systems, just issue the command: {{{ grep -e Package: -e Description /var/lib/dpkg/available|more }}} == Configuring Hardware Components == First of all, a tremendous help to any Openmoko hardware configuring is the [[http://packages.qa.debian.org/o/omhacks.html|omhacks]] package. Use the ''om'' command from command line when in doubt, and use in scripts et cetera as you like. === Bluetooth === For more tips and for having more update infos please visit openmoko wiki's [[http://wiki.openmoko.org/wiki/Manually_using_Bluetooth|Manually using Bluetooth]] page. The FreeRunner uses the standard Linux bluez stack, installed with {{{ apt-get install bluetooth }}} 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 }}} === GPRS === See [[http://wiki.openmoko.org/wiki/GPRS_FSO|GPRS FSO]] page at Openmoko wiki. === GPS === GPS worked out-of-the-box "on-demand" with fso-gpsd, meaning that if you launch FoxtrotGPS, GPS gets turned on etc. Currently though gpsd is used, which means you need to turn GPS on with for example [[http://packages.qa.debian.org/o/omhacks.html|omhacks]] (official Debian repositories) or [[http://pkg-fso.nomeata.de/sid/openmoko-panel-plugin|openmoko-panel-plugin]] (pkg-fso repository). For more infos see [[http://wiki.openmoko.org/wiki/Gpsd | the Openmoko's wiki]]. === Graphics (Smedia Glamo 3362) === By default debian uses [[http://packages.qa.debian.org/x/xf86-video-glamo.html|xf86-video-glamo]] X.org driver, but we can use X.org fbdev driver to get rid of possible problems: {{{ apt-get install xserver-xorg-video-fbdev }}} after that edit /etc/X11/xorg.conf and change the line {{{ Driver "glamo" }}} to: {{{ Driver "fbdev" }}} 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/default/nodm}}}: {{{ NODM_X_OPTIONS="-nolisten tcp -dpi 96" }}} An alternative to this is to change the font size, add {{{gtk-font-name = "Sans 4"}}} to '''/etc/gtk-2.0/gtkrc'''. 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 The default 2.6.34 kernel from pkg-fso repository does not support KMS. pkg-fso repository has an alternative version of x86-video-glamo that is compiled with KMS support, meaning that if you put a self-compiled 2.6.34 FreeRunner kernel with KMS support in, you get kernel mode-setting support. === 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. More information can be found on the [[http://risujin.org/cellwriter/|homepage]]. Installation: {{{ apt-get install cellwriter }}} Another alternative is literki transparent keyboard that is easy to bring up and hide with a finger swipe: {{{ apt-get install literki }}} === Sound and Music === Make sure to put your user in the audio group ("adduser audio"), if you are not using the phone as a root user. If there is a problem with phone volumes, see [[http://wiki.openmoko.org/wiki/Alsa_state_a7|Alsa state a7]] @ openmoko.org. For music playing, try installing intone, which is a finger usable music player providing skip-free audio playback on Neo: {{{ apt-get install intone }}} === WLAN === See main article [[DebianOnFreeRunner/WLAN]]. == Additional Software == === Web Browser === [[http://lists.openmoko.org/nabble.html#nabble-td781547|Arne Anka suggested]] trying the light-weight webkit-based [[http://en.wikipedia.org/wiki/Midori_(browser)|midori]] browser: {{{apt-get install midori}}} Another webkit-based, but much more quick to start and simpler UI is woosh, currently only available in pkg-fso repository: {{{apt-get install woosh}}} Another light-weight browser is [[http://en.wikipedia.org/wiki/Dillo|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: * [[http://packages.qa.debian.org/f/foxtrotgps.html|FoxtrotGPS]] (apt-get install foxtrotgps) * [[http://packages.qa.debian.org/n/navit.html|Navit]] (apt-get install navit) * [[http://packages.qa.debian.org/m/monav.html|MoNav]] (apt-get install monav) === E-Book reader === To read an E-Book you have diffent possibilities: * [[http://packages.qa.debian.org/f/fbreader.html|FBReader]] (apt-get install fbreader) a good reader that can display txt, fb2, html and various other formats. * [[http://packages.qa.debian.org/e/epdfview.html|Epdfview]] (apt-get install epdfview) a simple and lightweight PDF viewer, it can be installed from Debian repository. * [http://packages.qa.debian.org/e/evince.html|Evince]] (apt-get install 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 === [[http://clayo.org/osmo/|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 [[http://www.cis.upenn.edu/~bcpierce/unison|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 === You can provided special packaged versions of Linux kernel from pkg-fso repository, or basically any set of uImage.bin file and modules tar ball (unpacked to /lib/modules). ==== Debian way ==== When Debian is installed, the kernel is provided by the package ''linux-image-2.6.34-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. ===== Custom kernel ===== If you need to customize the Debian Openmoko kernel you can get the git url from [[http://git.debian.org/?p=pkg-fso/linux-2.6-openmoko.git;a=summary|gitweb]]. If you need to only change kernel configuration, the config file to change is stored in ''debian/config.gta02''. To build the kernel on armel a ''dpkg-buildpackage'' is enough, if you want to cross compile (and you want to) this works: ''ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dpkg-buildpackage -aarmel'' If your build fail because of a weird warning about a directory that already exists you can workaround the issue by adding ''-p'' option to the relevant ''mkdir'' in ''debian/rules''. ==== 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/
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. 1. 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''. 1. 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. 1. Do a ''chown -R root.root /lib/modules/2.6.24'' because the owner from the tar.gz is something else (for me). 1. Run a ''depmod -a''. 1. 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. 1. Reboot and hope everything works as expected. :) === Kernel Branches in Autumn 2011 === Free``Runner kernel development is sporadic and not very well organized. Here is a summary: '''Distribution kernels''' (these more suitable for real use) * [[http://anonscm.debian.org/gitweb/?p=pkg-fso/linux-2.6-openmoko.git;a=shortlog;h=refs/heads/debian-2.6.34|Debian pkg-fso 2.6.34]] - now the new default kernel version * [[http://anonscm.debian.org/gitweb/?p=pkg-fso/linux-2.6-openmoko.git;a=shortlog;h=refs/heads/debian|Debian pkg-fso 2.6.29rc3]] - old default * [[http://git.debian.org/?p=pkg-fso/kernel.git;a=shortlog;h=refs/heads/s3c24xx|Debian s3c24xx]] - official Debian installer aiming branch, see also [[SummerOfCode2010/OpenMokoFreePhoneDebianInstaller]] * [[http://github.com/radekp/linux-2.6/tree|Qtmoko]] - Qtmoko (Debian derivative) kernels - various branches 2.6.34/2.6.37/etc, quite functional * [[https://gitorious.org/shr/linux|SHR]] - SHR kernels, various branches (shr-2.6.39-nodrm om-2.6.34-stable om-2.6.37-stable om-2.6.39-stable) '''git.openmoko.org kernels''' * [[http://git.openmoko.org/?p=kernel.git;a=shortlog;h=refs/heads/om-gta02-2.6.39|2.6.39]] * [[http://git.openmoko.org/?p=kernel.git;a=shortlog;h=refs/heads/om-gta02-2.6.34|2.6.34]], does not contain all necessary support for Free``Runner * [[http://git.bitwiz.org.uk/?p=kernel.git;a=shortlog;h=refs/heads/gdrm-2.6.34|2.6.34 with DRM/KMS support added]] (not physically at git.openmoko.kernel but similar to gdrm-2.6.32) * [[http://git.openmoko.org/?p=kernel.git;a=shortlog;h=refs/heads/om-gta02-2.6.32|2.6.32]], does not contain all necessary support for Free``Runner * [[http://git.openmoko.org/?p=kernel.git;a=shortlog;h=refs/heads/gdrm-2.6.32|2.6.32 with DRM/KMS support added]], otherwise same ie. not everything needed Some bugs that have patches but not in git.openmoko.org kernels: [[http://docs.openmoko.org/trac/ticket/2344|2344]], [[http://docs.openmoko.org/trac/ticket/2349|2349]], [[http://docs.openmoko.org/trac/ticket/2367|2367]], [[http://docs.openmoko.org/trac/ticket/2368|2368]]. If you want to help on orchestrating kernel work at git.openmoko.org (other places fine as well), see information about getting write access at [[http://wiki.openmoko.org/wiki/Openmoko:Community_Portal#Git_Servers|openmoko wiki]]. == 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 * Mailing list: http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/smartphones-userland * IRC channel: #openmoko-cdevel on freenode * !WikiPage: [[Teams/DebianFSO]] * IRC channel: #openmoko-debian on freenode (Discuss the installation of Debian ARM package on the Openmoko Freerunner) === 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 [[http://bugs.debian.org/|bugtracking system]] to file bugs against them, preferentially using the [[http://packages.debian.org/stable/utils/reportbug|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 [[http://packages.debian.org/stable/utils/reportbug|reportbug]], please configure it with: {{{ reportbug --configure }}} Be sure to select a working [[http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol|SMTP server]], most of the ISPs block outgoing traffic on the port 25, which results in the following error (DebianBug: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 [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=pkg-fso-maint@lists.alioth.debian.org|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 [[http://packages.debian.org/stable/utils/reportbug|reportbug]] program, please use the [[http://www.debian.org/Bugs/Reporting#xcc|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 === * PIN entry, see --( http://trac.freesmartphone.org/ticket/90 )-- * APM Battery Driver missing, see --( http://trac.freesmartphone.org/ticket/121 )-- * zhone do not start after fresh installation, see --( http://www.ginguppin.de/node/24 )-- === 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 [[http://lists.linuxtogo.org/pipermail/smartphones-standards/2008-August/000356.html|smartphones-standards]]. Other information are available in the [[http://docs.openmoko.org/trac/ticket/1743|upstream bug]]. * Problems booting the image could also be microSD related. See [[http://lists.openmoko.org/pipermail/community/2008-November/035412.html|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. === 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 }}} === 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 [[http://packages.debian.org/sid/qemubuilder|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.30-2-versatile * Create a configuration file {{{armel-rc}}} with this content (adjust paths to your liking): {{{ KERNEL_IMAGE=/var/cache/pbuilder/armel/vmlinuz-2.6.30-2-versatile ARCH=armel BASEPATH=/var/cache/pbuilder/armel/base.qemu MEMORY_MEGS=256 MIRRORSITE=http://the-mirror-of-your-choice/debian }}} * With {{{MEMORY_MEGS=512}}}, qemu-system-arm may segfault and qemubuilder hang. See DebianBug:503091 and DebianBug:527264. -- StephaneGlondu <> * 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 qemubuilder, i've put working instructions and a working kernel image to http://yoush.homelinux.org:8079/tech/setting-up-armel-qemubuilder -- NikitaYoushchenko <> 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 }}} == See Also == === Derivative Distributions === Several Openmoko/FreeRunner-oriented distributions are sharing Debian's infrastructure. Of the ones below, Qt``Moko is the most popular according to 2009 Autumn poll at Openmoko community mailing list. * [[http://www.hackable1.org/wiki/Main_Page|Hackable1]] is a community distribution for hackable devices like the Neo Freerunner. It is based on Debian and implements the GNOME mobile platform. * [[http://wiki.openmoko.org/wiki/Mer|Mer]] : based on Maemo; see [[http://digg.com/linux_unix/mer_merge_of_maemo_debian_ubuntu_on_freerunner_mobile_ddl|demo and download image]]. Note that recent versions of Mer have not managed portability to the ARMv4 (Neo FreeRunner hardware) so if you want this you are likely to have to fix it yourself first. * [[http://wiki.openmoko.org/wiki/Neovento|Neovento]] (earlier called Fyp) extends the basic Debian installation while avoiding the need of an SD * [[http://wiki.openmoko.org/wiki/QtMoko|QtMoko]] - Debian with Qt Extended Improved plus configuration changes put manually on top of it * [[http://telefoninux.projects.openmoko.org/index.html|Telefoninux]] === Examples Of How To Use Debian on the FreeRunner === * [[http://wiki.openmoko.org/wiki/User:Lindi|Lindi]] has a good documentation about his advanced way of using Debian * [[http://wiki.openmoko.org/wiki/User:JohnSullivan|JohnSullivan]] has also * [[http://wiki.openmoko.org/wiki/User:TimoJyrinki|TimoJyrinki]] likewise === 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: * [[http://pkg-fso.nomeata.de/sid/fso-gpsd|fso-gpsd]] gpsd-compatibility daemon, for example for !TangoGPS * [[http://pkg-fso.nomeata.de/sid/openmoko-panel-plugin|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. * [[http://pkg-fso.nomeata.de/sid/pypennotes|pypennotes]] record notes on the touchscreen. (Start with {{{pyPenNotes.py}}} on the command line.) * [[http://pkg-fso.nomeata.de/sid/remoko|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). == Appendix A: Troubleshooting == === Historical Installer Problems === You might be interested in these notes if the problems ever re-appear. ~-19.9.2009: [[http://lists.linuxtogo.org/pipermail/smartphones-userland/2009-September/001984.html|Success report]] with one workaround needed (continue from the apt phase with the instructions in the Examples subsection of Installation Procedure) ~-(note the newly mentioned requirement of installing perl in the "host" system)-~ (This is only required for having the perl-implemented debootstrap substitute cdebootstrap, circumventing the dpkg problem - Steffen)-~ ~-6.9.2009: install.sh both received an option to use debootstrap instead of cdebootstrap, and dpkg 1.15.4 was uploaded to unstable. Additionally, new E17 and Zhone packages have arrived to Debian "proper" (not just pkg-fso archive).-~ ~-28.8.2009: (Installation broken while waiting for [[http://packages.qa.debian.org/d/dpkg.html|dpkg 1.15.4]] to officially land. Until then, cdebootstrap does not work correctly. [[http://www.mail-archive.com/smartphones-userland@linuxtogo.org/msg01619.html|More information]]. Until then, the only way is [[http://wiki.openmoko.org/wiki/Manual_Debian|manual]] installation with debootstrap (not cdebootstrap), [[http://www.mail-archive.com/smartphones-userland@linuxtogo.org/msg01622.html|tip]]) (I like you links since these issues will arise again somewhen in future, but for the very moment this issue is resolved, I think. cdebootstrap should become the default again. Steffen)-~ ~-22.8.2009: There is an issue with "fdisk" while partitioning. You can continue installation by looking at the examples below, substituting ”all” with the remaining phases after partitioning. (What issue? I have seen a patch in the history. So maybe this is an issue of the past. Steffen)-~ ~-20.8.2009: Success report, workarounding two bugs: [[http://lists.alioth.debian.org/pipermail/pkg-fso-maint/2009-August/001725.html|mailing list post]] (I like the invocation of install.sh, the suggestions in the email, i.e. the s/trayer/stalonetray/ was followed. It seems like trayer is back in the archive, so a switch back to it seems likely).-~ === SD Cards, I/O Errors... === Neo FreeRunner with any kernel is somewhat picky about SD cards. See [[http://wiki.openmoko.org/wiki/Supported_microSD_cards]]. If you do get errors during install, especially I/O error type of thing, there is a good chance your MicroSD card has compatibility problems with Neo and/or the distribution you are running. In that case, you may try the following kind of commands before running install.sh: {{{ echo 5000000 > /sys/module/glamo_mci/parameters/sd_max_clk echo 3 > /sys/module/glamo_mci/parameters/sd_drive }}} If that resolves the problem and installation completes, you are that much wiser. However, SD card performance is reduced even from the default, power consumption increases and SD card power could interfere with GPS functionality. Anyway, in order to use the particular SD card and the Debian you just installed on it, you also need to set the same parameters in the Debian partition's /boot directory before booting to Debian. That is, create /boot/append-GTA02 on the Debian partition and put the following one line in it: {{{ glamo_mci.sd_max_clk=5000000 glamo_mci.sd_drive=3 }}} If possible and does not cause additional errors with your card, it would be preferable at least to set the sd_drive to 0 to reduce power consumption. An important parameter to look at is the class of the SDHC: it goes from 2 to 6 as the I/O speed increases. '''It is possible that this troubleshooting does not solve problems with your particular card.''' === Low-level Bootloader Troubleshooting === You can use {{{ $ sudo strings /dev/mtdblock0 | grep -E "^(U-Boot|Qi)" | head -n1 U-Boot 1.3.2-moko12 (May 9 2008 - 10:28:48) }}} to see what boot loader you have in NOR and {{{ $ sudo strings /dev/mtdblock1 | grep -E "^(U-Boot|Qi)" | head -n1 Qi Bootloader s3c2442 fomalhaut lindi_9ef7754b8243457c }}} to see what boot loader you have in NAND. You can also use {{{ $ sudo cat /dev/mtdblock2 | tr '\0' '\n'|sort|uniq baudrate=115200 boot_menu_timeout=65000 bootargs_base=rootfstype=jffs2 root=/dev/mtdblock6 console=ttySAC2,115200 console=tty0 loglevel=8 bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000 bootdelay=3 mtdids=nor0=physmap-flash,nand0=neo1973-nand pcb_rev=0x000 pcf50633_int1=0x80 pcf50633_int2=0x03 stderr=usbtty stdin=usbtty stdout=usbtty usbtty=cdc_acm ³pbootargs= }}} to see what U-boot environment variables you have set in NAND. Finally, {{{ $ sudo file -sL /dev/mmcblk0p* /dev/mmcblk0p1: Linux rev 1.0 ext2 filesystem data, UUID=c8e54a43-2b8e-4961-a581-b38c757f5359 /dev/mmcblk0p2: Linux rev 1.0 ext3 filesystem data, UUID=33be1de7-c16f-4c78-b089-2fb931fd4ede, volume name "openmoko" (needs journal recovery) (large files) $ sudo file -sL /dev/mtdblock* /dev/mtdblock0: data /dev/mtdblock1: data /dev/mtdblock2: data /dev/mtdblock3: DOS executable (device driver) /dev/mtdblock4: gzip compressed data, from Unix, last modified: Mon Mar 10 13:15:21 2008, max compression /dev/mtdblock5: Linux rev 1.0 ext2 filesystem data, UUID=5fa9f6db-c615-40db-8b3d-731cc5e161ac /dev/mtdblock6: Linux jffs2 filesystem data little endian }}} is a handy way to see what partitions and filesystems you are using. == Appendix B: Making Full Backups == 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'. == Appendix C: Alternative Boot Choices == I) Use Qi as in the main part of the guide OR II) Set boot partition to be vfat by running eg. {{{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.)-~ OR III) Modify your NAND uBoot so it can boot straight off ext2. This is described below in ”Using U-Boot”. NOR Flash is readonly, and the u-boot there can always be accessed. Press aux+power to boot NOR-bootmenu, where there is only the fat+ext2 option available for possibly launching Debian NAND Flash is writable, and you may use either Qi or U-Boot there. If you do not already know how to use dfu-util to flash boot loader, then follow the instructions given at: http://wiki.openmoko.org/wiki/Flashing_the_Neo_FreeRunner#Flashing_the_boot_loader_to_the_NAND. --- ==== Alternative: Using U-Boot ==== If you don't use Qi, read this section. Use [[http://git.openmoko.org/?p=u-boot.git;a=summary|U-Boot]] (git) – ready made binaries [[http://downloads.openmoko.org/distro/unstable/NeoFreerunner/u-boot-gta02v5-1.3.1+gitrb20cc520a22715fe7ff069b36b7dfdbb925a8e5a-r1.bin|1]] (Apr 2009), [[http://downloads.openmoko.org/distro/experimental/daily/om-gta02/20100130/u-boot-gta02v5-1.3.1+gitr4879+4ed6f14590c443f20c12b2f39ec0c14f0c41c0f8-r1.bin|2]] (Sep 2009), [[http://www.bsdmn.com/openmoko/uboot/binary/u-boot_g2x_2.udfu|3]] (Dec 2010, 2-4-2 timings + few fixes, read [[http://wiki.openmoko.org/wiki/U-boot-gena2x|here]]). All the programs concerned in this section to change configuration, fso-utils / configure-uboot, are about changing NAND-bootmenu that is flashed from the u-boot binaries. When using uboot, if you have applied the below 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, but installed your Debian with {{{vfat}}} as the boot partition, enter the NOR (aux + power) or NAND (power + aux) U-Boot menu and select {{{Boot from SD (fat+ext2)}}} to boot Debian. If you are not using vfat + ext2 configuration, 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 a) Debian boots by default, from the MicroSD card, with an {{{ext2}}} boot partition, b) The image installed in Flash can be booted by entering the NAND uBoot menu and selecting the second entry. 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 on your desktop machine as well, available from the regular Debian archive * !FreeRunner booted into NOR U-Boot and connected via USB. (See the [[http://wiki.openmoko.org/wiki/Flashing_the_Neo_FreeRunner|OpenMoko Wiki]] for more information) Now you can configure your uBoot using these commands 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 [[http://paste.ubuntuusers.de/391456/|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.