http://openmoko.org/api.php?action=feedcontributions&user=Thewtex&feedformat=atomOpenmoko - User contributions [en]2024-03-28T21:40:17ZUser contributionsMediaWiki 1.19.24http://openmoko.org/wiki/User:ThewtexUser:Thewtex2010-01-24T07:57:37Z<p>Thewtex: Removing all content from page</p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/Android_on_FreerunnerAndroid on Freerunner2009-08-27T03:07:46Z<p>Thewtex: /* Introduction */</p>
<hr />
<div>{{Languages|Android on Freerunner}}<br />
<br />
{|align=right<br />
|__TOC__<br />
|}<br />
[[Image:Freerunner-android-01.png]]<br />
== Introduction == <br />
This page is dedicated to the installation of [[Android]] (an [[Open Handset Alliance]] Project) on the [[Neo 1973]] and [[Neo FreeRunner]] handsets.<br />
<br />
You can find other information, such as porting, development and day to day usage here : [[Android]]<br />
<br />
The easiest way to install Android on the Freerunner at the moment is with Koolu images, because you just need to copy the installation files on an FAT formatted SD card and boot from SD card (see information below).<br />
<br />
== Before you start ==<br />
<br />
=== Using this guide ===<br />
<br />
*1<br />
<br />
If you see a command like this, you must run it as root<br />
<br />
#<br />
<br />
If you see one like this, you can run it as a regular user<br />
<br />
$<br />
<br />
To work as a root, issue a command<br />
sudo -s<br />
<br />
To exit the root mode, type<br />
exit<br />
<br />
*2<br />
<br />
When you see these commands<br />
<br />
adb<br />
<br />
dfu-util<br />
<br />
It is assumed that you have them installed on your system and inside your /usr/bin. <br />
<br />
To install dfu-util, type as a root<br />
apt-get install dfu-util<br />
<br />
To install adb, type as a root<br />
cd /usr/bin<br />
wget http://people.openmoko.org/sean_mcneil/adb<br />
chmod +x adb<br />
<br />
<br />
*3<br />
<br />
adb connects to Android but you need to set up Android on FreeRunner first, otherwise you may skip this step. This will not work on other distributions. Make sure your FreeRunner was booted while being plugged in to a USB port. Then run the following commands in Terminal:<br />
<br />
# ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
# adb kill-server<br />
# ADBHOST=192.168.0.202 adb devices<br />
<br />
You should now have no trouble using adb.<br />
<br />
=== Registering with the GSM network ===<br />
<br />
Before you install Android on your FreeRunner you should check, using the operating system it came with, that your sim card will register with your network.<br />
<br />
The version of internal [[GSM]] [[firmware]] that comes preloaded on the FreeRunner has compatibility issues with a feature on newer [[sim]] cards. This effects [[3G]], o2 sims and possibly others. if you have one of those you will probably need to upgrade your GSM firmware to get the sim to register with the network. Doing that first means you know it's working before you install Android.<br />
<br />
[http://wiki.openmoko.org/wiki/GSM/Flashing GSM/Flashing]<br />
<br />
To flash your GSM firmware you will need to have [[USB]] networking setup between your desktop and the OM distribution installed on your FreeRunner. However, your FreeRunner does not need internet access as you can download the GSM firmware files on your desktop PC and transfer them to your FreeRunner using [http://unixhelp.ed.ac.uk/CGI/man-cgi?scp+1 scp]<br />
<br />
[http://wiki.openmoko.org/wiki/Usb_networking USB Networking]<br />
<br />
== Configuring the Bootloader ==<br />
<br />
There are two bootloaders you can use to boot Android; [http://wiki.openmoko.org/wiki/Qi Qi] and [http://wiki.openmoko.org/wiki/Uboot Uboot]. Uboot comes installed on the FreeRunner, Qi is a replacement and is thought to be superior. However there have been, and probably still are, problems when using Qi and Android so Uboot is recommended at this point.<br />
<br />
{{Note|If you are installing the latest Koolu images to flash, Koolu provides an automatic installation that includes the [[Qi]] bootloader. You can safely ignore the rest of this section, as your bootloader will be configured automatically.}}<br />
<br />
You can download images for them both here:<br />
<br />
[http://people.openmoko.org/andy/ Andy Tracking Images] (For Qi on the FreeRunner grab the image starting qi-s3c2442)<br />
<br />
[http://downloads.openmoko.org/distro/unstable/daily/om-gta02/ Latest Uboot]<br />
<br />
The Android kernel image can be more than 2MB in size. The UBoot environment that comes with your FreeRunner is only able to boot a kernel 2MB in size or less. To use a kernel larger than 2MB you have two option:<br />
<br />
* change to Qi as bootloader<br />
* modify uboot to be able boot a Kernel that has more than 2MB in size<br />
<br />
In detail the options will be described as follows:<br />
<br />
=== Use Qi as Bootloader ===<br />
Change to the [http://wiki.openmoko.org/wiki/Qi Qi Bootloader]. It supports 2MB kernels out of the box. For GTA02, you want bootloader: <br />
qi-s3c2442-master_....<br />
and you install the [[Qi]] with [[dfu-util]] and that you take for example the following kernel: <br />
uImage-moredrivers-GTA02_andy-tracking_...<br />
Because Qi tries to boot from the first three partitions of SD Card. If Qi finds a kernel there it start the kernel if there is any ext2 / 3 partition on there in the folder /boot e.g.<br />
/boot/uImage-GTA02.bin <br />
Qi will try to boot it and use that partition as the rootfs. If none of the first three SD partitions have the kernel file, it will boot<br />
from the NAND kernel partition as usual.<br />
<br />
=== Modify Uboot as Bootloader for more than 2MB ===<br />
Adjust your [[Uboot]] environment to [http://meinopenmoko.blogspot.com/2008/12/prepare-uboot-to-boot-android.html support a Kernel of more than 2 MB]<br />
<br />
Access your Boot-prompt e.g. with ''screen'' from your Linux Desktop-PC with ''U-Boot consol to USB'' in U-Boot:<br />
screen /dev/ttyACM0 <br />
<br />
In your Boot-prompt type:<br />
setenv bootcmd setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel 0x300000\; bootm 0x32000000<br />
saveenv<br />
<br />
<br />
'''Problem:''' After copy and pasting the commands mentioned above to modify the UBoot environment the prompt hangs up after the first backslash "\". ''Work around:'' install the [http://panicking.kicks-ass.org/download/ kernel-image] and [http://panicking.kicks-ass.org/download/ Android-image] with 1.9MB from Michael Trimarchi.<br />
<br />
The above '''Problem:''' appears to be an issue with pasting too quickly. Trying copying and pasting one thing at a time.<br />
<br />
== Installing Android on the Internal Flash ==<br />
<br />
=== Method 1: Koolu Automatic Installation ===<br />
{{Warning|This install process overwrites *everything* on the NAND in the phone, including the bootloader. If this is not what you would like to do, please use the manual installation instructions (next section) instead.}}<br />
[http://www.koolu.com/ Koolu] provides an automatic installation for Beta4 images and later. You can get them here:<br />
<br />
[http://freerunner.android.koolu.com/release-files Release files (Android FreeRunner)]<br />
<br />
The installation process is simple:<br />
# Unpack the files on to a FAT formatted SD card.<br />
# Insert card into the Freerunner, and boot from NOR menu (hold AUX key, then power)<br />
# Chose boot from SD Card (FAT and ext2)<br />
<br />
The automated install process should begin. It installs the Qi bootloader, reboots, the kernel, reboots, then the system image.<br />
After "Installed everything. Rebooting... ", you should remove the SD-Card, or the installation repeats endless.<br />
<br />
=== Method 2: Manual Installation (Koolu or other images) ===<br />
<br />
Preparing the SD Card with two primary partitions is necessary for manually installing Android.<br />
<br />
==== Preparing the SD Card ====<br />
<br />
The Micro SD Card in your FreeRunner needs to be configured with two 2 primary partitions before Android will boot. First a VFAT/MSDOS (16 or 32) which acts as the '/sdcard' storage area (for pictures, movies, music, etc). Second an ext3 primary partition which Android uses as '/data' with in which it stores settings, caches, etc.<br />
<br />
===== On Linux =====<br />
<br />
Insert the Micro SD Card from your FreeRunner into your Linux desktop then bring up a Terminal and type<br />
<br />
$ dmesg | grep sd<br />
<br />
You will get an output like this, in this instance we can see that the SD Card has been assigned the device name 'sde'<br />
<br />
...<br />
sd 9:0:0:0: [sde] Attached SCSI removable disk<br />
...<br />
<br />
Now, as root, use 'fdisk' to partition the device.<br />
<br />
# fdisk /dev/sde <br />
<br />
Pressing 'p' will show you the current partitions on the SD Card 'd' will delete them and 'n' will create a new one. Create a primary partition for your media. Then another primary partition for Android to store its data on.<br />
<br />
On a 1Gig card I used 768MB for the first partition ('+768MB' in fdisk) and the remainder for Android data. Here is fdisk's partition output:<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/sde1 1 769 750513+ 83 Linux<br />
/dev/sde2 770 1016 241072 83 Linux<br />
<br />
Now all that's left to do is format the partitions with the appropriate filesystem But first hit 'w' in fdisk to write the changes to the SD Card.<br />
<br />
Then format like this:<br />
<br />
# mkfs.vfat -v -n and-media -F 32 /dev/sde1<br />
# mkfs.ext3 -v -L and-data /dev/sde2<br />
<br />
That's it, you can now remove the SD card from your desktop. If you re-insert it you will have two new usb disk devices.<br />
{{Note|After Android has booted you will only be able to access the 'data' partition as root.}}There is no need to populate the ext3 partition at all. The VFAT partition can be populated with media content (ring tones etc.) if you so desire. {{Note|It can be worth reformatting the data partition when you upgrade the Android OS on your phone. Old settings can result in problems, wifi for example. But remember that formatting the Data partition will result in your preferences, text messages and contacts etc. being erased.}}<br />
<br />
===== On FreeRunner (2008.x) =====<br />
<br />
The SD card can be formatted from within an existing 2008.x installation on your FreeRunner.<br />
SSH as root into the FreeRunner and use 'fdisk' to partition the device.<br />
<br />
# fdisk /dev/mmcblk0<br />
<br />
After this create the partitions as described in the step above.<br />
<br />
To format the new vfat partition you will need dosfstools which can be downloaded from<br />
<br />
[http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk dosfstools_2.11-r0_armv4t.ipk]<br />
<br />
Use any SCP client to copy this file to your FreeRunner and install using<br />
<br />
opkg install dosfstools_2.11-r0_armv4t.ipk<br />
<br />
Once the installation is complete format the partitions:<br />
<br />
# mkfs.vfat -v -n and-media /dev/mmcblk0p1<br />
# mkfs.ext3 -v -L and-data /dev/mmcblk0p2<br />
<br />
NOTE: In case you are unable to format the partitions because they are already mounted for some reason you can get a list of process IDs that are using it by running:<br />
<br />
# fuser -m /media/card<br />
<br />
Then kill all the processes that were using the card and try formatting again.<br />
<br />
===== On other OS's =====<br />
<br />
There are no open source or free partition editors on Windows or Mac that can manage an ext3 partition. If you do not have Linux installed you can use the [http://gparted.sourceforge.net/ GParted] bootable CD. This CD will boot into a graphical environment with which you can partition your SD Card. You may have to boot with the SD Card inserted for GParted to recognize it as a drive.<br />
<br />
==== Downloading Android Images ====<br />
<br />
Next, Grab yourself the latest Android images. There are two parts you need to flash, the kernel (uImage*.bin) and the root fs (android*.jffs2). [http://www.koolu.com/ Koolu] release images and you can get them here:<br />
<br />
[http://freerunner.android.koolu.com/release-files Release files (Android FreeRunner)]<br />
<br />
For Koolu the images the size of uImage is bigger than 2.0MB, so you need to update Bootloader uboot or use [[Qi]]. <br />
Koolu are not the only people working on porting Android to the FreeRunner and although collaboration is hopefully on the way, there are other places to get images: <br />
<br />
Michael Trimarchi's (panicking) images are the most up to date and functional (see bellow for installation instructions) :<br />
<br />
[http://panicking.kicks-ass.org/download/ Michael Trimarchi's images with latest fixes]<br />
[http://www.fragcom.de/android/ Mirror]<br />
<br />
Sean McNeil has placed an older 2.6.26 kernel and root fs at:<br />
<br />
[http://people.openmoko.org/sean_mcneil/ Sean McNeil images]<br />
<br />
For Sean McNeil's images the size of uImage > 2.0MB, so you need to update Bootloader uboot or use [[Qi]].<br />
<br />
At [http://moko.serdar-dere.net/ http://moko.serdar-dere.net/] you can also download Koolu images, that are named "koolu-1.0-yyyymmmddd.tar.bz2". Actually I thought these are just the same images as provided by Koolu itself, so I never tried them. But since July, 1st you can also download the file [http://moko.serdar-dere.net/cupcake_20090701.tar.bz2 cupcake_20090701.tar.bz2], that has not been provided by Koolu (yet?). Since there are no comments or contact details, I wasn't able to find out whether it's just a personal build.<br />
<br />
==== Flashing the FreeRunner ====<br />
<br />
===== On Linux =====<br />
<br />
To flash your FreeRunner, replace what ever phone stack you have on there at the moment with Android, first download [http://wiki.openmoko.org/wiki/Dfu-util dfu-util], this is the program that will flash your phone.<br />
<br />
Once you have that installed (whether by simply downloading the binary or installing an rpm) Open up a terminal and cd to where you downloaded the images too eg.<br />
<br />
# cd /home/joe/Downloads<br />
<br />
Plug your FreeRunner into a USB port and boot it into the nand boot loader; Hold down the aux button and then the power button until nor appears.<br />
<br />
{{Note|The FreeRunner will only stay in in the nand bootloader stateINSTALLER for about 30 seconds with no activity.}}<br />
<br />
Choose one of the following images from (A) Koolu or from (B) Michael Trimarchi.<br />
<br />
===== (A) Flashing with the Koolu Images=====<br />
{{Warning|These instructions are not valid anymore because in last beta releases there are not more *.jffs2 images. The only valid method to install latest betas seem to be to use Koolu automatic installation process.}}<br />
If you flash the freerunner with a kernel image from Koolu, then you must enable u-boot to boot kernel greater than 2MB. If you have done that or you have [[Qi]] installed then proceed with flashing the kernel or use the automated Koolu installation just by putting the images on FAT formated SD-Card and boot from the SD card. <br />
<br />
If you want to flash the kernel image (you will need to be root) with this command:<br />
<br />
# dfu-util -a kernel -R -D uImage-moredrivers-GTA02.bin<br />
<br />
and finally the root fs with this one:<br />
<br />
# dfu-util -a rootfs -R -D androidfs-koolu-beta3.jffs2<br />
<br />
If your u-Boot is not configured to handle a 2MB kernel that install the following images of Michael Trimarchi<br />
<br />
=====(B) Flashing with the Michael Trimarchi's Images=====<br />
If you have decided to install Michael Trimarchi's Images you have flash the kernel image (you will need to be root) with this command:<br />
<br />
# dfu-util -a kernel -R -D uImage-v17.bin<br />
<br />
and finally the root fs with this one:<br />
<br />
# dfu-util -a rootfs -R -D freerunner-v14.6.jffs2<br />
<br />
See also http://www.newlc.com/en/freerunner-mobile-which-support-android-cupcake for older instructions relating to these.<br />
<br />
======cupcake snapshot v14-15======<br />
As of this writing this is the latest versions from Michael Trimarchi. To get incoming calls to work correctly the phone need to be provisioned the following steps explains how.<br />
<br />
First you need to setup the android debug bridge(adb) here are instructions for that [[Android debug bridge]].<br />
After that use adb to connect to the freerunner:<br />
<br />
# ADBHOST=192.168.0.202 ./adb devices<br />
# ./adb shell<br />
<br />
These instructions may need some alterations depending on how adb is installed on your desktop.<br />
<br />
In the shell execute the following commands:<br />
<br />
# sqlite3 /data/data/com.android.providers.settings/databases/settings.db<br />
SQLite version 3.5.9<br />
Enter ".help" for instructions<br />
sqlite> INSERT INTO secure (name, value) VALUES ('device_provisioned', 1);<br />
sqlite> .exit<br />
<br />
Some more information is available from Michael here:<br />
http://panicking.kicks-ass.org/download/readme.txt<br />
<br />
Amongst other there are some hints on how to get gprs to work.<br />
<br />
This should get a phone that can work as a your everyday phone this has been reported on the android-freerunner mailinglist by several people (the author of this entry included).<br />
<br />
To get sdcard to work the sdcard fix described bellow may be needed.<br />
<br />
======cupcake snapshot v6======<br />
The cupcake snapshot v6 image from Michael Trimarchi can be found here <tt>freerunner-cupcake-snapshot-v6.jffs2</tt>, however you might (more than likely will) run into a problem if you install it directly: The FreeRunner boots up but gets stuck when the colours of the "Android" log cycle (it keeps twinkling for ever).<br />
<br />
This image will work if you follow these steps in the right order:<br />
<br />
[[Image:Cupcake-snapshot-v7.jpeg|thumbnail]]<br />
# install, or verify that you have, a recent version of qi<br />
# reformat and prepare your SD card as described above<br />
# flash (kernel) uImage-v17.bin<br />
# flash (rootfs) freerunner-v14.6-cupcake.jffs2<br />
# reboot the FreeRunner, it should start with Android<br />
# shut it down (hold the power button for 5 sec, "shutdown", "OK")<br />
# flash (rootfs) freerunner-cupcake-snapshot-v6.jffs2<br />
<br />
This seems complicated, but it has been reported to work on the [http://android.koolu.org/listinfo.cgi/android-freerunner-koolu.org android-freerunner mailing list from koolu] by several people (the author of this entry included).<br />
<br />
=====DFU-UTIL problems=====<br />
{{Note|The './' part assumes you are using the binary download and that it was downloaded to the same place as your images. If you are, remember to make the dfu-util binary executable.}}If you find that dfu-util complains about there being more than one USB device available it might be because you have a webcam or some other device plugged in. If you can not remove the other device follow this procedure:<br />
<br />
Unplug your FreeRunner and run the command<br />
<br />
# dfu-utils --list<br />
<br />
This will list the other connected usb devices. Now plug your FreeRunner back in and run the command again, the new device will be your FreeRunner. You can now go ahead and flash with the added command '-d FREERUNNER_DEVICE' eg.<br />
<br />
# dfu-util -d 0x1d50:0x5119 -a rootfs -R -D freerunner-v13.jffs2<br />
<br />
== Installing Android on an SD card ==<br />
<br />
=== Images ===<br />
<br />
There are currently a few prebuilt images:<br />
[http://activationrecord.net/radekp/openmoko/android/ Radek Polak's SD card images] (install on ext3, first partition on SD must be FAT16)<br />
<br />
--[[User:Matzehuber|matzehuber]] 12:58, 22 July 2009 (UTC) seems to have a ext2 partition, image seems to need to be named uImage.bin<br />
<br />
=== Using jffs2 images ===<br />
<br />
You can also boot from the SD Card using the pre built images like so :-<br />
* Mount the image using [http://wiki.openmoko.org/images/8/82/Mntjffs.sh this] script like so <br />
sudo ./Mntjffs.sh freerunner-v5.jffs2 image/<br />
* Then copy (cp -R) the files in directory image/ to any of the first three partitions on the SD Card (if using Qi) eg cp -R /your-path/image/* /media/android/<br />
* cd /media/android.<br />
* wget http://activationrecord.net/radekp/openmoko/android/init.rc .<br />
* mkdir boot<br />
* copy the kernel here and name it uImage-GTA02.bin<br />
<br />
<br />
Some notes about booting android from sdcard : <br />
<br />
=== Setup ===<br />
<br />
* Build android from source. See [http://trac.koolu.org/ koolu website] for directions.<br />
* Use the first script in [http://lists.openmoko.org/pipermail/community/2008-December/036982.html this mail] (adapt to your filesystem) to stage your android install.<br />
* copy the contents of this directory on a ext3 partition on your sdcard.<br />
* add a /boot directory on your sdcard.<br />
* copy the uImage-android kernel (see above) and copy it inside your /boot with the exact name '''uImage-GTA02.bin'''<br />
* I changed the init.rc (in your root on the sd) to remove mounts that could be problematic (/data for example) :<br />
<pre><br />
--- filesystem/root/init.rc 2008-12-15 17:51:14.000000000 +0100<br />
+++ phyce.init.rc 2008-12-19 15:56:25.000000000 +0100<br />
@@ -24,7 +24,7 @@<br />
mkdir /sqlite_stmt_journals 01777 root root<br />
mount tmpfs tmpfs /sqlite_stmt_journals size=4m<br />
<br />
- mount rootfs rootfs / ro remount<br />
+ mount rootfs rootfs / rw remount<br />
<br />
write /proc/sys/kernel/panic_on_oops 1<br />
write /proc/sys/kernel/hung_task_timeout_secs 0<br />
@@ -38,14 +38,14 @@<br />
# mount yaffs2 mtd@system /system ro remount<br />
<br />
# We chown/chmod /data again so because mount is run as root + defaults<br />
- mount ext3 /dev/block/mmcblk0p2 /data nosuid nodev<br />
- chown system system /data<br />
- chmod 0771 /data<br />
+# mount ext3 /dev/block/mmcblk0p2 /data nosuid nodev<br />
+# chown system system /data<br />
+# chmod 0771 /data<br />
<br />
# Same reason as /data above<br />
- mount yaffs2 mtd@cache /cache nosuid nodev<br />
- chown system cache /cache<br />
- chmod 0770 /cache<br />
+# mount yaffs2 mtd@cache /cache nosuid nodev<br />
+# chown system cache /cache<br />
+# chmod 0770 /cache<br />
</pre><br />
<br />
* Install [[Qi]] on you NAND flash. You can still boot whatever distro you've got on internal flash using the NOR bootloader. You should try the magic file in /boot to show kernel messages.<br />
* boot the GTA02, and pray.<br />
<br />
<br />
<br />
== Remote access to Android (adb) ==<br />
<br />
Although this is not technically part of installing Android it is very useful to have set up. Android Debug Bridge (adb) is a versatile tool that lets you manage the state of a device, in this case, your FreeRunner.<br />
<br />
Some ways you can use adb include:<br />
<br />
* Run shell commands on the phone.<br />
* Copy files from your desktop to the phone and Vice-versa.<br />
<br />
You can find out about it on the [http://developer.android.com/guide/developing/tools/adb.html Android developers page] and a page on this wiki [[Android debug bridge]]<br />
<br />
However if you would just like a very quick getting started guide, read on. You can download a binary from [http://people.openmoko.org/sean_mcneil/adb here]. Then if you like copy it to /usr/bin (and don't forget to make it executable).<br />
<br />
First you must boot Android while it is plugged in to a USB port, you can unplug it and re-plug it all you like after that but for the USB connection to work it must be connected at boot time.<br />
<br />
Next issue this command to set up USB networking...<br />
<br />
# ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
<br />
Then this one because it helps make sure everything works nicely...<br />
<br />
# adb kill-server<br />
<br />
Followed by this to find your phone...<br />
<br />
ADBHOST=192.168.0.202 adb devices<br />
<br />
{{Note|Remember that if you didn't copy adb to /usr/bin you will need to run these commands from the directory you downloaded it too and put ./ in front of adb.}}Now you are free to remotely connect to your Android phone, here are a couple of commands you might find useful<br />
<br />
*Copy a file to your SD card:<br />
<br />
# adb push YOUR_FILE /sdcard/<br />
<br />
*Copy a log file from your phone to your computer:<br />
<br />
# adb logcat -d > android.log<br />
<br />
*If you just want to log in to the Android shell:<br />
<br />
# adb shell<br />
<br />
== Troubleshooting ==<br />
=== SD card won't mount ===<br />
<br />
There should be a /sdcard directory on your FreeRunner, for some reason this does not always get created (the command is in the 'init.rc' but does not always work). To create the correct dir on your FreeRunner and so enable your SD card, do the following.<br />
<br />
* Plug your FreeRunner into a USB port, boot Android and then enter these commands:<br />
<br />
# ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
# adb kill-server<br />
# ADBHOST=192.168.0.202 adb devices<br />
# adb shell mount -o remount,rw /dev/root /<br />
# adb shell<br />
<br />
# mkdir /sdcard<br />
# exit<br />
<br />
* Then reboot your FreeRunner<br />
<br />
== See also ==<br />
* [[Android|Main Android page on this wiki]]<br />
* [http://www.newlc.com/en/freerunner-mobile-which-support-android-cupcake Video of usability]<br />
<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Android]]</div>Thewtexhttp://openmoko.org/wiki/Android_on_FreerunnerAndroid on Freerunner2009-08-27T03:07:14Z<p>Thewtex: /* Introduction */</p>
<hr />
<div>{{Languages|Android on Freerunner}}<br />
<br />
{|align=right<br />
|__TOC__<br />
|}<br />
[[Image:Freerunner-android-01.png]]<br />
== Introduction == <br />
This page is dedicated to the installation of [[Android]] (an [[Open Handset Alliance]] Project) on the [[Neo 1973]] and [[Neo FreeRunner]] handsets.<br />
<br />
You can find other information, such as porting, development and day to day usage here : [[Android]]<br />
<br />
The easiest way to install Android on the Freerunner at the moment is Koolu images, because you just need to copy the installation files on an FAT formatted SD card and boot from SD card (see information below).<br />
<br />
== Before you start ==<br />
<br />
=== Using this guide ===<br />
<br />
*1<br />
<br />
If you see a command like this, you must run it as root<br />
<br />
#<br />
<br />
If you see one like this, you can run it as a regular user<br />
<br />
$<br />
<br />
To work as a root, issue a command<br />
sudo -s<br />
<br />
To exit the root mode, type<br />
exit<br />
<br />
*2<br />
<br />
When you see these commands<br />
<br />
adb<br />
<br />
dfu-util<br />
<br />
It is assumed that you have them installed on your system and inside your /usr/bin. <br />
<br />
To install dfu-util, type as a root<br />
apt-get install dfu-util<br />
<br />
To install adb, type as a root<br />
cd /usr/bin<br />
wget http://people.openmoko.org/sean_mcneil/adb<br />
chmod +x adb<br />
<br />
<br />
*3<br />
<br />
adb connects to Android but you need to set up Android on FreeRunner first, otherwise you may skip this step. This will not work on other distributions. Make sure your FreeRunner was booted while being plugged in to a USB port. Then run the following commands in Terminal:<br />
<br />
# ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
# adb kill-server<br />
# ADBHOST=192.168.0.202 adb devices<br />
<br />
You should now have no trouble using adb.<br />
<br />
=== Registering with the GSM network ===<br />
<br />
Before you install Android on your FreeRunner you should check, using the operating system it came with, that your sim card will register with your network.<br />
<br />
The version of internal [[GSM]] [[firmware]] that comes preloaded on the FreeRunner has compatibility issues with a feature on newer [[sim]] cards. This effects [[3G]], o2 sims and possibly others. if you have one of those you will probably need to upgrade your GSM firmware to get the sim to register with the network. Doing that first means you know it's working before you install Android.<br />
<br />
[http://wiki.openmoko.org/wiki/GSM/Flashing GSM/Flashing]<br />
<br />
To flash your GSM firmware you will need to have [[USB]] networking setup between your desktop and the OM distribution installed on your FreeRunner. However, your FreeRunner does not need internet access as you can download the GSM firmware files on your desktop PC and transfer them to your FreeRunner using [http://unixhelp.ed.ac.uk/CGI/man-cgi?scp+1 scp]<br />
<br />
[http://wiki.openmoko.org/wiki/Usb_networking USB Networking]<br />
<br />
== Configuring the Bootloader ==<br />
<br />
There are two bootloaders you can use to boot Android; [http://wiki.openmoko.org/wiki/Qi Qi] and [http://wiki.openmoko.org/wiki/Uboot Uboot]. Uboot comes installed on the FreeRunner, Qi is a replacement and is thought to be superior. However there have been, and probably still are, problems when using Qi and Android so Uboot is recommended at this point.<br />
<br />
{{Note|If you are installing the latest Koolu images to flash, Koolu provides an automatic installation that includes the [[Qi]] bootloader. You can safely ignore the rest of this section, as your bootloader will be configured automatically.}}<br />
<br />
You can download images for them both here:<br />
<br />
[http://people.openmoko.org/andy/ Andy Tracking Images] (For Qi on the FreeRunner grab the image starting qi-s3c2442)<br />
<br />
[http://downloads.openmoko.org/distro/unstable/daily/om-gta02/ Latest Uboot]<br />
<br />
The Android kernel image can be more than 2MB in size. The UBoot environment that comes with your FreeRunner is only able to boot a kernel 2MB in size or less. To use a kernel larger than 2MB you have two option:<br />
<br />
* change to Qi as bootloader<br />
* modify uboot to be able boot a Kernel that has more than 2MB in size<br />
<br />
In detail the options will be described as follows:<br />
<br />
=== Use Qi as Bootloader ===<br />
Change to the [http://wiki.openmoko.org/wiki/Qi Qi Bootloader]. It supports 2MB kernels out of the box. For GTA02, you want bootloader: <br />
qi-s3c2442-master_....<br />
and you install the [[Qi]] with [[dfu-util]] and that you take for example the following kernel: <br />
uImage-moredrivers-GTA02_andy-tracking_...<br />
Because Qi tries to boot from the first three partitions of SD Card. If Qi finds a kernel there it start the kernel if there is any ext2 / 3 partition on there in the folder /boot e.g.<br />
/boot/uImage-GTA02.bin <br />
Qi will try to boot it and use that partition as the rootfs. If none of the first three SD partitions have the kernel file, it will boot<br />
from the NAND kernel partition as usual.<br />
<br />
=== Modify Uboot as Bootloader for more than 2MB ===<br />
Adjust your [[Uboot]] environment to [http://meinopenmoko.blogspot.com/2008/12/prepare-uboot-to-boot-android.html support a Kernel of more than 2 MB]<br />
<br />
Access your Boot-prompt e.g. with ''screen'' from your Linux Desktop-PC with ''U-Boot consol to USB'' in U-Boot:<br />
screen /dev/ttyACM0 <br />
<br />
In your Boot-prompt type:<br />
setenv bootcmd setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel 0x300000\; bootm 0x32000000<br />
saveenv<br />
<br />
<br />
'''Problem:''' After copy and pasting the commands mentioned above to modify the UBoot environment the prompt hangs up after the first backslash "\". ''Work around:'' install the [http://panicking.kicks-ass.org/download/ kernel-image] and [http://panicking.kicks-ass.org/download/ Android-image] with 1.9MB from Michael Trimarchi.<br />
<br />
The above '''Problem:''' appears to be an issue with pasting too quickly. Trying copying and pasting one thing at a time.<br />
<br />
== Installing Android on the Internal Flash ==<br />
<br />
=== Method 1: Koolu Automatic Installation ===<br />
{{Warning|This install process overwrites *everything* on the NAND in the phone, including the bootloader. If this is not what you would like to do, please use the manual installation instructions (next section) instead.}}<br />
[http://www.koolu.com/ Koolu] provides an automatic installation for Beta4 images and later. You can get them here:<br />
<br />
[http://freerunner.android.koolu.com/release-files Release files (Android FreeRunner)]<br />
<br />
The installation process is simple:<br />
# Unpack the files on to a FAT formatted SD card.<br />
# Insert card into the Freerunner, and boot from NOR menu (hold AUX key, then power)<br />
# Chose boot from SD Card (FAT and ext2)<br />
<br />
The automated install process should begin. It installs the Qi bootloader, reboots, the kernel, reboots, then the system image.<br />
After "Installed everything. Rebooting... ", you should remove the SD-Card, or the installation repeats endless.<br />
<br />
=== Method 2: Manual Installation (Koolu or other images) ===<br />
<br />
Preparing the SD Card with two primary partitions is necessary for manually installing Android.<br />
<br />
==== Preparing the SD Card ====<br />
<br />
The Micro SD Card in your FreeRunner needs to be configured with two 2 primary partitions before Android will boot. First a VFAT/MSDOS (16 or 32) which acts as the '/sdcard' storage area (for pictures, movies, music, etc). Second an ext3 primary partition which Android uses as '/data' with in which it stores settings, caches, etc.<br />
<br />
===== On Linux =====<br />
<br />
Insert the Micro SD Card from your FreeRunner into your Linux desktop then bring up a Terminal and type<br />
<br />
$ dmesg | grep sd<br />
<br />
You will get an output like this, in this instance we can see that the SD Card has been assigned the device name 'sde'<br />
<br />
...<br />
sd 9:0:0:0: [sde] Attached SCSI removable disk<br />
...<br />
<br />
Now, as root, use 'fdisk' to partition the device.<br />
<br />
# fdisk /dev/sde <br />
<br />
Pressing 'p' will show you the current partitions on the SD Card 'd' will delete them and 'n' will create a new one. Create a primary partition for your media. Then another primary partition for Android to store its data on.<br />
<br />
On a 1Gig card I used 768MB for the first partition ('+768MB' in fdisk) and the remainder for Android data. Here is fdisk's partition output:<br />
<br />
Device Boot Start End Blocks Id System<br />
/dev/sde1 1 769 750513+ 83 Linux<br />
/dev/sde2 770 1016 241072 83 Linux<br />
<br />
Now all that's left to do is format the partitions with the appropriate filesystem But first hit 'w' in fdisk to write the changes to the SD Card.<br />
<br />
Then format like this:<br />
<br />
# mkfs.vfat -v -n and-media -F 32 /dev/sde1<br />
# mkfs.ext3 -v -L and-data /dev/sde2<br />
<br />
That's it, you can now remove the SD card from your desktop. If you re-insert it you will have two new usb disk devices.<br />
{{Note|After Android has booted you will only be able to access the 'data' partition as root.}}There is no need to populate the ext3 partition at all. The VFAT partition can be populated with media content (ring tones etc.) if you so desire. {{Note|It can be worth reformatting the data partition when you upgrade the Android OS on your phone. Old settings can result in problems, wifi for example. But remember that formatting the Data partition will result in your preferences, text messages and contacts etc. being erased.}}<br />
<br />
===== On FreeRunner (2008.x) =====<br />
<br />
The SD card can be formatted from within an existing 2008.x installation on your FreeRunner.<br />
SSH as root into the FreeRunner and use 'fdisk' to partition the device.<br />
<br />
# fdisk /dev/mmcblk0<br />
<br />
After this create the partitions as described in the step above.<br />
<br />
To format the new vfat partition you will need dosfstools which can be downloaded from<br />
<br />
[http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk dosfstools_2.11-r0_armv4t.ipk]<br />
<br />
Use any SCP client to copy this file to your FreeRunner and install using<br />
<br />
opkg install dosfstools_2.11-r0_armv4t.ipk<br />
<br />
Once the installation is complete format the partitions:<br />
<br />
# mkfs.vfat -v -n and-media /dev/mmcblk0p1<br />
# mkfs.ext3 -v -L and-data /dev/mmcblk0p2<br />
<br />
NOTE: In case you are unable to format the partitions because they are already mounted for some reason you can get a list of process IDs that are using it by running:<br />
<br />
# fuser -m /media/card<br />
<br />
Then kill all the processes that were using the card and try formatting again.<br />
<br />
===== On other OS's =====<br />
<br />
There are no open source or free partition editors on Windows or Mac that can manage an ext3 partition. If you do not have Linux installed you can use the [http://gparted.sourceforge.net/ GParted] bootable CD. This CD will boot into a graphical environment with which you can partition your SD Card. You may have to boot with the SD Card inserted for GParted to recognize it as a drive.<br />
<br />
==== Downloading Android Images ====<br />
<br />
Next, Grab yourself the latest Android images. There are two parts you need to flash, the kernel (uImage*.bin) and the root fs (android*.jffs2). [http://www.koolu.com/ Koolu] release images and you can get them here:<br />
<br />
[http://freerunner.android.koolu.com/release-files Release files (Android FreeRunner)]<br />
<br />
For Koolu the images the size of uImage is bigger than 2.0MB, so you need to update Bootloader uboot or use [[Qi]]. <br />
Koolu are not the only people working on porting Android to the FreeRunner and although collaboration is hopefully on the way, there are other places to get images: <br />
<br />
Michael Trimarchi's (panicking) images are the most up to date and functional (see bellow for installation instructions) :<br />
<br />
[http://panicking.kicks-ass.org/download/ Michael Trimarchi's images with latest fixes]<br />
[http://www.fragcom.de/android/ Mirror]<br />
<br />
Sean McNeil has placed an older 2.6.26 kernel and root fs at:<br />
<br />
[http://people.openmoko.org/sean_mcneil/ Sean McNeil images]<br />
<br />
For Sean McNeil's images the size of uImage > 2.0MB, so you need to update Bootloader uboot or use [[Qi]].<br />
<br />
At [http://moko.serdar-dere.net/ http://moko.serdar-dere.net/] you can also download Koolu images, that are named "koolu-1.0-yyyymmmddd.tar.bz2". Actually I thought these are just the same images as provided by Koolu itself, so I never tried them. But since July, 1st you can also download the file [http://moko.serdar-dere.net/cupcake_20090701.tar.bz2 cupcake_20090701.tar.bz2], that has not been provided by Koolu (yet?). Since there are no comments or contact details, I wasn't able to find out whether it's just a personal build.<br />
<br />
==== Flashing the FreeRunner ====<br />
<br />
===== On Linux =====<br />
<br />
To flash your FreeRunner, replace what ever phone stack you have on there at the moment with Android, first download [http://wiki.openmoko.org/wiki/Dfu-util dfu-util], this is the program that will flash your phone.<br />
<br />
Once you have that installed (whether by simply downloading the binary or installing an rpm) Open up a terminal and cd to where you downloaded the images too eg.<br />
<br />
# cd /home/joe/Downloads<br />
<br />
Plug your FreeRunner into a USB port and boot it into the nand boot loader; Hold down the aux button and then the power button until nor appears.<br />
<br />
{{Note|The FreeRunner will only stay in in the nand bootloader stateINSTALLER for about 30 seconds with no activity.}}<br />
<br />
Choose one of the following images from (A) Koolu or from (B) Michael Trimarchi.<br />
<br />
===== (A) Flashing with the Koolu Images=====<br />
{{Warning|These instructions are not valid anymore because in last beta releases there are not more *.jffs2 images. The only valid method to install latest betas seem to be to use Koolu automatic installation process.}}<br />
If you flash the freerunner with a kernel image from Koolu, then you must enable u-boot to boot kernel greater than 2MB. If you have done that or you have [[Qi]] installed then proceed with flashing the kernel or use the automated Koolu installation just by putting the images on FAT formated SD-Card and boot from the SD card. <br />
<br />
If you want to flash the kernel image (you will need to be root) with this command:<br />
<br />
# dfu-util -a kernel -R -D uImage-moredrivers-GTA02.bin<br />
<br />
and finally the root fs with this one:<br />
<br />
# dfu-util -a rootfs -R -D androidfs-koolu-beta3.jffs2<br />
<br />
If your u-Boot is not configured to handle a 2MB kernel that install the following images of Michael Trimarchi<br />
<br />
=====(B) Flashing with the Michael Trimarchi's Images=====<br />
If you have decided to install Michael Trimarchi's Images you have flash the kernel image (you will need to be root) with this command:<br />
<br />
# dfu-util -a kernel -R -D uImage-v17.bin<br />
<br />
and finally the root fs with this one:<br />
<br />
# dfu-util -a rootfs -R -D freerunner-v14.6.jffs2<br />
<br />
See also http://www.newlc.com/en/freerunner-mobile-which-support-android-cupcake for older instructions relating to these.<br />
<br />
======cupcake snapshot v14-15======<br />
As of this writing this is the latest versions from Michael Trimarchi. To get incoming calls to work correctly the phone need to be provisioned the following steps explains how.<br />
<br />
First you need to setup the android debug bridge(adb) here are instructions for that [[Android debug bridge]].<br />
After that use adb to connect to the freerunner:<br />
<br />
# ADBHOST=192.168.0.202 ./adb devices<br />
# ./adb shell<br />
<br />
These instructions may need some alterations depending on how adb is installed on your desktop.<br />
<br />
In the shell execute the following commands:<br />
<br />
# sqlite3 /data/data/com.android.providers.settings/databases/settings.db<br />
SQLite version 3.5.9<br />
Enter ".help" for instructions<br />
sqlite> INSERT INTO secure (name, value) VALUES ('device_provisioned', 1);<br />
sqlite> .exit<br />
<br />
Some more information is available from Michael here:<br />
http://panicking.kicks-ass.org/download/readme.txt<br />
<br />
Amongst other there are some hints on how to get gprs to work.<br />
<br />
This should get a phone that can work as a your everyday phone this has been reported on the android-freerunner mailinglist by several people (the author of this entry included).<br />
<br />
To get sdcard to work the sdcard fix described bellow may be needed.<br />
<br />
======cupcake snapshot v6======<br />
The cupcake snapshot v6 image from Michael Trimarchi can be found here <tt>freerunner-cupcake-snapshot-v6.jffs2</tt>, however you might (more than likely will) run into a problem if you install it directly: The FreeRunner boots up but gets stuck when the colours of the "Android" log cycle (it keeps twinkling for ever).<br />
<br />
This image will work if you follow these steps in the right order:<br />
<br />
[[Image:Cupcake-snapshot-v7.jpeg|thumbnail]]<br />
# install, or verify that you have, a recent version of qi<br />
# reformat and prepare your SD card as described above<br />
# flash (kernel) uImage-v17.bin<br />
# flash (rootfs) freerunner-v14.6-cupcake.jffs2<br />
# reboot the FreeRunner, it should start with Android<br />
# shut it down (hold the power button for 5 sec, "shutdown", "OK")<br />
# flash (rootfs) freerunner-cupcake-snapshot-v6.jffs2<br />
<br />
This seems complicated, but it has been reported to work on the [http://android.koolu.org/listinfo.cgi/android-freerunner-koolu.org android-freerunner mailing list from koolu] by several people (the author of this entry included).<br />
<br />
=====DFU-UTIL problems=====<br />
{{Note|The './' part assumes you are using the binary download and that it was downloaded to the same place as your images. If you are, remember to make the dfu-util binary executable.}}If you find that dfu-util complains about there being more than one USB device available it might be because you have a webcam or some other device plugged in. If you can not remove the other device follow this procedure:<br />
<br />
Unplug your FreeRunner and run the command<br />
<br />
# dfu-utils --list<br />
<br />
This will list the other connected usb devices. Now plug your FreeRunner back in and run the command again, the new device will be your FreeRunner. You can now go ahead and flash with the added command '-d FREERUNNER_DEVICE' eg.<br />
<br />
# dfu-util -d 0x1d50:0x5119 -a rootfs -R -D freerunner-v13.jffs2<br />
<br />
== Installing Android on an SD card ==<br />
<br />
=== Images ===<br />
<br />
There are currently a few prebuilt images:<br />
[http://activationrecord.net/radekp/openmoko/android/ Radek Polak's SD card images] (install on ext3, first partition on SD must be FAT16)<br />
<br />
--[[User:Matzehuber|matzehuber]] 12:58, 22 July 2009 (UTC) seems to have a ext2 partition, image seems to need to be named uImage.bin<br />
<br />
=== Using jffs2 images ===<br />
<br />
You can also boot from the SD Card using the pre built images like so :-<br />
* Mount the image using [http://wiki.openmoko.org/images/8/82/Mntjffs.sh this] script like so <br />
sudo ./Mntjffs.sh freerunner-v5.jffs2 image/<br />
* Then copy (cp -R) the files in directory image/ to any of the first three partitions on the SD Card (if using Qi) eg cp -R /your-path/image/* /media/android/<br />
* cd /media/android.<br />
* wget http://activationrecord.net/radekp/openmoko/android/init.rc .<br />
* mkdir boot<br />
* copy the kernel here and name it uImage-GTA02.bin<br />
<br />
<br />
Some notes about booting android from sdcard : <br />
<br />
=== Setup ===<br />
<br />
* Build android from source. See [http://trac.koolu.org/ koolu website] for directions.<br />
* Use the first script in [http://lists.openmoko.org/pipermail/community/2008-December/036982.html this mail] (adapt to your filesystem) to stage your android install.<br />
* copy the contents of this directory on a ext3 partition on your sdcard.<br />
* add a /boot directory on your sdcard.<br />
* copy the uImage-android kernel (see above) and copy it inside your /boot with the exact name '''uImage-GTA02.bin'''<br />
* I changed the init.rc (in your root on the sd) to remove mounts that could be problematic (/data for example) :<br />
<pre><br />
--- filesystem/root/init.rc 2008-12-15 17:51:14.000000000 +0100<br />
+++ phyce.init.rc 2008-12-19 15:56:25.000000000 +0100<br />
@@ -24,7 +24,7 @@<br />
mkdir /sqlite_stmt_journals 01777 root root<br />
mount tmpfs tmpfs /sqlite_stmt_journals size=4m<br />
<br />
- mount rootfs rootfs / ro remount<br />
+ mount rootfs rootfs / rw remount<br />
<br />
write /proc/sys/kernel/panic_on_oops 1<br />
write /proc/sys/kernel/hung_task_timeout_secs 0<br />
@@ -38,14 +38,14 @@<br />
# mount yaffs2 mtd@system /system ro remount<br />
<br />
# We chown/chmod /data again so because mount is run as root + defaults<br />
- mount ext3 /dev/block/mmcblk0p2 /data nosuid nodev<br />
- chown system system /data<br />
- chmod 0771 /data<br />
+# mount ext3 /dev/block/mmcblk0p2 /data nosuid nodev<br />
+# chown system system /data<br />
+# chmod 0771 /data<br />
<br />
# Same reason as /data above<br />
- mount yaffs2 mtd@cache /cache nosuid nodev<br />
- chown system cache /cache<br />
- chmod 0770 /cache<br />
+# mount yaffs2 mtd@cache /cache nosuid nodev<br />
+# chown system cache /cache<br />
+# chmod 0770 /cache<br />
</pre><br />
<br />
* Install [[Qi]] on you NAND flash. You can still boot whatever distro you've got on internal flash using the NOR bootloader. You should try the magic file in /boot to show kernel messages.<br />
* boot the GTA02, and pray.<br />
<br />
<br />
<br />
== Remote access to Android (adb) ==<br />
<br />
Although this is not technically part of installing Android it is very useful to have set up. Android Debug Bridge (adb) is a versatile tool that lets you manage the state of a device, in this case, your FreeRunner.<br />
<br />
Some ways you can use adb include:<br />
<br />
* Run shell commands on the phone.<br />
* Copy files from your desktop to the phone and Vice-versa.<br />
<br />
You can find out about it on the [http://developer.android.com/guide/developing/tools/adb.html Android developers page] and a page on this wiki [[Android debug bridge]]<br />
<br />
However if you would just like a very quick getting started guide, read on. You can download a binary from [http://people.openmoko.org/sean_mcneil/adb here]. Then if you like copy it to /usr/bin (and don't forget to make it executable).<br />
<br />
First you must boot Android while it is plugged in to a USB port, you can unplug it and re-plug it all you like after that but for the USB connection to work it must be connected at boot time.<br />
<br />
Next issue this command to set up USB networking...<br />
<br />
# ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
<br />
Then this one because it helps make sure everything works nicely...<br />
<br />
# adb kill-server<br />
<br />
Followed by this to find your phone...<br />
<br />
ADBHOST=192.168.0.202 adb devices<br />
<br />
{{Note|Remember that if you didn't copy adb to /usr/bin you will need to run these commands from the directory you downloaded it too and put ./ in front of adb.}}Now you are free to remotely connect to your Android phone, here are a couple of commands you might find useful<br />
<br />
*Copy a file to your SD card:<br />
<br />
# adb push YOUR_FILE /sdcard/<br />
<br />
*Copy a log file from your phone to your computer:<br />
<br />
# adb logcat -d > android.log<br />
<br />
*If you just want to log in to the Android shell:<br />
<br />
# adb shell<br />
<br />
== Troubleshooting ==<br />
=== SD card won't mount ===<br />
<br />
There should be a /sdcard directory on your FreeRunner, for some reason this does not always get created (the command is in the 'init.rc' but does not always work). To create the correct dir on your FreeRunner and so enable your SD card, do the following.<br />
<br />
* Plug your FreeRunner into a USB port, boot Android and then enter these commands:<br />
<br />
# ifconfig usb0 192.168.0.200 netmask 255.255.255.0<br />
# adb kill-server<br />
# ADBHOST=192.168.0.202 adb devices<br />
# adb shell mount -o remount,rw /dev/root /<br />
# adb shell<br />
<br />
# mkdir /sdcard<br />
# exit<br />
<br />
* Then reboot your FreeRunner<br />
<br />
== See also ==<br />
* [[Android|Main Android page on this wiki]]<br />
* [http://www.newlc.com/en/freerunner-mobile-which-support-android-cupcake Video of usability]<br />
<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Android]]</div>Thewtexhttp://openmoko.org/wiki/AndroidAndroid2009-08-27T03:02:08Z<p>Thewtex: /* Introduction */</p>
<hr />
<div>{{Languages|Android}}<br />
{{Distributions|Android}}<br />
<br />
{|align=right<br />
|__TOC__<br />
|}<br />
[[Image:Android-logo.png]]<br />
= Introduction = <br />
This page is the central place for documentation about Android on the [[Neo1973 Hardware|Neo 1973]] and [[Neo_FreeRunner_GTA02_Hardware|FreeRunner]] handsets.<br />
<br />
[http://code.google.com/android/ Android] is a software stack for mobile devices developed by the [http://www.openhandsetalliance.com/ The Open Handset Alliance.] Although Android is publicized as being [[open source software]] (most of the source code has been released) parts of the code have not been released yet.<br />
<br />
A lot of work is being done to get Android functioning properly on the [[Neo_FreeRunner_GTA02_Hardware|FreeRunner]] and it is likely, in the near future, to be the distribution most suited for using the FreeRunner as a phone.<br />
<br />
Inside the FreeRunner 3 software components are working:<br />
* '''bootloader''': a small program that runs first and starts everything else when the FreeRunner is powered on or reset (depending on [[Booting the Neo FreeRunner|how you reset it]], the version from [[NOR_Flash|NOR]] or NAND is booted).<br />
* '''kernel''': the central component in the Linux operating system.<br />
* '''root filesystem''': contains all the files that make up the commands and applications that you can run. <br />
* Furthermore for the installation you have to format your MicroSD-Card because Android will store data on it.<br />
<br />
= Usage =<br />
See: [[Android usage]] for detailed instructions on using Android on the FreeRunner. Updated with the functionality of the Koolu Beta 7 results.<br />
<br />
Android is gaining functionality on the FreeRunner all the time and with Michael Trimarchi's [http://panicking.kicks-ass.org/download/ (panicking)] images, and Koolu Beta 7, it is possible to use as an everyday phone! <br />
<br />
=== Michael Trimarchi setup ===<br />
Michael has announced he is working on the Glamo (screen aceeleration) code.<br />
Prerequisites for Michael's good work are:<br />
<br />
* Use the jffs version 14.6 and the kernel v17.<br />
* Uboot<br />
<br />
You can then hope to achieve :<br />
<br />
* GSM calls<br />
* SMS<br />
* Adding, removing and importing contacts<br />
* GPRS<br />
* Wi-Fi<br />
<br />
Caveats<br />
<br />
* Volume during voice calls is very low.<br />
* Wi-Fi does not reconnect after sleep - [http://wiki.openmoko.org/wiki/Android_usage#Wifi setup]<br />
* You have to disable PIN security on your SIM card.<br />
<br />
[http://spreadsheets.google.com/ccc?key=popRpaZG1txEXGHDDboxtIA&hl=en_GB Android function sheet]<br />
<br />
== External Links ==<br />
<br />
* [http://digg.com/linux_unix/Video_demo_of_Freerunner_running_Android_Cupcake_Tutorial Short Video demo of Android] on [[FreeRunner]] to show how usable it is.<br />
<br />
* [http://braydon.com/blog/2009/5/1/koolu-android-on-neo-freerunner-video Koolu beta6 on Neo Freerunner Video]<br />
<br />
* http://www.androidfreeware.org/<br />
<br />
* http://andappstore.com/<br />
<br />
* http://slideme.org/<br />
<br />
* http://www.openintents.org/<br />
<br />
= Installation =<br />
<br />
See: [[Android on Freerunner]]<br />
<br />
= Development =<br />
See: [[Android porting]]<br />
<br />
There are developers being paid to work on the port by [http://koolu.com/ Koolu.]<br />
For details on the project source and some real detailed instructions on building the source, see the [http://trac.koolu.org/ the Koolu Trac Website for Android].<br/><br />
There is a Android Freerunner Mailing list hosted by Koolu [http://android.koolu.org/listinfo.cgi/android-freerunner-koolu.org]<br />
<br />
<br />
There is also some great unpaid work going on at [http://panicking.kicks-ass.org/blog/index.php Linux Embedded]<br />
<br />
= News =<br />
* 22 May 09 - Koolu Releases Beta7 [http://trac.koolu.org/wiki/Releases]<br />
* 15 April 09 - Koolu Releases Beta6 [http://trac.koolu.org/wiki/Releases]<br />
* 07 March 09 - Panicking released a cupcake [http://panicking.kicks-ass.org/download/ rootfs]<br />
* 26 February 09 - As promised, Sean McNeil has released source code to [[GSM]] libraries [https://review.source.android.com/Gerrit#change,9013 Source]<br />
* 20090204 Koolu releases its Beta3 Android [http://freerunner.android.koolu.com/release-files release].<br />
** Changelog:<br />
*** Added GPS library that supports GPS under Android<br />
*** MAX_PROCESSES patch to enable more background processes to be run (fixes Pictures application)<br />
*** Added Dalvik optimization setting<br />
*** Started including 3rd party applications<br />
*** Updated user interfaces for GPS and Bluetooth to match new kernel<br />
*** Now report RSSI of Wifi signals to upper application layer<br />
*** Enable libsoundpool compilation to support audible clicks<br />
<br />
* 20090122 Koolu releases its Beta2 Android [http://freerunner.android.koolu.com/release-files release].<br />
<br />
* 20081219 Koolu releases its Beta Android [http://forum.koolu.org/files/androidfs-koolu-1_0.jffs2 Image] and [http://forum.koolu.org/files/uImage-android-patched_bc2caff9cdef8a16.bin kernel].<br />
<br />
* 20081202 [http://www.koolu.com Koolu], a Freerunner distributor, has released the source code of their Android port at [http://git.koolu.org http://git.koolu.org]. For details on the project source and some real detailed instructions on building the source, see the [http://trac.koolu.org/ the Koolu Trac Website for Android]. TODO: Find out where this link supposed to go->See the [[Android_porting#Building the Koolu Android Source]] instructions below for how to build an Android image for Freerunner.<br />
<br />
* 20081104 The first Android-image has been successfully created by Sean McNeil! - sms and calling works, wifi and bluetooth doesn't. [http://onlinedev.blogspot.com/2008/11/porting-android-phase-3-done.html ''news-source'']<br />
<br />
= See also =<br />
* Videos : [http://digg.com/linux_unix/Video_demo_of_Freerunner_running_Android_Cupcake_Tutorial]<br />
* [http://youtube.com/watch?v=m4NbsLmF9j0 YouTube Video 1]<br />
* [http://youtube.com/watch?v=r6Op-7tNTiw YouTube Video 2]<br />
<br />
[[Category:Android| ]]</div>Thewtexhttp://openmoko.org/wiki/DistributionsDistributions2008-09-05T04:36:46Z<p>Thewtex: add Gentoo</p>
<hr />
<div>{{Languages|Distributions}}<br />
<br />
{| class="wikitable" style="float:right;width:200px;background-color:#FF6600;text-align:center;border-collapse:collapse;font-weight:bold" <br />
|<font color=white>Distributions</font><br />
|-<br />
! style='background-color:#333333;color:#FFFFFF'|<br />
<div align=left><br />
* <font color='#BBBBBB'>Openmoko (official)</font><br />
** [[Om 2008.8]]<br />
** [[Om 2007.2]]<br />
** [[OpenmokoFramework|FSO]]<br />
* <font color='#BBBBBB'>Community</font><br />
** [[SHR]]<br />
* <font color='#BBBBBB'>Other</font><br />
** [[Qtopia]]<br />
** [[Debian]]<br />
** [[Gentoo]]<br />
</div><br />
|-<br />
|}<noinclude>[[Category:Templates]]</noinclude><br />
<br />
Openmoko distributions are designed to run on various mobile devices, with the primary aim of Openmoko Inc.'s [[Neo 1973]] and [[Neo FreeRunner]] phones. They are similar to Linux distributions; complete operating systems with user applications. You can install any of them on your phone or even have a multiboot system with two distributions installed. <br />
<br />
While the Openmoko distributions will run on [[Supported devices|other mobile devices]] too, some other software distributions will also run on the Openmoko Inc. phones (see below). <br />
<br />
For downloads see [[Download]], for installation instructions see [[Flashing the Neo FreeRunner]].<br />
<br />
== About distributions ==<br />
<br />
To be technically precise, 2007.2, 2008.8, FSO and SHR of these are not directly independent distributions, but different 'release targets'. They are built out of different branches of the [[OpenEmbedded]] metadistribution source tree, e.g. 2007.2 and 2008.8 are to each other like Ubuntu Gutsy is to Kubuntu Hardy. A [http://docs.openmoko.org/trac/roadmap roadmap] showing the number of remaining active tickets (in other words, bugs) is available on the bug [http://docs.openmoko.org/trac/ trac]king system (also accessible with the DOCS link at the top of every page).<br />
<br />
One should only use feeds from packages of the same source-branch, else 'stuff will break', similar to like using .debs from Hardy on a Gutsy base system. Also note that there is NO supported upgrade path between these at the moment, thus updating by changing the feeds will most likely end in broken packages or even a unbootable system. Thus please always use [[dfu-util]] to switch between the different 'distributions' for now or install them in a dual-boot setup (e.g. via sdcard or NFS).<br />
<br />
== Openmoko Inc. driven release targets ==<br />
<br />
=== Om 2008.8 (ASU, April/August Software Update) ===<br />
<br />
Om 2008.8 has been started to integrate the [http://trolltech.com/products/qtopia Qtopia] stack - on X11 - with a new set of graphically pleasing applications based on the Enlightenment Foundation Libraries. ASU is the internal name and is known as Om 2008.8 upon its release on August 8, 2008. Qtopia is a more mature product than the GNOME Mobile stack and you can expect all the standard feature phone applications to work in a solid way. It uses the Qtopia phone server. Since - contrary to standard Qtopia - it does not directly use the framebuffer, non-Qt applications can safely share the screen with Qt applications.<br />
<br />
Om 2008.8 is maintained as "'''ASU-stable'''" with continuous updates. <br />
<br />
* [[Om2008.8|Om 2008.8]]<br />
* [[Downloads#Om_2008.8_images_.28ASU.29|Download > Om 2008.8 images (ASU)]]<br />
<br />
=== Om 2007.2 (GTK) ===<br />
<br />
[[Om 2007.2]] is for people who are familiar with the [http://www.gnome.org/mobile/ GNOME Mobile] initiative and who want to write applications that run on multiple devices running (parts of) GNOME Mobile. This includes Maemo, which runs on the Nokia Internet Tablets. The strength of the GTK+ stack is a UI and programming environment similar to what you run on your Linux desktop, if you’re into GNOME. The GTK+ has PIM applications based on the Evolution Data Server and runs the gsmd phone server. Although you can use them, the applications are still pretty rough und unfinished. Some people have problems with the stability of the phone server.<br />
<br />
* [[Om 2007.2]]<br />
* Availabilty: [http://buildhost.openmoko.org/daily/ Official Buildhost] and [[MokoMakefile]] support for development builds<br />
* [[Downloads#Openmoko_2007.2_images_.28GTK.29|Download]]<br />
* Several videos of this stack by [http://uk.youtube.com/user/freeyourphone Youtube user freeyourphone] and [http://uk.youtube.com/watch?v=U05kZfURPig&NR=1 video review by BVB Tech]<br />
This is the base-system which is installed on FreeRunner when it leaves the factory.<br />
<br />
2007.2 development driven by openmoko inc. has basically stopped and resources are allocated in favor of 2008.8, while the community currently does the effort to 'rescue' the 2007.2 telephony apps and pull them to the future middleware from FSO (see SHR).<br />
thus patches are still welcome, especially if they help development of SHR.<br />
<br />
=== FSO - freesmartphone.org ===<br />
<br />
FSO has been started to overcome the deficiencies both of the 2007.2 and the 2008.8 stack, namely to come up with an extensible framework that gives developers the infrastructure they need to create solid and exciting software products based on the Openmoko platform. An infrastructure that supports competing UIs while we can collaborate on developing services, making the framework strong . Here, the focus is on stable highlevel services that you can access from whatever language or UI that supports [http://dbus.freesmartphone.org/ dbus]. People report that despite its infancy, e.g. the phone server part in FSO is already more solid than anywhere else.<br />
<br />
It is not really intended as future release-target, but used as a 'vessel' or 'container' for the development and testing of the new, future middleware.<br />
<br />
The applications installed are intended as test-tools for the new middleware and not as fully featured, end user oriented applications. (even if it looks that way sometimes)<br />
<br />
In the words of Mickey, project manager:<br />
<br />
:"FSO is only a distro because "we can" (thanks to OpenEmbedded). Zhone is an independent UI application based on the FSO framework to facilitate testing. If you want to build own UIs or custom applications on the forthcoming Openmoko dbus service framework, then the FSO-image is a good starting point.<br />
<br />
* [[FSO]]<br />
* [http://trac.freesmartphone.org:8000/trac-example Development tracker]<br />
* [http://downloads.openmoko.org/framework/milestone2/ Download milestone 2]<br />
* [http://freesmartphone.org freesmartphone.org]<br />
* [http://shr.bearstech.com/ fso-testing and fso-unstable images and feeds] (maintained by Rod Whitby, MokoMakefile author)<br />
<br />
== Openmoko Community driven release targets ==<br />
<br />
=== SHR - Stable Hybrid Release ===<br />
<br />
Stable Hybrid Release is a combination of the middleware from FSO, some of the 2007.2 GTK software (telephony-ui, pim), and Om2008.8 that provides all of the functionality of the 2007.2 software, but with the stability of the FSO.<br />
<br />
* [[Stable Hybrid Release]]<br />
<br />
== Non-Openmoko distributions ==<br />
<br />
These are not Openmoko (and OE) based distributions. These are an alternatives you can run on your Openmoko phones.<br />
<br />
=== Qtopia ===<br />
<br />
The Qtopia distribution from [http://www.trolltech.com Trolltech], it aims to provide a ready-to use image for Openmoko devices. <br />
<br />
* [[Qtopia]]<br />
* Download: [http://www.qtopia.net/modules/mydownloads/viewcat.php?cid=6 Qtopia.net]<br />
<br />
=== Debian ===<br />
<br />
In the words of Joachim "nomeata" Breitner from the [http://wiki.debian.org/Teams/DebianFSO pkg-fso] team:<br />
<br />
:It’s not really a distribution in the Openmoko sense of the word, but rather a different underlying system for Openmoko distributions. At the moment, we ship the software from the FSO stack, but hopefully we’ll also have, for example, the Stable Hybrid Release software in our archive.<br />
<br />
:So for now, Debian is a different way of installing FSO, which takes more space and provides more programs :-)<br />
<br />
* [[Debian]]<br />
<br />
=== Gentoo ===<br />
<br />
* [[Gentoo]]<br />
== Features by distribution/release target ==<br />
<br />
=== Connectivity ===<br />
<br />
{| border=1 width=100% |<br />
| width=14%| || width=14%|2007.2 || width=14%|FSO || width=14%|Om2008.8 || width=14%|SHR || width=14%|Qtopia || Debian<br />
|-<br />
| Telephony || {{Yes}} || {{Yes}} || {{Yes}} || N/A || {{Yes}} || {{Yes}} (1)<br />
|-<br />
| SMS || {{Yes}} || {{Yes}} || {{Yes}} || N/A || {{Yes}} || {{Yes}} (1)<br />
|-<br />
| [[GPRS]] || Not through UI || Not through UI || Not through UI || N/A || {{No}} (3) || {{Yes}} (1)<br />
|-<br />
| WiFi || {{Yes}} || Not through UI || {{Yes}} (*) || N/A || {{Yes}} || {{Yes}}<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || ?? || {{Yes}}<br />
|-<br />
| Bluetooth || {{Yes}} || {{No}} || {{Yes}} || N/A || {{Yes}} || {{Yes}}<br />
|-<br />
| GPS || {{Yes}} (1) || {{Yes}} || {{Yes}} (1) || N/A || {{No}} || {{Yes}} (1)<br />
|-<br />
|}<br />
<br />
=== User Interaction ===<br />
<br />
{| border=1 width=100% |<br />
| width=14%| || width=14%|2007.2 || width=14%|FSO || width=14%|Om2008.8 || width=14%|SHR || width=14%|Qtopia || Debian<br />
|-<br />
| Stylus friendly || {{Yes}} || {{Yes}} || {{Yes}} || N/A || {{Yes}} || {{Yes}}<br />
|-<br />
| Finger friendly || Partially || Partially || Partially || N/A || {{Yes}} || {{No}}<br />
|-<br />
| Accelerometer || {{No}}|| {{No}} || {{Yes}} [[Gestures|(1)]] || N/A || {{No}} || {{No}}<br />
|-<br />
|}<br />
<br />
=== Applications ===<br />
<br />
{| border=1 width=100% |<br />
| width=14%| || width=14%|2007.2 || width=14%|FSO || width=14%|Om2008.8 || width=14%|SHR || width=14%|Qtopia || Debian<br />
|-<br />
| Terminal || Basic (2) || {{Yes}} || {{Yes}} (1) || N/A || {{Yes}} || {{Yes}}<br />
|-<br />
| PIM || {{Yes}} || {{No}} || {{Yes}} || N/A || {{Yes}} || {{Yes}} (1)<br />
|-<br />
| Phonebook || {{Yes}} || {{Yes}} || {{Yes}} || N/A || {{Yes}} || {{Yes}} (1)<br />
|-<br />
| Dialer || {{Yes}} || {{Yes}} || {{Yes}} || N/A || {{Yes}} || {{Yes}} (1)<br />
|-<br />
| Web Browser || {{Yes}} (1) || ? || {{Yes}} (1) || ? || {{No}} || {{Yes}} (1)<br />
|-<br />
| Mail Client || ? || ? || {{Yes}} || ? || {{Yes}} || {{Yes}} (1)<br />
|-<br />
| XMPP Client || {{Yes}} (1) || ? || {{Yes}} [[IM#Implementation_Recommendations|(1)]] || ? || {{No}} || {{Yes}} (1)<br />
|-<br />
| Media Player || {{Yes}} || ? || {{Yes}} (1) || ? || {{Yes}} || {{Yes}} (1) <br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{| border=1 width=100% |<br />
| width=14%| || width=14%|2007.2 || width=14%|FSO || width=14%|Om2008.8 || width=14%|SHR || width=14%|Qtopia || Debian<br />
|-<br />
| GTK+ || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}}<br />
|-<br />
| QT/Qtopia || No || {{Yes}}? || {{Yes}} || {{Yes}}? || {{Yes}} || {{Yes}}<br />
|-<br />
| Middleware || gsmd/neod || freesmartphone.org || qtopia-x11 || freesmartphone.org || qtopia || freesmartphone.org<br />
|-<br />
| [[Java]] || Jalimo || Jalimo || Jalimo || ? || ? || {{Yes}} (CacaoVM, JamVM)<br />
|-<br />
| [[Python]] || {{Yes}} || {{Yes}} || {{Yes}} || ? || {{Yes}} || {{Yes}}<br />
|-<br />
| [[Mono]] || {{Yes}} (1) || ? || {{Yes}} (1) || ? || ? || {{Yes}} (1) <br />
|}<br />
<br />
<br />
Footnotes:<br />
<br />
(1) works, but need additional software to be installed<br />
<br />
(2) unusable due to lack of certain keyboard characters. [[Switching_Keyboards#Matchbox_keyboard|Various fixes available.]]<br />
<br />
(3) there is a UI but it crashes the device when used.<br />
<br />
(*) unstable<br />
<br />
== External links ==<br />
<br />
Original distribution descriptions are from Mickey Lauer's [http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!].<br />
<br />
[[Category:Distributions| ]]<br />
[[Category:Documentation]]</div>Thewtexhttp://openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunnerQtopia / Qt Extended on FreeRunner2008-08-20T19:54:58Z<p>Thewtex: /* Unpacking the Qtopia Root Filesystem Image */</p>
<hr />
<div>{{Languages|Qtopia_on_FreeRunner}}<br />
<br />
This page provides instructions on how to install Qtopia (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (Freerunner) phone. It is similar to the [[Qtopia on Neo1973]] page.<br />
<br />
{|align=right<br />
|__TOC__<br />
|}<br />
<br />
== Current status ==<br />
On 08 August 2008, Qtopia released the [http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=77 latest flash image for the FIC Neo Freerunner (gta02)] containing the Qtopia 4.3.2 snapshot (Version: 4.3.2-080808) of 08 August 2008 (GPL version). <br />
<br />
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image. It has multiple input methods that appear to be more mature. It does not, however, have a web browser or a GPS application.<br />
<br />
You can find all the Qtopia images [http://www.qtopia.net/modules/mydownloads/viewcat.php?cid=6 here]<br />
<br />
== Option 1: Flashing Qtopia to FreeRunner ==<br />
<br />
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]<br />
<br />
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==<br />
<br />
Installation Requirements: <br />
<br />
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.<br />
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)<br />
<br />
<br />
=== Preparing the SD card ===<br />
<br />
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions. After you complete the "Formatting the SD Card" steps, return here and execute the following:<br />
<br />
mount /dev/mmcblk0p1 /media/card<br />
mkdir /media/card/boot<br />
<br />
mkdir /media/mmcblk0p2<br />
mount /dev/mmcblk0p2 /media/mmcblk0p2<br />
<br />
This will set you up properly for the installation of the root filesystem and the kernel in the steps below.<br />
<br />
=== Installing Qtopia ===<br />
<br />
==== Unpacking the Qtopia Root Filesystem Image ====<br />
<br />
Download the Qtopia FLASH image from [[Latest Images#Qtopia image from qtopia.net]] to your Linux box and extract its contents:<br />
<br />
tar xzf qtopia-4.3.2-gta02-flash-*.tgz<br />
<br />
You should now have two files: <br />
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin<br />
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2 <br />
Now, mount the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].<br />
<br />
Next, tar up the root filesystem:<br />
<br />
tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C <mountpoint> .<br />
<br />
Where ''<mountpoint>'' is the location where the jff2 filesystem was mounted.<br />
<br />
==== Installing Root Filesystem ====<br />
<br />
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:<br />
<br />
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/<br />
<br />
Log in to your FreeRunner and unpack the root filesystem:<br />
<br />
cd /media/mmcblk0p2<br />
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz<br />
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz<br />
rm -f /media/mmcblk0p2/boot/*<br />
<br />
'''''Note:''''' the last step removes the kernel image from the second partition. For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.<br />
<br />
==== Installing Kernel ====<br />
<br />
From your Linux box, rename uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin to uImage.bin and copy it to the boot directory on the first partition of the MicroSD card. Depending on the version of U-Boot you have installed, this may not work. To prevent any possible issues, copy it to the /media/card directory as well. There is plenty of room on the first partition to have uImage.bin in both locations.<br />
<br />
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin<br />
scp uImage.bin root@192.168.0.202:/media/card/boot/<br />
scp uImage.bin root@192.168.0.202:/media/card/<br />
<br />
=== Option 3: updating from source ===<br />
<br />
{{note|This will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}<br />
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:<br />
<br />
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 and unzip it on your PC (as root)<br />
cd /<br />
wget http://qtopia.net/downloads/neo/arm920t-eabi-ficgta01-toolchain.tgz<br />
tar xvzf arm920t-eabi-ficgta01-toolchain.tgz<br />
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/<br />
* once dowloaded untar it<br />
tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080806.tar.gz<br />
* make a "build" dir <br />
mkdir build<br />
cd build<br />
* configure and make:<br />
../qtopia-opensource-src-4.3.2-snapshot-20080806/configure -device ficgta01<br />
make <br />
This will take some time (couple hours). Note that the option "-device ficgta01" should work for both neo and freerunner. Then:<br />
<br />
make install<br />
<br />
will make a root directory into build directory. That directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.<br />
<br />
=== Booting into Qtopia ===<br />
<br />
Now shutdown the FreeRunner<br />
<br />
shutdown -h now<br />
<br />
Log into U-Boot in the NOR Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])<br />
<br />
* Press and hold Power button<br />
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds. <br />
* A boot menu will appear. <br />
* Press the AUX button to select "[[Boot from sd card|Boot from MicroSD]]" and then press the Power button to execute.<br />
<br />
Qtopia should now boot.<br />
<br />
'''''Note:''''' you may get a kernel panic which says that "optional features not supported". If this is the case, boot back into 2007.2 and run<br />
<br />
umount /dev/mmcblk0p2<br />
fsck.ext3.e2fsprogs /dev/mmcblk0p2<br />
<br />
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.<br />
<br />
=== Internationalization ===<br />
<br />
Qtopia comes with support for German and American English, and users from other countries will find that Qtopia's predictive keyboard makes writing in another language near impossible. One way to disable the predictive keyboard is to simply replace /opt/Qtopia/etc/dict/en_US/common.dawg and words.dawg with empty files (after backing them up). Qtopia normally looks in these files for words to suggest, and if it doesn't find any words that fit, it simply shows what you actually wrote.<br />
<br />
Adding characters to the keyboard requires modifications to the source code, as described [http://www.qtopia.net/modules/newbb_plus/viewtopic.php?topic_id=512&forum=16 here].<br />
<br />
[[Category:Distributions]]<br />
[[Category:Qtopia]]</div>Thewtexhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-08-15T04:50:00Z<p>Thewtex: /* Boot from SDHC */ clarify to correct tense</p>
<hr />
<div>This page explains how to boot a Freerunner from the (micro-)SD card rather than from the built-in NAND flash memory. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{{Warning | Booting from SDHC may cause problems at this time. }} <br />
See [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| this thread.]<br />
<br />
== How it Works ==<br />
<br />
On the Neo, [[u-boot]] performs a similar role to the 'grub' bootloader on a PC. U-boot loads a kernel image into memory and then passes a list of parameters to the kernel. These parameters specify, among other things, the device on which the root filesystem is located.<br />
<br />
As the kernel boots, it initializes the hardware and then mounts the root filesystem. The kernel then runs "/sbin/init", which handles the rest of the boot-up sequence (such as displaying the splash screen and progress bar).<br />
<br />
This sequence is the same whether the device is booting from built-in Flash or from the SD card. The differences are how the kernel is loaded, and which device is mounted as the root filesystem.<br />
<br />
The following sections provide additional details.<br />
<br />
=== Menu Entries ===<br />
<br />
U-boot menu entries are defined by environment variables named "menu_X" (where X is a number). The value of the environment variable is a string "<label>:<commands>", where <label> is the text shown on the screen, and <commands> is a sequence of u-boot commands (delimited by ';' characters) to be executed when the menu item is selected. When entering a string of commands, the ';' and '$' characters must be backslash-escaped ("\;" and "\$"). <br />
<br />
=== Loading the Kernel ===<br />
<br />
A pair of u-boot commands must be used to load the kernel from SD. First is "mmcinit", which will cause u-boot to detect the card. Next is a command to load a file into memory - either "fatload" or "ext2load" depending on whether the kernel is on a FAT filesytem or an ext2/ext3 filesystem.<br />
<br />
The command syntax is:<br />
<br />
fatload mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
ext2load mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
<br />
where &lt;p&gt; is the partition number, and &lt;filepath&gt; is the path to the file that is to be loaded.<br />
<br />
{{Note| The "ext2load" command is broken on u-boot binary earlier than "20080723", including the one shipped with the first batch of Freerunners, are affected by bug [http://docs.openmoko.org/trac/ticket/799 #799]. If you update your U-Boot and kernel packages you can use direct ext2 / 3 boot all in one partition.}}<br />
<br />
{{Warning | Be careful when updating u-boot on a Neo1973 as there is a risk of bricking the device (unless you have a debug board). This is not an issue for the Freerunner as it has a protected copy of u-boot in the NOR flash }}<br />
<br />
{{Note| U-Boot supports SDHC protocol on the Freerunner only: on the Neo1973, u-boot is unable to access SDHC cards (4G or larger). The kernel does have SDHC support on Neo1973, so it is possible to have the root filesystem on SDHC and the kernel on NAND flash to work around it. }}<br />
<br />
=== Root Filesystem Parameters ===<br />
<br />
The contents of the "bootargs" environment variable are passed to the kernel. Bootargs is a space-delimited list of "name=value" definitions. The items relevant to SD-booting are "root", "rootfstype", and "rootdelay". <br />
<br />
For example, the following parameters would tell the kernel to mount the third partition of the SD-card as an ext3 filesystem:<br />
<br />
root=/dev/mmcblk0p3 rootfstype=ext3 rootdelay=5 <br />
<br />
The "rootdelay" parameter allows time for the card to be properly initialized before it is accessed. <br />
<br />
Note that the kernel must have built-in support (i.e. not a module) for the filesystem specified in "rootfstype". The default Openmoko kernel configs as of [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] have built-in support for both ext2 and ext3. You can check the available filesystems with the Linux command<br />
<br />
less /proc/filesystems<br />
<br />
It is not possible to use VFAT for the root filesystem.<br />
<br />
==== ext2 vs. ext3 ====<br />
<br />
Opinion is divided on whether it is better to use ext2 or ext3 for the root filesystem. Ext3 in general is a superior choice, because it is a journalled filesystem and so does not require a long 'fsck' (file system check) after an unclean shutdown. However, if used on a flash device that does not support wear-leveling then ext3 may cause premature wear on the blocks of the card where the journal is stored. SD cards are supposed to support wear leveling, but this can not be guaranteed for all vendors.<br />
<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
=== Possibility 3 : Convert a jff2 image to a tarfile ===<br />
<br />
See [[Userspace root image]] for more details on how to access contents of a jffs2 image.<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
u-boot pre-2008-07-23 can only boot from FAT filesystems; if you update u-boot, you can boot from FAT or ext2.<br />
This example shows how to do an example partition using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
We will now create a 8 mb partition for our kernel and another one for the rootfs which will take up all the remaining space.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (18-983, default 18):<br />
Using default value 18<br />
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
''Should probably need to change type of first partition to FAT 16 too ?''<br />
<br />
=== Formatting the SD card ===<br />
<br />
Just issue the following command to create at FAT filesystem:<br />
<br />
mkfs.vfat /dev/mmcblk0p1<br />
<br />
Note: if you do not have mkfs.vfat you must find and install the "dosfstools" package. This package does not seem to be in the official feeds, but an unofficial build may be downloaded from http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk<br />
<br />
<br />
The second partition is about to be formatted with ext3 (for ext2 to work you need to make sure you compiled the kernel with the correct configuration):<br />
<br />
mkfs.ext3 /dev/mmcblk0p2<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
'''''Note:''''' There's a nice gotcha to take care about if you use your host OS automount. Some hosts mount these removable devices with "nodev" option by default for security. If the image you are unpacking has a populated /dev directory, the nodes will fail to create as devices then. If auomounting the SD on your host, confirm there are no unexpected mount options by using "mount" command alone to list the mounts.<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card. If the u-boot doesn't find the kernel image during boot, log into the bootloader with ''cu'', mount the partition with mmcinit and check the presence and the name of the kernel image with ''fatls mmc 1:1''.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
Depending on the revision of the phone and the partition type (ext2/ext3) you are using, it might be necessary to add an entry to the bootmenu to be able to boot the system off your SD card.<br />
If you are using a Freerunner and have created an FAT kernel/ext2 rootfs partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NOR/NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
Please make sure you are using the correct configuration based on the decisions you made earlier. For more information on the uboot prompt, see <br />
help <br />
help <command><br />
and [[Bootloader]] and [[Bootloader commands]].<br />
<br />
{{Note| The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed.}}<br />
<br />
{{Note| Copy and paste may not work depending on your terminal emulator. Commi just works or you can use [[NeoCon|neocon]] terminal emulator and add a per-character delay. Otherwise, you will have to type in the commandline manually.}}<br />
<br />
It is important to distinguish between FAT or ext2 kernel partitions and ext2 or ext3 root partitions at this point. <br />
<br />
Please watch partition numbers in the following commands. In particular, you may need to change root=/dev/mmcblk0p'''#''' and fatload mmc '''#''' or ext2load mmc '''#''' depending on which partition number your root and kernel, respectively, are located. Number starts from unity.<br />
<br />
'''Boot entry for FAT kernel+ext3 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for FAT kernel+ext2 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
or : with additional 'init=/sbin/init' kernel parameter (may be needed for some images) :<br />
setenv menu_9 Boot 200808 from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} init=/sbin/init ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 kernel+ext2 rootfs partitions: (requires newer u-boot)'''<br />
<br />
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your SD card.<br />
<br />
----<br />
<br />
See also [[Moving current system from flash to SD]] which shows how to move the running system currently running in flash to an SD card, in order to keep a backup system on SD on which to boot from.<br />
<br />
----<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
{{Note|the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner if you have u-boot from 2008-07-23 or later.}}<br />
<br />
As SDHC is not supported in older u-boot versions you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. IF you also have "console=tty0" on your kernel commandline this makes the boot process extremely slow because the framebuffer (the neo display in text mode) has to print out tons of lines of debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:Guides]]<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Documentation]]<br />
[[Category:System Developers]]</div>Thewtexhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-08-15T04:48:43Z<p>Thewtex: Undo revision 45980 by OlivierBerger (Talk) that is not right -- it is not what the appendix is talking about</p>
<hr />
<div>This page explains how to boot a Freerunner from the (micro-)SD card rather than from the built-in NAND flash memory. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{{Warning | Booting from SDHC may cause problems at this time. }} <br />
See [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| this thread.]<br />
<br />
== How it Works ==<br />
<br />
On the Neo, [[u-boot]] performs a similar role to the 'grub' bootloader on a PC. U-boot loads a kernel image into memory and then passes a list of parameters to the kernel. These parameters specify, among other things, the device on which the root filesystem is located.<br />
<br />
As the kernel boots, it initializes the hardware and then mounts the root filesystem. The kernel then runs "/sbin/init", which handles the rest of the boot-up sequence (such as displaying the splash screen and progress bar).<br />
<br />
This sequence is the same whether the device is booting from built-in Flash or from the SD card. The differences are how the kernel is loaded, and which device is mounted as the root filesystem.<br />
<br />
The following sections provide additional details.<br />
<br />
=== Menu Entries ===<br />
<br />
U-boot menu entries are defined by environment variables named "menu_X" (where X is a number). The value of the environment variable is a string "<label>:<commands>", where <label> is the text shown on the screen, and <commands> is a sequence of u-boot commands (delimited by ';' characters) to be executed when the menu item is selected. When entering a string of commands, the ';' and '$' characters must be backslash-escaped ("\;" and "\$"). <br />
<br />
=== Loading the Kernel ===<br />
<br />
A pair of u-boot commands must be used to load the kernel from SD. First is "mmcinit", which will cause u-boot to detect the card. Next is a command to load a file into memory - either "fatload" or "ext2load" depending on whether the kernel is on a FAT filesytem or an ext2/ext3 filesystem.<br />
<br />
The command syntax is:<br />
<br />
fatload mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
ext2load mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
<br />
where &lt;p&gt; is the partition number, and &lt;filepath&gt; is the path to the file that is to be loaded.<br />
<br />
{{Note| The "ext2load" command is broken on u-boot binary earlier than "20080723", including the one shipped with the first batch of Freerunners, are affected by bug [http://docs.openmoko.org/trac/ticket/799 #799]. If you update your U-Boot and kernel packages you can use direct ext2 / 3 boot all in one partition.}}<br />
<br />
{{Warning | Be careful when updating u-boot on a Neo1973 as there is a risk of bricking the device (unless you have a debug board). This is not an issue for the Freerunner as it has a protected copy of u-boot in the NOR flash }}<br />
<br />
{{Note| U-Boot supports SDHC protocol on the Freerunner only: on the Neo1973, u-boot is unable to access SDHC cards (4G or larger). The kernel does have SDHC support on Neo1973, so it is possible to have the root filesystem on SDHC and the kernel on NAND flash to work around it. }}<br />
<br />
=== Root Filesystem Parameters ===<br />
<br />
The contents of the "bootargs" environment variable are passed to the kernel. Bootargs is a space-delimited list of "name=value" definitions. The items relevant to SD-booting are "root", "rootfstype", and "rootdelay". <br />
<br />
For example, the following parameters would tell the kernel to mount the third partition of the SD-card as an ext3 filesystem:<br />
<br />
root=/dev/mmcblk0p3 rootfstype=ext3 rootdelay=5 <br />
<br />
The "rootdelay" parameter allows time for the card to be properly initialized before it is accessed. <br />
<br />
Note that the kernel must have built-in support (i.e. not a module) for the filesystem specified in "rootfstype". The default Openmoko kernel configs as of [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] have built-in support for both ext2 and ext3. You can check the available filesystems with the Linux command<br />
<br />
less /proc/filesystems<br />
<br />
It is not possible to use VFAT for the root filesystem.<br />
<br />
==== ext2 vs. ext3 ====<br />
<br />
Opinion is divided on whether it is better to use ext2 or ext3 for the root filesystem. Ext3 in general is a superior choice, because it is a journalled filesystem and so does not require a long 'fsck' (file system check) after an unclean shutdown. However, if used on a flash device that does not support wear-leveling then ext3 may cause premature wear on the blocks of the card where the journal is stored. SD cards are supposed to support wear leveling, but this can not be guaranteed for all vendors.<br />
<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
=== Possibility 3 : Convert a jff2 image to a tarfile ===<br />
<br />
See [[Userspace root image]] for more details on how to access contents of a jffs2 image.<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
u-boot pre-2008-07-23 can only boot from FAT filesystems; if you update u-boot, you can boot from FAT or ext2.<br />
This example shows how to do an example partition using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
We will now create a 8 mb partition for our kernel and another one for the rootfs which will take up all the remaining space.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (18-983, default 18):<br />
Using default value 18<br />
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
''Should probably need to change type of first partition to FAT 16 too ?''<br />
<br />
=== Formatting the SD card ===<br />
<br />
Just issue the following command to create at FAT filesystem:<br />
<br />
mkfs.vfat /dev/mmcblk0p1<br />
<br />
Note: if you do not have mkfs.vfat you must find and install the "dosfstools" package. This package does not seem to be in the official feeds, but an unofficial build may be downloaded from http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk<br />
<br />
<br />
The second partition is about to be formatted with ext3 (for ext2 to work you need to make sure you compiled the kernel with the correct configuration):<br />
<br />
mkfs.ext3 /dev/mmcblk0p2<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
'''''Note:''''' There's a nice gotcha to take care about if you use your host OS automount. Some hosts mount these removable devices with "nodev" option by default for security. If the image you are unpacking has a populated /dev directory, the nodes will fail to create as devices then. If auomounting the SD on your host, confirm there are no unexpected mount options by using "mount" command alone to list the mounts.<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card. If the u-boot doesn't find the kernel image during boot, log into the bootloader with ''cu'', mount the partition with mmcinit and check the presence and the name of the kernel image with ''fatls mmc 1:1''.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
Depending on the revision of the phone and the partition type (ext2/ext3) you are using, it might be necessary to add an entry to the bootmenu to be able to boot the system off your SD card.<br />
If you are using a Freerunner and have created an FAT kernel/ext2 rootfs partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NOR/NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
Please make sure you are using the correct configuration based on the decisions you made earlier. For more information on the uboot prompt, see <br />
help <br />
help <command><br />
and [[Bootloader]] and [[Bootloader commands]].<br />
<br />
{{Note| The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed.}}<br />
<br />
{{Note| Copy and paste may not work depending on your terminal emulator. Commi just works or you can use [[NeoCon|neocon]] terminal emulator and add a per-character delay. Otherwise, you will have to type in the commandline manually.}}<br />
<br />
It is important to distinguish between FAT or ext2 kernel partitions and ext2 or ext3 root partitions at this point. <br />
<br />
Please watch partition numbers in the following commands. In particular, you may need to change root=/dev/mmcblk0p'''#''' and fatload mmc '''#''' or ext2load mmc '''#''' depending on which partition number your root and kernel, respectively, are located. Number starts from unity.<br />
<br />
'''Boot entry for FAT kernel+ext3 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for FAT kernel+ext2 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
or : with additional 'init=/sbin/init' kernel parameter (may be needed for some images) :<br />
setenv menu_9 Boot 200808 from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} init=/sbin/init ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 kernel+ext2 rootfs partitions: (requires newer u-boot)'''<br />
<br />
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your SD card.<br />
<br />
----<br />
<br />
See also [[Moving current system from flash to SD]] which shows how to move the running system currently running in flash to an SD card, in order to keep a backup system on SD on which to boot from.<br />
<br />
----<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
{{Note|the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner if you have u-boot from 2008-07-23 or later.}}<br />
<br />
As SDHC is currently not supported in u-boot you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. IF you also have "console=tty0" on your kernel commandline this makes the boot process extremely slow because the framebuffer (the neo display in text mode) has to print out tons of lines of debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:Guides]]<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Documentation]]<br />
[[Category:System Developers]]</div>Thewtexhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-08-15T04:47:56Z<p>Thewtex: Undo revision 45980 by OlivierBerger (Talk) that is not right -- it is not what the appendix is talking about</p>
<hr />
<div>This page explains how to boot a Freerunner from the (micro-)SD card rather than from the built-in NAND flash memory. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{{Warning | Booting from SDHC may cause problems at this time. See [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| this thread.] }} <br />
<br />
== How it Works ==<br />
<br />
On the Neo, [[u-boot]] performs a similar role to the 'grub' bootloader on a PC. U-boot loads a kernel image into memory and then passes a list of parameters to the kernel. These parameters specify, among other things, the device on which the root filesystem is located.<br />
<br />
As the kernel boots, it initializes the hardware and then mounts the root filesystem. The kernel then runs "/sbin/init", which handles the rest of the boot-up sequence (such as displaying the splash screen and progress bar).<br />
<br />
This sequence is the same whether the device is booting from built-in Flash or from the SD card. The differences are how the kernel is loaded, and which device is mounted as the root filesystem.<br />
<br />
The following sections provide additional details.<br />
<br />
=== Menu Entries ===<br />
<br />
U-boot menu entries are defined by environment variables named "menu_X" (where X is a number). The value of the environment variable is a string "<label>:<commands>", where <label> is the text shown on the screen, and <commands> is a sequence of u-boot commands (delimited by ';' characters) to be executed when the menu item is selected. When entering a string of commands, the ';' and '$' characters must be backslash-escaped ("\;" and "\$"). <br />
<br />
=== Loading the Kernel ===<br />
<br />
A pair of u-boot commands must be used to load the kernel from SD. First is "mmcinit", which will cause u-boot to detect the card. Next is a command to load a file into memory - either "fatload" or "ext2load" depending on whether the kernel is on a FAT filesytem or an ext2/ext3 filesystem.<br />
<br />
The command syntax is:<br />
<br />
fatload mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
ext2load mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
<br />
where &lt;p&gt; is the partition number, and &lt;filepath&gt; is the path to the file that is to be loaded.<br />
<br />
{{Note| The "ext2load" command is broken on u-boot binary earlier than "20080723", including the one shipped with the first batch of Freerunners, are affected by bug [http://docs.openmoko.org/trac/ticket/799 #799]. If you update your U-Boot and kernel packages you can use direct ext2 / 3 boot all in one partition.}}<br />
<br />
{{Warning | Be careful when updating u-boot on a Neo1973 as there is a risk of bricking the device (unless you have a debug board). This is not an issue for the Freerunner as it has a protected copy of u-boot in the NOR flash }}<br />
<br />
{{Note| U-Boot supports SDHC protocol on the Freerunner only: on the Neo1973, u-boot is unable to access SDHC cards (4G or larger). The kernel does have SDHC support on Neo1973, so it is possible to have the root filesystem on SDHC and the kernel on NAND flash to work around it. }}<br />
<br />
=== Root Filesystem Parameters ===<br />
<br />
The contents of the "bootargs" environment variable are passed to the kernel. Bootargs is a space-delimited list of "name=value" definitions. The items relevant to SD-booting are "root", "rootfstype", and "rootdelay". <br />
<br />
For example, the following parameters would tell the kernel to mount the third partition of the SD-card as an ext3 filesystem:<br />
<br />
root=/dev/mmcblk0p3 rootfstype=ext3 rootdelay=5 <br />
<br />
The "rootdelay" parameter allows time for the card to be properly initialized before it is accessed. <br />
<br />
Note that the kernel must have built-in support (i.e. not a module) for the filesystem specified in "rootfstype". The default Openmoko kernel configs as of [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] have built-in support for both ext2 and ext3. You can check the available filesystems with the Linux command<br />
<br />
less /proc/filesystems<br />
<br />
It is not possible to use VFAT for the root filesystem.<br />
<br />
==== ext2 vs. ext3 ====<br />
<br />
Opinion is divided on whether it is better to use ext2 or ext3 for the root filesystem. Ext3 in general is a superior choice, because it is a journalled filesystem and so does not require a long 'fsck' (file system check) after an unclean shutdown. However, if used on a flash device that does not support wear-leveling then ext3 may cause premature wear on the blocks of the card where the journal is stored. SD cards are supposed to support wear leveling, but this can not be guaranteed for all vendors.<br />
<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
=== Possibility 3 : Convert a jff2 image to a tarfile ===<br />
<br />
See [[Userspace root image]] for more details on how to access contents of a jffs2 image.<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
u-boot pre-2008-07-23 can only boot from FAT filesystems; if you update u-boot, you can boot from FAT or ext2.<br />
This example shows how to do an example partition using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
We will now create a 8 mb partition for our kernel and another one for the rootfs which will take up all the remaining space.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (18-983, default 18):<br />
Using default value 18<br />
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
''Should probably need to change type of first partition to FAT 16 too ?''<br />
<br />
=== Formatting the SD card ===<br />
<br />
Just issue the following command to create at FAT filesystem:<br />
<br />
mkfs.vfat /dev/mmcblk0p1<br />
<br />
Note: if you do not have mkfs.vfat you must find and install the "dosfstools" package. This package does not seem to be in the official feeds, but an unofficial build may be downloaded from http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk<br />
<br />
<br />
The second partition is about to be formatted with ext3 (for ext2 to work you need to make sure you compiled the kernel with the correct configuration):<br />
<br />
mkfs.ext3 /dev/mmcblk0p2<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
'''''Note:''''' There's a nice gotcha to take care about if you use your host OS automount. Some hosts mount these removable devices with "nodev" option by default for security. If the image you are unpacking has a populated /dev directory, the nodes will fail to create as devices then. If auomounting the SD on your host, confirm there are no unexpected mount options by using "mount" command alone to list the mounts.<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card. If the u-boot doesn't find the kernel image during boot, log into the bootloader with ''cu'', mount the partition with mmcinit and check the presence and the name of the kernel image with ''fatls mmc 1:1''.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
Depending on the revision of the phone and the partition type (ext2/ext3) you are using, it might be necessary to add an entry to the bootmenu to be able to boot the system off your SD card.<br />
If you are using a Freerunner and have created an FAT kernel/ext2 rootfs partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NOR/NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
Please make sure you are using the correct configuration based on the decisions you made earlier. For more information on the uboot prompt, see <br />
help <br />
help <command><br />
and [[Bootloader]] and [[Bootloader commands]].<br />
<br />
{{Note| The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed.}}<br />
<br />
{{Note| Copy and paste may not work depending on your terminal emulator. Commi just works or you can use [[NeoCon|neocon]] terminal emulator and add a per-character delay. Otherwise, you will have to type in the commandline manually.}}<br />
<br />
It is important to distinguish between FAT or ext2 kernel partitions and ext2 or ext3 root partitions at this point. <br />
<br />
Please watch partition numbers in the following commands. In particular, you may need to change root=/dev/mmcblk0p'''#''' and fatload mmc '''#''' or ext2load mmc '''#''' depending on which partition number your root and kernel, respectively, are located. Number starts from unity.<br />
<br />
'''Boot entry for FAT kernel+ext3 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for FAT kernel+ext2 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
or : with additional 'init=/sbin/init' kernel parameter (may be needed for some images) :<br />
setenv menu_9 Boot 200808 from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} init=/sbin/init ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 kernel+ext2 rootfs partitions: (requires newer u-boot)'''<br />
<br />
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your SD card.<br />
<br />
----<br />
<br />
See also [[Moving current system from flash to SD]] which shows how to move the running system currently running in flash to an SD card, in order to keep a backup system on SD on which to boot from.<br />
<br />
----<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
{{Note|the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner if you have u-boot from 2008-07-23 or later.}}<br />
<br />
As SDHC is currently not supported in u-boot you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. IF you also have "console=tty0" on your kernel commandline this makes the boot process extremely slow because the framebuffer (the neo display in text mode) has to print out tons of lines of debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:Guides]]<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Documentation]]<br />
[[Category:System Developers]]</div>Thewtexhttp://openmoko.org/wiki/Flashing_the_Neo_FreeRunnerFlashing the Neo FreeRunner2008-08-08T22:57:00Z<p>Thewtex: /* Boot the FreeRunner from NOR Flash */ no first person</p>
<hr />
<div>Openmoko regularly releases updated versions of the Openmoko root filesystem, the [[kernel]], and the [[Bootloader| U-Boot]] as binary images. These may be programmed into the Flash memory (NAND) of Neo FreeRunner. For that, you can use the USB cable and another computer which will run an Openmoko provided tool to flash the Neo FreeRunner "through" USB.<br />
<br />
== Overview ==<br />
All the components of the software in the FreeRunner are bundled together into binary images.<br />
<br />
The '''bootloader''' is a small program that runs first when the FreeRunner is powered on or reset (depending on [[Booting the Neo FreeRunner|how you reset it]], the version from NOR or NAND is booted).<br />
The '''kernel''' is the central component in the Linux operating system.<br />
The '''root filesystem''' contains all the files that make up the commands and applications that you can run.<br />
<br />
On a desktop computer when you want to replace the operating system, you would boot it from a CD-ROM drive, then copy files from the CD to the internal hard drive. <br />
<br />
The FreeRunner does not have a CD-ROM drive but it does have two kinds of internal program storage: NOR flash and NAND flash. The NOR flash is small and stores only a special boot program used when you need to re-write the contents of the NAND flash. NAND flash acts more like a hard drive.<br />
<br />
The NAND Flash is divided into 3 partitions so that you can flash each component separately.<br />
For example if you are trying to install a modified kernel, you only have to follow the steps to flash the kernel image.<br />
<br />
The FreeRunner can also boot from an image in its micro SD card but that option is not covered here. See [[Booting from SD]] for more information.<br />
<br />
'''Before you start: Erasing the root filesystem or flashing the uboot are radical measures. Take the time to ponder the necessity. Sometimes problems can be fixed by updating only the kernel.'''<br />
<br />
The steps to reflash NAND are<br />
<br />
# Collect everything you need together on your desktop computer. This includes the dfu-util program and the images you will load into the FreeRunner and a USB cable.<br />
# Boot the FreeRunner from NOR Flash.<br />
# Connect the FreeRunner to the desktop computer via the USB cable.<br />
# Use dfu-util to backup the current contents of the FreeRunner. <br />
# Use dfu-util to copy the images from the desktop into the FreeRunner.<br />
# Boot the FreeRunner from NAND Flash to use the new image(s).<br />
<br />
== Collect the things you need ==<br />
<br />
=== Download the DFU-util program ===<br />
<br />
You will download that program on your desktop computer. It will allow you to connect to the FreeRunner through the USB cable and control its bootloader. That connection uses a special protocol which addresses the bootloader's interface, and differs from USB networking. There is a separate page to describe it in more detail: [[dfu-util]].<br />
<br />
'''MacOS X:''' [[MacOS_X#Graphical_Flashing_with_Openmoko_Flasher]]<br />
<br />
'''Linux:''' http://buildhost.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
Make sure it is executable by setting the permissions with this command: chmod a+x dfu-util<br />
<br />
'''Windows:''' http://projects.openmoko.org/frs/?group_id=166&release_id=162 <br />
<br />
See additional driver installation instructions for Windows at [[Dfu-util-windows]]<br />
<br />
=== Download the image files that you will need ===<br />
<br />
Exactly what files you need depends on what you are trying to install. In most cases you will need to install a Kernel and a Root Filesystem (rootfs). In rare cases, when there is a bug you need fixed, you will also install a new bootloader.<br />
<br />
Please read [[Distributions]] for choosing the distribution which fits your needs, and then see [[Download]] for downloading.<br />
<br />
== Boot the FreeRunner from NOR Flash ==<br />
<br />
[[Image:menu15.jpg|thumb|Booting from NOR Flash]]<br />
<br />
# Read the other sections of this page first, because you will have 30 seconds to enter the flashing commands, come back here when ready.<br />
# Do not connect the USB cable from the PC to your Neo FreeRunner yet (disconnect it).<br />
# Boot your Neo Freerunner into the NOR uBoot menu for flashing.<br />
## Press and hold AUX button<br />
## Press the Power button until the boot menu comes up<br />
## This menu is labelled '''*** BOOT MENU (NOR) ***'''<br />
## See also [[Booting the Neo FreeRunner]]<br />
# Stay in NOR uBoot menu, do not to select or enter any item in menu. Now you will be able to flash, make backups of your Freerunner or query the Freerunner with dfu-util.<br />
# The FreeRunner only stays at the NOR boot prompt for about 30 seconds and then shuts off unless you do something.<br />
# Connect your Neo to the GNU/Linux or Windows host via a USB cable. <br />
# Now you can enter the dfu-util commands on your PC as described below.<br />
# If the Neo FreeRunner turns off before you press start flashing ('''screen goes black'''), go back to step 2. If you start flashing in time, the phone will not turn off meanwhile.<br />
<br />
<!-- The following, upto dfu-util -l is taken from the thread "Re: Freerunner (GTK2007.2) has suddenly become unbootable" on the Support list. --><br />
<br />
Note that the dfu-util connection does '''not''' use Ethernet over USB - that is, you should not attempt to set up a usb0 network interface on your GNU/Linux host desktop (on Windows, you need a DFU class driver, or you can use the LibUSB-Win32 driver described on the [[Dfu-util-windows]] page). The dfu-util utility sets up its own connection to the FreeRunner. In fact, you will not be able to make an Ethernet-over-USB connection to the FreeRunner when it is at the uBoot menu; this type of connection is only available when the FreeRunner has booted fully.<br />
<br />
After connecting the FreeRunner to your host via USB cable, you can test whether dfu-util "sees" the FreeRunner by executing:<br />
<br />
dfu-util -l<br />
If you get error messages from the dfu-util command then try again. Often it works on the second try.<br />
<br />
== Do a backup ==<br />
<br />
If you have a working image that you're happy with but want to try something different, you should probably do a [[Pre-Flash Backup]].<br />
<br />
== Using dfu-util ==<br />
<br />
dfu-util can be used to read flash memory, write memory, and get information from the device.<br />
<br />
This is the general command format to write an image file to a (predefined) "partition name" (referred to as ''altsetting'' in dfu-util help/manual) :<br />
<br />
dfu-util -a ''altsetting'' -R -D ''file_name''<br />
<br />
where:<br><br />
-a ''altsetting'' : Specify the altsetting of the DFU interface by name or by number<br><br />
-R : Issue USB Reset signalling once we're finished<br><br />
-D ''file_name'' : Write firmware from ''file_name'' into device<br />
<br />
On Linux, you run dfu-util from a command shell prompt. If you have not put it somewhere on your command path you probably need to prefix it with a "./" like this '''./dfu-util'''.<br />
On some systems you need to be root before this will work and on Ubuntu you must preface the command with "sudo" or you will get the following error: "Cannot claim interface: could not claim interface 2: Operation not permitted"<br />
<br />
On Windows, you need to open a command window and run from a command line. Use Start-Run Program and type "cmd" to open a Window.<br />
<br />
== Flashing the Kernel ==<br />
<br />
The command format is <br />
<br />
dfu-util -a kernel -R -D ''/path/to/uImage''<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br />
Done!<br />
<br />
== Flashing the Root Filesystem ==<br />
<br />
The root filesystem has to be an image in jffs2 format. If the file you downloaded is zipped or compressed (has a .gz or .zip extension) you have to uncompress it first.<br />
<br />
The command format is<br />
<br />
dfu-util -a rootfs -R -D ''rootfs_filename.jffs2''<br />
<br />
where ''rootfs_filename.jffs2'' is the name of the file containing the root filesystem.<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br />
Done!<br />
<br />
== Flashing the boot loader to the NAND==<br />
<br />
The boot loader (U-boot) file should have a .bin extension. As with the root filesystem, if the file you downloaded is zipped or compressed (has a .gz or .zip extension) you have to uncompress it first.<br />
<br />
The command format is <br />
<br />
dfu-util -a u-boot -R -D ''uboot.bin''<br />
<br />
where ''uboot.bin'' is the name of the boot loader binary image file.<br />
<br />
''Reminder'': You should have [[Flashing_the_Neo_FreeRunner#Boot_the_FreeRunner_from_NOR_Flash|rebooted from NOR first]], in order to flash the boot-loader in NAND. After flashing succesfully, make sure you reboot from NAND's newly flashed boot loader, to benefit from the updates.<br />
<br />
<!-- Taken from posts by Mikael Berthe <mikael.berthe@lilotux.net> and Torfinn Ingolfsen <tingox@gmail.com> to Support list, subject: Re: Upgrading u-boot needed ? --><br />
(Optional) After an upgrade, you may wish to check that the u-boot version matches the one you have just flashed. You can use 'grep Bootloader /dev/mtdblock1' from a shell on the FreeRunner (and possibly the 1973 as well) to get the '''NAND''' u-boot version, like this:<br />
root@om-gta02:~# grep Bootloader /dev/mtdblock1<br />
Neo1973 Bootloader U-Boot 1.3.2+gitr18+64eb10cab8055084ae25ea4e73b66dd03cc1a0cb<br />
<br />
You can grep for the same string in /dev/mtdblock0 to retrieve the '''NOR''' u-boot version:<br />
root@om-gta02:~# grep Bootloader /dev/mtdblock0<br />
Neo1973 Bootloader U-Boot 1.3.2-moko12<br />
<br />
<!-- ENDS ... subject: Re: Upgrading u-boot needed ? --><br />
<br />
== Reboot the FreeRunner from NAND ==<br />
<br />
You should now be able to boot into the new images.<br />
<br />
Pay attention '''to booting from the NAND flash this time''', in particular if you upgraded the boot-loader (in short: 1. press and hold ''power button'' down, and then 2. press ''aux button'')<br />
<br />
The boot menu should be labelled '''*** BOOT MENU (NAND) ***''' this time (see [[Booting#Log_into_U-Boot_in_the_NAND_Flash|booting from NAND]] for more detailed instructions).<br />
<br />
[[Category:Flashing Openmoko| ]]</div>Thewtexhttp://openmoko.org/wiki/Flashing_the_Neo_FreeRunnerFlashing the Neo FreeRunner2008-08-08T22:55:00Z<p>Thewtex: /* Do a backup */</p>
<hr />
<div>Openmoko regularly releases updated versions of the Openmoko root filesystem, the [[kernel]], and the [[Bootloader| U-Boot]] as binary images. These may be programmed into the Flash memory (NAND) of Neo FreeRunner. For that, you can use the USB cable and another computer which will run an Openmoko provided tool to flash the Neo FreeRunner "through" USB.<br />
<br />
== Overview ==<br />
All the components of the software in the FreeRunner are bundled together into binary images.<br />
<br />
The '''bootloader''' is a small program that runs first when the FreeRunner is powered on or reset (depending on [[Booting the Neo FreeRunner|how you reset it]], the version from NOR or NAND is booted).<br />
The '''kernel''' is the central component in the Linux operating system.<br />
The '''root filesystem''' contains all the files that make up the commands and applications that you can run.<br />
<br />
On a desktop computer when you want to replace the operating system, you would boot it from a CD-ROM drive, then copy files from the CD to the internal hard drive. <br />
<br />
The FreeRunner does not have a CD-ROM drive but it does have two kinds of internal program storage: NOR flash and NAND flash. The NOR flash is small and stores only a special boot program used when you need to re-write the contents of the NAND flash. NAND flash acts more like a hard drive.<br />
<br />
The NAND Flash is divided into 3 partitions so that you can flash each component separately.<br />
For example if you are trying to install a modified kernel, you only have to follow the steps to flash the kernel image.<br />
<br />
The FreeRunner can also boot from an image in its micro SD card but that option is not covered here. See [[Booting from SD]] for more information.<br />
<br />
'''Before you start: Erasing the root filesystem or flashing the uboot are radical measures. Take the time to ponder the necessity. Sometimes problems can be fixed by updating only the kernel.'''<br />
<br />
The steps to reflash NAND are<br />
<br />
# Collect everything you need together on your desktop computer. This includes the dfu-util program and the images you will load into the FreeRunner and a USB cable.<br />
# Boot the FreeRunner from NOR Flash.<br />
# Connect the FreeRunner to the desktop computer via the USB cable.<br />
# Use dfu-util to backup the current contents of the FreeRunner. <br />
# Use dfu-util to copy the images from the desktop into the FreeRunner.<br />
# Boot the FreeRunner from NAND Flash to use the new image(s).<br />
<br />
== Collect the things you need ==<br />
<br />
=== Download the DFU-util program ===<br />
<br />
You will download that program on your desktop computer. It will allow you to connect to the FreeRunner through the USB cable and control its bootloader. That connection uses a special protocol which addresses the bootloader's interface, and differs from USB networking. There is a separate page to describe it in more detail: [[dfu-util]].<br />
<br />
'''MacOS X:''' [[MacOS_X#Graphical_Flashing_with_Openmoko_Flasher]]<br />
<br />
'''Linux:''' http://buildhost.openmoko.org/releases/Freerunner/dfu-util<br />
<br />
Make sure it is executable by setting the permissions with this command: chmod a+x dfu-util<br />
<br />
'''Windows:''' http://projects.openmoko.org/frs/?group_id=166&release_id=162 <br />
<br />
See additional driver installation instructions for Windows at [[Dfu-util-windows]]<br />
<br />
=== Download the image files that you will need ===<br />
<br />
Exactly what files you need depends on what you are trying to install. In most cases you will need to install a Kernel and a Root Filesystem (rootfs). In rare cases, when there is a bug you need fixed, you will also install a new bootloader.<br />
<br />
Please read [[Distributions]] for choosing the distribution which fits your needs, and then see [[Download]] for downloading.<br />
<br />
== Boot the FreeRunner from NOR Flash ==<br />
<br />
[[Image:menu15.jpg|thumb|Booting from NOR Flash]]<br />
<br />
# Read the other sections of this page first, because you will have 30 seconds to enter the flashing commands, come back here when ready.<br />
# Do not connect the USB cable from the PC to your Neo FreeRunner yet (disconnect it).<br />
# Boot your Neo Freerunner into the NOR uBoot menu for flashing.<br />
## Press and hold AUX button<br />
## Press the Power button until the boot menu comes up<br />
## This menu is labelled '''*** BOOT MENU (NOR) ***'''<br />
## See also [[Booting the Neo FreeRunner]]<br />
# Stay in NOR uBoot menu, do not to select or enter any item in menu. Now you will be able to flash, make backups of your Freerunner or query the Freerunner with dfu-util.<br />
# The FreeRunner only stays at the NOR boot prompt for about 30 seconds and then shuts off unless you do something.<br />
# Connect your Neo to the GNU/Linux or Windows host via a USB cable. <br />
# Now you can enter the dfu-util commands on your PC as described below.<br />
# If the Neo FreeRunner turns off before you press start flashing ('''screen goes black'''), go back to step 2. If you start flashing in time, the phone will not turn off meanwhile.<br />
<br />
<!-- The following, upto dfu-util -l is taken from the thread "Re: Freerunner (GTK2007.2) has suddenly become unbootable" on the Support list. --><br />
<br />
Note that the dfu-util connection does '''not''' use Ethernet over USB - that is, you should not attempt to set up a usb0 network interface on your GNU/Linux host desktop (on Windows, you need a DFU class driver, or you can use the LibUSB-Win32 driver described on the [[Dfu-util-windows]] page). The dfu-util utility sets up its own connection to the FreeRunner. In fact, you will not be able to make an Ethernet-over-USB connection to the FreeRunner when it is at the uBoot menu; this type of connection is only available when the FreeRunner has booted fully.<br />
<br />
After connecting the FreeRunner to your host via USB cable, you can test whether dfu-util "sees" the FreeRunner by executing:<br />
<br />
dfu-util -l<br />
<br />
Sometimes I get error messages from the dfu-util command; I just try again. Often they work on the second try. Sometimes I have to boot into NOR again before things work. Once a connection has been made everything seems to work fine.<br />
<br />
== Do a backup ==<br />
<br />
If you have a working image that you're happy with but want to try something different, you should probably do a [[Pre-Flash Backup]].<br />
<br />
== Using dfu-util ==<br />
<br />
dfu-util can be used to read flash memory, write memory, and get information from the device.<br />
<br />
This is the general command format to write an image file to a (predefined) "partition name" (referred to as ''altsetting'' in dfu-util help/manual) :<br />
<br />
dfu-util -a ''altsetting'' -R -D ''file_name''<br />
<br />
where:<br><br />
-a ''altsetting'' : Specify the altsetting of the DFU interface by name or by number<br><br />
-R : Issue USB Reset signalling once we're finished<br><br />
-D ''file_name'' : Write firmware from ''file_name'' into device<br />
<br />
On Linux, you run dfu-util from a command shell prompt. If you have not put it somewhere on your command path you probably need to prefix it with a "./" like this '''./dfu-util'''.<br />
On some systems you need to be root before this will work and on Ubuntu you must preface the command with "sudo" or you will get the following error: "Cannot claim interface: could not claim interface 2: Operation not permitted"<br />
<br />
On Windows, you need to open a command window and run from a command line. Use Start-Run Program and type "cmd" to open a Window.<br />
<br />
== Flashing the Kernel ==<br />
<br />
The command format is <br />
<br />
dfu-util -a kernel -R -D ''/path/to/uImage''<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br />
Done!<br />
<br />
== Flashing the Root Filesystem ==<br />
<br />
The root filesystem has to be an image in jffs2 format. If the file you downloaded is zipped or compressed (has a .gz or .zip extension) you have to uncompress it first.<br />
<br />
The command format is<br />
<br />
dfu-util -a rootfs -R -D ''rootfs_filename.jffs2''<br />
<br />
where ''rootfs_filename.jffs2'' is the name of the file containing the root filesystem.<br />
<br />
When flashing succeeds the following will be shown:<br />
<br />
status(0) = No error condition is present<br />
Done!<br />
<br />
== Flashing the boot loader to the NAND==<br />
<br />
The boot loader (U-boot) file should have a .bin extension. As with the root filesystem, if the file you downloaded is zipped or compressed (has a .gz or .zip extension) you have to uncompress it first.<br />
<br />
The command format is <br />
<br />
dfu-util -a u-boot -R -D ''uboot.bin''<br />
<br />
where ''uboot.bin'' is the name of the boot loader binary image file.<br />
<br />
''Reminder'': You should have [[Flashing_the_Neo_FreeRunner#Boot_the_FreeRunner_from_NOR_Flash|rebooted from NOR first]], in order to flash the boot-loader in NAND. After flashing succesfully, make sure you reboot from NAND's newly flashed boot loader, to benefit from the updates.<br />
<br />
<!-- Taken from posts by Mikael Berthe <mikael.berthe@lilotux.net> and Torfinn Ingolfsen <tingox@gmail.com> to Support list, subject: Re: Upgrading u-boot needed ? --><br />
(Optional) After an upgrade, you may wish to check that the u-boot version matches the one you have just flashed. You can use 'grep Bootloader /dev/mtdblock1' from a shell on the FreeRunner (and possibly the 1973 as well) to get the '''NAND''' u-boot version, like this:<br />
root@om-gta02:~# grep Bootloader /dev/mtdblock1<br />
Neo1973 Bootloader U-Boot 1.3.2+gitr18+64eb10cab8055084ae25ea4e73b66dd03cc1a0cb<br />
<br />
You can grep for the same string in /dev/mtdblock0 to retrieve the '''NOR''' u-boot version:<br />
root@om-gta02:~# grep Bootloader /dev/mtdblock0<br />
Neo1973 Bootloader U-Boot 1.3.2-moko12<br />
<br />
<!-- ENDS ... subject: Re: Upgrading u-boot needed ? --><br />
<br />
== Reboot the FreeRunner from NAND ==<br />
<br />
You should now be able to boot into the new images.<br />
<br />
Pay attention '''to booting from the NAND flash this time''', in particular if you upgraded the boot-loader (in short: 1. press and hold ''power button'' down, and then 2. press ''aux button'')<br />
<br />
The boot menu should be labelled '''*** BOOT MENU (NAND) ***''' this time (see [[Booting#Log_into_U-Boot_in_the_NAND_Flash|booting from NAND]] for more detailed instructions).<br />
<br />
[[Category:Flashing Openmoko| ]]</div>Thewtexhttp://openmoko.org/wiki/Userspace_root_imageUserspace root image2008-08-07T00:43:55Z<p>Thewtex: /* Mount on loopback device */</p>
<hr />
<div>== Creating a root filesystem from scratch ==<br />
<br />
To create a root file system image for storage in NAND flash, we use the mkfs.jffs2 program contained in the Debian package ''mtd-tools''.<br />
<br />
mkfs.jffs2 --pad=0x700000 -o rootfs.jffs2 -e 0x4000 -n -d/tmp/jffsroot/<br />
<br />
is a typical command. It creates a FS image for our erase block size of 16k, padded to 0x700000 bytes in length from the files contained in the ''/tmp/jffsroot'' directory and stores the FS image in ''rootfs.jffs2''.<br />
<br />
== Using pre-created rootfs image ==<br />
<br />
=== Prebuilt ===<br />
<br />
See [[Repositories]] and update the list if you have more information.<br />
<br />
=== OpenEmbedded ===<br />
<br />
OpenEmbedded will itself create a jffs2 image at the end of the build process.<br />
<br />
Once the build server is running, it will create root filesystem images for us.<br />
<br />
=== demo JFFS2 root image ===<br />
<br />
Check the [[Flashing openmoko]] page for pre-built root images. Please note that this image may take long to boot the first time, since this boot finishes the installation process.<br />
<br />
=== Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) ===<br />
==== Configure the kernel for support ====<br />
For a 2.6.25 kernel:<br />
*Device Drivers<br />
**Block Devices<br />
***Loopback device support<br />
**Memory Technology Device (MTD) support<br />
***Caching block device access to MTD device (mtdblock module, required for block2mtd)<br />
***Self-contained MTD device drivers<br />
****MTD using block device (block2mtd)<br />
*File systems<br />
**Miscellaneous filesystems<br />
***Journalling Flash File System v2 (JFFS2) support<br />
****Advanced compression for JFFS2<br />
*****JFFS2 ZLIB compression support<br />
<br />
==== Mount on loopback device ====<br />
<br />
losetup is an application to manage loop devices, if you have the "losetup -f" option (for instance debian etch do not has such option) you can use the following commands:<br />
<br />
export loop=$(losetup -f)<br />
losetup $loop <rootfs.jffs2><br />
modprobe block2mtd block2mtd=$loop,131072<br />
modprobe jffs2<br />
modprobe mtdblock<br />
mkdir <mountpoint><br />
mount -t jffs2 -o ro /dev/mtdblock0 <mountpoint><br />
<br />
"losetup -f" just returns the first unused loop device, if your system do not comes with "losetup -f" just chose the first /dev/loop* device that is unused and change the first line with:<br />
<br />
export loop=/dev/loop0<br />
<br />
if loop0 is unused <br />
<br />
<br />
Based on this [http://www.internettablettalk.com/forums/showthread.php?p=192475#post192475 script by fanoush].<br />
<br />
The following is an alternate way of doing the above.<br />
modprobe mtdcore<br />
modprobe jffs2<br />
modprobe mtdram total_size=59024 # default is 4 MByte - set to max. available size<br />
modprobe mtdchar<br />
modprobe mtdblock<br />
dd if=<rootfs.jffs2> of=/dev/mtd0<br />
mount -t jffs2 /dev/mtdblock0 <mountpoint><br />
<br />
=== Mounting the JFFS2 image on a loop back device (Kernel Memory MTD Emulation) ===<br />
<br />
As mounting the JFFS2 image from /dev/loop0 device is not supported, use the mtdram device as described in http://www.handhelds.org/hypermail/familiar/62/6232.html<br />
<br />
(On Fedora the first module to load is mtd, not mtdcore and you need to set e.g. vmalloc=256m as a kernel boot parameter for this to work.)<br />
<br />
modprobe mtdcore<br />
modprobe jffs2<br />
modprobe mtdram total_size=59024 # default is 4 MByte - set to max. available size<br />
modprobe mtdchar<br />
modprobe mtdblock<br />
<br />
Using ''total_size=59024'' will set the filesystem size to the available space on /dev/mtd4 of the GTA1 device. So when you copy the image back it will be about 58 MB. You can set this to smaller values though.<br />
<br />
<br />
Be careful to really use the mtd-ram-disk (maybe there is a real Flash-device somewhere in your development system)<br />
<br />
So check for that looking into /proc/mtd:<br />
cat /proc/mtd <br />
# dev: size erasesize name<br />
# mtd0: 039a4000 00020000 "mtdram test device"<br />
<br />
Then write the image to that device and mount it:<br />
<br />
dd if=<rootfs.jffs2> of=/dev/mtd0<br />
mount -t jffs2 /dev/mtdblock0 <mountpoint><br />
<br />
The image is an Little Endian jffs2 image. To mount it on Big Endian architectures (like PowerPC) it'll have to be converted:<br />
<br />
jffs2dump -l -c -e <rootfs.jffs2.be> <rootfs.jffs2> # only needed on non little endian archs<br />
<br />
==== create the new image ====<br />
To get the changed image back there are two ways. The obvious one is to unmount it and copy the data back from the MTD block device (the image will be 58 MB):<br />
<br />
umount /dev/mtdblock0<br />
dd if=/dev/mtdblock0 of=<rootfs.jffs2><br />
<br />
You can also create a new image using the mounted file system and the method described [[Userspace_root_image#Creating_a_root_filesystem_from_scratch | above]] (the image will have the size of its data):<br />
<br />
mkfs.jffs2 --pad=0x700000 -o new_rootfs.jffs2 -e 0x4000 -n -d <mountpoint><br />
<br />
== Flashing a root filesystem into NAND ==<br />
<br />
See [[U-boot#Writing_rootfs_to_NAND]]<br />
<br />
== Converting a GTA02 image for GTA01 ==<br />
<br />
The techniques on this page may be used to convert a GTA02 (Freerunner) image for use on a GTA01, provided that it is small enough to fit into the GTA01's flash. <br />
<br />
The steps I used are shown below (corrections welcome). Please read all of this page before executing these commands, in particular the warning to make sure that /dev/mtd0 does not map to a real flash device on your system.<br />
<br />
modprobe jffs2<br />
modprobe mtdchar<br />
modprobe mtdblock<br />
modprobe mtdram erase_size=128 total_size=262144<br />
dd if=gta02_image.jffs2 of=/dev/mtd0<br />
mount -t jffs2 -o ro /dev/mtdblock0 /mnt<br />
mkfs.jffs2 --little-endian -e 16 -x lzo --pad -n -r /mnt -o for_gta01.jffs2<br />
<br />
To clean up when you're done:<br />
umount /mnt<br />
rmmod mtdram<br />
<br />
<br />
{{Languages|Userspace_root_image}}<br />
[[Category:Openmoko]]<br />
[[Category:Guides]]</div>Thewtexhttp://openmoko.org/wiki/Qtopia_/_Qt_Extended_on_FreeRunnerQtopia / Qt Extended on FreeRunner2008-08-06T13:42:29Z<p>Thewtex: /* Unpacking the Qtopia Root Filesystem Image */</p>
<hr />
<div>This page provides instructions on how to install Qtopia (proper, not the [[ASU]] or [[QtopiaOnX11]] efforts) on the GTA02 (Freerunner) phone. It is similar to the [[Qtopia on Neo1973]] page.<br />
<br />
{|align=right<br />
|__TOC__<br />
|}<br />
<br />
== Current status ==<br />
On 18 July 2008, Qtopia released the [http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=72 latest flash image for the FIC Neo Freerunner (gta02)] containing the Qtopia 4.3.2 snapshot of 17 July 2008 (GPL version). <br />
<br />
This image can successfully make and receive calls and text messages. It can read all contacts from the SIM card (which the updated 2007.2 does not appear to be able to do). It contains apps that appear to be more stable than the ones found in the 2007.2 image. It has multiple input methods that appear to be more mature. It does not, however, have a web browser or a GPS application.<br />
<br />
== Option 1: Flashing Qtopia to FreeRunner ==<br />
<br />
Download the image mentioned above and follow the instructions here: [[Flashing the Neo FreeRunner]]<br />
<br />
== Option 2: Dual-Booting between Qtopia and 2007.2 (Qtopia boots from MicroSD card) ==<br />
<br />
Installation Requirements: <br />
<br />
# SSH shell access to 2007.2 based image of the FreeRunner through USB interface or WLAN.<br />
# A Desktop Linux distro (to unpack the .jffs2 image, I ran Ubuntu under VMWare)<br />
<br />
<br />
=== Preparing the SD card ===<br />
<br />
See the [[Booting from SD#Prepare the SD card| Preparing the SD Card]] section of the [[Booting from SD]] page for partitioning and formatting instructions.<br />
<br />
<br />
=== Installing Qtopia ===<br />
<br />
==== Unpacking the Qtopia Root Filesystem Image ====<br />
<br />
Download the Qtopia FLASH image from [[Latest Images#Qtopia image from qtopia.net]] to your Linux box and extract its contents:<br />
<br />
tar xzf qtopia-4.3.2-gta02-flash-*.tgz<br />
<br />
You should now have two files: <br />
#uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin<br />
#qtopia-4.3.2-gta02-rootfs-07172049.jffs2 <br />
Now extract the root file system from the jffs2 using the commands found [[Userspace root image#Mounting the JFFS2 image on a loop back device (Block Memory MTD Emulation) |here]].<br />
<br />
<br />
Now, tar up the root filesystem:<br />
<br />
tar czf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz -C <mountpoint> .<br />
<br />
Where ''<mountpoint>'' is the location where the jff2 filesystem was mounted.<br />
<br />
==== Installing Root Filesystem ====<br />
<br />
Transfer this compressed tarball to the second partition of the MicroSD that is mounted on the FreeRunner:<br />
<br />
scp qtopia-4.3.2-gta02-rootfs-07172049.tar.gz root@192.168.0.202:/media/mmcblk0p2/<br />
<br />
Log in to your FreeRunner and unpack the root filesystem:<br />
<br />
cd /media/mmcblk0p2<br />
tar xzf qtopia-4.3.2-gta02-rootfs-07172049.tar.gz<br />
rm qtopia-4.3.2-gta02-rootfs-07172049.tar.gz<br />
rm -f /media/mmcblk0p2/boot/*<br />
<br />
'''''Note:''''' the last step removes the kernel image from the second partition. For some reason, U-Boot cannot find the uImage.bin file in the first partition if a kernel image exists in the second partition boot/ directory.<br />
<br />
==== Installing Kernel ====<br />
<br />
From your Linux box, rename uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin to uImage.bin and copy it to the boot/ on the first partition of the MicroSD card.<br />
<br />
mv uImage-2.6.24+git18+9c058ff0d2641df3c36fc3300acb72078d2c41d4-r0-om-gta02.bin uImage.bin<br />
scp uImage.bin root@192.168.0.202:/media/card/boot/<br />
<br />
=== Option 3: updating from source ===<br />
<br />
{{note|This should really be tested, it will upgrade only opt/Qtopia directory, you should use opkg update/upgrade for the rest}}<br />
Original Qtopia images (the distribution released by Trolltech, not ASU) are rarely released as a rootfs image, but the source code is often updated. If you want to reflash your OM with the latest version of Qtopia you might build it from sources. This has been explained in [http://lists.openmoko.org/pipermail/community/2008-August/024785.html this thread] of the community mailing list. Summing up:<br />
<br />
* get the latest toolchain released by trolltech: http://www.qtopia.net/modules/mydownloads/singlefile.php?lid=38 <br />
* unzip it on your PC in / (as root)<br />
* get the latest snapshot from trolltech: ftp://ftp.trolltech.com/qtopia/snapshots/<br />
* once dowloaded untar it<br />
tar xvzf qtopia-opensource-src-4.3.2-snapshot-20080804.tar.gz<br />
* make a "build" dir <br />
mkdir build<br />
cd build<br />
* configure and make:<br />
../qtopia-opensource-src-4.3.2-snapshot-20080804/configure -device ficgta01<br />
make <br />
This will take some time (couple hours). Note that the option "-device ficgta01" should work for both neo and freerunner. Then:<br />
<br />
make install<br />
<br />
will make a root directory into build directory. That directory should be copied to /opt/Qtopia of your phone with scp. once done restart qpe or whole phone.<br />
<br />
=== Booting into Qtopia ===<br />
<br />
Now shutdown the FreeRunner<br />
<br />
shutdown -h now<br />
<br />
Log into U-Boot in the NOR Flash to boot from the MicroSD card: (instructions from [[Booting the Neo FreeRunner]])<br />
<br />
* Press and hold Power button<br />
* Then while still pressing the Power button, press and hold AUX button for 5 to 8 seconds. <br />
* A boot menu will appear. <br />
* Press the AUX button to select "[[Boot from sd card|Boot from MicroSD]]" and then press the Power button to execute.<br />
<br />
Qtopia should now boot.<br />
<br />
'''''Note:''''' you may get a kernel panic which says that "optional features not supported". If this is the case, boot back into 2007.2 and run<br />
<br />
umount /dev/mmcblk0p2<br />
fsck.ext3.e2fsprogs /dev/mmcblk0p2<br />
<br />
This will clean up the file system and clear recovery flags in ext3 that ext2 does not support, then try booting from the MicroSD again.<br />
<br />
[[Category:Distributions]]<br />
[[Category:Qtopia]]</div>Thewtexhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-08-06T13:24:48Z<p>Thewtex: /* Add uboot boot entry */</p>
<hr />
<div>This page explains how to boot a Freerunner from the SD card rather than from the built-in NAND flash memory. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{{Warning | Booting from SDHC may cause problems at this time. }} See [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| this thread.] <br />
<br />
== How it Works ==<br />
<br />
On the Neo, [[u-boot]] performs a similar role to the 'grub' bootloader on a PC. U-boot loads a kernel image into memory and then passes a list of parameters to the kernel. These parameters specify, among other things, the device on which the root filesystem is located.<br />
<br />
As the kernel boots, it initializes the hardware and then mounts the root filesystem. The kernel then runs "/sbin/init", which handles the rest of the boot-up sequence (such as displaying the splash screen and progress bar).<br />
<br />
This sequence is the same whether the device is booting from built-in Flash or from the SD card. The differences are how the kernel is loaded, and which device is mounted as the root filesystem.<br />
<br />
The following sections provide additional details.<br />
<br />
=== Menu Entries ===<br />
<br />
U-boot menu entries are defined by environment variables named "menu_X" (where X is a number). The value of the environment variable is a string "<label>:<commands>", where <label> is the text shown on the screen, and <commands> is a sequence of u-boot commands (delimited by ';' characters) to be executed when the menu item is selected. When entering a string of commands, the ';' and '$' characters must be backslash-escaped ("\;" and "\$"). <br />
<br />
=== Loading the Kernel ===<br />
<br />
A pair of u-boot commands must be used to load the kernel from SD. First is "mmcinit", which will cause u-boot to detect the card. Next is a command to load a file into memory - either "fatload" or "ext2load" depending on whether the kernel is on a FAT filesytem or an ext2/ext3 filesystem.<br />
<br />
The command syntax is:<br />
<br />
fatload mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
ext2load mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
<br />
where &lt;p&gt; is the partition number, and &lt;filepath&gt; is the path to the file that is to be loaded.<br />
<br />
{{Note| The "ext2load" command is broken on u-boot binary earlier than "20080723", including the one shipped with the first batch of Freerunners, are affected by bug [http://docs.openmoko.org/trac/ticket/799 #799]. If you update your U-Boot and kernel packages you can use direct ext2 / 3 boot all in one partition.}}<br />
<br />
{{Warning | Be careful when updating u-boot on a Neo1973 as there is a risk of bricking the device (unless you have a debug board). This is not an issue for the Freerunner as it has a protected copy of u-boot in the NOR flash }}<br />
<br />
{{Note| U-Boot supports SDHC protocol on the Freerunner only: on the Neo1973, u-boot is unable to access SDHC cards (4G or larger). The kernel does have SDHC support on Neo1973, so it is possible to have the root filesystem on SDHC and the kernel on NAND flash to work around it. }}<br />
<br />
=== Root Filesystem Parameters ===<br />
<br />
The contents of the "bootargs" environment variable are passed to the kernel. Bootargs is a space-delimited list of "name=value" definitions. The items relevant to SD-booting are "root", "rootfstype", and "rootdelay". <br />
<br />
For example, the following parameters would tell the kernel to mount the third partition of the SD-card as an ext3 filesystem:<br />
<br />
root=/dev/mmcblk0p3 rootfstype=ext3 rootdelay=5 <br />
<br />
The "rootdelay" parameter allows time for the card to be properly initialized before it is accessed. <br />
<br />
Note that the kernel must have built-in support (i.e. not a module) for the filesystem specified in "rootfstype". The default Openmoko kernel configs as of [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] have built-in support for both ext2 and ext3. You can check the available filesystems with the Linux command<br />
<br />
less /proc/filesystems<br />
<br />
It is not possible to use VFAT for the root filesystem.<br />
<br />
==== ext2 vs. ext3 ====<br />
<br />
Opinion is divided on whether it is better to use ext2 or ext3 for the root filesystem. Ext3 in general is a superior choice, because it is a journalled filesystem and so does not require a long 'fsck' (file system check) after an unclean shutdown. However, if used on a flash device that does not support wear-leveling then ext3 may cause premature wear on the blocks of the card where the journal is stored. SD cards are supposed to support wear leveling, but this can not be guaranteed for all vendors.<br />
<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
u-boot pre-2008-07-23 can only boot from FAT filesystems; if you update u-boot, you can boot from FAT or ext2.<br />
This example shows how to do an example partition using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
We will now create a 8 mb partition for our kernel and another one for the rootfs which will take up all the remaining space.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (18-983, default 18):<br />
Using default value 18<br />
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
=== Formatting the SD card ===<br />
<br />
Just issue the following command to create at FAT filesystem:<br />
<br />
mkfs.vfat /dev/mmcblk0p1<br />
<br />
Note: if you do not have mkfs.vfat you must find and install the "dosfstools" package. This package does not seem to be in the official feeds, but an unofficial build may be downloaded from http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk<br />
<br />
<br />
The second partition is about to be formatted with ext3 (for ext2 to work you need to make sure you compiled the kernel with the correct configuration):<br />
<br />
mkfs.ext3 /dev/mmcblk0p2<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
'''''Note:''''' There's a nice gotcha to take care about if you use your host OS automount. Some hosts mount these removable devices with "nodev" option by default for security. If the image you are unpacking has a populated /dev directory, the nodes will fail to create as devices then. If auomounting the SD on your host, confirm there are no unexpected mount options by using "mount" command alone to list the mounts.<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card. If the u-boot doesn't find the kernel image during boot, log into the bootloader with ''cu'', mount the partition with mmcinit and check the presence and the name of the kernel image with ''fatls mmc 1:1''.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
Depending on the revision of the phone and the partition type (ext2/ext3) you are using, it might be necessary to add an entry to the bootmenu to be able to boot the system off your SD card.<br />
If you are using a Freerunner and have created an FAT kernel/ext2 rootfs partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NOR/NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
Please make sure you are using the correct configuration based on the decisions you made earlier. For more information on the uboot prompt, see <br />
help <br />
help <command><br />
and [[Bootloader]] and [[Bootloader commands]].<br />
<br />
{{Note| The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed.}}<br />
<br />
{{Note| Copy and paste may not work depending on your terminal emulator. Commi just works or you can use [[NeoCon|neocon]] terminal emulator and add a per-character delay. Otherwise, you will have to type in the commandline manually.}}<br />
<br />
It is important to distinguish between FAT or ext2 kernel partitions and ext2 or ext3 root partitions at this point. <br />
<br />
Please watch partition numbers in the following commands. In particular, you may need to change root=/dev/mmcblk0p'''#''' and fatload mmc '''#''' or ext2load mmc '''#''' depending on which partition number your root and kernel, respectively, are located. Number starts from unity.<br />
<br />
'''Boot entry for FAT kernel+ext3 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for FAT kernel+ext2 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 kernel+ext2 rootfs partitions: (requires newer u-boot)'''<br />
<br />
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your SD card.<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
{{Note|the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner if you have u-boot from 2008-07-23 or later.}}<br />
<br />
As SDHC is currently not supported in u-boot you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. IF you also have "console=tty0" on your kernel commandline this makes the boot process extremely slow because the framebuffer (the neo display in text mode) has to print out tons of lines of debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:Guides]]<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Documentation]]<br />
[[Category:System Developers]]</div>Thewtexhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-08-06T13:23:07Z<p>Thewtex: /* Add uboot boot entry */ partition numbering warning</p>
<hr />
<div>This page explains how to boot a Freerunner from the SD card rather than from the built-in NAND flash memory. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{{Warning | Booting from SDHC may cause problems at this time. }} See [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| this thread.] <br />
<br />
== How it Works ==<br />
<br />
On the Neo, [[u-boot]] performs a similar role to the 'grub' bootloader on a PC. U-boot loads a kernel image into memory and then passes a list of parameters to the kernel. These parameters specify, among other things, the device on which the root filesystem is located.<br />
<br />
As the kernel boots, it initializes the hardware and then mounts the root filesystem. The kernel then runs "/sbin/init", which handles the rest of the boot-up sequence (such as displaying the splash screen and progress bar).<br />
<br />
This sequence is the same whether the device is booting from built-in Flash or from the SD card. The differences are how the kernel is loaded, and which device is mounted as the root filesystem.<br />
<br />
The following sections provide additional details.<br />
<br />
=== Menu Entries ===<br />
<br />
U-boot menu entries are defined by environment variables named "menu_X" (where X is a number). The value of the environment variable is a string "<label>:<commands>", where <label> is the text shown on the screen, and <commands> is a sequence of u-boot commands (delimited by ';' characters) to be executed when the menu item is selected. When entering a string of commands, the ';' and '$' characters must be backslash-escaped ("\;" and "\$"). <br />
<br />
=== Loading the Kernel ===<br />
<br />
A pair of u-boot commands must be used to load the kernel from SD. First is "mmcinit", which will cause u-boot to detect the card. Next is a command to load a file into memory - either "fatload" or "ext2load" depending on whether the kernel is on a FAT filesytem or an ext2/ext3 filesystem.<br />
<br />
The command syntax is:<br />
<br />
fatload mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
ext2load mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
<br />
where &lt;p&gt; is the partition number, and &lt;filepath&gt; is the path to the file that is to be loaded.<br />
<br />
{{Note| The "ext2load" command is broken on u-boot binary earlier than "20080723", including the one shipped with the first batch of Freerunners, are affected by bug [http://docs.openmoko.org/trac/ticket/799 #799]. If you update your U-Boot and kernel packages you can use direct ext2 / 3 boot all in one partition.}}<br />
<br />
{{Warning | Be careful when updating u-boot on a Neo1973 as there is a risk of bricking the device (unless you have a debug board). This is not an issue for the Freerunner as it has a protected copy of u-boot in the NOR flash }}<br />
<br />
{{Note| U-Boot supports SDHC protocol on the Freerunner only: on the Neo1973, u-boot is unable to access SDHC cards (4G or larger). The kernel does have SDHC support on Neo1973, so it is possible to have the root filesystem on SDHC and the kernel on NAND flash to work around it. }}<br />
<br />
=== Root Filesystem Parameters ===<br />
<br />
The contents of the "bootargs" environment variable are passed to the kernel. Bootargs is a space-delimited list of "name=value" definitions. The items relevant to SD-booting are "root", "rootfstype", and "rootdelay". <br />
<br />
For example, the following parameters would tell the kernel to mount the third partition of the SD-card as an ext3 filesystem:<br />
<br />
root=/dev/mmcblk0p3 rootfstype=ext3 rootdelay=5 <br />
<br />
The "rootdelay" parameter allows time for the card to be properly initialized before it is accessed. <br />
<br />
Note that the kernel must have built-in support (i.e. not a module) for the filesystem specified in "rootfstype". The default Openmoko kernel configs as of [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] have built-in support for both ext2 and ext3. You can check the available filesystems with the Linux command<br />
<br />
less /proc/filesystems<br />
<br />
It is not possible to use VFAT for the root filesystem.<br />
<br />
==== ext2 vs. ext3 ====<br />
<br />
Opinion is divided on whether it is better to use ext2 or ext3 for the root filesystem. Ext3 in general is a superior choice, because it is a journalled filesystem and so does not require a long 'fsck' (file system check) after an unclean shutdown. However, if used on a flash device that does not support wear-leveling then ext3 may cause premature wear on the blocks of the card where the journal is stored. SD cards are supposed to support wear leveling, but this can not be guaranteed for all vendors.<br />
<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
u-boot pre-2008-07-23 can only boot from FAT filesystems; if you update u-boot, you can boot from FAT or ext2.<br />
This example shows how to do an example partition using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
We will now create a 8 mb partition for our kernel and another one for the rootfs which will take up all the remaining space.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (18-983, default 18):<br />
Using default value 18<br />
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
=== Formatting the SD card ===<br />
<br />
Just issue the following command to create at FAT filesystem:<br />
<br />
mkfs.vfat /dev/mmcblk0p1<br />
<br />
Note: if you do not have mkfs.vfat you must find and install the "dosfstools" package. This package does not seem to be in the official feeds, but an unofficial build may be downloaded from http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk<br />
<br />
<br />
The second partition is about to be formatted with ext3 (for ext2 to work you need to make sure you compiled the kernel with the correct configuration):<br />
<br />
mkfs.ext3 /dev/mmcblk0p2<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
'''''Note:''''' There's a nice gotcha to take care about if you use your host OS automount. Some hosts mount these removable devices with "nodev" option by default for security. If the image you are unpacking has a populated /dev directory, the nodes will fail to create as devices then. If auomounting the SD on your host, confirm there are no unexpected mount options by using "mount" command alone to list the mounts.<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card. If the u-boot doesn't find the kernel image during boot, log into the bootloader with ''cu'', mount the partition with mmcinit and check the presence and the name of the kernel image with ''fatls mmc 1:1''.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
Depending on the revision of the phone and the partition type (ext2/ext3) you are using, it might be necessary to add an entry to the bootmenu to be able to boot the system off your SD card.<br />
If you are using a Freerunner and have created an FAT kernel/ext2 rootfs partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NOR/NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
Please make sure you are using the correct configuration based on the decisions you made earlier. For more information on the uboot prompt, see <br />
help <br />
help <command><br />
and [[Bootloader]] and [[Bootloader commands]].<br />
<br />
{{Note| The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed.}}<br />
<br />
{{Note| Copy and paste may not work depending on your terminal emulator. Commi just works or you can use [[NeoCon|neocon]] terminal emulator and add a per-character delay. Otherwise, you will have to type in the commandline manually.}}<br />
<br />
It is important to distinguish between FAT or ext2 kernel partitions and ext2 or ext3 root partitions at this point. <br />
<br />
Please watch partition numbers in the following commands. In particular, you may need to change ''root=/dev/mmcblk0p'''#''''' and ''fatload mmc ''#''''' or ''ext2load mmc ''#''''' depending on which partition number your root and kernel, respectively, are located. Number starts from unity.<br />
<br />
'''Boot entry for FAT kernel+ext3 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for FAT kernel+ext2 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 kernel+ext2 rootfs partitions: (requires newer u-boot)'''<br />
<br />
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your SD card.<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
{{Note|the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner if you have u-boot from 2008-07-23 or later.}}<br />
<br />
As SDHC is currently not supported in u-boot you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. IF you also have "console=tty0" on your kernel commandline this makes the boot process extremely slow because the framebuffer (the neo display in text mode) has to print out tons of lines of debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:Guides]]<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Documentation]]<br />
[[Category:System Developers]]</div>Thewtexhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-08-03T03:04:17Z<p>Thewtex: /* Loading the Kernel */</p>
<hr />
<div>This page explains how to boot a Freerunner from the SD card rather than from the built-in NAND flash memory. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{{Warning | Booting from SDHC may cause problems at this time. }} See [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| this thread.] <br />
<br />
== How it Works ==<br />
<br />
On the Neo, [[u-boot]] performs a similar role to the 'grub' bootloader on a PC. U-boot loads a kernel image into memory and then passes a list of parameters to the kernel. These parameters specify, among other things, the device on which the root filesystem is located.<br />
<br />
As the kernel boots, it initializes the hardware and then mounts the root filesystem. The kernel then runs "/sbin/init", which handles the rest of the boot-up sequence (such as displaying the splash screen and progress bar).<br />
<br />
This sequence is the same whether the device is booting from built-in Flash or from the SD card. The differences are how the kernel is loaded, and which device is mounted as the root filesystem.<br />
<br />
The following sections provide additional details.<br />
<br />
=== Menu Entries ===<br />
<br />
U-boot menu entries are defined by environment variables named "menu_X" (where X is a number). The value of the environment variable is a string "<label>:<commands>", where <label> is the text shown on the screen, and <commands> is a sequence of u-boot commands (delimited by ';' characters) to be executed when the menu item is selected. When entering a string of commands, the ';' and '$' characters must be backslash-escaped ("\;" and "\$"). <br />
<br />
=== Loading the Kernel ===<br />
<br />
A pair of u-boot commands must be used to load the kernel from SD. First is "mmcinit", which will cause u-boot to detect the card. Next is a command to load a file into memory - either "fatload" or "ext2load" depending on whether the kernel is on a FAT filesytem or an ext2/ext3 filesystem.<br />
<br />
The command syntax is:<br />
<br />
fatload mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
ext2load mmc 1:&lt;p&gt; 0x32000000 &lt;filepath&gt;<br />
<br />
where &lt;p&gt; is the partition number, and &lt;filepath&gt; is the path to the file that is to be loaded.<br />
<br />
{{Note| The "ext2load" command is broken on u-boot binary earlier than "20080723", including the one shipped with the first batch of Freerunners, are affected by bug [http://docs.openmoko.org/trac/ticket/799 #799]. If you update your U-Boot and kernel packages you can use direct ext2 / 3 boot all in one partition.}}<br />
<br />
{{Warning | Be careful when updating u-boot on a Neo1973 as there is a risk of bricking the device (unless you have a debug board). This is not an issue for the Freerunner as it has a protected copy of u-boot in the NOR flash }}<br />
<br />
{{Note| U-Boot supports SDHC protocol on the Freerunner only: on the Neo1973, u-boot is unable to access SDHC cards (4G or larger). The kernel does have SDHC support on Neo1973, so it is possible to have the root filesystem on SDHC and the kernel on NAND flash to work around it. }}<br />
<br />
=== Root Filesystem Parameters ===<br />
<br />
The contents of the "bootargs" environment variable are passed to the kernel. Bootargs is a space-delimited list of "name=value" definitions. The items relevant to SD-booting are "root", "rootfstype", and "rootdelay". <br />
<br />
For example, the following parameters would tell the kernel to mount the third partition of the SD-card as an ext3 filesystem:<br />
<br />
root=/dev/mmcblk0p3 rootfstype=ext3 rootdelay=5 <br />
<br />
The "rootdelay" parameter allows time for the card to be properly initialized before it is accessed. <br />
<br />
Note that the kernel must have built-in support (i.e. not a module) for the filesystem specified in "rootfstype". The default Openmoko kernel configs as of [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] have built-in support for both ext2 and ext3. You can check the available filesystems with the Linux command<br />
<br />
less /proc/filesystems<br />
<br />
It is not possible to use VFAT for the root filesystem.<br />
<br />
==== ext2 vs. ext3 ====<br />
<br />
Opinion is divided on whether it is better to use ext2 or ext3 for the root filesystem. Ext3 in general is a superior choice, because it is a journalled filesystem and so does not require a long 'fsck' (file system check) after an unclean shutdown. However, if used on a flash device that does not support wear-leveling then ext3 may cause premature wear on the blocks of the card where the journal is stored. SD cards are supposed to support wear leveling, but this can not be guaranteed for all vendors.<br />
<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
u-boot pre-2008-07-23 can only boot from FAT filesystems; if you update u-boot, you can boot from FAT or ext2.<br />
This example shows how to do an example partition using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
We will now create a 8 mb partition for our kernel and another one for the rootfs which will take up all the remaining space.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (18-983, default 18):<br />
Using default value 18<br />
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
=== Formatting the SD card ===<br />
<br />
Just issue the following command to create at FAT filesystem:<br />
<br />
mkfs.vfat /dev/mmcblk0p1<br />
<br />
Note: if you do not have mkfs.vfat you must find and install the "dosfstools" package. This package does not seem to be in the official feeds, but an unofficial build may be downloaded from http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk<br />
<br />
<br />
The second partition is about to be formatted with ext3 (for ext2 to work you need to make sure you compiled the kernel with the correct configuration):<br />
<br />
mkfs.ext3 /dev/mmcblk0p2<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
'''''Note:''''' There's a nice gotcha to take care about if you use your host OS automount. Some hosts mount these removable devices with "nodev" option by default for security. If the image you are unpacking has a populated /dev directory, the nodes will fail to create as devices then. If auomounting the SD on your host, confirm there are no unexpected mount options by using "mount" command alone to list the mounts.<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card. If the u-boot doesn't find the kernel image during boot, log into the bootloader with ''cu'', mount the partition with mmcinit and check the presence and the name of the kernel image with ''fatls mmc 1:1''.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
Depending on the revision of the phone and the partition type (ext2/ext3) you are using, it might be necessary to add an entry to the bootmenu to be able to boot the system off your SD card.<br />
If you are using a Freerunner and have created an FAT kernel/ext2 rootfs partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NOR/NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
Please make sure you are using the correct configuration based on the decisions you made earlier. For more information on the uboot prompt, see <br />
help <br />
help <command><br />
and [[Bootloader]] and [[Bootloader commands]].<br />
<br />
{{Note| The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed.}}<br />
<br />
{{Note| Copy and paste may not work depending on your terminal emulator. Commi just works or you can use [[NeoCon|neocon]] terminal emulator and add a per-character delay. Otherwise, you will have to type in the commandline manually.}}<br />
<br />
It is important to distinguish between FAT or ext2 kernel partitions and ext2 or ext3 root partitions at this point. <br />
<br />
'''Boot entry for FAT kernel+ext3 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for FAT kernel+ext2 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 kernel+ext2 rootfs partitions: (requires newer u-boot)'''<br />
<br />
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your SD card.<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
{{Note|the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner if you have u-boot from 2008-07-23 or later.}}<br />
<br />
As SDHC is currently not supported in u-boot you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. IF you also have "console=tty0" on your kernel commandline this makes the boot process extremely slow because the framebuffer (the neo display in text mode) has to print out tons of lines of debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:Guides]]<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Documentation]]<br />
[[Category:System Developers]]</div>Thewtexhttp://openmoko.org/wiki/InvisibleShieldInvisibleShield2008-08-03T02:54:08Z<p>Thewtex: </p>
<hr />
<div>Here is what the Zagg InvisibleShield looks like, full body version.<br />
<br />
See also [[Zagg Protection Discount Number]]<br />
<br />
[[Image:zaggbox.jpg]]<br />
<br />
==Back==<br />
[[Image:invis_shield_back.jpg]]<br />
<br />
==Front==<br />
[[Image:invis_shield_front.jpg]]<br />
<br />
==Freerunner front pre shield==<br />
[[Image:fr_front_pre_shield.jpg]]<br />
<br />
==Freerunner back pre shield==<br />
[[Image:fr_back_pre_shield.jpg]]<br />
<br />
==Freerunner front post shield==<br />
[[Image:fr_front_post_shield.jpg]]<br />
<br />
==Freerunner back post shield==<br />
[[Image:fr_back_post_shield.jpg]]<br />
<br />
==Freerunner side post shield==<br />
[[Image:fr_side_post_shield.jpg]]<br />
<br />
[[Category:Hardware]]<br />
<br />
[[Category:Customization]]</div>Thewtexhttp://openmoko.org/wiki/InvisibleShieldInvisibleShield2008-08-03T02:51:21Z<p>Thewtex: </p>
<hr />
<div>Here is what the Zagg InvisibleShield looks like, full body version.<br />
<br />
See also [[Zagg Protection Discount Number]]<br />
<br />
[[Image:zaggbox.jpg]]<br />
<br />
[[Image:invis_shield_back.jpg]]<br />
<br />
[[Image:invis_shield_front.jpg]]<br />
<br />
[[Image:fr_front_pre_shield.jpg]]<br />
<br />
[[Image:fr_back_pre_shield.jpg]]<br />
<br />
[[Image:fr_front_post_shield.jpg]]<br />
<br />
[[Image:fr_back_post_shield.jpg]]<br />
<br />
[[Image:fr_side_post_shield.jpg]]<br />
<br />
[[Category:Hardware]]<br />
<br />
[[Category:Customization]]</div>Thewtexhttp://openmoko.org/wiki/Zagg_Protection_Discount_NumberZagg Protection Discount Number2008-08-03T02:49:26Z<p>Thewtex: add link to page</p>
<hr />
<div>'''Here a simple page to list all [http://www.zagg.com/invisibleshield/openmoko-neo-freerunner-cases-screen-protectors-covers-skins-shields.php zagg protection] discount codes (20%).'''<br />
'''You can use these numbers when buying [[InvisibleShield]] protectors'''.<br />
<br />
'''Take a discount code from the top when buying your protector.'''<br />
Please edit this page, remove the number you used and add "I used this code" in the "Summary:" field of the edit page. You can mention in the summary if you need to edit the page because you find a code invalid & need to take another.<br />
<br />
'''When adding your discount code to the list please do so sorted by chronological date expiration''' (normally at the bottom).<br />
<br />
Here's the list<br />
<br />
* yxqght (end date : 06 August 2008)<br />
* tf9c58 (end date : 06 August 2008)<br />
* qdnwek (end date : 06 August 2008)<br />
* uy8eg7 (end date : 06 August 2008)<br />
* 7znkh4 (end date : 09 August 2008)<br />
* z3wmrg (end date : 09 August 2008)<br />
* jezrm9 (end date : 12 August 2008)<br />
* y7j8tw (end date : 12 August 2008)<br />
* 5f56c2 (end date : 20 August 2008)<br />
* gnb5ah (end date : 20 August 2008)<br />
* tq9fmn (end date: 23 August 2008)<br />
* vzk4rk (end date: 23 August 2008)<br />
* vp6rb5 (end date : 23 August 2008)<br />
* k74rej (end date : 23 August 2008)<br />
* l3zm27 (end date : 23 August 2008)<br />
* rkck9p (end date : 23 August 2008)<br />
* 587jb5 (end date : 24 August 2008)<br />
* kejt5k (end date : 1 September 2008)<br />
* leupg3 (end date : 1 September 2008)<br />
<br />
Also, a 20%-off code offered in PCWorld. Can be reused.<br />
<br />
*pcworld20 (end date: 31 July 2008)<br />
<br />
[[Category:Information]]</div>Thewtexhttp://openmoko.org/wiki/Talk:WifiweaselTalk:Wifiweasel2008-08-03T02:45:03Z<p>Thewtex: New page: nice pic :-) ~~~</p>
<hr />
<div>nice pic :-) [[User:Thewtex|thewtex]]</div>Thewtexhttp://openmoko.org/wiki/File:Fr_front_post_shield.jpgFile:Fr front post shield.jpg2008-08-03T02:42:22Z<p>Thewtex: uploaded a new version of "Image:Fr front post shield.jpg"</p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Fr_front_pre_shield.jpgFile:Fr front pre shield.jpg2008-08-03T00:08:34Z<p>Thewtex: uploaded a new version of "Image:Fr front pre shield.jpg": Reverted to version as of 00:07, 3 August 2008</p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Fr_front_pre_shield.jpgFile:Fr front pre shield.jpg2008-08-03T00:08:05Z<p>Thewtex: uploaded a new version of "Image:Fr front pre shield.jpg": Reverted to version as of 23:47, 2 August 2008</p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Fr_front_pre_shield.jpgFile:Fr front pre shield.jpg2008-08-03T00:07:28Z<p>Thewtex: uploaded a new version of "Image:Fr front pre shield.jpg"</p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Fr_side_post_shield.jpgFile:Fr side post shield.jpg2008-08-02T23:54:27Z<p>Thewtex: </p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Fr_back_post_shield.jpgFile:Fr back post shield.jpg2008-08-02T23:53:54Z<p>Thewtex: </p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Fr_front_post_shield.jpgFile:Fr front post shield.jpg2008-08-02T23:53:15Z<p>Thewtex: </p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Fr_back_pre_shield.jpgFile:Fr back pre shield.jpg2008-08-02T23:48:46Z<p>Thewtex: </p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Fr_front_pre_shield.jpgFile:Fr front pre shield.jpg2008-08-02T23:47:58Z<p>Thewtex: </p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Invis_shield_front.jpgFile:Invis shield front.jpg2008-08-02T23:47:38Z<p>Thewtex: </p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/File:Invis_shield_back.jpgFile:Invis shield back.jpg2008-08-02T23:47:14Z<p>Thewtex: </p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/InvisibleShieldInvisibleShield2008-08-02T23:46:47Z<p>Thewtex: </p>
<hr />
<div>Here is what the Zagg InvisibleShield looks like, full body version.<br />
<br />
See also [[Zagg Protection Discount Number]]<br />
<br />
[[Image:zaggbox.jpg]]<br />
<br />
[[Image:invis_shield_back.jpg]]<br />
<br />
[[Image:invis_shield_front.jpg]]<br />
<br />
[[Image:fr_front_pre_shield.jpg]]<br />
<br />
[[Image:fr_back_pre_shield.jpg]]<br />
<br />
[[Image:fr_front_post_shield.jpg]]<br />
<br />
[[Image:fr_back_post_shield.jpg]]<br />
<br />
[[Image:fr_side_post_shield.jpg]]</div>Thewtexhttp://openmoko.org/wiki/File:Zaggbox.jpgFile:Zaggbox.jpg2008-08-02T23:41:43Z<p>Thewtex: </p>
<hr />
<div></div>Thewtexhttp://openmoko.org/wiki/InvisibleShieldInvisibleShield2008-08-02T23:35:21Z<p>Thewtex: </p>
<hr />
<div>Here is what the Zagg InvisibleShield looks like, full body version.<br />
<br />
See also [[Zagg Protection Discount Number]]<br />
<br />
[[Image:zaggbox.jpg]]</div>Thewtexhttp://openmoko.org/wiki/InvisibleShieldInvisibleShield2008-08-02T23:34:05Z<p>Thewtex: </p>
<hr />
<div>Here is what the Zagg InvisibleShield looks like, full body version.<br />
<br />
See also [[Zagg Protection Discount Number]]</div>Thewtexhttp://openmoko.org/wiki/InvisibleShieldInvisibleShield2008-08-02T23:33:29Z<p>Thewtex: New page: Here is what the Zagg InvisibleShield looks like, full body version. See also</p>
<hr />
<div>Here is what the Zagg InvisibleShield looks like, full body version.<br />
<br />
See also</div>Thewtexhttp://openmoko.org/wiki/Wishlist/AccessoriesWishlist/Accessories2008-08-02T23:32:33Z<p>Thewtex: /* Special covers */</p>
<hr />
<div>{{Hardware Wishlist}}<br />
This is a page detailing accessories that may be of use for your Neo1973.<br />
<br />
This is both accessories that do not exist, and existing devices that may be good to add to a web-store.<br />
<br />
Advertising on this page is permitted, but keep it brief and factual.<br />
<br />
=Existing devices=<br />
<br />
==Storage Devices==<br />
<br />
* '''Seagate's DAVE (Digital Audio Video Experience)''' with Bluetooth 2.0 WiFi 802.11b/g and USB-on-the-go-Interface (USB-OTG) http://www.seagate.com/docs/pdf/marketing/po_DAVE.pdf<br />
<br />
==Input Devices==<br />
<br />
===Pedometer===<br />
<br />
There are (at least) two uses for a Bluetooth pedometer as a Neo1973 accessory:<br />
<br />
* As an input device for exercise-monitoring software<br />
<br />
* A pedometer combined with a compass (see [[Wish_List_-_Hardware#Digital_compass]]) would allow the positioning software to perform [http://en.wikipedia.org/wiki/Dead_reckoning dead reckoning] when the GPS signal has been lost. The US Army's [http://www.army-technology.com/projects/land_warrior/ Land Warrior system] already does this. (Maybe the pedometer is partly redundant with the accelerometers for dead reckoning tasks? See the [http://www.autospectator.com/modules/news/article.php?storyid=9942 SiRFDiRect announcement].)<br />
<br />
=Wishlist=<br />
==Special covers==<br />
Different special covers could be made available with features like:<br />
* A standard slip-on or clip-on template (possibly with buttons) to make the touch-screen blind accessible<br />
* Small metal frame for protection (like Siemens M65, only with more style)<br />
* Case with mirror on the back, for putting on makeup/checking appearance or helping with self-portraits with an integrated camera.<br />
* Option to completely design printable case styles, perhaps with engraving. Ability to share these on a 'community' site.<br />
* Solar powered recharger (perhaps as extendable/unfoldable [[Expansion Back]]).<br />
* Rubber protection like available for iPod, of course in different colors and transparency.<br />
* Underwater case. This could be a housing that fits around a normal Freerunner like the kinds for digital cameras. Alternatively, it could be an actual case that the Freerunner guts fits into.<br />
* Screen Protector: A simple and very easy to produce screen protector, like the one on my iPaq: <br />
<br />
Protector Flipped up image: http://www.pocketpcthoughts.com/images/ppct-ipaq6900-preview-small-01.jpg<br />
<br />
Protector Flipped down image: http://www.pocketpcthoughts.com/images/ppct-ipaq6900-preview-small-06.jpg<br />
<br />
This serves the dual purpose of protecting the screen from scratches, and stopping user's ear/face from accidentally pressing buttons while talking.<br />
* Scratch-proof protector a la [[InvisibleShield]]<br />
<br />
==Car kit==<br />
A car kit with a cradle which simultaneously recharges the device.<br />
<br />
==Bike kit==<br />
Sporting a GPS, the phone would be ideal to have mounted by a bracket on the bike handle bars. Viewable from your position over the handlebars. Snap-on/snap-off, and some locking mechanism that actually keeps the phone from getting airborne on a hard break. Also, a basic spring on the bracket, making bumps softer on the phone. This type of bracket would cost peanuts to make.<br />
Should also include a padded and waterproof pack that you can place the phone inside, keeping it (somewhat) safe from the elements.<br />
Would also be really cool if it was possible to create a dynamo that can charge the phone, like old school bike headlights.<br />
=== Cadence ===<br />
Something to measure the Cadence like a normal bike computer would be great.<br />
=== Heartbeat ===<br />
Have the possibility to measure the heartbeat would make it a great accessory for training :) <br />
<br />
==Charger conversion connector==<br />
A flexible converter allowing you to recharge the Neo1973 with power from many DC sources such as other devices chargers.<br />
Problems are that it may overload the DC source. It may require sensing of the input voltage, and reducing load if the voltage drops by a factor. Ideally the device should accept input voltage in the range of around 3.3v-28V in either polarity.<br />
<br />
==Ability to connect a USB keyboard to the phones USB port==<br />
<br />
It has a USB port. There are USB keyboards everywhere. It would be great to be able to ssh anywhere over wifi with a regular sized keyboard.<br />
<br />
<br />
'''Portability'''<br />
<br />
I think it should all be seen within the context of portability.<br />
Have a keyboard incorporated, hinged along the long side, as noted elsewhere, with a micro-switch that induces hibernation on closing to conserve power.<br />
Limit the touch screen function to different aspects of the file system and peripheral aspects - in other words, don't limit it to a phone.<br />
Those of us on the go need a phone, yes, but a lot more.<br />
And all of society is evolving in this direction, so the product needs to also to survive.<br />
<br />
USB2 - obviously, could be employed for something like this:<br />
<br />
[http://www.techpin.com/new-32gb-usb-flash-drives-from-corsair/]<br />
<br />
on which an entire OS with a massive /home partition could be carried round on a keyring.<br />
<br />
Why try to crowd it all onto one screen when all you have to do is make an alteration in the size of your belt mounted, carry pouch.<br />
<br />
The world needs the portable office, not just the portable phone.<br />
<br />
--<br />
<br />
Weaver.<br />
<br />
==Make the stylus laser-pen recharge its batteries from phone while "docked"==<br />
<br />
The stylus pen with built in laser pointer and flashlight seemed too big to be able to be attached to the phone while it is not being used, according to the demonstration video. If that is the case, make a slot on the phone where one can "dock" the pen while not using it. Make the phone recharge the batteries in the pen while the pen is docked to the phone.<br />
<br />
==USB laser pointer==<br />
<br />
Make a laser pointer that plugs into the USB connector and controlled in the same through the same interface that that wold make the Freerunner a presentation remote control.<br />
<br />
==Bluetooth earpiece with possible both-ears use==<br />
<br />
It will be like a regular bluetooth speaker, but with another (wired or wireless) speaker in the other ear for music listening and telephony. The main, bulky piece with bluetooth could have a multi-purpose button: for answering calls when it whispers the name of the caller in my ears, or to raise/lower the volume of music or telephone call.<br />
<br />
Would be nice to have them for the left-handed too.<br />
<br />
==Make a VGA and/or DVI out connector==<br />
<br />
The screen on the phone is small. But if it had a VGA out connector, we could connect an ordinary full sized monitor to it. It already has a USB connector. Imagine the coolness of attaching a usb keyboard and a 22" widescreen monitor to your ''phone'' and then viewing youtube videos through the phones wlan connection. You wouldn't have to carry around your laptop anymore since usb keyboards and vga monitors are availible practically everywhere.<br />
<br />
This also may be used to show the conference presentations. There is enough memory in the phone to store the average presentation (the pdf or maybe even html formats could be used). Having the VGA port would transform it into very lightweight tool that could even replace a laptop for some people. It may be OK to have the same VGA resolution as presentations are usually prepared with the big fonts and figures.<br />
<br />
== Pouch ==<br />
The pouch could have external or internal place to keep the stylus.<br />
<br />
== USB camera ==<br />
A camera connected to the usb port.<br />
<br />
<br />
<br />
[[Category:User]]<br />
[[Category:Ideas| ]]<br />
[[Category:Hardware ideas]]</div>Thewtexhttp://openmoko.org/wiki/Template:FreeRunnerTemplate:FreeRunner2008-08-02T22:58:17Z<p>Thewtex: </p>
<hr />
<div>__NOTOC__<br />
__NOEDITSECTION__<br />
<br />
<table id="Table_01" border="0" cellpadding="0" cellspacing="0" aling=center><br />
<tr><br />
<td><br />
[[image:freerunner_01.gif|top]]</td><br />
<td rowspan="2"><br />
[[image:freerunner02.gif]]</td><br />
</tr><br />
<tr><br />
<td><br />
<br />
::[[Image:Circle2.gif|10px]] [[Neo FreeRunner]]<br />
<br />
::[[Image:Circle2.gif|10px]] [[Neo FreeRunner GTA02 Hardware|GTA02 Hardware spec]]<br />
<br />
::[[Image:Circle2.gif|10px]] [[Neo1973: GTA01Bv4 versus GTA02 comparison|GTA01Bv4 versus GTA02]]<br />
<br />
::[[Image:Circle2.gif|10px]] [[GTA02 Openness]]<br />
<br />
::[[Image:Circle2.gif|10px]] [[:Category: GTA02 Hardware |See More About GTA02...]]<br />
<br />
</td><br />
</tr><br />
</table><br />
<br />
<br />
<br />
<div align=Center><br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; border:1px solid #c0c0c0; background:#eeeeee; width:80%;floating="center"; "<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:20% " | <br />
[[Image:Screenshot-2.png|200px|cetner]]<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:20% " |<br />
[[Image:Screen1.png|Neo FreeRunner Package|200px|center]]<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:20% " |<br />
[[Image:Screenshot-5.png|200px|center]]<br />
<br />
! style="background:#fcfcfc;border-left:1px solid #9999cc;border-right:1px ; border-top:2px solid 75d806; border:1px solid #222222; width:20% " |<br />
[[Image:Screenshot-4.png|200px]]<br />
<br />
|}<br />
<br />
<br />
<br />
{| class="wikitable" cellspacing="4" cellpadding="6" width=100%<br />
! width=50% style="background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600; " | <font color="white" >GTA02 FAQ</font><br />
! width=50% style="background:#ff6600;border-left:5px solid white;border-right:5px solid white;border-top:0px solid white; border:1px solid #ff6600;" |<font color="white" >Popular link</font><br />
|-<br />
|valign="top" style="background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; " | <br />
<div align=left><br />
===<font color=white>GPS</font>===<br />
*[[GTA02 GPS]]<br />
<br />
*[[FreeRunner GPS antenna repair SOP]]<br />
<br />
*[[GPS Problems]]<br />
===<font color=white>Networking</font>===<br />
*[[GTA02 WLAN AUTO]]<br />
<br />
*[[GTA02 WLAN]]<br />
<br />
</div><br />
|valign="top" style="background:#333333;border-left:5px solid white;border-right:5px solid white;border-bottom:0px solid white; border:1px solid #cccccc; " |<br />
<div align=left><br />
===<font color=white>Getting Started</font>===<br />
*[[Getting Started with your Neo FreeRunner|Getting Started]]<br />
<br />
*[[Flashing the Neo FreeRunner]]<br />
<br />
*[[Qtopia on FreeRunner]]<br />
<br />
*[[Neo FreeRunner (GTA02) FAQ]]<br />
</div><br />
|}</div>Thewtexhttp://openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-08-02T22:54:23Z<p>Thewtex: /* Welcome to the community */</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc; width:75% " | <br />
<p align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.</p><br />
<br />
<p align="left"><br />
Some Frequently Asked Questions for new owners are featured in the [[Getting Started FAQ]].<br />
</p><br />
<br />
! style="background:#fcfcfc; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
<br />
<br />
== Package Contents ==<br />
<br />
[[Image:GTA02ALL.png|left|400px|thumb|Inside the package]]<br />
<br /><br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable (A -> Mini-B 5-pole)<br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB & SD adapter<br />
<br />
<div style="clear: both">&nbsp;</div><br />
<br />
== Setting up the hardware, getting to know the Neo FreeRunner physically ==<br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|Open the case like this.|center]]</td><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu14.jpg|250px|thumb|Opening !|center]]</td><br />
</tr><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here.|center]]</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|Finally, put in the battery.|center]]</td><br />
</tr></table><br />
</div><br />
<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that on the inside of metal part of the holder there are little holding tabs for the card. Slide the card in these holders (on the metal part) before closing the card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches of the holder are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
[[Image:FR_SIM_SD_open.jpg|457px|thumb|SIM and SD holders open, with cards in place|center]]<br />
<br />
[[http://video.google.de/videoplay?docid=-8343770443102960945 A short video]] is also available. It was shot using the previous version of the Neo, but the installation procedures remains the same.<br />
<br />
===Charging the Neo FreeRunner===<br />
<br />
When using the Neo FreeRunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger (at 1000mA) or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging an empty battery at 100mA takes 12~15 hours, at 500mA takes 2,5~3,5 hours, and at 1000mA takes 1.5~2.5 hours. (90%~100%) [to be confirmed]<br />
<br />
Make sure that the battery never discharges completely. This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work. Should the battery become completely discharged, your options are:<br />
- Use external stand-alone charger (compatible with the Nokia BL-5C battery)<br />
- Boot the FreeRunner with an alternative battery, or with a spare GTA01 or GTA02 battery, plug USB power, then switch to the empty battery.<br />
- Boot the FreeRunner with a 4.5VDC external power source (steady hand and great care involved), plug USB power, then insert the empty battery.<br />
<br />
===Buttons and connectors===<br />
<br />
<table width="80%" style="clear: both; border-collapse: collapse" valign="top"><br />
<tr><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu9.jpg|370px|thumb|Power Button, USB and external GPS Antenna (left to right)|center]]</td><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack (left to right)|center]]</td><br />
</tr><br />
<tr><br />
<td></td><br />
<td>'''Power'''<br />
Tapping the power button exits the current application.<br />
<br />
Holding the power button brings up a menu allowing you to:<br />
* Power on and off the GPS, wifi, GSM, and bluetooth antennae<br />
* Change power management mode to:<br />
** Dim first then lock<br />
** Dim only, don't lock<br />
** Disabled<br />
* Lock the screen<br />
* Shutdown the device.</td><br />
<td></td><br />
<td>'''Aux'''<br />
Tapping the Aux button hides or shows the currently running application.<br />
<br />
Holding the Aux button brings up a menu allowing you to:<br />
<br />
* Hide and show the title bar (Fullscreen toggle)<br />
* Alternate wide or tall display modes (Swap Orientation)<br />
* Save the content of the screen as an image file (Screenshot)<br />
</td><br />
</tr><br />
</table><br />
<br />
Booting time is 2 about minutes overall, so patience is in order. The longest step comes after the Linux boot messages in very small fonts have scrolled by, at the graphical "openmoko" sunrise page.<br />
<br />
The phone jack is a 2.5mm connector with four contacts: stereo + MIC. It is compatible with the headsets used by Motorola smartphones (A780,A1200, ...) and the V-360.<br />
<br />
To plug regular (i.e. without microphone) headphones commonly used to listen to music, a compatible 2.5mm 4 rings jack to 3.5mm stereo jack adapter is needed. It has been reported that Nokia's 2.5mm -> 3.5mm adapters do not work, but that a 3.5mm Stereo Audio Adapter for Motorola MPx200/E398 works well. You will also want to switch from speaker output to headset, by restoring the appropriate alsa.state-file (usually the mediaplayer should do this for you) or via alsamixer (see below), to enable stereo output in there.<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
== Navigating menus and applications ==<br />
<br />
''Note:'' this section describes the interface used by the "2007.2" image, which is the current default image for Openmoko.<br />
<br />
====Today Page====<br />
<br />
[[Image:Todaypage_reduced_true.png|200px|right]] Openmoko starts by displaying the "Today" page, which is your home page. Icons in the top row indicate the status of the phone. The bottom row consists of three tabs. The tab with a home on the left lead to the "Today" page you're viewing now. The central tab lead to the "Launch Task" page, which is the main menu used to start applications. The tab with gears on the right lead to the "Running Tasks" page, which is used to deal with currently open windows and applications.<br />
<br />
<br clear=all /><br />
<br />
[[Image:Todaypage_reduced_false.png|right|200px|]] The "Today" page is empty, as shown above, when you first start Openmoko. We explain below how to turn on the "full view", displayed to the right. In the full view, a second row of icons give quick links to commonly-used applications such as the dialer, the adressbook, mailbox and calendar. The main body of the screen displays a clock and other useful information.<br />
<br />
See [[Today/2007.2]] for more information about the Today page and customization. <br />
<br />
<br clear=all /><br />
<br />
====Launch Task Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:LaunchTasks.png|right|200px]] This page displays a menu of available applications. You may choose a category of applications to display to simplify the screen, or choose to display them all.<br />
<br />
Current categories are [[PIM Suite]], [[Applications]], [[Games]], [[Utilities]], and All.<br />
<br />
<br clear=all /><br />
<br />
====Running Tasks Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:RunningTasks.png|right|200px]] This page displays currently-running tasks. Any individual task may be terminated by selecting it and then clicking on the garbage-can icon to close it. All tasks may be terminated by clicking on any one of them and then clicking on the "folder" icon in the upper right (expect this to change in future releases). Any task may be rejoined by selecting it and then selecting the "return" icon at the middle top.<br />
<br />
<br clear=all /><br />
<br />
====Exiting from and switching to an Application====<br />
<br />
Any time an application is running, you can simply click the device's power button and the application will exit, returning you to the Today page.<br />
<br />
Alternatively, you can cycle through active applications using the AUX button<br />
<br />
Clicking the top-left of the screen displays the drop down ''task menu''. This menu lists all active applications and allows to switch directly to any one. ''Note:'' If the task menu is not shown, click and hold the [[#Aux|Aux]] button to bring up the Aux menu, and select "Toggle Fullscreen".<br />
<br />
== Using the terminal ==<br />
<br />
To start a console from "Today" page, click the middle tab at the bottom of the screen to display the "Launch applications" page, then select Terminal in the "Applications" submenu. The multitaps keyboard slides up (and down) from the bottom of the screen automatically when you touch the screen.<br />
<br />
===Setting date and time===<br />
<br />
From the terminal, type the following, but replace ''MM'' with the month (01-12); ''DD'' with the day (01-31); ''hhmm'' with the time (0000-2359); ''YYYY'' with the year (optional); and ''.ss'' with the seconds (optional).<br />
<br />
date -s ''MMDDhhmmYYYY.ss''<br />
<br />
To make the change persist between reboots, sync the hardware clock with the updated system time.<br />
<br />
hwclock --systohc<br />
<br />
See [[Setting Date and Time]] for more discussion, including synchronizing with an NTP server.<br />
<br />
===Adjusting the Volume===<br />
<br />
As of this writing, there is no way to adjust the volume from the screen.<br />
<br />
For now, run the terminal application or [[USB_Networking|log in via usb]], and run the [[Neo alsamixer]] application (to see all the options, including Mic2, you will need to run ''alsamixer -V all''). The mixer is simpler than it looks. Just use the left and right arrow keys to select "headphone" or "PCM" and use the up and down arrow keys to adjust the volume. You can also adjust your microphone volume with the "mic2" adjustment. Press ESC when finished. Then exit the terminal application or log out of the USB login.<br />
<br />
You may need to update configuration files in /usr/share/openmoko/scenarios/ to make the microphone setting permanent. Use<br />
alsactl -f ''path-to-statefile'' store<br />
to do this.<br />
<br />
The default files are as follows (in /usr/share/openmoko/scenarios/): <br />
:gsmhandset.state<br />
:gsmheadset.state<br />
:gsmspeakerout.state<br />
:headset.state<br />
:stereoout.state<br />
<br />
These correspond to the various Sound Profiles accessible in the Debug Tool under Applications.<br />
<br />
To manually restore one of the state files,<br />
alsactl -f ''path-to-statefile'' restore<br />
<br />
One way to increase the volume of the microphone is to do the following:<br />
# ssh into your Freerunner<br />
# vi /usr/share/openmoko/scenarios/gsmhandset.state<br />
# search for "Mic2"<br />
# change to "value 3"<br />
If people report not being able to hear you when you call, then setting the Mic2 value to 2 or 3 should fix that.<br />
<br />
'''Question: I am using headphones but only the right speaker work the left don't work how can I fix this ?'''<br />
<br />
R: This should be set correctly by restoring gsmheadset.state.<br />
Pull and replug the headset jack to make sure the correct state-file is restored.<br />
To manually control the switch between Speaker and headset:<br />
Start alsamixer, scroll along to the right until you find "Amp Spk" and mute it (m), the sound will then come out from both channels of the <br />
headphones and not out of the speaker.<br />
<br />
[[Freerunner_Hardware_Issues]]<br />
<br />
=== Accessing the microSD card ===<br />
<br />
Mounted at /media/card by default.<br />
<br />
If you have multiple partitions on the card, the first (/dev/mmcblk0p1) will be mounted at /media/card, the second at /media/mmcblk0p2, the third at /media/mmcblk0p3 etc.<br />
<br />
== Set up USB-based networking and update ==<br />
<br />
===Connect with the Neo FreeRunner===<br />
<br />
This is discussed in the [[USB_Networking|USB Networking]] section.<br />
<br />
===Use the package manager===<br />
<br />
There are three layers to the software on the FreeRunner:<br />
<br />
* uBoot: Think of u-boot as a combination of the BIOS and Grub on a PC.<br />
* Kernel: The Linux kernel<br />
* Root Filesystem: The rest of the system<br />
<br />
In order to keep the FreeRunner up-to-date with the latest features and bug-fixes, it is advisable update the software at regular intervals. There are two main methods of doing this: upgrading with the package manager opkg or manually flashing the device. You can also learn about [[Booting the Neo FreeRunner]] and [[Flashing the Neo FreeRunner]].<br />
<br />
[[uboot]], the kernel and the root filesystem can all be flashed to update them. For uboot, this is the only possibility. The advantage of flashing the kernel manually rather than using opkg seems to be speed. The disadvantage of flashing the root file system is that it wipes out all local modifications, including /home. If /home is moved to the SD disk, this is no longer a problem.<br />
<br />
Warning: UPGRADING TO DAILY KERNELS FROM THE DEVELOPMENT BRANCH MAY BREAK THINGS. That said, assuming that your FreeRunner can access the internet (see above), the kernel and other packages can be updated with<br />
<br />
# opkg update<br />
# opkg -test upgrade<br />
# opkg upgrade<br />
<br />
The first updates the repository information, telling opkg what packages are available. The second allows you to see what the package manager wants to do. The third upgrades all packages for which a newer version is available. '''At the moment, some signature files are missing (404 errors), which opkg complains about, but this is cosmetic.''' The repositories will still update with the missing signature files.<br />
<br />
Note that running opkg upgrade on a factory-fresh phone will upgrade dropbear (the ssh software) and various xserver packages, and neither upgrades elegantly while in use. Xserver must be updated over ssh to complete succesfully. Dropbear can be updated over ssh with the proper command:<br />
# nohup opkg upgrade dropbear & <br />
Or upgrade it directly in the FreeRunner terminal.<br />
# opkg upgrade dropbear<br />
<br />
When updating over ssh, the session will be interrupted, but the command should complete successfully(check nohup.out on your device to verify), and you should be able to reconnect within a few seconds.<br />
<br />
Then connect to the FreeRunner via ssh and type:<br />
# opkg upgrade<br />
<br />
Alternatively you can upgrade the xserver packages via ssh and then upgrade the rest from the FreeRunner's terminal. <br />
<br />
If you do your first upgrade in two installments like this, it will go more smoothly.<br />
<br />
It will be possible in the future to update uboot with opkg, but this has not yet been implemented.<br />
<br />
=== Installing multimedia, web browsing and other applications ===<br />
<br />
There are many applications you can install - check out the [[Repositories]] for a list of packages, an example of how to add a repository using scaredy cat as an example can also be found here. A list of pre-installed and available packages with descriptions can be found here - [[Available Packages]].<br />
<br />
The calendar can be installed with<br />
<br />
opkg install openmoko-dates2<br />
<br />
For a Media Player:<br />
<br />
opkg install openmoko-mediaplayer2<br />
wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
rm openmoko-mediaplayer-theme.tar.bz2<br />
<br />
If you want a basic image viewer, have a look at the one from the gpe suite:<br />
<br />
opkg install gpe-icons <br />
opkg install gpe-gallery<br />
<br />
To obtain the standard web browser, use:<br />
<br />
opkg install openmoko-browser2<br />
<br />
An alternative browser, minimo, offers many more features. <br />
First download and unpack it on your GNU/Linux host:<br />
<br />
wget http://www.ginguppin.de/files/minimo.tar.bz2<br />
tar jvxf minimo.tar.bz2<br />
<br />
Copy it over to the FreeRunner:<br />
scp minimo_* root@192.168.0.202:/tmp<br />
<br />
Then on the FreeRunner:<br />
opkg install /tmp/minimo_0.02\+cvs20070626-r0_armv4t.ipk<br />
<br />
You'll probably also want to [[Switching Keyboards|change the keyboard]] including the [[Switching Keyboards#How_to_add_a_keyboard_toggle_button|keyboard toggle applet]]<br />
<br />
=== Importing contacts ===<br />
<br />
If you can export your contacts to VCard format, either multiple files or single file containing all of them, you may use the script on [[Import Vcf Contacts]] page to bring them to Neo.<br />
<br />
==The next steps==<br />
<br />
Congratulations for setting up your Neo FreeRunner. There are many more ressources to help free your phone: <br />
<br />
===Customize the interface===<br />
home screen clock, keyboard<br />
<br />
The stock [[Openmoko2007.2]] image flashed onto the Neo FreeRunner is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
REMOVE CLICK SOUND VIA /etc/pulse/session<br />
<br />
More information about today screen customization at [[Today/2007.2]].<br />
<br />
Also, if you prefer having a full keyboard, using matchbox's qwerty keybord, see [[Switching_Keyboards#Matchbox_keyboard|these instructions]]. Then you may also see [http://lists.openmoko.org/pipermail/community/2008-July/021296.html these], which describe a way to add an applet allowing the showing/hiding of that keyboard.<br />
<br />
===Use the GPS===<br />
<br />
Simple guide to get going with '''GPS''':<br />
<br />
# opkg install gpsd<br />
# echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd<br />
<br />
and restart gpsd, the gps daemon, with<br />
<br />
# /etc/init.d/gpsd restart<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
For a nice map, try tangoGPS:<br />
<br />
# opkg install http://www.tangogps.org/downloads/tangogps_0.9.2-r1_armv4t.ipk<br />
<br />
There were critical [[GPS Problems]] earlier that are largely fixed in newest kernels, see the instructions above to install the updates. More information is on the [[GPS]] page.<br />
<br />
===Play with WLAN, GPRS and Bluetooth===<br />
<br />
There are plenty of development opportunities to integrate these functions in the OpenMoko software.<br />
<br />
'''WLAN''': See [[Wireless Networking]]<br />
<br />
'''GPRS''': See [[Manually using GPRS]]<br />
<br />
'''Bluetooth''': See [[Manually using Bluetooth]]<br />
<br />
=== Welcome to the community ===<br />
<br />
The release of the Freerunner in the summer 2008 has led the community into a new period of rapid growth. The resources available are summarized on the [[Openmoko:Community_Portal]]. These are always exciting and interesting times to live in when the balance between Chaos and Order tilts towards change.<br />
<br />
As an entry point, the [[http://lists.openmoko.org/pipermail/community/ openmoko community mailing list]] is perhaps the most active. As of July 2008, its volume amounts to dozens of messages per day. Openmoko people are there too. You may ask for help on the [[https://lists.openmoko.org/mailman/listinfo/support support mailing list]].<br />
<br />
Or if you use IRC, there is always a good group in the channel #openmoko on FreeNode.<br />
<br />
The links on the top-right of this page lead to the sister sites in the Openmoko community:<br />
* Home and Wiki lead to the same Main Page on the wiki. It needs cleaning, we know...<br />
* Doc leads to the bug ''Trac''king system.<br />
* Planet goes to the collection of Openmoko-relatd blogs.<br />
* Projects is the GForge, free hosting for application developers.<br />
* Lists is the listing of all the public mailing lists on lists.openmoko.org.<br />
<br />
== Annotated references ==<br />
<br />
* The [http://quickstart.openmoko.org/ Quickstart guide]. Largely used as a basis for this page.<br />
* [[Neo FreeRunner]]. The top-level view of the specifications.<br />
* [[Neo FreeRunner GTA02 Hardware]]. The detailed specifications.<br />
* [[GTA02 Openness]]. Ultimate chip-level specifications, data sheets and hardware documentation.<br />
* [[Distributions]]. Strengths and weaknesses of the various distributions available for the Neo.<br />
* [[Getting Started FAQ]]. Answers.<br />
* [[GTA02_FAQ]]. More answers<br />
<br />
To search this wiki with Google, use the following search term:<br />
<br />
<search term> site:http://wiki.openmoko.org/wiki/<br />
<br />
<br />
[[Category:GTA02 Hardware]]<br />
[[Category:Guides]]</div>Thewtexhttp://openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-08-02T22:53:53Z<p>Thewtex: /* Welcome in the community */</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc; width:75% " | <br />
<p align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.</p><br />
<br />
<p align="left"><br />
Some Frequently Asked Questions for new owners are featured in the [[Getting Started FAQ]].<br />
</p><br />
<br />
! style="background:#fcfcfc; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
<br />
<br />
== Package Contents ==<br />
<br />
[[Image:GTA02ALL.png|left|400px|thumb|Inside the package]]<br />
<br /><br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable (A -> Mini-B 5-pole)<br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB & SD adapter<br />
<br />
<div style="clear: both">&nbsp;</div><br />
<br />
== Setting up the hardware, getting to know the Neo FreeRunner physically ==<br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|Open the case like this.|center]]</td><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu14.jpg|250px|thumb|Opening !|center]]</td><br />
</tr><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here.|center]]</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|Finally, put in the battery.|center]]</td><br />
</tr></table><br />
</div><br />
<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that on the inside of metal part of the holder there are little holding tabs for the card. Slide the card in these holders (on the metal part) before closing the card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches of the holder are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
[[Image:FR_SIM_SD_open.jpg|457px|thumb|SIM and SD holders open, with cards in place|center]]<br />
<br />
[[http://video.google.de/videoplay?docid=-8343770443102960945 A short video]] is also available. It was shot using the previous version of the Neo, but the installation procedures remains the same.<br />
<br />
===Charging the Neo FreeRunner===<br />
<br />
When using the Neo FreeRunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger (at 1000mA) or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging an empty battery at 100mA takes 12~15 hours, at 500mA takes 2,5~3,5 hours, and at 1000mA takes 1.5~2.5 hours. (90%~100%) [to be confirmed]<br />
<br />
Make sure that the battery never discharges completely. This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work. Should the battery become completely discharged, your options are:<br />
- Use external stand-alone charger (compatible with the Nokia BL-5C battery)<br />
- Boot the FreeRunner with an alternative battery, or with a spare GTA01 or GTA02 battery, plug USB power, then switch to the empty battery.<br />
- Boot the FreeRunner with a 4.5VDC external power source (steady hand and great care involved), plug USB power, then insert the empty battery.<br />
<br />
===Buttons and connectors===<br />
<br />
<table width="80%" style="clear: both; border-collapse: collapse" valign="top"><br />
<tr><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu9.jpg|370px|thumb|Power Button, USB and external GPS Antenna (left to right)|center]]</td><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack (left to right)|center]]</td><br />
</tr><br />
<tr><br />
<td></td><br />
<td>'''Power'''<br />
Tapping the power button exits the current application.<br />
<br />
Holding the power button brings up a menu allowing you to:<br />
* Power on and off the GPS, wifi, GSM, and bluetooth antennae<br />
* Change power management mode to:<br />
** Dim first then lock<br />
** Dim only, don't lock<br />
** Disabled<br />
* Lock the screen<br />
* Shutdown the device.</td><br />
<td></td><br />
<td>'''Aux'''<br />
Tapping the Aux button hides or shows the currently running application.<br />
<br />
Holding the Aux button brings up a menu allowing you to:<br />
<br />
* Hide and show the title bar (Fullscreen toggle)<br />
* Alternate wide or tall display modes (Swap Orientation)<br />
* Save the content of the screen as an image file (Screenshot)<br />
</td><br />
</tr><br />
</table><br />
<br />
Booting time is 2 about minutes overall, so patience is in order. The longest step comes after the Linux boot messages in very small fonts have scrolled by, at the graphical "openmoko" sunrise page.<br />
<br />
The phone jack is a 2.5mm connector with four contacts: stereo + MIC. It is compatible with the headsets used by Motorola smartphones (A780,A1200, ...) and the V-360.<br />
<br />
To plug regular (i.e. without microphone) headphones commonly used to listen to music, a compatible 2.5mm 4 rings jack to 3.5mm stereo jack adapter is needed. It has been reported that Nokia's 2.5mm -> 3.5mm adapters do not work, but that a 3.5mm Stereo Audio Adapter for Motorola MPx200/E398 works well. You will also want to switch from speaker output to headset, by restoring the appropriate alsa.state-file (usually the mediaplayer should do this for you) or via alsamixer (see below), to enable stereo output in there.<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
== Navigating menus and applications ==<br />
<br />
''Note:'' this section describes the interface used by the "2007.2" image, which is the current default image for Openmoko.<br />
<br />
====Today Page====<br />
<br />
[[Image:Todaypage_reduced_true.png|200px|right]] Openmoko starts by displaying the "Today" page, which is your home page. Icons in the top row indicate the status of the phone. The bottom row consists of three tabs. The tab with a home on the left lead to the "Today" page you're viewing now. The central tab lead to the "Launch Task" page, which is the main menu used to start applications. The tab with gears on the right lead to the "Running Tasks" page, which is used to deal with currently open windows and applications.<br />
<br />
<br clear=all /><br />
<br />
[[Image:Todaypage_reduced_false.png|right|200px|]] The "Today" page is empty, as shown above, when you first start Openmoko. We explain below how to turn on the "full view", displayed to the right. In the full view, a second row of icons give quick links to commonly-used applications such as the dialer, the adressbook, mailbox and calendar. The main body of the screen displays a clock and other useful information.<br />
<br />
See [[Today/2007.2]] for more information about the Today page and customization. <br />
<br />
<br clear=all /><br />
<br />
====Launch Task Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:LaunchTasks.png|right|200px]] This page displays a menu of available applications. You may choose a category of applications to display to simplify the screen, or choose to display them all.<br />
<br />
Current categories are [[PIM Suite]], [[Applications]], [[Games]], [[Utilities]], and All.<br />
<br />
<br clear=all /><br />
<br />
====Running Tasks Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:RunningTasks.png|right|200px]] This page displays currently-running tasks. Any individual task may be terminated by selecting it and then clicking on the garbage-can icon to close it. All tasks may be terminated by clicking on any one of them and then clicking on the "folder" icon in the upper right (expect this to change in future releases). Any task may be rejoined by selecting it and then selecting the "return" icon at the middle top.<br />
<br />
<br clear=all /><br />
<br />
====Exiting from and switching to an Application====<br />
<br />
Any time an application is running, you can simply click the device's power button and the application will exit, returning you to the Today page.<br />
<br />
Alternatively, you can cycle through active applications using the AUX button<br />
<br />
Clicking the top-left of the screen displays the drop down ''task menu''. This menu lists all active applications and allows to switch directly to any one. ''Note:'' If the task menu is not shown, click and hold the [[#Aux|Aux]] button to bring up the Aux menu, and select "Toggle Fullscreen".<br />
<br />
== Using the terminal ==<br />
<br />
To start a console from "Today" page, click the middle tab at the bottom of the screen to display the "Launch applications" page, then select Terminal in the "Applications" submenu. The multitaps keyboard slides up (and down) from the bottom of the screen automatically when you touch the screen.<br />
<br />
===Setting date and time===<br />
<br />
From the terminal, type the following, but replace ''MM'' with the month (01-12); ''DD'' with the day (01-31); ''hhmm'' with the time (0000-2359); ''YYYY'' with the year (optional); and ''.ss'' with the seconds (optional).<br />
<br />
date -s ''MMDDhhmmYYYY.ss''<br />
<br />
To make the change persist between reboots, sync the hardware clock with the updated system time.<br />
<br />
hwclock --systohc<br />
<br />
See [[Setting Date and Time]] for more discussion, including synchronizing with an NTP server.<br />
<br />
===Adjusting the Volume===<br />
<br />
As of this writing, there is no way to adjust the volume from the screen.<br />
<br />
For now, run the terminal application or [[USB_Networking|log in via usb]], and run the [[Neo alsamixer]] application (to see all the options, including Mic2, you will need to run ''alsamixer -V all''). The mixer is simpler than it looks. Just use the left and right arrow keys to select "headphone" or "PCM" and use the up and down arrow keys to adjust the volume. You can also adjust your microphone volume with the "mic2" adjustment. Press ESC when finished. Then exit the terminal application or log out of the USB login.<br />
<br />
You may need to update configuration files in /usr/share/openmoko/scenarios/ to make the microphone setting permanent. Use<br />
alsactl -f ''path-to-statefile'' store<br />
to do this.<br />
<br />
The default files are as follows (in /usr/share/openmoko/scenarios/): <br />
:gsmhandset.state<br />
:gsmheadset.state<br />
:gsmspeakerout.state<br />
:headset.state<br />
:stereoout.state<br />
<br />
These correspond to the various Sound Profiles accessible in the Debug Tool under Applications.<br />
<br />
To manually restore one of the state files,<br />
alsactl -f ''path-to-statefile'' restore<br />
<br />
One way to increase the volume of the microphone is to do the following:<br />
# ssh into your Freerunner<br />
# vi /usr/share/openmoko/scenarios/gsmhandset.state<br />
# search for "Mic2"<br />
# change to "value 3"<br />
If people report not being able to hear you when you call, then setting the Mic2 value to 2 or 3 should fix that.<br />
<br />
'''Question: I am using headphones but only the right speaker work the left don't work how can I fix this ?'''<br />
<br />
R: This should be set correctly by restoring gsmheadset.state.<br />
Pull and replug the headset jack to make sure the correct state-file is restored.<br />
To manually control the switch between Speaker and headset:<br />
Start alsamixer, scroll along to the right until you find "Amp Spk" and mute it (m), the sound will then come out from both channels of the <br />
headphones and not out of the speaker.<br />
<br />
[[Freerunner_Hardware_Issues]]<br />
<br />
=== Accessing the microSD card ===<br />
<br />
Mounted at /media/card by default.<br />
<br />
If you have multiple partitions on the card, the first (/dev/mmcblk0p1) will be mounted at /media/card, the second at /media/mmcblk0p2, the third at /media/mmcblk0p3 etc.<br />
<br />
== Set up USB-based networking and update ==<br />
<br />
===Connect with the Neo FreeRunner===<br />
<br />
This is discussed in the [[USB_Networking|USB Networking]] section.<br />
<br />
===Use the package manager===<br />
<br />
There are three layers to the software on the FreeRunner:<br />
<br />
* uBoot: Think of u-boot as a combination of the BIOS and Grub on a PC.<br />
* Kernel: The Linux kernel<br />
* Root Filesystem: The rest of the system<br />
<br />
In order to keep the FreeRunner up-to-date with the latest features and bug-fixes, it is advisable update the software at regular intervals. There are two main methods of doing this: upgrading with the package manager opkg or manually flashing the device. You can also learn about [[Booting the Neo FreeRunner]] and [[Flashing the Neo FreeRunner]].<br />
<br />
[[uboot]], the kernel and the root filesystem can all be flashed to update them. For uboot, this is the only possibility. The advantage of flashing the kernel manually rather than using opkg seems to be speed. The disadvantage of flashing the root file system is that it wipes out all local modifications, including /home. If /home is moved to the SD disk, this is no longer a problem.<br />
<br />
Warning: UPGRADING TO DAILY KERNELS FROM THE DEVELOPMENT BRANCH MAY BREAK THINGS. That said, assuming that your FreeRunner can access the internet (see above), the kernel and other packages can be updated with<br />
<br />
# opkg update<br />
# opkg -test upgrade<br />
# opkg upgrade<br />
<br />
The first updates the repository information, telling opkg what packages are available. The second allows you to see what the package manager wants to do. The third upgrades all packages for which a newer version is available. '''At the moment, some signature files are missing (404 errors), which opkg complains about, but this is cosmetic.''' The repositories will still update with the missing signature files.<br />
<br />
Note that running opkg upgrade on a factory-fresh phone will upgrade dropbear (the ssh software) and various xserver packages, and neither upgrades elegantly while in use. Xserver must be updated over ssh to complete succesfully. Dropbear can be updated over ssh with the proper command:<br />
# nohup opkg upgrade dropbear & <br />
Or upgrade it directly in the FreeRunner terminal.<br />
# opkg upgrade dropbear<br />
<br />
When updating over ssh, the session will be interrupted, but the command should complete successfully(check nohup.out on your device to verify), and you should be able to reconnect within a few seconds.<br />
<br />
Then connect to the FreeRunner via ssh and type:<br />
# opkg upgrade<br />
<br />
Alternatively you can upgrade the xserver packages via ssh and then upgrade the rest from the FreeRunner's terminal. <br />
<br />
If you do your first upgrade in two installments like this, it will go more smoothly.<br />
<br />
It will be possible in the future to update uboot with opkg, but this has not yet been implemented.<br />
<br />
=== Installing multimedia, web browsing and other applications ===<br />
<br />
There are many applications you can install - check out the [[Repositories]] for a list of packages, an example of how to add a repository using scaredy cat as an example can also be found here. A list of pre-installed and available packages with descriptions can be found here - [[Available Packages]].<br />
<br />
The calendar can be installed with<br />
<br />
opkg install openmoko-dates2<br />
<br />
For a Media Player:<br />
<br />
opkg install openmoko-mediaplayer2<br />
wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
rm openmoko-mediaplayer-theme.tar.bz2<br />
<br />
If you want a basic image viewer, have a look at the one from the gpe suite:<br />
<br />
opkg install gpe-icons <br />
opkg install gpe-gallery<br />
<br />
To obtain the standard web browser, use:<br />
<br />
opkg install openmoko-browser2<br />
<br />
An alternative browser, minimo, offers many more features. <br />
First download and unpack it on your GNU/Linux host:<br />
<br />
wget http://www.ginguppin.de/files/minimo.tar.bz2<br />
tar jvxf minimo.tar.bz2<br />
<br />
Copy it over to the FreeRunner:<br />
scp minimo_* root@192.168.0.202:/tmp<br />
<br />
Then on the FreeRunner:<br />
opkg install /tmp/minimo_0.02\+cvs20070626-r0_armv4t.ipk<br />
<br />
You'll probably also want to [[Switching Keyboards|change the keyboard]] including the [[Switching Keyboards#How_to_add_a_keyboard_toggle_button|keyboard toggle applet]]<br />
<br />
=== Importing contacts ===<br />
<br />
If you can export your contacts to VCard format, either multiple files or single file containing all of them, you may use the script on [[Import Vcf Contacts]] page to bring them to Neo.<br />
<br />
==The next steps==<br />
<br />
Congratulations for setting up your Neo FreeRunner. There are many more ressources to help free your phone: <br />
<br />
===Customize the interface===<br />
home screen clock, keyboard<br />
<br />
The stock [[Openmoko2007.2]] image flashed onto the Neo FreeRunner is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
REMOVE CLICK SOUND VIA /etc/pulse/session<br />
<br />
More information about today screen customization at [[Today/2007.2]].<br />
<br />
Also, if you prefer having a full keyboard, using matchbox's qwerty keybord, see [[Switching_Keyboards#Matchbox_keyboard|these instructions]]. Then you may also see [http://lists.openmoko.org/pipermail/community/2008-July/021296.html these], which describe a way to add an applet allowing the showing/hiding of that keyboard.<br />
<br />
===Use the GPS===<br />
<br />
Simple guide to get going with '''GPS''':<br />
<br />
# opkg install gpsd<br />
# echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd<br />
<br />
and restart gpsd, the gps daemon, with<br />
<br />
# /etc/init.d/gpsd restart<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
For a nice map, try tangoGPS:<br />
<br />
# opkg install http://www.tangogps.org/downloads/tangogps_0.9.2-r1_armv4t.ipk<br />
<br />
There were critical [[GPS Problems]] earlier that are largely fixed in newest kernels, see the instructions above to install the updates. More information is on the [[GPS]] page.<br />
<br />
===Play with WLAN, GPRS and Bluetooth===<br />
<br />
There are plenty of development opportunities to integrate these functions in the OpenMoko software.<br />
<br />
'''WLAN''': See [[Wireless Networking]]<br />
<br />
'''GPRS''': See [[Manually using GPRS]]<br />
<br />
'''Bluetooth''': See [[Manually using Bluetooth]]<br />
<br />
=== Welcome to the community ===<br />
<br />
The release of the Freerunner in the summer 2008 has led the community into a new period of rapid growth. The ressources available are summarized on the [[Openmoko:Community_Portal]]. These are always exciting and interesting times to live in when the balance between Chaos and Order tilts towards change.<br />
<br />
As an entry point, the [[http://lists.openmoko.org/pipermail/community/ openmoko community mailing list]] is perhaps the most active. As of July 2008, its volume amounts to dozens of messages per day. Openmoko people are there too. You may ask for help on the [[https://lists.openmoko.org/mailman/listinfo/support support mailing list]].<br />
<br />
Or if you use IRC, there is always a good group in the channel #openmoko on FreeNode.<br />
<br />
The links on the top-right of this page lead to the sister sites in the Openmoko community:<br />
* Home and Wiki lead to the same Main Page on the wiki. It needs cleaning, we know...<br />
* Doc leads to the bug ''Trac''king system.<br />
* Planet goes to the collection of Openmoko-relatd blogs.<br />
* Projects is the GForge, free hosting for application developers.<br />
* Lists is the listing of all the public mailing lists on lists.openmoko.org.<br />
<br />
== Annotated references ==<br />
<br />
* The [http://quickstart.openmoko.org/ Quickstart guide]. Largely used as a basis for this page.<br />
* [[Neo FreeRunner]]. The top-level view of the specifications.<br />
* [[Neo FreeRunner GTA02 Hardware]]. The detailed specifications.<br />
* [[GTA02 Openness]]. Ultimate chip-level specifications, data sheets and hardware documentation.<br />
* [[Distributions]]. Strengths and weaknesses of the various distributions available for the Neo.<br />
* [[Getting Started FAQ]]. Answers.<br />
* [[GTA02_FAQ]]. More answers<br />
<br />
To search this wiki with Google, use the following search term:<br />
<br />
<search term> site:http://wiki.openmoko.org/wiki/<br />
<br />
<br />
[[Category:GTA02 Hardware]]<br />
[[Category:Guides]]</div>Thewtexhttp://openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-08-02T22:53:12Z<p>Thewtex: /* Connect with and log in the Neo FreeRunner */</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc; width:75% " | <br />
<p align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.</p><br />
<br />
<p align="left"><br />
Some Frequently Asked Questions for new owners are featured in the [[Getting Started FAQ]].<br />
</p><br />
<br />
! style="background:#fcfcfc; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
<br />
<br />
== Package Contents ==<br />
<br />
[[Image:GTA02ALL.png|left|400px|thumb|Inside the package]]<br />
<br /><br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable (A -> Mini-B 5-pole)<br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB & SD adapter<br />
<br />
<div style="clear: both">&nbsp;</div><br />
<br />
== Setting up the hardware, getting to know the Neo FreeRunner physically ==<br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|Open the case like this.|center]]</td><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu14.jpg|250px|thumb|Opening !|center]]</td><br />
</tr><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here.|center]]</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|Finally, put in the battery.|center]]</td><br />
</tr></table><br />
</div><br />
<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that on the inside of metal part of the holder there are little holding tabs for the card. Slide the card in these holders (on the metal part) before closing the card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches of the holder are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
[[Image:FR_SIM_SD_open.jpg|457px|thumb|SIM and SD holders open, with cards in place|center]]<br />
<br />
[[http://video.google.de/videoplay?docid=-8343770443102960945 A short video]] is also available. It was shot using the previous version of the Neo, but the installation procedures remains the same.<br />
<br />
===Charging the Neo FreeRunner===<br />
<br />
When using the Neo FreeRunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger (at 1000mA) or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging an empty battery at 100mA takes 12~15 hours, at 500mA takes 2,5~3,5 hours, and at 1000mA takes 1.5~2.5 hours. (90%~100%) [to be confirmed]<br />
<br />
Make sure that the battery never discharges completely. This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work. Should the battery become completely discharged, your options are:<br />
- Use external stand-alone charger (compatible with the Nokia BL-5C battery)<br />
- Boot the FreeRunner with an alternative battery, or with a spare GTA01 or GTA02 battery, plug USB power, then switch to the empty battery.<br />
- Boot the FreeRunner with a 4.5VDC external power source (steady hand and great care involved), plug USB power, then insert the empty battery.<br />
<br />
===Buttons and connectors===<br />
<br />
<table width="80%" style="clear: both; border-collapse: collapse" valign="top"><br />
<tr><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu9.jpg|370px|thumb|Power Button, USB and external GPS Antenna (left to right)|center]]</td><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack (left to right)|center]]</td><br />
</tr><br />
<tr><br />
<td></td><br />
<td>'''Power'''<br />
Tapping the power button exits the current application.<br />
<br />
Holding the power button brings up a menu allowing you to:<br />
* Power on and off the GPS, wifi, GSM, and bluetooth antennae<br />
* Change power management mode to:<br />
** Dim first then lock<br />
** Dim only, don't lock<br />
** Disabled<br />
* Lock the screen<br />
* Shutdown the device.</td><br />
<td></td><br />
<td>'''Aux'''<br />
Tapping the Aux button hides or shows the currently running application.<br />
<br />
Holding the Aux button brings up a menu allowing you to:<br />
<br />
* Hide and show the title bar (Fullscreen toggle)<br />
* Alternate wide or tall display modes (Swap Orientation)<br />
* Save the content of the screen as an image file (Screenshot)<br />
</td><br />
</tr><br />
</table><br />
<br />
Booting time is 2 about minutes overall, so patience is in order. The longest step comes after the Linux boot messages in very small fonts have scrolled by, at the graphical "openmoko" sunrise page.<br />
<br />
The phone jack is a 2.5mm connector with four contacts: stereo + MIC. It is compatible with the headsets used by Motorola smartphones (A780,A1200, ...) and the V-360.<br />
<br />
To plug regular (i.e. without microphone) headphones commonly used to listen to music, a compatible 2.5mm 4 rings jack to 3.5mm stereo jack adapter is needed. It has been reported that Nokia's 2.5mm -> 3.5mm adapters do not work, but that a 3.5mm Stereo Audio Adapter for Motorola MPx200/E398 works well. You will also want to switch from speaker output to headset, by restoring the appropriate alsa.state-file (usually the mediaplayer should do this for you) or via alsamixer (see below), to enable stereo output in there.<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
== Navigating menus and applications ==<br />
<br />
''Note:'' this section describes the interface used by the "2007.2" image, which is the current default image for Openmoko.<br />
<br />
====Today Page====<br />
<br />
[[Image:Todaypage_reduced_true.png|200px|right]] Openmoko starts by displaying the "Today" page, which is your home page. Icons in the top row indicate the status of the phone. The bottom row consists of three tabs. The tab with a home on the left lead to the "Today" page you're viewing now. The central tab lead to the "Launch Task" page, which is the main menu used to start applications. The tab with gears on the right lead to the "Running Tasks" page, which is used to deal with currently open windows and applications.<br />
<br />
<br clear=all /><br />
<br />
[[Image:Todaypage_reduced_false.png|right|200px|]] The "Today" page is empty, as shown above, when you first start Openmoko. We explain below how to turn on the "full view", displayed to the right. In the full view, a second row of icons give quick links to commonly-used applications such as the dialer, the adressbook, mailbox and calendar. The main body of the screen displays a clock and other useful information.<br />
<br />
See [[Today/2007.2]] for more information about the Today page and customization. <br />
<br />
<br clear=all /><br />
<br />
====Launch Task Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:LaunchTasks.png|right|200px]] This page displays a menu of available applications. You may choose a category of applications to display to simplify the screen, or choose to display them all.<br />
<br />
Current categories are [[PIM Suite]], [[Applications]], [[Games]], [[Utilities]], and All.<br />
<br />
<br clear=all /><br />
<br />
====Running Tasks Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:RunningTasks.png|right|200px]] This page displays currently-running tasks. Any individual task may be terminated by selecting it and then clicking on the garbage-can icon to close it. All tasks may be terminated by clicking on any one of them and then clicking on the "folder" icon in the upper right (expect this to change in future releases). Any task may be rejoined by selecting it and then selecting the "return" icon at the middle top.<br />
<br />
<br clear=all /><br />
<br />
====Exiting from and switching to an Application====<br />
<br />
Any time an application is running, you can simply click the device's power button and the application will exit, returning you to the Today page.<br />
<br />
Alternatively, you can cycle through active applications using the AUX button<br />
<br />
Clicking the top-left of the screen displays the drop down ''task menu''. This menu lists all active applications and allows to switch directly to any one. ''Note:'' If the task menu is not shown, click and hold the [[#Aux|Aux]] button to bring up the Aux menu, and select "Toggle Fullscreen".<br />
<br />
== Using the terminal ==<br />
<br />
To start a console from "Today" page, click the middle tab at the bottom of the screen to display the "Launch applications" page, then select Terminal in the "Applications" submenu. The multitaps keyboard slides up (and down) from the bottom of the screen automatically when you touch the screen.<br />
<br />
===Setting date and time===<br />
<br />
From the terminal, type the following, but replace ''MM'' with the month (01-12); ''DD'' with the day (01-31); ''hhmm'' with the time (0000-2359); ''YYYY'' with the year (optional); and ''.ss'' with the seconds (optional).<br />
<br />
date -s ''MMDDhhmmYYYY.ss''<br />
<br />
To make the change persist between reboots, sync the hardware clock with the updated system time.<br />
<br />
hwclock --systohc<br />
<br />
See [[Setting Date and Time]] for more discussion, including synchronizing with an NTP server.<br />
<br />
===Adjusting the Volume===<br />
<br />
As of this writing, there is no way to adjust the volume from the screen.<br />
<br />
For now, run the terminal application or [[USB_Networking|log in via usb]], and run the [[Neo alsamixer]] application (to see all the options, including Mic2, you will need to run ''alsamixer -V all''). The mixer is simpler than it looks. Just use the left and right arrow keys to select "headphone" or "PCM" and use the up and down arrow keys to adjust the volume. You can also adjust your microphone volume with the "mic2" adjustment. Press ESC when finished. Then exit the terminal application or log out of the USB login.<br />
<br />
You may need to update configuration files in /usr/share/openmoko/scenarios/ to make the microphone setting permanent. Use<br />
alsactl -f ''path-to-statefile'' store<br />
to do this.<br />
<br />
The default files are as follows (in /usr/share/openmoko/scenarios/): <br />
:gsmhandset.state<br />
:gsmheadset.state<br />
:gsmspeakerout.state<br />
:headset.state<br />
:stereoout.state<br />
<br />
These correspond to the various Sound Profiles accessible in the Debug Tool under Applications.<br />
<br />
To manually restore one of the state files,<br />
alsactl -f ''path-to-statefile'' restore<br />
<br />
One way to increase the volume of the microphone is to do the following:<br />
# ssh into your Freerunner<br />
# vi /usr/share/openmoko/scenarios/gsmhandset.state<br />
# search for "Mic2"<br />
# change to "value 3"<br />
If people report not being able to hear you when you call, then setting the Mic2 value to 2 or 3 should fix that.<br />
<br />
'''Question: I am using headphones but only the right speaker work the left don't work how can I fix this ?'''<br />
<br />
R: This should be set correctly by restoring gsmheadset.state.<br />
Pull and replug the headset jack to make sure the correct state-file is restored.<br />
To manually control the switch between Speaker and headset:<br />
Start alsamixer, scroll along to the right until you find "Amp Spk" and mute it (m), the sound will then come out from both channels of the <br />
headphones and not out of the speaker.<br />
<br />
[[Freerunner_Hardware_Issues]]<br />
<br />
=== Accessing the microSD card ===<br />
<br />
Mounted at /media/card by default.<br />
<br />
If you have multiple partitions on the card, the first (/dev/mmcblk0p1) will be mounted at /media/card, the second at /media/mmcblk0p2, the third at /media/mmcblk0p3 etc.<br />
<br />
== Set up USB-based networking and update ==<br />
<br />
===Connect with the Neo FreeRunner===<br />
<br />
This is discussed in the [[USB_Networking|USB Networking]] section.<br />
<br />
===Use the package manager===<br />
<br />
There are three layers to the software on the FreeRunner:<br />
<br />
* uBoot: Think of u-boot as a combination of the BIOS and Grub on a PC.<br />
* Kernel: The Linux kernel<br />
* Root Filesystem: The rest of the system<br />
<br />
In order to keep the FreeRunner up-to-date with the latest features and bug-fixes, it is advisable update the software at regular intervals. There are two main methods of doing this: upgrading with the package manager opkg or manually flashing the device. You can also learn about [[Booting the Neo FreeRunner]] and [[Flashing the Neo FreeRunner]].<br />
<br />
[[uboot]], the kernel and the root filesystem can all be flashed to update them. For uboot, this is the only possibility. The advantage of flashing the kernel manually rather than using opkg seems to be speed. The disadvantage of flashing the root file system is that it wipes out all local modifications, including /home. If /home is moved to the SD disk, this is no longer a problem.<br />
<br />
Warning: UPGRADING TO DAILY KERNELS FROM THE DEVELOPMENT BRANCH MAY BREAK THINGS. That said, assuming that your FreeRunner can access the internet (see above), the kernel and other packages can be updated with<br />
<br />
# opkg update<br />
# opkg -test upgrade<br />
# opkg upgrade<br />
<br />
The first updates the repository information, telling opkg what packages are available. The second allows you to see what the package manager wants to do. The third upgrades all packages for which a newer version is available. '''At the moment, some signature files are missing (404 errors), which opkg complains about, but this is cosmetic.''' The repositories will still update with the missing signature files.<br />
<br />
Note that running opkg upgrade on a factory-fresh phone will upgrade dropbear (the ssh software) and various xserver packages, and neither upgrades elegantly while in use. Xserver must be updated over ssh to complete succesfully. Dropbear can be updated over ssh with the proper command:<br />
# nohup opkg upgrade dropbear & <br />
Or upgrade it directly in the FreeRunner terminal.<br />
# opkg upgrade dropbear<br />
<br />
When updating over ssh, the session will be interrupted, but the command should complete successfully(check nohup.out on your device to verify), and you should be able to reconnect within a few seconds.<br />
<br />
Then connect to the FreeRunner via ssh and type:<br />
# opkg upgrade<br />
<br />
Alternatively you can upgrade the xserver packages via ssh and then upgrade the rest from the FreeRunner's terminal. <br />
<br />
If you do your first upgrade in two installments like this, it will go more smoothly.<br />
<br />
It will be possible in the future to update uboot with opkg, but this has not yet been implemented.<br />
<br />
=== Installing multimedia, web browsing and other applications ===<br />
<br />
There are many applications you can install - check out the [[Repositories]] for a list of packages, an example of how to add a repository using scaredy cat as an example can also be found here. A list of pre-installed and available packages with descriptions can be found here - [[Available Packages]].<br />
<br />
The calendar can be installed with<br />
<br />
opkg install openmoko-dates2<br />
<br />
For a Media Player:<br />
<br />
opkg install openmoko-mediaplayer2<br />
wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
rm openmoko-mediaplayer-theme.tar.bz2<br />
<br />
If you want a basic image viewer, have a look at the one from the gpe suite:<br />
<br />
opkg install gpe-icons <br />
opkg install gpe-gallery<br />
<br />
To obtain the standard web browser, use:<br />
<br />
opkg install openmoko-browser2<br />
<br />
An alternative browser, minimo, offers many more features. <br />
First download and unpack it on your GNU/Linux host:<br />
<br />
wget http://www.ginguppin.de/files/minimo.tar.bz2<br />
tar jvxf minimo.tar.bz2<br />
<br />
Copy it over to the FreeRunner:<br />
scp minimo_* root@192.168.0.202:/tmp<br />
<br />
Then on the FreeRunner:<br />
opkg install /tmp/minimo_0.02\+cvs20070626-r0_armv4t.ipk<br />
<br />
You'll probably also want to [[Switching Keyboards|change the keyboard]] including the [[Switching Keyboards#How_to_add_a_keyboard_toggle_button|keyboard toggle applet]]<br />
<br />
=== Importing contacts ===<br />
<br />
If you can export your contacts to VCard format, either multiple files or single file containing all of them, you may use the script on [[Import Vcf Contacts]] page to bring them to Neo.<br />
<br />
==The next steps==<br />
<br />
Congratulations for setting up your Neo FreeRunner. There are many more ressources to help free your phone: <br />
<br />
===Customize the interface===<br />
home screen clock, keyboard<br />
<br />
The stock [[Openmoko2007.2]] image flashed onto the Neo FreeRunner is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
REMOVE CLICK SOUND VIA /etc/pulse/session<br />
<br />
More information about today screen customization at [[Today/2007.2]].<br />
<br />
Also, if you prefer having a full keyboard, using matchbox's qwerty keybord, see [[Switching_Keyboards#Matchbox_keyboard|these instructions]]. Then you may also see [http://lists.openmoko.org/pipermail/community/2008-July/021296.html these], which describe a way to add an applet allowing the showing/hiding of that keyboard.<br />
<br />
===Use the GPS===<br />
<br />
Simple guide to get going with '''GPS''':<br />
<br />
# opkg install gpsd<br />
# echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd<br />
<br />
and restart gpsd, the gps daemon, with<br />
<br />
# /etc/init.d/gpsd restart<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
For a nice map, try tangoGPS:<br />
<br />
# opkg install http://www.tangogps.org/downloads/tangogps_0.9.2-r1_armv4t.ipk<br />
<br />
There were critical [[GPS Problems]] earlier that are largely fixed in newest kernels, see the instructions above to install the updates. More information is on the [[GPS]] page.<br />
<br />
===Play with WLAN, GPRS and Bluetooth===<br />
<br />
There are plenty of development opportunities to integrate these functions in the OpenMoko software.<br />
<br />
'''WLAN''': See [[Wireless Networking]]<br />
<br />
'''GPRS''': See [[Manually using GPRS]]<br />
<br />
'''Bluetooth''': See [[Manually using Bluetooth]]<br />
<br />
=== Welcome in the community ===<br />
<br />
The release of the Freerunner in the summer 2008 has led the community into a new period of rapid growth. The ressources available are summarized on the [[Openmoko:Community_Portal]]. These are always exciting and interesting times to live in when the balance between Chaos and Order tilts towards change.<br />
<br />
As an entry point, the [[http://lists.openmoko.org/pipermail/community/ openmoko community mailing list]] is perhaps the most active. As of July 2008, its volume amounts to dozens of messages per day. Openmoko people are there too. You may ask for help on the [[https://lists.openmoko.org/mailman/listinfo/support support mailing list]].<br />
<br />
Or if you use IRC, there is always a good group in the channel #openmoko on FreeNode.<br />
<br />
The links on the top-right of this page lead to the sister sites in the Openmoko community:<br />
* Home and Wiki lead to the same Main Page on the wiki. It needs cleaning, we know...<br />
* Doc leads to the bug ''Trac''king system.<br />
* Planet goes to the collection of Openmoko-relatd blogs.<br />
* Projects is the GForge, free hosting for application developers.<br />
* Lists is the listing of all the public mailing lists on lists.openmoko.org. <br />
<br />
== Annotated references ==<br />
<br />
* The [http://quickstart.openmoko.org/ Quickstart guide]. Largely used as a basis for this page.<br />
* [[Neo FreeRunner]]. The top-level view of the specifications.<br />
* [[Neo FreeRunner GTA02 Hardware]]. The detailed specifications.<br />
* [[GTA02 Openness]]. Ultimate chip-level specifications, data sheets and hardware documentation.<br />
* [[Distributions]]. Strengths and weaknesses of the various distributions available for the Neo.<br />
* [[Getting Started FAQ]]. Answers.<br />
* [[GTA02_FAQ]]. More answers<br />
<br />
To search this wiki with Google, use the following search term:<br />
<br />
<search term> site:http://wiki.openmoko.org/wiki/<br />
<br />
<br />
[[Category:GTA02 Hardware]]<br />
[[Category:Guides]]</div>Thewtexhttp://openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-08-02T22:51:50Z<p>Thewtex: /* Use the package manager */</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc; width:75% " | <br />
<p align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.</p><br />
<br />
<p align="left"><br />
Some Frequently Asked Questions for new owners are featured in the [[Getting Started FAQ]].<br />
</p><br />
<br />
! style="background:#fcfcfc; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
<br />
<br />
== Package Contents ==<br />
<br />
[[Image:GTA02ALL.png|left|400px|thumb|Inside the package]]<br />
<br /><br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable (A -> Mini-B 5-pole)<br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB & SD adapter<br />
<br />
<div style="clear: both">&nbsp;</div><br />
<br />
== Setting up the hardware, getting to know the Neo FreeRunner physically ==<br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|Open the case like this.|center]]</td><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu14.jpg|250px|thumb|Opening !|center]]</td><br />
</tr><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here.|center]]</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|Finally, put in the battery.|center]]</td><br />
</tr></table><br />
</div><br />
<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that on the inside of metal part of the holder there are little holding tabs for the card. Slide the card in these holders (on the metal part) before closing the card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches of the holder are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
[[Image:FR_SIM_SD_open.jpg|457px|thumb|SIM and SD holders open, with cards in place|center]]<br />
<br />
[[http://video.google.de/videoplay?docid=-8343770443102960945 A short video]] is also available. It was shot using the previous version of the Neo, but the installation procedures remains the same.<br />
<br />
===Charging the Neo FreeRunner===<br />
<br />
When using the Neo FreeRunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger (at 1000mA) or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging an empty battery at 100mA takes 12~15 hours, at 500mA takes 2,5~3,5 hours, and at 1000mA takes 1.5~2.5 hours. (90%~100%) [to be confirmed]<br />
<br />
Make sure that the battery never discharges completely. This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work. Should the battery become completely discharged, your options are:<br />
- Use external stand-alone charger (compatible with the Nokia BL-5C battery)<br />
- Boot the FreeRunner with an alternative battery, or with a spare GTA01 or GTA02 battery, plug USB power, then switch to the empty battery.<br />
- Boot the FreeRunner with a 4.5VDC external power source (steady hand and great care involved), plug USB power, then insert the empty battery.<br />
<br />
===Buttons and connectors===<br />
<br />
<table width="80%" style="clear: both; border-collapse: collapse" valign="top"><br />
<tr><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu9.jpg|370px|thumb|Power Button, USB and external GPS Antenna (left to right)|center]]</td><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack (left to right)|center]]</td><br />
</tr><br />
<tr><br />
<td></td><br />
<td>'''Power'''<br />
Tapping the power button exits the current application.<br />
<br />
Holding the power button brings up a menu allowing you to:<br />
* Power on and off the GPS, wifi, GSM, and bluetooth antennae<br />
* Change power management mode to:<br />
** Dim first then lock<br />
** Dim only, don't lock<br />
** Disabled<br />
* Lock the screen<br />
* Shutdown the device.</td><br />
<td></td><br />
<td>'''Aux'''<br />
Tapping the Aux button hides or shows the currently running application.<br />
<br />
Holding the Aux button brings up a menu allowing you to:<br />
<br />
* Hide and show the title bar (Fullscreen toggle)<br />
* Alternate wide or tall display modes (Swap Orientation)<br />
* Save the content of the screen as an image file (Screenshot)<br />
</td><br />
</tr><br />
</table><br />
<br />
Booting time is 2 about minutes overall, so patience is in order. The longest step comes after the Linux boot messages in very small fonts have scrolled by, at the graphical "openmoko" sunrise page.<br />
<br />
The phone jack is a 2.5mm connector with four contacts: stereo + MIC. It is compatible with the headsets used by Motorola smartphones (A780,A1200, ...) and the V-360.<br />
<br />
To plug regular (i.e. without microphone) headphones commonly used to listen to music, a compatible 2.5mm 4 rings jack to 3.5mm stereo jack adapter is needed. It has been reported that Nokia's 2.5mm -> 3.5mm adapters do not work, but that a 3.5mm Stereo Audio Adapter for Motorola MPx200/E398 works well. You will also want to switch from speaker output to headset, by restoring the appropriate alsa.state-file (usually the mediaplayer should do this for you) or via alsamixer (see below), to enable stereo output in there.<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
== Navigating menus and applications ==<br />
<br />
''Note:'' this section describes the interface used by the "2007.2" image, which is the current default image for Openmoko.<br />
<br />
====Today Page====<br />
<br />
[[Image:Todaypage_reduced_true.png|200px|right]] Openmoko starts by displaying the "Today" page, which is your home page. Icons in the top row indicate the status of the phone. The bottom row consists of three tabs. The tab with a home on the left lead to the "Today" page you're viewing now. The central tab lead to the "Launch Task" page, which is the main menu used to start applications. The tab with gears on the right lead to the "Running Tasks" page, which is used to deal with currently open windows and applications.<br />
<br />
<br clear=all /><br />
<br />
[[Image:Todaypage_reduced_false.png|right|200px|]] The "Today" page is empty, as shown above, when you first start Openmoko. We explain below how to turn on the "full view", displayed to the right. In the full view, a second row of icons give quick links to commonly-used applications such as the dialer, the adressbook, mailbox and calendar. The main body of the screen displays a clock and other useful information.<br />
<br />
See [[Today/2007.2]] for more information about the Today page and customization. <br />
<br />
<br clear=all /><br />
<br />
====Launch Task Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:LaunchTasks.png|right|200px]] This page displays a menu of available applications. You may choose a category of applications to display to simplify the screen, or choose to display them all.<br />
<br />
Current categories are [[PIM Suite]], [[Applications]], [[Games]], [[Utilities]], and All.<br />
<br />
<br clear=all /><br />
<br />
====Running Tasks Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:RunningTasks.png|right|200px]] This page displays currently-running tasks. Any individual task may be terminated by selecting it and then clicking on the garbage-can icon to close it. All tasks may be terminated by clicking on any one of them and then clicking on the "folder" icon in the upper right (expect this to change in future releases). Any task may be rejoined by selecting it and then selecting the "return" icon at the middle top.<br />
<br />
<br clear=all /><br />
<br />
====Exiting from and switching to an Application====<br />
<br />
Any time an application is running, you can simply click the device's power button and the application will exit, returning you to the Today page.<br />
<br />
Alternatively, you can cycle through active applications using the AUX button<br />
<br />
Clicking the top-left of the screen displays the drop down ''task menu''. This menu lists all active applications and allows to switch directly to any one. ''Note:'' If the task menu is not shown, click and hold the [[#Aux|Aux]] button to bring up the Aux menu, and select "Toggle Fullscreen".<br />
<br />
== Using the terminal ==<br />
<br />
To start a console from "Today" page, click the middle tab at the bottom of the screen to display the "Launch applications" page, then select Terminal in the "Applications" submenu. The multitaps keyboard slides up (and down) from the bottom of the screen automatically when you touch the screen.<br />
<br />
===Setting date and time===<br />
<br />
From the terminal, type the following, but replace ''MM'' with the month (01-12); ''DD'' with the day (01-31); ''hhmm'' with the time (0000-2359); ''YYYY'' with the year (optional); and ''.ss'' with the seconds (optional).<br />
<br />
date -s ''MMDDhhmmYYYY.ss''<br />
<br />
To make the change persist between reboots, sync the hardware clock with the updated system time.<br />
<br />
hwclock --systohc<br />
<br />
See [[Setting Date and Time]] for more discussion, including synchronizing with an NTP server.<br />
<br />
===Adjusting the Volume===<br />
<br />
As of this writing, there is no way to adjust the volume from the screen.<br />
<br />
For now, run the terminal application or [[USB_Networking|log in via usb]], and run the [[Neo alsamixer]] application (to see all the options, including Mic2, you will need to run ''alsamixer -V all''). The mixer is simpler than it looks. Just use the left and right arrow keys to select "headphone" or "PCM" and use the up and down arrow keys to adjust the volume. You can also adjust your microphone volume with the "mic2" adjustment. Press ESC when finished. Then exit the terminal application or log out of the USB login.<br />
<br />
You may need to update configuration files in /usr/share/openmoko/scenarios/ to make the microphone setting permanent. Use<br />
alsactl -f ''path-to-statefile'' store<br />
to do this.<br />
<br />
The default files are as follows (in /usr/share/openmoko/scenarios/): <br />
:gsmhandset.state<br />
:gsmheadset.state<br />
:gsmspeakerout.state<br />
:headset.state<br />
:stereoout.state<br />
<br />
These correspond to the various Sound Profiles accessible in the Debug Tool under Applications.<br />
<br />
To manually restore one of the state files,<br />
alsactl -f ''path-to-statefile'' restore<br />
<br />
One way to increase the volume of the microphone is to do the following:<br />
# ssh into your Freerunner<br />
# vi /usr/share/openmoko/scenarios/gsmhandset.state<br />
# search for "Mic2"<br />
# change to "value 3"<br />
If people report not being able to hear you when you call, then setting the Mic2 value to 2 or 3 should fix that.<br />
<br />
'''Question: I am using headphones but only the right speaker work the left don't work how can I fix this ?'''<br />
<br />
R: This should be set correctly by restoring gsmheadset.state.<br />
Pull and replug the headset jack to make sure the correct state-file is restored.<br />
To manually control the switch between Speaker and headset:<br />
Start alsamixer, scroll along to the right until you find "Amp Spk" and mute it (m), the sound will then come out from both channels of the <br />
headphones and not out of the speaker.<br />
<br />
[[Freerunner_Hardware_Issues]]<br />
<br />
=== Accessing the microSD card ===<br />
<br />
Mounted at /media/card by default.<br />
<br />
If you have multiple partitions on the card, the first (/dev/mmcblk0p1) will be mounted at /media/card, the second at /media/mmcblk0p2, the third at /media/mmcblk0p3 etc.<br />
<br />
== Set up USB-based networking and update ==<br />
<br />
===Connect with and log in the Neo FreeRunner===<br />
<br />
This is discussed in the [[USB_Networking|USB Networking]] section.<br />
<br />
===Use the package manager===<br />
<br />
There are three layers to the software on the FreeRunner:<br />
<br />
* uBoot: Think of u-boot as a combination of the BIOS and Grub on a PC.<br />
* Kernel: The Linux kernel<br />
* Root Filesystem: The rest of the system<br />
<br />
In order to keep the FreeRunner up-to-date with the latest features and bug-fixes, it is advisable update the software at regular intervals. There are two main methods of doing this: upgrading with the package manager opkg or manually flashing the device. You can also learn about [[Booting the Neo FreeRunner]] and [[Flashing the Neo FreeRunner]].<br />
<br />
[[uboot]], the kernel and the root filesystem can all be flashed to update them. For uboot, this is the only possibility. The advantage of flashing the kernel manually rather than using opkg seems to be speed. The disadvantage of flashing the root file system is that it wipes out all local modifications, including /home. If /home is moved to the SD disk, this is no longer a problem.<br />
<br />
Warning: UPGRADING TO DAILY KERNELS FROM THE DEVELOPMENT BRANCH MAY BREAK THINGS. That said, assuming that your FreeRunner can access the internet (see above), the kernel and other packages can be updated with<br />
<br />
# opkg update<br />
# opkg -test upgrade<br />
# opkg upgrade<br />
<br />
The first updates the repository information, telling opkg what packages are available. The second allows you to see what the package manager wants to do. The third upgrades all packages for which a newer version is available. '''At the moment, some signature files are missing (404 errors), which opkg complains about, but this is cosmetic.''' The repositories will still update with the missing signature files.<br />
<br />
Note that running opkg upgrade on a factory-fresh phone will upgrade dropbear (the ssh software) and various xserver packages, and neither upgrades elegantly while in use. Xserver must be updated over ssh to complete succesfully. Dropbear can be updated over ssh with the proper command:<br />
# nohup opkg upgrade dropbear & <br />
Or upgrade it directly in the FreeRunner terminal.<br />
# opkg upgrade dropbear<br />
<br />
When updating over ssh, the session will be interrupted, but the command should complete successfully(check nohup.out on your device to verify), and you should be able to reconnect within a few seconds.<br />
<br />
Then connect to the FreeRunner via ssh and type:<br />
# opkg upgrade<br />
<br />
Alternatively you can upgrade the xserver packages via ssh and then upgrade the rest from the FreeRunner's terminal. <br />
<br />
If you do your first upgrade in two installments like this, it will go more smoothly.<br />
<br />
It will be possible in the future to update uboot with opkg, but this has not yet been implemented.<br />
<br />
=== Installing multimedia, web browsing and other applications ===<br />
<br />
There are many applications you can install - check out the [[Repositories]] for a list of packages, an example of how to add a repository using scaredy cat as an example can also be found here. A list of pre-installed and available packages with descriptions can be found here - [[Available Packages]].<br />
<br />
The calendar can be installed with<br />
<br />
opkg install openmoko-dates2<br />
<br />
For a Media Player:<br />
<br />
opkg install openmoko-mediaplayer2<br />
wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
rm openmoko-mediaplayer-theme.tar.bz2<br />
<br />
If you want a basic image viewer, have a look at the one from the gpe suite:<br />
<br />
opkg install gpe-icons <br />
opkg install gpe-gallery<br />
<br />
To obtain the standard web browser, use:<br />
<br />
opkg install openmoko-browser2<br />
<br />
An alternative browser, minimo, offers many more features. <br />
First download and unpack it on your GNU/Linux host:<br />
<br />
wget http://www.ginguppin.de/files/minimo.tar.bz2<br />
tar jvxf minimo.tar.bz2<br />
<br />
Copy it over to the FreeRunner:<br />
scp minimo_* root@192.168.0.202:/tmp<br />
<br />
Then on the FreeRunner:<br />
opkg install /tmp/minimo_0.02\+cvs20070626-r0_armv4t.ipk<br />
<br />
You'll probably also want to [[Switching Keyboards|change the keyboard]] including the [[Switching Keyboards#How_to_add_a_keyboard_toggle_button|keyboard toggle applet]]<br />
<br />
=== Importing contacts ===<br />
<br />
If you can export your contacts to VCard format, either multiple files or single file containing all of them, you may use the script on [[Import Vcf Contacts]] page to bring them to Neo.<br />
<br />
==The next steps==<br />
<br />
Congratulations for setting up your Neo FreeRunner. There are many more ressources to help free your phone: <br />
<br />
===Customize the interface===<br />
home screen clock, keyboard<br />
<br />
The stock [[Openmoko2007.2]] image flashed onto the Neo FreeRunner is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
REMOVE CLICK SOUND VIA /etc/pulse/session<br />
<br />
More information about today screen customization at [[Today/2007.2]].<br />
<br />
Also, if you prefer having a full keyboard, using matchbox's qwerty keybord, see [[Switching_Keyboards#Matchbox_keyboard|these instructions]]. Then you may also see [http://lists.openmoko.org/pipermail/community/2008-July/021296.html these], which describe a way to add an applet allowing the showing/hiding of that keyboard.<br />
<br />
===Use the GPS===<br />
<br />
Simple guide to get going with '''GPS''':<br />
<br />
# opkg install gpsd<br />
# echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd<br />
<br />
and restart gpsd, the gps daemon, with<br />
<br />
# /etc/init.d/gpsd restart<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
For a nice map, try tangoGPS:<br />
<br />
# opkg install http://www.tangogps.org/downloads/tangogps_0.9.2-r1_armv4t.ipk<br />
<br />
There were critical [[GPS Problems]] earlier that are largely fixed in newest kernels, see the instructions above to install the updates. More information is on the [[GPS]] page.<br />
<br />
===Play with WLAN, GPRS and Bluetooth===<br />
<br />
There are plenty of development opportunities to integrate these functions in the OpenMoko software.<br />
<br />
'''WLAN''': See [[Wireless Networking]]<br />
<br />
'''GPRS''': See [[Manually using GPRS]]<br />
<br />
'''Bluetooth''': See [[Manually using Bluetooth]]<br />
<br />
=== Welcome in the community ===<br />
<br />
The release of the Freerunner in the summer 2008 has led the community into a new period of rapid growth. The ressources available are summarized on the [[Openmoko:Community_Portal]]. These are always exciting and interesting times to live in when the balance between Chaos and Order tilts towards change.<br />
<br />
As an entry point, the [[http://lists.openmoko.org/pipermail/community/ openmoko community mailing list]] is perhaps the most active. As of July 2008, its volume amounts to dozens of messages per day. Openmoko people are there too. You may ask for help on the [[https://lists.openmoko.org/mailman/listinfo/support support mailing list]].<br />
<br />
Or if you use IRC, there is always a good group in the channel #openmoko on FreeNode.<br />
<br />
The links on the top-right of this page lead to the sister sites in the Openmoko community:<br />
* Home and Wiki lead to the same Main Page on the wiki. It needs cleaning, we know...<br />
* Doc leads to the bug ''Trac''king system.<br />
* Planet goes to the collection of Openmoko-relatd blogs.<br />
* Projects is the GForge, free hosting for application developers.<br />
* Lists is the listing of all the public mailing lists on lists.openmoko.org. <br />
<br />
== Annotated references ==<br />
<br />
* The [http://quickstart.openmoko.org/ Quickstart guide]. Largely used as a basis for this page.<br />
* [[Neo FreeRunner]]. The top-level view of the specifications.<br />
* [[Neo FreeRunner GTA02 Hardware]]. The detailed specifications.<br />
* [[GTA02 Openness]]. Ultimate chip-level specifications, data sheets and hardware documentation.<br />
* [[Distributions]]. Strengths and weaknesses of the various distributions available for the Neo.<br />
* [[Getting Started FAQ]]. Answers.<br />
* [[GTA02_FAQ]]. More answers<br />
<br />
To search this wiki with Google, use the following search term:<br />
<br />
<search term> site:http://wiki.openmoko.org/wiki/<br />
<br />
<br />
[[Category:GTA02 Hardware]]<br />
[[Category:Guides]]</div>Thewtexhttp://openmoko.org/wiki/Getting_Started_with_your_Neo_FreeRunnerGetting Started with your Neo FreeRunner2008-08-02T22:51:14Z<p>Thewtex: /* Use the package manager */</p>
<hr />
<div>{{Languages|Getting Started with your Neo FreeRunner}}<br />
<br />
{| class="wikitable" cellspacing="2" cellpadding="2" style="padding: 0%; margin:0em 0em 1em 0em; background:#eeeeee; width:100%;floating="center"; "<br />
! style="background:#fcfcfc; width:75% " | <br />
<p align="left"><br />
Thank you for purchasing this Developer release of Neo FreeRunner. The [[Neo FreeRunner]] phone is the second hardware platform to take advantage of [[Openmoko]]. This guide will help you get to know your Neo FreeRunner and how to start using your Neo FreeRunner.</p><br />
<br />
<p align="left"><br />
Some Frequently Asked Questions for new owners are featured in the [[Getting Started FAQ]].<br />
</p><br />
<br />
! style="background:#fcfcfc; width:25% " |<br />
[[Image:Freerunner box.png|200px|thumb|Neo FreeRunner Package]]<br />
|}<br />
<br />
<br />
<br />
== Package Contents ==<br />
<br />
[[Image:GTA02ALL.png|left|400px|thumb|Inside the package]]<br />
<br /><br />
: [[Image:Circle2.gif|10px]] Neo FreeRunner<br />
: [[Image:Circle2.gif|10px]] Stylus<br />
: [[Image:Circle2.gif|10px]] Battery<br />
: [[Image:Circle2.gif|10px]] Charger<br />
: [[Image:Circle2.gif|10px]] USB Cable (A -> Mini-B 5-pole)<br />
: [[Image:Circle2.gif|10px]] microSD Card 512MB & SD adapter<br />
<br />
<div style="clear: both">&nbsp;</div><br />
<br />
== Setting up the hardware, getting to know the Neo FreeRunner physically ==<br />
<br />
===Installing the Micro-SD card, the SIM card, and the Battery ===<br />
<br />
<div align-center><br />
<table width="80%" style="clear: both; border: 1px solid #ffffff; border-collapse: collapse; padding: 0.2em; margin: 0; font-size: 100%; margin: 0 1px;"><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu13.jpg|233px|thumb|Open the case like this.|center]]</td><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu14.jpg|250px|thumb|Opening !|center]]</td><br />
</tr><br />
<tr valign="top" style="background: #ffffff"><br />
<td style="padding: 1px 1em 0; background: #ffffff;">[[Image:menu11.jpg|260px|thumb|Put the SIM card and SD card here.|center]]</td><br />
<td style="width: 50%; white-space: nowrap; padding: 4px 1em 0 0.5em; border-right: 1px solid #ffffff;">[[Image:menu12.jpg|233px|thumb|Finally, put in the battery.|center]]</td><br />
</tr></table><br />
</div><br />
<br />
<br />
# Remove the rear cover of the Neo FreeRunner by first holding the Neo FreeRunner on the side and then use your fingernail to prise off the rear cover at the slot on top of the device.<br />
# Now you should be able to locate the combined SIM and Micro-SD card holder at the bottom of the battery compartment.<br />
# Unlock the SIM card holder by sliding the metal clip down, towards the USB socket, with your fingernail. Use caution, as these parts are delicate and could be damaged by forcing them in the wrong direction.<br />
# Lift up on the SIM card holder.<br />
# The Micro-SD card holder is held in place by a latch on either side. It is easiest to open the Micro-SD card holder by releasing these latches one at a time rather than by lifting from the middle, as lifting from the middle tends to increase the latching pressure. A small screwdriver or knife can be used for this.<br />
# Insert the Micro-SD card into the Micro-SD card holder. Note that on the inside of metal part of the holder there are little holding tabs for the card. Slide the card in these holders (on the metal part) before closing the card holder. Note that the electrical contacts should face down and towards the edge of the Neo Freerunner.<br />
# Close the Micro-SD card holder, making sure that both latches of the holder are securely fastened.<br />
# Insert the SIM card into the SIM card holder, taking care to slide inside the two metal tabs in the cover. Note that the electrical contacts should face down and that the cut corner should be closest to the external GPS Antenna Socket.<br />
# Close the SIM card holder and lock it by sliding the metal clip towards the external GPS Antenna Socket on the FreeRunner.<br />
# Insert the battery into the battery compartment, aligning the electrical contacts on the battery with the electrical contacts in the battery compartment. Insert the side with the electrical contacts first.<br />
# Replace the rear cover on the FreeRunner.<br />
<br />
[[Image:FR_SIM_SD_open.jpg|457px|thumb|SIM and SD holders open, with cards in place|center]]<br />
<br />
[[http://video.google.de/videoplay?docid=-8343770443102960945 A short video]] is also available. It was shot using the previous version of the Neo, but the installation procedures remains the same.<br />
<br />
===Charging the Neo FreeRunner===<br />
<br />
When using the Neo FreeRunner for the first time, you should charge the battery completely. The battery can be charged using the provided charger (at 1000mA) or from a powered USB port capable of providing 500mA worth of current. Most computers will be able to charge the FreeRunner without any problems.<br />
<br />
Charging an empty battery at 100mA takes 12~15 hours, at 500mA takes 2,5~3,5 hours, and at 1000mA takes 1.5~2.5 hours. (90%~100%) [to be confirmed]<br />
<br />
Make sure that the battery never discharges completely. This is an issue because the internal charging circuitry can not be turned on until the FreeRunner has booted, and booting through USB power alone does not work. Should the battery become completely discharged, your options are:<br />
- Use external stand-alone charger (compatible with the Nokia BL-5C battery)<br />
- Boot the FreeRunner with an alternative battery, or with a spare GTA01 or GTA02 battery, plug USB power, then switch to the empty battery.<br />
- Boot the FreeRunner with a 4.5VDC external power source (steady hand and great care involved), plug USB power, then insert the empty battery.<br />
<br />
===Buttons and connectors===<br />
<br />
<table width="80%" style="clear: both; border-collapse: collapse" valign="top"><br />
<tr><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu9.jpg|370px|thumb|Power Button, USB and external GPS Antenna (left to right)|center]]</td><br />
<td style="width: 25px">&nbsp;</td><br />
<td style="width: 370px">[[Image:menu8.jpg|370px|thumb|AUX Button and phone jack (left to right)|center]]</td><br />
</tr><br />
<tr><br />
<td></td><br />
<td>'''Power'''<br />
Tapping the power button exits the current application.<br />
<br />
Holding the power button brings up a menu allowing you to:<br />
* Power on and off the GPS, wifi, GSM, and bluetooth antennae<br />
* Change power management mode to:<br />
** Dim first then lock<br />
** Dim only, don't lock<br />
** Disabled<br />
* Lock the screen<br />
* Shutdown the device.</td><br />
<td></td><br />
<td>'''Aux'''<br />
Tapping the Aux button hides or shows the currently running application.<br />
<br />
Holding the Aux button brings up a menu allowing you to:<br />
<br />
* Hide and show the title bar (Fullscreen toggle)<br />
* Alternate wide or tall display modes (Swap Orientation)<br />
* Save the content of the screen as an image file (Screenshot)<br />
</td><br />
</tr><br />
</table><br />
<br />
Booting time is 2 about minutes overall, so patience is in order. The longest step comes after the Linux boot messages in very small fonts have scrolled by, at the graphical "openmoko" sunrise page.<br />
<br />
The phone jack is a 2.5mm connector with four contacts: stereo + MIC. It is compatible with the headsets used by Motorola smartphones (A780,A1200, ...) and the V-360.<br />
<br />
To plug regular (i.e. without microphone) headphones commonly used to listen to music, a compatible 2.5mm 4 rings jack to 3.5mm stereo jack adapter is needed. It has been reported that Nokia's 2.5mm -> 3.5mm adapters do not work, but that a 3.5mm Stereo Audio Adapter for Motorola MPx200/E398 works well. You will also want to switch from speaker output to headset, by restoring the appropriate alsa.state-file (usually the mediaplayer should do this for you) or via alsamixer (see below), to enable stereo output in there.<br />
<br />
===Unlocking the screen===<br />
<br />
When the screen is locked, you should see a Matrix-style green graphic with the Openmoko symbol in the middle of the bottom of the screen along with lock and unlock symbols. If you drag the Openmoko symbol to the unlock symbol at the top then the screen will become unlocked.<br />
<br />
== Navigating menus and applications ==<br />
<br />
''Note:'' this section describes the interface used by the "2007.2" image, which is the current default image for Openmoko.<br />
<br />
====Today Page====<br />
<br />
[[Image:Todaypage_reduced_true.png|200px|right]] Openmoko starts by displaying the "Today" page, which is your home page. Icons in the top row indicate the status of the phone. The bottom row consists of three tabs. The tab with a home on the left lead to the "Today" page you're viewing now. The central tab lead to the "Launch Task" page, which is the main menu used to start applications. The tab with gears on the right lead to the "Running Tasks" page, which is used to deal with currently open windows and applications.<br />
<br />
<br clear=all /><br />
<br />
[[Image:Todaypage_reduced_false.png|right|200px|]] The "Today" page is empty, as shown above, when you first start Openmoko. We explain below how to turn on the "full view", displayed to the right. In the full view, a second row of icons give quick links to commonly-used applications such as the dialer, the adressbook, mailbox and calendar. The main body of the screen displays a clock and other useful information.<br />
<br />
See [[Today/2007.2]] for more information about the Today page and customization. <br />
<br />
<br clear=all /><br />
<br />
====Launch Task Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:LaunchTasks.png|right|200px]] This page displays a menu of available applications. You may choose a category of applications to display to simplify the screen, or choose to display them all.<br />
<br />
Current categories are [[PIM Suite]], [[Applications]], [[Games]], [[Utilities]], and All.<br />
<br />
<br clear=all /><br />
<br />
====Running Tasks Page====<br />
<br />
{{stub}}<br />
<br />
[[Image:RunningTasks.png|right|200px]] This page displays currently-running tasks. Any individual task may be terminated by selecting it and then clicking on the garbage-can icon to close it. All tasks may be terminated by clicking on any one of them and then clicking on the "folder" icon in the upper right (expect this to change in future releases). Any task may be rejoined by selecting it and then selecting the "return" icon at the middle top.<br />
<br />
<br clear=all /><br />
<br />
====Exiting from and switching to an Application====<br />
<br />
Any time an application is running, you can simply click the device's power button and the application will exit, returning you to the Today page.<br />
<br />
Alternatively, you can cycle through active applications using the AUX button<br />
<br />
Clicking the top-left of the screen displays the drop down ''task menu''. This menu lists all active applications and allows to switch directly to any one. ''Note:'' If the task menu is not shown, click and hold the [[#Aux|Aux]] button to bring up the Aux menu, and select "Toggle Fullscreen".<br />
<br />
== Using the terminal ==<br />
<br />
To start a console from "Today" page, click the middle tab at the bottom of the screen to display the "Launch applications" page, then select Terminal in the "Applications" submenu. The multitaps keyboard slides up (and down) from the bottom of the screen automatically when you touch the screen.<br />
<br />
===Setting date and time===<br />
<br />
From the terminal, type the following, but replace ''MM'' with the month (01-12); ''DD'' with the day (01-31); ''hhmm'' with the time (0000-2359); ''YYYY'' with the year (optional); and ''.ss'' with the seconds (optional).<br />
<br />
date -s ''MMDDhhmmYYYY.ss''<br />
<br />
To make the change persist between reboots, sync the hardware clock with the updated system time.<br />
<br />
hwclock --systohc<br />
<br />
See [[Setting Date and Time]] for more discussion, including synchronizing with an NTP server.<br />
<br />
===Adjusting the Volume===<br />
<br />
As of this writing, there is no way to adjust the volume from the screen.<br />
<br />
For now, run the terminal application or [[USB_Networking|log in via usb]], and run the [[Neo alsamixer]] application (to see all the options, including Mic2, you will need to run ''alsamixer -V all''). The mixer is simpler than it looks. Just use the left and right arrow keys to select "headphone" or "PCM" and use the up and down arrow keys to adjust the volume. You can also adjust your microphone volume with the "mic2" adjustment. Press ESC when finished. Then exit the terminal application or log out of the USB login.<br />
<br />
You may need to update configuration files in /usr/share/openmoko/scenarios/ to make the microphone setting permanent. Use<br />
alsactl -f ''path-to-statefile'' store<br />
to do this.<br />
<br />
The default files are as follows (in /usr/share/openmoko/scenarios/): <br />
:gsmhandset.state<br />
:gsmheadset.state<br />
:gsmspeakerout.state<br />
:headset.state<br />
:stereoout.state<br />
<br />
These correspond to the various Sound Profiles accessible in the Debug Tool under Applications.<br />
<br />
To manually restore one of the state files,<br />
alsactl -f ''path-to-statefile'' restore<br />
<br />
One way to increase the volume of the microphone is to do the following:<br />
# ssh into your Freerunner<br />
# vi /usr/share/openmoko/scenarios/gsmhandset.state<br />
# search for "Mic2"<br />
# change to "value 3"<br />
If people report not being able to hear you when you call, then setting the Mic2 value to 2 or 3 should fix that.<br />
<br />
'''Question: I am using headphones but only the right speaker work the left don't work how can I fix this ?'''<br />
<br />
R: This should be set correctly by restoring gsmheadset.state.<br />
Pull and replug the headset jack to make sure the correct state-file is restored.<br />
To manually control the switch between Speaker and headset:<br />
Start alsamixer, scroll along to the right until you find "Amp Spk" and mute it (m), the sound will then come out from both channels of the <br />
headphones and not out of the speaker.<br />
<br />
[[Freerunner_Hardware_Issues]]<br />
<br />
=== Accessing the microSD card ===<br />
<br />
Mounted at /media/card by default.<br />
<br />
If you have multiple partitions on the card, the first (/dev/mmcblk0p1) will be mounted at /media/card, the second at /media/mmcblk0p2, the third at /media/mmcblk0p3 etc.<br />
<br />
== Set up USB-based networking and update ==<br />
<br />
===Connect with and log in the Neo FreeRunner===<br />
<br />
This is discussed in the [[USB_Networking|USB Networking]] section.<br />
<br />
===Use the package manager===<br />
<br />
There are three layers to the software on the FreeRunner:<br />
<br />
* uBoot: Think of u-boot as a combination of the BIOS and Grub on a PC.<br />
* Kernel: The Linux kernel<br />
* Root Filesystem: The rest of the system<br />
<br />
In order to keep the FreeRunner up-to-date with the latest features and bug-fixes, it is advisable update the software at regular intervals. There are two main methods of doing this: upgrading with the package manager opkg or manually flashing the device. You can also learn about [[Booting the Neo FreeRunner]] and [[Flashing the Neo FreeRunner]].<br />
<br />
uboot, the kernel and the root filesystem can all be flashed to update them. For uboot, this is the only possibility. The advantage of flashing the kernel manually rather than using opkg seems to be speed. The disadvantage of flashing the root file system is that it wipes out all local modifications, including /home. If /home is moved to the SD disk, this is no longer a problem.<br />
<br />
Warning: UPGRADING TO DAILY KERNELS FROM THE DEVELOPMENT BRANCH MAY BREAK THINGS. That said, assuming that your FreeRunner can access the internet (see above), the kernel and other packages can be updated with<br />
<br />
# opkg update<br />
# opkg -test upgrade<br />
# opkg upgrade<br />
<br />
The first updates the repository information, telling opkg what packages are available. The second allows you to see what the package manager wants to do. The third upgrades all packages for which a newer version is available. '''At the moment, some signature files are missing (404 errors), which opkg complains about, but this is cosmetic.''' The repositories will still update with the missing signature files.<br />
<br />
Note that running opkg upgrade on a factory-fresh phone will upgrade dropbear (the ssh software) and various xserver packages, and neither upgrades elegantly while in use. Xserver must be updated over ssh to complete succesfully. Dropbear can be updated over ssh with the proper command:<br />
# nohup opkg upgrade dropbear & <br />
Or upgrade it directly in the FreeRunner terminal.<br />
# opkg upgrade dropbear<br />
<br />
When updating over ssh, the session will be interrupted, but the command should complete successfully(check nohup.out on your device to verify), and you should be able to reconnect within a few seconds.<br />
<br />
Then connect to the FreeRunner via ssh and type:<br />
# opkg upgrade<br />
<br />
Alternatively you can upgrade the xserver packages via ssh and then upgrade the rest from the FreeRunner's terminal. <br />
<br />
If you do your first upgrade in two installments like this, it will go more smoothly.<br />
<br />
It will be possible in the future to update uboot with opkg, but this has not yet been implemented.<br />
<br />
=== Installing multimedia, web browsing and other applications ===<br />
<br />
There are many applications you can install - check out the [[Repositories]] for a list of packages, an example of how to add a repository using scaredy cat as an example can also be found here. A list of pre-installed and available packages with descriptions can be found here - [[Available Packages]].<br />
<br />
The calendar can be installed with<br />
<br />
opkg install openmoko-dates2<br />
<br />
For a Media Player:<br />
<br />
opkg install openmoko-mediaplayer2<br />
wget http://abraxa.dyndns.org:81/random/openmoko-mediaplayer-theme.tar.bz2<br />
tar xjf openmoko-mediaplayer-theme.tar.bz2 -C /usr/share/themes/Moko/gtk-2.0<br />
rm openmoko-mediaplayer-theme.tar.bz2<br />
<br />
If you want a basic image viewer, have a look at the one from the gpe suite:<br />
<br />
opkg install gpe-icons <br />
opkg install gpe-gallery<br />
<br />
To obtain the standard web browser, use:<br />
<br />
opkg install openmoko-browser2<br />
<br />
An alternative browser, minimo, offers many more features. <br />
First download and unpack it on your GNU/Linux host:<br />
<br />
wget http://www.ginguppin.de/files/minimo.tar.bz2<br />
tar jvxf minimo.tar.bz2<br />
<br />
Copy it over to the FreeRunner:<br />
scp minimo_* root@192.168.0.202:/tmp<br />
<br />
Then on the FreeRunner:<br />
opkg install /tmp/minimo_0.02\+cvs20070626-r0_armv4t.ipk<br />
<br />
You'll probably also want to [[Switching Keyboards|change the keyboard]] including the [[Switching Keyboards#How_to_add_a_keyboard_toggle_button|keyboard toggle applet]]<br />
<br />
=== Importing contacts ===<br />
<br />
If you can export your contacts to VCard format, either multiple files or single file containing all of them, you may use the script on [[Import Vcf Contacts]] page to bring them to Neo.<br />
<br />
==The next steps==<br />
<br />
Congratulations for setting up your Neo FreeRunner. There are many more ressources to help free your phone: <br />
<br />
===Customize the interface===<br />
home screen clock, keyboard<br />
<br />
The stock [[Openmoko2007.2]] image flashed onto the Neo FreeRunner is really just the bare bones. For example, you don't have the clock and the quick-launch icons showing. Here's how you can change that:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
If you rather have a regular clock instead of the digital one, do this instead:<br />
<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/reduced false<br />
# dbus-launch gconftool-2 -t boolean -s /desktop/poky/interface/digital_clock false<br />
# /etc/init.d/xserver-nodm restart<br />
<br />
REMOVE CLICK SOUND VIA /etc/pulse/session<br />
<br />
More information about today screen customization at [[Today/2007.2]].<br />
<br />
Also, if you prefer having a full keyboard, using matchbox's qwerty keybord, see [[Switching_Keyboards#Matchbox_keyboard|these instructions]]. Then you may also see [http://lists.openmoko.org/pipermail/community/2008-July/021296.html these], which describe a way to add an applet allowing the showing/hiding of that keyboard.<br />
<br />
===Use the GPS===<br />
<br />
Simple guide to get going with '''GPS''':<br />
<br />
# opkg install gpsd<br />
# echo "GPS_DEV=\"/dev/ttySAC1\"" > /etc/default/gpsd<br />
<br />
and restart gpsd, the gps daemon, with<br />
<br />
# /etc/init.d/gpsd restart<br />
<br />
To test GPS, you can use agpsui:<br />
<br />
# opkg install openmoko-agpsui<br />
<br />
For a nice map, try tangoGPS:<br />
<br />
# opkg install http://www.tangogps.org/downloads/tangogps_0.9.2-r1_armv4t.ipk<br />
<br />
There were critical [[GPS Problems]] earlier that are largely fixed in newest kernels, see the instructions above to install the updates. More information is on the [[GPS]] page.<br />
<br />
===Play with WLAN, GPRS and Bluetooth===<br />
<br />
There are plenty of development opportunities to integrate these functions in the OpenMoko software.<br />
<br />
'''WLAN''': See [[Wireless Networking]]<br />
<br />
'''GPRS''': See [[Manually using GPRS]]<br />
<br />
'''Bluetooth''': See [[Manually using Bluetooth]]<br />
<br />
=== Welcome in the community ===<br />
<br />
The release of the Freerunner in the summer 2008 has led the community into a new period of rapid growth. The ressources available are summarized on the [[Openmoko:Community_Portal]]. These are always exciting and interesting times to live in when the balance between Chaos and Order tilts towards change.<br />
<br />
As an entry point, the [[http://lists.openmoko.org/pipermail/community/ openmoko community mailing list]] is perhaps the most active. As of July 2008, its volume amounts to dozens of messages per day. Openmoko people are there too. You may ask for help on the [[https://lists.openmoko.org/mailman/listinfo/support support mailing list]].<br />
<br />
Or if you use IRC, there is always a good group in the channel #openmoko on FreeNode.<br />
<br />
The links on the top-right of this page lead to the sister sites in the Openmoko community:<br />
* Home and Wiki lead to the same Main Page on the wiki. It needs cleaning, we know...<br />
* Doc leads to the bug ''Trac''king system.<br />
* Planet goes to the collection of Openmoko-relatd blogs.<br />
* Projects is the GForge, free hosting for application developers.<br />
* Lists is the listing of all the public mailing lists on lists.openmoko.org. <br />
<br />
== Annotated references ==<br />
<br />
* The [http://quickstart.openmoko.org/ Quickstart guide]. Largely used as a basis for this page.<br />
* [[Neo FreeRunner]]. The top-level view of the specifications.<br />
* [[Neo FreeRunner GTA02 Hardware]]. The detailed specifications.<br />
* [[GTA02 Openness]]. Ultimate chip-level specifications, data sheets and hardware documentation.<br />
* [[Distributions]]. Strengths and weaknesses of the various distributions available for the Neo.<br />
* [[Getting Started FAQ]]. Answers.<br />
* [[GTA02_FAQ]]. More answers<br />
<br />
To search this wiki with Google, use the following search term:<br />
<br />
<search term> site:http://wiki.openmoko.org/wiki/<br />
<br />
<br />
[[Category:GTA02 Hardware]]<br />
[[Category:Guides]]</div>Thewtexhttp://openmoko.org/wiki/Neo_FreeRunnerNeo FreeRunner2008-08-02T22:48:32Z<p>Thewtex: /* FreeRunner is released !! */</p>
<hr />
<div>{{Languages|Neo FreeRunner}}<br />
{{Gta02menu}}<br />
<br />
The '''Neo FreeRunner''' (internal codename GTA02) is the second phone designed to run [[Openmoko]] software and is the direct descendant of the earlier [[FIC]] [[Neo1973]]. Hardware specs are at [[Neo FreeRunner GTA02 Hardware]].<br />
<br />
== FreeRunner is released! ==<br />
<br />
The FreeRunner can be purchased from the [http://www.openmoko.com Online Store] as of July 3, 2008. The software available on the phone makes it suitable for power users and developers only, it is not ready for the general consumer yet. Email announcements and found on the [http://lists.openmoko.org/mailman/listinfo/announce announce mailing list]. For frequently asked questions please check [[FAQ]]. Approximately twice a month an Openmoko team member writes an update to the project at [[Community Updates]].<br />
<br />
== Intended use and users ==<br />
<br />
The Neo FreeRunner is a Linux-based touch screen smart phone ultimately aimed at general consumer use as well as Linux desktop users and software developers.<br />
<br />
Linux users and software developers will appreciate the total freedom they have to use and design software for the FreeRunner.<br />
<br />
General phone users will eventually appreciate the high spec and performance of the phone and the wide range of free software packages expected to emerge. These will allow users to make the maximum use of the hardware and tailor it to their particular needs. Since lauch, the pace of software tweaks and improvements has increased as both the Openmoko team developers and the wider community work together.<br />
<br />
== Specifications ==<br />
<br />
The specs share some features with the previous [[Neo1973]] such as:<br />
<br />
* A very high resolution touch screen (1.7" x 2.27" - 43mm x 58mm) 480x640 pixels<br />
* 128MB SDRAM memory to allow operation of many applications at once<br />
* Internal GPS module for map and tracking programs<br />
* Bluetooth for local data exchange<br />
* Physical appearance will be the same as the Neo1973. See openmoko.com for more.<br />
<br />
With the following additional features:<br />
<br />
* 802.11 b/g WiFi for fast web browsing and data transfer<br />
* A faster 400Mhz processor (up from 266MHz)<br />
* 2 3D accelerometers so that the phone can know its orientation for example switching to landscape mode automatically<br />
* 2 LEDs illuminating the two buttons on the rim of the case (one bi color [blue|orange] behind the power button, 1 uni color [red] behind the aux button)<br />
* Tri-band GSM and GPRS for North America (850/1800/1900 Mhz) and the rest of the world (900/1800/1900 Mhz)<br />
* USB Host function with 500mA power allowing you to power USB devices for short periods (will drain the FreeRunner battery faster)<br />
<br />
A full list of the hardware specs and components of the Neo FreeRunner (internal codename GTA02xxx) can be found at [[Neo FreeRunner GTA02 Hardware]].<br />
<br />
A comparison between Neo 1973 and Neo FreeRunner is available at [[Neo1973: GTA01Bv4 versus GTA02 comparison]].<br />
<br />
== What is the price? ==<br />
<br />
The device is being sold through multiple channels (including [http://www.openmoko.com Openmoko.com]), the official price has been set to 399$ but it could slightly vary in some countries (due to taxes).<br />
<br />
== How usable is it? ==<br />
<br />
As the hacker's dream toy: it is fully functional. As a GSM phone: some people have been using it to receive and place phone calls and SMS for months, but with currently shipping software the battery life is only one day. As a GPS device: critical bugs have been ironed out and there is nice software to know where you are using OpenStreetMap. As an alarm clock, media player, internet browser, game console, email reader and contacts manager: software is not stable yet.<br />
<br />
Please see the [[FreeRunner: Selected Blogs and Articles]] to get more reviews. The [[Freerunner Hardware Issues]] page may also be of interest.<br />
<br />
== Other Frequently Asked Questions ==<br />
*[[Neo FreeRunner (GTA02) FAQ]]<br />
<br />
== External links ==<br />
*[http://www.brax4your.net/omoko 3D model of Neo FreeRunner, click and drag to rotate]<br />
<br />
[[Category:GTA02 Hardware| ]]</div>Thewtexhttp://openmoko.org/wiki/Neo_FreeRunnerNeo FreeRunner2008-08-02T22:48:16Z<p>Thewtex: /* How usable it is? */</p>
<hr />
<div>{{Languages|Neo FreeRunner}}<br />
{{Gta02menu}}<br />
<br />
The '''Neo FreeRunner''' (internal codename GTA02) is the second phone designed to run [[Openmoko]] software and is the direct descendant of the earlier [[FIC]] [[Neo1973]]. Hardware specs are at [[Neo FreeRunner GTA02 Hardware]].<br />
<br />
== FreeRunner is released !! ==<br />
<br />
The FreeRunner can be purchased from the [http://www.openmoko.com Online Store] as of July 3, 2008. The software available on the phone makes it suitable for power users and developers only, it is not ready for the general consumer yet. Email announcements and found on the [http://lists.openmoko.org/mailman/listinfo/announce announce mailing list]. For frequently asked questions please check [[FAQ]]. Approximately twice a month an Openmoko team member writes an update to the project at [[Community Updates]].<br />
<br />
== Intended use and users ==<br />
<br />
The Neo FreeRunner is a Linux-based touch screen smart phone ultimately aimed at general consumer use as well as Linux desktop users and software developers.<br />
<br />
Linux users and software developers will appreciate the total freedom they have to use and design software for the FreeRunner.<br />
<br />
General phone users will eventually appreciate the high spec and performance of the phone and the wide range of free software packages expected to emerge. These will allow users to make the maximum use of the hardware and tailor it to their particular needs. Since lauch, the pace of software tweaks and improvements has increased as both the Openmoko team developers and the wider community work together.<br />
<br />
== Specifications ==<br />
<br />
The specs share some features with the previous [[Neo1973]] such as:<br />
<br />
* A very high resolution touch screen (1.7" x 2.27" - 43mm x 58mm) 480x640 pixels<br />
* 128MB SDRAM memory to allow operation of many applications at once<br />
* Internal GPS module for map and tracking programs<br />
* Bluetooth for local data exchange<br />
* Physical appearance will be the same as the Neo1973. See openmoko.com for more.<br />
<br />
With the following additional features:<br />
<br />
* 802.11 b/g WiFi for fast web browsing and data transfer<br />
* A faster 400Mhz processor (up from 266MHz)<br />
* 2 3D accelerometers so that the phone can know its orientation for example switching to landscape mode automatically<br />
* 2 LEDs illuminating the two buttons on the rim of the case (one bi color [blue|orange] behind the power button, 1 uni color [red] behind the aux button)<br />
* Tri-band GSM and GPRS for North America (850/1800/1900 Mhz) and the rest of the world (900/1800/1900 Mhz)<br />
* USB Host function with 500mA power allowing you to power USB devices for short periods (will drain the FreeRunner battery faster)<br />
<br />
A full list of the hardware specs and components of the Neo FreeRunner (internal codename GTA02xxx) can be found at [[Neo FreeRunner GTA02 Hardware]].<br />
<br />
A comparison between Neo 1973 and Neo FreeRunner is available at [[Neo1973: GTA01Bv4 versus GTA02 comparison]].<br />
<br />
== What is the price? ==<br />
<br />
The device is being sold through multiple channels (including [http://www.openmoko.com Openmoko.com]), the official price has been set to 399$ but it could slightly vary in some countries (due to taxes).<br />
<br />
== How usable is it? ==<br />
<br />
As the hacker's dream toy: it is fully functional. As a GSM phone: some people have been using it to receive and place phone calls and SMS for months, but with currently shipping software the battery life is only one day. As a GPS device: critical bugs have been ironed out and there is nice software to know where you are using OpenStreetMap. As an alarm clock, media player, internet browser, game console, email reader and contacts manager: software is not stable yet.<br />
<br />
Please see the [[FreeRunner: Selected Blogs and Articles]] to get more reviews. The [[Freerunner Hardware Issues]] page may also be of interest.<br />
<br />
== Other Frequently Asked Questions ==<br />
*[[Neo FreeRunner (GTA02) FAQ]]<br />
<br />
== External links ==<br />
*[http://www.brax4your.net/omoko 3D model of Neo FreeRunner, click and drag to rotate]<br />
<br />
[[Category:GTA02 Hardware| ]]</div>Thewtexhttp://openmoko.org/wiki/DistributionsDistributions2008-08-02T19:49:43Z<p>Thewtex: /* ASU - April/August Software Update */</p>
<hr />
<div>Openmoko distributions are similar to any other Linux distribution, they are complete operating systems with user applications. You can choose to install any of these on your phone, you can even have multiboot system with two distributions installed.<br />
<br />
Openmoko distributions are designed to run on various mobile devices, with the primary aim of Openmoko Inc.'s [[Neo 1973]] and [[Neo FreeRunner]] phones. While the Openmoko distributions will run on [[Supported hardware|other mobile devices]] too, some other software distributions will also run on the Openmoko Inc. phones.<br />
<br />
For downloads see [[Latest Images]], for installation instructions see [[Flashing the Neo FreeRunner]].<br />
<br />
Distribution descriptions are from Mickey Lauer's [http://www.vanille-media.de/site/index.php/2008/06/28/gtk-asu-fso-tmtla/ GTK, ASU, FSO, TMTLA!].<br />
<br />
To be technically precise, 2007.2, ASU, FSO and SHR of these are not directly independent distributions, but different 'release targets'.<br><br />
<br />
They are built out of different branches of the openembedded metadistribution source tree, e.g. 2007.2 and ASU are to each other like Ubuntu Gutsy is to Kubuntu Hardy.<br><br />
<br />
One should only use feeds from packages of the same source-branch, else 'stuff will break', similar to like using .debs from Hardy on a Gutsy base system.<br />
<br />
Also note that there is NO supported upgrade path between these at the moment, thus updating by changing the feeds will most likely end in broken packages or even a unbootable system.<br><br />
<br />
Thus please always use dfu to switch between the different 'distributions' for now or install them in a dual-boot setup (e.g. via sdcard or NFS).<br />
<br />
== Openmoko Inc. driven release targets ==<br />
<br />
=== Openmoko 2007.2 ===<br />
<br />
Openmoko2007.2 is for people who are familiar with the [http://www.gnome.org/mobile/ GNOME Mobile] initiative and who want to write applications that run on multiple devices running (parts of) GNOME Mobile. This includes Maemo, which runs on the Nokia Internet Tablets. The strength of the GTK+ stack is a UI and programming environment similar to what you run on your Linux desktop, if you’re into GNOME. The GTK+ has PIM applications based on the Evolution Data Server and runs the gsmd phone server. Although you can use them, the applications are still pretty rough und unfinished. Some people have problems with the stability of the phone server.<br />
<br />
* [[Openmoko2007.2]]<br />
* Availabilty: [http://buildhost.openmoko.org/daily/ Official Buildhost] and [[MokoMakefile]] support for development builds<br />
* Download: [http://buildhost.openmoko.org/daily/freerunner/ Releases are labeled "openmoko-devel-image" ]<br />
<br />
This is the base-system which is installed on Freerunner when it leaves the factory.<br />
<br />
2007.2 development driven by openmoko inc. has basically stopped and resources are allocated in favor of asu, while the community currently does the effort to 'rescue' the 2007.2 telephony apps and pull them to the future middleware from FSO (see SHR).<br />
thus patches are still welcome, especially if they help development of SHR.<br />
<br />
=== ASU - April/August Software Update ===<br />
<br />
ASU - April/August Software Update - has been started to integrate the [http://trolltech.com/products/qtopia Qtopia] stack - on X11 - with a new set of graphically pleasing applications based on the Enlightenment Foundation Libraries. ASU is the internal name and it will be known as Om 2008.8 upon its scheduled release on August 8, 2008. Qtopia is a more mature product than the GNOME Mobile stack and you can expect all the standard feature phone applications to work in a solid way. It uses the Qtopia phone server. Since - contrary to standard Qtopia - it does not directly use the framebuffer, non-Qt applications can safely share the screen with Qt applications.<br />
<br />
* [[ASU]]<br />
* Download: [http://buildhost.openmoko.org/daily/freerunner/ Releases are labeled "openmoko-qtopia-x11" ]<br />
<br />
=== FSO - freesmartphone.org ===<br />
<br />
FSO has been started to overcome the deficiencies both of the 2007.2 and the ASU stack, namely to come up with an extensible framework that gives developers the infrastructure they need to create solid and exciting software products based on the Openmoko platform. An infrastructure that supports competing UIs while we can collaborate on developing services, making the framework strong . Here, the focus is on stable highlevel services that you can access from whatever language or UI that supports [http://dbus.freesmartphone.org/ dbus]. People report that despite its infancy, e.g. the phone server part in FSO is already more solid than anywhere else.<br />
<br />
It is not really intended as future release-target, but used as a 'vessel' or 'container' for the development and testing of the new, future middleware.<br><br />
The applications installed are intended as test-tools for the new middleware and not as fully featured, end user oriented applications. (even if it looks that way sometimes)<br />
<br />
* [[FSO]]<br />
* [http://trac.freesmartphone.org:8000/trac-example Development tracker]<br />
* [http://downloads.openmoko.org/framework/milestone2/ Download milestone 2]<br />
* [http://freesmartphone.org freesmartphone.org]<br />
<br />
== Openmoko Community driven release targets ==<br />
<br />
=== SHR - Stable Hybrid Release ===<br />
<br />
Stable Hybrid Release, a combination of the middleware from FSO, some of the 2007.2 GTK software (telephony-ui, pim), and the ASU that provides all of the functionality of the 2007.2 software, but with the stability of the FSO.<br />
<br />
* [[Stable Hybrid Release]]<br />
<br />
== Non-Openmoko distributions ==<br />
<br />
These are not Openmoko (and OE) based distributions. These are an alternatives you can run on your Openmoko phones.<br />
<br />
=== Qtopia ===<br />
<br />
The Qtopia distribution from [http://www.trolltech.com Trolltech], it aims to provide a ready-to use image for Openmoko devices. <br />
<br />
* [[Qtopia]]<br />
* Download: [http://www.qtopia.net/modules/mydownloads/viewcat.php?cid=6 Qtopia.net]<br />
<br />
=== Debian ===<br />
<br />
Debian Linux, the whole distribution, on a mobile phone.<br />
<br />
* [[Debian]]<br />
<br />
== Features by distribution/release target ==<br />
<br />
=== Connectivity ===<br />
<br />
{| border=1 width=100% |<br />
| width=14%| || width=14%|2007.2 || width=14%|FSO || width=14%|ASU || width=14%|SHR || width=14%|Qtopia || Debian<br />
|-<br />
| Telephony || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || N/A || style="background:lightgreen;" | Yes || ??<br />
|-<br />
| SMS || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || N/A || style="background:lightgreen;" | Yes || ??<br />
|-<br />
| GPRS || Not through UI || Not through UI || Not through UI || N/A || Not through UI || ??<br />
|-<br />
| WiFi || style="background:lightgreen;" | Yes || Not through UI || style="background:lightgreen;" | Yes || N/A || Not through UI ||style="background:lightgreen;" | Yes<br />
|-<br />
| VoIP || ?? || ?? || ?? || ?? || ?? || ??<br />
|-<br />
| Bluetooth || style="background:lightgreen;" | Yes || No || style="background:lightgreen;" | Yes || N/A || style="background:lightgreen;" | Yes || ??<br />
|-<br />
| GPS || style="background:lightgreen;" | Yes (1) || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes (1) || N/A || No || ??<br />
|-<br />
|}<br />
<br />
=== User Interaction ===<br />
<br />
{| border=1 width=100% |<br />
| width=14%| || width=14%|2007.2 || width=14%|FSO || width=14%|ASU || width=14%|SHR || width=14%|Qtopia || Debian<br />
|-<br />
| Stylus friendly || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || N/A || style="background:lightgreen;" | Yes || ??<br />
|-<br />
| Finger friendly || Partially || Partially || No || N/A || style="background:lightgreen;" | Yes || ??<br />
|-<br />
| Accelerometer || No || No || No || N/A || No || ??<br />
|-<br />
|}<br />
<br />
=== Applications ===<br />
<br />
{| border=1 width=100% |<br />
| width=14%| || width=14%|2007.2 || width=14%|FSO || width=14%|ASU || width=14%|SHR || width=14%|Qtopia || Debian<br />
|-<br />
| Terminal || Basic(2) || style="background:lightgreen;" | Yes || ?? || N/A || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes<br />
|-<br />
| PIM || style="background:lightgreen;" | Yes || No || style="background:lightgreen;" | Yes || N/A || style="background:lightgreen;" | Yes || ??<br />
|-<br />
| Phonebook || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || N/A || style="background:lightgreen;" | Yes || ??<br />
|-<br />
| Dialer || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || N/A || style="background:lightgreen;" | Yes || ??<br />
|-<br />
|}<br />
<br />
=== Toolkits / Runtimes ===<br />
{| border=1 width=100% |<br />
| width=14%| || width=14%|2007.2 || width=14%|FSO || width=14%|ASU || width=14%|SHR || width=14%|Qtopia || Debian<br />
|-<br />
| GTK+ || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || No || ??<br />
|-<br />
| QT/Qtopia || No || style="background:lightgreen;" | Yes? || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes? || style="background:lightgreen;" | Yes || ??<br />
|-<br />
| Middleware || gsmd/neod || freesmartphone.org || qtopia-x11 || freesmartphone.org || qtopia || ??<br />
|-<br />
| [[Java]] || Jalimo || ? || ? || ? || ? || ??<br />
|-<br />
| [[Python]] || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || style="background:lightgreen;" | Yes || ? || style="background:lightgreen;" | Yes || ??<br />
|-<br />
|}<br />
<br />
<br />
Footnotes:<br />
<br />
(1) works, but need additional software to be installed<br />
<br />
(2) unusable due to lack of certain keyboard characters (unless you [[Switching_Keyboards#Matchbox_keyboard|install matchbox-keyboard]])<br />
<br />
[[Category:Distributions| ]]<br />
[[Category:Documentation]]</div>Thewtexhttp://openmoko.org/wiki/Booting_the_Neo_FreeRunner_from_SD_via_U-BootBooting the Neo FreeRunner from SD via U-Boot2008-07-29T15:34:46Z<p>Thewtex: /* Change your kernel settings */</p>
<hr />
<div>Here are the steps described to boot your system from an SD card. The SD card shares a bus with the GPU, so it may not perform as well, but it is another option.<br />
<br />
{| cellspacing="5" cellpadding="0" style="padding: 2%; margin:0em 0em 1em 0em; border:1px solid #F9D163; background:#FCE9B4; width:100%" <br />
| <br />
Some versions of u-boot (including the one shipped on the first batch of Freerunners) may not work properly for booting from SD card. Daily images on [http://buildhost.openmoko.org/daily/freerunner/ buildhost] with a timestamp of "20080723" or newer should be OK.<br />
<br />
Be careful when flashing a new u-boot to a Neo1973 as there is a risk of bricking your device. This is not a concern for a Freerunner as it contains a backup copy of u-boot in NOR Flash.<br />
|}<br />
<br />
{{Warning | Booting from SDHC may cause problems at this time. }}See [http://thread.gmane.org/gmane.comp.handhelds.openmoko.community/19154/focus=19281| this thread.]<br />
<br />
<br />
== Change your kernel settings ==<br />
<br />
'''Note'''| Since [http://git.openmoko.org/?p=kernel.git;a=commit;h=642cbda5f3b7e7a61512426e1d30a41ab4691123| 2008-07-17] the kernel includes support for ext3 '''and ext2''' filesystems by default. ext2 is recommended because of the finite write life of flash storage. Prior to 2008-07-17, the kernel only came configured with support for ext3. You can check the available filesystems with <br />
<br />
less /proc/filesystems<br />
<br />
Kernel building is supposed to be done through OpenEmbedded. If you use the MokoMakefile open up $OMDIR/openmoko/trunk/oe/packages/linux/linux-gta01/defconfig-2.6.21.6-fic-gta01. If you are building OM-2007.2 open $OEDIR/openembedded/packages/linux/linux-openmoko/defconfig-2.6.22.5-fic-gta01.<br />
<br />
'''''Note:''''' That kernel version may change in future releases.<br />
<br />
Now find the line saying:<br />
<br />
CONFIG_MMC_S3C=m<br />
<br />
and change it to:<br />
<br />
CONFIG_MMC_S3C=y<br />
<br />
If you want to use an ext2 file system on the SD, also find the line saying:<br />
<br />
CONFIG_EXT2_FS=m<br />
<br />
and change it to:<br />
<br />
CONFIG_EXT2_FS=y<br />
<br />
If you're using MokoMakfile, you can clean out your last kernel build (forcing a new build) by running:<br />
<br />
make clean-package-linux-openmoko<br />
<br />
== Acquiring a tarfile rootfs ==<br />
<br />
There are two ways of acquiring an rootfs image as a tar archive. You can either build it on your own using the OpenEmbedded Distribution. Or download it from the openmoko buildhost.<br />
<br />
<br />
=== Possibility 1: Downloading the rootfs/kernel tar from the Openmoko buildhost ===<br />
<br />
Choose and find the rootfs/kernel combo you would like to install at [[Latest Images]].<br />
<br />
=== Possibility 2: Building a tarfile distribution using OpenEmbedded ===<br />
<br />
Another possibility to get a tar archive of your rootfs is to build it on your own with the OpenEmbedded environment.<br />
<br />
To build OM-2007.2 you need to add "tar" to the image types in your ''local.conf'':<br />
<br />
IMAGE_FSTYPES = "jffs2 tar"<br />
<br />
After that build a new image by issuing:<br />
<br />
bitbake openmoko-devel-image<br />
<br />
or if you are using the MokoMakefile: <br />
<br />
make openmoko-devel-image<br />
<br />
After the process finished there will be a ''OpenMoko-....tar'' in the deploy directory, which is your newly created rootfs archive<br />
<br />
<br />
== Prepare the SD card ==<br />
<br />
=== Partioning the SD card ===<br />
<br />
u-boot pre-2008-07-23 can only boot from FAT filesystems; if you update u-boot, you can boot from FAT or ext2.<br />
This example shows how to do an example partition using the fdisk utility. Feel free to use the partitioning utility of your liking for this task.<br />
<br />
fdisk /dev/mmcblk0<br />
<br />
'''''Note:''''' The device file might differ on your system. If you are not sure about it, you may check your kernel message log by calling ''dmesg'' to find the correct device.<br />
<br />
We will now create a 8 mb partition for our kernel and another one for the rootfs which will take up all the remaining space.<br />
<br />
Command (m for help): d<br />
Selected partition 1<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 1<br />
First cylinder (1-983, default 1):<br />
Using default value 1<br />
Last cylinder or +size or +sizeM or +sizeK (1-983, default 983): +8M<br />
Command (m for help): n<br />
Command action<br />
e extended<br />
p primary partition (1-4)<br />
p<br />
Partition number (1-4): 2<br />
First cylinder (18-983, default 18):<br />
Using default value 18<br />
Last cylinder or +size or +sizeM or +sizeK (18-983, default 983):<br />
Using default value 983<br />
Command (m for help): w<br />
The partition table has been altered!<br />
Calling ioctl() to re-read partition table.<br />
Syncing disks.<br />
<br />
=== Formatting the SD card ===<br />
<br />
Just issue the following command to create at FAT filesystem:<br />
<br />
mkfs.vfat /dev/mmcblk0p1<br />
<br />
Note: if you do not have mkfs.vfat you must find and install the "dosfstools" package. This package does not seem to be in the official feeds, but an unofficial build may be downloaded from http://members.shaw.ca/mmontour/neo/dosfstools_2.11-r0_armv4t.ipk<br />
<br />
<br />
The second partition is about to be formatted with ext3 (for ext2 to work you need to make sure you compiled the kernel with the correct configuration):<br />
<br />
mkfs.ext3 /dev/mmcblk0p2<br />
<br />
== Populate SD card ==<br />
<br />
Your sd card is now ready to be filled up with the rootfs and the needed kernel to boot.<br />
<br />
Mount the second partition of your SD card somewhere and put the image on it:<br />
<br />
mount /dev/mmcblk0p2 /mnt/moko<br />
tar -C /mnt/moko/ -xzvf openmoko-devel-image-fic-gta01-20070313022035.rootfs.tar.gz<br />
<br />
'''''Note:''''' As always in this guide the device name as well as the rootfs name needs to be adjusted to your device and filename structure<br />
<br />
The next step is to mount the first partition of the sd card and install the kernel on it.<br />
<br />
mount /dev/mmcblk0p1 /mnt/mokokernel<br />
cp uImage-fic-gta01-latest.bin /mnt/mokokernel/uImage.bin<br />
<br />
Make sure your kernel is called ''uImage.bin'' after copying it to the card.<br />
<br />
Unmount both the rootfs partition and the kernel partition and make sure all remaining buffers are written to it:<br />
<br />
umount /mnt/moko<br />
umount /mnt/mokokernel<br />
sync<br />
<br />
== Add uboot boot entry ==<br />
Depending on the revision of the phone and the partition type (ext2/ext3) you are using, it might be necessary to add an entry to the bootmenu to be able to boot the system off your SD card.<br />
If you are using a Freerunner and have created an FAT kernel/ext2 rootfs partition you should be able to boot from the card right out of the box, because a boot menu entry for this should already exist in the NOR/NAND boot menu.<br />
In any other case you should at least make sure the needed entry exists in your menu before proceeding.<br />
You will need to enter the uboot shell of the NAND boot menu for this. A description on how to connect to the uboot loader shell can be found in this article: [[Uboot#Bootloader_prompt]]. Details on howto get into the NAND boot menu can be found [[Booting#Log_into_U-Boot_in_the_NAND_Flash|here]].<br />
<br />
After you read these two references you should be connected to your NAND uboot shell right now. The first thing to do is to set the boot menu timeout to a really high value. Unfortunately if you don't do this, the boot loader will continue booting after the default timeout (60 seconds) even if you are connected to the uboot shell. Just enter the following command to the menu prompt:<br />
<br />
setenv boot_menu_timeout 99999<br />
<br />
This will set the timeout to 99999 seconds which should definitely enough time for us finish whatever work we want accomplish in the boot loader shell.<br />
<br />
Now we will make sure a appropriate menu item for booting from sd exists, or create it otherwise. You can print the defined boot loader environment by issuing the command: <br />
<br />
printenv<br />
<br />
If it shows a line beginning with ''menu_'' followed by the commands which are just to follow in this guide, you do not need to create a new menu entry. In any other case please proceed with the following.<br />
<br />
Please make sure you are using the correct configuration based on the decisions you made earlier. For more information on the uboot prompt, see <br />
help <br />
help <command><br />
and [[Bootloader]] and [[Bootloader commands]].<br />
<br />
{{Note| The backslashes (\) are important for uboot to set the command as new environment variable (menu_9) instead of just executing them as soon as enter is pressed.}}<br />
<br />
{{Note| Copy and paste may not work. To get copy/paste working, you will need the [[NeoCon|neocon]] terminal emulator and add a per-character delay. Otherwise, you will have to type in the commandline manually.}}<br />
<br />
It is important to distinguish between FAT or ext2 kernel partitions and ext2 or ext3 root partitions at this point. <br />
<br />
'''Boot entry for FAT kernel+ext3 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext3): setenv bootargs \${bootargs_base} rootfstype=ext3 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for FAT kernel+ext2 rootfs partitions:'''<br />
<br />
setenv menu_9 Boot from microSD (FAT+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; fatload mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
<br />
'''Boot entry for ext2 kernel+ext2 rootfs partitions: (requires newer u-boot)'''<br />
<br />
setenv menu_2 Boot from microSD part2 (ext2+ext2): setenv bootargs \${bootargs_base} rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5 \${mtdparts} ro\; mmcinit\; ext2load mmc 1 0x32000000 \${sd_image_name}\; bootm 0x32000000<br />
You are nearly done. Just issue a<br />
<br />
printenv<br />
<br />
and verify that your newly created entry is correctly displayed (This time the backslashes are not displayed anyone).<br />
<br />
If everything looks fine enter<br />
<br />
saveenv<br />
<br />
into the prompt and press enter. The new configuration should now be saved to the NAND.<br />
<br />
Shutdown your neo with the following command:<br />
<br />
neo1973 power-off<br />
<br />
After you restarted the Neo and got back to the NAND boot menu you should be able to select your newly created menu entry and successfully boot into the rootfs from your SD card.<br />
<br />
== Appendix ==<br />
<br />
=== Boot from SDHC ===<br />
<br />
{{Note|the following text was written for the Neo1973. SDHC and SD should both work in a Freerunner if you have u-boot from 2008-07-23 or later.}}<br />
<br />
As SDHC is currently not supported in u-boot you can't use the Booting from SD guide.<br />
But there's a kind of workaround that is a good option to have at least your rootfs on the microSDHC:<br />
<br />
First you can follow Step 1 to get an kernel-image with mmc- and ext2-support. But instead of copying the image to the rootfs you will have to flash it to the Neo's internal NAND-Flash (using [[Dfu-util]]).<br />
Now you can continue with Step 2 (like mentioned before you do not have to copy your uImage to the rootfs) and follow the instructions to Step 3.<br />
Instead of the setenv commands in Step 3 you have to enter the following:<br />
<br />
GTA01Bv4 # setenv menu_5 Boot from SDHC: setenv bootargs root=/dev/mmcblk0p1 console=tty0 rootdelay=5 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
And that's it!<br />
Now you can use the newly created menu option "Boot from SDHC" to boot the internal kernel, using the root-filesystem on the microSDHC.<br />
<br />
=== Autoboot from SDHC ===<br />
<br />
Maybe you want to Boot automatically from SDHC: <br />
Set a new Bootmenu Entry for booting from NAND first<br />
<br />
GTA01Bv4 # setenv menu_6 Boot from NAND: setenv bootargs \${bootargs_base} \${mtdparts}\; nand read.e 0x32000000 kernel\; bootm 0x32000000<br />
GTA01Bv4 # saveenv<br />
<br />
then Power-off, and enter the Bootmenu to test the new Entry.If you can boot from NAND, shutdown, enter Boot menu, connect to bootloader and set the (auto)bootcmd for boot from SDHC:<br />
<br />
GTA01Bv4 # setenv bootcmd setenv bootargs root=/dev/mmcblk0p1 rootdelay=10 console=tty0 neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash)\; nand read.e 0x32000000 kernel\; bootm 0x32000000 <br />
GTA01Bv4 # saveenv<br />
<br />
Now you boot from SDHC everytime you press the Power-Button or reboot and if you like to boot from NAND -just use the bootmenu.<br />
<br />
<br />
=== Fixing udev automount ===<br />
<br />
Udev automatically mounts the SD Card in /media/mmcblk0p1/ you can disable this with<br />
<br />
echo /dev/mmcblk >> /etc/udev/mount.blacklist<br />
<br />
=== Remarks on Kernel Parameters ===<br />
<br />
==== loglevel ====<br />
<br />
Some people suggested adding:<br />
<br />
loglevel=8<br />
<br />
to the kernel command line. This makes the boot process extremely slow because <br />
the framebuffer (the neo display in text mode) has to print out tons of lines of<br />
debug messages like:<br />
<br />
s3c2410-sdi s3c2410-sdi: ......<br />
mmc0: ....<br />
<br />
{{Languages|Booting_from_SD}}<br />
<br />
[[Category:Guides]]<br />
[[Category:Flashing Openmoko]]<br />
[[Category:Documentation]]<br />
[[Category:System Developers]]</div>Thewtexhttp://openmoko.org/wiki/Talk:Flashing_the_Neo_FreeRunnerTalk:Flashing the Neo FreeRunner2008-07-28T04:40:32Z<p>Thewtex: </p>
<hr />
<div>There is another page like this [[Flashing Openmoko]] They should be merged [[User:Thewtex|thewtex]] 05:44, 21 July 2008 (UTC)<br />
<br />
<br />
<br />
So, where are the u-boot images? --[[User:Gero|Gero]] 21:35, 27 July 2008 (UTC)<br />
<br />
The u-boot images are found with the daily builds. See Freerunner/ASU daily builds in [[Latest Images]]. '''Note''' the file names are ''wrong''. If you look through the dates, they all seem to have the same file names indicating version and git commit hash. However, use the latest build, and you can check the true version by booting into u-boot, connecting to u-boot, and issuing the 'version' command. [[User:Thewtex|thewtex]] 04:40, 28 July 2008 (UTC)</div>Thewtexhttp://openmoko.org/wiki/Neo_alsamixerNeo alsamixer2008-07-27T18:40:57Z<p>Thewtex: trouble shoot link</p>
<hr />
<div>The purpose of this page is to describe the Neo's alsamixer settings.<br />
<br />
===Run===<br />
To run alsamixer through ssh, run<br />
alsamixer<br />
===Use===<br />
* Esc - exit<br />
* F1 - help<br />
* F2 - info<br />
* F3 - playback controls<br />
* F4 - capture controls<br />
* F5 - all controls<br />
* Tab - toggle view<br />
* Space - toggle capture<br />
* m - toggle mute<br />
* < > - mute left/right<br />
* Up/Down - increase/decrease volume<br />
* Left/Right - channel scroll<br />
<br />
<br />
===Settings Descriptions===<br />
{| border=1 |<br />
| '''Setting''' || '''playback''' or '''capture''' || '''Channels''' (1,2, or toggle) || '''Description'''<br />
|-<br />
| Headphone || Playback || 2 || playback volume on the headphones (headset)<br />
|-<br />
|}<br />
<br />
===Troubleshooting===<br />
See [[Freerunner Hardware Issues#Better alsamixer settings]]<br />
<br />
[[Category:Audio]]</div>Thewtexhttp://openmoko.org/wiki/Neo_alsamixerNeo alsamixer2008-07-27T18:29:30Z<p>Thewtex: first entry</p>
<hr />
<div>The purpose of this page is to describe the Neo's alsamixer settings.<br />
<br />
===Run===<br />
To run alsamixer through ssh, run<br />
alsamixer<br />
===Use===<br />
* Esc - exit<br />
* F1 - help<br />
* F2 - info<br />
* F3 - playback controls<br />
* F4 - capture controls<br />
* F5 - all controls<br />
* Tab - toggle view<br />
* Space - toggle capture<br />
* m - toggle mute<br />
* < > - mute left/right<br />
* Up/Down - increase/decrease volume<br />
* Left/Right - channel scroll<br />
<br />
<br />
===Settings Descriptions===<br />
{| border=1 |<br />
| '''Setting''' || '''playback''' or '''capture''' || '''Channels''' (1,2, or toggle) || '''Description'''<br />
|-<br />
| Headphone || Playback || 2 || playback volume on the headphones (headset)<br />
|-<br />
|}<br />
<br />
<br />
<br />
[[Category:Audio]]</div>Thewtexhttp://openmoko.org/wiki/Neo_alsamixerNeo alsamixer2008-07-27T18:09:44Z<p>Thewtex: help</p>
<hr />
<div>The purpose of this page is to describe the Neo's alsamixer settings.<br />
<br />
To run alsamixer through ssh, run<br />
alsamixer<br />
* Esc - exit<br />
* F1 - help<br />
* F2 - info<br />
* F3 - playback controls<br />
* F4 - capture controls<br />
* F5 - all controls<br />
* Tab - toggle view<br />
* Space - toggle capture<br />
* m - toggle mute<br />
* < > - mute left/right<br />
* Up/Down - increase/decrease volume<br />
* Left/Right - channel scroll<br />
<br />
[[Category:Audio]]</div>Thewtex