<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.openmoko.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Xkr47&amp;feedformat=atom</id>
		<title>Openmoko - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.openmoko.org/api.php?action=feedcontributions&amp;user=Xkr47&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/Xkr47"/>
		<updated>2013-05-18T18:56:18Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot</id>
		<title>U-Boot</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot"/>
				<updated>2007-08-21T21:59:10Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: Added new troubleshooting section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:GTA01-U-Boot.JPG|thumb|300px|u-boot on Neo1973 console]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|u-boot boot splash on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
== Phase0 Quick Start ==&lt;br /&gt;
* Make sure that your phone has had the battery and USB cable removed for at least 30 seconds.&lt;br /&gt;
* Connect the Neo (ie not Debug Board) to a Linux host with the USB cable.&lt;br /&gt;
* Hold in the AUX button on power-up to access the boot menu.&lt;br /&gt;
* Set the console to USB.&lt;br /&gt;
* Connect to /dev/ttyACM0 with a terminal program on the Linux host (you might need to chown uucp.uucp /dev/ttyACM0 )&lt;br /&gt;
* Note that the cdc_acm /dev/ttyACM0 access disappears as soon as the Neo boots, and is replaced by the cdc_ether usb0 network access.&lt;br /&gt;
* You're now at the bootloader prompt.&lt;br /&gt;
* Set the bootdelay uboot environment variable to -1 if you want it to always halt at the bootloader on power-up.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
The GTA01 uses the [http://u-boot.sourceforge.net/ u-boot] bootloader.&lt;br /&gt;
&lt;br /&gt;
More information on u-boot can be found at &lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
Additions to the vanilla u-boot already implemented include: &lt;br /&gt;
* Support for boot from NAND flash using [[S3C2410 Steppingstone]]&lt;br /&gt;
* Support for S3C2410 NAND flash&lt;br /&gt;
* Support for downloading programs via S3C2410 USB Device Controller&lt;br /&gt;
* Support to display bootup logo / status on S3C2410 Framebuffer&lt;br /&gt;
&lt;br /&gt;
However, u-boot still doesn't support many of the features that GTA01 needs, such as&lt;br /&gt;
* Support for reading kernel/initrd from SD/Transflash&lt;br /&gt;
* Support for downloading programs via S3C2410 USB Device Controller&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte]] is working on those issues, and in fact most of them have already been implemented.&lt;br /&gt;
&lt;br /&gt;
== Bootloader source code ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== Bootloader binary ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== Bootloader development ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== Using JTAG to boot from RAM ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating bootable images ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot menu ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot menu by pressing and holding the [[Neo1973 AUX Button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== Using the boot menu ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX Button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== Adding items to the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables. The canonical form is ''menu_&amp;lt;number&amp;gt; &amp;lt;Title&amp;gt;: U-Boot-Commands''&lt;br /&gt;
&lt;br /&gt;
For example the following command will add a boot menu entry that switches to autofast charging and turns off the backlight:&lt;br /&gt;
  setenv menu_6 Autofast-Charge and Backlight Off: neo1973 charger autofast\; neo1973 backlight off&lt;br /&gt;
  saveenv&lt;br /&gt;
&lt;br /&gt;
== Bootloader prompt ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb is used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to wait for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttyACM0. If not, enable the CONFIG_USB_ACM (Device Drivers -&amp;gt; USB support -&amp;gt; USB Modem (CDC ACM) support).&lt;br /&gt;
&lt;br /&gt;
Use your favourite terminal emulator (minicom, cu, zc, screen ...) to access it like any other serial port. If you don't have a favorite, try just: (cu is in the taylor-uucp package)&lt;br /&gt;
 cu -l /dev/ttyACM0&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
 # lsusb -d 1457:5119&lt;br /&gt;
 Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&lt;br /&gt;
Second, lets see some more details about the available endpoints and configurations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== Auto-boot ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== Environment ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
neo1973 udc pullup (on|off) - switch pull-up on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What's the udc?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Timeouts =====&lt;br /&gt;
&lt;br /&gt;
The boot menu timeout can be changed using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setenv boot_menu_timeout=[seconds?]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, by changing bootdelay you can have more time to take control of u-boot:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setenv bootdelay=[seconds]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz clock =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The old hardware (Phase 0 - GTA01Bv3) only runs stable at 266MHz if you do not attach anything (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== TFTP on QT2410 ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Device Firmware Upgrade ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]]. This can be useful to&lt;br /&gt;
load files and kernel for quick testing.&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For information on how to do firmware upgrades, please see [[dfu-util]].&lt;br /&gt;
&lt;br /&gt;
=== Booting files over DFU ===&lt;br /&gt;
&lt;br /&gt;
To load a file at memory address 0x32000000:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfu-util -a 0 -D fileToLoad -R&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, send 'bootm 0x32000000' to u-boot or 'bootelf 0x32000000' if&lt;br /&gt;
its an elf file.&lt;br /&gt;
&lt;br /&gt;
Simple python script that can boot an ELF image - avoiding a ACM bug that breaks on large packets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
cmd1 = &amp;quot;neo backlight off\n&amp;quot;&lt;br /&gt;
cmd2 = &amp;quot;bootelf 0x32000000\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def output(tty, str):&lt;br /&gt;
    for x in str:&lt;br /&gt;
        tty.write(x)&lt;br /&gt;
        tty.flush()&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv) == 2:&lt;br /&gt;
    print &amp;quot;Loading %s...&amp;quot; % sys.argv[1]&lt;br /&gt;
&lt;br /&gt;
    loadfile = &amp;quot;dfu-util -a 0 -D %s -R&amp;quot; % sys.argv[1]&lt;br /&gt;
&lt;br /&gt;
    os.system(loadfile)&lt;br /&gt;
&lt;br /&gt;
    time.sleep(3)&lt;br /&gt;
&lt;br /&gt;
    tty = open(&amp;quot;/dev/ttyACM0&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    output(tty, cmd1)&lt;br /&gt;
    output(tty, cmd2)&lt;br /&gt;
&lt;br /&gt;
    tty.close()&lt;br /&gt;
else:&lt;br /&gt;
    print &amp;quot;Usage: %s elffile&amp;quot; % sys.argv[0]&lt;br /&gt;
    print &amp;quot;&amp;quot;&lt;br /&gt;
    sys.exit(2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== USB connectivity problems ===&lt;br /&gt;
&lt;br /&gt;
I once got errors like this (in dmesg or /var/log/messages) on the host side while connecting the neo in u-boot:&lt;br /&gt;
&lt;br /&gt;
 usb 2-1: device descriptor read/64, error -110&lt;br /&gt;
 usb usb2: Controller not stopped yet!&lt;br /&gt;
&lt;br /&gt;
The problem disappeared at least for me by the command below on the host side. Please note that if you have usb keyboard or mouse then the command might cause trouble.. I only have PS/2 so I couldn't test it.&lt;br /&gt;
&lt;br /&gt;
 rmmod uhci_hcd ; modprobe uhci_hcd&lt;br /&gt;
&lt;br /&gt;
{{Languages|Bootloader}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/USB_Networking</id>
		<title>USB Networking</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/USB_Networking"/>
				<updated>2007-08-11T21:05:18Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: Added steps to run desktop apps on the neo display&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Neo1973 side =&lt;br /&gt;
&lt;br /&gt;
By default Neo1973 has usb0 interface working due to Ethernet gadget (g_ether) compiled into kernel.&lt;br /&gt;
&lt;br /&gt;
= Desktop side =&lt;br /&gt;
&lt;br /&gt;
== Manual method ==&lt;br /&gt;
&lt;br /&gt;
Modprobe usbnet module and configure usb0 interface (as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your eth0 interface is also in the same 'range' (e.g. 192.168.0.105) then you can do the following:&lt;br /&gt;
&lt;br /&gt;
1. ping the Neo with&lt;br /&gt;
 # ping -I usb0 192.168.0.202&lt;br /&gt;
2. add a route to your Neo:&lt;br /&gt;
 # /sbin/route add -host 192.168.0.202/32 dev usb0&lt;br /&gt;
3 log in to the Neo&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
If you don't have the necessary modules to get usb0 going, make sure you have the following kernel options enabled:&lt;br /&gt;
* CONFIG_USB_USBNET&lt;br /&gt;
* CONFIG_USB_NET_CDCETHER&lt;br /&gt;
Both options are available in the Device Drivers -&amp;gt; USB support -&amp;gt; USB Network Adapters. For more info see the [http://www.linux-usb.org/usbnet/ usbnet driver homepage].&lt;br /&gt;
&lt;br /&gt;
== Automatic method ==&lt;br /&gt;
&lt;br /&gt;
Took from [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] post by Marcin 'Hrw' Juszkiewicz.&lt;br /&gt;
&lt;br /&gt;
'''For Debian or similar distros:'''&lt;br /&gt;
Edit /etc/network/interfaces file ():&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
allow-hotplug usb0&lt;br /&gt;
iface usb0 inet static&lt;br /&gt;
        address 192.168.0.200&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.0.0&lt;br /&gt;
        post-up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
        post-up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
        post-up iptables -P FORWARD ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For Red Hat or similar distros'''&lt;br /&gt;
Edit /etc/sysconfig/network-scripts/net.hotplug:&lt;br /&gt;
&lt;br /&gt;
After this statement:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    case $INTERFACE in&lt;br /&gt;
	# interfaces that are registered after being &amp;quot;up&amp;quot; (?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	usb0)&lt;br /&gt;
		ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
		route add 192.168.0.202 usb0&lt;br /&gt;
		iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT&lt;br /&gt;
		iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT&lt;br /&gt;
		exit 0&lt;br /&gt;
	;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For Gentoo or similar distros:''' &lt;br /&gt;
&lt;br /&gt;
* Edit /etc/conf.d/net by adding:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   # Neo1973&lt;br /&gt;
   config_usb0=( &amp;quot;192.168.0.200 netmask 255.255.255.0&amp;quot; )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a new init script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   # cd /etc/init.d&lt;br /&gt;
   # ln -s net.lo net.usb0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now when you connect phone (which has 192.168.0.202 IP) it gets connection to world automatically.&lt;br /&gt;
&lt;br /&gt;
'''For MacOS X:'''&lt;br /&gt;
&lt;br /&gt;
there are no files to edit since hotplugging configuration is done automatically by default. Of course, the interface has been initialized once. Install the AJZaurusUSB driver as described on [[MacOS_X]] and then open System Preferences / Networks which will show the new interface. Configure for Manual DHC with Host address 192.168.0.200 and Gateway 192.168.0.202.&lt;br /&gt;
&lt;br /&gt;
= Connecting to phone =&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;tt&amp;gt;ssh root@192.168.0.202&amp;lt;/tt&amp;gt; with empty password to get into phone.&lt;br /&gt;
&lt;br /&gt;
===SSH Extras===&lt;br /&gt;
&lt;br /&gt;
If you get fed up with typing root@192.168.0.202, on your PC edit /etc/hosts and add an entry for 'phone'&lt;br /&gt;
&lt;br /&gt;
 192.168.0.202 phone&lt;br /&gt;
&lt;br /&gt;
then edit ~/.ssh/config (or create it) and add&lt;br /&gt;
&lt;br /&gt;
 host phone&lt;br /&gt;
 user root&lt;br /&gt;
&lt;br /&gt;
then all you need to do is type &lt;br /&gt;
&lt;br /&gt;
 # ssh phone&lt;br /&gt;
&lt;br /&gt;
You might want to use keys to bypass the login prompt too.&lt;br /&gt;
&lt;br /&gt;
===SSH Keys===&lt;br /&gt;
&lt;br /&gt;
To generate ssh keys for use as a login mechanism type&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
when prompted for a password either hit enter for no password (''not really a good idea'') or enter a password for this key. ssh into the phone and create ~/.ssh&lt;br /&gt;
&lt;br /&gt;
 # mkdir ~/.ssh&lt;br /&gt;
&lt;br /&gt;
then from your PC copy the '''.pub''' file to the phone.&lt;br /&gt;
&lt;br /&gt;
 # scp ~/.ssh/id_rsa.pub phone:.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
You should now be able to ssh directly into the phone.&lt;br /&gt;
&lt;br /&gt;
To disable password logins ('''after setting up key access''') edit /etc/init.d/dropbear and change the following line:&lt;br /&gt;
&lt;br /&gt;
 DROPBEAR_EXTRA_ARGS=&lt;br /&gt;
&lt;br /&gt;
to &lt;br /&gt;
&lt;br /&gt;
 DROPBEAR_EXTRA_ARGS=&amp;quot;-s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You will need to restart dropbear for this to take effect.&lt;br /&gt;
&lt;br /&gt;
===GUI on desktop through SSH===&lt;br /&gt;
&lt;br /&gt;
If you need to get the GUI on the phone onto the desktop via usb, you can use ssh as follows&lt;br /&gt;
&lt;br /&gt;
  ssh -l root -X -v 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Login, and run openmoko-finger-demo for example, and it will open up on the desktop. To get landscape view, just resize the GUI window on the desktop.&lt;br /&gt;
&lt;br /&gt;
===Remote apps on neo===&lt;br /&gt;
&lt;br /&gt;
To get desktop apps to show up on your neo, first log in to the phone&lt;br /&gt;
&lt;br /&gt;
  ssh -l root 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Then once inside, run:&lt;br /&gt;
&lt;br /&gt;
  DISPLAY=:0 xhost +192.168.0.200&lt;br /&gt;
&lt;br /&gt;
After this you can close the ssh session. Back on the desktop computer, run:&lt;br /&gt;
&lt;br /&gt;
  DISPLAY=moko:0 xclock&lt;br /&gt;
&lt;br /&gt;
Note that the xhost command will allow remote applications on 192.168.0.200 to access the X server. It will allow anyone on the desktop machine to access the X server of the neo, including snooping anything you type on it. To disallow remote applications again, run this in the neo:&lt;br /&gt;
&lt;br /&gt;
  DISPLAY=:0 xhost -192.168.0.200&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
{{Languages|USB Networking}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Implemented]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/USB_Networking</id>
		<title>USB Networking</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/USB_Networking"/>
				<updated>2007-08-11T19:02:27Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Manual method */ Removed unnecessary kernel config option CONFIG_USB_NET_CDC_SUBSET&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Neo1973 side =&lt;br /&gt;
&lt;br /&gt;
By default Neo1973 has usb0 interface working due to Ethernet gadget (g_ether) compiled into kernel.&lt;br /&gt;
&lt;br /&gt;
= Desktop side =&lt;br /&gt;
&lt;br /&gt;
== Manual method ==&lt;br /&gt;
&lt;br /&gt;
Modprobe usbnet module and configure usb0 interface (as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your eth0 interface is also in the same 'range' (e.g. 192.168.0.105) then you can do the following:&lt;br /&gt;
&lt;br /&gt;
1. ping the Neo with&lt;br /&gt;
 # ping -I usb0 192.168.0.202&lt;br /&gt;
2. add a route to your Neo:&lt;br /&gt;
 # /sbin/route add -host 192.168.0.202/32 dev usb0&lt;br /&gt;
3 log in to the Neo&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
If you don't have the necessary modules to get usb0 going, make sure you have the following kernel options enabled:&lt;br /&gt;
* CONFIG_USB_USBNET&lt;br /&gt;
* CONFIG_USB_NET_CDCETHER&lt;br /&gt;
Both options are available in the Device Drivers -&amp;gt; USB support -&amp;gt; USB Network Adapters. For more info see the [http://www.linux-usb.org/usbnet/ usbnet driver homepage].&lt;br /&gt;
&lt;br /&gt;
== Automatic method ==&lt;br /&gt;
&lt;br /&gt;
Took from [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] post by Marcin 'Hrw' Juszkiewicz.&lt;br /&gt;
&lt;br /&gt;
'''For Debian or similar distros:'''&lt;br /&gt;
Edit /etc/network/interfaces file ():&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
allow-hotplug usb0&lt;br /&gt;
iface usb0 inet static&lt;br /&gt;
        address 192.168.0.200&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.0.0&lt;br /&gt;
        post-up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
        post-up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
        post-up iptables -P FORWARD ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For Red Hat or similar distros'''&lt;br /&gt;
Edit /etc/sysconfig/network-scripts/net.hotplug:&lt;br /&gt;
&lt;br /&gt;
After this statement:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    case $INTERFACE in&lt;br /&gt;
	# interfaces that are registered after being &amp;quot;up&amp;quot; (?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	usb0)&lt;br /&gt;
		ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
		route add 192.168.0.202 usb0&lt;br /&gt;
		iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT&lt;br /&gt;
		iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT&lt;br /&gt;
		exit 0&lt;br /&gt;
	;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For Gentoo or similar distros:''' &lt;br /&gt;
&lt;br /&gt;
* Edit /etc/conf.d/net by adding:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   # Neo1973&lt;br /&gt;
   config_usb0=( &amp;quot;192.168.0.200 netmask 255.255.255.0&amp;quot; )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a new init script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   # cd /etc/init.d&lt;br /&gt;
   # ln -s net.lo net.usb0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now when you connect phone (which has 192.168.0.202 IP) it gets connection to world automatically.&lt;br /&gt;
&lt;br /&gt;
'''For MacOS X:'''&lt;br /&gt;
&lt;br /&gt;
there are no files to edit since hotplugging configuration is done automatically by default. Of course, the interface has been initialized once. Install the AJZaurusUSB driver as described on [[MacOS_X]] and then open System Preferences / Networks which will show the new interface. Configure for Manual DHC with Host address 192.168.0.200 and Gateway 192.168.0.202.&lt;br /&gt;
&lt;br /&gt;
= Connecting to phone =&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;tt&amp;gt;ssh root@192.168.0.202&amp;lt;/tt&amp;gt; with empty password to get into phone.&lt;br /&gt;
&lt;br /&gt;
===SSH Extras===&lt;br /&gt;
&lt;br /&gt;
If you get fed up with typing root@192.168.0.202, on your PC edit /etc/hosts and add an entry for 'phone'&lt;br /&gt;
&lt;br /&gt;
 192.168.0.202 phone&lt;br /&gt;
&lt;br /&gt;
then edit ~/.ssh/config (or create it) and add&lt;br /&gt;
&lt;br /&gt;
 host phone&lt;br /&gt;
 user root&lt;br /&gt;
&lt;br /&gt;
then all you need to do is type &lt;br /&gt;
&lt;br /&gt;
 # ssh phone&lt;br /&gt;
&lt;br /&gt;
You might want to use keys to bypass the login prompt too.&lt;br /&gt;
&lt;br /&gt;
===SSH Keys===&lt;br /&gt;
&lt;br /&gt;
To generate ssh keys for use as a login mechanism type&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
when prompted for a password either hit enter for no password (''not really a good idea'') or enter a password for this key. ssh into the phone and create ~/.ssh&lt;br /&gt;
&lt;br /&gt;
 # mkdir ~/.ssh&lt;br /&gt;
&lt;br /&gt;
then from your PC copy the '''.pub''' file to the phone.&lt;br /&gt;
&lt;br /&gt;
 # scp ~/.ssh/id_rsa.pub phone:.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
You should now be able to ssh directly into the phone.&lt;br /&gt;
&lt;br /&gt;
To disable password logins ('''after setting up key access''') edit /etc/init.d/dropbear and change the following line:&lt;br /&gt;
&lt;br /&gt;
 DROPBEAR_EXTRA_ARGS=&lt;br /&gt;
&lt;br /&gt;
to &lt;br /&gt;
&lt;br /&gt;
 DROPBEAR_EXTRA_ARGS=&amp;quot;-s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You will need to restart dropbear for this to take effect.&lt;br /&gt;
&lt;br /&gt;
===GUI on desktop through SSH===&lt;br /&gt;
&lt;br /&gt;
If you need to get the GUI on the phone onto the desktop via usb, you can use ssh as follows&lt;br /&gt;
&lt;br /&gt;
  ssh -l root -X -v 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Login, and run openmoko-finger-demo for example, and it will open up on the desktop. To get landscape view, just resize the GUI window on the desktop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
{{Languages|USB Networking}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Implemented]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/U-Boot</id>
		<title>U-Boot</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/U-Boot"/>
				<updated>2007-08-11T18:50:08Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Using usbtty from Linux */ Added linux kernel config option for CDC ACM. Also noted that &amp;quot;cu&amp;quot; is in the taylor-uucp package.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:GTA01-U-Boot.JPG|thumb|300px|u-boot on Neo1973 console]] [[Image:Neo1973 uboot splash closeup.jpg|thumb|300px|u-boot boot splash on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
== Phase0 Quick Start ==&lt;br /&gt;
* Make sure that your phone has had the battery and USB cable removed for at least 30 seconds.&lt;br /&gt;
* Connect the Neo (ie not Debug Board) to a Linux host with the USB cable.&lt;br /&gt;
* Hold in the AUX button on power-up to access the boot menu.&lt;br /&gt;
* Set the console to USB.&lt;br /&gt;
* Connect to /dev/ttyACM0 with a terminal program on the Linux host&lt;br /&gt;
* Note that the cdc_acm /dev/ttyACM0 access disappears as soon as the Neo boots, and is replaced by the cdc_ether usb0 network access.&lt;br /&gt;
* You're now at the bootloader prompt.&lt;br /&gt;
* Set the bootdelay uboot environment variable to -1 if you want it to always halt at the bootloader on power-up.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
The GTA01 uses the [http://u-boot.sourceforge.net/ u-boot] bootloader.&lt;br /&gt;
&lt;br /&gt;
More information on u-boot can be found at &lt;br /&gt;
* http://www.denx.de/wiki/DULG&lt;br /&gt;
* http://www.gumstix.org/tikiwiki/tiki-index.php?page=U-Boot&lt;br /&gt;
* http://linuxdevices.com/articles/AT5085702347.html&lt;br /&gt;
&lt;br /&gt;
Additions to the vanilla u-boot already implemented include: &lt;br /&gt;
* Support for boot from NAND flash using [[S3C2410 Steppingstone]]&lt;br /&gt;
* Support for S3C2410 NAND flash&lt;br /&gt;
* Support for downloading programs via S3C2410 USB Device Controller&lt;br /&gt;
* Support to display bootup logo / status on S3C2410 Framebuffer&lt;br /&gt;
&lt;br /&gt;
However, u-boot still doesn't support many of the features that GTA01 needs, such as&lt;br /&gt;
* Support for reading kernel/initrd from SD/Transflash&lt;br /&gt;
* Support for downloading programs via S3C2410 USB Device Controller&lt;br /&gt;
&lt;br /&gt;
[[User:HaraldWelte]] is working on those issues, and in fact most of them have already been implemented.&lt;br /&gt;
&lt;br /&gt;
== Bootloader source code ==&lt;br /&gt;
&lt;br /&gt;
The current bootloader patches can be found at http://svn.openmoko.org/trunk/src/target/u-boot/patches/. &lt;br /&gt;
&lt;br /&gt;
Untar the sources, apply the patch.  run &amp;quot;make gta01bv3_config&amp;quot; (or gta01bv2_config, or whatever hardware revision you have), run &amp;quot;make&amp;quot;.  You will get a resulting &amp;quot;u-boot.bin&amp;quot; image, which you can directly flash (either using existing bootloader or [[sjf2410-linux]]) into NAND.&lt;br /&gt;
&lt;br /&gt;
== Bootloader binary ==&lt;br /&gt;
&lt;br /&gt;
The latest bootloader binary builds can be found at http://buildhost.openmoko.org/tmp/deploy/images/ .  It should be written to the NAND flash address 0x00000000 (size 0x30000)&lt;br /&gt;
&lt;br /&gt;
== Bootloader development ==&lt;br /&gt;
&lt;br /&gt;
=== QT2410 ===&lt;br /&gt;
If you want to do bootloader development on the QT2410, it's easier to work with a bootloader image that can be downloaded via USB into RAM instead of flashing.&lt;br /&gt;
&lt;br /&gt;
To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the &amp;quot;if 0&amp;quot; in Line 32 into a &amp;quot;if 1&amp;quot;, then recompile with &amp;quot;make&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The resulting &amp;quot;u-boot.bin&amp;quot; is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the [[s3c2410_boot_usb]] program.&lt;br /&gt;
&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
&lt;br /&gt;
Doing bootloader development on the GTA01 is a bit more tricky.  first, we don't have any NOR flash.  Second, there is no other way to boot _but_ from NAND.  Therefore, we also don't have a USB downloader like the QT2410.&lt;br /&gt;
&lt;br /&gt;
The main problem is:  The [[S3C2410 Steppingstone]] unconditionally copies the first 4k of flash into its internal SRAM.   That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this&lt;br /&gt;
&lt;br /&gt;
==== Using JTAG to boot from RAM ====&lt;br /&gt;
&lt;br /&gt;
So how can we boot from RAM? We use JTAG / OpenOCD to&lt;br /&gt;
&lt;br /&gt;
* reset and halt the cpu at PC=0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; reset halt&lt;br /&gt;
target halted in ARM state due to debug request, current mode: Supervisor&lt;br /&gt;
cpsr: 0x400000d3 pc: 0x00000000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download a small piece of code for low-level SDRAM timing initialization (overwrite 4k SRAM of steppingstone)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/foo.bin 0            &lt;br /&gt;
downloaded 332 byte in 0s 21899us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* assert a break point at address 0x33f80000 (which indicates that the low-level code has finished)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; bp 0x33f80000 4 hw&lt;br /&gt;
breakpoint added at address 0x33f80000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* run the code up to the break point&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;gt; Target 0 halted&lt;br /&gt;
target halted in ARM state due to breakpoint, current mode: Supervisor&lt;br /&gt;
cpsr: 0x600000d3 pc: 0x33f80000&lt;br /&gt;
MMU: disabled, D-Cache: disabled, I-Cache: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* download the u-boot RAM image to 0x33f80000&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; load_binary /space/misc/gta01/u-boot.git/u-boot.bin 0x33f80000&lt;br /&gt;
downloaded 135692 byte in 6s 567264us&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* resume processing&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; resume&lt;br /&gt;
Target 0 resumed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the display backlight gets bright and we see the following familiar prompt on the serial console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.1.6 (Jan 13 2007 - 23:44:23)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
*** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv2 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating bootable images ==&lt;br /&gt;
&lt;br /&gt;
u-boot needs bootable images (such as kernels, but also initrd and others) in form of a so-called ''uImage''.  In order to create a ''uImage'' from e.g. a ''vmlinux'' kernel image, you can proceed as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objcopy -O binary -R .note -R .comment -S vmlinux linux.bin&lt;br /&gt;
gzip -9 linux.bin&lt;br /&gt;
u-boot/tools/mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n &amp;quot;Kernel Image QT2410&amp;quot; -d linux.bin.gz uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Boot menu ==&lt;br /&gt;
[[Image:Neo1973 uboot menu.jpg|thumb|400px|u-boot boot menu on Neo1973]]&lt;br /&gt;
&lt;br /&gt;
As of the Phase-0 release, our u-boot version now features an on-screen boot menu.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can access the boot menu by pressing and holding the [[Neo1973 AUX Button]] together with the power button while switching the phone on.&lt;br /&gt;
&lt;br /&gt;
=== Using the boot menu ===&lt;br /&gt;
&lt;br /&gt;
By pressing the [[Neo1973 AUX Button]] you can cycle through the menu items.  Use the ''POWER'' button to select one item.&lt;br /&gt;
&lt;br /&gt;
=== Adding items to the boot menu ===&lt;br /&gt;
&lt;br /&gt;
You can add items to the boot menu by setting environment variables. The canonical form is ''menu_&amp;lt;number&amp;gt; &amp;lt;Title&amp;gt;: U-Boot-Commands''&lt;br /&gt;
&lt;br /&gt;
For example the following command will add a boot menu entry that switches to autofast charging and turns off the backlight:&lt;br /&gt;
  setenv menu_6 Autofast-Charge and Backlight Off: neo1973 charger autofast\; neo1973 backlight off&lt;br /&gt;
&lt;br /&gt;
== Bootloader prompt ==&lt;br /&gt;
&lt;br /&gt;
=== Accessing the bootloader prompt ===&lt;br /&gt;
The bootloader prompt is available either on the serial console (via [[Debug Board]]), or as virtual USB Serial device (USB CDC_ACM).&lt;br /&gt;
Whether the serial port or usb is used depends on the u-boot environment variables '''stdin''', '''stdout''' and '''stderr'''.&lt;br /&gt;
&lt;br /&gt;
Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.&lt;br /&gt;
&lt;br /&gt;
The bootloader is currently configured to wait for three seconds.  If a key press on the '''stdin''' is received within those three seconds, auto-boot is aborted.&lt;br /&gt;
&lt;br /&gt;
==== Using usbtty from Linux ====&lt;br /&gt;
&lt;br /&gt;
Just by connecting the phone in u-boot mode to your Linux pc should make it detect a [[CDC ACM]] device, and you should get a new tty device called /dev/ttyACM0. If not, enable the CONFIG_USB_ACM (Device Drivers -&amp;gt; USB support -&amp;gt; USB Modem (CDC ACM) support).&lt;br /&gt;
&lt;br /&gt;
Use your favourite terminal emulator (minicom, cu, zc, screen ...) to access it like any other serial port. If you don't have a favorite, try just: (cu is in the taylor-uucp package)&lt;br /&gt;
 cu -l /dev/ttyACM0&lt;br /&gt;
&lt;br /&gt;
First, you should try to check whether the USB device shows up in 'lsusb' while you're running in u-boot mode:&lt;br /&gt;
&lt;br /&gt;
 # lsusb -d 1457:5119&lt;br /&gt;
 Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
&lt;br /&gt;
Second, lets see some more details about the available endpoints and configurations:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# lsusb -v -d 1457:5119&lt;br /&gt;
Bus 005 Device 079: ID 1457:5119  &lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            2 Communications&lt;br /&gt;
  bDeviceSubClass         0 &lt;br /&gt;
  bDeviceProtocol         0 &lt;br /&gt;
  bMaxPacketSize0        16&lt;br /&gt;
  idVendor           0x1457 &lt;br /&gt;
  idProduct          0x5119 &lt;br /&gt;
  bcdDevice            0.00&lt;br /&gt;
  iManufacturer           1 OpenMoko, Inc&lt;br /&gt;
  iProduct                2 Neo1973 Bootloader U-Boot 1.2.0-g6c7cac8c-dirty-moko3&lt;br /&gt;
  iSerial                 3 0000000&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           85&lt;br /&gt;
    bNumInterfaces          3&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          4 TTY via USB&lt;br /&gt;
    bmAttributes         0xc0&lt;br /&gt;
      Self Powered&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         2 Communications&lt;br /&gt;
      bInterfaceSubClass      2 Abstract (modem)&lt;br /&gt;
      bInterfaceProtocol      1 AT-commands (v.25ter)&lt;br /&gt;
      iInterface              6 Control Interface&lt;br /&gt;
      CDC Header:&lt;br /&gt;
        bcdCDC               0.6e&lt;br /&gt;
      CDC Call Management:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
        bDataInterface          1&lt;br /&gt;
      CDC ACM:&lt;br /&gt;
        bmCapabilities       0x00&lt;br /&gt;
      CDC Union:&lt;br /&gt;
        bMasterInterface        0&lt;br /&gt;
        bSlaveInterface         1 &lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass        10 CDC Data&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0 &lt;br /&gt;
      iInterface              5 Bulk Data Interface&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              7 USB Device Firmware Upgrade&lt;br /&gt;
Device Status:     0x0001&lt;br /&gt;
  Self Powered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, you can access it using your favourite terminal program.&lt;br /&gt;
&lt;br /&gt;
Then, if the environment is not set correctly, you will need to use the current console (e.g. serial console) to set&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # setenv stderr usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdout usbtty&lt;br /&gt;
GTA01Bv2 # setenv stdin usbtty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Typical u-boot prompt ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0-moko1 (Feb 16 2007 - 00:36:13)&lt;br /&gt;
&lt;br /&gt;
DRAM:  128 MB&lt;br /&gt;
NAND:  64 MiB&lt;br /&gt;
Found Environment offset in OOB..&lt;br /&gt;
Video: 640x480x8 31kHz 59Hz&lt;br /&gt;
USB:   S3C2410 USB Deviced&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Commands on the bootloader prompt ===&lt;br /&gt;
&lt;br /&gt;
==== Auto-boot ====&lt;br /&gt;
&lt;br /&gt;
Auto-boot executes the command[s] specified in the ''bootcmd'' environment variable. The default configuration is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # printenv&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basically tells us that it will load the content of the NAND partition '''kernel''' to memory address 0x32000000 and then try to boot it.  &lt;br /&gt;
&lt;br /&gt;
==== Environment ====&lt;br /&gt;
&lt;br /&gt;
u-boot is configured to manage a non-volatile environment that is stored in NAND flash.  You can use the commands to read/alter/store the environment in the following example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # printenv&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
usbtty=cdc_acm&lt;br /&gt;
bootdelay=10&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
mtdparts=mtdparts=neo1973-nand:0x00030000(u-boot),0x0000c000(u-boot_env),0x00200000(kernel),0x00130000(splash),0x03c94000(rootfs)&lt;br /&gt;
mtdids=nand0=neo1973-nand&lt;br /&gt;
bootargs_base=rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8 dyntick=enable lpj=252416&lt;br /&gt;
bootcmd=setenv bootargs ${bootargs_base} ${mtdparts}; nand read.e 0x32000000 kernel; bootm 0x32000000&lt;br /&gt;
pcf50606_int1=0x40&lt;br /&gt;
filesize=160C000&lt;br /&gt;
partition=nand0,0&lt;br /&gt;
mtddevnum=0&lt;br /&gt;
mtddevname=u-boot&lt;br /&gt;
&lt;br /&gt;
Environment size: 670/16380 bytes&lt;br /&gt;
GTA01Bv3 # setenv bootdelay 10&lt;br /&gt;
GTA01Bv3 # printenv bootdelay&lt;br /&gt;
bootdelay=10&lt;br /&gt;
GTA01Bv3 # saveenv&lt;br /&gt;
Saving Environment to NAND...&lt;br /&gt;
Erasing Nand...Writing to Nand... done&lt;br /&gt;
GTA01Bv3 # &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: When setting multiple commands, e.g. for bootcmd, you need to escape the ';', for instance&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # setenv bootcmd mmcinit\; ext2load mmc 0 0x32000000 uImage\; bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MMC/SD ====&lt;br /&gt;
&lt;br /&gt;
in order to initialize a MMC/SD card, you have to use the ``mmcinit'' command.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # mmcinit&lt;br /&gt;
trying to detect SD Card...&lt;br /&gt;
MMC found. Card desciption is:&lt;br /&gt;
Manufacturer ID = 58d564&lt;br /&gt;
HW/FW Revision = 3 8&lt;br /&gt;
Product Name = 21DN!@X�&lt;br /&gt;
Serial Number = 445303&lt;br /&gt;
Month = 5&lt;br /&gt;
Year = 2000&lt;br /&gt;
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3197&lt;br /&gt;
size = 4208984064&lt;br /&gt;
GTA01Bv3 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
afterwards, you can read ext2 filesystems like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2ls mmc 0&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 .&lt;br /&gt;
&amp;lt;DIR&amp;gt;       1024 ..&lt;br /&gt;
&amp;lt;DIR&amp;gt;      12288 lost+found&lt;br /&gt;
         1544788 uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NAND ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # help nand&lt;br /&gt;
nand info                  - show available NAND devices&lt;br /&gt;
nand device [dev]     - show or set current device&lt;br /&gt;
nand read[.jffs2]     - addr off size&lt;br /&gt;
nand write[.jffs2]    - addr off size - read/write `size' bytes starting&lt;br /&gt;
    at offset `off' to/from memory address `addr'&lt;br /&gt;
nand erase [clean] [off size] - erase `size' bytes from&lt;br /&gt;
    offset `off' (entire device if not specified)&lt;br /&gt;
nand bad - show bad blocks&lt;br /&gt;
nand dump[.oob] off - dump page&lt;br /&gt;
nand scrub - really clean NAND erasing bad blocks (UNSAFE)&lt;br /&gt;
nand markbad off - mark bad block at offset (UNSAFE)&lt;br /&gt;
nand biterr off - make a bit error at offset (UNSAFE)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Loading Kernel from NAND =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # nand read 0x32000000 kernel&lt;br /&gt;
&lt;br /&gt;
NAND read: device 0 offset 212992, size 2097152 ...  2097152 bytes read: OK&lt;br /&gt;
GTA01Bv3 # bootm 0x32000000&lt;br /&gt;
## Booting image at 32000000 ...&lt;br /&gt;
   Image Name:   OpenMoko Kernel Image Neo1973&lt;br /&gt;
   Created:      2007-02-15  23:54:18 UTC&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (gzip compressed)&lt;br /&gt;
   Data Size:    1546258 Bytes =  1.5 MB&lt;br /&gt;
   Load Address: 30008000&lt;br /&gt;
   Entry Point:  30008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing new bootloader to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file u-boot.bin from ext2/mmc and flashes it into the&lt;br /&gt;
bootloader flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 u-boot.bin&lt;br /&gt;
GTA01Bv3 # nand erase u-boot&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 u-boot ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing kernel to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file uImage from ext2/mmc and flashes it into the&lt;br /&gt;
kernel flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
GTA01Bv3 # nand erase kernel&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Writing rootfs to NAND =====&lt;br /&gt;
&lt;br /&gt;
The following set of commands loads the file rootfs.jffs2 from ext2/mmc and flashes it into the&lt;br /&gt;
rootfs flash partition:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv3 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
GTA01Bv3 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that this will only work with root file system sizes that are smaller than the amount of memory above 0x32000000, which in the case of 64MB SDRAM is something like 32MB.&lt;br /&gt;
&lt;br /&gt;
==== Neo1973 related commands ====&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot supports a couple of Neo1973 specific commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help neo1973&lt;br /&gt;
neo1973 neo1973 info - display phone informantion&lt;br /&gt;
neo1973 power-off - switch off the phone&lt;br /&gt;
neo1973 charger status - display charger status&lt;br /&gt;
neo1973 charger autofast - enable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger !autofast - disable automatic fast (500mA) charging&lt;br /&gt;
neo1973 charger fast - enable fast (500mA) charging&lt;br /&gt;
neo1973 charger off - disable charging&lt;br /&gt;
neo1973 backlight (on|off) - switch backlight on or off&lt;br /&gt;
neo1973 vibrator (on|off) - switch vibrator on or off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Timeouts =====&lt;br /&gt;
&lt;br /&gt;
The boot menu timeout can be changed using&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setenv boot_menu_timeout=[seconds?]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, by changing bootdelay you can have more time to take control of u-boot:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setenv bootdelay=[seconds]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Power-off =====&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 power-off&lt;br /&gt;
&lt;br /&gt;
you can switch the device off from the bootloader prompt.&lt;br /&gt;
&lt;br /&gt;
===== Battery charger related =====&lt;br /&gt;
&lt;br /&gt;
For a detailed description of the charger basics, see [[Neo1973 Battery Charger]].&lt;br /&gt;
&lt;br /&gt;
====== Inquiring the charger state ======&lt;br /&gt;
&lt;br /&gt;
You can get the current charger status by issuing&lt;br /&gt;
 neo1973 charger status&lt;br /&gt;
&lt;br /&gt;
The following modes are possible:&lt;br /&gt;
&lt;br /&gt;
* idle - no charging&lt;br /&gt;
* trickle - FIXME&lt;br /&gt;
* pre - Slow (100mA) charging, works in hardware.&lt;br /&gt;
* fast_cccv - Fast (500mA) charging, using Constant-Current followed by Constant Voltage (Li-Ion)&lt;br /&gt;
&lt;br /&gt;
====== Disabling battery charging ======&lt;br /&gt;
&lt;br /&gt;
You can disable battery charging (until the next reboot) by issuing&lt;br /&gt;
 neo1973 charger off&lt;br /&gt;
&lt;br /&gt;
====== Forcing fast charge ======&lt;br /&gt;
&lt;br /&gt;
Using&lt;br /&gt;
 neo1973 charger fast&lt;br /&gt;
you can force the PMU to try to do a fast (500mA) charge of the battery. It will abort if the battery is in over temperature or some other error condition occurs.&lt;br /&gt;
&lt;br /&gt;
====== Enabling / Disabling automatic fast charge ======&lt;br /&gt;
&lt;br /&gt;
Autofast is a feature of the PCF50606 PMU.  It means that the fast_cccv mode will be automatically selected if a charger with suitable voltage is plugged in, and the battery not in over temperature condition.&lt;br /&gt;
&lt;br /&gt;
{{warning|This is potentially dangerous.  Only enable autofast if you ARE SURE that you can draw 500mA from the USB connector.  This is the case with a wall outlet charger, or if you are attached to a self-powered hub or a desktop PC root hub.  Bus powered hubs and some laptops only provide 100mA on their USB ports and can thus not support fast charging}}&lt;br /&gt;
&lt;br /&gt;
You can enable or disable autofast by &lt;br /&gt;
 neo1973 charger autofast&lt;br /&gt;
and&lt;br /&gt;
 neo1973 charger !autofast&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Backlight =====&lt;br /&gt;
&lt;br /&gt;
You can switch the backlight on and off by using&lt;br /&gt;
 neo1973 backlight on&lt;br /&gt;
and&lt;br /&gt;
 neo1973 backlight off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
===== Vibrator =====&lt;br /&gt;
&lt;br /&gt;
You can switch the vibrator on and off by using&lt;br /&gt;
 neo1973 vibrator on&lt;br /&gt;
and &lt;br /&gt;
 neo1973 vibrator off&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
==== S3C2410 specific commands ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GTA01Bv2 # help s3c2410&lt;br /&gt;
s3c2410 speed get - display current PLL speed config&lt;br /&gt;
s3c2410 speed list - display supporte PLL speed configs&lt;br /&gt;
s3c2410 speed set - set PLL speed&lt;br /&gt;
GTA01Bv2 # s3c2410 speed list&lt;br /&gt;
50 MHz&lt;br /&gt;
101 MHz&lt;br /&gt;
202 MHz&lt;br /&gt;
266 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 202 MHz, HCLK = 101 MHz, PCLK = 50 MHz&lt;br /&gt;
GTA01Bv2 # s3c2410 speed set 101&lt;br /&gt;
GTA01Bv2 # s3c2410 speed get&lt;br /&gt;
FCLK = 101 MHz, HCLK = 50 MHz, PCLK = 50 MHz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== 266MHz clock =====&lt;br /&gt;
&lt;br /&gt;
You can re-configure the [[S3C2410]] PLL to generate a 266 MHz core cpu clock (rather than the 200MHz default) by using&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 266 &lt;br /&gt;
and&lt;br /&gt;
 GTA01Bv2 # s3c2410 speed set 202&lt;br /&gt;
respectively.&lt;br /&gt;
&lt;br /&gt;
{{warning|The old hardware (Phase 0 - GTA01Bv3) only runs stable at 266MHz if you do not attach anything (esp. the FPC / [[Debug Board]] to the Debug Port}}&lt;br /&gt;
&lt;br /&gt;
==== TFTP on QT2410 ====&lt;br /&gt;
&lt;br /&gt;
The QT2410 cs8900a Ethernet can be used to download images via network.&lt;br /&gt;
&lt;br /&gt;
First, you have to make sure that ''ipaddr'', ''serverip'', ''ethaddr' and ''netmaskk'' are set correctly in the environment:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # printenv&lt;br /&gt;
ethaddr=00:01:02:03:04:05&lt;br /&gt;
netmask=255.255.255.0&lt;br /&gt;
ipaddr=192.168.100.100&lt;br /&gt;
serverip=192.168.100.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== TFTP kernel download =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410 # tftpboot 0x32000000&lt;br /&gt;
*** Warning: no boot file name; using 'C0A86464.img'&lt;br /&gt;
TFTP from server 192.168.100.1; our IP address is 192.168.100.100&lt;br /&gt;
Filename 'C0A86464.img'.&lt;br /&gt;
Load address: 0x32000000&lt;br /&gt;
Loading: #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         #################################################################&lt;br /&gt;
         ##########################################&lt;br /&gt;
done&lt;br /&gt;
Bytes transferred = 1544788 (179254 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you can then commence booting via&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QT2410# bootm 0x32000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Device Firmware Upgrade ==&lt;br /&gt;
&lt;br /&gt;
Our version of u-boot also implements [[USB DFU]]. This can be useful to&lt;br /&gt;
load files and kernel for quick testing.&lt;br /&gt;
&lt;br /&gt;
To find out whether your version of u-boot supports this, use the output of&lt;br /&gt;
 $ lsusb -v -d 1457:5119&lt;br /&gt;
while the phone is in u-boot mode.&lt;br /&gt;
&lt;br /&gt;
If it supports DFU, you should see the following snippet towards the end of the output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        2&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           0&lt;br /&gt;
      bInterfaceClass       254 Application Specific Interface&lt;br /&gt;
      bInterfaceSubClass      1 Device Firmware Update&lt;br /&gt;
      bInterfaceProtocol      1 &lt;br /&gt;
      iInterface              0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For information on how to do firmware upgrades, please see [[dfu-util]].&lt;br /&gt;
&lt;br /&gt;
=== Booting files over DFU ===&lt;br /&gt;
&lt;br /&gt;
To load a file at memory address 0x32000000:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dfu-util -a 0 -D fileToLoad -R&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After that, send 'bootm 0x32000000' to u-boot or 'bootelf 0x32000000' if&lt;br /&gt;
its an elf file.&lt;br /&gt;
&lt;br /&gt;
Simple python script that can boot an ELF image - avoiding a ACM bug that breaks on large packets.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
import time&lt;br /&gt;
&lt;br /&gt;
cmd1 = &amp;quot;neo backlight off\n&amp;quot;&lt;br /&gt;
cmd2 = &amp;quot;bootelf 0x32000000\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
def output(tty, str):&lt;br /&gt;
    for x in str:&lt;br /&gt;
        tty.write(x)&lt;br /&gt;
        tty.flush()&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv) == 2:&lt;br /&gt;
    print &amp;quot;Loading %s...&amp;quot; % sys.argv[1]&lt;br /&gt;
&lt;br /&gt;
    loadfile = &amp;quot;dfu-util -a 0 -D %s -R&amp;quot; % sys.argv[1]&lt;br /&gt;
&lt;br /&gt;
    os.system(loadfile)&lt;br /&gt;
&lt;br /&gt;
    time.sleep(3)&lt;br /&gt;
&lt;br /&gt;
    tty = open(&amp;quot;/dev/ttyACM0&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    output(tty, cmd1)&lt;br /&gt;
    output(tty, cmd2)&lt;br /&gt;
&lt;br /&gt;
    tty.close()&lt;br /&gt;
else:&lt;br /&gt;
    print &amp;quot;Usage: %s elffile&amp;quot; % sys.argv[0]&lt;br /&gt;
    print &amp;quot;&amp;quot;&lt;br /&gt;
    sys.exit(2)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Languages|Bootloader}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/USB_Networking</id>
		<title>USB Networking</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/USB_Networking"/>
				<updated>2007-08-11T16:59:23Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Manual method */ Added list of kernel config options needed to get the usbnet drivers needed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Neo1973 side =&lt;br /&gt;
&lt;br /&gt;
By default Neo1973 has usb0 interface working due to Ethernet gadget (g_ether) compiled into kernel.&lt;br /&gt;
&lt;br /&gt;
= Desktop side =&lt;br /&gt;
&lt;br /&gt;
== Manual method ==&lt;br /&gt;
&lt;br /&gt;
Modprobe usbnet module and configure usb0 interface (as root):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your eth0 interface is also in the same 'range' (e.g. 192.168.0.105) then you can do the following:&lt;br /&gt;
&lt;br /&gt;
1. ping the Neo with&lt;br /&gt;
 # ping -I usb0 192.168.0.202&lt;br /&gt;
2. add a route to your Neo:&lt;br /&gt;
 # /sbin/route add -host 192.168.0.202/32 dev usb0&lt;br /&gt;
3 log in to the Neo&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
If you don't have the necessary modules to get usb0 going, make sure you have the following kernel options enabled:&lt;br /&gt;
* CONFIG_USB_USBNET&lt;br /&gt;
* CONFIG_USB_NET_CDC_SUBSET&lt;br /&gt;
* CONFIG_USB_NET_CDCETHER&lt;br /&gt;
All three options are available in the Device Drivers -&amp;gt; USB support -&amp;gt; USB Network Adapters. For more info see the [http://www.linux-usb.org/usbnet/ usbnet driver homepage].&lt;br /&gt;
&lt;br /&gt;
== Automatic method ==&lt;br /&gt;
&lt;br /&gt;
Took from [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] post by Marcin 'Hrw' Juszkiewicz.&lt;br /&gt;
&lt;br /&gt;
'''For Debian or similar distros:'''&lt;br /&gt;
Edit /etc/network/interfaces file ():&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
allow-hotplug usb0&lt;br /&gt;
iface usb0 inet static&lt;br /&gt;
        address 192.168.0.200&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.0.0&lt;br /&gt;
        post-up iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
        post-up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
        post-up iptables -P FORWARD ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''For Red Hat or similar distros'''&lt;br /&gt;
Edit /etc/sysconfig/network-scripts/net.hotplug:&lt;br /&gt;
&lt;br /&gt;
After this statement:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    case $INTERFACE in&lt;br /&gt;
	# interfaces that are registered after being &amp;quot;up&amp;quot; (?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	usb0)&lt;br /&gt;
		ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
		route add 192.168.0.202 usb0&lt;br /&gt;
		iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT&lt;br /&gt;
		iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT&lt;br /&gt;
		exit 0&lt;br /&gt;
	;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For Gentoo or similar distros:''' &lt;br /&gt;
&lt;br /&gt;
* Edit /etc/conf.d/net by adding:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   # Neo1973&lt;br /&gt;
   config_usb0=( &amp;quot;192.168.0.200 netmask 255.255.255.0&amp;quot; )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a new init script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   # cd /etc/init.d&lt;br /&gt;
   # ln -s net.lo net.usb0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And now when you connect phone (which has 192.168.0.202 IP) it gets connection to world automatically.&lt;br /&gt;
&lt;br /&gt;
'''For MacOS X:'''&lt;br /&gt;
&lt;br /&gt;
there are no files to edit since hotplugging configuration is done automatically by default. Of course, the interface has been initialized once. Install the AJZaurusUSB driver as described on [[MacOS_X]] and then open System Preferences / Networks which will show the new interface. Configure for Manual DHC with Host address 192.168.0.200 and Gateway 192.168.0.202.&lt;br /&gt;
&lt;br /&gt;
= Connecting to phone =&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;tt&amp;gt;ssh root@192.168.0.202&amp;lt;/tt&amp;gt; with empty password to get into phone.&lt;br /&gt;
&lt;br /&gt;
===SSH Extras===&lt;br /&gt;
&lt;br /&gt;
If you get fed up with typing root@192.168.0.202, on your PC edit /etc/hosts and add an entry for 'phone'&lt;br /&gt;
&lt;br /&gt;
 192.168.0.202 phone&lt;br /&gt;
&lt;br /&gt;
then edit ~/.ssh/config (or create it) and add&lt;br /&gt;
&lt;br /&gt;
 host phone&lt;br /&gt;
 user root&lt;br /&gt;
&lt;br /&gt;
then all you need to do is type &lt;br /&gt;
&lt;br /&gt;
 # ssh phone&lt;br /&gt;
&lt;br /&gt;
You might want to use keys to bypass the login prompt too.&lt;br /&gt;
&lt;br /&gt;
===SSH Keys===&lt;br /&gt;
&lt;br /&gt;
To generate ssh keys for use as a login mechanism type&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
&lt;br /&gt;
when prompted for a password either hit enter for no password (''not really a good idea'') or enter a password for this key. ssh into the phone and create ~/.ssh&lt;br /&gt;
&lt;br /&gt;
 # mkdir ~/.ssh&lt;br /&gt;
&lt;br /&gt;
then from your PC copy the '''.pub''' file to the phone.&lt;br /&gt;
&lt;br /&gt;
 # scp ~/.ssh/id_rsa.pub phone:.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
You should now be able to ssh directly into the phone.&lt;br /&gt;
&lt;br /&gt;
To disable password logins ('''after setting up key access''') edit /etc/init.d/dropbear and change the following line:&lt;br /&gt;
&lt;br /&gt;
 DROPBEAR_EXTRA_ARGS=&lt;br /&gt;
&lt;br /&gt;
to &lt;br /&gt;
&lt;br /&gt;
 DROPBEAR_EXTRA_ARGS=&amp;quot;-s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You will need to restart dropbear for this to take effect.&lt;br /&gt;
&lt;br /&gt;
===GUI on desktop through SSH===&lt;br /&gt;
&lt;br /&gt;
If you need to get the GUI on the phone onto the desktop via usb, you can use ssh as follows&lt;br /&gt;
&lt;br /&gt;
  ssh -l root -X -v 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Login, and run openmoko-finger-demo for example, and it will open up on the desktop. To get landscape view, just resize the GUI window on the desktop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; &lt;br /&gt;
{{Languages|USB Networking}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Implemented]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973</id>
		<title>Getting Started with your Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973"/>
				<updated>2007-08-11T16:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* By using Ethernet emulation over a USB cable */ Added link to USB_Networking for instructions how to get the cdc module into the kernel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some first steps guide for those who have just received their first Neo1973 hardware&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Inserting the battery ===&lt;br /&gt;
&lt;br /&gt;
Remove the back cover by puting your fingernail in the small recess on the top of the Neo, and pull gently (see just the first step of [[Disassembling Neo1973]]).&lt;br /&gt;
&lt;br /&gt;
See notes below on inserting the SIM, the SD card, and the battery (this page needs to be reorganized).&lt;br /&gt;
&lt;br /&gt;
=== Powering up the phone ===&lt;br /&gt;
[[Image:Neo1973_uboot_splash.jpg|200px|thumb|bootloader splash screen]]&lt;br /&gt;
Just hitting the power button (depending on your [[u-boot]] version you have to press for &amp;gt;= 5 seconds) should get the phone first into the bootloader, then boot the kernel, and get into  X/OpenMoko. The shipped battery typically has enough charge to boot up directly without charging through the usb cable first.&lt;br /&gt;
&lt;br /&gt;
Once you have pressed the power button sufficiently long, the vibrator makes a short pulse and the screen backlight turns on. You can now release the power button and watch the phone booting.&lt;br /&gt;
&lt;br /&gt;
If the battery is not sufficiently charged, the phone will not turn on, even if the usb cable is plugged in.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the Neo1973 GTA01Bv4 ===&lt;br /&gt;
The GTA01Bv4 devices that are currently shipping do not boot out of the box.  Flashing the phone with the latest kernel and [[Userspace root image|supporting file system (&amp;quot;rootfs&amp;quot;)]] is required before the phone will successfully boot.&lt;br /&gt;
&lt;br /&gt;
Read more information at about [[Flashing openmoko]]. MacOS X users please also refer to [[MacOS_X]].&lt;br /&gt;
&lt;br /&gt;
=== Powering down the phone ===&lt;br /&gt;
&lt;br /&gt;
==== While in bootloader mode, or if the phone has crashed ====&lt;br /&gt;
&lt;br /&gt;
If you press the power button for 9 seconds, the phone will switch off.  You can notice this by the backlight going dark.&lt;br /&gt;
&lt;br /&gt;
==== While running a full linux system with userspace ====&lt;br /&gt;
&lt;br /&gt;
In this mode, a power-button press of 5 seconds will be sufficient.  After this, the init process will take care of safely shutting down the phone, which might take up to 20 extra seconds.  The X server should get killed, you should drop back to a (garbled) console, and it should finally switch off - much like a regular Linux PC.&lt;br /&gt;
&lt;br /&gt;
=== Battery charging ===&lt;br /&gt;
&lt;br /&gt;
The [[Neo1973]] supports two charging modes: One 100mA charge mode (called pre-charge) and 500mA (called fast charge).  Charging is always done via the USB socket.  You can use any USB-A to USB-mini-B cable to connect the phone to any USB host.&lt;br /&gt;
&lt;br /&gt;
==== While in u-boot ====&lt;br /&gt;
&lt;br /&gt;
While you are in u-boot mode, the phone only charges with 100mA by default.  (This will change in one of the future revisions).&lt;br /&gt;
&lt;br /&gt;
However, using the u-boot console you can manually enable fast charging. See [[U-boot#Battery_charger_related]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== While in Linux ====&lt;br /&gt;
&lt;br /&gt;
As soon as the phone is connected via USB cable, it will charge.  However, the default charging current is only 100mA, way too little if you want to operate the phone and charge at the same time. &lt;br /&gt;
&lt;br /&gt;
If your USB upstream port is capable of supplying 500mA, then it will configure the Neo1973 accordingly and use 500mA charging mode.  You can notice this by the following line in the kernel log (/var/log/messages) of the laptop/desktop your Neo1973 is hooked up to&lt;br /&gt;
 usb0: full speed config #1: 500 mA, Ethernet Gadget, using CDC Ethernet&lt;br /&gt;
&lt;br /&gt;
=== Inserting the SIM card (optional) ===&lt;br /&gt;
&lt;br /&gt;
The slot is found just under the battery.  The card holder has arrows indicating which way to push it to unlock it - make sure you don't open it with force when it's locked or it may break.  Insert the SIM so that the pads make contact and push the holder firmly until it makes a click, then lock it - otherwise the card will not be detected.&lt;br /&gt;
&lt;br /&gt;
To check if the SIM card is inserted correctly in Linux, you can have a look in gsmd logs or use the instructions detailed in the [[Manually using GSM]] page and issue the ''AT+CIMI'' command.&lt;br /&gt;
&lt;br /&gt;
=== Using your micro-SD card ===&lt;br /&gt;
&lt;br /&gt;
You should have received a memory card with your phone. You might want to copy some mp3 (or better Ogg Vorbis) files to it to try media playback.&lt;br /&gt;
&lt;br /&gt;
Open the SIM card holder (see above) and gently slide the micro-SD shield toward the battery contacts. Lift up the shield and insert the card, contacts first and away from the shield side. Rotate it shut and gently slide the shield away from the battery contacts to lock it closed.&lt;br /&gt;
&lt;br /&gt;
The card should automatically be available under /media/card the next time you boot. You can test it and your audio drivers at the same time by playing an mp3 from it. See [[Neo1973 Audio Subsystem]].&lt;br /&gt;
&lt;br /&gt;
A small video howto (SIM and microSD) is available on google video: http://video.google.de/videoplay?docid=-8343770443102960945&lt;br /&gt;
&lt;br /&gt;
== Getting shell access on the phone ==&lt;br /&gt;
&lt;br /&gt;
=== By using the terminal emulator and on-screen keyboard ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Click&amp;quot; (using a stylus) the top-left arrow icon to get a drop-down menu with &amp;quot;Media&amp;quot;, &amp;quot;Settings&amp;quot;, &amp;quot;Utilities&amp;quot; and &amp;quot;Desktop&amp;quot;.  Choose &amp;quot;Utilities-&amp;gt;Panel-&amp;gt;Input Manager&amp;quot;, and a keyboard icon will appear on the top bar.  You can get an on-screen keyboard at any time by choosing it.&lt;br /&gt;
&lt;br /&gt;
With newer images, the keyboard comes up when you tap the white box in the top bar.&lt;br /&gt;
&lt;br /&gt;
You can choose between different keyboard layouts and the stroke recognizer by dragging from the white box and releasing it to the right of the box.&lt;br /&gt;
&lt;br /&gt;
From the desktop, choose &amp;quot;Active tasks-&amp;gt;rxvt&amp;quot; to get a root shell.&lt;br /&gt;
&lt;br /&gt;
[[Terminal]] is in the top level menu in recent images.&lt;br /&gt;
&lt;br /&gt;
=== By using Ethernet emulation over a USB cable ===&lt;br /&gt;
&lt;br /&gt;
The standard Neo1973 Linux [[kernel]] has support for the &amp;quot;cdc_ether USB gadget&amp;quot;, i.e. a standard implementation of how to emulate an Ethernet device over USB.&lt;br /&gt;
&lt;br /&gt;
The following description is for generic *NIX system. For setting up connectivity specifically on a MacOS X machine, refer to [[MacOS_X]] (because there is no usb0 and you need a special kernel driver first).&lt;br /&gt;
&lt;br /&gt;
As soon as the kernel is up and running, and you have the phone connected via USB, you should get a '''usb0''' device on your host.  &lt;br /&gt;
&lt;br /&gt;
The Phone will have the IPv4 address 192.168.0.202/24.  You can run `ifconfig` in the terminal on the phone to verify this (this is optional, just check it if it doesn't work given the instructions below)&lt;br /&gt;
&lt;br /&gt;
If you plug a USB cable into a laptop running Linux, you'll likely see the &amp;quot;cdc_ether&amp;quot; kernel module being loaded and a usb0 network interface appear. If not, see [[USB_Networking]] for more details.&lt;br /&gt;
&lt;br /&gt;
On the '''host PC''', you should then configure your interface to 192.168.0.200 by using&lt;br /&gt;
 # ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Then you should be able to&lt;br /&gt;
 # ping 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
and last, but not least&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Once you press 'enter' (empty password), you should now have a root login.&lt;br /&gt;
&lt;br /&gt;
See [[USB_Networking]] for more details, including instructions on how to automatically setup masquerading so that your phone can get access to the internet through the host PC.&lt;br /&gt;
&lt;br /&gt;
=== By using the debug board/serial/JTAG ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Debug Board#Usage_Instructions]]&lt;br /&gt;
&lt;br /&gt;
== Getting access to the bootloader console ==&lt;br /&gt;
&lt;br /&gt;
Please see [[u-boot#Using_usbtty_from_Linux]]&lt;br /&gt;
&lt;br /&gt;
== Using Audio ==&lt;br /&gt;
=== Enable Internal Speaker and Mic in Phone Calls ===&lt;br /&gt;
If you got no Speaker and Mic during a Call you need to load the &amp;quot;gsmhandset.state&amp;quot; alsa-configfile&lt;br /&gt;
&lt;br /&gt;
 alsactl -f /etc/alsa/gsmhandset.state restore&lt;br /&gt;
&lt;br /&gt;
Maybe you need to load another .state file for playing mp3 or a BT-Headset see in /etc/alsa/&lt;br /&gt;
&lt;br /&gt;
To hear something you can find an .au file (or convert a .wav into an .au by using the sox tool):&lt;br /&gt;
&lt;br /&gt;
 sox ringtone_thereisnophone.wav -t raw -r 8012 -u -b -c 1 rigtone_thereisnophone.au&lt;br /&gt;
&lt;br /&gt;
copy it to the device and run&lt;br /&gt;
&lt;br /&gt;
 cat ringtone_thereisnophone.au &amp;gt; /dev/dsp&lt;br /&gt;
&lt;br /&gt;
== Useful commands in Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Suspending ===&lt;br /&gt;
&lt;br /&gt;
Writing &amp;quot;mem&amp;quot; into ''/sys/power/state'' tells Linux to suspend - it will enter a low power mode where only the GSM and RAM are powered up and the CPU sleeps.  It will persist in this state until a wake-up event arrives.  Some currently enabled wake-up events are: AUX or POWER key press, USB cable detect.&lt;br /&gt;
&lt;br /&gt;
If you're connected over ssh, sshd will stop responding when the OS suspends, so to avoid locking up your ssh client, use the command&lt;br /&gt;
 # (sleep 1; echo mem &amp;gt; /sys/power/state) &amp;amp; exit&lt;br /&gt;
&lt;br /&gt;
=== Initial backup ===&lt;br /&gt;
&lt;br /&gt;
After getting your new Neo1973 booted for the first time you might want to make a back up of the original flash chip contents on your PC, before you overwrite the flash with a custom image or just update to a newer build.  &lt;br /&gt;
&lt;br /&gt;
{{note|For phase 0 developers only (GTA01Bv4 shippment 0, '''not &amp;amp;gt; 0 '''): This is a good idea because there are parts in the root filesystem that can't be distributed over internet so they are only found in the shipped ROM (see the [[GPS]] driver).}}&lt;br /&gt;
&lt;br /&gt;
One easy way to back up all of the Flash, that doesn't require installing any special software, is with ''netcat'' over the [[USB Networking|USB ethernet]].  The following commands can be used for that.&lt;br /&gt;
{|&lt;br /&gt;
! On the host !! On the target&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock0&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock1&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock2&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock3&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /dev/mtdblock0 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock1 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock2 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock3 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock4 | nc 192.168.0.200 20000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This stores the five NAND partitions in files named mtdblock*.  Knowing the partition layout (u-boot &amp;quot;mtdparts&amp;quot; command or Linux dmesg) you can restore the whole flash with it.&lt;br /&gt;
&lt;br /&gt;
=== Setting date and time ===&lt;br /&gt;
&lt;br /&gt;
To set the date and time you need to open a terminal or ssh to the device. To set the date and time to August 9 19:02 2007 type:&lt;br /&gt;
&lt;br /&gt;
 # date -s 080919022007&lt;br /&gt;
&lt;br /&gt;
The screensaver might turn on as you execute this command - just tap the screen to get back.&lt;br /&gt;
&lt;br /&gt;
Now, you need to synchronize the time with the hardware date/time by typing:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc&lt;br /&gt;
&lt;br /&gt;
=== Where to from here ===&lt;br /&gt;
&lt;br /&gt;
You'll probably want to play with some of the interesting hardware in this device. Obviously, you can explore the applications available through the touch-screen interface. But for those who prefer doing things more in the raw from a shell prompt, you can [[Manually_using_GSM | manually use GSM]], [[Manually_using_SMS | manually use SMS]],  or you can start playing with the [[GPS]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;{{Languages|Getting_Started_with_your_Neo1973}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Neo1973_Phase_1_related]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Customizing_the_Openmoko_Distribution</id>
		<title>Customizing the Openmoko Distribution</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Customizing_the_Openmoko_Distribution"/>
				<updated>2007-08-11T16:21:31Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* First steps */ added suggestion that the DISTRO_EXTRA_RDEPENDS has a bug&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What's the goal? ==&lt;br /&gt;
&lt;br /&gt;
The goal of this page is to teach you how to take an application that you've coded (or the sample app) and properly get it included in your rootfs. This article is a bit of an aggregate page, it's going to take information from [[MokoMakefile]], [[User:CesarB/Using a local overlay|Using a local overlay]], [[Building a hello world application]], and [[Create a package from existing sources]]. So as you can see the goal is for it to be a very thorough introduction, and will take you from &amp;quot;Idea to Inclusion&amp;quot; of your application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting Up the OpenMoko Environment ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; &lt;br /&gt;
 |*If you already have the environment setup then it is imperative that you update your Makefile.&lt;br /&gt;
Do this by running:&lt;br /&gt;
&amp;lt;pre&amp;gt;make update-makefile&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This part of the tutorial is going to be pretty basic. I absolutely love [[MokoMakefile]], it's fantastic, the creator has done and continues to do a fantastic job with this. I see absolutely no reason not to use it I put my OpenMoko development directory in /home/bryce/mokodev/ and that works great for me. You can feel free to do the same or put it anywhere else in your user directory (or anywhere on your system if you're feeling daring and a little nutty).&lt;br /&gt;
&lt;br /&gt;
To get your environment setup please get it setup according to [[MokoMakefile]] however if you do have the build environment setup manually and you're sure you know what you're doing then feel free to go forward with this.&lt;br /&gt;
&lt;br /&gt;
== Setting Up a Local Overlay ==&lt;br /&gt;
If you're at the point for setting up a local overlay this means a couple things. First: You've had a brilliant idea for an application that you just need to have on the OpenMoko platform. Second: You realize that this killer app of yours needs to be done properly and you're not going to do anything silly like include it in the actual tree for the OpenMoko distro because it would probably end up just getting overwritten eventually, or you just realize that it's bad practice!&lt;br /&gt;
&lt;br /&gt;
If you're wondering why and what a local overlay is then let me take this time to explain it to you. A local overlay is where you, as a developer keep your local files in an OE style setup so that you can simply pull your updated code into the tree. You add your overlay tree into the bitbake setup so that when you call bitbake it will pull your own or your customized packages before going to the OE or OpenMoko trees.This keeps everything nice and organized for you and also allows you to build/rebuild/include you apps by using the [[MokoMakefile]]&lt;br /&gt;
&lt;br /&gt;
Thank you to [[User:CesarB]] for this part of the wiki.&lt;br /&gt;
&lt;br /&gt;
To create a local overlay:&lt;br /&gt;
&lt;br /&gt;
* Create a &amp;quot;local&amp;quot; directory and its subdirectories&lt;br /&gt;
&lt;br /&gt;
 mkdir local local/conf local/classes local/packages&lt;br /&gt;
&lt;br /&gt;
* Copy &amp;lt;code&amp;gt;site.conf&amp;lt;/code&amp;gt; from the openmoko tree to &amp;lt;code&amp;gt;local/conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cp oe/conf/site.conf local/conf/site.conf&lt;br /&gt;
&lt;br /&gt;
* Edit the site.conf you copied to add the new tree as a source for bitbake recipes.&lt;br /&gt;
&lt;br /&gt;
Change the current &amp;lt;code&amp;gt;BBFILES&amp;lt;/code&amp;gt; to look like this:&lt;br /&gt;
 BBFILES := &amp;quot;${OMDIR}/openembedded/packages/*/*.bb ${OMDIR}/oe/packages/*/*.bb ${OMDIR}/local/packages/*/*.bb&amp;quot;&lt;br /&gt;
Change your &amp;lt;code&amp;gt;BBFILE_COLLECTIONS&amp;lt;/code&amp;gt; line to look like this:&lt;br /&gt;
 BBFILE_COLLECTIONS = &amp;quot;upstream local overlay&amp;quot;&lt;br /&gt;
Add this line:&lt;br /&gt;
 BBFILE_PATTERN_overlay = &amp;quot;^${OMDIR}/local/&amp;quot;&lt;br /&gt;
Add this line:&lt;br /&gt;
 BBFILE_PRIORITY_overlay = &amp;quot;20&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;BBFILE_PRIORITY&amp;lt;/code&amp;gt; should be greater than all the other &amp;lt;code&amp;gt;BBFILE_PRIORITY&amp;lt;/code&amp;gt; variables on the same file.&lt;br /&gt;
&lt;br /&gt;
* Change your &amp;lt;code&amp;gt;BBPATH&amp;lt;/code&amp;gt; environment variable to add the new tree ''before'' the two others in your &amp;lt;code&amp;gt;setup-env&amp;lt;/code&amp;gt; file.&amp;lt;code&amp;gt;setup-env&amp;lt;/code&amp;gt; is created by [[MokoMakefile]] automatically and is located in your &amp;lt;code&amp;gt;${OMDIR}&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
 export BBPATH=&amp;quot;${OMDIR}/build:${OMDIR}/local:${OMDIR}/oe:${OMDIR}/openembedded&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Using Your New Local Overlay ==&lt;br /&gt;
&lt;br /&gt;
=== Changing files in conf/ ===&lt;br /&gt;
&lt;br /&gt;
To change a file in conf/, just copy the file to the overlay tree (preserving the directory structure) and edit it.&lt;br /&gt;
&lt;br /&gt;
=== Changing files in classes/ ===&lt;br /&gt;
&lt;br /&gt;
To change a file in classes/, just copy the file to the overlay tree and edit it.&lt;br /&gt;
&lt;br /&gt;
=== Changing packages ===&lt;br /&gt;
&lt;br /&gt;
Changing a package's recipe is a bit more complex. You have to copy over (or symlink) not only the .bb file for the package, but also ''all'' the files it includes with &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt;, and the &amp;lt;code&amp;gt;FILESDIR&amp;lt;/code&amp;gt; directories (all directories referred to by &amp;lt;code&amp;gt;FILESDIR&amp;lt;/code&amp;gt;, usually named either ''package''-''version'' or &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt;). If you forget one of them, the build will give an error (either when parsing the recipe in the case of &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt;, or when trying to build in the case of the &amp;lt;code&amp;gt;FILESDIR&amp;lt;/code&amp;gt; directories).&lt;br /&gt;
&lt;br /&gt;
=== Adding a new package ===&lt;br /&gt;
&lt;br /&gt;
You can add a new package (or a recipe for a new version of a package) to the overlay tree simply by creating it on the overlay tree.&lt;br /&gt;
&lt;br /&gt;
== Your First Application ==&lt;br /&gt;
&lt;br /&gt;
I know that I said I'd have a GDK application in here, however, I'd really like to get this whole course done first and have you guys starting to code instead of just looking at what I've written!&lt;br /&gt;
&lt;br /&gt;
This will be a very simple CLI hello world.&lt;br /&gt;
&lt;br /&gt;
=== Before We Code ===&lt;br /&gt;
&lt;br /&gt;
Like a good coder you want to make sure that you're not just doing things, but that you're doing them the right way! &lt;br /&gt;
&lt;br /&gt;
Now change directories into your &amp;lt;code&amp;gt;local/packages&amp;lt;/code&amp;gt; directory.The following commands expect you'll be in that directory so don't change unless you know what you're doing!&lt;br /&gt;
&lt;br /&gt;
You'll want to make a directory with the name of your application, and a subdirectory called files.&lt;br /&gt;
  mkdir myhelloworld myhelloworld/files&lt;br /&gt;
Now you'll want to create two files in the &amp;lt;code&amp;gt;files&amp;lt;/code&amp;gt; directory&lt;br /&gt;
  touch myhelloworld/files/README.txt myhelloworld/files/myhelloworld.c&lt;br /&gt;
And finally you'll want to create a bitbake file.&lt;br /&gt;
  touch myhelloworld/myhelloworld.bb&lt;br /&gt;
&lt;br /&gt;
Alrighty now all your necessary files are created so lets go over this real quick.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$HOME&lt;br /&gt;
 +- $OMDIR (contains the official openmoko tree)&lt;br /&gt;
 |  +- local/&lt;br /&gt;
 |     +- packages/&lt;br /&gt;
 |        +- myhelloworld/&lt;br /&gt;
 |           +- myhelloworld.bb&lt;br /&gt;
 |           +- files/&lt;br /&gt;
 |              +- myhelloworld.c&lt;br /&gt;
 |              +- README.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That should be your structure, if it's not you should go and fix it up.&lt;br /&gt;
=== Filling the Files ===&lt;br /&gt;
&lt;br /&gt;
So you've got your sample files all laid out now it's time to make them actually do something.&lt;br /&gt;
&lt;br /&gt;
myhelloworld.c&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char** argv)&lt;br /&gt;
{&lt;br /&gt;
        printf(&amp;quot;Ello Poppet!\n&amp;quot;);&lt;br /&gt;
        return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
README.txt&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
This is a command line application. It prints a simple Hello World! To stdout.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
myhelloworld.bb&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DESCRIPTION = &amp;quot;A killer hello world application&amp;quot;&lt;br /&gt;
AUTHOR = &amp;quot;Bryce Leo&amp;quot;&lt;br /&gt;
HOMEPAGE = &amp;quot;&amp;quot;&lt;br /&gt;
SECTION = &amp;quot;console/applications&amp;quot;&lt;br /&gt;
PRIORITY = &amp;quot;optional&amp;quot;&lt;br /&gt;
LICENSE = &amp;quot;MIT&amp;quot;&lt;br /&gt;
#DEPENDS = &amp;quot;&amp;quot;&lt;br /&gt;
#RDEPENDS = &amp;quot;&amp;quot;&lt;br /&gt;
#RRECOMMENDS = &amp;quot;&amp;quot;&lt;br /&gt;
#RCONFLICTS = &amp;quot;&amp;quot;&lt;br /&gt;
#SRCDATE = &amp;quot;20070729&amp;quot;&lt;br /&gt;
#PV = &amp;quot;0.1&amp;quot;&lt;br /&gt;
#PR = &amp;quot;r0&amp;quot;&lt;br /&gt;
SRC_URI = &amp;quot;file://myhelloworld.c \&lt;br /&gt;
          file://README.txt &amp;quot;&lt;br /&gt;
&lt;br /&gt;
S = &amp;quot;${WORKDIR}/myhelloworld/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
do_compile() {&lt;br /&gt;
        ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/myhelloworld.c -o myhelloworld&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_install() {&lt;br /&gt;
        install -m 0755 -d ${D}${bindir} ${D}${docdir}/myhelloworld&lt;br /&gt;
        install -m 0755 ${S}/myhelloworld ${D}${bindir}&lt;br /&gt;
        install -m 0644 ${WORKDIR}/README.txt ${D}${docdir}/myhelloworld&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Your First Compilation ===&lt;br /&gt;
&lt;br /&gt;
This is where the [[MokoMakefile]] comes in very very handy. Change to your ${OMDIR} directory, You'll know it by the fact that it is where &amp;lt;code&amp;gt;Makefile&amp;lt;/code&amp;gt; resides.&lt;br /&gt;
 make build-package-myhelloworld&lt;br /&gt;
&lt;br /&gt;
(make sure you run make openmoko-devel-image at least once before building your own packages)&lt;br /&gt;
&lt;br /&gt;
This should all come back and not return any error messages, The output should end in something similar to&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NOTE: package myhelloworld-1.0: completed&lt;br /&gt;
NOTE: build 200707291926: completed&lt;br /&gt;
Build statistics:&lt;br /&gt;
  Attempted builds: 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that no errors were thrown we are happily done!&lt;br /&gt;
&lt;br /&gt;
== Adding Your Application to the Image ==&lt;br /&gt;
&lt;br /&gt;
So you've had an idea, you've setup the build environment, you've setup your local overlay, you've laid out your application tree, you've put code into those fantastic files of yours and now it compiles.There's only one thing left to do. Add that application to your image.&lt;br /&gt;
&lt;br /&gt;
Now lets go over in words and whys what we're about to do. First we need to make modify the &amp;lt;code&amp;gt;${OMDIR}/build/conf/local.conf&amp;lt;/code&amp;gt;. We add in the variable &amp;lt;code&amp;gt;DISTRO_EXTRA_RDEPENDS&amp;lt;/code&amp;gt; and set its value to include &amp;lt;code&amp;gt;myhelloworld&amp;lt;/code&amp;gt;. If you'd like to include other packages from your own overlay or the OM tree just add them inseparated by spaces. After this gets added as a dependency to build the Distro (in this case OpenMoko). Now we have to re-build the task-base package. This essentially just generates an ipk file that will &amp;quot;Merge machine and distro options to create a basic machine task/package.&amp;quot; It pretty much builds a file with a list of packages to be installed that are required for the distro to work correctly. So then you just go through and make &amp;lt;code&amp;gt;openmoko-devel-image, build-qemu, flash-qemu-local,&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run-qemu&amp;lt;/code&amp;gt;. Then calibrate your stylus, head over to the terminal, and run your application!&lt;br /&gt;
&lt;br /&gt;
=== Modifying Your local.conf ===&lt;br /&gt;
Now, go into your build config directory &amp;lt;code&amp;gt;${OMDIR}/build/conf/&amp;lt;/code&amp;gt; and now you'll be editing &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
Add this line to you &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
  DISTRO_EXTRA_RDEPENDS += &amp;quot;myhelloworld&amp;quot;&lt;br /&gt;
With this line you can also include other applications from the OE tree. For instance my &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; looks like this.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE = &amp;quot;fic-gta01&amp;quot;&lt;br /&gt;
DISTRO = &amp;quot;openmoko&amp;quot;&lt;br /&gt;
BUILD_ARCH = &amp;quot;i686&amp;quot;&lt;br /&gt;
SRCDATE_eds-dbus = &amp;quot;now&amp;quot;&lt;br /&gt;
DISTRO_EXTRA_RDEPENDS += &amp;quot;lua dillo myhelloworld&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that you've fixed your &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; it's time to go through all the necessary tasks to add and re-build you image and have your sweet package included.&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
Now come the easy part thanks to [[MokoMakefile]]. &lt;br /&gt;
&lt;br /&gt;
  make rebuild-package-task-base&lt;br /&gt;
  make openmoko-devel-image&lt;br /&gt;
  make build-qemu&lt;br /&gt;
  make flash-qemu-local&lt;br /&gt;
&lt;br /&gt;
Now all you have to do is run qemu.&lt;br /&gt;
  make run-qemu&lt;br /&gt;
&lt;br /&gt;
From here after you calibrate your stylus, you click on the Menu in the top right, click down to terminal, then just run your program.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta02:/$ myhelloworld&lt;br /&gt;
Ello Poppet!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adding Python scripts as applications==&lt;br /&gt;
This is for adding python scripts/packages to the image for your own use.&lt;br /&gt;
===First steps===&lt;br /&gt;
First, you need to modify the &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; file as described above. You need to modify &lt;br /&gt;
  DISTRO_EXTRA_RDEPENDS += &amp;quot;myhelloworld&amp;quot;&lt;br /&gt;
to&lt;br /&gt;
  DISTRO_EXTRA_RDEPENDS += &amp;quot;myhelloworld python&amp;quot;&lt;br /&gt;
&lt;br /&gt;
--[[User:Xkr47|xkr47]] 18:21, 11 August 2007 (CEST) Hmm surely the new line should be DISTRO_EXTRA_RDEPENDS += &amp;quot;pyhelloworld python&amp;quot; instead since the package we create below is pyhelloworld..&lt;br /&gt;
&lt;br /&gt;
This is because python is not included by default in the openmoko image. Or you can use &amp;lt;code&amp;gt;python-pygtk2&amp;lt;/code&amp;gt; if you wish.&lt;br /&gt;
&lt;br /&gt;
Next, you need to perform these actions from the &amp;lt;code&amp;gt;$OMDIR/local&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
  mkdir packages/pyhelloworld packages/pyhelloworld/files&lt;br /&gt;
&lt;br /&gt;
  touch packages/pyhelloworld/files/pyhello packages/pyhelloworld/README.txt&lt;br /&gt;
&lt;br /&gt;
  touch packages/pyhelloworld/pyhelloworld.bb&lt;br /&gt;
&lt;br /&gt;
===Filling in the files===&lt;br /&gt;
Now, edit &amp;lt;code&amp;gt;packages/pyhelloworld/files/pyhello&amp;lt;/code&amp;gt; to contain:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;hello world!&amp;quot;&lt;br /&gt;
print &amp;quot;shutting down now. Farewell oh cruel, cruel world!&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
Next up, is editing &amp;lt;code&amp;gt;packages/pyhelloworld/files/README.txt&amp;lt;/code&amp;gt; to say:&lt;br /&gt;
&lt;br /&gt;
  This is the most awesome helloworld application ever. Know why? It has SNAKES!&lt;br /&gt;
&lt;br /&gt;
Kidding aside, next is the all important &amp;lt;code&amp;gt; packages/pyhelloworld/pyhelloworld.bb:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DESCRIPTION = &amp;quot;A pythonic hello world application&amp;quot;&lt;br /&gt;
AUTHOR = &amp;quot;Tyler Laing&amp;quot;&lt;br /&gt;
HOMEPAGE = &amp;quot;&amp;quot;&lt;br /&gt;
SECTION = &amp;quot;console/applications&amp;quot;&lt;br /&gt;
PRIORITY = &amp;quot;optional&amp;quot;&lt;br /&gt;
LICENSE = &amp;quot;MIT&amp;quot;&lt;br /&gt;
#DEPENDS = &amp;quot;&amp;quot;&lt;br /&gt;
#RDEPENDS = &amp;quot;&amp;quot;&lt;br /&gt;
#RRECOMMENDS = &amp;quot;&amp;quot;&lt;br /&gt;
#RCONFLICTS = &amp;quot;&amp;quot;&lt;br /&gt;
#SRCDATE = &amp;quot;20070729&amp;quot;&lt;br /&gt;
#PV = &amp;quot;0.1&amp;quot;&lt;br /&gt;
#PR = &amp;quot;r0&amp;quot;&lt;br /&gt;
SRC_URI = &amp;quot;file://pyhello \&lt;br /&gt;
          file://README.txt &amp;quot;&lt;br /&gt;
&lt;br /&gt;
S = &amp;quot;${WORKDIR}/pyhelloworld/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
do_install() {&lt;br /&gt;
        install -m 0755 -d ${D}${bindir} ${D}${docdir}/pyhelloworld&lt;br /&gt;
        install -m 0755 ${WORKDIR}/pyhello ${D}${bindir}&lt;br /&gt;
        install -m 0644 ${WORKDIR}/README.txt ${D}${docdir}/pyhelloworld&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'll explain each of the parts right here, for future reference.&lt;br /&gt;
&lt;br /&gt;
====Meanings of variables in .bb files====&lt;br /&gt;
&lt;br /&gt;
  $WORKDIR = $OMDIR/local/packages/&amp;lt;application directory&amp;gt;&lt;br /&gt;
  $bindir  = $OMDIR/build/tmp/work/armv4t-linux/&amp;lt;application directory&amp;gt;/image/usr/bin&lt;br /&gt;
  $docir   = $OMDIR/build/tmp/work/armv4t-linux/&amp;lt;application directory&amp;gt;/image/usr/share/doc&lt;br /&gt;
  $D       = $OMDIR/build/&lt;br /&gt;
&lt;br /&gt;
====Final steps====&lt;br /&gt;
Complete the last steps as per the above instructions, from the point of altering &amp;lt;code&amp;gt;DISTRO_EXTRA_RDEPENDS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And your done!&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:OpenMoko]]&lt;br /&gt;
[[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Disassembling_Neo_1973</id>
		<title>Disassembling Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Disassembling_Neo_1973"/>
				<updated>2007-08-11T07:46:17Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Back side of Neo1973 */ Added comment about the different logo in GTA01Bv4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note| The [[Disassembling Neo1973 | Disassembling the Neo1973 page]] shows how to open up the GTA01Bv3 hardware revision.  Future hardware revisions may require updates to this page. However, both GTA01B4 (currently shipping) and [[GTA02#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|GTA02]] (the version to be released in October) share the same case. }}&lt;br /&gt;
&lt;br /&gt;
== Back side of Neo1973 ==&lt;br /&gt;
The picture below is from the GTA01Bv3 model. The GTA01Bv4 has the OpenMoko logo + OPENMOKO text below instead.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 case back white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
== Opening back cover ==&lt;br /&gt;
&lt;br /&gt;
To remove the back cover, put your fingernail in the small recess on the top of the Neo, and pull gently.&lt;br /&gt;
&lt;br /&gt;
{{note| the back is not hinged, as it may appear in this picture; lift both sides away equally to avoid breaking the small tabs.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 case back open white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Please note the 27 x 9 x 6 mm space above the sim &amp;amp; memory cards after inserting the battery. This could maybe be of some use for 3rd party electronics.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v4 space next to battery.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
{{note| In order to remove the front cover, you now need to remove the two Torx screws (T6x40)}}&lt;br /&gt;
&lt;br /&gt;
== Carefully remove top cover ==&lt;br /&gt;
[[Image:Gta01b v3 case side opening white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
To remove the top cover, after removing the two Torx screws, ''carefully'' squeeze the end of the supplied guitar pick between the cover and the case at the bottom of the device, and then slide the pick up to the top on one side (do not twist the pick). As you slide the pick along, the case retaining clips should come apart with a snapping sound. Repeat the procedure for the other side of the device. To unclip the last remaining large retaining clip at the top, slide the pick all the way to the top (this can be difficult) and then press it in at the centre. By ''careful'' application of force the clip will detach and the cover can then be removed.&lt;br /&gt;
&lt;br /&gt;
== Top case lid removed ==&lt;br /&gt;
[[Image:Gta01b v3 case top open white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Visible in this image, from the right, going clockwise.&lt;br /&gt;
&lt;br /&gt;
*The blocky device at the far right is the GPS antenna.&lt;br /&gt;
**To the left of this, there are two gold pads, which are where the earpiece speaker connects.&lt;br /&gt;
*The [[Debug Board]] connector.&lt;br /&gt;
*At the left, the black semicircular device is the GSM antenna.&lt;br /&gt;
**Immediately to its right, the small circular black/gold object is the microphone&lt;br /&gt;
*At the top right, the ''Aux button''&lt;br /&gt;
*Right below it seems to be a small battery. It can also be seen on the picture below.&lt;br /&gt;
&lt;br /&gt;
In the middle is the touchscreen LCD, the touchscreen printed wire can be seen beginning at the bottom left of this, through the glass.&lt;br /&gt;
&lt;br /&gt;
== Lifting the PCB on the left side ==&lt;br /&gt;
{{note|You have to bend the plastic case a bit outwards until the headphone jack on the left side of the device becomes loose}}&lt;br /&gt;
[[Image:Gta01b v3 case top open pcb lift white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
== Removing PCB from case frame ==&lt;br /&gt;
{{note|Since the PCB now is loose on one side, you can carefully pull the USB socket and GPS antenna connector out of the right side of the case, and then flip the PCB upwards}}&lt;br /&gt;
[[Image:Gta01b v3 case top open pcb lifted.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
This shows:&lt;br /&gt;
*At the top on a green board, the bluetooth module, and the square bluetooth antenna.&lt;br /&gt;
*The headset jack is to the right of this.&lt;br /&gt;
**Immediately below the headset jack is the [[Neo1973 Battery]] connector.&lt;br /&gt;
**Below the [[Neo1973 Battery]] connector, the two gold pads feed the vibrator motor.&lt;br /&gt;
*To the right of the headset jack is the left speaker connector.&lt;br /&gt;
&lt;br /&gt;
On the other side of the PCB, going from bottom-right corner down-left.&lt;br /&gt;
&lt;br /&gt;
*The small circular connector is the GSM connector to which an external aerial can be connected with the back removed, or with an alternative back.&lt;br /&gt;
&lt;br /&gt;
*To the left of this is the right speaker connector.&lt;br /&gt;
*One of the button switches.&lt;br /&gt;
*USB port.&lt;br /&gt;
*Micro-SD slot&lt;br /&gt;
*SIM slot - overlaying the Micro-SD slot when present.&lt;br /&gt;
*Gold GPS antenna connector.&lt;br /&gt;
**Immediately above this with the grey wire connection is the connection to the built in GPS antenna. &lt;br /&gt;
&lt;br /&gt;
On the case picture below, you can see the left and right speakers under the translucent plastic, and the vibrator motor in the middle.&lt;br /&gt;
&lt;br /&gt;
== Empty case frame ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 case empty white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
You can actually see the two stereo speakers beneath the translucent cover, and next to it the small vibrator motor.&lt;br /&gt;
&lt;br /&gt;
Next to the top of the picture is a hole near the speaker.&lt;br /&gt;
The external GSM antenna connector is accessed through this hole.&lt;br /&gt;
&lt;br /&gt;
== GSM Antenna ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 gsm antenna.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Disassembling_Neo1973}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo1973 Phase 1 related]]&lt;br /&gt;
[[Category:Neo1973 Phase 0 related]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Disassembling_Neo_1973</id>
		<title>Disassembling Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Disassembling_Neo_1973"/>
				<updated>2007-08-11T07:39:57Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Opening back cover */ Added picture with battery inserted and noted that a small hole for 3rd party use remains&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note| The [[Disassembling Neo1973 | Disassembling the Neo1973 page]] shows how to open up the GTA01Bv3 hardware revision.  Future hardware revisions may require updates to this page. However, both GTA01B4 (currently shipping) and [[GTA02#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|GTA02]] (the version to be released in October) share the same case. }}&lt;br /&gt;
&lt;br /&gt;
== Back side of Neo1973 ==&lt;br /&gt;
[[Image:Gta01b v3 case back white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
== Opening back cover ==&lt;br /&gt;
&lt;br /&gt;
To remove the back cover, put your fingernail in the small recess on the top of the Neo, and pull gently.&lt;br /&gt;
&lt;br /&gt;
{{note| the back is not hinged, as it may appear in this picture; lift both sides away equally to avoid breaking the small tabs.}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 case back open white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Please note the 27 x 9 x 6 mm space above the sim &amp;amp; memory cards after inserting the battery. This could maybe be of some use for 3rd party electronics.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v4 space next to battery.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
{{note| In order to remove the front cover, you now need to remove the two Torx screws (T6x40)}}&lt;br /&gt;
&lt;br /&gt;
== Carefully remove top cover ==&lt;br /&gt;
[[Image:Gta01b v3 case side opening white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
To remove the top cover, after removing the two Torx screws, ''carefully'' squeeze the end of the supplied guitar pick between the cover and the case at the bottom of the device, and then slide the pick up to the top on one side (do not twist the pick). As you slide the pick along, the case retaining clips should come apart with a snapping sound. Repeat the procedure for the other side of the device. To unclip the last remaining large retaining clip at the top, slide the pick all the way to the top (this can be difficult) and then press it in at the centre. By ''careful'' application of force the clip will detach and the cover can then be removed.&lt;br /&gt;
&lt;br /&gt;
== Top case lid removed ==&lt;br /&gt;
[[Image:Gta01b v3 case top open white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Visible in this image, from the right, going clockwise.&lt;br /&gt;
&lt;br /&gt;
*The blocky device at the far right is the GPS antenna.&lt;br /&gt;
**To the left of this, there are two gold pads, which are where the earpiece speaker connects.&lt;br /&gt;
*The [[Debug Board]] connector.&lt;br /&gt;
*At the left, the black semicircular device is the GSM antenna.&lt;br /&gt;
**Immediately to its right, the small circular black/gold object is the microphone&lt;br /&gt;
*At the top right, the ''Aux button''&lt;br /&gt;
*Right below it seems to be a small battery. It can also be seen on the picture below.&lt;br /&gt;
&lt;br /&gt;
In the middle is the touchscreen LCD, the touchscreen printed wire can be seen beginning at the bottom left of this, through the glass.&lt;br /&gt;
&lt;br /&gt;
== Lifting the PCB on the left side ==&lt;br /&gt;
{{note|You have to bend the plastic case a bit outwards until the headphone jack on the left side of the device becomes loose}}&lt;br /&gt;
[[Image:Gta01b v3 case top open pcb lift white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
== Removing PCB from case frame ==&lt;br /&gt;
{{note|Since the PCB now is loose on one side, you can carefully pull the USB socket and GPS antenna connector out of the right side of the case, and then flip the PCB upwards}}&lt;br /&gt;
[[Image:Gta01b v3 case top open pcb lifted.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
This shows:&lt;br /&gt;
*At the top on a green board, the bluetooth module, and the square bluetooth antenna.&lt;br /&gt;
*The headset jack is to the right of this.&lt;br /&gt;
**Immediately below the headset jack is the [[Neo1973 Battery]] connector.&lt;br /&gt;
**Below the [[Neo1973 Battery]] connector, the two gold pads feed the vibrator motor.&lt;br /&gt;
*To the right of the headset jack is the left speaker connector.&lt;br /&gt;
&lt;br /&gt;
On the other side of the PCB, going from bottom-right corner down-left.&lt;br /&gt;
&lt;br /&gt;
*The small circular connector is the GSM connector to which an external aerial can be connected with the back removed, or with an alternative back.&lt;br /&gt;
&lt;br /&gt;
*To the left of this is the right speaker connector.&lt;br /&gt;
*One of the button switches.&lt;br /&gt;
*USB port.&lt;br /&gt;
*Micro-SD slot&lt;br /&gt;
*SIM slot - overlaying the Micro-SD slot when present.&lt;br /&gt;
*Gold GPS antenna connector.&lt;br /&gt;
**Immediately above this with the grey wire connection is the connection to the built in GPS antenna. &lt;br /&gt;
&lt;br /&gt;
On the case picture below, you can see the left and right speakers under the translucent plastic, and the vibrator motor in the middle.&lt;br /&gt;
&lt;br /&gt;
== Empty case frame ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 case empty white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
You can actually see the two stereo speakers beneath the translucent cover, and next to it the small vibrator motor.&lt;br /&gt;
&lt;br /&gt;
Next to the top of the picture is a hole near the speaker.&lt;br /&gt;
The external GSM antenna connector is accessed through this hole.&lt;br /&gt;
&lt;br /&gt;
== GSM Antenna ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 gsm antenna.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Languages|Disassembling_Neo1973}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Neo1973 Phase 1 related]]&lt;br /&gt;
[[Category:Neo1973 Phase 0 related]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/File:Gta01b_v4_space_next_to_battery.jpg</id>
		<title>File:Gta01b v4 space next to battery.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/File:Gta01b_v4_space_next_to_battery.jpg"/>
				<updated>2007-08-11T07:38:13Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: GTA01Bv4 with battery inserted leaves a little hole (27 x 9 x 6 mm) for 3rd party stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GTA01Bv4 with battery inserted leaves a little hole (27 x 9 x 6 mm) for 3rd party stuff&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Userspace_root_image</id>
		<title>Userspace root image</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Userspace_root_image"/>
				<updated>2007-08-10T15:25:56Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* demo JFFS2 root image */ Removed old demo rootfs link and added a link to the &amp;quot;Flashing openmoko&amp;quot; page instead which lists more recent guidelines&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Creating a root filesystem from scratch ==&lt;br /&gt;
&lt;br /&gt;
To create a root file system image for storage in NAND flash, we use the mkfs.jffs2 program contained int the Debian package ''mtd-tools''.&lt;br /&gt;
&lt;br /&gt;
 mkfs.jffs2 --pad=0x700000 -o rootfs.jffs2 -e 0x4000 -n -d/tmp/jffsroot/&lt;br /&gt;
&lt;br /&gt;
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''.&lt;br /&gt;
&lt;br /&gt;
== Using pre-created root fs image ==&lt;br /&gt;
&lt;br /&gt;
=== OpenEmbedded ===&lt;br /&gt;
&lt;br /&gt;
OpenEmbedded will itself create a jffs2 image at the end of the build process.&lt;br /&gt;
&lt;br /&gt;
Once the build server is running, it will create root filesystem images for us.&lt;br /&gt;
&lt;br /&gt;
=== demo JFFS2 root image ===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Mounting the JFFS2 image on a loop back (MTD RAM) device ===&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
 modprobe mtdcore&lt;br /&gt;
 modprobe jffs2&lt;br /&gt;
 modprobe mtdram total_size=59024  # default is 4 MByte - set to max. available size&lt;br /&gt;
 modprobe mtdchar&lt;br /&gt;
 modprobe mtdblock&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Be careful to really use the mtd-ram-disk (maybe there is a real Flash-device somewhere in your development system)&lt;br /&gt;
&lt;br /&gt;
So check for that looking into /proc/mtd:&lt;br /&gt;
 cat /proc/mtd &lt;br /&gt;
 # dev:    size   erasesize  name&lt;br /&gt;
 # mtd0: 039a4000 00020000 &amp;quot;mtdram test device&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then write the image to that device and mount it:&lt;br /&gt;
&lt;br /&gt;
 dd if=&amp;lt;rootfs.jffs2&amp;gt; of=/dev/mtd0&lt;br /&gt;
 mount /dev/mtdblock0 &amp;lt;mountpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== create the new image ====&lt;br /&gt;
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):&lt;br /&gt;
&lt;br /&gt;
 umount /dev/mtdblock0&lt;br /&gt;
 dd if=/dev/mtdblock0 of=&amp;lt;rootfs.jffs2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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):&lt;br /&gt;
 &lt;br /&gt;
 mkfs.jffs2 --pad=0x700000 -o new_rootfs.jffs2 -e 0x4000 -n -d &amp;lt;mountpoint&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Flashing a root filesystem into NAND ==&lt;br /&gt;
&lt;br /&gt;
See [[U-boot#Writing_rootfs_to_NAND]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Guides]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973</id>
		<title>Getting Started with your Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973"/>
				<updated>2007-08-10T15:21:29Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Flashing the Neo1973 GTA01Bv4 */ Added link to Userspace_root_image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some first steps guide for those who have just received their first Neo1973 hardware&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Inserting the battery ===&lt;br /&gt;
&lt;br /&gt;
Remove the back cover (see just the first step of [[Disassembling Neo1973]]).&lt;br /&gt;
&lt;br /&gt;
See notes below on inserting the SIM, the SD card, and the battery (this page needs to be reorganized).&lt;br /&gt;
&lt;br /&gt;
=== Powering up the phone ===&lt;br /&gt;
[[Image:Neo1973_uboot_splash.jpg|200px|thumb|bootloader splash screen]]&lt;br /&gt;
Just hitting the power button (depending on your [[u-boot]] version you have to press for &amp;gt;= 5 seconds) should get the phone first into the bootloader, then boot the kernel, and get into  X/OpenMoko. The shipped battery typically has enough charge to boot up directly without charging through the usb cable first.&lt;br /&gt;
&lt;br /&gt;
Once you have pressed the power button sufficiently long, the vibrator makes a short pulse and the screen backlight turns on. You can now release the power button and watch the phone booting.&lt;br /&gt;
&lt;br /&gt;
If the battery is not sufficiently charged, the phone will not turn on, even if the usb cable is plugged in.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the Neo1973 GTA01Bv4 ===&lt;br /&gt;
The GTA01Bv4 devices that are currently shipping do not boot out of the box.  Flashing the phone with the latest kernel and [[Userspace root image|supporting file system (&amp;quot;rootfs&amp;quot;)]] is required before the phone will successfully boot.&lt;br /&gt;
&lt;br /&gt;
Read more information at about [[Flashing openmoko]].&lt;br /&gt;
&lt;br /&gt;
=== Powering down the phone ===&lt;br /&gt;
&lt;br /&gt;
==== While in bootloader mode, or if the phone has crashed ====&lt;br /&gt;
&lt;br /&gt;
If you press the power button for 9 seconds, the phone will switch off.  You can notice this by the backlight going dark.&lt;br /&gt;
&lt;br /&gt;
==== While running a full linux system with userspace ====&lt;br /&gt;
&lt;br /&gt;
In this mode, a power-button press of 5 seconds will be sufficient.  After this, the init process will take care of safely shutting down the phone, which might take up to 20 extra seconds.  The X server should get killed, you should drop back to a (garbled) console, and it should finally switch off - much like a regular Linux PC.&lt;br /&gt;
&lt;br /&gt;
=== Battery charging ===&lt;br /&gt;
&lt;br /&gt;
The [[Neo1973]] supports two charging modes: One 100mA charge mode (called pre-charge) and 500mA (called fast charge).  Charging is always done via the USB socket.  You can use any USB-A to USB-mini-B cable to connect the phone to any USB host.&lt;br /&gt;
&lt;br /&gt;
==== While in u-boot ====&lt;br /&gt;
&lt;br /&gt;
While you are in u-boot mode, the phone only charges with 100mA by default.  (This will change in one of the future revisions).&lt;br /&gt;
&lt;br /&gt;
However, using the u-boot console you can manually enable fast charging. See [[U-boot#Battery_charger_related]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== While in Linux ====&lt;br /&gt;
&lt;br /&gt;
As soon as the phone is connected via USB cable, it will charge.  However, the default charging current is only 100mA, way too little if you want to operate the phone and charge at the same time. &lt;br /&gt;
&lt;br /&gt;
If your USB upstream port is capable of supplying 500mA, then it will configure the Neo1973 accordingly and use 500mA charging mode.  You can notice this by the following line in the kernel log (/var/log/messages) of the laptop/desktop your Neo1973 is hooked up to&lt;br /&gt;
 usb0: full speed config #1: 500 mA, Ethernet Gadget, using CDC Ethernet&lt;br /&gt;
&lt;br /&gt;
=== Inserting the SIM card (optional) ===&lt;br /&gt;
&lt;br /&gt;
The slot is found just under the battery.  The card holder has arrows indicating which way to push it to unlock it - make sure you don't open it with force when it's locked or it may break.  Insert the SIM so that the pads make contact and push the holder firmly until it makes a click, then lock it - otherwise the card will not be detected.&lt;br /&gt;
&lt;br /&gt;
To check if the SIM card is inserted correctly in Linux, you can have a look in gsmd logs or use the instructions detailed in the [[Manually using GSM]] page and issue the ''AT+CIMI'' command.&lt;br /&gt;
&lt;br /&gt;
=== Using your micro-SD card ===&lt;br /&gt;
&lt;br /&gt;
You should have received a memory card with your phone. You might want to copy some mp3 (or better Ogg Vorbis) files to it to try media playback.&lt;br /&gt;
&lt;br /&gt;
Open the SIM card holder (see above) and gently slide the micro-SD shield toward the battery contacts. Lift up the shield and insert the card, contacts first and away from the shield side. Rotate it shut and gently slide the shield away from the battery contacts to lock it closed.&lt;br /&gt;
&lt;br /&gt;
The card should automatically be available under /media/card the next time you boot. You can test it and your audio drivers at the same time by playing an mp3 from it. See [[Neo1973 Audio Subsystem]].&lt;br /&gt;
&lt;br /&gt;
A small video howto (SIM and microSD) is available on google video: http://video.google.de/videoplay?docid=-8343770443102960945&lt;br /&gt;
&lt;br /&gt;
== Getting shell access on the phone ==&lt;br /&gt;
&lt;br /&gt;
=== By using the terminal emulator and on-screen keyboard ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Click&amp;quot; (using a stylus) the top-left arrow icon to get a drop-down menu with &amp;quot;Media&amp;quot;, &amp;quot;Settings&amp;quot;, &amp;quot;Utilities&amp;quot; and &amp;quot;Desktop&amp;quot;.  Choose &amp;quot;Utilities-&amp;gt;Panel-&amp;gt;Input Manager&amp;quot;, and a keyboard icon will appear on the top bar.  You can get an on-screen keyboard at any time by choosing it.&lt;br /&gt;
&lt;br /&gt;
With newer images, the keyboard comes up when you tap the white box in the top bar.&lt;br /&gt;
&lt;br /&gt;
You can choose between different keyboard layouts and the stroke recognizer by dragging from the white box and releasing it to the right of the box.&lt;br /&gt;
&lt;br /&gt;
From the desktop, choose &amp;quot;Active tasks-&amp;gt;rxvt&amp;quot; to get a root shell.&lt;br /&gt;
&lt;br /&gt;
[[Terminal]] is in the top level menu in recent images.&lt;br /&gt;
&lt;br /&gt;
=== By using Ethernet emulation over a USB cable ===&lt;br /&gt;
&lt;br /&gt;
The standard Neo1973 Linux [[kernel]] has support for the &amp;quot;cdc_ether USB gadget&amp;quot;, i.e. a standard implementation of how to emulate an Ethernet device over USB.&lt;br /&gt;
&lt;br /&gt;
As soon as the kernel is up and running, and you have the phone connected via USB, you should get a '''usb0''' device on your host.  &lt;br /&gt;
&lt;br /&gt;
The Phone will have the IPv4 address 192.168.0.202/24.  You can run `ifconfig` in the terminal on the phone to verify this (this is optional, just check it if it doesn't work given the instructions below)&lt;br /&gt;
&lt;br /&gt;
If you plug a USB cable into a laptop running Linux, you'll likely see the &amp;quot;cdc_ether&amp;quot; kernel module being loaded and a usb0 network interface appear.  &lt;br /&gt;
&lt;br /&gt;
On the '''host PC''', you should then configure your interface to 192.168.0.200 by using&lt;br /&gt;
 # ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Then you should be able to&lt;br /&gt;
 # ping 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
and last, but not least&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Once you press 'enter' (empty password), you should now have a root login.&lt;br /&gt;
&lt;br /&gt;
See [[USB_Networking]] for more details, including instructions on how to automatically setup masquerading so that your phone can get access to the internet through the host PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== By using the debug board/serial/JTAG ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Debug Board#Usage_Instructions]]&lt;br /&gt;
&lt;br /&gt;
== Getting access to the bootloader console ==&lt;br /&gt;
&lt;br /&gt;
Please see [[u-boot#Using_usbtty_from_Linux]]&lt;br /&gt;
&lt;br /&gt;
== Using Audio ==&lt;br /&gt;
=== Enable Internal Speaker and Mic in Phone Calls ===&lt;br /&gt;
If you got no Speaker and Mic during a Call you need to load the &amp;quot;gsmhandset.state&amp;quot; alsa-configfile&lt;br /&gt;
&lt;br /&gt;
 alsactl -f /etc/alsa/gsmhandset.state restore&lt;br /&gt;
&lt;br /&gt;
Maybe you need to load another .state file for playing mp3 or a BT-Headset see in /etc/alsa/&lt;br /&gt;
&lt;br /&gt;
To hear something you can find an .au file (or convert a .wav into an .au by using the sox tool):&lt;br /&gt;
&lt;br /&gt;
 sox ringtone_thereisnophone.wav -t raw -r 8012 -u -b -c 1 rigtone_thereisnophone.au&lt;br /&gt;
&lt;br /&gt;
copy it to the device and run&lt;br /&gt;
&lt;br /&gt;
 cat ringtone_thereisnophone.au &amp;gt; /dev/dsp&lt;br /&gt;
&lt;br /&gt;
== Useful commands in Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Suspending ===&lt;br /&gt;
&lt;br /&gt;
Writing &amp;quot;mem&amp;quot; into ''/sys/power/state'' tells Linux to suspend - it will enter a low power mode where only the GSM and RAM are powered up and the CPU sleeps.  It will persist in this state until a wake-up event arrives.  Some currently enabled wake-up events are: AUX or POWER key press, USB cable detect.&lt;br /&gt;
&lt;br /&gt;
If you're connected over ssh, sshd will stop responding when the OS suspends, so to avoid locking up your ssh client, use the command&lt;br /&gt;
 # (sleep 1; echo mem &amp;gt; /sys/power/state) &amp;amp; exit&lt;br /&gt;
&lt;br /&gt;
=== Initial backup ===&lt;br /&gt;
&lt;br /&gt;
After getting your new Neo1973 booted for the first time you might want to make a back up of the original flash chip contents on your PC, before you overwrite the flash with a custom image or just update to a newer build.  &lt;br /&gt;
&lt;br /&gt;
{{note|For phase 0 developers only (GTA01Bv4 shippment 0, '''not &amp;amp;gt; 0 '''): This is a good idea because there are parts in the root filesystem that can't be distributed over internet so they are only found in the shipped ROM (see the [[GPS]] driver).}}&lt;br /&gt;
&lt;br /&gt;
One easy way to back up all of the Flash, that doesn't require installing any special software, is with ''netcat'' over the [[USB Networking|USB ethernet]].  The following commands can be used for that.&lt;br /&gt;
{|&lt;br /&gt;
! On the host !! On the target&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock0&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock1&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock2&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock3&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /dev/mtdblock0 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock1 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock2 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock3 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock4 | nc 192.168.0.200 20000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This stores the five NAND partitions in files named mtdblock*.  Knowing the partition layout (u-boot &amp;quot;mtdparts&amp;quot; command or Linux dmesg) you can restore the whole flash with it.&lt;br /&gt;
&lt;br /&gt;
=== Setting date and time ===&lt;br /&gt;
&lt;br /&gt;
To set the date and time you need to open a terminal or ssh to the device. To set the date and time to August 9 19:02 2007 type:&lt;br /&gt;
&lt;br /&gt;
 # date -s 080919022007&lt;br /&gt;
&lt;br /&gt;
The screensaver might turn on as you execute this command - just tap the screen to get back.&lt;br /&gt;
&lt;br /&gt;
Now, you need to synchronize the time with the hardware date/time by typing:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc&lt;br /&gt;
&lt;br /&gt;
=== Where to from here ===&lt;br /&gt;
&lt;br /&gt;
You'll probably want to play with some of the interesting hardware in this device. Obviously, you can explore the applications available through the touch-screen interface. But for those who prefer doing things more in the raw from a shell prompt, you can [[Manually_using_GSM | manually use GSM]], [[Manually_using_SMS | manually use SMS]],  or you can start playing with the [[GPS]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;{{Languages|Getting_Started_with_your_Neo1973}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Neo1973_Phase_1_related]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Xkr47</id>
		<title>User:Xkr47</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Xkr47"/>
				<updated>2007-08-10T06:34:47Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Me:&lt;br /&gt;
* Happy and Proud OpenMoko GTA01Bv04 owner since 2007-08-09 ^^&lt;br /&gt;
* [http://xkr47.outerspace.dyndns.org/ my homepage]&lt;br /&gt;
* [http://sourceforge.net/people/viewprofile.php?user_id=66259 my computer-related skills]&lt;br /&gt;
* [http://www.google.com/search?q=xkr47+OR+jberlin%40niksula+OR+jberlin%40cc+OR+outerspace.dyndns.org my internet resumé]&lt;br /&gt;
&lt;br /&gt;
Wishlist for my openmoko:&lt;br /&gt;
&lt;br /&gt;
* basic telephony&lt;br /&gt;
* automatic [[Screen Saver|screensaver]] &amp;amp; locker&lt;br /&gt;
** require code/password/gesture to unlock&lt;br /&gt;
* [[Messages|SMS sending and reception]]&lt;br /&gt;
* SMS mirroring to home server&lt;br /&gt;
* remote GUI app connected to home server when SMS arrives / phone is ringing / other important event (battery low) in case I can't hear the phone when it's in my backpack&lt;br /&gt;
* MMS sending &amp;amp; reception - outgoing pics taken with external USB-connected digital camera&lt;br /&gt;
* Integration with local public transportation services which provides clickable maps --&amp;gt; GPS can be used to automatically &amp;quot;go home from wherever I happen to be&amp;quot;&lt;br /&gt;
* ssh client&lt;br /&gt;
* &amp;quot;Status&amp;quot; app or [[Today|similar]] with multiple small windows aka gadgets / widgets that report different stats e.g. ssh (for irc), SMS, missed calls, next calendar entries, profile, tv programme etc, [http://en.wikipedia.org/wiki/Digital_video_recorder DVR] status&lt;br /&gt;
* Switch to &amp;quot;status&amp;quot; app automatically if user idles long enough&lt;br /&gt;
* [[Calendar]]&lt;br /&gt;
* automatic (weekly or calender-based) and [[Clock|manual alarm clock]]&lt;br /&gt;
* [[Profiles|Profile]] changes:&lt;br /&gt;
** programmable - time, location &amp;amp; calendar based&lt;br /&gt;
** manual profile override with timeout - cinema, sleep, meeting&lt;br /&gt;
* allow use of event (incoming phone call, sms message etc) metadata (who called, what time) to override profile settings&lt;br /&gt;
* screensaver that shuts the screen completely off, not just the backlight&lt;br /&gt;
** one click in screensaver mode -&amp;gt; screen in &amp;quot;on&amp;quot; mode but backlight still off, tune X color settings so that the contrast is increased to improve readbility&lt;br /&gt;
** second click -&amp;gt; backlight on as well, color settings back to normal&lt;br /&gt;
* SMS writing with [[Applications#Finger-Based_Applications | fingers]] - maybe some basic 123 456 789 *0# [[Input Method|onscreen keyboard]] with [http://en.wikipedia.org/wiki/T9_(predictive_text) T9] or similar&lt;br /&gt;
* one-click publishing of pictures taken with external digital camera to home web server&lt;br /&gt;
&lt;br /&gt;
Hopefully my skills will let me implement at least some of these :)&lt;br /&gt;
&lt;br /&gt;
Feel free to comment anything on the [[User_talk:Xkr47|talk page]].&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Xkr47</id>
		<title>User:Xkr47</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Xkr47"/>
				<updated>2007-08-10T06:33:20Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Me:&lt;br /&gt;
* Happy oldschool OpenMoko GTA01Bv04 owner ^^&lt;br /&gt;
* [http://xkr47.outerspace.dyndns.org/ my homepage]&lt;br /&gt;
* [http://sourceforge.net/people/viewprofile.php?user_id=66259 my computer-related skills]&lt;br /&gt;
* [http://www.google.com/search?q=xkr47+OR+jberlin%40niksula+OR+jberlin%40cc+OR+outerspace.dyndns.org my internet resumé]&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Wishlist for my openmoko:&lt;br /&gt;
&lt;br /&gt;
* basic telephony&lt;br /&gt;
* automatic [[Screen Saver|screensaver]] &amp;amp; locker&lt;br /&gt;
** require code/password/gesture to unlock&lt;br /&gt;
* [[Messages|SMS sending and reception]]&lt;br /&gt;
* SMS mirroring to home server&lt;br /&gt;
* remote GUI app connected to home server when SMS arrives / phone is ringing / other important event (battery low) in case I can't hear the phone when it's in my backpack&lt;br /&gt;
* MMS sending &amp;amp; reception - outgoing pics taken with external USB-connected digital camera&lt;br /&gt;
* Integration with local public transportation services which provides clickable maps --&amp;gt; GPS can be used to automatically &amp;quot;go home from wherever I happen to be&amp;quot;&lt;br /&gt;
* ssh client&lt;br /&gt;
* &amp;quot;Status&amp;quot; app or [[Today|similar]] with multiple small windows aka gadgets / widgets that report different stats e.g. ssh (for irc), SMS, missed calls, next calendar entries, profile, tv programme etc, [http://en.wikipedia.org/wiki/Digital_video_recorder DVR] status&lt;br /&gt;
* Switch to &amp;quot;status&amp;quot; app automatically if user idles long enough&lt;br /&gt;
* [[Calendar]]&lt;br /&gt;
* automatic (weekly or calender-based) and [[Clock|manual alarm clock]]&lt;br /&gt;
* [[Profiles|Profile]] changes:&lt;br /&gt;
** programmable - time, location &amp;amp; calendar based&lt;br /&gt;
** manual profile override with timeout - cinema, sleep, meeting&lt;br /&gt;
* allow use of event (incoming phone call, sms message etc) metadata (who called, what time) to override profile settings&lt;br /&gt;
* screensaver that shuts the screen completely off, not just the backlight&lt;br /&gt;
** one click in screensaver mode -&amp;gt; screen in &amp;quot;on&amp;quot; mode but backlight still off, tune X color settings so that the contrast is increased to improve readbility&lt;br /&gt;
** second click -&amp;gt; backlight on as well, color settings back to normal&lt;br /&gt;
* SMS writing with [[Applications#Finger-Based_Applications | fingers]] - maybe some basic 123 456 789 *0# [[Input Method|onscreen keyboard]] with [http://en.wikipedia.org/wiki/T9_(predictive_text) T9] or similar&lt;br /&gt;
* one-click publishing of pictures taken with external digital camera to home web server&lt;br /&gt;
&lt;br /&gt;
Hopefully my skills will let me implement at least some of these :)&lt;br /&gt;
&lt;br /&gt;
Feel free to comment anything on the [[User_talk:Xkr47|talk page]].&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973</id>
		<title>Flashing the Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973"/>
				<updated>2007-08-10T06:22:02Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Preparing the device for DFU mode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This describes how to update your openmoko to the latest software. We'll update the kernel, the root filesystem and optionally u-boot.&lt;br /&gt;
&lt;br /&gt;
{{warning|If you're updating u-boot and don't have a [[Debug Board]], you might render your unit unusable if the flashing procedure is interrupted}}&lt;br /&gt;
&lt;br /&gt;
== Files to download ==&lt;br /&gt;
&lt;br /&gt;
The rootfs &amp;amp; kernel images you download need to match. The loadable modules for the kernel are in /lib/modules/ on the rootfs partition - if you get the wrong combination, you will get some error messages during bootup that it cannot access /lib/modules/x.y.z-moko123 - in this case swap either the kernel or the rootfs to match the other's version. Unfortunately the rootfs filename does not seem to tell what kernel version it is compatible with, you just have to try a few. '''NOTE:''' At least some combinations seem to boot up fine even if the module versions mismatch so be sure to check the console while it's booting after flashing.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;moko123&amp;quot; in the error message example above indicates the openmoko patchset version.&lt;br /&gt;
&lt;br /&gt;
Necessary files are at:&lt;br /&gt;
*http://buildhost.openmoko.org/tmp/deploy/images/&lt;br /&gt;
&lt;br /&gt;
*http://chooseopen.com/openmoko/build/ (Unofficial, temporary location of more current builds.)&lt;br /&gt;
&lt;br /&gt;
Get:&lt;br /&gt;
* [[dfu-util]] (the precompiled binary on http://buildhost.openmoko.org is for Linux/i386)&lt;br /&gt;
* openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2&lt;br /&gt;
* uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin&lt;br /&gt;
* for phase 0 (Bv03) phones:&lt;br /&gt;
** Tested by a few people:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&amp;lt;BR&amp;gt;MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83&lt;br /&gt;
** Tested by hrw:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin&amp;lt;BR&amp;gt;MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935&lt;br /&gt;
* for phase 1 phones, uboot update should not be necessary.&lt;br /&gt;
&lt;br /&gt;
== Preparing the device for DFU mode ==&lt;br /&gt;
&lt;br /&gt;
You'll need to boot your openmoko into uboot menu.  To do this:&lt;br /&gt;
&lt;br /&gt;
* Unplug all usb devices from the host.&lt;br /&gt;
* Hold [[Neo1973 AUX Button]] while pressing POWER button. &lt;br /&gt;
* The uboot menu should appear. &lt;br /&gt;
* Plug Neo1973 into host with supplied USB cable. (Plug the phone directly into the host not via a hub.)&lt;br /&gt;
&lt;br /&gt;
Note:  Some devices have been reported to turn off after a short period of inactivity while on the uboot menu.  To avoid this, simply press the AUX button every 30 seconds or so.&lt;br /&gt;
&lt;br /&gt;
No further navigation is needed in u-boot - the device will automatically start flashing the images when told to do so by dfu-util below. After flashing all the files, you can choose the &amp;quot;Boot&amp;quot; option to boot the newly flashed stuff.&lt;br /&gt;
&lt;br /&gt;
== Actually flashing things into the device ==&lt;br /&gt;
&lt;br /&gt;
Double check that u-boot matches your hardware version. Flashing u-boot is really a critical part. You probably only want to do that on phase0 phones.&lt;br /&gt;
&lt;br /&gt;
Note: It may be necessary to run the application as root (at least in ubuntu).&lt;br /&gt;
&lt;br /&gt;
Note: Option -a also accepts symbolic names (&amp;quot;u-boot&amp;quot;, &amp;quot;u-boot_env&amp;quot;, &amp;quot;kernel&amp;quot;, &amp;quot;splash&amp;quot;, &amp;quot;rootfs&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: In case there are more than one available usb devices use -d 0x1457:0x5119 option.&lt;br /&gt;
&lt;br /&gt;
To update u-boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: Do not update u-boot unless you have debug board or are really sure about what you are doing. Flashing a wrong u-boot image will brick your device! Note especially that image below is for GTA01B_v03, not GTA01B_v04&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ./dfu-util -a 1 -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&lt;br /&gt;
&lt;br /&gt;
To update the kernel:&lt;br /&gt;
 ./dfu-util -a 3 -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin&lt;br /&gt;
&lt;br /&gt;
To update the root filesystem:&lt;br /&gt;
 ./dfu-util -a 5 -R -D ./openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2&lt;br /&gt;
&lt;br /&gt;
...now, you'll end up with system that boots, but does not see audio/SD card. You'll need to download corresponding modules.tgz and copy them over to openmoko.  - UPDATE:  GTA01 phones appear to not need this step, as long as you have installed a kernel that matches the version of the modules contained in the root image ('uname -r' will show the kernel version, and 'ls /lib/modules/' will show the modules that are present).&lt;br /&gt;
&lt;br /&gt;
If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, erase NAND and then upload your rootfs first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cu -l /dev/ttyACM0&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Old versions of uboot are buggy: You may have to press the aux button few times so that machine does not sleep while flashing. It also does not erase rootfs before flashing it... to do that, do minicom /dev/ttyACM0, then nand erase clean rootfs . Unfortunately, old versions of uboot are not really usable, because they fail to enable high 64MB of RAM, and you get nasty crashes after kernel boots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting notes ==&lt;br /&gt;
&lt;br /&gt;
If you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; just retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
This message can also occur if you connect the usb cable before you are in the bootloader menu.  You must carefully follow the sequence described at the beginning of this article and not connect the USB cable too early.&lt;br /&gt;
&lt;br /&gt;
dfu-util does not seem to be able to download files if run from linux running under&lt;br /&gt;
VMWare on a Windows OS host.&lt;br /&gt;
&lt;br /&gt;
See other notes on [[Dfu-util]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenMoko| ]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973</id>
		<title>Flashing the Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973"/>
				<updated>2007-08-10T06:20:48Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Putting the device into DFU mode */ Added comment that no menu option selection is necessary to proceed with the flashing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This describes how to update your openmoko to the latest software. We'll update the kernel, the root filesystem and optionally u-boot.&lt;br /&gt;
&lt;br /&gt;
{{warning|If you're updating u-boot and don't have a [[Debug Board]], you might render your unit unusable if the flashing procedure is interrupted}}&lt;br /&gt;
&lt;br /&gt;
== Files to download ==&lt;br /&gt;
&lt;br /&gt;
The rootfs &amp;amp; kernel images you download need to match. The loadable modules for the kernel are in /lib/modules/ on the rootfs partition - if you get the wrong combination, you will get some error messages during bootup that it cannot access /lib/modules/x.y.z-moko123 - in this case swap either the kernel or the rootfs to match the other's version. Unfortunately the rootfs filename does not seem to tell what kernel version it is compatible with, you just have to try a few. '''NOTE:''' At least some combinations seem to boot up fine even if the module versions mismatch so be sure to check the console while it's booting after flashing.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;moko123&amp;quot; in the error message example above indicates the openmoko patchset version.&lt;br /&gt;
&lt;br /&gt;
Necessary files are at:&lt;br /&gt;
*http://buildhost.openmoko.org/tmp/deploy/images/&lt;br /&gt;
&lt;br /&gt;
*http://chooseopen.com/openmoko/build/ (Unofficial, temporary location of more current builds.)&lt;br /&gt;
&lt;br /&gt;
Get:&lt;br /&gt;
* [[dfu-util]] (the precompiled binary on http://buildhost.openmoko.org is for Linux/i386)&lt;br /&gt;
* openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2&lt;br /&gt;
* uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin&lt;br /&gt;
* for phase 0 (Bv03) phones:&lt;br /&gt;
** Tested by a few people:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&amp;lt;BR&amp;gt;MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83&lt;br /&gt;
** Tested by hrw:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin&amp;lt;BR&amp;gt;MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935&lt;br /&gt;
* for phase 1 phones, uboot update should not be necessary.&lt;br /&gt;
&lt;br /&gt;
== Preparing the device for DFU mode ==&lt;br /&gt;
&lt;br /&gt;
You'll need to boot your openmoko into uboot menu.  To do this:&lt;br /&gt;
&lt;br /&gt;
* Unplug all usb devices from the host.&lt;br /&gt;
* Hold [[Neo1973 AUX Button]] while pressing POWER button. &lt;br /&gt;
* The uboot menu should appear. &lt;br /&gt;
* Plug Neo1973 into host with supplied USB cable. (Plug the phone directly into the host not via a hub.)&lt;br /&gt;
&lt;br /&gt;
Note:  Some devices have been reported to turn off after a short period of inactivity while on the uboot menu.  To avoid this, simply press the AUX button every 30 seconds or so.&lt;br /&gt;
&lt;br /&gt;
No further navigation is needed in u-boot - the device will automatically start flashing the images when told to do so by dfu-util below. After flashing, you can choose the &amp;quot;Boot&amp;quot; option to boot the newly flashed stuff.&lt;br /&gt;
&lt;br /&gt;
== Actually flashing things into the device ==&lt;br /&gt;
&lt;br /&gt;
Double check that u-boot matches your hardware version. Flashing u-boot is really a critical part. You probably only want to do that on phase0 phones.&lt;br /&gt;
&lt;br /&gt;
Note: It may be necessary to run the application as root (at least in ubuntu).&lt;br /&gt;
&lt;br /&gt;
Note: Option -a also accepts symbolic names (&amp;quot;u-boot&amp;quot;, &amp;quot;u-boot_env&amp;quot;, &amp;quot;kernel&amp;quot;, &amp;quot;splash&amp;quot;, &amp;quot;rootfs&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: In case there are more than one available usb devices use -d 0x1457:0x5119 option.&lt;br /&gt;
&lt;br /&gt;
To update u-boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: Do not update u-boot unless you have debug board or are really sure about what you are doing. Flashing a wrong u-boot image will brick your device! Note especially that image below is for GTA01B_v03, not GTA01B_v04&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ./dfu-util -a 1 -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&lt;br /&gt;
&lt;br /&gt;
To update the kernel:&lt;br /&gt;
 ./dfu-util -a 3 -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin&lt;br /&gt;
&lt;br /&gt;
To update the root filesystem:&lt;br /&gt;
 ./dfu-util -a 5 -R -D ./openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2&lt;br /&gt;
&lt;br /&gt;
...now, you'll end up with system that boots, but does not see audio/SD card. You'll need to download corresponding modules.tgz and copy them over to openmoko.  - UPDATE:  GTA01 phones appear to not need this step, as long as you have installed a kernel that matches the version of the modules contained in the root image ('uname -r' will show the kernel version, and 'ls /lib/modules/' will show the modules that are present).&lt;br /&gt;
&lt;br /&gt;
If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, erase NAND and then upload your rootfs first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cu -l /dev/ttyACM0&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Old versions of uboot are buggy: You may have to press the aux button few times so that machine does not sleep while flashing. It also does not erase rootfs before flashing it... to do that, do minicom /dev/ttyACM0, then nand erase clean rootfs . Unfortunately, old versions of uboot are not really usable, because they fail to enable high 64MB of RAM, and you get nasty crashes after kernel boots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting notes ==&lt;br /&gt;
&lt;br /&gt;
If you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; just retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
This message can also occur if you connect the usb cable before you are in the bootloader menu.  You must carefully follow the sequence described at the beginning of this article and not connect the USB cable too early.&lt;br /&gt;
&lt;br /&gt;
dfu-util does not seem to be able to download files if run from linux running under&lt;br /&gt;
VMWare on a Windows OS host.&lt;br /&gt;
&lt;br /&gt;
See other notes on [[Dfu-util]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenMoko| ]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973</id>
		<title>Flashing the Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973"/>
				<updated>2007-08-10T06:14:56Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Files to download */ Added note about the system possibly booting up fine even when kernel &amp;lt;-&amp;gt; rootfs version mismatch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This describes how to update your openmoko to the latest software. We'll update the kernel, the root filesystem and optionally u-boot.&lt;br /&gt;
&lt;br /&gt;
{{warning|If you're updating u-boot and don't have a [[Debug Board]], you might render your unit unusable if the flashing procedure is interrupted}}&lt;br /&gt;
&lt;br /&gt;
== Files to download ==&lt;br /&gt;
&lt;br /&gt;
The rootfs &amp;amp; kernel images you download need to match. The loadable modules for the kernel are in /lib/modules/ on the rootfs partition - if you get the wrong combination, you will get some error messages during bootup that it cannot access /lib/modules/x.y.z-moko123 - in this case swap either the kernel or the rootfs to match the other's version. Unfortunately the rootfs filename does not seem to tell what kernel version it is compatible with, you just have to try a few. '''NOTE:''' At least some combinations seem to boot up fine even if the module versions mismatch so be sure to check the console while it's booting after flashing.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;moko123&amp;quot; in the error message example above indicates the openmoko patchset version.&lt;br /&gt;
&lt;br /&gt;
Necessary files are at:&lt;br /&gt;
*http://buildhost.openmoko.org/tmp/deploy/images/&lt;br /&gt;
&lt;br /&gt;
*http://chooseopen.com/openmoko/build/ (Unofficial, temporary location of more current builds.)&lt;br /&gt;
&lt;br /&gt;
Get:&lt;br /&gt;
* [[dfu-util]] (the precompiled binary on http://buildhost.openmoko.org is for Linux/i386)&lt;br /&gt;
* openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2&lt;br /&gt;
* uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin&lt;br /&gt;
* for phase 0 (Bv03) phones:&lt;br /&gt;
** Tested by a few people:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&amp;lt;BR&amp;gt;MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83&lt;br /&gt;
** Tested by hrw:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin&amp;lt;BR&amp;gt;MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935&lt;br /&gt;
* for phase 1 phones, uboot update should not be necessary.&lt;br /&gt;
&lt;br /&gt;
== Putting the device into DFU mode ==&lt;br /&gt;
&lt;br /&gt;
You'll need to boot your openmoko into uboot menu.  To do this:&lt;br /&gt;
&lt;br /&gt;
* Unplug all usb devices from the host.&lt;br /&gt;
* Hold [[Neo1973 AUX Button]] while pressing POWER button. &lt;br /&gt;
* The uboot menu should appear. &lt;br /&gt;
* Plug Neo1973 into host with supplied USB cable. (Plug the phone directly into the host not via a hub.)&lt;br /&gt;
&lt;br /&gt;
Note:  Some devices have been reported to turn off after a short period of inactivity while on the uboot menu.  To avoid this, simply press the AUX button every 30 seconds or so.&lt;br /&gt;
&lt;br /&gt;
== Actually flashing things into the device ==&lt;br /&gt;
&lt;br /&gt;
Double check that u-boot matches your hardware version. Flashing u-boot is really a critical part. You probably only want to do that on phase0 phones.&lt;br /&gt;
&lt;br /&gt;
Note: It may be necessary to run the application as root (at least in ubuntu).&lt;br /&gt;
&lt;br /&gt;
Note: Option -a also accepts symbolic names (&amp;quot;u-boot&amp;quot;, &amp;quot;u-boot_env&amp;quot;, &amp;quot;kernel&amp;quot;, &amp;quot;splash&amp;quot;, &amp;quot;rootfs&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: In case there are more than one available usb devices use -d 0x1457:0x5119 option.&lt;br /&gt;
&lt;br /&gt;
To update u-boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: Do not update u-boot unless you have debug board or are really sure about what you are doing. Flashing a wrong u-boot image will brick your device! Note especially that image below is for GTA01B_v03, not GTA01B_v04&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ./dfu-util -a 1 -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&lt;br /&gt;
&lt;br /&gt;
To update the kernel:&lt;br /&gt;
 ./dfu-util -a 3 -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin&lt;br /&gt;
&lt;br /&gt;
To update the root filesystem:&lt;br /&gt;
 ./dfu-util -a 5 -R -D ./openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2&lt;br /&gt;
&lt;br /&gt;
...now, you'll end up with system that boots, but does not see audio/SD card. You'll need to download corresponding modules.tgz and copy them over to openmoko.  - UPDATE:  GTA01 phones appear to not need this step, as long as you have installed a kernel that matches the version of the modules contained in the root image ('uname -r' will show the kernel version, and 'ls /lib/modules/' will show the modules that are present).&lt;br /&gt;
&lt;br /&gt;
If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, erase NAND and then upload your rootfs first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cu -l /dev/ttyACM0&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Old versions of uboot are buggy: You may have to press the aux button few times so that machine does not sleep while flashing. It also does not erase rootfs before flashing it... to do that, do minicom /dev/ttyACM0, then nand erase clean rootfs . Unfortunately, old versions of uboot are not really usable, because they fail to enable high 64MB of RAM, and you get nasty crashes after kernel boots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting notes ==&lt;br /&gt;
&lt;br /&gt;
If you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; just retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
This message can also occur if you connect the usb cable before you are in the bootloader menu.  You must carefully follow the sequence described at the beginning of this article and not connect the USB cable too early.&lt;br /&gt;
&lt;br /&gt;
dfu-util does not seem to be able to download files if run from linux running under&lt;br /&gt;
VMWare on a Windows OS host.&lt;br /&gt;
&lt;br /&gt;
See other notes on [[Dfu-util]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenMoko| ]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973</id>
		<title>Flashing the Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973"/>
				<updated>2007-08-10T06:12:01Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Files to download */ engrish&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This describes how to update your openmoko to the latest software. We'll update the kernel, the root filesystem and optionally u-boot.&lt;br /&gt;
&lt;br /&gt;
{{warning|If you're updating u-boot and don't have a [[Debug Board]], you might render your unit unusable if the flashing procedure is interrupted}}&lt;br /&gt;
&lt;br /&gt;
== Files to download ==&lt;br /&gt;
&lt;br /&gt;
The rootfs &amp;amp; kernel images you download need to match. The loadable modules for the kernel are in /lib/modules/ on the rootfs partition - if you get the wrong combination, you will get some error messages during bootup that it cannot access /lib/modules/x.y.z-moko123 - in this case swap either the kernel or the rootfs to match the other's version. Unfortunately the rootfs filename does not seem to tell what kernel version it is compatible with.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;moko123&amp;quot; in the error message example above indicates the openmoko patchset version.&lt;br /&gt;
&lt;br /&gt;
Necessary files are at:&lt;br /&gt;
*http://buildhost.openmoko.org/tmp/deploy/images/&lt;br /&gt;
&lt;br /&gt;
*http://chooseopen.com/openmoko/build/ (Unofficial, temporary location of more current builds.)&lt;br /&gt;
&lt;br /&gt;
Get:&lt;br /&gt;
* [[dfu-util]] (the precompiled binary on http://buildhost.openmoko.org is for Linux/i386)&lt;br /&gt;
* openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2&lt;br /&gt;
* uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin&lt;br /&gt;
* for phase 0 (Bv03) phones:&lt;br /&gt;
** Tested by a few people:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&amp;lt;BR&amp;gt;MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83&lt;br /&gt;
** Tested by hrw:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin&amp;lt;BR&amp;gt;MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935&lt;br /&gt;
* for phase 1 phones, uboot update should not be necessary.&lt;br /&gt;
&lt;br /&gt;
== Putting the device into DFU mode ==&lt;br /&gt;
&lt;br /&gt;
You'll need to boot your openmoko into uboot menu.  To do this:&lt;br /&gt;
&lt;br /&gt;
* Unplug all usb devices from the host.&lt;br /&gt;
* Hold [[Neo1973 AUX Button]] while pressing POWER button. &lt;br /&gt;
* The uboot menu should appear. &lt;br /&gt;
* Plug Neo1973 into host with supplied USB cable. (Plug the phone directly into the host not via a hub.)&lt;br /&gt;
&lt;br /&gt;
Note:  Some devices have been reported to turn off after a short period of inactivity while on the uboot menu.  To avoid this, simply press the AUX button every 30 seconds or so.&lt;br /&gt;
&lt;br /&gt;
== Actually flashing things into the device ==&lt;br /&gt;
&lt;br /&gt;
Double check that u-boot matches your hardware version. Flashing u-boot is really a critical part. You probably only want to do that on phase0 phones.&lt;br /&gt;
&lt;br /&gt;
Note: It may be necessary to run the application as root (at least in ubuntu).&lt;br /&gt;
&lt;br /&gt;
Note: Option -a also accepts symbolic names (&amp;quot;u-boot&amp;quot;, &amp;quot;u-boot_env&amp;quot;, &amp;quot;kernel&amp;quot;, &amp;quot;splash&amp;quot;, &amp;quot;rootfs&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: In case there are more than one available usb devices use -d 0x1457:0x5119 option.&lt;br /&gt;
&lt;br /&gt;
To update u-boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: Do not update u-boot unless you have debug board or are really sure about what you are doing. Flashing a wrong u-boot image will brick your device! Note especially that image below is for GTA01B_v03, not GTA01B_v04&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ./dfu-util -a 1 -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&lt;br /&gt;
&lt;br /&gt;
To update the kernel:&lt;br /&gt;
 ./dfu-util -a 3 -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin&lt;br /&gt;
&lt;br /&gt;
To update the root filesystem:&lt;br /&gt;
 ./dfu-util -a 5 -R -D ./openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2&lt;br /&gt;
&lt;br /&gt;
...now, you'll end up with system that boots, but does not see audio/SD card. You'll need to download corresponding modules.tgz and copy them over to openmoko.  - UPDATE:  GTA01 phones appear to not need this step, as long as you have installed a kernel that matches the version of the modules contained in the root image ('uname -r' will show the kernel version, and 'ls /lib/modules/' will show the modules that are present).&lt;br /&gt;
&lt;br /&gt;
If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, erase NAND and then upload your rootfs first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cu -l /dev/ttyACM0&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Old versions of uboot are buggy: You may have to press the aux button few times so that machine does not sleep while flashing. It also does not erase rootfs before flashing it... to do that, do minicom /dev/ttyACM0, then nand erase clean rootfs . Unfortunately, old versions of uboot are not really usable, because they fail to enable high 64MB of RAM, and you get nasty crashes after kernel boots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting notes ==&lt;br /&gt;
&lt;br /&gt;
If you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; just retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
This message can also occur if you connect the usb cable before you are in the bootloader menu.  You must carefully follow the sequence described at the beginning of this article and not connect the USB cable too early.&lt;br /&gt;
&lt;br /&gt;
dfu-util does not seem to be able to download files if run from linux running under&lt;br /&gt;
VMWare on a Windows OS host.&lt;br /&gt;
&lt;br /&gt;
See other notes on [[Dfu-util]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenMoko| ]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973</id>
		<title>Flashing the Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Flashing_the_Neo_1973"/>
				<updated>2007-08-10T06:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Files to download */ Added comment that kernel version must match the rootfs kernel modules and some elaboration.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This describes how to update your openmoko to the latest software. We'll update the kernel, the root filesystem and optionally u-boot.&lt;br /&gt;
&lt;br /&gt;
{{warning|If you're updating u-boot and don't have a [[Debug Board]], you might render your unit unusable if the flashing procedure is interrupted}}&lt;br /&gt;
&lt;br /&gt;
== Files to download ==&lt;br /&gt;
&lt;br /&gt;
The rootfs &amp;amp; kernel images you download need to match. The loadable modules for the kernel are on the rootfs partition in /lib/modules/ - if you get the wrong combination, you will get some error messages during bootup that it cannot access /lib/modules/x.y.z-moko123 - in this case swap either the kernel or the rootfs to match the other's version. Unfortunately the rootfs filename does not seem to tell what kernel version it is compatible with.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;moko123&amp;quot; in the error message example above indicates the openmoko patchset version.&lt;br /&gt;
&lt;br /&gt;
Necessary files are at:&lt;br /&gt;
*http://buildhost.openmoko.org/tmp/deploy/images/&lt;br /&gt;
&lt;br /&gt;
*http://chooseopen.com/openmoko/build/ (Unofficial, temporary location of more current builds.)&lt;br /&gt;
&lt;br /&gt;
Get:&lt;br /&gt;
* [[dfu-util]] (the precompiled binary on http://buildhost.openmoko.org is for Linux/i386)&lt;br /&gt;
* openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2&lt;br /&gt;
* uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin&lt;br /&gt;
* for phase 0 (Bv03) phones:&lt;br /&gt;
** Tested by a few people:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&amp;lt;BR&amp;gt;MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83&lt;br /&gt;
** Tested by hrw:&amp;lt;BR&amp;gt;u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin&amp;lt;BR&amp;gt;MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935&lt;br /&gt;
* for phase 1 phones, uboot update should not be necessary.&lt;br /&gt;
&lt;br /&gt;
== Putting the device into DFU mode ==&lt;br /&gt;
&lt;br /&gt;
You'll need to boot your openmoko into uboot menu.  To do this:&lt;br /&gt;
&lt;br /&gt;
* Unplug all usb devices from the host.&lt;br /&gt;
* Hold [[Neo1973 AUX Button]] while pressing POWER button. &lt;br /&gt;
* The uboot menu should appear. &lt;br /&gt;
* Plug Neo1973 into host with supplied USB cable. (Plug the phone directly into the host not via a hub.)&lt;br /&gt;
&lt;br /&gt;
Note:  Some devices have been reported to turn off after a short period of inactivity while on the uboot menu.  To avoid this, simply press the AUX button every 30 seconds or so.&lt;br /&gt;
&lt;br /&gt;
== Actually flashing things into the device ==&lt;br /&gt;
&lt;br /&gt;
Double check that u-boot matches your hardware version. Flashing u-boot is really a critical part. You probably only want to do that on phase0 phones.&lt;br /&gt;
&lt;br /&gt;
Note: It may be necessary to run the application as root (at least in ubuntu).&lt;br /&gt;
&lt;br /&gt;
Note: Option -a also accepts symbolic names (&amp;quot;u-boot&amp;quot;, &amp;quot;u-boot_env&amp;quot;, &amp;quot;kernel&amp;quot;, &amp;quot;splash&amp;quot;, &amp;quot;rootfs&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Note: In case there are more than one available usb devices use -d 0x1457:0x5119 option.&lt;br /&gt;
&lt;br /&gt;
To update u-boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: Do not update u-boot unless you have debug board or are really sure about what you are doing. Flashing a wrong u-boot image will brick your device! Note especially that image below is for GTA01B_v03, not GTA01B_v04&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ./dfu-util -a 1 -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin&lt;br /&gt;
&lt;br /&gt;
To update the kernel:&lt;br /&gt;
 ./dfu-util -a 3 -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin&lt;br /&gt;
&lt;br /&gt;
To update the root filesystem:&lt;br /&gt;
 ./dfu-util -a 5 -R -D ./openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2&lt;br /&gt;
&lt;br /&gt;
...now, you'll end up with system that boots, but does not see audio/SD card. You'll need to download corresponding modules.tgz and copy them over to openmoko.  - UPDATE:  GTA01 phones appear to not need this step, as long as you have installed a kernel that matches the version of the modules contained in the root image ('uname -r' will show the kernel version, and 'ls /lib/modules/' will show the modules that are present).&lt;br /&gt;
&lt;br /&gt;
If you upload rootfs image that is smaller that previous one it won't work - you need to attach to bootloader, erase NAND and then upload your rootfs first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cu -l /dev/ttyACM0&lt;br /&gt;
GTA01Bv3 # nand erase rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Old versions of uboot are buggy: You may have to press the aux button few times so that machine does not sleep while flashing. It also does not erase rootfs before flashing it... to do that, do minicom /dev/ttyACM0, then nand erase clean rootfs . Unfortunately, old versions of uboot are not really usable, because they fail to enable high 64MB of RAM, and you get nasty crashes after kernel boots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Good luck!&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting notes ==&lt;br /&gt;
&lt;br /&gt;
If you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality.  It is recommended that you always connect the phone directly to the host when using dfu-util.&lt;br /&gt;
&lt;br /&gt;
If dfu-util reports a message like the following, before it starts flashing:&amp;lt;pre&amp;gt;&lt;br /&gt;
Resetting USB...&lt;br /&gt;
not at least 2 device changes found ?!?&lt;br /&gt;
Lost device after RESET?&amp;lt;/pre&amp;gt; just retry the command - it should work on a second run.&lt;br /&gt;
&lt;br /&gt;
This message can also occur if you connect the usb cable before you are in the bootloader menu.  You must carefully follow the sequence described at the beginning of this article and not connect the USB cable too early.&lt;br /&gt;
&lt;br /&gt;
dfu-util does not seem to be able to download files if run from linux running under&lt;br /&gt;
VMWare on a Windows OS host.&lt;br /&gt;
&lt;br /&gt;
See other notes on [[Dfu-util]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:OpenMoko| ]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973</id>
		<title>Getting Started with your Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973"/>
				<updated>2007-08-09T23:11:35Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Setting date and time */ added comment about screensaver possibly turning on when changing time&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some first steps guide for those who have just received their first Neo1973 hardware&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Inserting the battery ===&lt;br /&gt;
&lt;br /&gt;
Remove the back cover (see just the first step of [[Disassembling Neo1973]]).&lt;br /&gt;
&lt;br /&gt;
See notes below on inserting the SIM, the SD card, and the battery (this page needs to be reorganized).&lt;br /&gt;
&lt;br /&gt;
=== Powering up the phone ===&lt;br /&gt;
[[Image:Neo1973_uboot_splash.jpg|200px|thumb|bootloader splash screen]]&lt;br /&gt;
Just hitting the power button (depending on your [[u-boot]] version you have to press for &amp;gt;= 5 seconds) should get the phone first into the bootloader, then boot the kernel, and get into  X/OpenMoko. The shipped battery typically has enough charge to boot up directly without charging through the usb cable first.&lt;br /&gt;
&lt;br /&gt;
Once you have pressed the power button sufficiently long, the vibrator makes a short pulse and the screen backlight turns on. You can now release the power button and watch the phone booting.&lt;br /&gt;
&lt;br /&gt;
If the battery is not sufficiently charged, the phone will not turn on, even if the usb cable is plugged in.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the Neo1973 GTA01Bv4 ===&lt;br /&gt;
The GTA01Bv4 devices that are currently shipping do not boot out of the box.  Flashing the phone with the latest kernel and supporting file system (&amp;quot;rootfs&amp;quot;) is required before the phone will successfully boot.&lt;br /&gt;
&lt;br /&gt;
Read more information at about [[Flashing openmoko]].&lt;br /&gt;
&lt;br /&gt;
=== Powering down the phone ===&lt;br /&gt;
&lt;br /&gt;
==== While in bootloader mode, or if the phone has crashed ====&lt;br /&gt;
&lt;br /&gt;
If you press the power button for 9 seconds, the phone will switch off.  You can notice this by the backlight going dark.&lt;br /&gt;
&lt;br /&gt;
==== While running a full linux system with userspace ====&lt;br /&gt;
&lt;br /&gt;
In this mode, a power-button press of 5 seconds will be sufficient.  After this, the init process will take care of safely shutting down the phone, which might take up to 20 extra seconds.  The X server should get killed, you should drop back to a (garbled) console, and it should finally switch off - much like a regular Linux PC.&lt;br /&gt;
&lt;br /&gt;
=== Battery charging ===&lt;br /&gt;
&lt;br /&gt;
The [[Neo1973]] supports two charging modes: One 100mA charge mode (called pre-charge) and 500mA (called fast charge).  Charging is always done via the USB socket.  You can use any USB-A to USB-mini-B cable to connect the phone to any USB host.&lt;br /&gt;
&lt;br /&gt;
==== While in u-boot ====&lt;br /&gt;
&lt;br /&gt;
While you are in u-boot mode, the phone only charges with 100mA by default.  (This will change in one of the future revisions).&lt;br /&gt;
&lt;br /&gt;
However, using the u-boot console you can manually enable fast charging. See [[U-boot#Battery_charger_related]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== While in Linux ====&lt;br /&gt;
&lt;br /&gt;
As soon as the phone is connected via USB cable, it will charge.  However, the default charging current is only 100mA, way too little if you want to operate the phone and charge at the same time. &lt;br /&gt;
&lt;br /&gt;
If your USB upstream port is capable of supplying 500mA, then it will configure the Neo1973 accordingly and use 500mA charging mode.  You can notice this by the following line in the kernel log (/var/log/messages) of the laptop/desktop your Neo1973 is hooked up to&lt;br /&gt;
 usb0: full speed config #1: 500 mA, Ethernet Gadget, using CDC Ethernet&lt;br /&gt;
&lt;br /&gt;
=== Inserting the SIM card (optional) ===&lt;br /&gt;
&lt;br /&gt;
The slot is found just under the battery.  The card holder has arrows indicating which way to push it to unlock it - make sure you don't open it with force when it's locked or it may break.  Insert the SIM so that the pads make contact and push the holder firmly until it makes a click, then lock it - otherwise the card will not be detected.&lt;br /&gt;
&lt;br /&gt;
To check if the SIM card is inserted correctly in Linux, you can have a look in gsmd logs or use the instructions detailed in the [[Manually using GSM]] page and issue the ''AT+CIMI'' command.&lt;br /&gt;
&lt;br /&gt;
=== Using your micro-SD card ===&lt;br /&gt;
&lt;br /&gt;
You should have received a memory card with your phone. You might want to copy some mp3 (or better Ogg Vorbis) files to it to try media playback.&lt;br /&gt;
&lt;br /&gt;
Open the SIM card holder (see above) and gently slide the micro-SD shield toward the battery contacts. Lift up the shield and insert the card, contacts first and away from the shield side. Rotate it shut and gently slide the shield away from the battery contacts to lock it closed.&lt;br /&gt;
&lt;br /&gt;
The card should automatically be available under /media/card the next time you boot. You can test it and your audio drivers at the same time by playing an mp3 from it. See [[Neo1973 Audio Subsystem]].&lt;br /&gt;
&lt;br /&gt;
A small video howto (SIM and microSD) is available on google video: http://video.google.de/videoplay?docid=-8343770443102960945&lt;br /&gt;
&lt;br /&gt;
== Getting shell access on the phone ==&lt;br /&gt;
&lt;br /&gt;
=== By using the terminal emulator and on-screen keyboard ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Click&amp;quot; (using a stylus) the top-left arrow icon to get a drop-down menu with &amp;quot;Media&amp;quot;, &amp;quot;Settings&amp;quot;, &amp;quot;Utilities&amp;quot; and &amp;quot;Desktop&amp;quot;.  Choose &amp;quot;Utilities-&amp;gt;Panel-&amp;gt;Input Manager&amp;quot;, and a keyboard icon will appear on the top bar.  You can get an on-screen keyboard at any time by choosing it.&lt;br /&gt;
&lt;br /&gt;
With newer images, the keyboard comes up when you tap the white box in the top bar.&lt;br /&gt;
&lt;br /&gt;
You can choose between different keyboard layouts and the stroke recognizer by dragging from the white box and releasing it to the right of the box.&lt;br /&gt;
&lt;br /&gt;
From the desktop, choose &amp;quot;Active tasks-&amp;gt;rxvt&amp;quot; to get a root shell.&lt;br /&gt;
&lt;br /&gt;
[[Terminal]] is in the top level menu in recent images.&lt;br /&gt;
&lt;br /&gt;
=== By using Ethernet emulation over a USB cable ===&lt;br /&gt;
&lt;br /&gt;
The standard Neo1973 Linux [[kernel]] has support for the &amp;quot;cdc_ether USB gadget&amp;quot;, i.e. a standard implementation of how to emulate an Ethernet device over USB.&lt;br /&gt;
&lt;br /&gt;
As soon as the kernel is up and running, and you have the phone connected via USB, you should get a '''usb0''' device on your host.  &lt;br /&gt;
&lt;br /&gt;
The Phone will have the IPv4 address 192.168.0.202/24.  You can run `ifconfig` in the terminal on the phone to verify this (this is optional, just check it if it doesn't work given the instructions below)&lt;br /&gt;
&lt;br /&gt;
If you plug a USB cable into a laptop running Linux, you'll likely see the &amp;quot;cdc_ether&amp;quot; kernel module being loaded and a usb0 network interface appear.  &lt;br /&gt;
&lt;br /&gt;
On the '''host PC''', you should then configure your interface to 192.168.0.200 by using&lt;br /&gt;
 # ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Then you should be able to&lt;br /&gt;
 # ping 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
and last, but not least&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Once you press 'enter' (empty password), you should now have a root login.&lt;br /&gt;
&lt;br /&gt;
See [[USB_Networking]] for more details, including instructions on how to automatically setup masquerading so that your phone can get access to the internet through the host PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== By using the debug board/serial/JTAG ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Debug Board#Usage_Instructions]]&lt;br /&gt;
&lt;br /&gt;
== Getting access to the bootloader console ==&lt;br /&gt;
&lt;br /&gt;
Please see [[u-boot#Using_usbtty_from_Linux]]&lt;br /&gt;
&lt;br /&gt;
== Using Audio ==&lt;br /&gt;
=== Enable Internal Speaker and Mic in Phone Calls ===&lt;br /&gt;
If you got no Speaker and Mic during a Call you need to load the &amp;quot;gsmhandset.state&amp;quot; alsa-configfile&lt;br /&gt;
&lt;br /&gt;
 alsactl -f /etc/alsa/gsmhandset.state restore&lt;br /&gt;
&lt;br /&gt;
Maybe you need to load another .state file for playing mp3 or a BT-Headset see in /etc/alsa/&lt;br /&gt;
&lt;br /&gt;
To hear something you can find an .au file (or convert a .wav into an .au by using the sox tool):&lt;br /&gt;
&lt;br /&gt;
 sox ringtone_thereisnophone.wav -t raw -r 8012 -u -b -c 1 rigtone_thereisnophone.au&lt;br /&gt;
&lt;br /&gt;
copy it to the device and run&lt;br /&gt;
&lt;br /&gt;
 cat ringtone_thereisnophone.au &amp;gt; /dev/dsp&lt;br /&gt;
&lt;br /&gt;
== Useful commands in Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Suspending ===&lt;br /&gt;
&lt;br /&gt;
Writing &amp;quot;mem&amp;quot; into ''/sys/power/state'' tells Linux to suspend - it will enter a low power mode where only the GSM and RAM are powered up and the CPU sleeps.  It will persist in this state until a wake-up event arrives.  Some currently enabled wake-up events are: AUX or POWER key press, USB cable detect.&lt;br /&gt;
&lt;br /&gt;
If you're connected over ssh, sshd will stop responding when the OS suspends, so to avoid locking up your ssh client, use the command&lt;br /&gt;
 # (sleep 1; echo mem &amp;gt; /sys/power/state) &amp;amp; exit&lt;br /&gt;
&lt;br /&gt;
=== Initial backup ===&lt;br /&gt;
&lt;br /&gt;
After getting your new Neo1973 booted for the first time you might want to make a back up of the original flash chip contents on your PC, before you overwrite the flash with a custom image or just update to a newer build.  &lt;br /&gt;
&lt;br /&gt;
{{note|For phase 0 developers only (GTA01Bv4 shippment 0, '''not &amp;amp;gt; 0 '''): This is a good idea because there are parts in the root filesystem that can't be distributed over internet so they are only found in the shipped ROM (see the [[GPS]] driver).}}&lt;br /&gt;
&lt;br /&gt;
One easy way to back up all of the Flash, that doesn't require installing any special software, is with ''netcat'' over the [[USB Networking|USB ethernet]].  The following commands can be used for that.&lt;br /&gt;
{|&lt;br /&gt;
! On the host !! On the target&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock0&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock1&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock2&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock3&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /dev/mtdblock0 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock1 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock2 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock3 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock4 | nc 192.168.0.200 20000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This stores the five NAND partitions in files named mtdblock*.  Knowing the partition layout (u-boot &amp;quot;mtdparts&amp;quot; command or Linux dmesg) you can restore the whole flash with it.&lt;br /&gt;
&lt;br /&gt;
=== Setting date and time ===&lt;br /&gt;
&lt;br /&gt;
To set the date and time you need to open a terminal or ssh to the device. To set the date and time to August 9 19:02 2007 type:&lt;br /&gt;
&lt;br /&gt;
 # date -s 080919022007&lt;br /&gt;
&lt;br /&gt;
The screensaver might turn on as you execute this command - just tap the screen to get back.&lt;br /&gt;
&lt;br /&gt;
Now, you need to synchronize the time with the hardware date/time by typing:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc&lt;br /&gt;
&lt;br /&gt;
=== Where to from here ===&lt;br /&gt;
&lt;br /&gt;
You'll probably want to play with some of the interesting hardware in this device. Obviously, you can explore the applications available through the touch-screen interface. But for those who prefer doing things more in the raw from a shell prompt, you can [[Manually_using_GSM | manually use GSM]], [[Manually_using_SMS | manually use SMS]],  or you can start playing with the [[GPS]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;{{Languages|Getting_Started_with_your_Neo1973}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Neo1973_Phase_1_related]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973</id>
		<title>Getting Started with your Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973"/>
				<updated>2007-08-09T23:06:16Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* By using the terminal emulator and on-screen keyboard */  Keyboard layout changing and link to Terminal app&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some first steps guide for those who have just received their first Neo1973 hardware&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Inserting the battery ===&lt;br /&gt;
&lt;br /&gt;
Remove the back cover (see just the first step of [[Disassembling Neo1973]]).&lt;br /&gt;
&lt;br /&gt;
See notes below on inserting the SIM, the SD card, and the battery (this page needs to be reorganized).&lt;br /&gt;
&lt;br /&gt;
=== Powering up the phone ===&lt;br /&gt;
[[Image:Neo1973_uboot_splash.jpg|200px|thumb|bootloader splash screen]]&lt;br /&gt;
Just hitting the power button (depending on your [[u-boot]] version you have to press for &amp;gt;= 5 seconds) should get the phone first into the bootloader, then boot the kernel, and get into  X/OpenMoko. The shipped battery typically has enough charge to boot up directly without charging through the usb cable first.&lt;br /&gt;
&lt;br /&gt;
Once you have pressed the power button sufficiently long, the vibrator makes a short pulse and the screen backlight turns on. You can now release the power button and watch the phone booting.&lt;br /&gt;
&lt;br /&gt;
If the battery is not sufficiently charged, the phone will not turn on, even if the usb cable is plugged in.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the Neo1973 GTA01Bv4 ===&lt;br /&gt;
The GTA01Bv4 devices that are currently shipping do not boot out of the box.  Flashing the phone with the latest kernel and supporting file system (&amp;quot;rootfs&amp;quot;) is required before the phone will successfully boot.&lt;br /&gt;
&lt;br /&gt;
Read more information at about [[Flashing openmoko]].&lt;br /&gt;
&lt;br /&gt;
=== Powering down the phone ===&lt;br /&gt;
&lt;br /&gt;
==== While in bootloader mode, or if the phone has crashed ====&lt;br /&gt;
&lt;br /&gt;
If you press the power button for 9 seconds, the phone will switch off.  You can notice this by the backlight going dark.&lt;br /&gt;
&lt;br /&gt;
==== While running a full linux system with userspace ====&lt;br /&gt;
&lt;br /&gt;
In this mode, a power-button press of 5 seconds will be sufficient.  After this, the init process will take care of safely shutting down the phone, which might take up to 20 extra seconds.  The X server should get killed, you should drop back to a (garbled) console, and it should finally switch off - much like a regular Linux PC.&lt;br /&gt;
&lt;br /&gt;
=== Battery charging ===&lt;br /&gt;
&lt;br /&gt;
The [[Neo1973]] supports two charging modes: One 100mA charge mode (called pre-charge) and 500mA (called fast charge).  Charging is always done via the USB socket.  You can use any USB-A to USB-mini-B cable to connect the phone to any USB host.&lt;br /&gt;
&lt;br /&gt;
==== While in u-boot ====&lt;br /&gt;
&lt;br /&gt;
While you are in u-boot mode, the phone only charges with 100mA by default.  (This will change in one of the future revisions).&lt;br /&gt;
&lt;br /&gt;
However, using the u-boot console you can manually enable fast charging. See [[U-boot#Battery_charger_related]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== While in Linux ====&lt;br /&gt;
&lt;br /&gt;
As soon as the phone is connected via USB cable, it will charge.  However, the default charging current is only 100mA, way too little if you want to operate the phone and charge at the same time. &lt;br /&gt;
&lt;br /&gt;
If your USB upstream port is capable of supplying 500mA, then it will configure the Neo1973 accordingly and use 500mA charging mode.  You can notice this by the following line in the kernel log (/var/log/messages) of the laptop/desktop your Neo1973 is hooked up to&lt;br /&gt;
 usb0: full speed config #1: 500 mA, Ethernet Gadget, using CDC Ethernet&lt;br /&gt;
&lt;br /&gt;
=== Inserting the SIM card (optional) ===&lt;br /&gt;
&lt;br /&gt;
The slot is found just under the battery.  The card holder has arrows indicating which way to push it to unlock it - make sure you don't open it with force when it's locked or it may break.  Insert the SIM so that the pads make contact and push the holder firmly until it makes a click, then lock it - otherwise the card will not be detected.&lt;br /&gt;
&lt;br /&gt;
To check if the SIM card is inserted correctly in Linux, you can have a look in gsmd logs or use the instructions detailed in the [[Manually using GSM]] page and issue the ''AT+CIMI'' command.&lt;br /&gt;
&lt;br /&gt;
=== Using your micro-SD card ===&lt;br /&gt;
&lt;br /&gt;
You should have received a memory card with your phone. You might want to copy some mp3 (or better Ogg Vorbis) files to it to try media playback.&lt;br /&gt;
&lt;br /&gt;
Open the SIM card holder (see above) and gently slide the micro-SD shield toward the battery contacts. Lift up the shield and insert the card, contacts first and away from the shield side. Rotate it shut and gently slide the shield away from the battery contacts to lock it closed.&lt;br /&gt;
&lt;br /&gt;
The card should automatically be available under /media/card the next time you boot. You can test it and your audio drivers at the same time by playing an mp3 from it. See [[Neo1973 Audio Subsystem]].&lt;br /&gt;
&lt;br /&gt;
A small video howto (SIM and microSD) is available on google video: http://video.google.de/videoplay?docid=-8343770443102960945&lt;br /&gt;
&lt;br /&gt;
== Getting shell access on the phone ==&lt;br /&gt;
&lt;br /&gt;
=== By using the terminal emulator and on-screen keyboard ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Click&amp;quot; (using a stylus) the top-left arrow icon to get a drop-down menu with &amp;quot;Media&amp;quot;, &amp;quot;Settings&amp;quot;, &amp;quot;Utilities&amp;quot; and &amp;quot;Desktop&amp;quot;.  Choose &amp;quot;Utilities-&amp;gt;Panel-&amp;gt;Input Manager&amp;quot;, and a keyboard icon will appear on the top bar.  You can get an on-screen keyboard at any time by choosing it.&lt;br /&gt;
&lt;br /&gt;
With newer images, the keyboard comes up when you tap the white box in the top bar.&lt;br /&gt;
&lt;br /&gt;
You can choose between different keyboard layouts and the stroke recognizer by dragging from the white box and releasing it to the right of the box.&lt;br /&gt;
&lt;br /&gt;
From the desktop, choose &amp;quot;Active tasks-&amp;gt;rxvt&amp;quot; to get a root shell.&lt;br /&gt;
&lt;br /&gt;
[[Terminal]] is in the top level menu in recent images.&lt;br /&gt;
&lt;br /&gt;
=== By using Ethernet emulation over a USB cable ===&lt;br /&gt;
&lt;br /&gt;
The standard Neo1973 Linux [[kernel]] has support for the &amp;quot;cdc_ether USB gadget&amp;quot;, i.e. a standard implementation of how to emulate an Ethernet device over USB.&lt;br /&gt;
&lt;br /&gt;
As soon as the kernel is up and running, and you have the phone connected via USB, you should get a '''usb0''' device on your host.  &lt;br /&gt;
&lt;br /&gt;
The Phone will have the IPv4 address 192.168.0.202/24.  You can run `ifconfig` in the terminal on the phone to verify this (this is optional, just check it if it doesn't work given the instructions below)&lt;br /&gt;
&lt;br /&gt;
If you plug a USB cable into a laptop running Linux, you'll likely see the &amp;quot;cdc_ether&amp;quot; kernel module being loaded and a usb0 network interface appear.  &lt;br /&gt;
&lt;br /&gt;
On the '''host PC''', you should then configure your interface to 192.168.0.200 by using&lt;br /&gt;
 # ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Then you should be able to&lt;br /&gt;
 # ping 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
and last, but not least&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Once you press 'enter' (empty password), you should now have a root login.&lt;br /&gt;
&lt;br /&gt;
See [[USB_Networking]] for more details, including instructions on how to automatically setup masquerading so that your phone can get access to the internet through the host PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== By using the debug board/serial/JTAG ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Debug Board#Usage_Instructions]]&lt;br /&gt;
&lt;br /&gt;
== Getting access to the bootloader console ==&lt;br /&gt;
&lt;br /&gt;
Please see [[u-boot#Using_usbtty_from_Linux]]&lt;br /&gt;
&lt;br /&gt;
== Using Audio ==&lt;br /&gt;
=== Enable Internal Speaker and Mic in Phone Calls ===&lt;br /&gt;
If you got no Speaker and Mic during a Call you need to load the &amp;quot;gsmhandset.state&amp;quot; alsa-configfile&lt;br /&gt;
&lt;br /&gt;
 alsactl -f /etc/alsa/gsmhandset.state restore&lt;br /&gt;
&lt;br /&gt;
Maybe you need to load another .state file for playing mp3 or a BT-Headset see in /etc/alsa/&lt;br /&gt;
&lt;br /&gt;
To hear something you can find an .au file (or convert a .wav into an .au by using the sox tool):&lt;br /&gt;
&lt;br /&gt;
 sox ringtone_thereisnophone.wav -t raw -r 8012 -u -b -c 1 rigtone_thereisnophone.au&lt;br /&gt;
&lt;br /&gt;
copy it to the device and run&lt;br /&gt;
&lt;br /&gt;
 cat ringtone_thereisnophone.au &amp;gt; /dev/dsp&lt;br /&gt;
&lt;br /&gt;
== Useful commands in Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Suspending ===&lt;br /&gt;
&lt;br /&gt;
Writing &amp;quot;mem&amp;quot; into ''/sys/power/state'' tells Linux to suspend - it will enter a low power mode where only the GSM and RAM are powered up and the CPU sleeps.  It will persist in this state until a wake-up event arrives.  Some currently enabled wake-up events are: AUX or POWER key press, USB cable detect.&lt;br /&gt;
&lt;br /&gt;
If you're connected over ssh, sshd will stop responding when the OS suspends, so to avoid locking up your ssh client, use the command&lt;br /&gt;
 # (sleep 1; echo mem &amp;gt; /sys/power/state) &amp;amp; exit&lt;br /&gt;
&lt;br /&gt;
=== Initial backup ===&lt;br /&gt;
&lt;br /&gt;
After getting your new Neo1973 booted for the first time you might want to make a back up of the original flash chip contents on your PC, before you overwrite the flash with a custom image or just update to a newer build.  &lt;br /&gt;
&lt;br /&gt;
{{note|For phase 0 developers only (GTA01Bv4 shippment 0, '''not &amp;amp;gt; 0 '''): This is a good idea because there are parts in the root filesystem that can't be distributed over internet so they are only found in the shipped ROM (see the [[GPS]] driver).}}&lt;br /&gt;
&lt;br /&gt;
One easy way to back up all of the Flash, that doesn't require installing any special software, is with ''netcat'' over the [[USB Networking|USB ethernet]].  The following commands can be used for that.&lt;br /&gt;
{|&lt;br /&gt;
! On the host !! On the target&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock0&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock1&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock2&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock3&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /dev/mtdblock0 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock1 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock2 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock3 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock4 | nc 192.168.0.200 20000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This stores the five NAND partitions in files named mtdblock*.  Knowing the partition layout (u-boot &amp;quot;mtdparts&amp;quot; command or Linux dmesg) you can restore the whole flash with it.&lt;br /&gt;
&lt;br /&gt;
=== Setting date and time ===&lt;br /&gt;
&lt;br /&gt;
To set the date and time you need to open a terminal or ssh to the device. To set the date and time to August 9 19:02 2007 type:&lt;br /&gt;
&lt;br /&gt;
 # date -s 080919022007&lt;br /&gt;
&lt;br /&gt;
Now, you need to synchronize the time with the hardware date/time by typing:&lt;br /&gt;
&lt;br /&gt;
 # hwclock --systohc&lt;br /&gt;
&lt;br /&gt;
=== Where to from here ===&lt;br /&gt;
&lt;br /&gt;
You'll probably want to play with some of the interesting hardware in this device. Obviously, you can explore the applications available through the touch-screen interface. But for those who prefer doing things more in the raw from a shell prompt, you can [[Manually_using_GSM | manually use GSM]], [[Manually_using_SMS | manually use SMS]],  or you can start playing with the [[GPS]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;{{Languages|Getting_Started_with_your_Neo1973}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Neo1973_Phase_1_related]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973</id>
		<title>Getting Started with your Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Getting_Started_with_your_Neo_1973"/>
				<updated>2007-08-09T16:02:11Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Powering up the phone */ added note that battery typically has enough charge when shipped to boot up.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some first steps guide for those who have just received their first Neo1973 hardware&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Inserting the battery ===&lt;br /&gt;
&lt;br /&gt;
Remove the back cover (see just the first step of [[Disassembling Neo1973]]).&lt;br /&gt;
&lt;br /&gt;
See notes below on inserting the SIM, the SD card, and the battery (this page needs to be reorganized).&lt;br /&gt;
&lt;br /&gt;
=== Powering up the phone ===&lt;br /&gt;
[[Image:Neo1973_uboot_splash.jpg|200px|thumb|bootloader splash screen]]&lt;br /&gt;
Just hitting the power button (depending on your [[u-boot]] version you have to press for &amp;gt;= 5 seconds) should get the phone first into the bootloader, then boot the kernel, and get into  X/OpenMoko. The shipped battery typically has enough charge to boot up directly without charging through the usb cable first.&lt;br /&gt;
&lt;br /&gt;
Once you have pressed the power button sufficiently long, the vibrator makes a short pulse and the screen backlight turns on. You can now release the power button and watch the phone booting.&lt;br /&gt;
&lt;br /&gt;
If the battery is not sufficiently charged, the phone will not turn on, even if the usb cable is plugged in.&lt;br /&gt;
&lt;br /&gt;
=== Flashing the Neo1973 GTA01Bv4 ===&lt;br /&gt;
The GTA01Bv4 devices that are currently shipping do not boot out of the box.  Flashing the phone with the latest kernel and supporting file system (&amp;quot;rootfs&amp;quot;) is required before the phone will successfully boot.&lt;br /&gt;
&lt;br /&gt;
Read more information at about [[Flashing openmoko]].&lt;br /&gt;
&lt;br /&gt;
=== Powering down the phone ===&lt;br /&gt;
&lt;br /&gt;
==== While in bootloader mode, or if the phone has crashed ====&lt;br /&gt;
&lt;br /&gt;
If you press the power button for 9 seconds, the phone will switch off.  You can notice this by the backlight going dark.&lt;br /&gt;
&lt;br /&gt;
==== While running a full linux system with userspace ====&lt;br /&gt;
&lt;br /&gt;
In this mode, a power-button press of 5 seconds will be sufficient.  After this, the init process will take care of safely shutting down the phone, which might take up to 20 extra seconds.  The X server should get killed, you should drop back to a (garbled) console, and it should finally switch off - much like a regular Linux PC.&lt;br /&gt;
&lt;br /&gt;
=== Battery charging ===&lt;br /&gt;
&lt;br /&gt;
The [[Neo1973]] supports two charging modes: One 100mA charge mode (called pre-charge) and 500mA (called fast charge).  Charging is always done via the USB socket.  You can use any USB-A to USB-mini-B cable to connect the phone to any USB host.&lt;br /&gt;
&lt;br /&gt;
==== While in u-boot ====&lt;br /&gt;
&lt;br /&gt;
While you are in u-boot mode, the phone only charges with 100mA by default.  (This will change in one of the future revisions).&lt;br /&gt;
&lt;br /&gt;
However, using the u-boot console you can manually enable fast charging. See [[U-boot#Battery_charger_related]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== While in Linux ====&lt;br /&gt;
&lt;br /&gt;
As soon as the phone is connected via USB cable, it will charge.  However, the default charging current is only 100mA, way too little if you want to operate the phone and charge at the same time. &lt;br /&gt;
&lt;br /&gt;
If your USB upstream port is capable of supplying 500mA, then it will configure the Neo1973 accordingly and use 500mA charging mode.  You can notice this by the following line in the kernel log (/var/log/messages) of the laptop/desktop your Neo1973 is hooked up too&lt;br /&gt;
 usb0: full speed config #1: 500 mA, Ethernet Gadget, using CDC Ethernet&lt;br /&gt;
&lt;br /&gt;
=== Inserting the SIM card (optional) ===&lt;br /&gt;
&lt;br /&gt;
The slot is found just under the battery.  The card holder has arrows indicating which way to push it to unlock it - make sure you don't open it with force when it's locked or it may break.  Insert the SIM so that the pads make contact and push the holder firmly until it makes a click, then lock it - otherwise the card will not be detected.&lt;br /&gt;
&lt;br /&gt;
To check if the SIM card is inserted correctly in Linux, you can have a look in gsmd logs or use the instructions detailed in the [[Manually using GSM]] page and issue the ''AT+CIMI'' command.&lt;br /&gt;
&lt;br /&gt;
=== Using your micro-SD card ===&lt;br /&gt;
&lt;br /&gt;
You should have received a memory card with your phone. You might want to copy some mp3 (or better Ogg Vorbis) files to it to try media playback.&lt;br /&gt;
&lt;br /&gt;
Open the SIM card holder (see above) and gently slide the micro-SD shield toward the battery contacts. Lift up the shield and insert the card, contacts first and away from the shield side. Rotate it shut and gently slide the shield away from the battery contacts to lock it closed.&lt;br /&gt;
&lt;br /&gt;
The card should automatically be available under /media/card the next time you boot. You can test it and your audio drivers at the same time by playing an mp3 from it. See [[Neo1973 Audio Subsystem]].&lt;br /&gt;
&lt;br /&gt;
A small video howto (SIM and microSD) is available on google video: http://video.google.de/videoplay?docid=-8343770443102960945&lt;br /&gt;
&lt;br /&gt;
== Getting shell access on the phone ==&lt;br /&gt;
&lt;br /&gt;
=== By using the terminal emulator and on-screen keyboard ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Click&amp;quot; (using a stylus) the top-left arrow icon to get a drop-down menu with &amp;quot;Media&amp;quot;, &amp;quot;Settings&amp;quot;, &amp;quot;Utilities&amp;quot; and &amp;quot;Desktop&amp;quot;.  Choose &amp;quot;Utilities-&amp;gt;Panel-&amp;gt;Input Manager&amp;quot;, and a keyboard icon will appear on the top bar.  You can get an on-screen keyboard at any time by choosing it.&lt;br /&gt;
&lt;br /&gt;
With newer images, the keyboard comes up when you tap the white box in the top bar.&lt;br /&gt;
&lt;br /&gt;
From the desktop, choose &amp;quot;Active tasks-&amp;gt;rxvt&amp;quot; to get a root shell.&lt;br /&gt;
&lt;br /&gt;
Terminal is in the top level menu in recent images.&lt;br /&gt;
&lt;br /&gt;
=== By using Ethernet emulation over a USB cable ===&lt;br /&gt;
&lt;br /&gt;
The standard Neo1973 Linux [[kernel]] has support for the &amp;quot;cdc_ether USB gadget&amp;quot;, i.e. a standard implementation of how to emulate an Ethernet device over USB.&lt;br /&gt;
&lt;br /&gt;
As soon as the kernel is up and running, and you have the phone connected via USB, you should get a '''usb0''' device on your host.  &lt;br /&gt;
&lt;br /&gt;
The Phone will have the IPv4 address 192.168.0.202/24.  You can run `ifconfig` in the terminal on the phone to verify this (this is optional, just check it if it doesn't work given the instructions below)&lt;br /&gt;
&lt;br /&gt;
If you plug a USB cable into a laptop running Linux, you'll likely see the &amp;quot;cdc_ether&amp;quot; kernel module being loaded and a usb0 network interface appear.  &lt;br /&gt;
&lt;br /&gt;
On the '''host PC''', you should then configure your interface to 192.168.0.200 by using&lt;br /&gt;
 # ifconfig usb0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Then you should be able to&lt;br /&gt;
 # ping 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
and last, but not least&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Once you press 'enter' (empty password), you should now have a root login.&lt;br /&gt;
&lt;br /&gt;
See [[USB_Networking]] for more details, including instructions on how to automatically setup masquerading so that your phone can get access to the internet through the host PC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== By using the debug board/serial/JTAG ===&lt;br /&gt;
&lt;br /&gt;
Please see [[Debug Board#Usage_Instructions]]&lt;br /&gt;
&lt;br /&gt;
== Getting access to the bootloader console ==&lt;br /&gt;
&lt;br /&gt;
Please see [[u-boot#Using_usbtty_from_Linux]]&lt;br /&gt;
&lt;br /&gt;
== Using Audio ==&lt;br /&gt;
=== Enable Internal Speaker and Mic in Phone Calls ===&lt;br /&gt;
If you got no Speaker and Mic during a Call you need to load the &amp;quot;gsmhandset.state&amp;quot; alsa-configfile&lt;br /&gt;
&lt;br /&gt;
 alsactl -f /etc/alsa/gsmhandset.state restore&lt;br /&gt;
&lt;br /&gt;
Maybe you need to load another .state file for playing mp3 or a BT-Headset see in /etc/alsa/&lt;br /&gt;
&lt;br /&gt;
== Useful commands in Linux ==&lt;br /&gt;
&lt;br /&gt;
=== Suspending ===&lt;br /&gt;
&lt;br /&gt;
Writing &amp;quot;mem&amp;quot; into ''/sys/power/state'' tells Linux to suspend - it will enter a low power mode where only the GSM and RAM are powered up and the CPU sleeps.  It will persist in this state until a wake-up event arrives.  Some currently enabled wake-up events are: AUX or POWER key press, USB cable detect.&lt;br /&gt;
&lt;br /&gt;
If you're connected over ssh, sshd will stop responding when the OS suspends, so to avoid locking up your ssh client, use the command&lt;br /&gt;
 # (sleep 1; echo mem &amp;gt; /sys/power/state) &amp;amp; exit&lt;br /&gt;
&lt;br /&gt;
=== Initial backup ===&lt;br /&gt;
&lt;br /&gt;
After getting your new Neo1973 booted for the first time you might want to make a back up of the original flash chip contents on your PC, before you overwrite the flash with a custom image or just update to a newer build.  &lt;br /&gt;
&lt;br /&gt;
{{note|For phase 0 developers only (GTA01Bv4 shippment 0, '''not &amp;amp;gt; 0 '''): This is a good idea because there are parts in the root filesystem that can't be distributed over internet so they are only found in the shipped ROM (see the [[GPS]] driver).}}&lt;br /&gt;
&lt;br /&gt;
One easy way to back up all of the Flash, that doesn't require installing any special software, is with ''netcat'' over the [[USB Networking|USB ethernet]].  The following commands can be used for that.&lt;br /&gt;
{|&lt;br /&gt;
! On the host !! On the target&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock0&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock1&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock2&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock3&lt;br /&gt;
$ netcat -l -p 20000 &amp;gt; mtdblock4&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /dev/mtdblock0 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock1 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock2 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock3 | nc 192.168.0.200 20000&lt;br /&gt;
# cat /dev/mtdblock4 | nc 192.168.0.200 20000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This stores the five NAND partitions in files named mtdblock*.  Knowing the partition layout (u-boot &amp;quot;mtdparts&amp;quot; command or Linux dmesg) you can restore the whole flash with it.&lt;br /&gt;
&lt;br /&gt;
=== Where to from here ===&lt;br /&gt;
&lt;br /&gt;
You'll probably want to play with some of the interesting hardware in this device. Obviously, you can explore the applications available through the touch-screen interface. But for those who prefer doing things more in the raw from a shell prompt, you can [[Manually_using_GSM | manually use GSM]], [[Manually_using_SMS | manually use SMS]],  or you can start playing with the [[GPS]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;bottom&amp;quot;&amp;gt;{{Languages|Getting_Started_with_your_Neo1973}}&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Neo1973_Phase_1_related]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Helsinki</id>
		<title>Openmoko Local Groups: Helsinki</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Helsinki"/>
				<updated>2007-08-07T04:59:48Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: += xkr47&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Talk:OpenMoko_Local_Groups:_Helsinki|discussion]]&lt;br /&gt;
&lt;br /&gt;
{|border=1&lt;br /&gt;
!Name&lt;br /&gt;
!Skills&lt;br /&gt;
!Level of Interest&lt;br /&gt;
!Location&lt;br /&gt;
!Other&lt;br /&gt;
|-&lt;br /&gt;
|Mikko Rauhala&lt;br /&gt;
|Sysadmin, networking, programming, propaganda&lt;br /&gt;
|Awaiting GTA01Bv4, Neo Advanced&lt;br /&gt;
|Pihlajisto, Helsinki&lt;br /&gt;
|Speaking about OpenMoko at FUUG cruise (tba) and Linux theme night (Nov. 14th)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:csnellman|Carl Snellman]]&lt;br /&gt;
|Programming&lt;br /&gt;
|Application development/Location based services&lt;br /&gt;
|Helsinki (currently @ Palo Alto, CA, USA)&lt;br /&gt;
|-&lt;br /&gt;
|[[User:raynet|Allan Savolainen]]&lt;br /&gt;
|Sysadmin, networking, programming&lt;br /&gt;
|Development; Location Aware Applications, Interaction with cars (OBD-II)&lt;br /&gt;
|Near Lahti, office in Helsinki&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Xkr47|Jonas Berlin]]&lt;br /&gt;
|Sysadmin, networking, programming&lt;br /&gt;
|Userspace-level framework &amp;amp;amp; application hacking; communicating with other computers over bluetooth &amp;amp; gprs&lt;br /&gt;
|Perkkaa, Espoo&lt;br /&gt;
|}&lt;br /&gt;
[[Category:OpenMoko_Local_Groups:_Helsinki]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Xkr47</id>
		<title>User:Xkr47</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Xkr47"/>
				<updated>2007-08-06T06:48:23Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: talk page link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Me:&lt;br /&gt;
* relationship with openmoko: [[Buying_Interest_List|phase 1 customer]]&lt;br /&gt;
* [http://xkr47.outerspace.dyndns.org/ my homepage]&lt;br /&gt;
* [http://sourceforge.net/people/viewprofile.php?user_id=66259 my computer-related skills]&lt;br /&gt;
* [http://www.google.com/search?q=xkr47+OR+jberlin%40niksula+OR+jberlin%40cc+OR+outerspace.dyndns.org my internet resumé]&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Wishlist for my openmoko:&lt;br /&gt;
&lt;br /&gt;
* basic telephony&lt;br /&gt;
* automatic [[Screen Saver|screensaver]] &amp;amp; locker&lt;br /&gt;
** require code/password/gesture to unlock&lt;br /&gt;
* [[Messages|SMS sending and reception]]&lt;br /&gt;
* SMS mirroring to home server&lt;br /&gt;
* remote GUI app connected to home server when SMS arrives / phone is ringing / other important event (battery low) in case I can't hear the phone when it's in my backpack&lt;br /&gt;
* MMS sending &amp;amp; reception - outgoing pics taken with external USB-connected digital camera&lt;br /&gt;
* Integration with local public transportation services which provides clickable maps --&amp;gt; GPS can be used to automatically &amp;quot;go home from wherever I happen to be&amp;quot;&lt;br /&gt;
* ssh client&lt;br /&gt;
* &amp;quot;Status&amp;quot; app or [[Today|similar]] with multiple small windows aka gadgets / widgets that report different stats e.g. ssh (for irc), SMS, missed calls, next calendar entries, profile, tv programme etc, [http://en.wikipedia.org/wiki/Digital_video_recorder DVR] status&lt;br /&gt;
* Switch to &amp;quot;status&amp;quot; app automatically if user idles long enough&lt;br /&gt;
* [[Calendar]]&lt;br /&gt;
* automatic (weekly or calender-based) and [[Clock|manual alarm clock]]&lt;br /&gt;
* [[Profiles|Profile]] changes:&lt;br /&gt;
** programmable - time, location &amp;amp; calendar based&lt;br /&gt;
** manual profile override with timeout - cinema, sleep, meeting&lt;br /&gt;
* allow use of event (incoming phone call, sms message etc) metadata (who called, what time) to override profile settings&lt;br /&gt;
* screensaver that shuts the screen completely off, not just the backlight&lt;br /&gt;
** one click in screensaver mode -&amp;gt; screen in &amp;quot;on&amp;quot; mode but backlight still off, tune X color settings so that the contrast is increased to improve readbility&lt;br /&gt;
** second click -&amp;gt; backlight on as well, color settings back to normal&lt;br /&gt;
* SMS writing with [[Applications#Finger-Based_Applications | fingers]] - maybe some basic 123 456 789 *0# [[Input Method|onscreen keyboard]] with [http://en.wikipedia.org/wiki/T9_(predictive_text) T9] or similar&lt;br /&gt;
* one-click publishing of pictures taken with external digital camera to home web server&lt;br /&gt;
&lt;br /&gt;
Hopefully my skills will let me implement at least some of these :)&lt;br /&gt;
&lt;br /&gt;
Feel free to comment anything on the [[User_talk:Xkr47|talk page]].&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/IPhone_(GTA01)</id>
		<title>IPhone (GTA01)</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/IPhone_(GTA01)"/>
				<updated>2007-07-09T07:04:16Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: Added release date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comparison between Apple iPhone and the &amp;quot;Open Source iPhone&amp;quot; Neo1973 ([http://wiki.openmoko.org/wiki/Neo1973#Phase_1_.28GTA01Bv4.29 (GTA01Bv4]) running OpenMoko Linux ==&lt;br /&gt;
{{Note|The Neo1973 revision this page is about is the [[Neo1973#Phase_1_.28GTA01Bv4.29|GTA01Bv4-revision]] that is announced for July 2007. For the later Neo1973 revision see [[IPhone|GTA02]]}}&lt;br /&gt;
Apple announced their [http://www.apple.com/iphone/technology/specs.html iPhone] at MacWorld 2007. It is fairly similar to the [http://lists.openmoko.org/pipermail/community/2007-January/001006.html FIC Neo1973] announced in the fall of 2006.&lt;br /&gt;
&lt;br /&gt;
iPhone UI Demo on youtube http://youtube.com/watch?v=YgW7or1TuFk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !Feature&lt;br /&gt;
 !iPhone&lt;br /&gt;
 !Neo1973&lt;br /&gt;
 |-&lt;br /&gt;
 |Announced&lt;br /&gt;
 |2007-01-09&lt;br /&gt;
 |2006-11-07&lt;br /&gt;
 |-&lt;br /&gt;
 |Dimensions&amp;lt;br /&amp;gt;[http://www.sizeasy.com/page/comp/153 visual comparison]&lt;br /&gt;
 |115 x 61 x 11.6 mm&lt;br /&gt;
 |120.7 x 62 x 18.5 mm&lt;br /&gt;
 |-&lt;br /&gt;
 |Weight&lt;br /&gt;
 |135 g&lt;br /&gt;
 |184 g&lt;br /&gt;
 |-&lt;br /&gt;
 |Screen&lt;br /&gt;
 |3.5&amp;quot; 320x480 at 160 ppi, multi-touch&lt;br /&gt;
 |2.8&amp;quot; 480x640 at 285 ppi, [http://lists.openmoko.org/pipermail/community/2006-December/000576.html maybe multi-touch later]&lt;br /&gt;
 |-&lt;br /&gt;
 |Storage&lt;br /&gt;
 |4 or 8 GiB&lt;br /&gt;
 |64 MB (expandable with [http://lists.openmoko.org/pipermail/community/2007-February/003156.html 2 GB microSD] - 512 MB microSD included in Standard Kit, 2 * 512 MB included in Advanced Kit)&lt;br /&gt;
 |-&lt;br /&gt;
 |CPU&lt;br /&gt;
 |Possibly Marvell XScale PXA3xx family or [http://www.arm.com/products/CPUs/ARM1176.html ARM1176JZF-S™] (with Coprocessor) (Source: [http://www.bitsundso.de/ Bits und so Podcast] [http://www.bitsundso.de/bus20/54/ #20], 8'40&amp;quot; to 9'30&amp;quot; [german language])&lt;br /&gt;
 |Samsung s3c2410 SoC @ 266 MHz ([http://lists.openmoko.org/pipermail/announce/2007-January/000000.html Source]) &lt;br /&gt;
 |-&lt;br /&gt;
 |RAM&lt;br /&gt;
 |&lt;br /&gt;
 |128MB&lt;br /&gt;
 |-&lt;br /&gt;
 |Wireless&lt;br /&gt;
 |GSM, WiFi (b/g), EDGE, Bluetooth 2.0 EDR&lt;br /&gt;
 |Quad-band GSM, GPRS Class12/CS4 2.5G (Not EDGE), Bluetooth 2.0 EDR in [[Neo1973|GTA01B_v04 and GTA02]]; WiFi: not in GTA01B_v4 but GTA02&lt;br /&gt;
 |-&lt;br /&gt;
 |Wireless Carrier&lt;br /&gt;
 |Locked to Apple-selected carrier&lt;br /&gt;
 |Unlocked - any GSM provider&lt;br /&gt;
 |-&lt;br /&gt;
 |Embedded devices&lt;br /&gt;
 |2 mpix camera, 4 buttons (power, volume, ringer, main menu), [http://en.wikipedia.org/wiki/Accelerometer accelerometer], ambient light sensor, proximity sensor&lt;br /&gt;
 |GPS, 2 buttons in [[Neo1973|GTA01B_v04 and GTA02]]&lt;br /&gt;
 |-&lt;br /&gt;
 |Operating system&lt;br /&gt;
 |OS X ([http://www.macworld.co.uk/ipod-itunes/news/index.cfm?newsid=16927 an optimised but full version of OS X])&lt;br /&gt;
 |[[OpenMoko]] Linux (Source code available)&lt;br /&gt;
 |-&lt;br /&gt;
 |Software&lt;br /&gt;
 |Basic PDA + PMP software included. Software can only be created by authorized companies ([http://apple.slashdot.org/article.pl?sid=07/01/12/0430200&amp;amp;from=rss Source])&lt;br /&gt;
 |Basic PDA included. Software can be created by normal users.&lt;br /&gt;
 |-&lt;br /&gt;
 |Video&lt;br /&gt;
 |Playback and No recording(?)&lt;br /&gt;
 |No recording. Maybe playback&lt;br /&gt;
 |-&lt;br /&gt;
 |Audio&lt;br /&gt;
 |Playback and recording, stereo speaker&lt;br /&gt;
 |Playback and recording, including playback of audio files via GSM and recording/playback of voice calls. [http://www.theinquirer.net/default.aspx?article=35590 2x1 watt stereo speaker] [http://gnumonks.org/~laforge/weblog/2007/01/24/ comment on performance], 2.5 mm jack&lt;br /&gt;
 |-&lt;br /&gt;
 |Connectors&lt;br /&gt;
 |USB 2.0 on proprietary iPod connector&lt;br /&gt;
 |Standard USB 1.1 (unpowered), with a Mini-B receptor (can be connected via adapter to both  host and client devices), [[Neo1973_Hardware#Changes_from_GTA01Bv3|exposed I2C, SPI and debug board connector]] inside case in all versions and Debug Board v2 (JTAG and serial console) in Advanced version&lt;br /&gt;
 |-&lt;br /&gt;
 |Opening case&lt;br /&gt;
 |[http://www.anandtech.com/printarticle.aspx?i=3026 voids warranty]&lt;br /&gt;
 |[http://lists.openmoko.org/pipermail/announce/2007-June/000013.html Advanced version] comes with guitar pick and Torx T6 screwdriver so you can [[Disassembling Neo1973|open case]].&lt;br /&gt;
 |-&lt;br /&gt;
 |Battery&lt;br /&gt;
 |Up to 5 hours Talk / Video / Browsing. Up to 16 hours Audio playback. Non-replaceable battery&lt;br /&gt;
 |replaceable 1.2 Ah battery charged via USB - &amp;quot;We really have no idea how long it will last you because this is the first phone where you are in total control. Blast everything: GSM, GPS, Bluetooth, backlight, etc... and you should get about four hours, though.&amp;quot; [http://www.openmoko.com/products-neo-base-00-stdkit.html quote (click on Battery menu link)]. (2 batteries included in Advanced version)&lt;br /&gt;
 |-&lt;br /&gt;
 |Ready for use&lt;br /&gt;
 |Yes - Software still incomplete&lt;br /&gt;
 |Yes&lt;br /&gt;
 |-&lt;br /&gt;
 |Ready for sale&lt;br /&gt;
 |US: June 15, 2007, EU: 2007Q4, Asia: 2008&lt;br /&gt;
 |July 9, 2007. Buy: https://direct.openmoko.com/&lt;br /&gt;
 |-&lt;br /&gt;
 |Price&lt;br /&gt;
 |USD 499 for 4GiB version, 599 for 8GiB (2 year contract required)&lt;br /&gt;
 |[[Neo1973_Hardware#GTA01Bv4|Phase 1 device (GTA01B_v04)]]: USD 300 (base model), USD 450 including additional development hardware &amp;lt;br&amp;gt; [[Neo1973#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|Phase 2 device (GTA02)]]: USD 450 (base), USD 600 (including development hardware)&lt;br /&gt;
 |-&lt;br /&gt;
 |Community&lt;br /&gt;
 |?&lt;br /&gt;
 |IRC: #openmoko on freenode.net [http://lists.openmoko.org/pipermail/community/ Discussion list], [[Main_Page|Wiki]], [http://lists.openmoko.org/mailman/listinfo/announce Be informed when it is sold]&lt;br /&gt;
 |}&lt;br /&gt;
{{Languages|iPhone}}&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/IPhone_(GTA01)</id>
		<title>IPhone (GTA01)</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/IPhone_(GTA01)"/>
				<updated>2007-07-09T06:59:04Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: Two batteries in adv version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comparison between Apple iPhone and the &amp;quot;Open Source iPhone&amp;quot; Neo1973 ([http://wiki.openmoko.org/wiki/Neo1973#Phase_1_.28GTA01Bv4.29 (GTA01Bv4]) running OpenMoko Linux ==&lt;br /&gt;
{{Note|The Neo1973 revision this page is about is the [[Neo1973#Phase_1_.28GTA01Bv4.29|GTA01Bv4-revision]] that is announced for July 2007. For the later Neo1973 revision see [[IPhone|GTA02]]}}&lt;br /&gt;
Apple announced their [http://www.apple.com/iphone/technology/specs.html iPhone] at MacWorld 2007. It is fairly similar to the [http://lists.openmoko.org/pipermail/community/2007-January/001006.html FIC Neo1973] announced in the fall of 2006.&lt;br /&gt;
&lt;br /&gt;
iPhone UI Demo on youtube http://youtube.com/watch?v=YgW7or1TuFk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !Feature&lt;br /&gt;
 !iPhone&lt;br /&gt;
 !Neo1973&lt;br /&gt;
 |-&lt;br /&gt;
 |Announced&lt;br /&gt;
 |2007-01-09&lt;br /&gt;
 |2006-11-07&lt;br /&gt;
 |-&lt;br /&gt;
 |Dimensions&amp;lt;br /&amp;gt;[http://www.sizeasy.com/page/comp/153 visual comparison]&lt;br /&gt;
 |115 x 61 x 11.6 mm&lt;br /&gt;
 |120.7 x 62 x 18.5 mm&lt;br /&gt;
 |-&lt;br /&gt;
 |Weight&lt;br /&gt;
 |135 g&lt;br /&gt;
 |184 g&lt;br /&gt;
 |-&lt;br /&gt;
 |Screen&lt;br /&gt;
 |3.5&amp;quot; 320x480 at 160 ppi, multi-touch&lt;br /&gt;
 |2.8&amp;quot; 480x640 at 285 ppi, [http://lists.openmoko.org/pipermail/community/2006-December/000576.html maybe multi-touch later]&lt;br /&gt;
 |-&lt;br /&gt;
 |Storage&lt;br /&gt;
 |4 or 8 GiB&lt;br /&gt;
 |64 MB (expandable with [http://lists.openmoko.org/pipermail/community/2007-February/003156.html 2 GB microSD] - 512 MB microSD included in Standard Kit, 2 * 512 MB included in Advanced Kit)&lt;br /&gt;
 |-&lt;br /&gt;
 |CPU&lt;br /&gt;
 |Possibly Marvell XScale PXA3xx family or [http://www.arm.com/products/CPUs/ARM1176.html ARM1176JZF-S™] (with Coprocessor) (Source: [http://www.bitsundso.de/ Bits und so Podcast] [http://www.bitsundso.de/bus20/54/ #20], 8'40&amp;quot; to 9'30&amp;quot; [german language])&lt;br /&gt;
 |Samsung s3c2410 SoC @ 266 MHz ([http://lists.openmoko.org/pipermail/announce/2007-January/000000.html Source]) &lt;br /&gt;
 |-&lt;br /&gt;
 |RAM&lt;br /&gt;
 |&lt;br /&gt;
 |128MB&lt;br /&gt;
 |-&lt;br /&gt;
 |Wireless&lt;br /&gt;
 |GSM, WiFi (b/g), EDGE, Bluetooth 2.0 EDR&lt;br /&gt;
 |Quad-band GSM, GPRS Class12/CS4 2.5G (Not EDGE), Bluetooth 2.0 EDR in [[Neo1973|GTA01B_v04 and GTA02]]; WiFi: not in GTA01B_v4 but GTA02&lt;br /&gt;
 |-&lt;br /&gt;
 |Wireless Carrier&lt;br /&gt;
 |Locked to Apple-selected carrier&lt;br /&gt;
 |Unlocked - any GSM provider&lt;br /&gt;
 |-&lt;br /&gt;
 |Embedded devices&lt;br /&gt;
 |2 mpix camera, 4 buttons (power, volume, ringer, main menu), [http://en.wikipedia.org/wiki/Accelerometer accelerometer], ambient light sensor, proximity sensor&lt;br /&gt;
 |GPS, 2 buttons in [[Neo1973|GTA01B_v04 and GTA02]]&lt;br /&gt;
 |-&lt;br /&gt;
 |Operating system&lt;br /&gt;
 |OS X ([http://www.macworld.co.uk/ipod-itunes/news/index.cfm?newsid=16927 an optimised but full version of OS X])&lt;br /&gt;
 |[[OpenMoko]] Linux (Source code available)&lt;br /&gt;
 |-&lt;br /&gt;
 |Software&lt;br /&gt;
 |Basic PDA + PMP software included. Software can only be created by authorized companies ([http://apple.slashdot.org/article.pl?sid=07/01/12/0430200&amp;amp;from=rss Source])&lt;br /&gt;
 |Basic PDA included. Software can be created by normal users.&lt;br /&gt;
 |-&lt;br /&gt;
 |Video&lt;br /&gt;
 |Playback and No recording(?)&lt;br /&gt;
 |No recording. Maybe playback&lt;br /&gt;
 |-&lt;br /&gt;
 |Audio&lt;br /&gt;
 |Playback and recording, stereo speaker&lt;br /&gt;
 |Playback and recording, including playback of audio files via GSM and recording/playback of voice calls. [http://www.theinquirer.net/default.aspx?article=35590 2x1 watt stereo speaker] [http://gnumonks.org/~laforge/weblog/2007/01/24/ comment on performance], 2.5 mm jack&lt;br /&gt;
 |-&lt;br /&gt;
 |Connectors&lt;br /&gt;
 |USB 2.0 on proprietary iPod connector&lt;br /&gt;
 |Standard USB 1.1 (unpowered), with a Mini-B receptor (can be connected via adapter to both  host and client devices), [[Neo1973_Hardware#Changes_from_GTA01Bv3|exposed I2C, SPI and debug board connector]] inside case in all versions and Debug Board v2 (JTAG and serial console) in Advanced version&lt;br /&gt;
 |-&lt;br /&gt;
 |Opening case&lt;br /&gt;
 |[http://www.anandtech.com/printarticle.aspx?i=3026 voids warranty]&lt;br /&gt;
 |[http://lists.openmoko.org/pipermail/announce/2007-June/000013.html Advanced version] comes with guitar pick and Torx T6 screwdriver so you can [[Disassembling Neo1973|open case]].&lt;br /&gt;
 |-&lt;br /&gt;
 |Battery&lt;br /&gt;
 |Up to 5 hours Talk / Video / Browsing. Up to 16 hours Audio playback. Non-replaceable battery&lt;br /&gt;
 |replaceable 1.2 Ah battery charged via USB - &amp;quot;We really have no idea how long it will last you because this is the first phone where you are in total control. Blast everything: GSM, GPS, Bluetooth, backlight, etc... and you should get about four hours, though.&amp;quot; [http://www.openmoko.com/products-neo-base-00-stdkit.html quote (click on Battery menu link)]. (2 batteries included in Advanced version)&lt;br /&gt;
 |-&lt;br /&gt;
 |Ready for use&lt;br /&gt;
 |Yes - Software still incomplete&lt;br /&gt;
 |Yes&lt;br /&gt;
 |-&lt;br /&gt;
 |Ready for sale&lt;br /&gt;
 |US: June 15, 2007, EU: 2007Q4, Asia: 2008&lt;br /&gt;
 |Buy: https://direct.openmoko.com/&lt;br /&gt;
 |-&lt;br /&gt;
 |Price&lt;br /&gt;
 |USD 499 for 4GiB version, 599 for 8GiB (2 year contract required)&lt;br /&gt;
 |[[Neo1973_Hardware#GTA01Bv4|Phase 1 device (GTA01B_v04)]]: USD 300 (base model), USD 450 including additional development hardware &amp;lt;br&amp;gt; [[Neo1973#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|Phase 2 device (GTA02)]]: USD 450 (base), USD 600 (including development hardware)&lt;br /&gt;
 |-&lt;br /&gt;
 |Community&lt;br /&gt;
 |?&lt;br /&gt;
 |IRC: #openmoko on freenode.net [http://lists.openmoko.org/pipermail/community/ Discussion list], [[Main_Page|Wiki]], [http://lists.openmoko.org/mailman/listinfo/announce Be informed when it is sold]&lt;br /&gt;
 |}&lt;br /&gt;
{{Languages|iPhone}}&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/IPhone_(GTA01)</id>
		<title>IPhone (GTA01)</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/IPhone_(GTA01)"/>
				<updated>2007-07-09T06:52:42Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Comparison between Apple iPhone and the &amp;quot;Open Source iPhone&amp;quot; Neo1973 ([http://wiki.openmoko.org/wiki/Neo1973#Phase_1_.28GTA01Bv4.29 (GTA01Bv4]) running OpenMoko Linux */ added info about bonus mem&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comparison between Apple iPhone and the &amp;quot;Open Source iPhone&amp;quot; Neo1973 ([http://wiki.openmoko.org/wiki/Neo1973#Phase_1_.28GTA01Bv4.29 (GTA01Bv4]) running OpenMoko Linux ==&lt;br /&gt;
{{Note|The Neo1973 revision this page is about is the [[Neo1973#Phase_1_.28GTA01Bv4.29|GTA01Bv4-revision]] that is announced for July 2007. For the later Neo1973 revision see [[IPhone|GTA02]]}}&lt;br /&gt;
Apple announced their [http://www.apple.com/iphone/technology/specs.html iPhone] at MacWorld 2007. It is fairly similar to the [http://lists.openmoko.org/pipermail/community/2007-January/001006.html FIC Neo1973] announced in the fall of 2006.&lt;br /&gt;
&lt;br /&gt;
iPhone UI Demo on youtube http://youtube.com/watch?v=YgW7or1TuFk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !Feature&lt;br /&gt;
 !iPhone&lt;br /&gt;
 !Neo1973&lt;br /&gt;
 |-&lt;br /&gt;
 |Announced&lt;br /&gt;
 |2007-01-09&lt;br /&gt;
 |2006-11-07&lt;br /&gt;
 |-&lt;br /&gt;
 |Dimensions&amp;lt;br /&amp;gt;[http://www.sizeasy.com/page/comp/153 visual comparison]&lt;br /&gt;
 |115 x 61 x 11.6 mm&lt;br /&gt;
 |120.7 x 62 x 18.5 mm&lt;br /&gt;
 |-&lt;br /&gt;
 |Weight&lt;br /&gt;
 |135 g&lt;br /&gt;
 |184 g&lt;br /&gt;
 |-&lt;br /&gt;
 |Screen&lt;br /&gt;
 |3.5&amp;quot; 320x480 at 160 ppi, multi-touch&lt;br /&gt;
 |2.8&amp;quot; 480x640 at 285 ppi, [http://lists.openmoko.org/pipermail/community/2006-December/000576.html maybe multi-touch later]&lt;br /&gt;
 |-&lt;br /&gt;
 |Storage&lt;br /&gt;
 |4 or 8 GiB&lt;br /&gt;
 |64 MB (expandable with [http://lists.openmoko.org/pipermail/community/2007-February/003156.html 2 GB microSD] - 512 MB microSD included in Standard Kit, 2 * 512 MB included in Advanced Kit)&lt;br /&gt;
 |-&lt;br /&gt;
 |CPU&lt;br /&gt;
 |Possibly Marvell XScale PXA3xx family or [http://www.arm.com/products/CPUs/ARM1176.html ARM1176JZF-S™] (with Coprocessor) (Source: [http://www.bitsundso.de/ Bits und so Podcast] [http://www.bitsundso.de/bus20/54/ #20], 8'40&amp;quot; to 9'30&amp;quot; [german language])&lt;br /&gt;
 |Samsung s3c2410 SoC @ 266 MHz ([http://lists.openmoko.org/pipermail/announce/2007-January/000000.html Source]) &lt;br /&gt;
 |-&lt;br /&gt;
 |RAM&lt;br /&gt;
 |&lt;br /&gt;
 |128MB&lt;br /&gt;
 |-&lt;br /&gt;
 |Wireless&lt;br /&gt;
 |GSM, WiFi (b/g), EDGE, Bluetooth 2.0 EDR&lt;br /&gt;
 |Quad-band GSM, GPRS Class12/CS4 2.5G (Not EDGE), Bluetooth 2.0 EDR in [[Neo1973|GTA01B_v04 and GTA02]]; WiFi: not in GTA01B_v4 but GTA02&lt;br /&gt;
 |-&lt;br /&gt;
 |Wireless Carrier&lt;br /&gt;
 |Locked to Apple-selected carrier&lt;br /&gt;
 |Unlocked - any GSM provider&lt;br /&gt;
 |-&lt;br /&gt;
 |Embedded devices&lt;br /&gt;
 |2 mpix camera, 4 buttons (power, volume, ringer, main menu), [http://en.wikipedia.org/wiki/Accelerometer accelerometer], ambient light sensor, proximity sensor&lt;br /&gt;
 |GPS, 2 buttons in [[Neo1973|GTA01B_v04 and GTA02]]&lt;br /&gt;
 |-&lt;br /&gt;
 |Operating system&lt;br /&gt;
 |OS X ([http://www.macworld.co.uk/ipod-itunes/news/index.cfm?newsid=16927 an optimised but full version of OS X])&lt;br /&gt;
 |[[OpenMoko]] Linux (Source code available)&lt;br /&gt;
 |-&lt;br /&gt;
 |Software&lt;br /&gt;
 |Basic PDA + PMP software included. Software can only be created by authorized companies ([http://apple.slashdot.org/article.pl?sid=07/01/12/0430200&amp;amp;from=rss Source])&lt;br /&gt;
 |Basic PDA included. Software can be created by normal users.&lt;br /&gt;
 |-&lt;br /&gt;
 |Video&lt;br /&gt;
 |Playback and No recording(?)&lt;br /&gt;
 |No recording. Maybe playback&lt;br /&gt;
 |-&lt;br /&gt;
 |Audio&lt;br /&gt;
 |Playback and recording, stereo speaker&lt;br /&gt;
 |Playback and recording, including playback of audio files via GSM and recording/playback of voice calls. [http://www.theinquirer.net/default.aspx?article=35590 2x1 watt stereo speaker] [http://gnumonks.org/~laforge/weblog/2007/01/24/ comment on performance], 2.5 mm jack&lt;br /&gt;
 |-&lt;br /&gt;
 |Connectors&lt;br /&gt;
 |USB 2.0 on proprietary iPod connector&lt;br /&gt;
 |Standard USB 1.1 (unpowered), with a Mini-B receptor (can be connected via adapter to both  host and client devices), [[Neo1973_Hardware#Changes_from_GTA01Bv3|exposed I2C, SPI and debug board connector]] inside case in all versions and Debug Board v2 (JTAG and serial console) in Advanced version&lt;br /&gt;
 |-&lt;br /&gt;
 |Opening case&lt;br /&gt;
 |[http://www.anandtech.com/printarticle.aspx?i=3026 voids warranty]&lt;br /&gt;
 |[http://lists.openmoko.org/pipermail/announce/2007-June/000013.html Advanced version] comes with guitar pick and Torx T6 screwdriver so you can [[Disassembling Neo1973|open case]].&lt;br /&gt;
 |-&lt;br /&gt;
 |Battery&lt;br /&gt;
 |Up to 5 hours Talk / Video / Browsing. Up to 16 hours Audio playback. Non-replaceable battery&lt;br /&gt;
 |replaceable 1.2 Ah battery charged via USB - &amp;quot;We really have no idea how long it will last you because this is the first phone where you are in total control. Blast everything: GSM, GPS, Bluetooth, backlight, etc... and you should get about four hours, though.&amp;quot; [http://www.openmoko.com/products-neo-base-00-stdkit.html quote (click on Battery menu link)]&lt;br /&gt;
 |-&lt;br /&gt;
 |Ready for use&lt;br /&gt;
 |Yes - Software still incomplete&lt;br /&gt;
 |Yes&lt;br /&gt;
 |-&lt;br /&gt;
 |Ready for sale&lt;br /&gt;
 |US: June 15, 2007, EU: 2007Q4, Asia: 2008&lt;br /&gt;
 |Buy: https://direct.openmoko.com/&lt;br /&gt;
 |-&lt;br /&gt;
 |Price&lt;br /&gt;
 |USD 499 for 4GiB version, 599 for 8GiB (2 year contract required)&lt;br /&gt;
 |[[Neo1973_Hardware#GTA01Bv4|Phase 1 device (GTA01B_v04)]]: USD 300 (base model), USD 450 including additional development hardware &amp;lt;br&amp;gt; [[Neo1973#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|Phase 2 device (GTA02)]]: USD 450 (base), USD 600 (including development hardware)&lt;br /&gt;
 |-&lt;br /&gt;
 |Community&lt;br /&gt;
 |?&lt;br /&gt;
 |IRC: #openmoko on freenode.net [http://lists.openmoko.org/pipermail/community/ Discussion list], [[Main_Page|Wiki]], [http://lists.openmoko.org/mailman/listinfo/announce Be informed when it is sold]&lt;br /&gt;
 |}&lt;br /&gt;
{{Languages|iPhone}}&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/IPhone_(GTA01)</id>
		<title>IPhone (GTA01)</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/IPhone_(GTA01)"/>
				<updated>2007-07-09T06:44:39Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Comparison between Apple iPhone and the &amp;quot;Open Source iPhone&amp;quot; Neo1973 ([http://wiki.openmoko.org/wiki/Neo1973#Phase_1_.28GTA01Bv4.29 (GTA01Bv4]) running OpenMoko Linux */ quoted stuff about battery&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Comparison between Apple iPhone and the &amp;quot;Open Source iPhone&amp;quot; Neo1973 ([http://wiki.openmoko.org/wiki/Neo1973#Phase_1_.28GTA01Bv4.29 (GTA01Bv4]) running OpenMoko Linux ==&lt;br /&gt;
{{Note|The Neo1973 revision this page is about is the [[Neo1973#Phase_1_.28GTA01Bv4.29|GTA01Bv4-revision]] that is announced for July 2007. For the later Neo1973 revision see [[IPhone|GTA02]]}}&lt;br /&gt;
Apple announced their [http://www.apple.com/iphone/technology/specs.html iPhone] at MacWorld 2007. It is fairly similar to the [http://lists.openmoko.org/pipermail/community/2007-January/001006.html FIC Neo1973] announced in the fall of 2006.&lt;br /&gt;
&lt;br /&gt;
iPhone UI Demo on youtube http://youtube.com/watch?v=YgW7or1TuFk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {| border=&amp;quot;1&amp;quot;&lt;br /&gt;
 !Feature&lt;br /&gt;
 !iPhone&lt;br /&gt;
 !Neo1973&lt;br /&gt;
 |-&lt;br /&gt;
 |Announced&lt;br /&gt;
 |2007-01-09&lt;br /&gt;
 |2006-11-07&lt;br /&gt;
 |-&lt;br /&gt;
 |Dimensions&amp;lt;br /&amp;gt;[http://www.sizeasy.com/page/comp/153 visual comparison]&lt;br /&gt;
 |115 x 61 x 11.6 mm&lt;br /&gt;
 |120.7 x 62 x 18.5 mm&lt;br /&gt;
 |-&lt;br /&gt;
 |Weight&lt;br /&gt;
 |135 g&lt;br /&gt;
 |184 g&lt;br /&gt;
 |-&lt;br /&gt;
 |Screen&lt;br /&gt;
 |3.5&amp;quot; 320x480 at 160 ppi, multi-touch&lt;br /&gt;
 |2.8&amp;quot; 480x640 at 285 ppi, [http://lists.openmoko.org/pipermail/community/2006-December/000576.html maybe multi-touch later]&lt;br /&gt;
 |-&lt;br /&gt;
 |Storage&lt;br /&gt;
 |4 or 8 GiB&lt;br /&gt;
 |64 MB (expandable with [http://lists.openmoko.org/pipermail/community/2007-February/003156.html 2 GB microSD])]&lt;br /&gt;
 |-&lt;br /&gt;
 |CPU&lt;br /&gt;
 |Possibly Marvell XScale PXA3xx family or [http://www.arm.com/products/CPUs/ARM1176.html ARM1176JZF-S™] (with Coprocessor) (Source: [http://www.bitsundso.de/ Bits und so Podcast] [http://www.bitsundso.de/bus20/54/ #20], 8'40&amp;quot; to 9'30&amp;quot; [german language])&lt;br /&gt;
 |Samsung s3c2410 SoC @ 266 MHz ([http://lists.openmoko.org/pipermail/announce/2007-January/000000.html Source]) &lt;br /&gt;
 |-&lt;br /&gt;
 |RAM&lt;br /&gt;
 |&lt;br /&gt;
 |128MB&lt;br /&gt;
 |-&lt;br /&gt;
 |Wireless&lt;br /&gt;
 |GSM, WiFi (b/g), EDGE, Bluetooth 2.0 EDR&lt;br /&gt;
 |Quad-band GSM, GPRS Class12/CS4 2.5G (Not EDGE), Bluetooth 2.0 EDR in [[Neo1973|GTA01B_v04 and GTA02]]; WiFi: not in GTA01B_v4 but GTA02&lt;br /&gt;
 |-&lt;br /&gt;
 |Wireless Carrier&lt;br /&gt;
 |Locked to Apple-selected carrier&lt;br /&gt;
 |Unlocked - any GSM provider&lt;br /&gt;
 |-&lt;br /&gt;
 |Embedded devices&lt;br /&gt;
 |2 mpix camera, 4 buttons (power, volume, ringer, main menu), [http://en.wikipedia.org/wiki/Accelerometer accelerometer], ambient light sensor, proximity sensor&lt;br /&gt;
 |GPS, 2 buttons in [[Neo1973|GTA01B_v04 and GTA02]]&lt;br /&gt;
 |-&lt;br /&gt;
 |Operating system&lt;br /&gt;
 |OS X ([http://www.macworld.co.uk/ipod-itunes/news/index.cfm?newsid=16927 an optimised but full version of OS X])&lt;br /&gt;
 |[[OpenMoko]] Linux (Source code available)&lt;br /&gt;
 |-&lt;br /&gt;
 |Software&lt;br /&gt;
 |Basic PDA + PMP software included. Software can only be created by authorized companies ([http://apple.slashdot.org/article.pl?sid=07/01/12/0430200&amp;amp;from=rss Source])&lt;br /&gt;
 |Basic PDA included. Software can be created by normal users.&lt;br /&gt;
 |-&lt;br /&gt;
 |Video&lt;br /&gt;
 |Playback and No recording(?)&lt;br /&gt;
 |No recording. Maybe playback&lt;br /&gt;
 |-&lt;br /&gt;
 |Audio&lt;br /&gt;
 |Playback and recording, stereo speaker&lt;br /&gt;
 |Playback and recording, including playback of audio files via GSM and recording/playback of voice calls. [http://www.theinquirer.net/default.aspx?article=35590 2x1 watt stereo speaker] [http://gnumonks.org/~laforge/weblog/2007/01/24/ comment on performance], 2.5 mm jack&lt;br /&gt;
 |-&lt;br /&gt;
 |Connectors&lt;br /&gt;
 |USB 2.0 on proprietary iPod connector&lt;br /&gt;
 |Standard USB 1.1 (unpowered), with a Mini-B receptor (can be connected via adapter to both  host and client devices), [[Neo1973_Hardware#Changes_from_GTA01Bv3|exposed I2C, SPI and debug board connector]] inside case in all versions and Debug Board v2 (JTAG and serial console) in Advanced version&lt;br /&gt;
 |-&lt;br /&gt;
 |Opening case&lt;br /&gt;
 |[http://www.anandtech.com/printarticle.aspx?i=3026 voids warranty]&lt;br /&gt;
 |[http://lists.openmoko.org/pipermail/announce/2007-June/000013.html Advanced version] comes with guitar pick and Torx T6 screwdriver so you can [[Disassembling Neo1973|open case]].&lt;br /&gt;
 |-&lt;br /&gt;
 |Battery&lt;br /&gt;
 |Up to 5 hours Talk / Video / Browsing. Up to 16 hours Audio playback. Non-replaceable battery&lt;br /&gt;
 |replaceable 1.2 Ah battery charged via USB - &amp;quot;We really have no idea how long it will last you because this is the first phone where you are in total control. Blast everything: GSM, GPS, Bluetooth, backlight, etc... and you should get about four hours, though.&amp;quot; [http://www.openmoko.com/products-neo-base-00-stdkit.html quote (click on Battery menu link)]&lt;br /&gt;
 |-&lt;br /&gt;
 |Ready for use&lt;br /&gt;
 |Yes - Software still incomplete&lt;br /&gt;
 |Yes&lt;br /&gt;
 |-&lt;br /&gt;
 |Ready for sale&lt;br /&gt;
 |US: June 15, 2007, EU: 2007Q4, Asia: 2008&lt;br /&gt;
 |Buy: https://direct.openmoko.com/&lt;br /&gt;
 |-&lt;br /&gt;
 |Price&lt;br /&gt;
 |USD 499 for 4GiB version, 599 for 8GiB (2 year contract required)&lt;br /&gt;
 |[[Neo1973_Hardware#GTA01Bv4|Phase 1 device (GTA01B_v04)]]: USD 300 (base model), USD 450 including additional development hardware &amp;lt;br&amp;gt; [[Neo1973#.22Phase_2.22_.28GTA02.2C_.22Mass_Market.22.29|Phase 2 device (GTA02)]]: USD 450 (base), USD 600 (including development hardware)&lt;br /&gt;
 |-&lt;br /&gt;
 |Community&lt;br /&gt;
 |?&lt;br /&gt;
 |IRC: #openmoko on freenode.net [http://lists.openmoko.org/pipermail/community/ Discussion list], [[Main_Page|Wiki]], [http://lists.openmoko.org/mailman/listinfo/announce Be informed when it is sold]&lt;br /&gt;
 |}&lt;br /&gt;
{{Languages|iPhone}}&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Advertising</id>
		<title>Advertising</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Advertising"/>
				<updated>2007-07-05T21:25:07Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Video */ added missing 12th video ad by Adam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Text ==&lt;br /&gt;
* There could be a description of OpenMoko/Neo1973 features&lt;br /&gt;
* There could be a short story about what OpenMoko/the Neo1973 does different:&lt;br /&gt;
** e.g.: &lt;br /&gt;
 After leaving work your Neo's GPS automatically switches your Alarm Profile from &lt;br /&gt;
 Silent to Loud and guides you to the next gas station. At home, your Neo automatically &lt;br /&gt;
 deploys its WiFi functionality, retrieves your email (free of charge) and activates &lt;br /&gt;
 voice over ip capabilities (free of charge). &lt;br /&gt;
And so on...&lt;br /&gt;
** e.g.: &lt;br /&gt;
 Neo: Hi, I'm an Neo.&lt;br /&gt;
 iPhone: And I'm an iPhone.&lt;br /&gt;
 * iPhone looks on a big map and tries to orientate himself&lt;br /&gt;
 Neo: What are you doing?&lt;br /&gt;
 iPhone: I try to locate myself by using Google Maps.&lt;br /&gt;
 Neo: Oh, that doesn't seem to be very exciting. I use GPS for that kind of stuff. &lt;br /&gt;
 Works automatically.&lt;br /&gt;
 iPhone: GPS, yeah?&lt;br /&gt;
 Neo: Yes. Oh, wait, I'm entering the cinema. I think, it's better for me, to &lt;br /&gt;
 switch to stand-by now. See you after the movie.&lt;br /&gt;
 iPhone: Oh, bye.&lt;br /&gt;
 * Neo leaves, iPhone looks on the map again.&lt;br /&gt;
 iPhone: Oh, here we are! Finally... &lt;br /&gt;
[http://lists.openmoko.org/pipermail/community/2007-July/006141.html]&lt;br /&gt;
** e.g.: &lt;br /&gt;
 Scene: Completely blank white background.&lt;br /&gt;
 Two people enter the frame.&lt;br /&gt;
 Moko: Hi, I'm an OpenMoko&lt;br /&gt;
 iPhone: And I'm an iPhone&lt;br /&gt;
 * OpenMoko looks like he's enjoying himself&lt;br /&gt;
 iPhone: What are you doing?&lt;br /&gt;
 Moko: Oh, I just downloaded this great new game I came across. Want to try it?&lt;br /&gt;
 iPhone: I, er, I can't play new games. I've got this great game of solitaire, though!&lt;br /&gt;
 Moko: That's a shame. Nothing at all?&lt;br /&gt;
 iPhone: Well, I can play games off the web. Some of them. Want a game of bejeweled?&lt;br /&gt;
 Moko: ...thanks, no. I'm fine.&lt;br /&gt;
[http://lists.openmoko.org/pipermail/community/2007-July/006110.html]&lt;br /&gt;
* There ''should'' be some pre-composed basic information that can be copy'n'pasted into one's Myspace/Facebook/whatever/-profile.&lt;br /&gt;
* There ''should'' be some pre-composed advanced information for press/blogs/mobile service providers&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Printed Advertisement ===&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Video ==&lt;br /&gt;
&lt;br /&gt;
Adam Krikstone did some nice OpenMoko video ads: (youtube)&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/view_play_list?p=472DE700A3CC70A4 Playlist]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=DCQ7dmGuAU8]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=tQPjfUqp-dk]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=4qP-K1HOMHk]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=S--2HeQqjq4]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=dpwxzEopg60]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=EuG2hYiO9AU]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=lGjY7tigdkA]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=YR4ezMgRlWo]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=OZC3mjRW5Tg]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=GxsVFG7jHI8]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=62kLhNngE20]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=kR-4VhlsiV8]&lt;br /&gt;
&lt;br /&gt;
== Controverial Issues ==&lt;br /&gt;
* We need to be careful about using copyrighted material (e.g. youtube)&lt;br /&gt;
** Other legal issues...?&lt;br /&gt;
** Be aware of what we are advertising: What functions does OpenMoko currently feature, what is planned and what not? Are functions advertised protected by patents?&lt;br /&gt;
* What is the community's goal in advertising? &lt;br /&gt;
** Are we advertising OpenMoko?&lt;br /&gt;
** Are we advertising the Neo1973? And if so, is this our job? The Neo1973 is after all, a commerical product.&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Disassembling_Neo_1973</id>
		<title>Disassembling Neo 1973</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Disassembling_Neo_1973"/>
				<updated>2007-05-05T15:26:57Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Top case lid removed */ Added guess that there is a battery next to the aux button&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note| The [[Disassembling Neo1973 | Disassembling the Neo1973 page]] shows how to open up the GTA01Bv3 hardware revision.  Future hardare revisions may require updates to this page.}}&lt;br /&gt;
&lt;br /&gt;
== Back side of Neo1973 ==&lt;br /&gt;
[[Image:Gta01b v3 case back white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
== Opening back cover ==&lt;br /&gt;
&lt;br /&gt;
To remove the back cover, put your fingernail at the small recession on top of Neo, and pull a bit.&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 case back open white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
{{note| You now need to remove the two Torx screws (T6x40)}}&lt;br /&gt;
&lt;br /&gt;
== Carefully remove top cover ==&lt;br /&gt;
[[Image:Gta01b v3 case side opening white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
To remove the top cover, after removing the two torx screws, ''carefully'' squeeze the end of the supplied guitar pick between the cover and the case at the bottom of the device, and then slide the pick up to the top on one side (do not twist the pick). As you slide the pick along, the case retaining clips should come apart with a snapping sound. Repeat the procedure for the other side of the device. To unclip the last remaining large retaining clip at the top, slide the pick all the way to the top (this can be difficult) and then press it in at the centre. By ''careful'' application of force the clip will detach and the cover can then be removed.&lt;br /&gt;
&lt;br /&gt;
== Top case lid removed ==&lt;br /&gt;
[[Image:Gta01b v3 case top open white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Visible in this image, from the right, going clockwise.&lt;br /&gt;
&lt;br /&gt;
*The blocky device at the far right is the GPS antenna.&lt;br /&gt;
**To the left of this, there are two gold pads, which are where the earpiece speaker connects.&lt;br /&gt;
*The [[Debug Board]] connector.&lt;br /&gt;
*At the left, the black semicircular device is the GSM antenna.&lt;br /&gt;
**Immediately to its right, the small circular black/gold object is the microphone&lt;br /&gt;
*At the top right, the ''Aux button''&lt;br /&gt;
*Right below it seems to be a small battery. It can also be seen on the picture below.&lt;br /&gt;
&lt;br /&gt;
In the middle is the touchscreen LCD, the touchscreen printed wire can be seen beginning at the bottom left of this, through the glass.&lt;br /&gt;
&lt;br /&gt;
== Lifting the PCB on the left side ==&lt;br /&gt;
{{note|You have to bend the plastic case a bit outwards until the headphone jack on the left side of the device becomes loose}}&lt;br /&gt;
[[Image:Gta01b v3 case top open pcb lift white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
== Removing PCB from case frame ==&lt;br /&gt;
{{note|Since the PCB now is loose on one side, you can carefully pull the USB socket and GPS antenna connector out of the right side of the case, and then flip the PCB upwards}}&lt;br /&gt;
[[Image:Gta01b v3 case top open pcb lifted.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
This shows:&lt;br /&gt;
*At the top on a green board, the bluetooth module, and the square bluetooth antenna.&lt;br /&gt;
*The headset jack is to the right of this.&lt;br /&gt;
**Immediately below the headset jack is the [[Neo1973 Battery]] connector.&lt;br /&gt;
**Below the [[Neo1973 Battery]] connector, the two gold pads feed the vibrator motor.&lt;br /&gt;
*To the right of the headset jack is the left speaker connector.&lt;br /&gt;
&lt;br /&gt;
On the other side of the PCB, going from bottom-right corner down-left.&lt;br /&gt;
&lt;br /&gt;
*The small circular connector is the GSM connector to which an external ariel can be connected with the back removed, or with an alternative back.&lt;br /&gt;
&lt;br /&gt;
*To the left of this is the right speaker connector.&lt;br /&gt;
*One of the button switches.&lt;br /&gt;
*USB port.&lt;br /&gt;
*Micro-SD slot&lt;br /&gt;
*SIM slot - overlaying the Micro-SD slot when present.&lt;br /&gt;
*Gold GPS antenna connector.&lt;br /&gt;
**Immediately above this with the grey wire connection is the connection to the built in GPS antenna. &lt;br /&gt;
&lt;br /&gt;
On the case picture below, you can see the left and right speakers under the translucent plastic, and the vibrator motor in the middle.&lt;br /&gt;
&lt;br /&gt;
== Empty case frame ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 case empty white.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
You can actually see the two stereo speakers beneath the translucent cover, and next to it the small vibrator motor.&lt;br /&gt;
&lt;br /&gt;
Next to the top of the picture is a hole near the speaker.&lt;br /&gt;
The external GSM antenna connector is accessed through this hole.&lt;br /&gt;
&lt;br /&gt;
== GSM Antenna ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Gta01b v3 gsm antenna.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:Neo1973 Hardware]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User_talk:Technil</id>
		<title>User talk:Technil</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User_talk:Technil"/>
				<updated>2007-03-27T08:56:41Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey there. I probably won't have too much to say until I get the phone in late march sometime.. I have interest in working on:&lt;br /&gt;
&lt;br /&gt;
- '''A cycle computer using GPS'''. Here is some info about power usage of the GPS:&lt;br /&gt;
&lt;br /&gt;
Excerpted from &amp;quot;GPS time synch&amp;quot; thread on [http://lists.openmoko.org/mailman/listinfo/community Community Digest]&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; Based on ballpark estimates from other similar devices, it's probably&lt;br /&gt;
&amp;gt;&amp;gt; around 70mW.&lt;br /&gt;
&amp;gt;&amp;gt; This will really hurt if you keep it on all the time, fortunately, for&lt;br /&gt;
&amp;gt;&amp;gt; most applications, you probably don't need to.&lt;br /&gt;
&amp;gt;&amp;gt; If it works at 2s on, 30s off, as seems likely, this alone drains&lt;br /&gt;
&amp;gt;&amp;gt; 1/30th of the battery per day, which isn't bad. Especially as you can&lt;br /&gt;
&amp;gt;&amp;gt; probably back off a little if the phone has been stationary for&lt;br /&gt;
&amp;gt;&amp;gt; several minutes.&lt;br /&gt;
&amp;gt;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; Does GPS work well in such a mode? I seem to remember from various&lt;br /&gt;
&amp;gt;&amp;gt; handheld units that it can take quite a while (minutes) to sync up to&lt;br /&gt;
&amp;gt;&amp;gt; a given satellite. (For all I know, you *can* operate this way, I'm&lt;br /&gt;
&amp;gt;&amp;gt; completely clueless on the subject.)&lt;br /&gt;
&lt;br /&gt;
70mW..  Here is the [http://wiki.openmoko.org/wiki/Neo1973_Battery Neo1973 Battery info]. &lt;br /&gt;
For the sampling needed to get accurate speeds distance etc.. I don't think using AGPS and sleeping the GPS intermittently will be feasible.. so we need to know how long we can use the GPS continuously and not cripple the phone with power consumption. A dyanmo or supplemantary power source on the bike is another option but would need a regulator and dock of some sort.&lt;br /&gt;
&lt;br /&gt;
The Battery is a Li-Ion 3.7V at 1200mAh or roughly 4.4 Wh. If we only let GPS use 1/4 of the battery power, that gives us  1.1Wh or 0.3 Ah at 3.7V. At 0.070 W (the &amp;quot;guess&amp;quot; on the power draw for the GPS) the current draw indicates that the GPS should work for a little bit less than 16 Hours.. Plenty even for two days of extended touring. I'm guessing this would involve probably turning off the backlight, powering down BT and cellular radios and the like, otherwise the radios and screen will drain the battery long before we can keep the device on for 16 hours.&lt;br /&gt;
&lt;br /&gt;
- '''A high quality multi-purpose calculator.''' maybe  [http://qalculate.sourceforge.net/ Qalculate]? it is GTK+ 2.4 needs scrollkeeper, libglade 2, as well as a build of libqalculate. Looks like OE has libglade and scrollkeeper, and Open Moko is GTK. So I guess I should get my OE environment all set up and do a test build. [http://www.handhelds.org/hypermail/gpe/24/2411.html this thread] on GPE maybe of importance looks like a problem with libm. This may be of use.. [http://www.openembedded.org/user-manual&amp;amp;dpage=commonuse_prebuilt_toolchain toolchain stuff] text input might be slow, but probably no slower than a graphing calculator.&lt;br /&gt;
 &lt;br /&gt;
- '''Messing around with speex on SIP / IAX clients.''' Lowly GPRS... :P&lt;br /&gt;
&lt;br /&gt;
--[[User:Xkr47|xkr47]] 10:56, 27 March 2007 (CEST) Thx for the gprs class info on [[Neo1973 Hardware]]. :) But one more to go.. Do you know the GPRS capability class also? It has been guessed on IRC that it would be GPRS Class B, i.e. no grps traffic while a voice call is active.. If this is true, do you know whether you can still use GPRS when someone is calling you, but before answering the phone? It could be nice to use in countries where there are cheap MSISDN &amp;lt;-&amp;gt; owner mapping services online, it could be used to (automatically or by buttonpress) look up who's calling if the number is not previously known before deciding whether to answer :)&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_1973_hardware</id>
		<title>Neo 1973 hardware</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_1973_hardware"/>
				<updated>2007-03-27T08:48:47Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* CALYPSO digital baseband */ removed question as it's now answered&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gta01b v3 top.jpg|thumb|400px|display (top) side]]&lt;br /&gt;
[[Image:Gta01b v3 bottom.jpg|thumb|400px|component (back) side]]&lt;br /&gt;
&lt;br /&gt;
==User experiences of Phase 0 hardware==&lt;br /&gt;
[[Wishlist:Neo1973_P0_Review]]&lt;br /&gt;
&lt;br /&gt;
== Physical Dimensions ==&lt;br /&gt;
* 120.7 x 62 x 18.5 mm (4.75 x 2.44 x 0.728 inch)&lt;br /&gt;
* 184 +/- 5 g (6.5 ounces)&lt;br /&gt;
&lt;br /&gt;
== Main components ==&lt;br /&gt;
=== Processor ===&lt;br /&gt;
The main Processor (CPU) of the Neo1973 is a Samsung S3C2410AL-26 (Capable of running up to 266 MHz)&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410.htm S3C2410.htm]&lt;br /&gt;
* User Manual: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/2410UserManual.pdf 2410UserManual.pdf]&lt;br /&gt;
* BSDL File: [http://www.samsung.com/Products/Semiconductor/MobileSoC/ApplicationProcessor/ARM9Series/S3C2410/S3C2410_BGA_BSDLJTAGFILE.bsd S3C2410_BGA_BSDLJTAGFILE.bsd]&lt;br /&gt;
* GPIO Assignments: https://svn.openmoko.org/trunk/doc/hardware/GTA01Bv3/gpio.txt&lt;br /&gt;
&lt;br /&gt;
=== Flash ===&lt;br /&gt;
64MB Samsung NAND flash (K9F1208U0B) attached to S3C2410 NAND controller.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/products/semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/K9F1208U0B.htm K9F1208U0B.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/NANDFlash/SLC_SmallBlock/512Mbit/K9F1208U0B/ds_k9f1208x0b_rev03.pdf ds_k9f1208x0b_rev03.pdf]&lt;br /&gt;
* Connected to: S3C2410 NAND controller&lt;br /&gt;
&lt;br /&gt;
This is the only flash memory in the device.  The S3C2410 boots directly from nand, using the [[S3C2410 Steppingstone]].&lt;br /&gt;
&lt;br /&gt;
We only use free software, no proprietary flash file systems.  For a full description of how it is used, see [[NAND bad blocks]]&lt;br /&gt;
&lt;br /&gt;
=== RAM ===&lt;br /&gt;
128MB SDRAM (2x Samsung K4M511633C) attached to S3C2410 SDRAM controller&lt;br /&gt;
* Product Homepage: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/K4M511633C.htm K4M511633C.htm]&lt;br /&gt;
* Data Sheet: [http://www.samsung.com/Products/Semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M511633C/ds_k4m511633c.pdf ds_k4m511633c.pdf]&lt;br /&gt;
* Connected to: S3C2410 &lt;br /&gt;
&lt;br /&gt;
=== GSM/GPRS ===&lt;br /&gt;
The GSM/GPRS modem is Texas Instruments Calypso based.&lt;br /&gt;
&lt;br /&gt;
* Connected to: S3C2410 UART1 (full-uart, RxD, TxD, CTS, RTS), /dev/ttySAC0 in userspace&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Accessible GSM/GPRS antenna jack (if battery cover is removed)&lt;br /&gt;
&lt;br /&gt;
==== CALYPSO digital baseband ====&lt;br /&gt;
Unfortunately we cannot provide many details on the GSM chipset due to very tight NDAs.  However, this is not neccessarily required, since it interfaces using a standard UART serial line with the S3C2410.  On that interface, [http://www.3gpp.org/ftp/Specs/archive/07_series/07.05/ GSM 07.05], [http://www.3gpp.org/ftp/Specs/archive/07_series/07.10/ GSM 07.10] and other standardized protocols are used.&lt;br /&gt;
&lt;br /&gt;
==== TWL3014 analog baseband ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12295&amp;amp;contentId=4703 TWL3014]&lt;br /&gt;
&lt;br /&gt;
==== TRF6151 RF Transceiver ====&lt;br /&gt;
Product Homepage: [http://focus.ti.com/general/docs/wtbu/wtbuproductcontent.tsp?templateId=6123&amp;amp;navigationId=12296&amp;amp;contentId=4701 TRF6151] &amp;lt;br&amp;gt;&lt;br /&gt;
Quad-band support&amp;lt;br&amp;gt;&lt;br /&gt;
GPRS Class12/CS4 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== [[Hardware:AGPS|AGPS]] ===&lt;br /&gt;
Hammerhead AGPS from Global Locate.&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.globalocate.com/SEMICONDUCTORS/SEMI_HAMMER_Frameset.htm Hammerhead]&lt;br /&gt;
* Connected to: S3C2410 UART2 (full-uart, RxD, TxD, CTS, RTS) /dev/ttySAC1 in userspace&lt;br /&gt;
* Driver: Implemented as plugin for the gpsd daemon ([[gpsd]])&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
* Externally-accessible GPS antenna connector of type MMCX&lt;br /&gt;
&lt;br /&gt;
This will not have a working driver till at least mid April.&lt;br /&gt;
&lt;br /&gt;
=== microSD-Card ===&lt;br /&gt;
The Neo1973 has one microSD aka Transflash slot.&lt;br /&gt;
It should support SDHC, but this has not been tested. If this works, cards &amp;gt;2G should work with no problems. As there are no microSD cards over 2G at the moment, it hasn't been tested. MicroSD slot is [[Disassembling_Neo1973#Opening_back_cover|under battery]].&lt;br /&gt;
* Connected to: S3C2410 MMC/SD controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c_mci.patch&lt;br /&gt;
* [[Supported microSD cards]]&lt;br /&gt;
* Specifications: [http://www.sdcard.org/confirm/confirm_memorycard.aspx SD Simplified Specification], [http://www.mmca.org/compliance/buy_spec/AN_MMCA050419.pdf MMC (partial)], [http://www.sandisk.com/Assets/File/OEM/Manuals/manual-rs-mmcv1.0.pdf MMC (product manual)]&lt;br /&gt;
&lt;br /&gt;
=== LCD Display Module (LCM) ===&lt;br /&gt;
This is a 2.8&amp;quot; diagonal (1.7&amp;quot; x 2.27&amp;quot;) 480x640 toppoly (tpo) TD028TTEC1 module, using a Toshiba JBT6K74 TFT LCD Driver Chipset.&lt;br /&gt;
* Homepage: [http://www.tpo.biz/ENG/business-eng/Activer-Matrix-VGA.htm Activer-Matrix-VGA.htm]&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-jbt6k74.patch&lt;br /&gt;
* Backlight Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-backlight.patch&lt;br /&gt;
* Connected to: S3C2410 Display Controller and S3C2410 SPI Interface channel 1&lt;br /&gt;
&lt;br /&gt;
==== Touch Screen ====&lt;br /&gt;
* Connected to: S3C2410 TS controller&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_touchscreen.patch&lt;br /&gt;
&lt;br /&gt;
==== Stylus ====&lt;br /&gt;
&lt;br /&gt;
Seemingly identical to [http://cgi.ebay.com/4in1-PDA-Stylus-LED-Light-Torch-Laser-Pointer-Pen-h7_W0QQitemZ280089656134QQihZ018QQcategoryZ48677QQrdZ1QQcmdZViewItem this one on ebay]&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
Delta DFBM-CS320 Class2 Module, using CSR BlueCore4&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.delta.com.tw/product/cp/vco/BT/download/pdf/CS/2.DFBM-CS320.pdf 2.DFBM-CS320.pdf]&lt;br /&gt;
* CSR Data Sheet: [http://www.csrsupport.com/download/2302/CS-101564-DSP10%20BlueCore4-ROM%20Product%20Data%20Sheet.pdf CS-101564-DSP10 BlueCore4-ROM Product Data Sheet.pdf]&lt;br /&gt;
* Driver: Stock Linux Kernel BlueZ&lt;br /&gt;
* Connected to: S3C2410 USB Host controller (OHCI)&lt;br /&gt;
* PM Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-power_control.patch&lt;br /&gt;
&lt;br /&gt;
=== Vibrator ===&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-vibrator.patch&lt;br /&gt;
* Connected to: S3C2410 GPIO&lt;br /&gt;
&lt;br /&gt;
=== USB Host ===&lt;br /&gt;
The USB Host controller is inside the S3C2410&lt;br /&gt;
* Driver: Stock Linux kernel ohci_hcd&lt;br /&gt;
&lt;br /&gt;
=== USB Device ===&lt;br /&gt;
The USB Device controller is inside the S3C2410 &lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/s3c2410_udc.patch&lt;br /&gt;
* Please see [[USB Product IDs]] on information about which Vendor/Product IDs we use&lt;br /&gt;
* 1200mAh lithium battery charges when connected to powered host.&lt;br /&gt;
* Mini-AB connector similar to [http://www.cypressindustries.com/shoponline/proddetail.asp?prod=CCMUSBAB-32005-700&amp;amp;cat=34 this one].&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
See also: [[Neo1973 Audio Subsystem]]&lt;br /&gt;
&lt;br /&gt;
==== Wolfson Codec ====&lt;br /&gt;
There's a WM8753 Wolfson Microelectronics CODEC (This is not a 'smart' codec that can interpret MP3/... it is a simple dumb 'sound card'.&lt;br /&gt;
* Product Homepage: http://www.wolfsonmicro.com/products/WM8753/&lt;br /&gt;
* Data Sheet: [http://www.wolfsonmicro.com/uploads/documents/en/WM8753.pdf WM8753.pdf]&lt;br /&gt;
* Connected to: S3C2410 IIS interface (PCM data), S3C2410 I2C (Control)&lt;br /&gt;
* Driver: https://svn.openmoko.org/trunk/src/target/kernel/patches/asoc.patch&lt;br /&gt;
&lt;br /&gt;
==== Stereo Amplifier ====&lt;br /&gt;
There's a National Semiconductor [[LM4857]] Stereo Amplifier at the analog audio output of the WM8753&lt;br /&gt;
&lt;br /&gt;
* Product Homepage: [http://www.national.com/pf/LM/LM4857.html LM4857.html]&lt;br /&gt;
* Data Sheet: [http://www.national.com/ds.cgi/LM/LM4857.pdf LM4857.pdf]&lt;br /&gt;
* Connects to: S3C2410 I2C (Control)&lt;br /&gt;
&lt;br /&gt;
==== Analog wired Headset ====&lt;br /&gt;
There's a four-ring 2.5mm stereo jack which provides connectivity to old-fashioned wired headsets.&lt;br /&gt;
&lt;br /&gt;
The headsets used by Motorola smartphones (A780,A1200, ...) and the V-360 have a compatible configuration.&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth Headset ====&lt;br /&gt;
This one is wired via PCM bus from the CSR Bluetooth chip to the Wolfson codec.&lt;br /&gt;
&lt;br /&gt;
=== Power Management ===&lt;br /&gt;
A Philips PCF50606 is used for power management.&lt;br /&gt;
&lt;br /&gt;
* Data Sheet: [http://www.nxp.com/acrobat/literature/9397/75009763.pdf PCF50606/605]&lt;br /&gt;
* User Manual: [http://www.rockbox.org/twiki/pub/Main/DataSheets/pcf50606.pdf pcf50606.pdf]&lt;br /&gt;
* Connected to: S3C2410 via I2C, client address is 0x08. &lt;br /&gt;
* Driver Source: https://svn.openmoko.org/trunk/src/target/kernel/patches/gta01-pcf50606.patch&lt;br /&gt;
&lt;br /&gt;
=== Battery ===&lt;br /&gt;
The [[Neo1973 Battery]] is compatible with a Nokia BL5C battery.&lt;br /&gt;
According to [http://lists.openmoko.org/pipermail/community/2007-February/003758.html this] post on the mailinglist.&lt;br /&gt;
[http://wiki.openmoko.org/index.php?title=Image:Neo1973-with-BL5C-battery.png Photo] of the battery inside the Neo1973.&lt;br /&gt;
&lt;br /&gt;
=== Buttons ===&lt;br /&gt;
The Neo1973 features two buttons:&lt;br /&gt;
# [[Neo1973 Power button|The Power Button]]&lt;br /&gt;
# [[Neo1973 AUX button|The &amp;quot;Aux&amp;quot; button]]&lt;br /&gt;
&lt;br /&gt;
== History ==&lt;br /&gt;
=== GTA01 ===&lt;br /&gt;
This is the most simple, non-bluetooth version of the prototype.&lt;br /&gt;
&lt;br /&gt;
==== GTA01v3 ====&lt;br /&gt;
First generation of prototypes that was given to internal OpenMoko software developers.&lt;br /&gt;
&lt;br /&gt;
Unfortunately not useful at all due to non-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x0000130&lt;br /&gt;
&lt;br /&gt;
==== GTA01v4 ====&lt;br /&gt;
Second generation of prototypes that was given to Harald + Mickey.&lt;br /&gt;
&lt;br /&gt;
Unfortunately still not useful due to half-working touchscreen.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000140&lt;br /&gt;
&lt;br /&gt;
=== GTA01B ===&lt;br /&gt;
This is the bluetooth-enabled fork of GTA01&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv2 ====&lt;br /&gt;
This is the first produced version of the bluetooth-enabled version.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000220&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv3 ====&lt;br /&gt;
This is the second produced version of the bluetooth-enabled version. It contains mainly GPS-related fixes.&lt;br /&gt;
&lt;br /&gt;
* ATAG_REVISION: 0x00000230&lt;br /&gt;
&lt;br /&gt;
This is the version that is shipped in Phase 0&lt;br /&gt;
&lt;br /&gt;
===== GTA01Bv3 Errata =====&lt;br /&gt;
====== PMU unable to resume from suspend ======&lt;br /&gt;
Due to use of wrong GPIO/EINT pin, the PMU cannot wake-up the phone after suspend.  This means, specifically, '''the following events can not bring the phone back from suspend-to-ram''':&lt;br /&gt;
* PMU RTC Alarm&lt;br /&gt;
* Power button press&lt;br /&gt;
* Charger events (charger insertion/removal/error)&lt;br /&gt;
* Low battery&lt;br /&gt;
&lt;br /&gt;
====== Stand-by time extremely low ======&lt;br /&gt;
This is due to a design bug resulting in at least 30mA additional standby current, since we cannot properly switch off the power supply to the S3C2410 PLL's.  There is nothing we can do to change this with post-production fixes.  GTA01Bv4 will address this issue.&lt;br /&gt;
&lt;br /&gt;
====== GSM doesn't resume phone from suspend ======&lt;br /&gt;
The GSM modem currently doesn't signalize a wakeup interrupt to the S3C2410 in case there's some noteworthy event, such as incoming call, loss of network, incoming SMS or the like.&lt;br /&gt;
&lt;br /&gt;
This is a serious issue, but can be fixed with a GSM Modem Firmware update.&lt;br /&gt;
&lt;br /&gt;
====== GSM Sidetone too loud ======&lt;br /&gt;
The local feedback sidetone (see [http://en.wikipedia.org/wiki/Sidetone]) is too loud.  This will be addressed in a GSM firmware update&lt;br /&gt;
&lt;br /&gt;
====== Bad block ======&lt;br /&gt;
Due to an error in the production process, the factory-programmed NAND bad block information has been lost.  This means that some blocks in the flash will wear out rapidly, which might become as bad as rendering the device unusable.&lt;br /&gt;
&lt;br /&gt;
==== GTA01Bv4 ====&lt;br /&gt;
This is the version that will be shipped in Phase 1&lt;br /&gt;
&lt;br /&gt;
===== Changes from GTA01Bv3 =====&lt;br /&gt;
# Fix all Errata items from GTA01Bv3&lt;br /&gt;
# Add I2C, SPI and one irq and wakeup capable GPIO pin to debug port plus have test pads for all these signals (for soldering wires directly on the pcb)&lt;br /&gt;
# Fix a number of production related details and minor hardware details that are not user-visible&lt;br /&gt;
&lt;br /&gt;
== Distinguishing hardware revisions ==&lt;br /&gt;
=== Inside the [[Bootloader]] ===&lt;br /&gt;
Every hardware revision has its own u-boot image type.  Thus, the bootloader has the revision hard-coded.&lt;br /&gt;
The hardware revision is passed on to the kernel via the ATAG mechanism (ATAG_REVISION)&lt;br /&gt;
&lt;br /&gt;
=== Inside the [[Kernel]] ===&lt;br /&gt;
The kernel receives the ATAG_REVISION during bootup, and saves its contents in the &amp;quot;system_rev&amp;quot; global variable.&lt;br /&gt;
&lt;br /&gt;
=== From Userspace ===&lt;br /&gt;
The kernel exports the system_rev variable in /proc/cpuinfo as &amp;quot;Revision :&amp;quot; line.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
{{Languages|Neo1973_Hardware}}&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wishlist/Neo1973_P0_Review</id>
		<title>Wishlist/Neo1973 P0 Review</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wishlist/Neo1973_P0_Review"/>
				<updated>2007-03-13T21:52:51Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Connecting */ added comment about potentially bogus command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page for those with P0 hardware to share their impressions of the device, and to respond to questions that may be raised about it.&lt;br /&gt;
&lt;br /&gt;
See also [[Neo1973 Phase 0]] -- Information for Phase 0 device owners&lt;br /&gt;
&lt;br /&gt;
[[Neo1973_Hardware#GTA01Bv3]] -- Hardware in Phase 0 phone&lt;br /&gt;
&lt;br /&gt;
= Pictures =&lt;br /&gt;
&lt;br /&gt;
Found on IRC, pictures by:&lt;br /&gt;
*Koen provided these [http://www.flickr.com/photos/koenkooi/sets/72157594573486523/ pictures, of the assembled and partially dissasembled phone].&lt;br /&gt;
*Rod Whitby  [http://www.flickr.com/photos/rwhitby/sets/72157594574977123/ has posted pictures of his Neo1973 test rig]&lt;br /&gt;
*Hrw [http://flickr.com/photos/hrwandil/413643600/ Size comparison between nokia 6210, neo1973, SE k750i]&lt;br /&gt;
*alphaone [http://sicherheitsschwankung.de/gallery/v/openmoko/ comparison of several phones running openmoko]&lt;br /&gt;
&lt;br /&gt;
* picture of the inside of the front and back cases, with a ruler for scale, also pcb back and front with ruler, to make it easier for people considering building hardware modifications.&lt;br /&gt;
&lt;br /&gt;
=Wishlist=&lt;br /&gt;
&lt;br /&gt;
== Benchmarks ==&lt;br /&gt;
&lt;br /&gt;
* microSD read/write speeds with various cards&lt;br /&gt;
** at the moment this probably [http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=245 crashes] Neo1973: latest u-boot should fix this problem, test should be possible now&lt;br /&gt;
* internal NAND read/write speeds&lt;br /&gt;
* some benchmarks&lt;br /&gt;
&amp;lt;pre&amp;gt;dd bs=1024 count=10240 if=/dev/zero | time gzip -9 &amp;gt; /dev/null&lt;br /&gt;
10240+0 records in&lt;br /&gt;
10240+0 records out&lt;br /&gt;
real    0m 4.94s&lt;br /&gt;
user    0m 3.73s&lt;br /&gt;
sys     0m 0.58s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;time dd if=/dev/urandom bs=1024 count=10240 of=/dev/zero&lt;br /&gt;
10240+0 records in&lt;br /&gt;
10240+0 records out&lt;br /&gt;
real    0m 34.95s&lt;br /&gt;
user    0m 0.01s&lt;br /&gt;
sys     0m 34.69s&lt;br /&gt;
&lt;br /&gt;
and another device:&lt;br /&gt;
10240+0 records in&lt;br /&gt;
10240+0 records out&lt;br /&gt;
real    0m 37.01s&lt;br /&gt;
user    0m 0.03s&lt;br /&gt;
sys     0m 36.42s&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;time dd if=/dev/zero bs=1024 count=102400 of=/dev/zero&lt;br /&gt;
real    0m 2.23s&lt;br /&gt;
user    0m 0.12s&lt;br /&gt;
sys     0m 2.08&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
**scp via SSH to the SD card is running with 300kb/s&lt;br /&gt;
&lt;br /&gt;
== Input events dumps ==&lt;br /&gt;
* raw dump from s3c2410-ts device as you touch (click)/gesture/hold down with fingers/stylus&lt;br /&gt;
** raw dump when doing fake double-touch: one finger down and then tap with second finger or make gesture with second finger&lt;br /&gt;
** corresponding events in X11&lt;br /&gt;
&lt;br /&gt;
== Hardware Information ==&lt;br /&gt;
&lt;br /&gt;
=== USB ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ lsusb&lt;br /&gt;
Bus 1 Device 2: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)&lt;br /&gt;
Bus 1 Device 1: ID 0000:0000&lt;br /&gt;
root@fic-gta01:~$ lsusb -v&lt;br /&gt;
&lt;br /&gt;
Bus 1 Device 2: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               2.00&lt;br /&gt;
  bDeviceClass          224 Wireless&lt;br /&gt;
  bDeviceSubClass         1 Radio Frequency&lt;br /&gt;
  bDeviceProtocol         1 Bluetooth&lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0a12 Cambridge Silicon Radio, Ltd&lt;br /&gt;
  idProduct          0x0001 Bluetooth Dongle (HCI mode)&lt;br /&gt;
  bcdDevice           19.58&lt;br /&gt;
  iManufacturer           0&lt;br /&gt;
  iProduct                0&lt;br /&gt;
  iSerial                 0&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength          177&lt;br /&gt;
    bNumInterfaces          2&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0&lt;br /&gt;
    bmAttributes         0x80&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           3&lt;br /&gt;
      bInterfaceClass       224 Wireless&lt;br /&gt;
      bInterfaceSubClass      1 Radio Frequency&lt;br /&gt;
      bInterfaceProtocol      1 Bluetooth&lt;br /&gt;
      iInterface              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0010  1x 16 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x02  EP 2 OUT&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;
        bmAttributes            2&lt;br /&gt;
          Transfer Type            Bulk&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       224 Wireless&lt;br /&gt;
      bInterfaceSubClass      1 Radio Frequency&lt;br /&gt;
      bInterfaceProtocol      1 Bluetooth&lt;br /&gt;
      iInterface              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x03  EP 3 OUT&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0000  1x 0 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0000  1x 0 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       1&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       224 Wireless&lt;br /&gt;
      bInterfaceSubClass      1 Radio Frequency&lt;br /&gt;
      bInterfaceProtocol      1 Bluetooth&lt;br /&gt;
      iInterface              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x03  EP 3 OUT&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0009  1x 9 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0009  1x 9 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       2&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       224 Wireless&lt;br /&gt;
      bInterfaceSubClass      1 Radio Frequency&lt;br /&gt;
      bInterfaceProtocol      1 Bluetooth&lt;br /&gt;
      iInterface              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x03  EP 3 OUT&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0011  1x 17 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0011  1x 17 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       3&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       224 Wireless&lt;br /&gt;
      bInterfaceSubClass      1 Radio Frequency&lt;br /&gt;
      bInterfaceProtocol      1 Bluetooth&lt;br /&gt;
      iInterface              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x03  EP 3 OUT&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0019  1x 25 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0019  1x 25 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       4&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       224 Wireless&lt;br /&gt;
      bInterfaceSubClass      1 Radio Frequency&lt;br /&gt;
      bInterfaceProtocol      1 Bluetooth&lt;br /&gt;
      iInterface              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x03  EP 3 OUT&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0021  1x 33 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0021  1x 33 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        1&lt;br /&gt;
      bAlternateSetting       5&lt;br /&gt;
      bNumEndpoints           2&lt;br /&gt;
      bInterfaceClass       224 Wireless&lt;br /&gt;
      bInterfaceSubClass      1 Radio Frequency&lt;br /&gt;
      bInterfaceProtocol      1 Bluetooth&lt;br /&gt;
      iInterface              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x03  EP 3 OUT&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0031  1x 49 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;
        bmAttributes            1&lt;br /&gt;
          Transfer Type            Isochronous&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0031  1x 49 bytes&lt;br /&gt;
        bInterval               1&lt;br /&gt;
&lt;br /&gt;
Bus 1 Device 1: ID 0000:0000&lt;br /&gt;
Device Descriptor:&lt;br /&gt;
  bLength                18&lt;br /&gt;
  bDescriptorType         1&lt;br /&gt;
  bcdUSB               1.10&lt;br /&gt;
  bDeviceClass            9 Hub&lt;br /&gt;
  bDeviceSubClass         0 Unused&lt;br /&gt;
  bDeviceProtocol         0&lt;br /&gt;
  bMaxPacketSize0        64&lt;br /&gt;
  idVendor           0x0000&lt;br /&gt;
  idProduct          0x0000&lt;br /&gt;
  bcdDevice            2.06&lt;br /&gt;
  iManufacturer           3 Linux 2.6.20-moko8 ohci_hcd&lt;br /&gt;
  iProduct                2 S3C24XX OHCI&lt;br /&gt;
  iSerial                 1 s3c24xx&lt;br /&gt;
  bNumConfigurations      1&lt;br /&gt;
  Configuration Descriptor:&lt;br /&gt;
    bLength                 9&lt;br /&gt;
    bDescriptorType         2&lt;br /&gt;
    wTotalLength           25&lt;br /&gt;
    bNumInterfaces          1&lt;br /&gt;
    bConfigurationValue     1&lt;br /&gt;
    iConfiguration          0&lt;br /&gt;
    bmAttributes         0xe0&lt;br /&gt;
      Self Powered&lt;br /&gt;
      Remote Wakeup&lt;br /&gt;
    MaxPower                0mA&lt;br /&gt;
    Interface Descriptor:&lt;br /&gt;
      bLength                 9&lt;br /&gt;
      bDescriptorType         4&lt;br /&gt;
      bInterfaceNumber        0&lt;br /&gt;
      bAlternateSetting       0&lt;br /&gt;
      bNumEndpoints           1&lt;br /&gt;
      bInterfaceClass         9 Hub&lt;br /&gt;
      bInterfaceSubClass      0 Unused&lt;br /&gt;
      bInterfaceProtocol      0&lt;br /&gt;
      iInterface              0&lt;br /&gt;
      Endpoint Descriptor:&lt;br /&gt;
        bLength                 7&lt;br /&gt;
        bDescriptorType         5&lt;br /&gt;
        bEndpointAddress     0x81  EP 1 IN&lt;br /&gt;
        bmAttributes            3&lt;br /&gt;
          Transfer Type            Interrupt&lt;br /&gt;
          Synch Type               None&lt;br /&gt;
          Usage Type               Data&lt;br /&gt;
        wMaxPacketSize     0x0002  1x 2 bytes&lt;br /&gt;
        bInterval             255&lt;br /&gt;
Hub Descriptor:&lt;br /&gt;
  bLength               9&lt;br /&gt;
  bDescriptorType      41&lt;br /&gt;
  nNbrPorts             2&lt;br /&gt;
  wHubCharacteristic 0x0012&lt;br /&gt;
    No power switching (usb 1.0)&lt;br /&gt;
    No overcurrent protection&lt;br /&gt;
  bPwrOn2PwrGood        2 * 2 milli seconds&lt;br /&gt;
  bHubContrCurrent      0 milli Ampere&lt;br /&gt;
  DeviceRemovable    0x00&lt;br /&gt;
  PortPwrCtrlMask    0x00&lt;br /&gt;
 Hub Port Status:&lt;br /&gt;
   Port 1: 0000.0103 power enable connect&lt;br /&gt;
   Port 2: 0000.0100 power&lt;br /&gt;
root@fic-gta01:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CPU ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Processor       : ARM920T rev 0 (v4l)&lt;br /&gt;
BogoMIPS        : 100.96&lt;br /&gt;
Features        : swp half thumb&lt;br /&gt;
CPU implementer : 0x41&lt;br /&gt;
CPU architecture: 4T&lt;br /&gt;
CPU variant     : 0x1&lt;br /&gt;
CPU part        : 0x920&lt;br /&gt;
CPU revision    : 0&lt;br /&gt;
Cache type      : write-back&lt;br /&gt;
Cache clean     : cp15 c7 ops&lt;br /&gt;
Cache lockdown  : format A&lt;br /&gt;
Cache format    : Harvard&lt;br /&gt;
I size          : 16384&lt;br /&gt;
I assoc         : 64&lt;br /&gt;
I line length   : 32&lt;br /&gt;
I sets          : 8&lt;br /&gt;
D size          : 16384&lt;br /&gt;
D assoc         : 64&lt;br /&gt;
D line length   : 32&lt;br /&gt;
D sets          : 8&lt;br /&gt;
&lt;br /&gt;
Hardware        : GTA01&lt;br /&gt;
Revision        : 0230&lt;br /&gt;
Serial          : 0000000000000000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GSM Modem ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;ATI3&amp;lt;/tt&amp;gt; &amp;amp; &amp;lt;tt&amp;gt;ATI9&amp;lt;/tt&amp;gt; &amp;amp; &amp;lt;tt&amp;gt;AT&amp;amp;V&amp;lt;/tt&amp;gt; output from GSM modem&lt;br /&gt;
** All those commands give an error, but see [[Hardware:AT_Commands]] for other results.&lt;br /&gt;
** Oh, how unfortunate. TI's Calypso is not PnP (ATI9) :-) --[[User:Csdexter|@Dexter]] 15:39, 8 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
&lt;br /&gt;
Basic info:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ hciconfig hci0 -a&lt;br /&gt;
hci0:   Type: USB&lt;br /&gt;
        BD Address: 00:06:6E:14:13:CA ACL MTU: 384:8 SCO MTU: 64:8&lt;br /&gt;
        UP RUNNING PSCAN ISCAN&lt;br /&gt;
        RX bytes:943 acl:0 sco:0 events:33 errors:0&lt;br /&gt;
        TX bytes:459 acl:0 sco:0 commands:32 errors:0&lt;br /&gt;
        Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80&lt;br /&gt;
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3&lt;br /&gt;
        Link policy: RSWITCH HOLD SNIFF PARK&lt;br /&gt;
        Link mode: SLAVE ACCEPT&lt;br /&gt;
        Name: 'BlueZ (0)'&lt;br /&gt;
        Class: 0x120112&lt;br /&gt;
        Service Classes: Networking, Object Transfer&lt;br /&gt;
        Device Class: Computer, Handheld&lt;br /&gt;
        HCI Ver: 2.0 (0x3) HCI Rev: 0x7a6 LMP Ver: 2.0 (0x3) LMP Subver: 0x7a6&lt;br /&gt;
        Manufacturer: Cambridge Silicon Radio (10)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Commands:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ hciconfig hci0 commands&lt;br /&gt;
hci0:   Type: USB&lt;br /&gt;
        BD Address: 00:06:6E:14:13:CA ACL MTU: 384:8 SCO MTU: 64:8&lt;br /&gt;
        Commands: Octet 0  = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 1  = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 2  = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 3  = 0x03 (Bit 0 1)&lt;br /&gt;
                  Octet 4  = 0xfe (Bit 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 5  = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 6  = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 7  = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 8  = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 9  = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 10 = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 11 = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 12 = 0xf3 (Bit 0 1 4 5 6 7)&lt;br /&gt;
                  Octet 13 = 0x0f (Bit 0 1 2 3)&lt;br /&gt;
                  Octet 14 = 0xf8 (Bit 3 4 5 6 7)&lt;br /&gt;
                  Octet 15 = 0xff (Bit 0 1 2 3 4 5 6 7)&lt;br /&gt;
                  Octet 16 = 0x3f (Bit 0 1 2 3 4 5)&lt;br /&gt;
        'Inquiry' 'Inquiry Cancel' 'Periodic Inquiry Mode'&lt;br /&gt;
        'Exit Periodic Inquiry Mode' 'Create Connection' 'Disconnect'&lt;br /&gt;
        'Add SCO Connection' 'Cancel Create Connection'&lt;br /&gt;
        'Accept Connection Request' 'Reject Connection Request'&lt;br /&gt;
        'Link Key Request Reply' 'Link Key Request Negative Reply'&lt;br /&gt;
        'PIN Code Request Reply' 'PIN Code Request Negative Reply'&lt;br /&gt;
        'Change Connection Packet Type' 'Authentication Requested'&lt;br /&gt;
        'Set Connection Encryption' 'Change Connection Link Key'&lt;br /&gt;
        'Master Link Key' 'Remote Name Request' 'Cancel Remote Name Request'&lt;br /&gt;
        'Read Remote Supported Features' 'Read Remote Extended Features'&lt;br /&gt;
        'Read Remote Version Information' 'Read Clock Offset'&lt;br /&gt;
        'Read LMP Handle' 'Hold Mode' 'Sniff Mode' 'Exit Sniff Mode'&lt;br /&gt;
        'Park State' 'Exit Park State' 'QoS Setup' 'Role Discovery'&lt;br /&gt;
        'Switch Role' 'Read Link Policy Settings' 'Write Link Policy Settings'&lt;br /&gt;
        'Read Default Link Policy Settings'&lt;br /&gt;
        'Write Default Link Policy Settings' 'Flow Specification'&lt;br /&gt;
        'Set Event Mask' 'Reset' 'Set Event Filter' 'Flush' 'Read PIN Type'&lt;br /&gt;
        'Write PIN Type' 'Create New Unit Key' 'Read Stored Link Key'&lt;br /&gt;
        'Write Stored Link Key' 'Delete Stored Link Key' 'Write Local Name'&lt;br /&gt;
        'Read Local Name' 'Read Connection Accept Timeout'&lt;br /&gt;
        'Write Connection Accept Timeout' 'Read Page Timeout'&lt;br /&gt;
        'Write Page Timeout' 'Read Scan Enable' 'Write Scan Enable'&lt;br /&gt;
        'Read Page Scan Activity' 'Write Page Scan Activity'&lt;br /&gt;
        'Read Inquiry Scan Activity' 'Write Inquiry Scan Activity'&lt;br /&gt;
        'Read Authentication Enable' 'Write Authentication Enable'&lt;br /&gt;
        'Read Encryption Mode' 'Write Encryption Mode' 'Read Class Of Device'&lt;br /&gt;
        'Write Class Of Device' 'Read Voice Setting' 'Write Voice Setting'&lt;br /&gt;
        'Read Automatic Flush Timeout' 'Write Automatic Flush Timeout'&lt;br /&gt;
        'Read Num Broadcast Retransmissions'&lt;br /&gt;
        'Write Num Broadcast Retransmissions' 'Read Hold Mode Activity'&lt;br /&gt;
        'Write Hold Mode Activity' 'Read Transmit Power Level'&lt;br /&gt;
        'Read Synchronous Flow Control Enable'&lt;br /&gt;
        'Write Synchronous Flow Control Enable'&lt;br /&gt;
        'Set Host Controller To Host Flow Control' 'Host Buffer Size'&lt;br /&gt;
        'Host Number Of Completed Packets' 'Read Link Supervision Timeout'&lt;br /&gt;
        'Write Link Supervision Timeout' 'Read Number of Supported IAC'&lt;br /&gt;
        'Read Current IAC LAP' 'Write Current IAC LAP'&lt;br /&gt;
        'Read Page Scan Period Mode' 'Write Page Scan Period Mode'&lt;br /&gt;
        'Read Page Scan Mode' 'Write Page Scan Mode'&lt;br /&gt;
        'Set AFH Channel Classification' 'Read Inquiry Scan Type'&lt;br /&gt;
        'Write Inquiry Scan Type' 'Read Inquiry Mode' 'Write Inquiry Mode'&lt;br /&gt;
        'Read Page Scan Type' 'Write Page Scan Type'&lt;br /&gt;
        'Read AFH Channel Assessment Mode' 'Write AFH Channel Assessment Mode'&lt;br /&gt;
        'Read Local Version Information' 'Read Local Supported Commands'&lt;br /&gt;
        'Read Local Supported Features' 'Read Local Extended Features'&lt;br /&gt;
        'Read Buffer Size' 'Read Country Code' 'Read BD ADDR'&lt;br /&gt;
        'Read Failed Contact Counter' 'Reset Failed Contact Counter'&lt;br /&gt;
        'Get Link Quality' 'Read RSSI' 'Read AFH Channel Map' 'Read BD Clock'&lt;br /&gt;
        'Read Loopback Mode' 'Write Loopback Mode'&lt;br /&gt;
        'Enable Device Under Test Mode' 'Setup Synchronous Connection'&lt;br /&gt;
        'Accept Synchronous Connection' 'Reject Synchronous Connection'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@fic-gta01:~$ hciconfig hci0 features&lt;br /&gt;
hci0:   Type: USB&lt;br /&gt;
        BD Address: 00:06:6E:14:13:CA ACL MTU: 384:8 SCO MTU: 64:8&lt;br /&gt;
        Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80&lt;br /&gt;
                &amp;lt;3-slot packets&amp;gt; &amp;lt;5-slot packets&amp;gt; &amp;lt;encryption&amp;gt; &amp;lt;slot offset&amp;gt;&lt;br /&gt;
                &amp;lt;timing accuracy&amp;gt; &amp;lt;role switch&amp;gt; &amp;lt;hold mode&amp;gt; &amp;lt;sniff mode&amp;gt;&lt;br /&gt;
                &amp;lt;park state&amp;gt; &amp;lt;RSSI&amp;gt; &amp;lt;channel quality&amp;gt; &amp;lt;SCO link&amp;gt; &amp;lt;HV2 packets&amp;gt;&lt;br /&gt;
                &amp;lt;HV3 packets&amp;gt; &amp;lt;u-law log&amp;gt; &amp;lt;A-law log&amp;gt; &amp;lt;CVSD&amp;gt; &amp;lt;paging scheme&amp;gt;&lt;br /&gt;
                &amp;lt;power control&amp;gt; &amp;lt;transparent SCO&amp;gt; &amp;lt;broadcast encrypt&amp;gt;&lt;br /&gt;
                &amp;lt;EDR ACL 2 Mbps&amp;gt; &amp;lt;EDR ACL 3 Mbps&amp;gt; &amp;lt;enhanced iscan&amp;gt;&lt;br /&gt;
                &amp;lt;interlaced iscan&amp;gt; &amp;lt;interlaced pscan&amp;gt; &amp;lt;inquiry with RSSI&amp;gt;&lt;br /&gt;
                &amp;lt;extended SCO&amp;gt; &amp;lt;EV4 packets&amp;gt; &amp;lt;EV5 packets&amp;gt; &amp;lt;AFH cap. slave&amp;gt;&lt;br /&gt;
                &amp;lt;AFH class. slave&amp;gt; &amp;lt;3-slot EDR ACL&amp;gt; &amp;lt;5-slot EDR ACL&amp;gt;&lt;br /&gt;
                &amp;lt;AFH cap. master&amp;gt; &amp;lt;AFH class. master&amp;gt; &amp;lt;EDR eSCO 2 Mbps&amp;gt;&lt;br /&gt;
                &amp;lt;EDR eSCO 3 Mbps&amp;gt; &amp;lt;3-slot EDR eSCO&amp;gt; &amp;lt;extended features&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== System information ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;dmesg&amp;lt;/tt&amp;gt; dump&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;4&amp;gt;CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0003177&lt;br /&gt;
&amp;lt;4&amp;gt;Machine: GTA01&lt;br /&gt;
&amp;lt;4&amp;gt;Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
&amp;lt;7&amp;gt;On node 0 totalpages: 32768&lt;br /&gt;
&amp;lt;7&amp;gt;  DMA zone: 256 pages used for memmap&lt;br /&gt;
&amp;lt;7&amp;gt;  DMA zone: 0 pages reserved&lt;br /&gt;
&amp;lt;7&amp;gt;  DMA zone: 32512 pages, LIFO batch:7&lt;br /&gt;
&amp;lt;7&amp;gt;  Normal zone: 0 pages used for memmap&lt;br /&gt;
&amp;lt;4&amp;gt;CPU S3C2410A (id 0x32410002)&lt;br /&gt;
&amp;lt;4&amp;gt;S3C2410: core 202.666 MHz, memory 101.333 MHz, peripheral 50.666 MHz&lt;br /&gt;
&amp;lt;6&amp;gt;S3C24XX Clocks, (c) 2004 Simtec Electronics&lt;br /&gt;
&amp;lt;4&amp;gt;CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on&lt;br /&gt;
&amp;lt;4&amp;gt;CPU0: D VIVT write-back cache&lt;br /&gt;
&amp;lt;4&amp;gt;CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets&lt;br /&gt;
&amp;lt;4&amp;gt;CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets&lt;br /&gt;
&amp;lt;4&amp;gt;Built 1 zonelists.  Total pages: 32512&lt;br /&gt;
&amp;lt;5&amp;gt;Kernel command line: rootfstype=jffs2 root=/dev/mtdblock4 console=tty0 mtdparts=neo1973-nand:0x00040000(u-boot),0x00004000(u-boot_env),0x00200000(kernel),0x000a0000(splash),0x03d1c000(rootfs)&lt;br /&gt;
&amp;lt;4&amp;gt;irq: clearing pending ext status 000000a0&lt;br /&gt;
&amp;lt;4&amp;gt;irq: clearing subpending status 00000002&lt;br /&gt;
&amp;lt;4&amp;gt;PID hash table entries: 512 (order: 9, 2048 bytes)&lt;br /&gt;
&amp;lt;4&amp;gt;timer tcon=00500000, tcnt a4ed, tcfg 00000200,00000000, usec 00001e51&lt;br /&gt;
&amp;lt;4&amp;gt;Console: colour dummy device 80x30&lt;br /&gt;
&amp;lt;4&amp;gt;Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
&amp;lt;4&amp;gt;Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)&lt;br /&gt;
&amp;lt;6&amp;gt;Memory: 128MB = 128MB total&lt;br /&gt;
&amp;lt;5&amp;gt;Memory: 126720KB available (2824K code, 255K data, 104K init)&lt;br /&gt;
&amp;lt;7&amp;gt;Calibrating delay loop... 100.96 BogoMIPS (lpj=252416)&lt;br /&gt;
&amp;lt;4&amp;gt;Mount-cache hash table entries: 512&lt;br /&gt;
&amp;lt;6&amp;gt;CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;4&amp;gt;S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics&lt;br /&gt;
&amp;lt;4&amp;gt;Registering sysclass&lt;br /&gt;
&amp;lt;4&amp;gt;DMA channel 0 at c8800000, irq 33&lt;br /&gt;
&amp;lt;4&amp;gt;DMA channel 1 at c8800040, irq 34&lt;br /&gt;
&amp;lt;4&amp;gt;DMA channel 2 at c8800080, irq 35&lt;br /&gt;
&amp;lt;4&amp;gt;DMA channel 3 at c88000c0, irq 36&lt;br /&gt;
&amp;lt;6&amp;gt;NET: Registered protocol family 16&lt;br /&gt;
&amp;lt;4&amp;gt;S3C2410 Power Management, (c) 2004 Simtec Electronics&lt;br /&gt;
&amp;lt;4&amp;gt;S3C2410: Initialising architecture&lt;br /&gt;
&amp;lt;4&amp;gt; 0:               xdreq0, channels 0---&lt;br /&gt;
&amp;lt;4&amp;gt; 1:               xdreq1, channels -1--&lt;br /&gt;
&amp;lt;4&amp;gt; 2:                  sdi, channels 0-23&lt;br /&gt;
&amp;lt;4&amp;gt; 3:                 spi0, channels -1--&lt;br /&gt;
&amp;lt;4&amp;gt; 4:                 spi1, channels ---3&lt;br /&gt;
&amp;lt;4&amp;gt; 5:                uart0, channels 0---&lt;br /&gt;
&amp;lt;4&amp;gt; 6:                uart1, channels -1--&lt;br /&gt;
&amp;lt;4&amp;gt; 7:                uart2, channels ---3&lt;br /&gt;
&amp;lt;4&amp;gt; 8:                timer, channels 0-23&lt;br /&gt;
&amp;lt;4&amp;gt; 9:              i2s-sdi, channels -12-&lt;br /&gt;
&amp;lt;4&amp;gt;10:              i2s-sdo, channels --2-&lt;br /&gt;
&amp;lt;4&amp;gt;11:               &amp;lt;NULL&amp;gt;, channels ----&lt;br /&gt;
&amp;lt;4&amp;gt;12:               &amp;lt;NULL&amp;gt;, channels ----&lt;br /&gt;
&amp;lt;4&amp;gt;13:               &amp;lt;NULL&amp;gt;, channels ----&lt;br /&gt;
&amp;lt;4&amp;gt;14:              usb-ep1, channels 0---&lt;br /&gt;
&amp;lt;4&amp;gt;15:              usb-ep2, channels -1--&lt;br /&gt;
&amp;lt;4&amp;gt;16:              usb-ep3, channels --2-&lt;br /&gt;
&amp;lt;4&amp;gt;17:              usb-ep4, channels ---3&lt;br /&gt;
&amp;lt;6&amp;gt;usbcore: registered new interface driver usbfs&lt;br /&gt;
&amp;lt;6&amp;gt;usbcore: registered new interface driver hub&lt;br /&gt;
&amp;lt;6&amp;gt;usbcore: registered new device driver usb&lt;br /&gt;
&amp;lt;6&amp;gt;NET: Registered protocol family 2&lt;br /&gt;
&amp;lt;4&amp;gt;IP route cache hash table entries: 1024 (order: 0, 4096 bytes)&lt;br /&gt;
&amp;lt;4&amp;gt;TCP established hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
&amp;lt;4&amp;gt;TCP bind hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
&amp;lt;6&amp;gt;TCP: Hash tables configured (established 4096 bind 2048)&lt;br /&gt;
&amp;lt;6&amp;gt;TCP reno registered&lt;br /&gt;
&amp;lt;6&amp;gt;JFFS2 version 2.2. (NAND) (SUMMARY)  (C) 2001-2006 Red Hat, Inc.&lt;br /&gt;
&amp;lt;6&amp;gt;io scheduler noop registered&lt;br /&gt;
&amp;lt;6&amp;gt;io scheduler deadline registered (default)&lt;br /&gt;
&amp;lt;4&amp;gt;GTA01 Backlight Driver Initialized.&lt;br /&gt;
&amp;lt;4&amp;gt;Console: switching to colour frame buffer device 80x58&lt;br /&gt;
&amp;lt;6&amp;gt;fb0: s3c2410fb frame buffer device&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2410&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2410&lt;br /&gt;
&amp;lt;4&amp;gt;RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize&lt;br /&gt;
&amp;lt;4&amp;gt;S3C24XX NAND Driver, (c) 2004 Simtec Electronics&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-nand s3c2410-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns&lt;br /&gt;
&amp;lt;6&amp;gt;NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)&lt;br /&gt;
&amp;lt;7&amp;gt;Bad block table found at page 131040, version 0x01&lt;br /&gt;
&amp;lt;7&amp;gt;Bad block table found at page 131008, version 0x01&lt;br /&gt;
&amp;lt;5&amp;gt;5 cmdlinepart partitions found on MTD device neo1973-nand&lt;br /&gt;
&amp;lt;5&amp;gt;Creating 5 MTD partitions on &amp;quot;neo1973-nand&amp;quot;:&lt;br /&gt;
&amp;lt;5&amp;gt;0x00000000-0x00040000 : &amp;quot;u-boot&amp;quot;&lt;br /&gt;
&amp;lt;5&amp;gt;0x00040000-0x00044000 : &amp;quot;u-boot_env&amp;quot;&lt;br /&gt;
&amp;lt;5&amp;gt;0x00044000-0x00244000 : &amp;quot;kernel&amp;quot;&lt;br /&gt;
&amp;lt;5&amp;gt;0x00244000-0x002e4000 : &amp;quot;splash&amp;quot;&lt;br /&gt;
&amp;lt;5&amp;gt;0x002e4000-0x04000000 : &amp;quot;rootfs&amp;quot;&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-nand s3c2410-nand: clock idle support enabled&lt;br /&gt;
&amp;lt;6&amp;gt;s3c24xx-spi-gpio s3c24xx-spi-gpio.1: registering c001f248: jbt6k74&lt;br /&gt;
&amp;lt;3&amp;gt;jbt_init: entering&lt;br /&gt;
&amp;lt;3&amp;gt;jbt_probe: entering&lt;br /&gt;
&amp;lt;3&amp;gt;jbt6k74_enter_state: entering(old_state=0, new_state=2)&lt;br /&gt;
&amp;lt;3&amp;gt;standby_to_sleep: entering&lt;br /&gt;
&amp;lt;3&amp;gt;sleep_to_normal: entering&lt;br /&gt;
&amp;lt;3&amp;gt;jbt_init_regs: entering&lt;br /&gt;
&amp;lt;3&amp;gt;jbt6k74_display_onoff: entering&lt;br /&gt;
&amp;lt;5&amp;gt;usbmon: debugfs is not available&lt;br /&gt;
&amp;lt;6&amp;gt;usbcore: registered new interface driver libusual&lt;br /&gt;
&amp;lt;7&amp;gt;gta01_udc_command(2)&lt;br /&gt;
&amp;lt;4&amp;gt;ether gadget: using random self ethernet address&lt;br /&gt;
&amp;lt;4&amp;gt;ether gadget: using random host ethernet address&lt;br /&gt;
&amp;lt;6&amp;gt;usb0: Ethernet Gadget, version: May Day 2005&lt;br /&gt;
&amp;lt;6&amp;gt;usb0: using s3c2410_udc, OUT ep2-bulk IN ep1-bulk STATUS ep3-bulk&lt;br /&gt;
&amp;lt;6&amp;gt;usb0: MAC 2e:a9:0b:ec:cf:6f&lt;br /&gt;
&amp;lt;6&amp;gt;usb0: HOST MAC 62:c2:cc:8b:e8:c4&lt;br /&gt;
&amp;lt;6&amp;gt;usb0: RNDIS ready&lt;br /&gt;
&amp;lt;7&amp;gt;gta01_udc_command(1)&lt;br /&gt;
&amp;lt;6&amp;gt;mice: PS/2 mouse device common for all mice&lt;br /&gt;
&amp;lt;6&amp;gt;input: GTA01 Buttons as /class/input/input0&lt;br /&gt;
&amp;lt;6&amp;gt;wake enabled for irq 50&lt;br /&gt;
&amp;lt;6&amp;gt;wake enabled for irq 51&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410 TouchScreen successfully loaded&lt;br /&gt;
&amp;lt;6&amp;gt;input: s3c2410 TouchScreen as /class/input/input1&lt;br /&gt;
&amp;lt;6&amp;gt;i2c /dev entries driver&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-i2c s3c2410-i2c: slave address 0x10&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-i2c s3c2410-i2c: bus frequency set to 98 KHz&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-i2c s3c2410-i2c: i2c-0: S3C I2C adapter&lt;br /&gt;
&amp;lt;4&amp;gt;pcf50606_init: entering, calling i2c_add_driver&lt;br /&gt;
&amp;lt;4&amp;gt;pcf50606_attach_adapter: entering, calling i2c_probe&lt;br /&gt;
&amp;lt;4&amp;gt;pcf50606_detect: entering&lt;br /&gt;
&amp;lt;4&amp;gt;pcf50606_irq: entering(irq=60, pcf=c0555e00): scheduling work&lt;br /&gt;
&amp;lt;3&amp;gt;PCF50606: IRQ 1 cannot be enabled as wake-upsource in this hardware revision!&amp;lt;7&amp;gt;pcf50606 0-0008: rtc intf: sysfs&lt;br /&gt;
&amp;lt;7&amp;gt;pcf50606 0-0008: rtc intf: proc&lt;br /&gt;
&amp;lt;7&amp;gt;pcf50606 0-0008: rtc intf: dev (254:0)&lt;br /&gt;
&amp;lt;6&amp;gt;pcf50606 0-0008: rtc core: registered pcf50606 as rtc0&lt;br /&gt;
&amp;lt;6&amp;gt;input: FIC Neo1973 PMU events as /class/input/input2&lt;br /&gt;
&amp;lt;6&amp;gt;Advanced Linux Sound Architecture Driver Version 1.0.14rc1 (Tue Jan 09 09:56:17 2007 UTC).&lt;br /&gt;
&amp;lt;4&amp;gt;pcf50606_work: INT1=0x40 INT2=0x0c INT3=0x00:SECOND CHGFOK CHGERR&lt;br /&gt;
&amp;lt;6&amp;gt;ASoC version 0.13.3&lt;br /&gt;
&amp;lt;6&amp;gt;wm8753: WM8753 Audio Codec 0.16&lt;br /&gt;
&amp;lt;6&amp;gt;asoc: WM8753 HiFi &amp;lt;-&amp;gt; s3c24xx-i2s mapping ok&lt;br /&gt;
&amp;lt;6&amp;gt;asoc: WM8753 Voice &amp;lt;-&amp;gt; Bluetooth mapping ok&lt;br /&gt;
&amp;lt;6&amp;gt;ALSA device list:&lt;br /&gt;
&amp;lt;6&amp;gt;  #0: neo1973 (WM8753)&lt;br /&gt;
&amp;lt;6&amp;gt;TCP cubic registered&lt;br /&gt;
&amp;lt;6&amp;gt;NET: Registered protocol family 1&lt;br /&gt;
&amp;lt;6&amp;gt;usb0: full speed config #1: 500 mA, Ethernet Gadget, using CDC Ethernet&lt;br /&gt;
&amp;lt;3&amp;gt;ep_disable: ep3-bulk&lt;br /&gt;
&amp;lt;4&amp;gt;Empty flash at 0x018c7c8c ends at 0x018c7e00&lt;br /&gt;
&amp;lt;7&amp;gt;udc: enabling fast charge&lt;br /&gt;
&amp;lt;4&amp;gt;VFS: Mounted root (jffs2 filesystem).&lt;br /&gt;
&amp;lt;6&amp;gt;Freeing init memory: 104K&lt;br /&gt;
&amp;lt;4&amp;gt;pcf50606_irq: entering(irq=60, pcf=c0555e00): scheduling work&lt;br /&gt;
&amp;lt;4&amp;gt;pcf50606_work: INT1=0x40 INT2=0x04 INT3=0x00:SECOND CHGFOK&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;6&amp;gt;gta01-pm-bt gta01-pm-bt.0: FIC GTA01 (Neo1973) Bluetooth Power Management: starting&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: Core ver 2.11&lt;br /&gt;
&amp;lt;6&amp;gt;NET: Registered protocol family 31&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: HCI socket layer initialized&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: L2CAP ver 2.8&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: HIDP (Human Interface Emulation) ver 1.1&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-ohci s3c2410-ohci: S3C24XX OHCI&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1&lt;br /&gt;
&amp;lt;6&amp;gt;s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000&lt;br /&gt;
&amp;lt;6&amp;gt;usb usb1: configuration #1 chosen from 1 choice&lt;br /&gt;
&amp;lt;6&amp;gt;hub 1-0:1.0: USB hub found&lt;br /&gt;
&amp;lt;6&amp;gt;hub 1-0:1.0: 2 ports detected&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
&amp;lt;6&amp;gt;Bluetooth: RFCOMM ver 1.8&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcs1&lt;br /&gt;
&amp;lt;7&amp;gt;PM: Removing info for No Bus:vcsa1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;pstree -Gupl&amp;lt;/tt&amp;gt; output after all standard processes have started&lt;br /&gt;
* &amp;lt;tt&amp;gt;ps&amp;lt;/tt&amp;gt; output after startup:&lt;br /&gt;
&amp;lt;pre&amp;gt;  PID  Uid     VmSize Stat Command&lt;br /&gt;
    1 root        584 S   init [5]&lt;br /&gt;
    2 root            SWN [ksoftirqd/0]&lt;br /&gt;
    3 root            SW  [watchdog/0]&lt;br /&gt;
    4 root            SW&amp;lt; [events/0]&lt;br /&gt;
    5 root            SW&amp;lt; [khelper]&lt;br /&gt;
   10 root            SW&amp;lt; [kthread]&lt;br /&gt;
   56 root            SW&amp;lt; [kblockd/0]&lt;br /&gt;
   57 root            SW&amp;lt; [ksuspend_usbd]&lt;br /&gt;
   60 root            SW&amp;lt; [khubd]&lt;br /&gt;
   62 root            SW&amp;lt; [kseriod]&lt;br /&gt;
   73 root            SW&amp;lt; [kapmd]&lt;br /&gt;
   77 root            SW  [pdflush]&lt;br /&gt;
   78 root            SW  [pdflush]&lt;br /&gt;
   79 root            SW&amp;lt; [kswapd0]&lt;br /&gt;
   80 root            SW&amp;lt; [aio/0]&lt;br /&gt;
  117 root            SW  [mtdblockd]&lt;br /&gt;
  137 root            SW&amp;lt; [s3c24xx-spi-gpi]&lt;br /&gt;
  168 root            SW&amp;lt; [kmmcd]&lt;br /&gt;
  187 root            SWN [jffs2_gcd_mtd4]&lt;br /&gt;
  227 root        452 S &amp;lt; udevd --daemon&lt;br /&gt;
  848 root            SW&amp;lt; [krfcommd]&lt;br /&gt;
  950 daemon      380 S   /sbin/portmap&lt;br /&gt;
  986 root        624 S   /usr/sbin/dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 22&lt;br /&gt;
  995 root        480 S   /usr/sbin/apmd -P /etc/apm/apmd_proxy --proxy-timeout 30&lt;br /&gt;
 1005 messageb    712 S   /usr/bin/dbus-daemon --system&lt;br /&gt;
 1013 root        632 S   /sbin/syslogd -n -C 64 -m 20&lt;br /&gt;
 1015 root        628 S   /sbin/klogd -n&lt;br /&gt;
 1034 root        736 S   /sbin/hcid -f /etc/bluetooth/hcid.conf&lt;br /&gt;
 1037 root        484 S   /sbin/sdpd&lt;br /&gt;
 1040 root        492 S   /bin/hidd --server&lt;br /&gt;
 1051 root        540 S   /sbin/getty 38400 tty1&lt;br /&gt;
 1057 root        696 S   xinit /etc/X11/Xsession -- /usr/bin/Xfbdev :0 -br -pn -screen 480x640x1&lt;br /&gt;
 1076 root       3540 S &amp;lt; /usr/bin/Xfbdev :0 -br -pn -screen 480x640x16&lt;br /&gt;
 1081 root        692 S   /bin/sh /etc/X11/Xsession&lt;br /&gt;
 1086 root        716 S   /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session&lt;br /&gt;
 1090 root        580 S   run-parts /etc/X11/Xsession.d&lt;br /&gt;
 1094 root       1624 S   /usr/libexec/gconfd-2&lt;br /&gt;
 1097 root       2160 S   matchbox-window-manager -use_titlebar no -use_cursor no&lt;br /&gt;
 1098 root       2252 S   rxvt&lt;br /&gt;
 1100 root       2420 S   /usr/bin/settings-daemon&lt;br /&gt;
 1101 root        848 S   sh&lt;br /&gt;
 1103 root       3072 S   matchbox-desktop --icon-size 100 --icon-padding 60 --font sans-16 --tit&lt;br /&gt;
 1104 root       2152 S   matchbox-panel --orientation north -b /usr/share/openmoko/pixmaps/openm&lt;br /&gt;
 1105 root       2112 S   matchbox-panel --orientation south -b /usr/share/openmoko/pixmaps/openm&lt;br /&gt;
 1106 root       2040 S   mb-applet-menu-launcher&lt;br /&gt;
 1107 root       1376 S   mb-applet-launcher -o -1 -l mbterm.png mb-applet-xterm-wrapper.sh&lt;br /&gt;
 1108 root       1900 S   mbinputmgr&lt;br /&gt;
 1109 root       1372 S   mb-applet-launcher -na -l --title Screen Rotator /usr/share/pixmaps/xra&lt;br /&gt;
 1110 root       1436 S   mb-applet-battery&lt;br /&gt;
 1115 root       1836 S   matchbox-keyboard&lt;br /&gt;
 1117 root        552 S   logread -f&lt;br /&gt;
 1145 root       1016 S   /usr/sbin/dropbear -r /etc/dropbear/dropbear_rsa_host_key -p 22&lt;br /&gt;
 1146 root        880 S   -sh&lt;br /&gt;
 1149 root        784 R   ps&amp;lt;/pre&amp;gt;&lt;br /&gt;
(From [http://pastebin.ca/385957 here].)&lt;br /&gt;
&lt;br /&gt;
= Connecting =&lt;br /&gt;
&lt;br /&gt;
By default Neo1973 has usb0 interface working. Under Linux you need to &amp;lt;tt&amp;gt;modprobe usbnet&amp;lt;/tt&amp;gt; and configure usb0 interface:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig usb 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--[[User:Xkr47|xkr47]] 22:52, 13 March 2007 (CET) should that perhaps be &amp;quot;ifconfig usb0 ...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then &amp;lt;tt&amp;gt;ssh root@192.168.0.202&amp;lt;/tt&amp;gt; with empty password to get into phone.&lt;br /&gt;
&lt;br /&gt;
= Dialing =&lt;br /&gt;
&lt;br /&gt;
Dialing currently works only [[Manually_using_GSM|manually]].&lt;br /&gt;
&lt;br /&gt;
= Audio =&lt;br /&gt;
&lt;br /&gt;
Wishlist:&lt;br /&gt;
*How is the frequency characteristics (roughly) of the two Neo1973 speakers? And how's the sound with the bundled ear plugs? You may play this [http://www.dr-lex.34sp.com/macast/mp3test.html#Sweeps 20-16000 Hz exponential sweep (MP3)] to test.&lt;br /&gt;
*A real [http://freshmeat.net/projects/signalgenerator/ signal generator] would be better than signals recorded into a lossy format.  Many people are reporting audible glitches in the above sweeps (more noticeable in linear sweeps)&lt;br /&gt;
See [[Neo1973_Audio_Subsystem#Phase0_Quick_Start]]&lt;br /&gt;
&lt;br /&gt;
= MicroSD =&lt;br /&gt;
&lt;br /&gt;
MicroSD card quickstart is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe s3cmci&lt;br /&gt;
fdisk /dev/mmcblk0 (and create Linux partition)&lt;br /&gt;
mke2fs -j /dev/mmcblk0p1&lt;br /&gt;
mount -t ext3 /dev/mmcblk0p1 /media/card&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that without u-boot fix accessing too much will [http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=245 crash] Neo1973.&lt;br /&gt;
&lt;br /&gt;
[[Category:Ideas]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Neo_1973_GTA01_Power_Management</id>
		<title>Neo 1973 GTA01 Power Management</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Neo_1973_GTA01_Power_Management"/>
				<updated>2007-02-19T22:12:26Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Approximate power draw of various subsystems. Estimated from datasheets. */ Added comment that 3500 is probably in mWh&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Voltages ==&lt;br /&gt;
&lt;br /&gt;
=== VB ===&lt;br /&gt;
&lt;br /&gt;
* Battery terminal voltage&lt;br /&gt;
* Used by&lt;br /&gt;
** [[LM4857]] Amplifier&lt;br /&gt;
** [[PCF50606]] PMU&lt;br /&gt;
** LCM Backlight&lt;br /&gt;
** U7607 AVDD regulator&lt;br /&gt;
** U7608 VTXCO_2V8 regulator&lt;br /&gt;
&lt;br /&gt;
=== CORE_1V8 ===&lt;br /&gt;
This is the S3C2410 Core Voltage&lt;br /&gt;
&lt;br /&gt;
* Generated by PMU DCUD&lt;br /&gt;
&lt;br /&gt;
=== IO_3V3 ===&lt;br /&gt;
&lt;br /&gt;
* Generated by PMU DCDE&lt;br /&gt;
* Used by&lt;br /&gt;
** Vibrator&lt;br /&gt;
** FLASH_3V3 (see below)&lt;br /&gt;
** Touch panel transistors&lt;br /&gt;
** S3C2410 VDDA_ADC&lt;br /&gt;
** S3C2410 VDDOP&lt;br /&gt;
** S3C2410 VDDMOP&lt;br /&gt;
** S3C2410 nBATT_FLT&lt;br /&gt;
** U1502 (latch for GSM UART)&lt;br /&gt;
** S3C2410 EXTCLK ???&lt;br /&gt;
** SDRAM&lt;br /&gt;
&lt;br /&gt;
=== GL_3V3 ===&lt;br /&gt;
&lt;br /&gt;
* Generated by PMU DCDF&lt;br /&gt;
&lt;br /&gt;
* Used by&lt;br /&gt;
** AGPS&lt;br /&gt;
&lt;br /&gt;
* Controlled by&lt;br /&gt;
** PMU&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* Switch on/off if GPS is used or not&lt;br /&gt;
&lt;br /&gt;
==== Initial state ====&lt;br /&gt;
&lt;br /&gt;
* disabled by u-boot PMU initialization&lt;br /&gt;
&lt;br /&gt;
=== CODEC_3V3 ===&lt;br /&gt;
&lt;br /&gt;
* Generated by PMU IOVDD&lt;br /&gt;
&lt;br /&gt;
* Used for&lt;br /&gt;
** Audio Codec (digital and analog)&lt;br /&gt;
&lt;br /&gt;
* Controlled by&lt;br /&gt;
** PMU Driver&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* mostly included in ASoC, right?&lt;br /&gt;
* switch on, only if Audio path is required.&lt;br /&gt;
&lt;br /&gt;
==== Initial state ====&lt;br /&gt;
&lt;br /&gt;
* disabled by PMU initialization in u-boot&lt;br /&gt;
&lt;br /&gt;
=== LCM_3V3 ===&lt;br /&gt;
&lt;br /&gt;
* Generated by PMU LPVDDD&lt;br /&gt;
&lt;br /&gt;
* Used by&lt;br /&gt;
** Headset/GSM Uart Latch&lt;br /&gt;
** LCM&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* check whether we really need to switch this off, since LCM has sophisticated PM features&lt;br /&gt;
&lt;br /&gt;
==== Initial state ====&lt;br /&gt;
&lt;br /&gt;
* enabled by u-boot PMU initialization&lt;br /&gt;
&lt;br /&gt;
=== BT_3V15 ===&lt;br /&gt;
&lt;br /&gt;
* Generated by PMU D1REG&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* has to be powered up before Bluetooth can be used&lt;br /&gt;
* Bluetooth device automatically enumerates at bus&lt;br /&gt;
&lt;br /&gt;
==== Initial state ====&lt;br /&gt;
&lt;br /&gt;
* disabled by u-boot PMU initialization&lt;br /&gt;
&lt;br /&gt;
=== GL_2V5 ===&lt;br /&gt;
&lt;br /&gt;
* Generated by PMU D2REG&lt;br /&gt;
&lt;br /&gt;
* Used by&lt;br /&gt;
** AGPS&lt;br /&gt;
&lt;br /&gt;
* Controlled by&lt;br /&gt;
** PMU Driver&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* switch on only in case GPS is enabled&lt;br /&gt;
&lt;br /&gt;
==== Initial state ====&lt;br /&gt;
&lt;br /&gt;
* disable by u-boot GPIO initialization&lt;br /&gt;
&lt;br /&gt;
=== USER1 ===&lt;br /&gt;
&lt;br /&gt;
FIXME: no idea what this is for&lt;br /&gt;
&lt;br /&gt;
* Generated by PMU D3REG&lt;br /&gt;
&lt;br /&gt;
==== PMU Driver ====&lt;br /&gt;
&lt;br /&gt;
* permanently disabled&lt;br /&gt;
&lt;br /&gt;
==== Initial state ====&lt;br /&gt;
&lt;br /&gt;
* disabled by PMU initialization in u-boot&lt;br /&gt;
&lt;br /&gt;
=== FLASH_3V3 ===&lt;br /&gt;
&lt;br /&gt;
* Derived from IO_3V3&lt;br /&gt;
&lt;br /&gt;
* Used by&lt;br /&gt;
**  NAND Flash&lt;br /&gt;
&lt;br /&gt;
* Controlled by&lt;br /&gt;
** SD_EN GPIO&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* do we really want to switch it on/off before every flash access?&lt;br /&gt;
* if we go to standby, IO_3V3 will be switched off, thus FLASH_3V3 is off, too&lt;br /&gt;
&lt;br /&gt;
==== Initial state ====&lt;br /&gt;
&lt;br /&gt;
* on, enabled by u-boot GPIO initialization&lt;br /&gt;
&lt;br /&gt;
=== AVDD ===&lt;br /&gt;
&lt;br /&gt;
* Generated by U6707&lt;br /&gt;
&lt;br /&gt;
* Used by&lt;br /&gt;
** AGPS&lt;br /&gt;
&lt;br /&gt;
* Controlled by&lt;br /&gt;
** EN_AGPS3V GPIO&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* Switch on only if GPS enabled&lt;br /&gt;
&lt;br /&gt;
=== VTCXO_2V8 ===&lt;br /&gt;
&lt;br /&gt;
* Generated by U7608&lt;br /&gt;
&lt;br /&gt;
* Used by&lt;br /&gt;
** AGPS&lt;br /&gt;
&lt;br /&gt;
* Controlled by&lt;br /&gt;
** EN_GPS2V8 GPIO&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* enable only if GPS is used.&lt;br /&gt;
&lt;br /&gt;
==== Initial State ====&lt;br /&gt;
&lt;br /&gt;
* disabled by u-boot GPIO initialization&lt;br /&gt;
&lt;br /&gt;
=== SD_3V3 ===&lt;br /&gt;
&lt;br /&gt;
* Derived from IO_3V3&lt;br /&gt;
&lt;br /&gt;
* Used by&lt;br /&gt;
** microSD slot&lt;br /&gt;
&lt;br /&gt;
* Controlled by&lt;br /&gt;
** SD_ON GPIO&lt;br /&gt;
&lt;br /&gt;
==== PM Driver ====&lt;br /&gt;
&lt;br /&gt;
* we don't want to switch this off while mounted, do we?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Initial state ====&lt;br /&gt;
&lt;br /&gt;
* probably disabled, unless somebody uses 'mmcinit' from u-boot&lt;br /&gt;
* but we can't disable it without disabling NAND.&lt;br /&gt;
* result: enabled by u-boot GPIO initialization&lt;br /&gt;
&lt;br /&gt;
== Kernel API ==&lt;br /&gt;
&lt;br /&gt;
== Userspace API ==&lt;br /&gt;
&lt;br /&gt;
== Approximate power draw of various subsystems. Estimated from datasheets.==&lt;br /&gt;
&lt;br /&gt;
The battery has a total of 1200mAh, at 3.6V. This is approximately 3500mAh (--[[User:Xkr47|xkr47]] 23:12, 19 February 2007 (CET) surely this should be 3500'''mWh'''?), once power supply losses are taken into account.&lt;br /&gt;
&lt;br /&gt;
* LCD &lt;br /&gt;
**  200mW with backlight at full brightness&lt;br /&gt;
**  40mW with backlight at 10%&lt;br /&gt;
***  Based on similar 2.8&amp;quot; LCDs.&lt;br /&gt;
* CPU&lt;br /&gt;
**  320mW @ 200MHz&lt;br /&gt;
**  450mW @ 266MHz&lt;br /&gt;
**  140mW @ 200MHz idle.&lt;br /&gt;
**  50mW @ 12MHz (slow mode)&lt;br /&gt;
*** These include fudge factors for RAM and other systems, from the CPU datasheet.&lt;br /&gt;
* Bluetooth ?&lt;br /&gt;
* GSM ?&lt;br /&gt;
* GPS&lt;br /&gt;
** 25mA&lt;br /&gt;
*** Based on comparison with a broadly similar (though not as fully featured chip [http://www.maxim-ic.com/appnotes.cfm/an_pk/3447 from Maxim]&lt;br /&gt;
&lt;br /&gt;
USB seems unlikely to work in slow mode. The LCD controller is unknown - the product notes say that it has RAM, which may imply it can self-refresh.&lt;br /&gt;
&lt;br /&gt;
This would imply that with the CPU constantly on in low power mode, GPS and GSM blipping on and off, and display off, the worst case power consumption is probably around 70mW, leading to a battery life of 2 days.&lt;br /&gt;
If the CPU is turned off, battery life rises significantly.&lt;br /&gt;
&lt;br /&gt;
With everything on, playing video with sound, for example should get well over 4 hours.&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Applications</id>
		<title>Applications</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Applications"/>
				<updated>2007-02-19T20:02:45Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: added template links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Although [[OpenMoko]] is designed for smartphones that use a stylus, it would be foolish to expect people to only operate their handsets with stylus. For this reason, some core phone-related applications will be developed with finger (as opposed to stylus navigation) in mind.&lt;br /&gt;
&lt;br /&gt;
{{note| Applications listed on this page are listing in order of priority and by phase. 0th phase is for the developers preview release in February, 1st phase is for March. 2nd phase is September... when we are ready for mass market appeal.}}&lt;br /&gt;
&lt;br /&gt;
== General Principles ==&lt;br /&gt;
* All modifications are saved instantenously, there should never be a save command.&lt;br /&gt;
* Make sure users can't make interface operation errors, or that the effects are easily reversible, instead of just notifying them of the potential consequences of their actions.&lt;br /&gt;
* When you open a document you should be returned to the place where you were working when you last closed or save it (this is our concept of sessions).&lt;br /&gt;
* Label buttons with adjectives, which describe the state of the object affected&lt;br /&gt;
* Designers should seek an efficient monotonous solution to gain benefits, including ease of learning, simplicity of implementation, minimization of documentation, and lowered maintenance costs.&lt;br /&gt;
* Whenever you find yourself specifying an error message, please stop; then redesign the interface so that the condition that generated the error message doesn't arise.&lt;br /&gt;
* If the user gets no utility from a process, there is no reason to tell them that it is happening.&lt;br /&gt;
&lt;br /&gt;
{{note|Innovation usually happens at the bottom. What we need to do is provide consistent ways to develop and deploy appliations.}}&lt;br /&gt;
&lt;br /&gt;
==Finger-Based Applications ==&lt;br /&gt;
&lt;br /&gt;
([[Sample Native-Finger Application|template]] for new native-finger applications)&lt;br /&gt;
&lt;br /&gt;
=== 0th Phase ===&lt;br /&gt;
* [[Dialer]]&lt;br /&gt;
* [[Main Menu]]&lt;br /&gt;
&lt;br /&gt;
=== 1st Phase ===&lt;br /&gt;
* [[Music Player]]&lt;br /&gt;
* [[Screen Saver]]&lt;br /&gt;
* [[Dialer]] with [[Least Cost Routing]] for international calling&lt;br /&gt;
* [[Headset Emulator]]&lt;br /&gt;
&lt;br /&gt;
=== 2nd Phase ===&lt;br /&gt;
* [[Clocks]]&lt;br /&gt;
* [[GPS Navigation]]&lt;br /&gt;
* [[Calculator]]&lt;br /&gt;
* [[Unit Converter]]&lt;br /&gt;
* [[Game]]&lt;br /&gt;
* [[Guitar Tuning]]&lt;br /&gt;
* [[Code Memo]]&lt;br /&gt;
* [[Video Player]]&lt;br /&gt;
&lt;br /&gt;
==Stylus-Based Applications ==&lt;br /&gt;
&lt;br /&gt;
([[Sample Native-Stylus Application|template]] for new native-stylus applications)&lt;br /&gt;
&lt;br /&gt;
=== 0th Phase ===&lt;br /&gt;
* [[Top Panel]]&lt;br /&gt;
* [[Footer]] with embedded [[History|Task Manager]]&lt;br /&gt;
* [[Contacts]]&lt;br /&gt;
* [[Calendar]]&lt;br /&gt;
&lt;br /&gt;
=== 1st Phase ===&lt;br /&gt;
* [[Messages]]&lt;br /&gt;
* [[Application Manager]]&lt;br /&gt;
* [[Today]]&lt;br /&gt;
* [[Feed Reader]]&lt;br /&gt;
* [[Preferences]]&lt;br /&gt;
* [[Help Viewer]]&lt;br /&gt;
&lt;br /&gt;
=== 2nd Phase ===&lt;br /&gt;
* [[Search]]&lt;br /&gt;
* [[Media Player]]&lt;br /&gt;
* [[Sketchbook]]&lt;br /&gt;
* [[Picture Viewer]]&lt;br /&gt;
* [[File Browser]]&lt;br /&gt;
* [[Terminal]]&lt;br /&gt;
* [[IM]]&lt;br /&gt;
* [[Web Browser]]&lt;br /&gt;
* [[Reader]]&lt;br /&gt;
* [[System Info]]&lt;br /&gt;
&lt;br /&gt;
== Panel Applications ==&lt;br /&gt;
&lt;br /&gt;
Panel Applications are individual executables residing in the [[Top Panel]]. They usually indicate their status and offer a pop-up menu. We are not yet sure whether there is enough screen real estate for this huge number of panel applications.&lt;br /&gt;
&lt;br /&gt;
([[Sample Panel Application|template]] for new panel applications)&lt;br /&gt;
&lt;br /&gt;
=== 0th Phase ===&lt;br /&gt;
* [[GSM &amp;amp; GPRS Connection Status]]&lt;br /&gt;
* [[Battery Monitor]]&lt;br /&gt;
* [[Clock]]&lt;br /&gt;
&lt;br /&gt;
=== 1st Phase ===&lt;br /&gt;
* [[GPS Connection Status]]&lt;br /&gt;
* [[Bluetooth Connection Status]]&lt;br /&gt;
* [[USB Connection Status]]&lt;br /&gt;
&lt;br /&gt;
=== 2nd Phase ===&lt;br /&gt;
* [[Search]]&lt;br /&gt;
* [[IM Presence]]&lt;br /&gt;
* [[Screen Grabber]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wish_List_-_Hardware</id>
		<title>Wish List - Hardware</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wish_List_-_Hardware"/>
				<updated>2007-02-19T19:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* USB 2.0 */ OTG already supported?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Hardware enhancements===&lt;br /&gt;
&lt;br /&gt;
Some small hardware enhancement could be cheap, but very useful. Please add your ideas/wishes here:&lt;br /&gt;
&amp;lt;br \&amp;gt;&lt;br /&gt;
=====Video-capable camera=====&lt;br /&gt;
*preferably in rotatable turret set into top of unit, so it can face in either direction, making it useful for video conferencing. For a phone to stand a chance in the modern market it will need a camera else it is likely that it won't be bought.&lt;br /&gt;
&lt;br /&gt;
=====Integrated WiFi hardware=====&lt;br /&gt;
*To sync data&lt;br /&gt;
*To access Internet when WiFi is available (at home, work, school, friends)&lt;br /&gt;
*For VoIP (this uses much power but maybe the user have the charger connected)&lt;br /&gt;
**I'm willing to port [http://yate.null.ro/ Yate] to it if the Internet connectivity issue is solved --[[User:Csdexter|@Dexter]] 13:58, 16 February 2007 (CET)&lt;br /&gt;
*for videoconferencing (as with AccessGrid)&lt;br /&gt;
*Even 802.11b 11Mbps -only would do -- the point is being able to connect it to the Internet without incurring the (sometimes huge) costs of GPRS or (even worse) HSCSD.&lt;br /&gt;
*To save power have WiFi able to wake up and check for a designated SSID then sleep again if not found (i.e. I'm not home) or wake up by GPS location (only come up at home and in the office)&lt;br /&gt;
*Variable TX power, to the minimum needed to connect to the AP.&lt;br /&gt;
*Some sort of caching (encrypted?) internet proxy that can store and forward packets. Instead of having the radio constantly on, it turns the radio on every 30s, for just long enough to register with the AP, and ask the proxy if it has new packets for it.&lt;br /&gt;
** An optimisation might be if the hardware, and the AP can do broadcast packets. The receiver is only turned on for .5s/30s, to recieve a broadcast packet saying 'you've got packets' without registering with the AP, or transmitting at all. The GPS synchronises the timing.&lt;br /&gt;
**This slows the initial connection to the phone, but most tcp/ip applications will not time out in 30s.&lt;br /&gt;
&lt;br /&gt;
=====LED=====&lt;br /&gt;
*A blinking LED would be cheap and low power, good for informing the user about new SMS/Email....&lt;br /&gt;
**An alternative to this would be for one segment of the LCD to be seperately backlit. There are many LEDs in the backlight, all normally on. This has the advantage that you can display reasonable amounts of information on the bit of the screen that's illuminated. &lt;br /&gt;
**The disadvantage is the field of view is smaller, and it's dimmer than a bare LCD, as the LCD absorbs some light.&lt;br /&gt;
**This also requires the CPU and LCD to be somewhat active, to keep it refreshed.&lt;br /&gt;
&lt;br /&gt;
*Note: the LED and button ideas could be combined: illuminated buttons&lt;br /&gt;
*A yellow LED for GSM/GPRS Tx burst, a blue one for Bluetooth/WiFi Tx burst, a green one for non-urgent notifications (sleep state, missed call etc.) and a red one for urgent notifications (battery almost drained out, new SMS etc.). All of this could be done in one, multicoloured (RGB) LED, similar to the nice one on the Yaesu VX-7R.&lt;br /&gt;
&lt;br /&gt;
=====D-Pad and Buttons=====&lt;br /&gt;
*Adding a D-pad (to the bottom of the phone) and 2 to 4 buttons (to the top) would provide some tactile input controls, in addition to the touchscreen. They could be used as shortcut keys in the menu, or playback control when playing media. When the phone is held sideways, they can be used as games controls. (With touchscreen alone, gameplay options are limited)&lt;br /&gt;
&lt;br /&gt;
=====Accelerometer===== &lt;br /&gt;
This enables the phone to sense where 'down' is - to enable various options.&lt;br /&gt;
&lt;br /&gt;
*[[Wishlist:3D Viewport|3D Viewport]]&lt;br /&gt;
*[[Wishlist:Auto Align Map|Auto Align Map]]&lt;br /&gt;
*[[Wishlist:Computer Mouse|Computer Mouse]]&lt;br /&gt;
*[[Wishlist:Determine Position|Determine Position]]&lt;br /&gt;
*[[Wishlist:Distance Measuring|Distance Measuring]]&lt;br /&gt;
Change playlists when I'm jogging vs walking. (there ia an mp3 player on the market that does this).&lt;br /&gt;
*Can't the GPS information be used for that purpose? It should be possible to derive the phone's velocity from the change in coordinates over time, so such a playlist profile switcher should be a possibility even now already. [[User:Abraxa|Abraxa]] 00:09, 18 February 2007 (CET)&lt;br /&gt;
**Yeah in my opinion that is a very cool idea. But for that case the device should be much lighter. I wouldn't go jogging with a device with this size.--[[User:Denis std|denis_std]] 01:01, 18 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====SIR transceiver=====&lt;br /&gt;
*Could be used to detect when to turn off the display (if the low power IR signal is reflected) and activate the key lock. And could be used as a remote. iPhone has a proximity sensor.&lt;br /&gt;
*FIR would be nice as well, but I would settle for SIR if it would be added. Linux already has a working IrDA stack so the standard part would be satisfied. I would be more than glad to write lirc thingies for OpenMoko then :)&lt;br /&gt;
&lt;br /&gt;
=====Standard 3.5mm jack=====&lt;br /&gt;
*I think everyone interested (and knowledgeable) enough to buy a Neo can make a 2.5mm male to 3.5mm female adaptor cable in under 1/2h and under 10EUR :-)&lt;br /&gt;
&lt;br /&gt;
Certainly - now make it light, small, pretty, durable, tangle-free. &lt;br /&gt;
I want a 3.5mm jack. The only problem is - are headsets widely available in the same format as 2.5mm. --[[User:Speedevil|Speedevil]] 14:28, 16 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====Multitouch screen=====&lt;br /&gt;
&lt;br /&gt;
=====Multi I/O adapter=====&lt;br /&gt;
*VGA, standard Jack (line in &amp;amp; out), standard USB&lt;br /&gt;
&lt;br /&gt;
=====MMC/SD/SDIO slot (rather than?) miniSD or microSD=====&lt;br /&gt;
*Cheaper, more durable cards in a widely accepted format.&lt;br /&gt;
*Cards are harder to lose&lt;br /&gt;
*Wider selection of accesories, including SDIO accessories.&lt;br /&gt;
*Make externally available so that larger length SDIO cards can be used (thinking about SDIO WLAN here)&lt;br /&gt;
*Only because CF takes too much room (or CF would be the wish, instead)&lt;br /&gt;
&lt;br /&gt;
=====[[Expansion Back]]=====&lt;br /&gt;
* Replacement backs with additional features&lt;br /&gt;
* I believe this would be a great idea, if put into practice. It would solve the ''extensibility'' need, usually associated with Open Source projects. It would allow for lots of other devices and for functionality to be developed and put into use without making it a burden for FIC.&lt;br /&gt;
** With extra card slots and small footprint hard drive (if possible), Neo might become a nice ''image tank'' for photographers - --[[User:Cedel|cedel]] 18:34, 19 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====Thumb keyboard or keyboard attachment accessory=====&lt;br /&gt;
*Could be slide out or clamshell (hinge on long side) design with an external OLED. The keyboard should be protected when not in use.&lt;br /&gt;
*Could be a clip on keyboard that attaches to the serial port or communicates by bluetooth (not preferred for permanent keyboard users).&lt;br /&gt;
*cheap clippable miniusb keyboard&lt;br /&gt;
&lt;br /&gt;
=====LASER keyboard (can be a full QWERTY keyboard)=====&lt;br /&gt;
*On the hardware side, this would require a $5 laser diode, a $3 (in bulk) custom diffraction grating, and probably a couple of cubic centimetres volume inside the phone.&lt;br /&gt;
*This requires a camera pointable to the front.&lt;br /&gt;
*It requires an integrated stand for the phone.&lt;br /&gt;
*To practically use this, you've got to be 40cm or so away from the phone, which means under 25*20 of text resolution.&lt;br /&gt;
*In software, it's relatively easy to parse the camera output, to find changes in the known laser field.&lt;br /&gt;
&lt;br /&gt;
There are major problems. &lt;br /&gt;
*Patent issues. &lt;br /&gt;
*No tactile response at all, which slows typing.&lt;br /&gt;
*An extra 2cc/6g.&lt;br /&gt;
&lt;br /&gt;
=====EDGE support=====&lt;br /&gt;
&lt;br /&gt;
=====Ability to insert more than one Sim-Card and (if possible) connect to more than one network at the same time=====&lt;br /&gt;
&lt;br /&gt;
* This could be achieved via a specialist dual sim card kit (currently on market)- where two sims are trimmed and combined on one card, software support for dual sims would need providing...&lt;br /&gt;
* What about twin-SIMs (SIMs with 2 phone lines registered on them)? Conventional GSM phones have an option to switch between the two, older ones use # (long press before dialling) to do that. I'm guessing Calypso should support it, we just need to provide an interface for it :-) --[[User:Csdexter|@Dexter]] 11:34, 19 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====RFID tag=====&lt;br /&gt;
* Implementation/Cooperation with: [http://www.rfidguardian.org/ RFID-Guardian]&lt;br /&gt;
*Advantages of a RFID tag? I would see a lot privacy problems&lt;br /&gt;
**The tag could be switched on or off. A nice feature would be a module able to clone tags. This would unfortunately probably be rather expensive.&lt;br /&gt;
**What about an RFID Reader which could be used to locate items with RFID tags (IE: in your house) [[User:Alexpb|Alexpb]]&lt;br /&gt;
***That would be a nice feature--[[User:Denis std|denis_std]] 08:33, 17 February 2007 (CET)&lt;br /&gt;
***Most tags can only be located within 10cm or so. Essentially no cheap tags can be located over several metres.--[[User:Speedevil|Speedevil]] 13:17, 18 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
===== USB 2.0 =====&lt;br /&gt;
* Powered&lt;br /&gt;
* Host Mode / Device Mode&lt;br /&gt;
* OTG (is this maybe supported already ?)&lt;br /&gt;
&lt;br /&gt;
=====UMTS support=====&lt;br /&gt;
&lt;br /&gt;
=====Dump the '''''egg-shaped''''' case design and go '''''rectangular''''' for more screen space=====&lt;br /&gt;
*I'm all for devices that look great and have great features - aside from that I really like the current design. Thus I'd like to comment that the design change request is probably not the majority's opinion. [[User:Abraxa|Abraxa]] 00:00, 18 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====A standard slip-on or clip-on template (possibly with buttons) to make the touch-screen blind accessible=====&lt;br /&gt;
&lt;br /&gt;
=====Speakerphone functionality=====&lt;br /&gt;
&lt;br /&gt;
=====Reposition Speakers=====&lt;br /&gt;
* putting the two speakers on opposite sides of the screen would make the stereo sound much more effective&lt;br /&gt;
&lt;br /&gt;
The screen is 2.8&amp;quot; across.&lt;br /&gt;
That's not especially effective.&lt;br /&gt;
Also, the speaker noise does come out the side - look at the grills in the pictures. --[[User:Speedevil|Speedevil]] 06:19, 16 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====Small metal frame for protection (like Siemens M65, only with more style)=====&lt;br /&gt;
&lt;br /&gt;
=====Free GPIO ports on a connector to allow easy, simple hardware extensions=====&lt;br /&gt;
&lt;br /&gt;
=====Video acceleration=====&lt;br /&gt;
Hardware acceleration for video playback.&lt;br /&gt;
&lt;br /&gt;
=====3D acceleration=====&lt;br /&gt;
3D hardware acceleration for 3D games, GUIs, etc. (maybe a PowerVR MBX Lite ?).&lt;br /&gt;
&lt;br /&gt;
=====Alcohol Sensor=====&lt;br /&gt;
Alcohol sensor adjacent to microphone.  It doesn't have to be accurate, just has to detect any amount of alcohol on the speaker's breath.  I understand this is a very narrow market, but alcohol is on every parent's mind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Disinfection UV-Light=====&lt;br /&gt;
I had read about it in an Article on http://www.americanairandwater.com/UV-news/. But Motorola patents it.&lt;br /&gt;
Yes - finally a way to stop the billions of annual deaths due to cellphone infections! --[[User:Speedevil|Speedevil]] 14:04, 16 February 2007 (CET)&lt;br /&gt;
It´s just something that flying in my head... It´s not the first &amp;quot;unreal&amp;quot; or &amp;quot;useless&amp;quot; idea. Just for fun! --[[User:MookiE|MookiE]] 14:51, 16 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
More seriously - UV of the required frequency is inherently eye-damaging.&lt;br /&gt;
Also, as I understand it, there are actually no UV LEDs that will reliably produce 'germicidal' UV.&lt;br /&gt;
The most expensive - and they are very expensive - ones produce UV of a sort that may kill very susceptible bacteria, but comparatively few.&lt;br /&gt;
IIRC the LEDs are $20 per.&lt;br /&gt;
--[[User:Speedevil|Speedevil]] 15:11, 16 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====Teleportation=====&lt;br /&gt;
Implementing a beaming-device to the Neo would make it the first phone enabling teleportation.&lt;br /&gt;
See: [http://news.bbc.co.uk/1/hi/sci/tech/3811785.stm]&lt;br /&gt;
Possible implementation difficulties might be the lacking teleportation-support in the GSM standard as well as uncooperative mobile service providers that feel uneasy towards innovative technologies...&lt;br /&gt;
&lt;br /&gt;
=====EPD=====&lt;br /&gt;
&lt;br /&gt;
Or electronic paper display, EPD is used in many new devices such as the new Motorola motofone, sonys new e-reader and Irex's iliad. The technology provides thin, flexible, power saving screens using new eink technology. This technology could cut the weight of the phone and its power usage. For more info see: [http://www.eink.com eink's website].&lt;br /&gt;
&lt;br /&gt;
=====FM/Digital Radio(DAB) Reciever=====&lt;br /&gt;
&lt;br /&gt;
A nice feature would be a radio reciever: FM or even better: [http://en.wikipedia.org/wiki/Digital_Audio_Broadcasting Digital Audio Broadcast] (Digital Radio)&lt;br /&gt;
&lt;br /&gt;
=====V12 Embedded power source=====&lt;br /&gt;
&lt;br /&gt;
We'll need something beefy to power the next Neos for the above gadgets, I propose the use of a [http://www.ultimatestupidity.com/pics/1/diesel/ Embeddable Power Source], that with some miniturisation and a bit of design work should be workable as a possible solution.&lt;br /&gt;
&lt;br /&gt;
=====Thermometer=====&lt;br /&gt;
&lt;br /&gt;
An electronic thermometer might become handy for some users.&lt;br /&gt;
&lt;br /&gt;
Maybe we could even integrate a [http://www.maxim-ic.com/ds2490 DS2490 usb-to-1wire chip] (about 15x10mm) in the phone along with a [http://www.maxim-ic.com/ds18s20 DS1820 1wire temperature sensor] and possibility (by internal or external connector) to add [http://www.maxim-ic.com/1-Wire.cfm further 1wire devices] like humidity sensors, secure authentication, buttons, keypads etc? The Linux kernel already happens to have a ds2490 driver.. This of course would require there to be a free internal usb port to connect the ds2490 to..&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wish_List_-_Hardware</id>
		<title>Wish List - Hardware</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wish_List_-_Hardware"/>
				<updated>2007-02-19T19:51:02Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Thermometer */ added 1wire possibility&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Hardware enhancements===&lt;br /&gt;
&lt;br /&gt;
Some small hardware enhancement could be cheap, but very useful. Please add your ideas/wishes here:&lt;br /&gt;
&amp;lt;br \&amp;gt;&lt;br /&gt;
=====Video-capable camera=====&lt;br /&gt;
*preferably in rotatable turret set into top of unit, so it can face in either direction, making it useful for video conferencing. For a phone to stand a chance in the modern market it will need a camera else it is likely that it won't be bought.&lt;br /&gt;
&lt;br /&gt;
=====Integrated WiFi hardware=====&lt;br /&gt;
*To sync data&lt;br /&gt;
*To access Internet when WiFi is available (at home, work, school, friends)&lt;br /&gt;
*For VoIP (this uses much power but maybe the user have the charger connected)&lt;br /&gt;
**I'm willing to port [http://yate.null.ro/ Yate] to it if the Internet connectivity issue is solved --[[User:Csdexter|@Dexter]] 13:58, 16 February 2007 (CET)&lt;br /&gt;
*for videoconferencing (as with AccessGrid)&lt;br /&gt;
*Even 802.11b 11Mbps -only would do -- the point is being able to connect it to the Internet without incurring the (sometimes huge) costs of GPRS or (even worse) HSCSD.&lt;br /&gt;
*To save power have WiFi able to wake up and check for a designated SSID then sleep again if not found (i.e. I'm not home) or wake up by GPS location (only come up at home and in the office)&lt;br /&gt;
*Variable TX power, to the minimum needed to connect to the AP.&lt;br /&gt;
*Some sort of caching (encrypted?) internet proxy that can store and forward packets. Instead of having the radio constantly on, it turns the radio on every 30s, for just long enough to register with the AP, and ask the proxy if it has new packets for it.&lt;br /&gt;
** An optimisation might be if the hardware, and the AP can do broadcast packets. The receiver is only turned on for .5s/30s, to recieve a broadcast packet saying 'you've got packets' without registering with the AP, or transmitting at all. The GPS synchronises the timing.&lt;br /&gt;
**This slows the initial connection to the phone, but most tcp/ip applications will not time out in 30s.&lt;br /&gt;
&lt;br /&gt;
=====LED=====&lt;br /&gt;
*A blinking LED would be cheap and low power, good for informing the user about new SMS/Email....&lt;br /&gt;
**An alternative to this would be for one segment of the LCD to be seperately backlit. There are many LEDs in the backlight, all normally on. This has the advantage that you can display reasonable amounts of information on the bit of the screen that's illuminated. &lt;br /&gt;
**The disadvantage is the field of view is smaller, and it's dimmer than a bare LCD, as the LCD absorbs some light.&lt;br /&gt;
**This also requires the CPU and LCD to be somewhat active, to keep it refreshed.&lt;br /&gt;
&lt;br /&gt;
*Note: the LED and button ideas could be combined: illuminated buttons&lt;br /&gt;
*A yellow LED for GSM/GPRS Tx burst, a blue one for Bluetooth/WiFi Tx burst, a green one for non-urgent notifications (sleep state, missed call etc.) and a red one for urgent notifications (battery almost drained out, new SMS etc.). All of this could be done in one, multicoloured (RGB) LED, similar to the nice one on the Yaesu VX-7R.&lt;br /&gt;
&lt;br /&gt;
=====D-Pad and Buttons=====&lt;br /&gt;
*Adding a D-pad (to the bottom of the phone) and 2 to 4 buttons (to the top) would provide some tactile input controls, in addition to the touchscreen. They could be used as shortcut keys in the menu, or playback control when playing media. When the phone is held sideways, they can be used as games controls. (With touchscreen alone, gameplay options are limited)&lt;br /&gt;
&lt;br /&gt;
=====Accelerometer===== &lt;br /&gt;
This enables the phone to sense where 'down' is - to enable various options.&lt;br /&gt;
&lt;br /&gt;
*[[Wishlist:3D Viewport|3D Viewport]]&lt;br /&gt;
*[[Wishlist:Auto Align Map|Auto Align Map]]&lt;br /&gt;
*[[Wishlist:Computer Mouse|Computer Mouse]]&lt;br /&gt;
*[[Wishlist:Determine Position|Determine Position]]&lt;br /&gt;
*[[Wishlist:Distance Measuring|Distance Measuring]]&lt;br /&gt;
Change playlists when I'm jogging vs walking. (there ia an mp3 player on the market that does this).&lt;br /&gt;
*Can't the GPS information be used for that purpose? It should be possible to derive the phone's velocity from the change in coordinates over time, so such a playlist profile switcher should be a possibility even now already. [[User:Abraxa|Abraxa]] 00:09, 18 February 2007 (CET)&lt;br /&gt;
**Yeah in my opinion that is a very cool idea. But for that case the device should be much lighter. I wouldn't go jogging with a device with this size.--[[User:Denis std|denis_std]] 01:01, 18 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====SIR transceiver=====&lt;br /&gt;
*Could be used to detect when to turn off the display (if the low power IR signal is reflected) and activate the key lock. And could be used as a remote. iPhone has a proximity sensor.&lt;br /&gt;
*FIR would be nice as well, but I would settle for SIR if it would be added. Linux already has a working IrDA stack so the standard part would be satisfied. I would be more than glad to write lirc thingies for OpenMoko then :)&lt;br /&gt;
&lt;br /&gt;
=====Standard 3.5mm jack=====&lt;br /&gt;
*I think everyone interested (and knowledgeable) enough to buy a Neo can make a 2.5mm male to 3.5mm female adaptor cable in under 1/2h and under 10EUR :-)&lt;br /&gt;
&lt;br /&gt;
Certainly - now make it light, small, pretty, durable, tangle-free. &lt;br /&gt;
I want a 3.5mm jack. The only problem is - are headsets widely available in the same format as 2.5mm. --[[User:Speedevil|Speedevil]] 14:28, 16 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====Multitouch screen=====&lt;br /&gt;
&lt;br /&gt;
=====Multi I/O adapter=====&lt;br /&gt;
*VGA, standard Jack (line in &amp;amp; out), standard USB&lt;br /&gt;
&lt;br /&gt;
=====MMC/SD/SDIO slot (rather than?) miniSD or microSD=====&lt;br /&gt;
*Cheaper, more durable cards in a widely accepted format.&lt;br /&gt;
*Cards are harder to lose&lt;br /&gt;
*Wider selection of accesories, including SDIO accessories.&lt;br /&gt;
*Make externally available so that larger length SDIO cards can be used (thinking about SDIO WLAN here)&lt;br /&gt;
*Only because CF takes too much room (or CF would be the wish, instead)&lt;br /&gt;
&lt;br /&gt;
=====[[Expansion Back]]=====&lt;br /&gt;
* Replacement backs with additional features&lt;br /&gt;
* I believe this would be a great idea, if put into practice. It would solve the ''extensibility'' need, usually associated with Open Source projects. It would allow for lots of other devices and for functionality to be developed and put into use without making it a burden for FIC.&lt;br /&gt;
** With extra card slots and small footprint hard drive (if possible), Neo might become a nice ''image tank'' for photographers - --[[User:Cedel|cedel]] 18:34, 19 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====Thumb keyboard or keyboard attachment accessory=====&lt;br /&gt;
*Could be slide out or clamshell (hinge on long side) design with an external OLED. The keyboard should be protected when not in use.&lt;br /&gt;
*Could be a clip on keyboard that attaches to the serial port or communicates by bluetooth (not preferred for permanent keyboard users).&lt;br /&gt;
*cheap clippable miniusb keyboard&lt;br /&gt;
&lt;br /&gt;
=====LASER keyboard (can be a full QWERTY keyboard)=====&lt;br /&gt;
*On the hardware side, this would require a $5 laser diode, a $3 (in bulk) custom diffraction grating, and probably a couple of cubic centimetres volume inside the phone.&lt;br /&gt;
*This requires a camera pointable to the front.&lt;br /&gt;
*It requires an integrated stand for the phone.&lt;br /&gt;
*To practically use this, you've got to be 40cm or so away from the phone, which means under 25*20 of text resolution.&lt;br /&gt;
*In software, it's relatively easy to parse the camera output, to find changes in the known laser field.&lt;br /&gt;
&lt;br /&gt;
There are major problems. &lt;br /&gt;
*Patent issues. &lt;br /&gt;
*No tactile response at all, which slows typing.&lt;br /&gt;
*An extra 2cc/6g.&lt;br /&gt;
&lt;br /&gt;
=====EDGE support=====&lt;br /&gt;
&lt;br /&gt;
=====Ability to insert more than one Sim-Card and (if possible) connect to more than one network at the same time=====&lt;br /&gt;
&lt;br /&gt;
* This could be achieved via a specialist dual sim card kit (currently on market)- where two sims are trimmed and combined on one card, software support for dual sims would need providing...&lt;br /&gt;
* What about twin-SIMs (SIMs with 2 phone lines registered on them)? Conventional GSM phones have an option to switch between the two, older ones use # (long press before dialling) to do that. I'm guessing Calypso should support it, we just need to provide an interface for it :-) --[[User:Csdexter|@Dexter]] 11:34, 19 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====RFID tag=====&lt;br /&gt;
* Implementation/Cooperation with: [http://www.rfidguardian.org/ RFID-Guardian]&lt;br /&gt;
*Advantages of a RFID tag? I would see a lot privacy problems&lt;br /&gt;
**The tag could be switched on or off. A nice feature would be a module able to clone tags. This would unfortunately probably be rather expensive.&lt;br /&gt;
**What about an RFID Reader which could be used to locate items with RFID tags (IE: in your house) [[User:Alexpb|Alexpb]]&lt;br /&gt;
***That would be a nice feature--[[User:Denis std|denis_std]] 08:33, 17 February 2007 (CET)&lt;br /&gt;
***Most tags can only be located within 10cm or so. Essentially no cheap tags can be located over several metres.--[[User:Speedevil|Speedevil]] 13:17, 18 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
===== USB 2.0 =====&lt;br /&gt;
* Powered&lt;br /&gt;
* Host Mode / Device Mode&lt;br /&gt;
* OTG&lt;br /&gt;
&lt;br /&gt;
=====UMTS support=====&lt;br /&gt;
&lt;br /&gt;
=====Dump the '''''egg-shaped''''' case design and go '''''rectangular''''' for more screen space=====&lt;br /&gt;
*I'm all for devices that look great and have great features - aside from that I really like the current design. Thus I'd like to comment that the design change request is probably not the majority's opinion. [[User:Abraxa|Abraxa]] 00:00, 18 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====A standard slip-on or clip-on template (possibly with buttons) to make the touch-screen blind accessible=====&lt;br /&gt;
&lt;br /&gt;
=====Speakerphone functionality=====&lt;br /&gt;
&lt;br /&gt;
=====Reposition Speakers=====&lt;br /&gt;
* putting the two speakers on opposite sides of the screen would make the stereo sound much more effective&lt;br /&gt;
&lt;br /&gt;
The screen is 2.8&amp;quot; across.&lt;br /&gt;
That's not especially effective.&lt;br /&gt;
Also, the speaker noise does come out the side - look at the grills in the pictures. --[[User:Speedevil|Speedevil]] 06:19, 16 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====Small metal frame for protection (like Siemens M65, only with more style)=====&lt;br /&gt;
&lt;br /&gt;
=====Free GPIO ports on a connector to allow easy, simple hardware extensions=====&lt;br /&gt;
&lt;br /&gt;
=====Video acceleration=====&lt;br /&gt;
Hardware acceleration for video playback.&lt;br /&gt;
&lt;br /&gt;
=====3D acceleration=====&lt;br /&gt;
3D hardware acceleration for 3D games, GUIs, etc. (maybe a PowerVR MBX Lite ?).&lt;br /&gt;
&lt;br /&gt;
=====Alcohol Sensor=====&lt;br /&gt;
Alcohol sensor adjacent to microphone.  It doesn't have to be accurate, just has to detect any amount of alcohol on the speaker's breath.  I understand this is a very narrow market, but alcohol is on every parent's mind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Disinfection UV-Light=====&lt;br /&gt;
I had read about it in an Article on http://www.americanairandwater.com/UV-news/. But Motorola patents it.&lt;br /&gt;
Yes - finally a way to stop the billions of annual deaths due to cellphone infections! --[[User:Speedevil|Speedevil]] 14:04, 16 February 2007 (CET)&lt;br /&gt;
It´s just something that flying in my head... It´s not the first &amp;quot;unreal&amp;quot; or &amp;quot;useless&amp;quot; idea. Just for fun! --[[User:MookiE|MookiE]] 14:51, 16 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
More seriously - UV of the required frequency is inherently eye-damaging.&lt;br /&gt;
Also, as I understand it, there are actually no UV LEDs that will reliably produce 'germicidal' UV.&lt;br /&gt;
The most expensive - and they are very expensive - ones produce UV of a sort that may kill very susceptible bacteria, but comparatively few.&lt;br /&gt;
IIRC the LEDs are $20 per.&lt;br /&gt;
--[[User:Speedevil|Speedevil]] 15:11, 16 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
=====Teleportation=====&lt;br /&gt;
Implementing a beaming-device to the Neo would make it the first phone enabling teleportation.&lt;br /&gt;
See: [http://news.bbc.co.uk/1/hi/sci/tech/3811785.stm]&lt;br /&gt;
Possible implementation difficulties might be the lacking teleportation-support in the GSM standard as well as uncooperative mobile service providers that feel uneasy towards innovative technologies...&lt;br /&gt;
&lt;br /&gt;
=====EPD=====&lt;br /&gt;
&lt;br /&gt;
Or electronic paper display, EPD is used in many new devices such as the new Motorola motofone, sonys new e-reader and Irex's iliad. The technology provides thin, flexible, power saving screens using new eink technology. This technology could cut the weight of the phone and its power usage. For more info see: [http://www.eink.com eink's website].&lt;br /&gt;
&lt;br /&gt;
=====FM/Digital Radio(DAB) Reciever=====&lt;br /&gt;
&lt;br /&gt;
A nice feature would be a radio reciever: FM or even better: [http://en.wikipedia.org/wiki/Digital_Audio_Broadcasting Digital Audio Broadcast] (Digital Radio)&lt;br /&gt;
&lt;br /&gt;
=====V12 Embedded power source=====&lt;br /&gt;
&lt;br /&gt;
We'll need something beefy to power the next Neos for the above gadgets, I propose the use of a [http://www.ultimatestupidity.com/pics/1/diesel/ Embeddable Power Source], that with some miniturisation and a bit of design work should be workable as a possible solution.&lt;br /&gt;
&lt;br /&gt;
=====Thermometer=====&lt;br /&gt;
&lt;br /&gt;
An electronic thermometer might become handy for some users.&lt;br /&gt;
&lt;br /&gt;
Maybe we could even integrate a [http://www.maxim-ic.com/ds2490 DS2490 usb-to-1wire chip] (about 15x10mm) in the phone along with a [http://www.maxim-ic.com/ds18s20 DS1820 1wire temperature sensor] and possibility (by internal or external connector) to add [http://www.maxim-ic.com/1-Wire.cfm further 1wire devices] like humidity sensors, secure authentication, buttons, keypads etc? The Linux kernel already happens to have a ds2490 driver.. This of course would require there to be a free internal usb port to connect the ds2490 to..&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/D-Bus</id>
		<title>D-Bus</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/D-Bus"/>
				<updated>2007-02-19T19:35:15Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: added link to Dbus device API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;D-Bus is a message bus system, a simple way for applications to talk to one another.&lt;br /&gt;
&lt;br /&gt;
In OpenMoko we will use it for IPC.&lt;br /&gt;
&lt;br /&gt;
See [http://www.freedesktop.org/wiki/Software/dbus dbus homepage]&lt;br /&gt;
&lt;br /&gt;
Also see [[Dbus device API]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wishlist/Synchronized_High_Quality_Recording</id>
		<title>Wishlist/Synchronized High Quality Recording</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wishlist/Synchronized_High_Quality_Recording"/>
				<updated>2007-02-19T19:14:03Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: add note that HighQualityRecordings article seems similar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wishlist}}&lt;br /&gt;
{{note|This article seems similar to [[HighQualityRecordings]]}}&lt;br /&gt;
&lt;br /&gt;
== The problem ==&lt;br /&gt;
&lt;br /&gt;
If you do a phone interview the sound quality of interviewed will be limited by the sound quality of the phone. This can be improved by having a high quality recording done locally in both ends, followed by mixing the 2 high quality recordings. One of the problems by doing this is to synchronize the high quality recordings, so they start at the same time.&lt;br /&gt;
&lt;br /&gt;
== The idea ==&lt;br /&gt;
&lt;br /&gt;
Both the interviewer (here after Alice) and the interviewee (here after Bob) have a smartphone (or PC) that runs the Synchronized High Quality Recording program. &lt;br /&gt;
&lt;br /&gt;
When Alice starts the interview she presses a button. This sends a signal (e.g. DTMF tones) to Bob's phone and then both phones starts a high quality recording exactly at the same time (the signal works like a clacker when filming). Alice will hear Bob in the normal phone quality, but Bob's phone will record the high quality. &lt;br /&gt;
&lt;br /&gt;
When Alice ends the interview she presses a button. This sends a signal to Bob's phone to end the recording.&lt;br /&gt;
&lt;br /&gt;
After the interview is done, Bob will have to send his recording to Alice. This can be done through the Internet.&lt;br /&gt;
&lt;br /&gt;
The format of the recording could include the low quality audio from the other end. In a stero sound file the high quality recording would be in the left channel and the low quality in the right channel. This will make it easy to do the final mixing.&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
Podcasters can use this to virtually have people in the studio.&lt;br /&gt;
&lt;br /&gt;
It may be usable for keeping a record of a teleconference.&lt;br /&gt;
&lt;br /&gt;
It may be usable for making a radio theater without needing to have the actors come in.&lt;br /&gt;
&lt;br /&gt;
Inspired by an idea from [http://12078.net/grcnews/article.php?group=grc.thinktank&amp;amp;id=1861 www.grc.com newsgroups].&lt;br /&gt;
&lt;br /&gt;
[[Category:ideas]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Talk:History</id>
		<title>Talk:History</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Talk:History"/>
				<updated>2007-02-19T18:57:49Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: wiki formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[User:Caowai song|Chaowei.Song]] 01:32, 14 September 2006 (UTC)&lt;br /&gt;
&lt;br /&gt;
Q1:At the [[View_Active_Applications|View Active Applications]], there is a application area, what will be display on this area? The original application view?&lt;br /&gt;
&lt;br /&gt;
([[User:Sean | Sean Moss-Pultz]])&lt;br /&gt;
&lt;br /&gt;
A: Correct. This is the just the orginal application (grayed-out perhaps) and shifted to the right by around 200 pixels. The specifics will be up the graphics designers.&lt;br /&gt;
&lt;br /&gt;
([[User:Mickey | Mickey]])&lt;br /&gt;
&lt;br /&gt;
Q2: Usability-wise, it might be better to donate all the screen space to show thumbnails for the different applications and just highlight the current application &amp;quot;thumbnail&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
--[[User:Xkr47|xkr47]] 19:57, 19 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
Q: I think the wording in &amp;quot;I want to be able to quickly switch between previously run applications&amp;quot; is perhaps slightly misleading, perhaps &amp;quot;currently running applications&amp;quot; would be clearer?&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Talk:History</id>
		<title>Talk:History</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Talk:History"/>
				<updated>2007-02-19T18:55:42Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--[[User:Caowai song|Chaowei.Song]] 01:32, 14 September 2006 (UTC)&lt;br /&gt;
&lt;br /&gt;
Q1:At the [[View_Active_Applications|View Active Applications]], there is a application area, what will be display on this area? The original application view?&lt;br /&gt;
&lt;br /&gt;
([[User:Sean | Sean Moss-Pultz]])&lt;br /&gt;
&lt;br /&gt;
A: Correct. This is the just the orginal application (grayed-out perhaps) and shifted to the right by around 200 pixels. The specifics will be up the graphics designers.&lt;br /&gt;
&lt;br /&gt;
([[User:Mickey | Mickey]])&lt;br /&gt;
&lt;br /&gt;
Q2: Usability-wise, it might be better to donate all the screen space to show thumbnails for the different applications and just highlight the current application &amp;quot;thumbnail&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
I think the wording in &amp;quot;I want to be able to quickly switch between previously run applications&amp;quot; is perhaps slightly misleading, perhaps &amp;quot;currently running applications&amp;quot; would be clearer?&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Wishlist/Graphics_Tablet</id>
		<title>Wishlist/Graphics Tablet</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Wishlist/Graphics_Tablet"/>
				<updated>2007-02-19T15:55:42Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: potential use case: the gimp&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Wishlist}}&lt;br /&gt;
The Neo1973 has a touchscreen. The touchscreen can be used to control a pointer on the screen. Using communication to a PC the touchscreen can control the pointer on the PC. The communication can be either USB or Bluetooth. Using this it should be possible to emulate a simple graphics tablet.&lt;br /&gt;
&lt;br /&gt;
-- [[User:Xkr47|xkr47]]: yeah, I think it could be nice to use with [http://www.gimp.org/ The Gimp] :)&lt;br /&gt;
&lt;br /&gt;
== Option: Display screen on smartphone ==&lt;br /&gt;
&lt;br /&gt;
Depending on the bandwidth it may be possible to replicate either part of or a scaled down version of the PC's screen directly on the smartphone. To do this the driver must be a bit more advanced. It might consist of 2 parts: The graphics tablet driver and a facility to transfer the screen. VNC or FreeNX might solve this.&lt;br /&gt;
&lt;br /&gt;
== Option: Pressure sensitivity ==&lt;br /&gt;
&lt;br /&gt;
The Neo1973 has a screen that is capable of multitouch, only the driver is missing. If multitouch is available, then pressure sensitivity may be possible: The harder you press the finger, the bigger the area your finger covers. If the sensitivity is really good you may be able to use a brush directly on the screen. The physical brush will also provide the tilt functionality.&lt;br /&gt;
&lt;br /&gt;
Cite? It's been stated that later versions may do multitouch, where is it metioned that this one can, which would be great? &lt;br /&gt;
--[[User:Speedevil|Speedevil]] 15:05, 19 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
[[Category:ideas]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User_talk:Minime</id>
		<title>User talk:Minime</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User_talk:Minime"/>
				<updated>2007-02-19T14:27:56Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: oops cannot link to categories :P&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- [[User:Xkr47|xkr47]]: Hi. You created a new Category:Wishlist, but there exists one Category:Ideas already which has been widely used and I think is pretty much the same.. I think either is enough, so maybe we could all use Category:Ideas? What do you think? Btw full list of categories can be seen [[Special:Categories|here]].&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User_talk:Minime</id>
		<title>User talk:Minime</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User_talk:Minime"/>
				<updated>2007-02-19T14:25:50Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- [[User:Xkr47|xkr47]]: Hi. You created a new [[Category:Wishlist]], but there exists one [[Category:Ideas]] already which has been widely used and I think is pretty much the same.. I think either is enough, so maybe we could all use Category:Ideas? What do you think? Btw full list of categories can be seen [[Special:Categories|here]].&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/I2C</id>
		<title>I2C</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/I2C"/>
				<updated>2007-02-19T08:18:55Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I2C is a simple communication standard intended to move small amounts of data a few inches between chips.&lt;br /&gt;
See [http://en.wikipedia.org/wiki/i2c wikipedia].&lt;br /&gt;
&lt;br /&gt;
We currently use the following addresses on the I2C bus:&lt;br /&gt;
{|&lt;br /&gt;
| '''Device''' || '''I2C address'''&lt;br /&gt;
|-&lt;br /&gt;
| [[PCF50606]] || 0001 000x&lt;br /&gt;
|-&lt;br /&gt;
| [[WM8753L]]  || 0011 010x&lt;br /&gt;
|-&lt;br /&gt;
| [[LM4857]]   || 1111 100x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that I2C addresses are 7 bit. The last bit, which is not part of the address, indicates whether this is a read or write operation. So &amp;quot;0001 000x&amp;quot; is 0x8, not 0x10.&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/WM8753L</id>
		<title>WM8753L</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/WM8753L"/>
				<updated>2007-02-19T08:18:28Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: redirect to WM8753&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[WM8753]]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Building_OpenMoko_2007.1_from_scratch</id>
		<title>Building OpenMoko 2007.1 from scratch</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Building_OpenMoko_2007.1_from_scratch"/>
				<updated>2007-02-17T21:00:42Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: Added link to &amp;quot;How to run OpenMoko Apps on PC&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=right&lt;br /&gt;
 |__TOC__&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
This is a guide describing how to set up a running OpenMoko&lt;br /&gt;
system from scratch.&lt;br /&gt;
&lt;br /&gt;
If you just want to run OpenMoko applications on your PC, just perform the&lt;br /&gt;
&amp;quot;Obtaining OpenMoko SVN tree&amp;quot; step below and then go to&lt;br /&gt;
[[How to run OpenMoko Apps on PC]].&lt;br /&gt;
&lt;br /&gt;
Do not treat this as a linear script! There are various configuration items you&lt;br /&gt;
need to set (or skip, as it may be), operations that depend on how your&lt;br /&gt;
host(s) is/are set up, and also on the hardware revision of the target platform&lt;br /&gt;
(i.e., the phone).&lt;br /&gt;
&lt;br /&gt;
Instead, look at each step, read the instructions, copy and paste what&lt;br /&gt;
makes sense for you, and adapt what you disagree with. Links to original and&lt;br /&gt;
background material in the Wiki are included wherever useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
===  Roles  ===&lt;br /&gt;
&lt;br /&gt;
The build process may spread over multiple machines. They have the following&lt;br /&gt;
roles:&lt;br /&gt;
&lt;br /&gt;
;'''BUILD''': build host, with quick access to the files and CPU power. Must have Internet access.&lt;br /&gt;
;'''LAB''': lab machine connected to the debug board (serial and JTAG) and to USB on the Neo (since this will probably be just a single machine, the roles are not further divided)&lt;br /&gt;
;'''CARD''': machine with a USB-attached SD/MMC card reader&lt;br /&gt;
&lt;br /&gt;
All machines are assumed to share the same filesystem layout. At the beginning of&lt;br /&gt;
each of the sections below, the respective role is indicated. &amp;quot;('''all''')&amp;quot; is for&lt;br /&gt;
settings that apply to all machines, or that - for simplicity - can be&lt;br /&gt;
applied to all of them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Directory layout ===&lt;br /&gt;
'''(Roles: all)'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$OMDIR (/home/moko)	base directory for the whole tree&lt;br /&gt;
  openmoko/		files from OpenMoko subversion (SVN) repository&lt;br /&gt;
  openembedded/		files from OpenEmbedded (OE) Monotone repository&lt;br /&gt;
  sources/		cached downloads of OE&lt;br /&gt;
  build/		OE build directory&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Environment variables ===&lt;br /&gt;
'''(Roles: all)'''&lt;br /&gt;
&lt;br /&gt;
For simplicity, we just set these environment variables on all hosts&lt;br /&gt;
involved. If you're not comfortable with this, feel free to weed out the ones&lt;br /&gt;
you don't need.&lt;br /&gt;
&lt;br /&gt;
Our base directory (configure this for local arrangements):&lt;br /&gt;
&lt;br /&gt;
 export OMDIR=/home/moko&lt;br /&gt;
&lt;br /&gt;
The search path for BitBake files. Note that the order is of vital&lt;br /&gt;
importance.&lt;br /&gt;
&lt;br /&gt;
 export BBPATH=$OMDIR/build:$OMDIR/openmoko/trunk/oe:$OMDIR/openembedded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Permissions  ===&lt;br /&gt;
'''(Role: BUILD)'''&lt;br /&gt;
&lt;br /&gt;
In order to perform the build process, you have to obtain the following&lt;br /&gt;
permissions:&lt;br /&gt;
&lt;br /&gt;
* write access to the OpenMoko SVN repository (in principle, it should be possible to simplify this to read access. For further study.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Build host prerequisites  ===&lt;br /&gt;
'''(Role: BUILD)'''&lt;br /&gt;
&lt;br /&gt;
There must be at least 7 GB of free space on $OMDIR.&lt;br /&gt;
&lt;br /&gt;
In addition to the traditional development tools (gcc, patch, etc.), the&lt;br /&gt;
following packages must be installed on the build host:&lt;br /&gt;
&lt;br /&gt;
;subversion: version control system used by OpenMoko and others&lt;br /&gt;
;quilt:	patch management system used by the Linux kernel and others&lt;br /&gt;
;monotone: version control system used by OpenEmbedded. This should be a recent version, e.g., 0.32, although also 0.31 should work.&lt;br /&gt;
;diffstat: the OE build process wants this&lt;br /&gt;
;texi2html: this too&lt;br /&gt;
;git: version control system used by the Linux kernel and others. Do not confuse this with the &amp;quot;GNU Interactive Tools&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Furthermore, the following package can be installed optionally:&lt;br /&gt;
;psyco: Python just-in-time compiler. Speeds up OpenEmbedded builds (with BitBake) considerably. Strongly recommended.&lt;br /&gt;
&lt;br /&gt;
Gentoo users can obtain all this with (note that, at the time of writing, Monotone 0.32 isn't available without setting the ~x86 keyword):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo 'dev-util/monotone ~'`readlink /etc/make.profile | awk -F / '{print $6}'`\&lt;br /&gt;
  &amp;gt;&amp;gt;/etc/portage/package.keywords&lt;br /&gt;
emerge -u subversion quilt monotone diffstat texi2html dev-util/git psyco&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://www.openembedded.org/wiki/OEandYourDistro  Instructions for installing prerequisites in other distributions]&lt;br /&gt;
&lt;br /&gt;
If the local user name does not match the user name with which you access SVN, you can put your username in the url you use to checkout, eg. svn+ssh://joe@stuff.org/svn/stuff.&lt;br /&gt;
&lt;br /&gt;
===  Lab host prerequisites  ===&lt;br /&gt;
'''(Role: LAB)'''&lt;br /&gt;
&lt;br /&gt;
The following package must be installed on the lab host:&lt;br /&gt;
;xc: a simple communications program for the serial port&lt;br /&gt;
&lt;br /&gt;
Gentoo users can obtain this with:&lt;br /&gt;
 emerge -u xc&lt;br /&gt;
&lt;br /&gt;
Note that similar communications programs, such as &amp;quot;cu&amp;quot; or &amp;quot;minicom&amp;quot;, may be used as well.&lt;br /&gt;
&lt;br /&gt;
===  Assumptions  ===&lt;br /&gt;
'''(Roles: LAB, CARD)'''&lt;br /&gt;
&lt;br /&gt;
We make the following assumptions about hardware setup and devices:&lt;br /&gt;
&lt;br /&gt;
* the serial console of the Neo phone is connected to /dev/ttyS0 on '''LAB''' (see [[Debug_Board]])&lt;br /&gt;
* the JTAG [[wiggler]] is connected to /dev/parport0 on '''LAB'''. See [[Debug Board]] and  [[Connecting_GTA01Bv2_with_Debug_Board]]&lt;br /&gt;
* cards inserted in the SD/MMC card reader appear as /dev/uba on '''CARD''' and can be mounted on /mnt/tmp (we'll specify the mount point explicitly, so the directory has to be there, but we don't need to specify the mount point in /etc/fstab). If in doubt,&lt;br /&gt;
 mkdir -p /mnt/tmp&lt;br /&gt;
&lt;br /&gt;
== Obtaining Sources and build system ==&lt;br /&gt;
&lt;br /&gt;
===  OpenEmbedded build: initial downloads  ===&lt;br /&gt;
&lt;br /&gt;
First, we obtain a snapshot of the OpenEmbedded-based tree used by OpenMoko, plus the OE build tool called BitBake.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Obtaining OpenMoko SVN tree ====&lt;br /&gt;
'''(Role: BUILD)'''&lt;br /&gt;
&lt;br /&gt;
Obtain revision 1004 of the OpenMoko tree. This is a &amp;quot;known to be good&amp;quot;, version (provided the fixes below are applied). Unfortunately, at some places, &amp;quot;current&amp;quot; versions of upstream packages may get included, thus the build may still fail. If it does, you may wish to inform the authorities.&lt;br /&gt;
&lt;br /&gt;
The checkout should take about 45 minutes over an Internet connection with a round-trip time to svn.openmoko.org of 350 ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $OMDIR&lt;br /&gt;
svn co -r 1004 http://svn.openmoko.org/ openmoko&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installing BitBake ====&lt;br /&gt;
'''(Role: BUILD)'''&lt;br /&gt;
&lt;br /&gt;
Install version 1.6 of BitBake, the build tool of OE. (This is quick.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svn co http://svn.berlios.de/svnroot/repos/bitbake/branches/bitbake-1.6/ bitbake&lt;br /&gt;
cd bitbake&lt;br /&gt;
./setup.py install&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Obtaining OpenEmbedded snapshot ====&lt;br /&gt;
'''(Role: BUILD)'''&lt;br /&gt;
&lt;br /&gt;
Obtain a snapshot of the Monotone repository of OpenEmbedded, then update it&lt;br /&gt;
to the latest version, and finally check out our &amp;quot;known to be good&amp;quot; revision.&lt;br /&gt;
We extract things into $OMDIR/openembedded. OE.mtn.bz2 is about 100 MB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.openembedded.org/snapshots/OE.mtn.bz2&lt;br /&gt;
bunzip2 OE.mtn.bz2&lt;br /&gt;
mtn --db=OE.mtn pull monotone.openembedded.org org.openembedded.dev&lt;br /&gt;
mtn --db=OE.mtn checkout --branch=org.openembedded.dev \&lt;br /&gt;
  -r f499733e6db527846e1a48cf70f9862d6b3798ae openembedded&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{note|For advanced users: if you ever want to update to the latest version of the repository, you would do a &amp;quot;pull&amp;quot; (see above), followed by:&lt;br /&gt;
 cd $OMDIR/openembedded &amp;amp;&amp;amp; mtn update}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set up the directories for the cache of upstream files and all material&lt;br /&gt;
related to local builds, then put our configuration file there (see also&lt;br /&gt;
[[OpenMoko#Setting_up_an_OpenMoko_SDK]]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p sources build/conf&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt;build/conf/local.conf&lt;br /&gt;
MACHINE = &amp;quot;fic-gta01&amp;quot;&lt;br /&gt;
DISTRO = &amp;quot;openmoko&amp;quot;&lt;br /&gt;
BUILD_ARCH = &amp;quot;`uname -m`&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OpenEmbedded build: fixes ===&lt;br /&gt;
'''(Role: BUILD)'''&lt;br /&gt;
&lt;br /&gt;
There are unfortunately some problems in the build process. &lt;br /&gt;
The following fixes work around them:&lt;br /&gt;
&lt;br /&gt;
 cd $OMDIR/sources&lt;br /&gt;
 mkdir -p ../build/tmp/stamps/armv4t-linux&lt;br /&gt;
&lt;br /&gt;
* upstream moves old packages away, gratuitously breaking downstreams&lt;br /&gt;
&lt;br /&gt;
 wget http://ftp.mozilla.org/pub/mozilla.org/js/older-packages/js-1.5.tar.gz&lt;br /&gt;
 touch ../build/tmp/stamps/armv4t-linux/js-1.5-r0.do_fetch&lt;br /&gt;
&lt;br /&gt;
* us2.samba.org mirror has vanished&lt;br /&gt;
&lt;br /&gt;
 wget http://us4.samba.org/samba/ftp/stable/samba-3.0.14a.tar.gz&lt;br /&gt;
 touch ../build/tmp/stamps/armv4t-linux/samba-3.0.14a-r15.do_fetch&lt;br /&gt;
&lt;br /&gt;
* ghastly patch with CRLF and trailing blanks&lt;br /&gt;
&lt;br /&gt;
 perl -pi.orig -e 's/ *$//;s/\r//g' \&lt;br /&gt;
   ../openembedded/packages/gcc/gcc-4.1.1/gcc-4.1.1-pr13685-1.patch&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
&lt;br /&gt;
=== OpenEmbedded build ===&lt;br /&gt;
'''(Role: BUILD)'''&lt;br /&gt;
&lt;br /&gt;
openmoko/trunk/oe/conf/site.conf expects the OpenMoko-specific OE packages in $OMDIR/oe&lt;br /&gt;
&lt;br /&gt;
 cd $OMDIR&lt;br /&gt;
 ln -s openmoko/trunk/oe .&lt;br /&gt;
&lt;br /&gt;
We're now ready to run the build. This will take a while.&lt;br /&gt;
&lt;br /&gt;
 cd $OMDIR/build&lt;br /&gt;
 bitbake openmoko-devel-image&lt;br /&gt;
&lt;br /&gt;
Note that the build will stop several times to ask for SVN access and whether&lt;br /&gt;
to accept certificates. If you're not quick enough to respond, the underlying&lt;br /&gt;
session may time out. In this case, just restart &amp;quot;bitbake&lt;br /&gt;
openmoko-devel-image&amp;quot; and it will pick up from where it left off.&lt;br /&gt;
&lt;br /&gt;
The whole build process involves numerous downloads, takes about 7 hours&lt;br /&gt;
on an Athlon 64 3200+ (about 1.5h of delays were caused by ftp.debian.org not&lt;br /&gt;
working properly during this test run), and ends with a message like this:&lt;br /&gt;
&lt;br /&gt;
 Build statistics:&lt;br /&gt;
   Attempted builds: 4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Flash boot loader into NAND ===&lt;br /&gt;
'''(Role: LAB)'''&lt;br /&gt;
&lt;br /&gt;
As a first step, we transfer the u-boot bootloader into NAND Flash, through&lt;br /&gt;
the JTAG interface. We use JTAG, since this is the most basic way for doing&lt;br /&gt;
this, ensuring that we only depend on as little to work on the Neo as&lt;br /&gt;
possible.&lt;br /&gt;
&lt;br /&gt;
For this, the u-boot image for the right board version and the desired&lt;br /&gt;
build date must be chosen. E.g., an image built for a gta01bv2 board on&lt;br /&gt;
February 3, 2007 at 13:40:41 would be called&lt;br /&gt;
u-boot_nand-gta01bv2-20070203134041.bin&lt;br /&gt;
&lt;br /&gt;
The name is composed as follows:&lt;br /&gt;
;u-boot: the name of the component&lt;br /&gt;
;nand: it is it be loaded from NAND (not directly from RAM, see also [[Bootloader#Using_JTAG_to_boot_from_RAM]])&lt;br /&gt;
;gta01bv2: the hardware revision of the board&lt;br /&gt;
;20070203134041: the build date and time&lt;br /&gt;
;.bin: this is a binary suitable for flashing/loading&lt;br /&gt;
&lt;br /&gt;
If this is the first build, there will only be one image for each board&lt;br /&gt;
version, thus we can use wildcards. Change the gta01bv2 below to gta01v3 or&lt;br /&gt;
gta01v4, if necessary.&lt;br /&gt;
&lt;br /&gt;
See also: [[Sjf2410-linux]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $OMDIR/build/tmp/deploy/images&lt;br /&gt;
&lt;br /&gt;
( echo 0; echo 0; echo 0; echo 3; ) |&lt;br /&gt;
  ./sjf2410 -b -f `echo u-boot_nand-gta01bv2-*.bin`&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take approximately 12 minutes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Copy kernel and root FS to microSD card ===&lt;br /&gt;
'''(Role: CARD)'''&lt;br /&gt;
&lt;br /&gt;
There are several ways to provide the Neo with its kernel and the root file&lt;br /&gt;
system. (See [[Bootloader]] for some of them.)&lt;br /&gt;
The most self-contained way is to put everything into NAND Flash.&lt;br /&gt;
To transfer the files to the Neo, we first place them on the microSD card.&lt;br /&gt;
&lt;br /&gt;
Memory cards, including microSD, usually come pre-formatted with VFAT. We&lt;br /&gt;
prefer ext2 (e.g., because we may want to store a real Linux file system on the&lt;br /&gt;
card as well). The following steps are needed to convert the card from VFAT to&lt;br /&gt;
ext2:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sfdisk -c /dev/uba 1 83&lt;br /&gt;
mke2fs -m0 /dev/uba1&lt;br /&gt;
tune2fs -c0 -i0 /dev/uba1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, we copy the kernel uImage and the root file system image to the card.&lt;br /&gt;
As discussed in the previous section, we can use wildcards if this is our&lt;br /&gt;
first build.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd $OMDIR/build/tmp/deploy/images&lt;br /&gt;
mount /dev/uba1 /mnt/tmp&lt;br /&gt;
cp uImage-2.6-moko7-r1-fic-gta01-*.bin /mnt/tmp/uImage&lt;br /&gt;
cp openmoko-devel-image-fic-gta01-*.rootfs.jffs2 /mnt/tmp/rootfs.jffs2&lt;br /&gt;
umount /mnt/tmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, insert the microSD card into the Neo, but don't power it on yet.&lt;br /&gt;
(If you did anyway, don't worry. We'll power cycle it later.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Serial console ===&lt;br /&gt;
'''(Role: LAB)'''&lt;br /&gt;
&lt;br /&gt;
We use a serial console connecting through the debug board. This example uses&lt;br /&gt;
&amp;quot;xc&amp;quot;, which is a small and simple communications program. Many people prefer&lt;br /&gt;
&amp;quot;cu&amp;quot; or the considerably more bloated &amp;quot;minicom&amp;quot;, which will work as well.&lt;br /&gt;
&lt;br /&gt;
* Prepare xc configuration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt;$HOME/xc.init&lt;br /&gt;
set bps 115200&lt;br /&gt;
terminal&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Connect to the target&lt;br /&gt;
 xc -l /dev/ttyS0 -t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Start the Neo and enter the boot prompt ===&lt;br /&gt;
'''(Role: LAB)'''&lt;br /&gt;
&lt;br /&gt;
Our first interaction with the target. If this doesn't work, please check&lt;br /&gt;
that the debug board is connected properly to the serial port.&lt;br /&gt;
&lt;br /&gt;
Disconnect power and USB from the phone, wait a couple of minutes, then connect power.&lt;br /&gt;
You may have to press and hold the power button on the Neo for a few seconds to turn it on.&lt;br /&gt;
The power button is located next to the USB port.&lt;br /&gt;
&lt;br /&gt;
Some people have observed stability issues if the device was reset without&lt;br /&gt;
power cycling or if USB was not disconnected when power cycling, yet details of what is really happening aren't very clear yet.&lt;br /&gt;
&lt;br /&gt;
On the serial console, a message like this should appear:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
U-Boot 1.2.0 (Feb  3 2007 - 13:07:21)&lt;br /&gt;
Press any key to enter the boot prompt:&lt;br /&gt;
GTA01Bv2 #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the boot prompt changes with the hardware revision you have. If the&lt;br /&gt;
message does not appear after a few seconds, try power cycling again.&lt;br /&gt;
&lt;br /&gt;
If xc responds to pressing a button with&lt;br /&gt;
&amp;quot;Verify that you are trying to use a valid and operational tty port.&amp;quot;&lt;br /&gt;
the port may be stuck, waiting for DCD to be asserted. The quickest way to&lt;br /&gt;
get out of this situation is to disconnect the serial cable from the debug&lt;br /&gt;
board, run the following command&lt;br /&gt;
 while ! stty -F /dev/ttyS0 clocal; do : ; done&lt;br /&gt;
&lt;br /&gt;
stick something metallic, e.g., a paper clip or a screwdriver, into the plug on the cable,&lt;br /&gt;
and keep on fumbling with&lt;br /&gt;
it until DCD gets set and the loop above stops spitting out error messages.&lt;br /&gt;
&lt;br /&gt;
=== Flash kernel and root FS into NAND ===&lt;br /&gt;
'''(Role: LAB)'''&lt;br /&gt;
&lt;br /&gt;
We now load the kernel and the root FS from the microSD card into memory and&lt;br /&gt;
subsequently transfer them to NAND Flash. All this is done by entering&lt;br /&gt;
commands at the boot prompt.&lt;br /&gt;
&lt;br /&gt;
Each time we want to write new data to the NAND Flash, we first have to erase&lt;br /&gt;
the previous content. We do this individually for each partition. While it would&lt;br /&gt;
also be possible to erase some or all relevant partitions in one step, this would&lt;br /&gt;
require the user to look up addresses from the partition table and to perform&lt;br /&gt;
calculations which are inconvenient at best.&lt;br /&gt;
&lt;br /&gt;
See also: [[U-boot]]&lt;br /&gt;
&lt;br /&gt;
* Initialize the SD/MMC interface. The &amp;quot;Product Name&amp;quot; shown will be just binary garbage. This is expected behaviour.&lt;br /&gt;
&lt;br /&gt;
 GTA01Bv2 # mmc&lt;br /&gt;
&lt;br /&gt;
* Load the uImage file into memory. &amp;quot;ext2load&amp;quot; stores the number of bytes read as a hexadecimal number in the environment variable &amp;quot;filesize&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 GTA01Bv2 # ext2load mmc 0 0x32000000 uImage&lt;br /&gt;
&lt;br /&gt;
* Erase the kernel partition and write the uImage from memory to NAND Flash&lt;br /&gt;
&lt;br /&gt;
 GTA01Bv2 # nand erase kernel&lt;br /&gt;
 GTA01Bv2 # nand write.e 0x32000000 kernel ${filesize}&lt;br /&gt;
&lt;br /&gt;
* The root file system is next. We need to specify the correct size, which is shown at the end of &amp;quot;ext2load&amp;quot;, e.g., &amp;quot;0x1608000)&amp;quot; in this case:&lt;br /&gt;
&lt;br /&gt;
 GTA01Bv2 # ext2load mmc 0 0x32000000 rootfs.jffs2&lt;br /&gt;
 23101440 (0x1608000) bytes read&lt;br /&gt;
 GTA01Bv2 # nand erase rootfs&lt;br /&gt;
 GTA01Bv2 # nand write.e 0x32000000 rootfs ${filesize}&lt;br /&gt;
&lt;br /&gt;
=== Configure the boot loader ===&lt;br /&gt;
'''(Role: LAB)'''&lt;br /&gt;
&lt;br /&gt;
Last but not least, we have to set up the boot loader to automatically boot&lt;br /&gt;
from Flash. For this, we use the default environment settings, which we obtain&lt;br /&gt;
by erasing the old content of the environment, and letting u-boot restore the&lt;br /&gt;
settings after a restart.&lt;br /&gt;
&lt;br /&gt;
Before touching the environment, you may have to update the environment offset.&lt;br /&gt;
Please see [[Migration_to_bad_block_tolerant_builds#Partition_sizing]] for details.&lt;br /&gt;
(We may simplify this particularly awkward and error-prone procedure in the&lt;br /&gt;
future.)&lt;br /&gt;
&lt;br /&gt;
* First, remove erase the old environment:&lt;br /&gt;
 GTA01Bv2 # nand erase env&lt;br /&gt;
&lt;br /&gt;
* We reset to force the boot loader to use the default settings.&lt;br /&gt;
 GTA01Bv2 # reset&lt;br /&gt;
&lt;br /&gt;
Wait until the &amp;quot;U-Boot [...]&amp;quot; message, then hit a key. It will display &lt;br /&gt;
 *** Warning - bad CRC or NAND, using default environment&lt;br /&gt;
&lt;br /&gt;
* Re-generate the partition information in the environment variable &amp;quot;mtdparts&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 GTA01Bv2 # dynpart&lt;br /&gt;
&lt;br /&gt;
* Save the restored settings in NAND&lt;br /&gt;
 GTA01Bv2 # saveenv&lt;br /&gt;
&lt;br /&gt;
* Power cycle to boot the Neo (see remarks above)&lt;br /&gt;
&lt;br /&gt;
==  END ==&lt;br /&gt;
&lt;br /&gt;
'''Congratulations !''' You've just completed level 1 of the OpenMoko adventure.&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/How_to_run_OpenMoko_Apps_on_PC</id>
		<title>How to run OpenMoko Apps on PC</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/How_to_run_OpenMoko_Apps_on_PC"/>
				<updated>2007-02-17T20:53:21Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: /* Set up the environment */ fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Install dependencies===&lt;br /&gt;
&lt;br /&gt;
* use aptitude, apt-get, urpmi, or whatever your distro supports&lt;br /&gt;
* you will probably need&lt;br /&gt;
** gtk-dev&lt;br /&gt;
** pango-dev&lt;br /&gt;
** atk-dev&lt;br /&gt;
** qmake from Qt4 (libqt4-dev on Debian) -- this is optional and required only if you do not use auto-tools method&lt;br /&gt;
&lt;br /&gt;
* Under ubuntu: apt-get install libgtk2.0-dev pulls in everything necessary&lt;br /&gt;
&lt;br /&gt;
===Build the binaries===&lt;br /&gt;
====Build using GNU auto-tools====&lt;br /&gt;
&lt;br /&gt;
=====Set up the environment=====&lt;br /&gt;
&lt;br /&gt;
  export OPENMOKODIR=&amp;lt;svn-checkout&amp;gt;/src/target/OM-2007&lt;br /&gt;
  cd $OPENMOKODIR/openmoko-libs&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  make&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
This will install the libraries in /usr/local/lib. If you prefer a non-system location, edit autogen.sh (and remember that an SVN update may undo that) to  add a &amp;quot;--prefix=MYDIR&amp;quot; option for where you want to put the compiled stuff. You can the run &amp;quot;make install&amp;quot; without sudo. One approach is to put stuff at the source root, by appending the option: &amp;quot;--prefix=$OPENMOKODIR&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=====Compiling sample apps=====&lt;br /&gt;
&lt;br /&gt;
  cd $OPENMOKODIR/examples/...&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  make&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
If you used --prefix in the previous step to place the libraries elsewhere, make sure you edit autogen.sh to reflect that. I guess the proper way to do this is to set the PKG_CONFIG_PATH variable. You can of course drop the sudo then.&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
  export PKG_CONFIG_PATH=$OPENMOKODIR/lib/pkgconfig&lt;br /&gt;
  ./configure ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Build using QMake (the mickeyl way)====&lt;br /&gt;
{{Note|qmake is Mickey's preferred build tool, it probably doesn't work if you're not him. Please use autotools...}}&lt;br /&gt;
&lt;br /&gt;
=====Build everything in one run using Qmake=====&lt;br /&gt;
&lt;br /&gt;
  cd &amp;lt;svn-checkout&amp;gt;/src/target/OM-2007&lt;br /&gt;
  . ./makevars.sh&lt;br /&gt;
  qmake&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
Now the applications should be found in ./bin.&lt;br /&gt;
&lt;br /&gt;
===Run the examples===&lt;br /&gt;
&lt;br /&gt;
====Set your theme to OpenMoko====&lt;br /&gt;
&lt;br /&gt;
Edit $HOME/.gtkrc-2.0 to something like that:&lt;br /&gt;
&lt;br /&gt;
  include &amp;quot;&amp;lt;PATH-to-svn-checkout&amp;gt;/src/target/OM-2007/artwork/themes/openmoko-standard/gtk-2.0/gtkrc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Naked execution ====&lt;br /&gt;
&lt;br /&gt;
  bin/openmoko-stylus-demo&lt;br /&gt;
  bin/openmoko-finger-demo&lt;br /&gt;
  bin/openmoko-chordmaster&lt;br /&gt;
&lt;br /&gt;
==== Execution within Xoo ====&lt;br /&gt;
&lt;br /&gt;
Adjust svn://src/target/OM-2007/devel/scripts/launch-xoo to your needs (you may need to build some dependencies forehand)&lt;br /&gt;
Then set DISPLAY=:1 and run the examples&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko:Searching</id>
		<title>Openmoko:Searching</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko:Searching"/>
				<updated>2007-02-17T17:26:57Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: Added link to wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [http://en.wikipedia.org/wiki/Wikipedia:Searching Wikipedia searching help]&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Xkr47</id>
		<title>User:Xkr47</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Xkr47"/>
				<updated>2007-02-17T16:44:32Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Me:&lt;br /&gt;
* relationship with openmoko: [[Buying_Interest_List|phase 1 customer]]&lt;br /&gt;
* [http://xkr47.outerspace.dyndns.org/ my homepage]&lt;br /&gt;
* [http://sourceforge.net/people/viewprofile.php?user_id=66259 my computer-related skills]&lt;br /&gt;
* [http://www.google.com/search?q=xkr47+OR+jberlin%40niksula+OR+jberlin%40cc+OR+outerspace.dyndns.org my internet resumé]&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Wishlist for my openmoko:&lt;br /&gt;
&lt;br /&gt;
* basic telephony&lt;br /&gt;
* automatic [[Screen Saver|screensaver]] &amp;amp; locker&lt;br /&gt;
** require code/password/gesture to unlock&lt;br /&gt;
* [[Messages|SMS sending and reception]]&lt;br /&gt;
* SMS mirroring to home server&lt;br /&gt;
* remote GUI app connected to home server when SMS arrives / phone is ringing / other important event (battery low) in case I can't hear the phone when it's in my backpack&lt;br /&gt;
* MMS sending &amp;amp; reception - outgoing pics taken with external USB-connected digital camera&lt;br /&gt;
* Integration with local public transportation services which provides clickable maps --&amp;gt; GPS can be used to automatically &amp;quot;go home from wherever I happen to be&amp;quot;&lt;br /&gt;
* ssh client&lt;br /&gt;
* &amp;quot;Status&amp;quot; app or [[Today|similar]] with multiple small windows aka gadgets / widgets that report different stats e.g. ssh (for irc), SMS, missed calls, next calendar entries, profile, tv programme etc, [http://en.wikipedia.org/wiki/Digital_video_recorder DVR] status&lt;br /&gt;
* Switch to &amp;quot;status&amp;quot; app automatically if user idles long enough&lt;br /&gt;
* [[Calendar]]&lt;br /&gt;
* automatic (weekly or calender-based) and [[Clock|manual alarm clock]]&lt;br /&gt;
* [[Profiles|Profile]] changes:&lt;br /&gt;
** programmable - time, location &amp;amp; calendar based&lt;br /&gt;
** manual profile override with timeout - cinema, sleep, meeting&lt;br /&gt;
* allow use of event (incoming phone call, sms message etc) metadata (who called, what time) to override profile settings&lt;br /&gt;
* screensaver that shuts the screen completely off, not just the backlight&lt;br /&gt;
** one click in screensaver mode -&amp;gt; screen in &amp;quot;on&amp;quot; mode but backlight still off, tune X color settings so that the contrast is increased to improve readbility&lt;br /&gt;
** second click -&amp;gt; backlight on as well, color settings back to normal&lt;br /&gt;
* SMS writing with [[Applications#Finger-Based_Applications | fingers]] - maybe some basic 123 456 789 *0# [[Input Method|onscreen keyboard]] with [http://en.wikipedia.org/wiki/T9_(predictive_text) T9] or similar&lt;br /&gt;
* one-click publishing of pictures taken with external digital camera to home web server&lt;br /&gt;
&lt;br /&gt;
Hopefully my skills will let me implement at least some of these :)&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:Xkr47</id>
		<title>User:Xkr47</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:Xkr47"/>
				<updated>2007-02-17T16:25:39Z</updated>
		
		<summary type="html">&lt;p&gt;Xkr47: links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Me:&lt;br /&gt;
* relationship with openmoko: [[Buying_Interest_List|phase 1 customer]]&lt;br /&gt;
* [http://xkr47.outerspace.dyndns.org/ my homepage]&lt;br /&gt;
* [http://sourceforge.net/people/viewprofile.php?user_id=66259 my computer-related skills]&lt;br /&gt;
* [http://www.google.com/search?q=xkr47+OR+jberlin%40niksula+OR+jberlin%40cc+OR+outerspace.dyndns.org my internet resumé]&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
Wishlist for my openmoko:&lt;br /&gt;
&lt;br /&gt;
* basic telephony&lt;br /&gt;
* automatic [[Screen Saver|screensaver]] &amp;amp; locker&lt;br /&gt;
** require code/password/gesture to unlock&lt;br /&gt;
* [[Messages|SMS sending and reception]]&lt;br /&gt;
* SMS mirroring to home server&lt;br /&gt;
* remote GUI app connected to home server when SMS arrives / phone is ringing / other important event (battery low) in case I can't hear the phone when it's in my backpack&lt;br /&gt;
* MMS sending &amp;amp; reception - outgoing pics taken with external USB-connected digital camera&lt;br /&gt;
* Integration with local public transportation services which provides clickable maps --&amp;gt; GPS can be used to automatically &amp;quot;go home from wherever I happen to be&amp;quot;&lt;br /&gt;
* ssh client&lt;br /&gt;
* &amp;quot;Status&amp;quot; app or [[Today|similar]] with multiple small windows aka gadgets / widgets that report different stats e.g. ssh (for irc), SMS, missed calls, next calendar entries, profile, tv programme etc, [http://en.wikipedia.org/wiki/Digital_video_recorder DVR] status&lt;br /&gt;
* Switch to &amp;quot;status&amp;quot; app automatically if user idles long enough&lt;br /&gt;
* [[Calendar]]&lt;br /&gt;
* automatic (weekly or calender-based) and [[Clock|manual alarm clock]]&lt;br /&gt;
* [[Profiles|Profile]] changes:&lt;br /&gt;
** programmable - time, location &amp;amp; calendar based&lt;br /&gt;
** manual profile override with timeout - cinema, sleep, meeting&lt;br /&gt;
* allow use of event (incoming phone call, sms message etc) metadata (who called, what time) to override profile settings&lt;br /&gt;
* screensaver that shuts the screen completely off, not just the backlight&lt;br /&gt;
** one click in screensaver mode -&amp;gt; screen in &amp;quot;on&amp;quot; mode but backlight still off, tune X color settings so that the contrast is increased to improve readbility&lt;br /&gt;
** second click -&amp;gt; backlight on as well, color settings back to normal&lt;br /&gt;
* SMS writing without stylus - maybe some basic 123 456 789 *0# onscreen keyboard with [http://en.wikipedia.org/wiki/T9_(predictive_text) T9] or similar&lt;br /&gt;
* one-click publishing of pictures taken with external digital camera to home web server&lt;br /&gt;
&lt;br /&gt;
Hopefully my skills will let me implement at least some of these :)&lt;/div&gt;</summary>
		<author><name>Xkr47</name></author>	</entry>

	</feed>