<?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=VilleWitt&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=VilleWitt&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Special:Contributions/VilleWitt"/>
		<updated>2013-05-23T23:54:36Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.6</generator>

	<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>2009-02-03T11:21:43Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: /* Ubuntu Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Openmoko Networking Setup =&lt;br /&gt;
&lt;br /&gt;
In order to communicate via TCP/IP to your FreeRunner, a basic understanding of the networking expectations is required.  Each end of the USB connection forms a LAN (local area network) segment, with the FreeRunner's USB networking device at one end (default 192.168.0.202) and your laptop or desktop at the other end (192.168.0.200 in this guide).&lt;br /&gt;
&lt;br /&gt;
Normally, your desktop machine will know how to reach the Internet, having had its gateway (the IP address of the machine or device which knows how to send packets to machines beyond your subnet) configured via DHCP or statically (probably via a router).  For the FreeRunner to reach the Internet, your desktop will have to be configured to route and masquerade (NAT) packets from it.&lt;br /&gt;
&lt;br /&gt;
Normally, none of this is an issue, but problems can arise when the subnet between the FreeRunner and your desktop overlap with the desktop to the router (which forms a second LAN), since your desktop might not know how to route traffic properly.&lt;br /&gt;
&lt;br /&gt;
In other words: if your existing router and desktop have addresses 192.168.0.(something) changing them to e.g. 192.168.1.(something) might save you a lot of troubleshooting later. A discussion of this is [http://lists.openmoko.org/pipermail/support/2008-August/thread.html#1277 here].&lt;br /&gt;
&lt;br /&gt;
== Things to keep in mind ==&lt;br /&gt;
&lt;br /&gt;
* When the FreeRunner suspends it disables it's USB networking interface. Therefore it is a good idea to turn off the FreeRunners suspend function when using USB networking. You can do this manually or automatically. [https://wiki.muc.ccc.de/openmoko This] site has two scripts ([https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power one for Om 2007] and [https://wiki.muc.ccc.de/openmoko#disable_suspend_if_on_external_power1 one for Om 2008]) which disable suspend if the FreeRunner is on external power.&lt;br /&gt;
&lt;br /&gt;
= Simple Manual Linux Configuration =&lt;br /&gt;
Try this first (as root on your desktop, with FreeRunner attached via USB cable and booted properly, not at the Boot Menu).  If it works, then you can add permanent configuration or use more sophisticated setups below.&lt;br /&gt;
=== The shortest way ===&lt;br /&gt;
This simple way has been tested with many Linux distributions (Fedora, SuSE, Red Hat, Debian and others) and network configurations. It was even successfully applied to connect another Linux based handhelds like TDS Nomad and surely can be recommended as the first attempt. The way assumes that you have the recent Linux distribution with USB networking enabled and also rather typical network setup. &lt;br /&gt;
&lt;br /&gt;
With the device connected 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. log in to the Neo (you do not need to be a root on the desktop host just to log in).&lt;br /&gt;
 # ssh root@192.168.0.202&lt;br /&gt;
The default password is blank.&lt;br /&gt;
&lt;br /&gt;
Do not forget to allow ssh (open the port 22) on your firewall so that you can connect to the device. If you suspect any firewall issues, the simplest way is to unplug the main Internet cable leaving only Neo connected and then temporary turn the firewall off.&lt;br /&gt;
&lt;br /&gt;
Also, some old or narrowly configured Linux distributions may not have USB networking support. For such cases the simple way might be just to upgrade.&lt;br /&gt;
&lt;br /&gt;
=== The more advanced way ===&lt;br /&gt;
If the previously described simple approach does not work, you may try the more complex one.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
sysctl -w net.ipv4.ip_forward=1&lt;br /&gt;
ip addr add 192.168.0.200/24 dev usb0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If your Internet connection is also in the range 192.168.0.x then instead you might want to use only:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ip addr add 192.168.0.200/28 dev usb0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(This will just map the net from 192.168.0.192 to 192.168.0.207 onto usb0. If you get the error 'Cannot find device &amp;quot;usb0&amp;quot;', double-check that your FreeRunner is turned on and connected by USB. If that doesn't work, try unplugging and replugging the USB cable.)&lt;br /&gt;
&lt;br /&gt;
And in this case you should enable ARP proxy on internet facing interface INSTEAD of using iptables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sysctl net.ipv4.conf.eth2.proxy_arp=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This assuming that eth2 is connected to ISP.&lt;br /&gt;
&lt;br /&gt;
Then&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig usb0 up&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then (ideally, not as root):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh root@192.168.0.202&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default password is blank.&lt;br /&gt;
&lt;br /&gt;
Due to the fact that in most cases your Neo will use the same dns servers as your computer uses, you can automate the process of writing dns servers to your phone:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
/sbin/route add -host 192.168.0.202/32 dev usb0&lt;br /&gt;
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
sysctl -w net.ipv4.ip_forward=1&lt;br /&gt;
su `whoami` -c &amp;quot;scp /etc/resolv.conf root@192.168.0.202:/etc/resolv.conf&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Again if your net already is 192.168.0.0, replace the POSTROUTING statement with&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/28&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This simple script will set up routing for your Freerunner and than copy resolv.conf with dns addresses straight to the phone.&lt;br /&gt;
All you have to do is connect phone to the computer, run the script and enjoy internet connection from your phone.&lt;br /&gt;
&lt;br /&gt;
=== Changing the Neo IP address ===&lt;br /&gt;
&lt;br /&gt;
Like mentioned above, if the default Neo subnet 192.168.0.X is already used, it might be necessary to change the&lt;br /&gt;
Neo [http://en.wikipedia.org/wiki/IP_address IP adress] and subnet.&lt;br /&gt;
To achieve this, edit /etc/network/interfaces on the Neo (and reboot it).&lt;br /&gt;
In the following example the Neo will use the IP address 192.168.100.1 (instead of the default 192.168.0.202)&lt;br /&gt;
within the network 192.168.100.X (instead of 192.168.0.X),&lt;br /&gt;
another [http://en.wikipedia.org/wiki/Private_network private] class C network.&lt;br /&gt;
(The [http://en.wikipedia.org/wiki/Subnetwork#Binary_subnet_masks netmask] indicates that the first 3 bytes (all bits set) are used to determine the subnet&lt;br /&gt;
and the last byte (no bits set) to determine the machine.)&lt;br /&gt;
The gateway (the computer, the Neo is attached to) also has to be part of the subnet and is expected to be 192.168.100.254 (instead of 192.168.0.200) here.&lt;br /&gt;
&lt;br /&gt;
Modifications for /etc/network/interfaces:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto usb0&lt;br /&gt;
iface usb0 inet static&lt;br /&gt;
        address 192.168.100.1&lt;br /&gt;
        netmask 255.255.255.0&lt;br /&gt;
        network 192.168.100.0&lt;br /&gt;
        gateway 192.168.100.254&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(The network entry seems to be redundant information, since it can be derived from address and netmask?)&lt;br /&gt;
Note that wiki articles usually expect default settings and you have to adjust the IP adress, gateway, etc entries according to your changes.&lt;br /&gt;
&lt;br /&gt;
= Linux Kernel Support =&lt;br /&gt;
&lt;br /&gt;
Your Linux desktop/laptop needs to have suitable support. In particular you will need to have enabled USB networking and masquerading support in the kernel. For default kernels in many Linux distributions this will already be the case.&lt;br /&gt;
&lt;br /&gt;
== USB Networking support ==&lt;br /&gt;
&lt;br /&gt;
The following options need to be enabled:&lt;br /&gt;
&lt;br /&gt;
* CONFIG_USB_USBNET (''Multi-purpose USB Networking Framework''. Module will be called &amp;lt;tt&amp;gt;usbnet&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* CONFIG_USB_NET_CDCETHER (''CDC Ethernet support''. Module will be called &amp;lt;tt&amp;gt;cdc_ether&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
These options are available in ''Device Drivers -&amp;gt; USB support -&amp;gt; USB Network Adapters'' or ''Device Drivers -&amp;gt; Network Device Support -&amp;gt; USB Network Adapters.&lt;br /&gt;
&lt;br /&gt;
In order for USB networking to work you need to load the &amp;lt;tt&amp;gt;cdc_ether&amp;lt;/tt&amp;gt; module (when loading &amp;lt;tt&amp;gt;cdc_ether&amp;lt;/tt&amp;gt; the module &amp;lt;tt&amp;gt;usbnet&amp;lt;/tt&amp;gt; will be loaded automatically). For more info see the [http://www.linux-usb.org/usbnet/ usbnet driver homepage].&lt;br /&gt;
&lt;br /&gt;
== Masquerading support ==&lt;br /&gt;
&lt;br /&gt;
Masquerading options are found in ''Networking ---&amp;gt; Networking options ---&amp;gt;'' (tested on Linux 2.6.26.3).&lt;br /&gt;
&lt;br /&gt;
To enable the needed options you first have to enable:&lt;br /&gt;
&lt;br /&gt;
* CONFIG_NETFILTER (''Network packet filtering framework (Netfilter)'')&lt;br /&gt;
&lt;br /&gt;
Then, from&lt;br /&gt;
&lt;br /&gt;
''Networking ---&amp;gt;&lt;br /&gt;
Networking options ---&amp;gt;&lt;br /&gt;
[*] Network packet filtering framework (Netfilter) ---&amp;gt;&lt;br /&gt;
Core Netfilter Configuration ---&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
You need at least following options enabled as modules:&lt;br /&gt;
&lt;br /&gt;
* CONFIG_NF_CONNTRACK (''Netfilter connection tracking support'')&lt;br /&gt;
* CONFIG_NF_CONNTRACK_FTP (''FTP protocol support'')&lt;br /&gt;
* CONFIG_NETFILTER_XTABLES (''Netfilter Xtables support'')&lt;br /&gt;
&lt;br /&gt;
Rest of the needed options are found from&lt;br /&gt;
&lt;br /&gt;
''Networking ---&amp;gt;&lt;br /&gt;
Networking options ---&amp;gt;&lt;br /&gt;
[*] Network packet filtering framework (Netfilter) ---&amp;gt;&lt;br /&gt;
IP: Netfilter Configuration ---&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
You need to enable (again, as modules is fine):&lt;br /&gt;
&lt;br /&gt;
* CONFIG_NF_CONNTRACK_IPV4 (''IPv4 connection tracking support (required for NAT)'')&lt;br /&gt;
* CONFIG_IP_NF_IPTABLES (''IP tables support (required for filtering/masq/NAT)'')&lt;br /&gt;
* CONFIG_NF_NAT (''Full NAT'')&lt;br /&gt;
* CONFIG_IP_NF_TARGET_MASQUERADE (''MASQUERADE target support'')&lt;br /&gt;
&lt;br /&gt;
= Firewall Issues =&lt;br /&gt;
&lt;br /&gt;
On some systems, you may have firewall rules which prevent this working - such as added by the iptables service on Fedora.  You may care to stop these, and/or review any rules or policies you think might cause issues.&lt;br /&gt;
&lt;br /&gt;
The most relevant table is the nat table, which controls translation of addresses:&lt;br /&gt;
&lt;br /&gt;
iptables -L -t nat -v -n&lt;br /&gt;
&lt;br /&gt;
Unless you have a special setup, you'll want to see only the MASQUERADE rule that you apply below, and ACCEPT as the default policy.  Also look at the filter table:&lt;br /&gt;
&lt;br /&gt;
iptables -L -t filter -v -n&lt;br /&gt;
&lt;br /&gt;
If this contains anything in the FORWARD chain, then this may prevent passing packets.  It can be flushed with:&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -F FORWARD&lt;br /&gt;
&lt;br /&gt;
= DNS =&lt;br /&gt;
&lt;br /&gt;
In addition to routing issues, to be practical, DNS will need to work.  In some cases, you might already be running a DNS server on your desktop such as dnsmasq or bind9, which is the default assumption the FreeRunner makes.  In other cases, you'll need to configure DNS to that of your router, or a DNS server further out on the internet such as that provided by your ISP.&lt;br /&gt;
&lt;br /&gt;
== Configure Default Neo DNS ==&lt;br /&gt;
&lt;br /&gt;
DNS is configured in /etc/resolv.conf on your FreeRunner.&lt;br /&gt;
&lt;br /&gt;
You should add the IP address of the DNS servers as provided by your ISP. Check your router's or PC's network status for the nameserver IP addresses.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;echo nameserver xxx.xxx.xxx.xxx &amp;gt; /etc/resolv.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also add the public DNS server called openDNS:&lt;br /&gt;
&amp;lt;pre&amp;gt;echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These settings will be lost on reboot. You can set the DNS for the next connect, by adding the following to the end of the usb0 setting in /etc/network/interfaces, right above the bluetooth networking section:&lt;br /&gt;
&amp;lt;pre&amp;gt;up echo nameserver 208.67.222.222 &amp;gt; /etc/resolv.conf&lt;br /&gt;
up echo nameserver 208.67.220.220 &amp;gt;&amp;gt; /etc/resolv.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Proxying DNS from Desktop/Laptop ==&lt;br /&gt;
&lt;br /&gt;
If you move about, making assumptions about the network may not be convenient, and it is possible to proxy DNS requests via your host laptop (which you are also taking with you), without running or installing a DNS server.  There are a number of ways to do this:&lt;br /&gt;
&lt;br /&gt;
=== Proxying with dnrd ===&lt;br /&gt;
&lt;br /&gt;
The script is designed to use [http://dnrd.sourceforge.net/ dnrd] as the DNS proxy. The [http://buildhost.automated.it/gta01 script] and a copy of [http://buildhost.automated.it/dnrd-2.20.3.tar.gz dnrd] are available. The script also performs the initial setup of the connection as per the [[USB_Networking#Manual_method]] above.&lt;br /&gt;
&lt;br /&gt;
=== Proxying with a UDP forwarder ===&lt;br /&gt;
&lt;br /&gt;
Another easy setup is using a UDP forwarder like the one from http://www.tapor.com/udpf/ - use it with the command&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;udpf-elf -p=53-f=`awk '$1 == &amp;quot;nameserver&amp;quot;{print $2; exit(0);}' /etc/resolv.conf`:53&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Proxying with iptables ===&lt;br /&gt;
&lt;br /&gt;
It is possible to forward DNS requests with iptables using the DNAT target:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;iptables -t nat -A PREROUTING -p tcp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1&lt;br /&gt;
iptables -t nat -A PREROUTING -p udp -s 192.168.0.202 -d 192.168.0.200 --dport domain -j DNAT --to-destination 192.168.0.1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;tt&amp;gt;192.168.0.1&amp;lt;/tt&amp;gt; is the IP of your router.&lt;br /&gt;
&lt;br /&gt;
Test if it works:&lt;br /&gt;
&amp;lt;pre&amp;gt;ping www.google.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If so, then this is sufficient for most internet access. But manual changes to resolv.conf are usually lost later if for example one uses DHCP, especially for WiFi, and so may not be convenient to configure manually.&lt;br /&gt;
&lt;br /&gt;
= Testing Your Connection =&lt;br /&gt;
You should be able to connect to your Neo! Make sure you can ping your Neo to be sure.&lt;br /&gt;
ping 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Then log into your Neo using ssh:&lt;br /&gt;
ssh root@192.168.0.202&lt;br /&gt;
The default password is blank (press enter).&lt;br /&gt;
&lt;br /&gt;
You can also [[scp]] files back and forth. You can telnet, SSH, SMB or do whatever you want if you install software that enables you to set up TCP/IP network over your USB connection.&lt;br /&gt;
&lt;br /&gt;
Now, make sure you can ping back to your desktop&lt;br /&gt;
ping 192.168.0.200&lt;br /&gt;
(Note that some systems like Vista, don't respond to ICMP ping by default)&lt;br /&gt;
&lt;br /&gt;
Try pinging the outside world (a Google IP address)&lt;br /&gt;
ping 74.125.19.147&lt;br /&gt;
This demonstrates that masquerading is working - your desktop is sending/receiving packets to the wider internet.&lt;br /&gt;
&lt;br /&gt;
Lastly, verify that DNS is correctly configured between the Neo &amp;amp; Network:&lt;br /&gt;
ping www.google.com&lt;br /&gt;
&lt;br /&gt;
= OS or Distro Specific &amp;amp; Automatic Configuration =&lt;br /&gt;
&lt;br /&gt;
Based on [http://blog.haerwu.biz/2007/03/22/hotpluging-usbnet/ Hotplugging usbnet] by Marcin 'Hrw' Juszkiewicz.&lt;br /&gt;
These instructions should keep you from having to run the Simple Manual Linux Configuration every time you plug in and want to connect to an Openmoko device.  One run and then you're done!&lt;br /&gt;
&lt;br /&gt;
If the Simple Manual Linux Configuration does not work for your OS or Distro (MacOS X, MS Windows, etc) there may be instructions here that work for you.&lt;br /&gt;
&lt;br /&gt;
== MacOS X ==&lt;br /&gt;
See [[MacOS_X#USB_Networking|MacOS X USB Networking]].&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
See [[Neo1973_and_Windows#USB_Ethernet_emulation|Windows USB Ethernet emulation for Neo1973]].&lt;br /&gt;
&lt;br /&gt;
There is also a very helpful tutorial for connecting with Vista at [http://sam.curren.ws/index.cfm/2008/7/14/Using-the-Neo-FreeRunner-with-Windows-XPVista].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You need to load the cdce kernel module (if it is not already linked into your kernel). As root do:&lt;br /&gt;
&lt;br /&gt;
 # kldload cdce&lt;br /&gt;
&lt;br /&gt;
The Neo should then show up as cdce0 interface and you can handle the cdce0 interface just like the usb0 device under Linux. For more information see the cdce manpage. An easy way to assign the IP address to the cdce0 interface is using the devd(8) daemon. Create the following two files,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/usr/local/etc/devd/cdce.conf&amp;lt;/tt&amp;gt; as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
notify 1 {&lt;br /&gt;
match &amp;quot;system&amp;quot;          &amp;quot;IFNET&amp;quot;;&lt;br /&gt;
match &amp;quot;subsystem&amp;quot;       &amp;quot;cdce0&amp;quot;;&lt;br /&gt;
match &amp;quot;type&amp;quot;            &amp;quot;ATTACH&amp;quot;;&lt;br /&gt;
action &amp;quot;/usr/local/etc/devd/cdce.sh $subsystem $type&amp;quot;;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and &amp;lt;tt&amp;gt;/usr/local/etc/devd/cdce.sh&amp;lt;/tt&amp;gt; as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
case $2 in&lt;br /&gt;
'ATTACH')&lt;br /&gt;
ifconfig cdce0 192.168.0.200 netmask 255.255.255.0&lt;br /&gt;
exit 0 ;&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then restart the devd(8) daemon with:&lt;br /&gt;
&lt;br /&gt;
 # /etc/rc.d/devd restart&lt;br /&gt;
&lt;br /&gt;
If you now plugin the FreeRunner into the USB port the cdce0 interface gets created and the IP addr will be assigned.&lt;br /&gt;
&lt;br /&gt;
== Debian, Ubuntu and others ==&lt;br /&gt;
&lt;br /&gt;
Edit /etc/network/interfaces and add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# freerunner&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;
        up iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE&lt;br /&gt;
        up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
        down iptables -D POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is more sophisticated than the manual setup.  The 'auto usb' stanza ties into the Linux hotplug system so that when the device appears and vanishes, as happens when the FreeRunner is connected via USB, this is run.&lt;br /&gt;
&lt;br /&gt;
In addition, the desktop-side netmask is limited to a much smaller range, so that overlapping subnets are less of a problem - Linux will use more specific routes first when deciding where to send packets.&lt;br /&gt;
&lt;br /&gt;
Another possible configuration that adds DNS forward and removes&lt;br /&gt;
the iptables changes after unplugging:&lt;br /&gt;
&lt;br /&gt;
in /etc/network/interfaces add&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# freerunner&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.192&lt;br /&gt;
        post-up /etc/network/freerunner start&lt;br /&gt;
        pre-down /etc/network/freerunner stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
create file /etc/network/freerunner&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# configures the freerunner for internet&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
DEVICE=usb0&lt;br /&gt;
IPADDR=192.168.0.200&lt;br /&gt;
REMOTE_IPADDR=192.168.0.202&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
&lt;br /&gt;
# get first ip for dns&lt;br /&gt;
DNSIP=$(awk '$1 == &amp;quot;nameserver&amp;quot;{print $2; exit(0);}' /etc/resolv.conf)&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
start)&lt;br /&gt;
iptables -A POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR&lt;br /&gt;
iptables -A PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP&lt;br /&gt;
iptables -A PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$(cat /proc/sys/net/ipv4/ip_forward)&amp;quot; = &amp;quot;0&amp;quot; ]; then&lt;br /&gt;
echo &amp;quot;temoprarely allow ip_forward for openmoko&amp;quot; &amp;gt; /var/run/openmoko.ip_forward&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
fi&lt;br /&gt;
;;&lt;br /&gt;
stop)&lt;br /&gt;
iptables -D POSTROUTING -t nat -j MASQUERADE -s $REMOTE_IPADDR&lt;br /&gt;
iptables -D PREROUTING -t nat -p tcp -s $REMOTE_IPADDR -d $IPADDR --dport domain -j DNAT --to-destination $DNSIP&lt;br /&gt;
iptables -D PREROUTING -t nat -p udp -s $REMOTE_IPADDR -d  $IPADDR --dport domain -j DNAT --to-destination $DNSIP&lt;br /&gt;
&lt;br /&gt;
if [ -f /var/run/openmoko.ip_forward ]; then&lt;br /&gt;
rm /var/run/openmoko.ip_forward&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
fi&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make /etc/network/freerunner executable with&lt;br /&gt;
chmod +x /etc/network/freerunner&lt;br /&gt;
&lt;br /&gt;
It is possible to use network-manager to automatically connect to the Freerunner using udev. The process uses udev to run a script when the Frerunner is plugged in.  The script uses the ip command to set the mac address of the usb network interface. To begin, create /etc/udev/rules.d/80-freerunner.rules :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file causes programs to be run on device insertion.&lt;br /&gt;
# See udev(7) for syntax.&lt;br /&gt;
# rule to assign a fixed mac address specified in /&lt;br /&gt;
KERNEL==&amp;quot;usb[0-9]*&amp;quot;, DRIVERS==&amp;quot;cdc_ether&amp;quot;, ACTION==&amp;quot;add&amp;quot;, RUN+=&amp;quot;/usr/local/sbin/freerunner-usb-add.sh %k&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, create the /usr/local/sbin/freerunner-usb-add.sh :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
(&lt;br /&gt;
busNum=$( printf %.2d $( expr match &amp;quot;$1&amp;quot; &amp;quot;usb\([0-9]*\)&amp;quot;) )&lt;br /&gt;
ip link set &amp;quot;$1&amp;quot; address 00:00:22:55:bb:$busNum &amp;amp;&amp;gt; /dev/null&lt;br /&gt;
) &amp;amp;&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally run &amp;quot;chmod +x /usr/local/sbin/freerunner-usb-add.sh&amp;quot; to make it executable. Now you can use network-manager with mac-address specific settings and get it to automatically connect.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 8.10 - Easy Way ===&lt;br /&gt;
&lt;br /&gt;
1. Connect Neo to PC and wait about a minute when NetworkManager stops scanning usb for dhcp (wait when icon in the tray switches to normal).&lt;br /&gt;
&lt;br /&gt;
2. Open &amp;quot;nm-connection-editor&amp;quot;, select &amp;quot;Auto usb0&amp;quot;, click &amp;quot;Edit&amp;quot;, then &amp;quot;IPv4 Settings&amp;quot;. Set &amp;quot;Method&amp;quot; - &amp;quot;Manual&amp;quot;, click &amp;quot;Add&amp;quot;. In the &amp;quot;Address&amp;quot; field write &amp;quot;192.168.0.200&amp;quot;, &amp;quot;Netmask&amp;quot; - &amp;quot;255.255.255.0&amp;quot;, leave &amp;quot;Gateway&amp;quot; field empty. Click &amp;quot;OK&amp;quot;, then &amp;quot;Close&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
3. Now you can connect via ssh to 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Then, based on [http://sebastian-bergmann.de/index.php?url=archives/801-OpenMoko-Freerunner-and-Ubuntu.html#feedback these instructions], you should be able to setup masquerading by running the following commands on your Ubuntu PC: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT&lt;br /&gt;
sudo iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT&lt;br /&gt;
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
sudo bash -c 'echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu Issues ===&lt;br /&gt;
&lt;br /&gt;
Ubuntu 8.10 doesn't work as expected if you used /etc/network/interfaces to automate the connection.&amp;lt;br&amp;gt;&lt;br /&gt;
Network manager likes to latch onto the network device and add a default route through 192.168.0.202, breaking your network connection.&lt;br /&gt;
Network manager also says you can't edit or remove this connection from its list. I'm going back to making the connection manually.&amp;lt;br&amp;gt;&lt;br /&gt;
Using the /usr/local/sbin/freerunner-usb-add.sh script for some automatism can be a workaround:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
(&lt;br /&gt;
ifconfig usb0 192.168.0.200 netmask 255.255.255.192 &amp;gt; /dev/null&lt;br /&gt;
ifconfig usb0 up &amp;gt; /dev/null&lt;br /&gt;
/etc/network/freerunner start&lt;br /&gt;
) &amp;amp;&lt;br /&gt;
exit 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ubuntu Feisty, Gutsy and Hardy reportedly have a bug where ifdown is not run when the interface is unplugged, meaning this only works once after the system is booted.  This is mentioned at https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/130437&lt;br /&gt;
&lt;br /&gt;
One can patch /etc/udev/rules.d/85-ifupdown.rules. Moving the DRIVERS==&amp;quot;*?&amp;quot; out of the top GOTO, to ACTION==&amp;quot;add&amp;quot; line fixes the problem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, GOTO=&amp;quot;net_start&amp;quot;&lt;br /&gt;
GOTO=&amp;quot;net_end&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LABEL=&amp;quot;net_start&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Bring devices up and down only if they're marked auto.&lt;br /&gt;
# Use start-stop-daemon so we don't wait on dhcp&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, DRIVERS==&amp;quot;?*&amp;quot;,       RUN+=&amp;quot;/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifup -- --allow auto $env{INTERFACE}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ACTION==&amp;quot;remove&amp;quot;,       RUN+=&amp;quot;/sbin/start-stop-daemon --start --background --pidfile /var/run/network/bogus --startas /sbin/ifdown -- --allow auto $env{INTERFACE}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
LABEL=&amp;quot;net_end&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The bug is that the DRIVERS variable isn't set at all when the device is unplugged.&lt;br /&gt;
&lt;br /&gt;
This appears to be fixed in Ubuntu 8.04 [[User:Mattt|Mattt]] 11:38, 30 July 2008 (UTC)&lt;br /&gt;
:Actually it appears that it's not fixed, but patching that file and disconnecting and reconnecting the phone works perfectly. --[[User:Johndoesacc|Johndoesacc]] 18:37, 20 August 2008 (UTC)&lt;br /&gt;
:Well, yes, it must be fixed because it worked for me out-of-the-box without tweaking the udev rule on 8.04 --[[User:EtienneG|EtienneG]] November 26th, 2008&lt;br /&gt;
:It wasn't solved in my case, as of 3. February 2009 in 8.04 (AMD64), the patch above solved my problem thou. --[[User:VilleWitt|VilleWitt]] February 3td, 2009.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu Workaround ===&lt;br /&gt;
Use [http://wicd.sourceforge.net/ wicd] instead of networkmanager:&lt;br /&gt;
It is much further in development than networkmanager yet and doesn't make any problems with USB networking. You can use the &amp;quot;normal&amp;quot; settings in /network/interfaces.&lt;br /&gt;
;Note: Because of it's dependencies it deinstalls networkmanager.&lt;br /&gt;
&lt;br /&gt;
== Mandriva ==&lt;br /&gt;
&lt;br /&gt;
This first file configures the network system for the usb0 interface. Any time you plug in the FreeRunner the interface will be configured.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/sysconfig/network-scripts/ifcfg-usb0&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEVICE=usb0&lt;br /&gt;
BOOTPROTO=static&lt;br /&gt;
IPADDR=192.168.0.200&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
NETWORK=192.168.0.0&lt;br /&gt;
BROADCAST=192.168.0.255&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
METRIC=10&lt;br /&gt;
MII_NOT_SUPPORTED=no&lt;br /&gt;
USERCTL=yes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This next file configures the static routes that we need to communicate to the subnet. Since it has &amp;quot;usb0&amp;quot; in the name, the system will automatically apply these static routes any time that the usb0 interface is configured. (i.e. when you connect the FreeRunner)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/sysconfig/network-scripts/usb0-routes&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ADDRESS0=192.168.0.200&lt;br /&gt;
NETMASK0=255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to restart the network system to pick up the changes.&lt;br /&gt;
&lt;br /&gt;
 service network restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This didn't work for me (Mandriva 2008.1), giving errors from Shorewall. However, simply using MCC, Network-&amp;gt;Sharing Internet Access worked fine. You need to connect Neo when starting it. --[[User:Alih|Alih]] 18:50, 22 September 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== SuSE ==&lt;br /&gt;
&lt;br /&gt;
/etc/sysconfig/network/ifcfg-usb0:&lt;br /&gt;
&lt;br /&gt;
 # USB configuration for PDAs (openmoko)&lt;br /&gt;
 IPADDR=192.168.0.200&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 STARTMODE=onboot&lt;br /&gt;
&lt;br /&gt;
For more information on getting USB networking up using YaST, see [[USB Networking with openSUSE]].&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
=== Option A - Tested with FC9, FC8 &amp;amp; FC5 ===&lt;br /&gt;
&lt;br /&gt;
edit file &amp;lt;tt&amp;gt;/etc/sysconfig/network-scripts/ifcfg-usb0&amp;lt;/tt&amp;gt; to look like this:&lt;br /&gt;
&lt;br /&gt;
 # USB configuration for PDAs (openmoko)&lt;br /&gt;
 # from &amp;lt;nowiki&amp;gt;http://www.handhelds.org/moin/moin.cgi/UsbNet&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 DEVICE=usb0&lt;br /&gt;
 BOOTPROTO=none&lt;br /&gt;
 IPADDR=192.168.0.200&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
&lt;br /&gt;
and restart networking service by typing:&lt;br /&gt;
&lt;br /&gt;
 service network restart&lt;br /&gt;
&lt;br /&gt;
if your '''openmoko''' is connected when you restart network you should see system message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Bringing up interface usb0      [OK]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Option B ===&lt;br /&gt;
&lt;br /&gt;
This setup is probably over-complex:&lt;br /&gt;
&lt;br /&gt;
/etc/sysconfig/network-scripts/ifcfg-usb0:&lt;br /&gt;
&lt;br /&gt;
 DEVICE=usb0&lt;br /&gt;
 IPADDR=192.168.0.200&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
&lt;br /&gt;
/etc/sysconfig/network-scripts/ifup-usb:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 ./etc/init.d/functions&lt;br /&gt;
 cd /etc/sysconfig/network-scripts&lt;br /&gt;
 ../network-functions&lt;br /&gt;
 [ -f ../network ] &amp;amp;&amp;amp; . ../network&lt;br /&gt;
 CONFIG=${1}&lt;br /&gt;
 need_config ${CONFIG}&lt;br /&gt;
 source_config&lt;br /&gt;
 NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`&lt;br /&gt;
 /sbin/ip addr flush dev ${DEVICE} 2&amp;gt;/dev/null&lt;br /&gt;
 /sbin/ip link set dev ${DEVICE} up&lt;br /&gt;
 /sbin/ip addr add dev ${DEVICE} ${IPADDR}/${NETBITS}&lt;br /&gt;
 /sbin/iptables -I POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}&lt;br /&gt;
 /sbin/sysctl net.ipv4.ip_forward=1&lt;br /&gt;
 /sbin/iptables -I FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT&lt;br /&gt;
 /sbin/iptables -I FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Set /etc/sysconfig/network-scripts/ifdown-usb:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 ./etc/init.d/functions&lt;br /&gt;
 cd /etc/sysconfig/network-scripts&lt;br /&gt;
 ../network-functions&lt;br /&gt;
 [ -f ../network ] &amp;amp;&amp;amp; . ../network&lt;br /&gt;
 CONFIG=${1}&lt;br /&gt;
 need_config ${CONFIG}&lt;br /&gt;
 source_config&lt;br /&gt;
 NETBITS=`ipcalc -p ${IPADDR} ${NETMASK} | awk -F'=' '{print $2;}'`&lt;br /&gt;
 /sbin/iptables -D FORWARD -d ${IPADDR}/${NETBITS} -j ACCEPT&lt;br /&gt;
 /sbin/iptables -D FORWARD -s ${IPADDR}/${NETBITS} -j ACCEPT&lt;br /&gt;
 /sbin/sysctl net.ipv4.ip_forward=0&lt;br /&gt;
 /sbin/iptables -D POSTROUTING -t nat -j MASQUERADE -s ${IPADDR}/${NETBITS}&lt;br /&gt;
 /sbin/ip link set dev ${DEVICE} down&lt;br /&gt;
 /sbin/ip addr flush dev ${DEVICE} 2&amp;gt;/dev/null&lt;br /&gt;
&lt;br /&gt;
If you are using NetworkManager, restart it and enable the usb device from its menu, otherwise it will disable your connection shortly after you enable it.&lt;br /&gt;
&lt;br /&gt;
 /sbin/service NetworkManager restart&lt;br /&gt;
&lt;br /&gt;
=== Option C - tested on F9 ===&lt;br /&gt;
(worked on FC8 too, can this be called &amp;quot;tested&amp;quot;?)&lt;br /&gt;
&lt;br /&gt;
Plug in the usb cable. NetworkManager should detect the phone automatically but you should ignore it.&lt;br /&gt;
Open Network Configuration tool (System -&amp;gt; Administration -&amp;gt; Network) and perform following steps:&lt;br /&gt;
# Click '''New''' button on top bar&lt;br /&gt;
# Click '''Forward'''&lt;br /&gt;
# Select OpenMoko from device list&lt;br /&gt;
# Click '''Forward'''&lt;br /&gt;
# Select 'Statically set IP address:' and enter address: 192.168.0.200, netmask 255.255.255.0 (or use 255.255.255.240 if you want only route ip range 192.168.0.192-192.168.0.207). Leave gateway empty.&lt;br /&gt;
# Click '''Forward'''&lt;br /&gt;
# Click '''Apply''' to close add dialog&lt;br /&gt;
# Select newly added usb0 device from the device list.&lt;br /&gt;
# Click '''Edit''' button on top bar&lt;br /&gt;
# You might want to remove a tick from 'Activate device when computer starts' check box.&lt;br /&gt;
# Click '''Ok''' to close window  dialog.&lt;br /&gt;
Save settings and close the window.&lt;br /&gt;
&lt;br /&gt;
Open Firewall Configuration (System -&amp;gt; Administration -&amp;gt; Firewall) and enable masquerading:&lt;br /&gt;
# Select '''Masquerading''' from left panel&lt;br /&gt;
# Check device(s) which you'd like to share internet connection. Typically eth0 or wlan0.&lt;br /&gt;
# Click '''Apply''' and close application&lt;br /&gt;
&lt;br /&gt;
Open terminal and perform (as root user):&lt;br /&gt;
# ifdown usb0&lt;br /&gt;
# ifup usb0&lt;br /&gt;
The first command will remove any existing settings given by the NetworkManager and second command brings the device up with appropriate settings.&lt;br /&gt;
&lt;br /&gt;
Now you should be able to ping e.g. 74.125.39.99 [www.google.com] from OpenMoko. Configure /etc/resolv.conf and you should have full a internet access.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
If Network Configuration tool cannot see the the usb0 try to unplug the usb cable for a few seconds and wait until the NetworkManager finds it again.&lt;br /&gt;
&lt;br /&gt;
NetworkManager will assign a new ip address for the OpenMoko if link goes down for a while. You can fix this by issuing '''ifup usb0''' again.&lt;br /&gt;
&lt;br /&gt;
== Red Hat or Similar (tested with Workstation 5) ==&lt;br /&gt;
&lt;br /&gt;
Edit /etc/sysconfig/network-scripts/net.hotplug:&lt;br /&gt;
&lt;br /&gt;
After this command:&lt;br /&gt;
&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&lt;br /&gt;
&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;
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
exit 0&lt;br /&gt;
;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
&lt;br /&gt;
Open /etc/conf.d/net and add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Neo&lt;br /&gt;
config_usb0=( &amp;quot;192.168.0.200 netmask 255.255.255.0&amp;quot; )&lt;br /&gt;
routes_usb0=( &amp;quot;192.168.0.202/32 via 192.168.0.200&amp;quot; )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a new init script:&lt;br /&gt;
&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;
=== Manual Configuration ===&lt;br /&gt;
&lt;br /&gt;
Put iptables into use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&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;
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Store them:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/iptables save&lt;br /&gt;
&lt;br /&gt;
If you want the routing by default:&lt;br /&gt;
&lt;br /&gt;
 rc-update add iptables default&lt;br /&gt;
&lt;br /&gt;
You must also inform the kernel, to start forwarding.&lt;br /&gt;
&lt;br /&gt;
 echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
=== Automatic Configuration ===&lt;br /&gt;
One way to automate all this is to create /etc/conf.d/net.usb0 as follows. It sets IP forwarding and the iptables rules all in one go. It removes the iptables rules and disables ip forwarding when the FreeRunner is unplugged.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
preup() {&lt;br /&gt;
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&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;
iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
return 0&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
postdown() {&lt;br /&gt;
echo 0 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
iptables -D INPUT -s 192.168.0.202 -j ACCEPT&lt;br /&gt;
iptables -D OUTPUT -s 192.168.0.200 -j ACCEPT&lt;br /&gt;
iptables -D POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
return 0&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Slackware (tested with 12.1) ==&lt;br /&gt;
&lt;br /&gt;
Following is based on [http://www.enricozini.org/2008/tips/autodock-freerunner.html Enrico Zini's solution].&lt;br /&gt;
&lt;br /&gt;
Create a new udev rules file &amp;lt;tt&amp;gt;/etc/udev/rules.d/91-openmoko.rules&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;add&amp;quot;, ATTRS{idVendor}==&amp;quot;1457&amp;quot;, ATTRS{idProduct}==&amp;quot;5122&amp;quot;, RUN+=&amp;quot;/sbin/om-usb $env{INTERFACE} start&amp;quot;&lt;br /&gt;
SUBSYSTEM==&amp;quot;net&amp;quot;, ACTION==&amp;quot;remove&amp;quot;, ENV{INTERFACE}==&amp;quot;usb[0-9]&amp;quot;, RUN+=&amp;quot;/sbin/om-usb $env{INTERFACE} stop&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the script &amp;lt;tt&amp;gt;/sbin/om-usb&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
INTERFACE=$1&lt;br /&gt;
ACTION=$2&lt;br /&gt;
&lt;br /&gt;
# udev fails silently when the script fails, e.g. due to commands not&lt;br /&gt;
# being found&lt;br /&gt;
PATH=/usr/sbin:/sbin:/usr/bin:/bin&lt;br /&gt;
&lt;br /&gt;
case $ACTION in&lt;br /&gt;
'start')&lt;br /&gt;
# Put all your setup here&lt;br /&gt;
;;&lt;br /&gt;
'stop')&lt;br /&gt;
# Put all your tear down here&lt;br /&gt;
;;&lt;br /&gt;
*)&lt;br /&gt;
echo &amp;quot;Usage: $0 {start|stop}&amp;quot;&lt;br /&gt;
exit 1&lt;br /&gt;
;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;INTERFACE&amp;lt;/tt&amp;gt; will be &amp;lt;tt&amp;gt;usb0&amp;lt;/tt&amp;gt; in most cases.&lt;br /&gt;
&lt;br /&gt;
== Archlinux ==&lt;br /&gt;
Following is based on [http://xenos.altervista.org/blogs/index.php?blog=3&amp;amp;title=openmoko-usb-networking-su-archlinux furester's solution].&lt;br /&gt;
&lt;br /&gt;
Install package [http://aur.archlinux.org/packages.php?ID=20220 openmoko-usb-networking] from AUR:&lt;br /&gt;
&lt;br /&gt;
$ yaourt -S openmoko-usb-networking&lt;br /&gt;
&lt;br /&gt;
= SSH Extras =&lt;br /&gt;
&lt;br /&gt;
Reportedly, the ssh daemon (dropbear 0.49) on the FreeRunner appears to have a bug when sending the exit status back to the client. From time to time you receive an exit status of 255.&lt;br /&gt;
&lt;br /&gt;
To avoid ssh adding a new line for every ssh host-key to your known_hosts you can add the following to the phone section in ~/.ssh/config (or see the snippet at : [[USB Networking#Changing_host_keys]] bellow)&lt;br /&gt;
&lt;br /&gt;
UserKnownHostsFile /dev/null&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;
== From desktop to FreeRunner ==&lt;br /&gt;
&lt;br /&gt;
To generate ssh keys for use as a login mechanism type:&lt;br /&gt;
&lt;br /&gt;
 user@host$ 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;
 root@phone# mkdir ~/.ssh&lt;br /&gt;
&lt;br /&gt;
Then from your desktop copy the '''.pub''' file to the phone.&lt;br /&gt;
&lt;br /&gt;
 user@host$ scp ~/.ssh/id_rsa.pub root@phone:~/.ssh/authorized_keys&lt;br /&gt;
&lt;br /&gt;
You should now be able to ssh directly into the phone without a password prompt using a command like 'ssh root@phone' from the account user@host because the public key in the file user@host:~/.ssh/id_rsa.pub is contained in the list of keys which have access in the file root@phone:~/.ssh/authorized_keys (since scp is used, only one key exists, but you can grant access to the phone from more than one account, for example user@host, user@laptop).&lt;br /&gt;
&lt;br /&gt;
To make ssh login as root by default, add the following lines to ~/.ssh/config:&lt;br /&gt;
&lt;br /&gt;
 Host phone&lt;br /&gt;
 User root&lt;br /&gt;
&lt;br /&gt;
Replace ''phone'' with the hostname or ip of your phone. You should now be able to ssh into the phone without having to type ''root@'' every time.&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;
=== From FreeRunner to Desktop ===&lt;br /&gt;
&lt;br /&gt;
Generate the key:&lt;br /&gt;
&lt;br /&gt;
 dropbearkey -t rsa -f id_rsa&lt;br /&gt;
&lt;br /&gt;
The output will look something like this:&lt;br /&gt;
&lt;br /&gt;
 Will output 1024 bit rsa secret key to 'id_rsa'&lt;br /&gt;
 Generating key, this may take a while...&lt;br /&gt;
 Public key portion is:&lt;br /&gt;
 ssh-rsa AAAAB3Nza[...]&lt;br /&gt;
 Fingerprint: md5 ca:e8:f0:b7:f6:7b:c2:b6:b9:71:e4:45:86:a9:ff:b8&lt;br /&gt;
&lt;br /&gt;
Copy and paste the one line (in this example, starting with 'ssh-rsa' onto the end of the host's authorized_keys file (often in ~/.ssh/).&lt;br /&gt;
&lt;br /&gt;
From the phone, ssh with -i:&lt;br /&gt;
&lt;br /&gt;
 ssh -i id_rsa user@host&lt;br /&gt;
&lt;br /&gt;
=== Changing host keys ===&lt;br /&gt;
&lt;br /&gt;
If you reflash, your hosts keys will change.  Try this ~/.ssh/config snippet:&lt;br /&gt;
&lt;br /&gt;
 Host moko&lt;br /&gt;
 HostName 192.168.0.202&lt;br /&gt;
 StrictHostKeyChecking no&lt;br /&gt;
 UserKnownHostsFile /dev/null&lt;br /&gt;
 User root&lt;br /&gt;
&lt;br /&gt;
This is suggested because ssh on your desktop may complain if the key matching a certain IP changes (stored in .ssh/known_hosts). Now you have set this, you can issue the following command to connect to your moko :&lt;br /&gt;
&lt;br /&gt;
 ssh root@moko&lt;br /&gt;
&lt;br /&gt;
== GUI on desktop through SSH ==&lt;br /&gt;
&lt;br /&gt;
To get the GUI on the FreeRunner 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;
Using this, 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;
If you get an error like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to&lt;br /&gt;
autolaunch D-Bus session: Autolaunch requested, but X11 support not compiled in.&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to set the DBUS_SESSION_BUS_ADDRESS environment variable to the value on the FreeRunner before launching the process from your desktop.  You can find the value of this variable by using a command such as&lt;br /&gt;
&lt;br /&gt;
 ps auxwwwwe | grep -m 1 DBUS_SESSION_BUS_ADDRESS&lt;br /&gt;
&lt;br /&gt;
Note that you must run that command on the FreeRunner.  Back on your desktop, run the process you want with the ''env'' command like this:&lt;br /&gt;
&lt;br /&gt;
 env DBUS_SESSION_BUS_ADDRESS=''dbus_address'' ''process'' #(isn't the &amp;quot;env&amp;quot; redundant here?)&lt;br /&gt;
&lt;br /&gt;
==Display Remote Applications on FreeRunner==&lt;br /&gt;
&lt;br /&gt;
To get desktop apps to show up on your FreeRunner, first log in:&lt;br /&gt;
&lt;br /&gt;
ssh -l root 192.168.0.202&lt;br /&gt;
&lt;br /&gt;
Then 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=openmoko: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;
== sftp ==&lt;br /&gt;
After you get the SSH connection working, it is possible to use Konqueror, Nautilus or another sftp - enabled tool to browse the phone filesystem and deploy the test applications. Just enter sftp://root@192.168.0.202 into address bar.&lt;br /&gt;
&lt;br /&gt;
== sshfs ==&lt;br /&gt;
You can use sshfs to mount the phones filesystem into the hosts filesystem. Make sure that fuse-sshfs is installed and that you are allowed to use fuse. Now run:&lt;br /&gt;
&lt;br /&gt;
  sshfs 192.168.0.202:REMOTE_PATH LOCAL_MOUNT_POINT&lt;br /&gt;
&lt;br /&gt;
REMOTE_PATH can now be accessed through LOCAL_PATH.&lt;br /&gt;
&lt;br /&gt;
==Automated setup network and mounting partitions==&lt;br /&gt;
&lt;br /&gt;
See [https://bugs.launchpad.net/ubuntu/+bug/289548 Ubuntu bug report in launchpad].&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:USB]]&lt;br /&gt;
[[Category:Implemented]]&lt;br /&gt;
[[Category:Networking]]&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Denmark</id>
		<title>Openmoko Local Groups: Denmark</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Denmark"/>
				<updated>2009-01-24T19:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: /* Possible Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Possible Participants ===&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;
!Has Device&lt;br /&gt;
!Has Debug Board&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Miki|Mikkel Kirkgaard Nielsen]]&lt;br /&gt;
|developer; some assembly, C, some C++, Shell scripting, POSIX etc.&lt;br /&gt;
|Getting Openmoko (and Neo1973) to rock&lt;br /&gt;
|Esbjerg, Østerbyen&lt;br /&gt;
|&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|[[ Image:MokoBox.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Mikl-dk|Mikkel Meyer Andersen]]&lt;br /&gt;
|developer; C#, C/C++ (is certainly going to be improved with this project)&lt;br /&gt;
|Location-based reminding and automatic sms answering among others&lt;br /&gt;
|Aalborg&lt;br /&gt;
|Computer science student&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|[[ Image:MokoBox.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:EsbenDamgaard|Esben Damgaard]]&lt;br /&gt;
|developer; [[Python]], C/C++&lt;br /&gt;
|Everything ;)&lt;br /&gt;
|Odense&lt;br /&gt;
|Computer science student&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Sorenmat|Soren Mathiasen]]&lt;br /&gt;
|developer; [[Java]], C/C++&lt;br /&gt;
|Everything ;)&lt;br /&gt;
|Roskilde&lt;br /&gt;
|Software developer&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:VilleWitt|Ville Witt]]&lt;br /&gt;
|developer; Ada, C/C++, Dvorak, [[Java]]&lt;br /&gt;
|Getting dirty coding ASAP!&lt;br /&gt;
|Naerum &amp;amp; Christiania&lt;br /&gt;
|Computer science student(DTU) and Dvorak user.&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Odlg|Ole Dalgaard]]&lt;br /&gt;
|developer; [[Java]],&lt;br /&gt;
|GPS + having an open phone&lt;br /&gt;
|Hedensted&lt;br /&gt;
|Software developer&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Meetings, Events ===&lt;br /&gt;
{|border=1&lt;br /&gt;
!Date&lt;br /&gt;
!Location&lt;br /&gt;
!Topic&lt;br /&gt;
!Who&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Denmark</id>
		<title>Openmoko Local Groups: Denmark</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Denmark"/>
				<updated>2009-01-19T22:19:19Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: /* Possible Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Possible Participants ===&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;
!Has Device&lt;br /&gt;
!Has Debug Board&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Miki|Mikkel Kirkgaard Nielsen]]&lt;br /&gt;
|developer; some assembly, C, some C++, Shell scripting, POSIX etc.&lt;br /&gt;
|Getting Openmoko (and Neo1973) to rock&lt;br /&gt;
|Esbjerg, Østerbyen&lt;br /&gt;
|&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|[[ Image:MokoBox.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Mikl-dk|Mikkel Meyer Andersen]]&lt;br /&gt;
|developer; C#, C/C++ (is certainly going to be improved with this project)&lt;br /&gt;
|Location-based reminding and automatic sms answering among others&lt;br /&gt;
|Aalborg&lt;br /&gt;
|Computer science student&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|[[ Image:MokoBox.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:EsbenDamgaard|Esben Damgaard]]&lt;br /&gt;
|developer; [[Python]], C/C++&lt;br /&gt;
|Everything ;)&lt;br /&gt;
|Odense&lt;br /&gt;
|Computer science student&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Sorenmat|Soren Mathiasen]]&lt;br /&gt;
|developer; [[Java]], C/C++&lt;br /&gt;
|Everything ;)&lt;br /&gt;
|Roskilde&lt;br /&gt;
|Software developer&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:VilleWitt|Ville Witt]]&lt;br /&gt;
|developer; Ada, C/C++, Dvorak, [[Java]]&lt;br /&gt;
|FreeRunner in mail!&lt;br /&gt;
|Naerum &amp;amp; Christiania&lt;br /&gt;
|Computer science student(DTU) and Dvorak user.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Odlg|Ole Dalgaard]]&lt;br /&gt;
|developer; [[Java]],&lt;br /&gt;
|GPS + having an open phone&lt;br /&gt;
|Hedensted&lt;br /&gt;
|Software developer&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Meetings, Events ===&lt;br /&gt;
{|border=1&lt;br /&gt;
!Date&lt;br /&gt;
!Location&lt;br /&gt;
!Topic&lt;br /&gt;
!Who&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Openmoko Local Groups]]&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:VilleWitt</id>
		<title>User:VilleWitt</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:VilleWitt"/>
				<updated>2008-06-27T20:30:40Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Ville Johan Witt'''&lt;br /&gt;
&lt;br /&gt;
name[] = {&amp;quot;ville&amp;quot;, &amp;quot;johan&amp;quot;, &amp;quot;witt&amp;quot;};&lt;br /&gt;
email = name[0] + &amp;quot;.&amp;quot; + name[2] + &amp;quot;@gmail.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
I'm a happy Dvorak user, and would like to get/make a Dvorak layout in Openmoko, besides all the other nice stuff that is now possible. I do like the programming language Ada, and is going to play around with it on Openmoko. (Remember, Ada is one of the official languages of GCC...) More about Ada on http://en.wikibooks.org/wiki/Ada&lt;br /&gt;
&lt;br /&gt;
I study Computer Science at DTU.&lt;br /&gt;
Prefered desktop: Linux atm (Debian and Ubuntu)&lt;br /&gt;
Motorcycle: BMW R25/3, which can be seen on http://www.villewitt.net&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:VilleWitt</id>
		<title>User:VilleWitt</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:VilleWitt"/>
				<updated>2008-05-27T16:35:23Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Ville Johan Witt'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
name[] = {&amp;quot;ville&amp;quot;, &amp;quot;johan&amp;quot;, &amp;quot;witt&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
email = name[0] + &amp;quot;.&amp;quot; + name[2] + &amp;quot;@gmail.com&amp;quot;;&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/User:VilleWitt</id>
		<title>User:VilleWitt</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/User:VilleWitt"/>
				<updated>2008-05-27T16:35:04Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: New page: '''Ville Johan Witt'''    name[] = {&amp;quot;ville&amp;quot;, &amp;quot;johan&amp;quot;, &amp;quot;witt&amp;quot;};  email = name[0] + &amp;quot;.&amp;quot; + name[2] + &amp;quot;@gmail.com&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Ville Johan Witt'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
name[] = {&amp;quot;ville&amp;quot;, &amp;quot;johan&amp;quot;, &amp;quot;witt&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
email = name[0] + &amp;quot;.&amp;quot; + name[2] + &amp;quot;@gmail.com&amp;quot;&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Denmark</id>
		<title>Openmoko Local Groups: Denmark</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Openmoko_Local_Groups:_Denmark"/>
				<updated>2008-05-27T16:31:17Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Possible Participants ===&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;
!Has Device&lt;br /&gt;
!Has Debug Board&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Miki|Mikkel Kirkgaard Nielsen]]&lt;br /&gt;
|developer; some assembly, C, some C++, Shell scripting, POSIX etc.&lt;br /&gt;
|Getting OpenMoko (and Neo1973) to rock &lt;br /&gt;
|Esbjerg, Østerbyen&lt;br /&gt;
|&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|[[ Image:MokoBox.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Mikl-dk|Mikkel Meyer Andersen]]&lt;br /&gt;
|developer; C#, C/C++ (is certainly going to be improved with this project)&lt;br /&gt;
|Location-based reminding and automatic sms answering among others&lt;br /&gt;
|Aalborg&lt;br /&gt;
|Computer science student&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|[[ Image:MokoBox.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:EsbenDamgaard|Esben Damgaard]]&lt;br /&gt;
|developer; [[Python]], C/C++&lt;br /&gt;
|Everything ;)&lt;br /&gt;
|Odense&lt;br /&gt;
|Computer science student&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:Sorenmat|Soren Mathiasen]]&lt;br /&gt;
|developer; [[Java]], C/C++&lt;br /&gt;
|Everything ;)&lt;br /&gt;
|Roskilde&lt;br /&gt;
|Software developer&lt;br /&gt;
|[[ Image:Moko.jpg |center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[User:VilleWitt|Ville Witt]]&lt;br /&gt;
|developer; Ada, [[Java]], C/C++&lt;br /&gt;
|Very interested, however awaiting FreeRunner.&lt;br /&gt;
|Naerum &amp;amp; Christiania&lt;br /&gt;
|Computer science student(DTU) and Dvorak user.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Meetings, Events ===&lt;br /&gt;
{|border=1&lt;br /&gt;
!Date&lt;br /&gt;
!Location&lt;br /&gt;
!Topic&lt;br /&gt;
!Who&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category: OpenMoko Local Groups| ]]&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Talk:Music_Player</id>
		<title>Talk:Music Player</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Talk:Music_Player"/>
				<updated>2007-03-12T00:41:40Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;([[User:ken]])&lt;br /&gt;
* Q:Does our media player support both audio and video files?&lt;br /&gt;
* Q:What kind of decoding library should be added?&lt;br /&gt;
&lt;br /&gt;
([[User:Mickey]])&lt;br /&gt;
&lt;br /&gt;
The S3C2410 is too slow to do video.&lt;br /&gt;
Audio-wise, we should limit support for the most popular formats which is&lt;br /&gt;
* mp3&lt;br /&gt;
* ogg&lt;br /&gt;
* wav.&lt;br /&gt;
We don't have an FM-Chip in the device, so I'm afraid we can't do .mid -- at least not in hardware. There are software MIDI players available, but I don't know whether this is interesting for us or not.&lt;br /&gt;
&lt;br /&gt;
The S3C2410 is too slow to do fullscreen video.&lt;br /&gt;
It is able to do halfscreen video, with the LCD stretch mode enabled&lt;br /&gt;
See [[Video Player]]&lt;br /&gt;
--[[User:Speedevil|Speedevil]] 14:33, 18 February 2007 (CET)&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Q]: At present,  we will decide what kind of third party software for media player?&lt;br /&gt;
&lt;br /&gt;
([[User:Sean|Sean Moss-Pultz]])&lt;br /&gt;
''What kind of third party software do you have in mind?''&lt;br /&gt;
&lt;br /&gt;
([[user:Alex|Alex]]) ''What about RealPlayer? It has a linux version, but for mobile phone use, the performance should be taken into consideration.''&lt;br /&gt;
&lt;br /&gt;
([[User:Sean|Sean Moss-Pultz]])&lt;br /&gt;
Unless we can't find a FOSS version, I would prefer not to use closed-source programs. Have a look at the follow:&lt;br /&gt;
&lt;br /&gt;
[http://www.mplayerhq.hu/design7/news.html]&lt;br /&gt;
[http://www.videolan.org/vlc/]&lt;br /&gt;
&lt;br /&gt;
We should check what OPIE and GPE use. [[User:Mickey]] Can you provide some feedback here?&lt;br /&gt;
&lt;br /&gt;
([[user:Alex|Alex]]) GPE and OPIE both have their own media players.&lt;br /&gt;
*GPE's NMF[http://gpe.handhelds.org/projects/GPE-media.shtml] is based on GStreamer[http://www.gstreamer.net/]. NMF can play ogg and mp3 files.&lt;br /&gt;
*OPIE's opie-mediaplayer2[http://zaurus.logix.cz/ipkg/detail.xp?package=opie-mediaplayer2] It plays mp3, mpeg, wav, ogg, quicktime, divx and more. Also it is streaming capable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Q] In &amp;quot;Playback Mode&amp;quot; section it says &amp;quot;15) Panning -- realtime updated when panning wheel been rotated.&amp;quot;  The panning wheel isn't mentioned anywhere else.  Is it another option for objects 5 and 6?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[Q] '''12) Repeat''' -- Repeats the current track.&amp;lt;br&amp;gt;Is most player, repeat doesn't repeat the current track.  It repeats the playlist (it starts playback from the beginning of the playlist after the last song in the list is played). Does this player's repeat do it differently than other players?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Q: On the repeat button as well: I'd like to see a function where it repeats the current track once and then advances in the playlist afterwards. Maybe you could have the repeat button toggle its function with each tap - e.g. repeat all -&amp;gt; repeat current -&amp;gt; repeat current once -&amp;gt; repeat off -&amp;gt; ... [[User:Abraxa|Abraxa]] 01:51, 18 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
Is this Music Player a MPD-client (MPC)? That would be nice... However - all basic, &amp;quot;preloaded&amp;quot; software, should take speed into consideration...&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	<entry>
		<id>http://wiki.openmoko.org/wiki/Talk:Screen_Saver</id>
		<title>Talk:Screen Saver</title>
		<link rel="alternate" type="text/html" href="http://wiki.openmoko.org/wiki/Talk:Screen_Saver"/>
				<updated>2007-03-12T00:34:33Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im not sure if [[Wishlist:Standby_clock]] should be merged with this page. As the ideas seam to be more or less the same. ;)&lt;br /&gt;
--[[User:C7|C7]] 05:09, 10 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
I beleave &amp;quot;screen saver&amp;quot; is a wrong name - except if it is to save the screen! Call it other things please!!! &amp;quot;Info screen&amp;quot;, &amp;quot;Rapid info/data&amp;quot;, etc... I beleave it is easier to change early in the development, rather than later!&lt;/div&gt;</summary>
		<author><name>VilleWitt</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-03-12T00:12:12Z</updated>
		
		<summary type="html">&lt;p&gt;VilleWitt: /* Accelerometer */&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;
