Setting up NFS

IT OS2008

This chapter shows an example of how to set up your N800/N810 as an NFS client.

These instructions are valid for IT OS2008, which was released in November 2007.

The prerequisites are:

  1. you must be able to access the device as root.
  2. repository.maemo.org is in your apt sources list.

The first requirement can be fulfilled in a number of ways (RD mode, becomeroot or openssh server). My favorite is the ssh approach, since then I can utilize my PC's keyboard for entering all the commands.

The second is achieved by adding repository.maemo.org / chinook / free non-free to the Application manager catalogue or by editing /etc/apt/sources.list accordingly.

During this process we're going to need to install a few extra packages and load some kernel modules. Once we're done, your device will be ready to do NFS mounts.

The following packages will be needed; rx-34-kernel-modules-extra, nfs-common and portmap.

  • rx-34-kernel-modules-extra contains the necessary kernel modules
  • nfs-common contains other tools
  • portmap contains the protocol port number conversion server that is needed for NFS.

This is a log of how I performed the install:

 $ ssh <device_ip> -l root
 root@<device_ip>'s password: 

 BusyBox v1.6.1 (2007-09-27 18:08:59 EEST) Built-in shell (ash)
 Enter 'help' for a list of built-in commands.

 Nokia-N810:~# apt-get install rx-34-kernel-modules-extra
 Nokia-N810:~# apt-get install portmap
 Nokia-N810:~# apt-get install nfs-common    

 # Now it's time to load the kernel modules. The order is important:
 Nokia-N810:/lib/modules/2.6.21-omap1/extra# insmod sunrpc.ko
 Nokia-N810:/lib/modules/2.6.21-omap1/extra# insmod lockd.ko
 Nokia-N810:/lib/modules/2.6.21-omap1/extra# insmod nfs.ko

 # The device is ready, now just mount your NFS partition:
 Nokia-N810:~# mkdir /mnt/mountpoint
 Nokia-N810:~# mount -t nfs <nfs_server_ip>:/some/directory /mnt/mountpoint

That should do it! For the mount to work, your NFS host needs to be configured correctly and that's out of the scope of this wiki page. Just be wary of the user id mappings etc. if you want to use the mountpoint as a non-root user.

IT OS2007

This chapter shows an example of how to set up your N800 as an NFS client.

These instructions are valid for the IT OS 2007 (version 4.2007.26-8), which was released in June 2007 for the N800 device.

The prerequisites are:

  1. you must be able to access the device as root.
  2. repository.maemo.org is in your apt sources list.

The first requirement can be fulfilled in a number of ways (RD mode, becomeroot or openssh server). My favorite is the ssh approach, since then I can utilize my PC's keyboard for entering all the commands.

The second is achieved by adding repository.maemo.org / bora / free non-free to the Application manager catalogue or by editing /etc/apt/sources.list accordingly.

During this process we're going to need to install a few extra packages and load some kernel modules. Once we're done, your device will be ready to mount NFS partitions from another computer.

The following packages will be needed; portmap, rx-34-kernel-nfs-modules, nfs-common. However, nfs-common is currently broken and it needs to be installed by hand instead of apt-get or the application manager.

  • portmap contains the protocol port number conversion server that is needed for NFS.
  • rx-34-kernel-nfs-modules contains the necessary kernel modules
  • nfs-common contains other tools

This is a recording of how I installed the packages and kernel modules:

$ ssh <device_ip> -l root
root@<device_ip>'s password: 

BusyBox v1.4.1 (2007-03-12 19:00:25 EET) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

Nokia-N800-26:~# apt-get install rx-34-kernel-nfs-modules
Nokia-N800-26:~# apt-get install portmap

# I'm installing wget just to get the nfs-common binary package to bypass
# the dependency problems with it
Nokia-N800-26:~# apt-get install wget

Nokia-N800-26:~# wget http://repository.maemo.org/pool/bora/free/binary/nfs-common_1.0.6-3.1sdk1_armel.deb
Nokia-N800-26:~# ls -l
-rw-r--r--    1 root     root        60744 Jul  4 12:30 nfs-common_1.0.6-3.1sdk1_armel.deb

# Unpack the deb file to a temporary directory
Nokia-N800-26:~# dpkg -x nfs-common_1.0.6-3.1sdk1_armel.deb nfstmp

Nokia-N800-26:~# cd nfstmp
Nokia-N800-26:~/nfstmp# ls -l
drwxr-xr-x    4 root     root            0 Aug 31 13:39 etc
drwxr-xr-x    2 root     root            0 Aug 31 13:39 sbin
drwxr-xr-x    4 root     root            0 Aug 31 13:39 usr
drwxr-xr-x    3 root     root            0 Aug 31 13:39 var

# Remove documentation to save some space on the device
Nokia-N800-26:~/nfstmp# rm -rf usr/share/man/ usr/share/doc/

# Copy the rest of the directories to root
Nokia-N800-26:~/nfstmp# cp -r etc sbin usr var /
Nokia-N800-26:~/nfstmp# cd /lib/modules/current/
Nokia-N800-26:/lib/modules/current# ls -l
-rw-r--r--    1 root     root         5922 Dec  5  2006 exportfs.ko
-rw-r--r--    1 root     root        72921 Dec  5  2006 lockd.ko
-rw-r--r--    1 root     root       263290 Dec  5  2006 nfs.ko
-rw-r--r--    1 root     root       109606 Dec  5  2006 nfsd.ko
-rw-r--r--    1 root     root       153963 Dec  5  2006 sunrpc.ko

# Now it's time to load the kernel modules. The order is important:
Nokia-N800-26:/lib/modules/current# insmod sunrpc.ko
Nokia-N800-26:/lib/modules/current# insmod lockd.ko
Nokia-N800-26:/lib/modules/current# insmod nfs.ko

# The device is ready, now just mount your NFS partition:
Nokia-N800-26:~# mkdir /mnt/mountpoint
Nokia-N800-26:~# mount -t nfs <nfs_server_ip>:/some/directory /mnt/mountpoint

That should do it! For the mount to work, your NFS host needs to be configured correctly and that's out of the scope of this wiki page. Just be wary of the user id mappings etc. if you want to use the mountpoint as a non-root user.

IT OS2006

For the 770 / maemo 2.x see HowToNFS 06.