Documentation/Maemo PC Connectivity Tutorial/File Sharing

= File Sharing =

= Disk mounting =

Maemo PC Connectivity provides some tools for easily sharing files between a Maemo device and a host PC. You can can mount the file system of a Maemo device to the host PC over a network and interact with it as it is a local disk. Also, it is possible to mount a file system of a host PC to the Maemo device. For that, you have to install Maemo PC Connectivity on the Maemo device and Host PC Connectivity on the host PC (Linux, Windows and Mac OS X).

This chapter describes how to use the disk mounting tools available with Maemo PC Connectivity. To simplify the process, it is assumed that you already have a working USB network between your Maemo device and the host PC.

The recommended tools and methods to mount the file system of a Maemo device to a host PC are listed in table 6.1.

The recommended tools and methods to mount the file system of a host PC to a Maemo device are listed in table 6.2.

On the host PC, you must type the commands below in the terminal on Linux and Mac OS X and in the Cygwin command shell on Windows.

Using SSHFS mounts
SSHFS (SSH File System) is a file system client based on the SSH protocol. It allows users to mount locally a remote file system via SSH. With SSHFS, you can remotely access the Maemo device file system from the host PC and vice versa.

If you want to mount the Maemo device file system to your host PC, you can execute the following commands.

$ mkdir ~/maemo $ sshfs user@192.168.2.15:/ ~/maemo -o rw,nonempty user@192.168.2.15's password: &lt;type user password here&gt;

If you did not set the SSH password for user yet, you can use the root account. You should set up the password for the user account by following these steps:

$ ssh root@192.168.2.15 root@192.168.2.15's password: &lt;type root password here&gt; Nokia-810:~# passwd user Changing password for user Enter the new password (minimum of 5, maximum of 8 characters) Please use a combination of upper and lower case letters and numbers. New password: &lt;type new user password here&gt; Re-enter new password: &lt;retype user password&gt; Password changed

If you want to mount the host PC file system to your Maemo device, you can execute the following commands:

$ mkdir ~/hostpc $ sshfs &lt;host_pc_user&gt;@&lt;host_pc_ip&gt;:/ ~/hostpc -o rw,nonempty &lt;host_pc_user&gt;@&lt;host_pc_ip&gt;'s password: &lt;type user password here&gt;

As SSHFS is a user mode file system, you cannot use the standard Linux mount command directly. For example, you should execute the following command to unmount the Maemo device file system from the host PC.

$ fusermount -u ~/maemo

You can configure SSH to use keys and not to ask for a password every time by exchanging the SSH keys as described in the SSH installation chapter.

Using NFS mounts
With NFS (Network File System), you can share folders from your Maemo device or host PC over a network. Below are instructions on how to share a folder from a Maemo device using NFS.

Configuring NFS for Maemo device
You should follow these steps to share a folder from your Maemo device through NFS using Maemo PC Connectivity configuration widget:


 * Run Settings - Control Panel - Connectivity - PC Connectivity Manager.
 * Click on the Advanced button.
 * Go to the Tool Manager tab.
 * Select the NFS option. After that, change the options according to your needs, figure 6.1.
 * Click on the Exported Paths button. Then add the folders to be shared, figure 6.2.
 * Click on the Allowed IPs button. Then add the host PC's IP addresses that are allowed to access the shared folders, figure 6.3.

If you want, you can share a folder from your Maemo device manually. The following steps describe how to share the folder ( /home/user/MyDocs ) from a Maemo device over a network by giving access to the host PC IP address ( 192.168.2.14 ).

Connect to the Maemo device via SSH. Edit the file /etc/exports and add the folder you want to share and set the permissions of your shares (IP addresses).

/home/user/MyDocs 192.168.2.14(rw,no_root_squash,async,no_subtree_check)

Next restart the User Mode NFS server:

$ /etc/init.d/unfs3 restart

Configuring NFS for host PC
You must follows these steps to share a folder from a host PC over a network and giving access to it for Maemo device's IP address ( 192.168.2.15 ):

Edit the file /etc/exports and add the folder you want to share and set the permissions for your shares (IP addresses).

/home/&lt;host_pc_user&gt; 192.168.2.15(rw,no_root_squash,async,no_subtree_check)

Next restart the User Mode NFS server:

$ sudo /etc/init.d/unfs3 restart

Accessing NFS shares with Maemo device
Once you configured NFS on your Maemo device, you can access the shared folders from your host PC over the network. Below are instructions on how to access the shared NFS folders from the Linux host PC.

On the host PC, run the showmount command to check if NFS sharing is working.

$ showmount -e &lt;device_ip&gt; Export list for 192.168.2.15: /home/user/MyDocs 192.168.2.14

Next mount the exported Maemo device folder from the host PC.

$ mkdir /tmp/MyDocs $ sudo mount -t nfs &lt;device_ip&gt;:/home/user/MyDocs /tmp/MyDocs

You can unmount the same folder with the following command:

$ sudo umount /tmp/MyDocs

Accessing NFS shares with Host PC
Once you have configured NFS on your host PC, you can access the shared folders from your Maemo device over a network. Below are instructions on how to access the shared NFS folders from your Maemo device.

On the Maemo device mount the shared host PC folder.

$ mkdir ~/hostpc $ mount -t nfs &lt;host_pc_ip&gt;:/home/&lt;host_pc_user&gt; ~/hostpc

You can unmount the same folder with the following command:

$ sudo umount ~/hostpc

Using Samba mounts
Samba allows file sharing between computers over the network. With Samba, you can remotely access the Maemo device file system from the host PC and vice versa. Once you have shared your file system through Samba, it is available every time you reconnect to the network.