* A camera that is able to take reasonable quality video and pictures is something many want. Applications vary from simple snapping, to gesture interfaces, video conferencing, barcode reading and more.&lt;br /&gt;
&lt;br /&gt;
* Some people can't take cameras into work - a model without the camera, or some way of removing the camera would be useful.&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;
*For a cheap, and therefore frequent, access to the global IP Network is vital to a community collaboratively developing such a nice piece of truly open hardware and software.. eg. to share source code and compiled applications directly, and to carry out world wide, community-based communication tests.&lt;br /&gt;
*For an affordable Mobile device supporting popular instant messengers over cheap connection would be an irresistible market attractive. Just think about how much this would revolutionize the way people communicate in their WiFi served office area.&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;
Game buttons would be extremely great especially on both sides of the screen. The larger the buttons, the better. 2x 4 buttons in up-down-left-right configuration + some extra buttons separately a bit lower on the device would be extremely great for emulation games.&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;
*[[Wishlist:Dynamic Screen Orientation|Dynamic Screen Orientation]]&lt;br /&gt;
&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;
***GPS uses alot of power and GPS signal can be lost. --[[User:VilleWitt|VilleWitt]] 01:10, 12 Marts 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
*Shake mitigation when using the camera (wish list item #1).  How many of us end up with blurry pictures because we can't hold the phone steady?&lt;br /&gt;
**An accelerometer is not a gyroscope. You can't tell orientation generally from acceleration, only which way 'down' is, which does not help for side-side motion, as the phone can spin around the direction of gravity without any acceleration. Up and down tilting is slightly easier, but it's very hard to determine between shaking of the phone in an up and down axis, and   tilting the phone in an up and down axis.&lt;br /&gt;
***There are a number of three-axis accelerometer chips on the market. These will be capable of determining most movements. I.e. accelerations in all directions and rotation (change in direction of gravity). Some related research has already been carried out (when three-axis accelerometers were not commonly available, instead using 2 two-axis devices) which shows these kind of movements can be tracked [http://eis.comp.lancs.ac.uk/fileadmin/eis/publication/2004-Towards-Playful-UI.pdf]. [[User:Mwelchuk|Mwelchuk]] 11:02, 26 February 2007 (CET)&lt;br /&gt;
*** 3 axis accelerometer does _not_ give orientation information. It gives direction in which the current acceleration is. There are 3 variables to orientation - roll, pitch, yaw, and only two independent outputs from the accelerometer (tilt in two axes at 90 degrees). To get these, you have to assume no acceleration, which is not the case in a shaking hand. Two 2-axis accelerometers, one on either side of the device, do give this information, or at least enough to use the device as a steering wheel. If you place them like this and tilt the device the 2 accelerometers will give opposite readings, if you move the device (translation) they will give the same readings. Simple, no ?&lt;br /&gt;
*** The tilt information you get cannot be separated from shaking the phone. &lt;br /&gt;
*** Yes it can, just dampen with a filter&lt;br /&gt;
*** Consider you are sitting down in a chair. You know which way down is. You cannot, without further information tell if you are spinning round. Down does not move. &lt;br /&gt;
*** Obviously it does move : action-reaction : say down is a vector G. If you spin direction D is the tangent to the spinning circle. This tangent will be added to G, and this is the value the accelerometer returns. So you will measure G+D. Knowing this you can easily determine D, as you always measure G somewhere in the accelerometer.&lt;br /&gt;
&lt;br /&gt;
IBM's thinkpad laptops have a demonstration program that actually does this, so obviously it is possible.&lt;br /&gt;
--[[User:Speedevil|Speedevil]] 14:10, 26 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
===SIR/FIR transceiver (Serial Infrared)===&lt;br /&gt;
*An infrared tranceiver is cheap, small, and useful for sync with many laptops and mobile phones. A learning infrared remote is another application.&lt;br /&gt;
*Tt could be used to detect when to turn off the display (if the low power IR signal is reflected) and activate the key lock.&lt;br /&gt;
*FIR would be a nice option, as it's some 40 times faster than SIR.&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;
[[Wishlist:Spell_weaving]]&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;
===EDGE support===&lt;br /&gt;
&lt;br /&gt;
EDGE support would allow better transfer rates than non-EDGE 2G, which is limited around 5 kB/s, thus enabling a real internet connectivity for the use of (mostly geographical-based) web services.&lt;br /&gt;
&lt;br /&gt;
===HSDPA support===&lt;br /&gt;
[http://en.wikipedia.org/wiki/HSDPA HSDPA] is currently the most popular 3G Mobile Telephony Network Protocol in Southeast Asia. It runs at a theoretical 384kbps uplink / 1.6mbps downlink.&lt;br /&gt;
&lt;br /&gt;
A thought: is HSDPA worth doing while we're also going for Wifi / WiMax / WiBro? And another: is doing Wifi / Wimax / WiBro worth it considering low deployment in Asia? How 'bout doing both Wifi and 3G, is it worth it or not?&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 ===&lt;br /&gt;
* USB 2.0&lt;br /&gt;
* Powered&lt;br /&gt;
** Power is a scarce resource in a mobile device as it stands. Why would anyone expect a '''powered''' USB port on a smartphone?! &lt;br /&gt;
--[[User:Csdexter|@Dexter]] 13:17, 28 February 2007 (CET)&lt;br /&gt;
***Simply because pocket space is also a scarce resource. Being able to plug in for a moment a camera, flash reader, or ... is a valuable thing. Also, many powered hubs will not recognise a totally unpowered host.&lt;br /&gt;
* OTG (is this maybe supported already ?)&lt;br /&gt;
* Bootable USB device emulation: the possibility to boot any computer on a bootable flagged partition of the transflash&lt;br /&gt;
&lt;br /&gt;
===UMTS support===&lt;br /&gt;
&lt;br /&gt;
===Speakerphone===&lt;br /&gt;
* The Neo1973 already supports that in hardware (routing GSM audio to the loudspeakers). Could someone delete this wishlist item then? --[[User:Csdexter|@Dexter]] 13:14, 28 February 2007 (CET)&lt;br /&gt;
* Unfortunately, speakerphone is more than simply connecting the speakers to GSM audio, it's also echo cancellation, and eliminating the feedback that will otherwise happen between the speakers and the mic.&lt;br /&gt;
&lt;br /&gt;
===Special covers===&lt;br /&gt;
* A standard slip-on or clip-on template (possibly with buttons) to make the touch-screen blind accessible&lt;br /&gt;
* Small metal frame for protection (like Siemens M65, only with more style)&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;
===HMD===&lt;br /&gt;
Possiblity to use something like [http://www.aeinnovations.com/projects/ver0/ Eyeglass Mounted Display].&lt;br /&gt;
&lt;br /&gt;
===EPD===&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;
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;
===Thermometer===&lt;br /&gt;
An electronic thermometer might become handy for some users.&lt;br /&gt;
&lt;br /&gt;
There are very small [[I2C]] devices available, that could easily integrate to the existing bus. For example [http://focus.ti.com/docs/prod/folders/print/tmp100.html this one from ti].&lt;br /&gt;
&lt;br /&gt;
===I2C breakout===&lt;br /&gt;
[[I2C]] is an internal bus in the phone. This is a simple bus, with only 2-3 wires, hence ideal for making accessible to those making add-ons, as it is low powered, and can be daisy-chained. It would be  a great candidate to bring out into the [[Expansion Back]].&lt;br /&gt;
&lt;br /&gt;
Readily available [[I2C]] chips range from temperature sensing, digital input/ouput chips, to 1-wire bridge chips (which is designed for external switches, ID, sensing, ...)&lt;br /&gt;
&lt;br /&gt;
===Finger print sensor===&lt;br /&gt;
Fingerprint sensor gives easy and fast access to the phone, could lock the touchscreen etc. An example of this device can be found at [http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/SY_BrowseCatalog-Start?CategoryName=cpu_VAIONotebookComputers_UX_Series&amp;amp;Dept=computers Sony UX17].&lt;br /&gt;
&lt;br /&gt;
As these are typically implemented with a small camera (256*4) focussed on the finger, with appropriate hardware and software, you can also use them as an optical mouse in reverse, detecting movement of the finger over the sensor.&lt;br /&gt;
&lt;br /&gt;
===Trackball===&lt;br /&gt;
A trackball would provide an efficient mouse-like interface in a very compact package.  As exemplified in the newer Blackberry&amp;amp;reg; models.&lt;br /&gt;
&lt;br /&gt;
===Analog Joystick===&lt;br /&gt;
How 'bout an analog joystick, gaming-console style, instead of a D-Pad or a trackball?&lt;br /&gt;
&lt;br /&gt;
Or how 'bout a [http://www.extremetech.com/article2/0,1697,1772689,00.asp Rollermouse]-like device? But do we need any of this, considering the touchscreen?&lt;br /&gt;
&lt;br /&gt;
--[[User:Lemi4|Lemi4]] 19:03, 11 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
===Laser Pointer===&lt;br /&gt;
Include a built in laser pointer.  Everything is better with lasers.&lt;br /&gt;
&lt;br /&gt;
==Ideas that will probably never be implemented==&lt;br /&gt;
[[Wishlist:Unlikely]]&lt;/div&gt;</summary>
		<author><name>VilleWitt</name></author>	</entry>

	</feed>