View source for File transfer

From Openmoko

Jump to: navigation, search

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Administrators.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page:

Template used on this page:

Return to File transfer.

Personal tools

The Openmoko hardware and software offer several ways to transfer files to and from the system.


Examples use the IP address of the default USB network setup on Om 2008.8. If you use a different connection, for example Wifi, use the Wifi IP address of the phone.

copy a file from Openmoko smartphone to to PC type this on your PC:

scp root@ .

from phone's /home/root you can use shorter format:

scp root@ .

to copy file to the SD card in phone type this on your PC:

scp filename root@

to recursively copy a directory to the phone, use -r:

scp -r somedirectory root@

For convenience, add this to your ~/.ssh/config, then you can replace root@ with moko. This also works for sshfs.

Host: moko
	User: root


You can use sshfs to mount directories on your Openmoko smartphone into directories on your desktop computer. Sshfs uses and fuse, so you need to have access to /dev/fuse by adding yourself to the fuse group.

  • Ensure sshfs is installed.
$ sudo apt-get install sshfs
  • Ensure the fuse module is loaded. (Should already be running in ubuntu).
$ lsmod | grep fuse
  • If not just do the following,
$ sudo modprobe fuse
  • Add user to fuse group replacing username with whichever username you need.
$ sudo adduser username fuse 

This Makefile makes it very easy to mount and umount sshfs.

# Usage: set the three vars here and then type 
# make moko
# that will create "moko" in the current dir and mount the specified path
# You need sshfs installed and your user added to "fuse" group on your PC.
mokocard_p=/media/card     # host or ip
# to specify a user, add $USER@ or add appropriate line in ~/.ssh/config
#remote_p=/path/to/mount  # uses home if left empty

	mkdir -p $(PWD)/$*
	sshfs -C -o reconnect -o idmap=user $($*_h):$($*_p) $(PWD)/$* || rmdir $(PWD)/$*

# makes symlinks appear as real files/dirs, can be useful sometimes
	mkdir -p $(PWD)/$*
	sshfs -C -o reconnect -o idmap=user -o follow_symlinks $($*_h):$($*_p) $(PWD)/$* || rmdir $(PWD)/$*

# "make moko-" unmounts
	-fusermount -u $(PWD)/$*
	rmdir $(PWD)/$*
Originally created by Zash for convenient web server access.

Type make moko to mount and make moko- to umount, once you have USB_Networking set up.


client ('tftp')



client (on Neo: 'mount -t nfs ...' or edit /etc/fstab and '/etc/init.d/ start')

My Neo didn't have a mount.nfs(4), although it did have nfs in the /proc/filesystems. `opkg list | grep nfs` also had nothing. Here is how I how my NFS:

Find nfs-common for armel (not just 'arm') here:
Download and install it on the Neo like this:
 cd /tmp
 ar -x nfs-common_* nfs-common_.tar.gz
 tar -xz -C / -f nfs-common_.tar.gz
 rm -f nfs-common_*
 cd -

Now you can mount.nfs4 as normal. Note that the above also installs manpages and nonsense. Also, since we didn't use the real APT or dpkg tools (because they're not part of OpenEmbedded), this doesn't authenticate packages.

server: man 5 exportfs


client (on Neo: 'wget',web browser)


It is possible to write data to micro SD on a desktop machine with the suitable writer and then have it accessible from inside the Openmoko after the card is inserted into that device. To get this working, the micro SD must be formatted in some filesystem that both Openmoko and host understand (ext2, for instance).

The problem with this approach is that micro SD is difficult to access in the Neo. Both battery and even SIM card must be removed to reach it.


SFTP can be an excellent way to transfer files as it is supported by many possible clients on the desktop machine. After USB network is set up, it is possible to try to open sftp connection by entering sftp:// or sftp://{username}:{password}@ into the address bar of the browser that supports sftp.

You can also use the sftp console client under Linux or something like psftp.exe, the sftp client that goes with PuTTY for Windows.

Name and password is the same as for normal logins (root and no password by default).


FTP is currently considered insecure. There is no any reason to use FTP, SFTP should be used instead.

(But wait, if one's network is just the desktop and the phone, aren't all the encrypted methods a little wasteful?)

USB Mass Storage

The Freerunner can be configured to appear as a USB mass storage device to the desktop. see Using the Neo as a Mass storage device.

Common methods not supported

  • Bluetooth (except via other network methods)