Configuring Samba for Maemo device
To be able to share a folder from your Maemo device, you should follow these steps.


 * Run Settings - Control Panel - Connectivity - PC Connectivity Manager.
 * Click on the Advanced button.
 * Go to the Tool Manager tab.
 * Select the Samba option. After that, change the options according to your needs (Workgroup, User and Password), figure 6.4.
 * Click on the Exported Paths button. Then add the folders to be shared, figure 6.5.
 * Click on the Apply button.

You can access your host PC shared folders from your Maemo device.


 * Open the Utilities - File Manager application.
 * Click on the Shared folders option, figure 6.6.
 * Select the desired shared folder.

Configuring Samba for Linux
To be able to share a folder from your Linux host PC, you should follow these steps:


 * Open the File Manager (Nautilus).
 * Right click the folder you want to share, and select Sharing options.
 * Type the Share name and check the Guest access option, figure 6.7.
 * Click on the Create share button.

If Samba is not installed, Ubuntu requests the installation at this point. Otherwise, you can install Samba manually.

$ sudo apt-get install samba

To access a shared folder from the Maemo device using your Windows host PC.


 * Open the File Manager (Nautilus) and type: smb://&lt;maemo_device_ip&gt;, figure 6.8.
 * Press Enter.

Configuring Samba for Windows
To be able to share a folder from your Windows host PC, you should follow these steps.


 * Open the File Manager (Windows Explorer).
 * Right click the appropriate folder, and then click Sharing.
 * In the folder's properties, click Share this folder. Use the default name for the share.
 * Click the Permissions button to change permissions according to your needs.

To access a folder shared from your Maemo device, you need to do the following on your Windows host PC:


 * Click Start, and then click Run.
 * Type your Maemo device IP address as follows: &lt;maemo_device_ip&gt;.
 * The shared folders of your Maemo device are shown.

Configuring Samba for Mac OS X
To be able to share a folder from your Mac OS X host PC, you should follow these steps:


 * Go to System Preferences and click on the Sharing icon.
 * Select the File Sharing service.
 * Add a folder you want to share, and then set the permissions for it, figure 6.9.

To access a folder shared from a Maemo device you need to do following on your Mac OS X host PC.


 * Go to the File Manager application (Finder).
 * With the Finder open, click on the Go menu and select the Connect to Server option.
 * Type your Maemo device IP address as follows: smb://&lt;maemo_device_ip&gt;, figure 6.10.
 * Click on the Connect button.

= File transfer =

You have several different ways to transfer files between a Maemo device and a host PC using tools provided by Maemo PC Connectivity. First, you have to install Maemo PC Connectivity to the Maemo device and Host PC Connectivity to the host PC (Linux, Windows and Mac OS X). Below describes how to use specific file transfer tools available from the Maemo PC Connectivity product. To simplify the process, it has been assumed that you already have a working USB network configured between the Maemo device and host PC.

On the host PC, you must type the commands below using terminal on Linux and Mac OS and using Cygwin command shell on Windows.

Using SCP
With SCP (Secure Copy), you can securely transfer files between a local and a remote host or between two remote hosts, using the SSH protocol. Below describes in detail how to transfer files between the Maemo device and host PC using SCP.

You should follow the SCP command examples below to transfer files from a local to a remote host:

$ scp &lt;source_file&gt; &lt;user&gt;@&lt;host_name&gt;:&lt;path&gt;/&lt;target_file&gt;

For example, if you want to transfer a file called file.txt from a host PC to a Maemo device, you should use this command on the host PC:

$ scp file.txt root@192.168.2.15:/etc/file.txt

You should follow this SCP command example to transfer files from a remote to a local host:

$ scp &lt;user&gt;@&lt;host_name&gt;:&lt;path&gt;/&lt;source_file&gt; &lt;target_file&gt;

For example, if you want to transfer a file called file.txt from a Maemo device to a host PC, you should use this command on host PC:

$ scp root@192.168.2.15:/etc/file.txt file.txt

You can use ssh-key-exchange as described in the SSH installation chapter to avoid SSH requiring a password every time.

Using SFTP
After Maemo PC Connectivity has been installed to the Maemo device, your Maemo device folders can be accessed from a host PC using the SFTP client. If you also installed Host PC Connectivity your host PC already has a GUI-based SFTP client, FileZilla, installed. Therefore to access your Maemo device folders from the host PC through SFTP, simply follow these steps.

Run the FileZilla client, figure 6.11.


 * Linux - Ubuntu: Applications - Internet - FileZilla FTP Client.
 * Windows: Start - Programs - FileZilla FTP Client - FileZilla.
 * Mac OS: /Applications/FileZilla.


 * Type the IP address of your Maemo device in the Host field.
 * Type your Username and Password to set up the SSH connection on your Maemo device and type 22 (for SSH) in the Port field.
 * Click on the Quickconnect button. Your Maemo device folders will appear in the Remote Site area.

Using Rsync
As Maemo PC Connectivity and Host PC Connectivity products installs Rsync for your environment, you can incrementally transfer files and directories between a Maemo device and a host PC. You can send and receive files in such a way that only the changed bytes inside files are copied between the Maemo device and the host PC. Rsync also removes files from target folders if those files were deleted from the source folders in order to keep both folders in sync. You can find usage examples and documentation about Rsync from the Rsync web page.

Rsync is a much more powerful tool than standard SCP, SFTP or disk mounts to back up or synchronise large files (such as music, pictures, maps and movies) between a Maemo device and a host PC.