Overview
In order to operate UMIP, you need a mobility-ready kernel as well as an userland daemon. The kernel will be retrieved from the official linux kernel repository, and recompiled with the needed options. The UMIP userland will be compiled from the sources.
UMIP sources are managed with git and hosted at http://git.umip.org/. They are regularly updated with new features and bugfixes. Most of the code that we integrate to this repository comes from our repository of experimental patches. These patches would eventually find their way into the UMIP source repository once they have proved to be stable. If you have interest in using such patches, you may also consult this document.
This documentation describes how to compile a mobility-ready kernel, as well as how to retrieve the UMIP sources, compile and install them. As our source repository is frequently updated, we also propose debian packages to allow users to easily install and update the UMIP userland.
Building a Mobility-ready Kernel
You need to compile a kernel for your system. Hopefully, the IPv6 mobility support has been integrated into the kernel sources since version 2.6.26, so no patches are needed anymore on recent kernel versions.
Download the kernel sources (version >= 2.6.26) from kernel.org. For example with a 2.6.29 kernel:
# cd /usr/src/ # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.5.tar.gz
Verify the integrity of the downloaded kernel sources:
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.5.tar.gz.sign # gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E # gpg --verify linux-2.6.29.5.tar.gz.sign gpg: Signature made Mon 15 Jun 2009 09:12:59 PM CEST using DSA key ID 517D0F0E gpg: Good signature from "Linux Kernel Archives Verification Key <ftpadmin@kernel.org>"
Uncompress the sources, and create a symbolic link to the kernel sources:
# tar zxf linux-2.6.29.5.tar.gz # rm linux-2.6.29.5.tar.gz* # ln -s /usr/src/linux-2.6.29.5/include /usr/src/linux # cd linux-2.6.29.5/
You now need to edit the kernel configuration file to turn on the mobility options. If you are not familiar with kernel compilation, take a look at this kernel rebuild guide. In practice, you can simply (and usually) reuse your old running kernel configuration and then set the required mobility options:
# make oldconfig # make menuconfig
To enable the mobility features, you need to turn on the following options in the kernel:
General setup
--> Prompt for development and/or incomplete code/drivers [CONFIG_EXPERIMENTAL]
--> System V IPC [CONFIG_SYSVIPC]
Networking support [CONFIG_NET]
--> Networking options
--> Transformation user configuration interface [CONFIG_XFRM_USER]
--> Transformation sub policy support [CONFIG_XFRM_SUB_POLICY]
--> Transformation migrate database [CONFIG_XFRM_MIGRATE]
--> PF_KEY sockets [CONFIG_NET_KEY]
--> PF_KEY MIGRATE [CONFIG_NET_KEY_MIGRATE]
--> TCP/IP networking [CONFIG_INET]
--> The IPv6 protocol [CONFIG_IPV6]
--> IPv6: AH transformation [CONFIG_INET6_AH]
--> IPv6: ESP transformation [CONFIG_INET6_ESP]
--> IPv6: IPComp transformation [CONFIG_INET6_IPCOMP]
--> IPv6: Mobility [CONFIG_IPV6_MIP6]
--> IPv6: IPsec transport mode [CONFIG_INET6_XFRM_MODE_TRANSPORT]
--> IPv6: IPsec tunnel mode [CONFIG_INET6_XFRM_MODE_TUNNEL]
--> IPv6: MIPv6 route optimization mode [CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION]
--> IPv6: IPv6-in-IPv6 tunnel [CONFIG_IPV6_TUNNEL]
--> IPv6: Multiple Routing Tables [CONFIG_IPV6_MULTIPLE_TABLES]
--> IPv6: source address based routing [CONFIG_IPV6_SUBTREES]
File systems
--> Pseudo filesystems
--> /proc file system support [CONFIG_PROC_FS]
You can now proceed to the kernel compilation and installation:
# make # make install # make modules_install
Verify your bootloader configuration and reboot on your new kernel.
Building the UMIP Userland from the Sources
First, you may need additional packages to be able to compile and use UMIP. Be sure to have the following packages: autoconf, automake, bison, flex, libssl-dev, indent, ipsec-tools, radvd on your system. On a Debian operating system, you can install them with:
# apt-get install autoconf automake bison flex libssl-dev indent ipsec-tools radvd
Then, retrieve the source code from our repository:
$ cd /usr/src/ $ git clone git://git.umip.org/umip.git $ cd umip/
Provided that you have built your kernel as explained in the previous section, you can compile and install UMIP with:
$ autoreconf -i $ CPPFLAGS='-isystem /usr/src/linux/include/' ./configure --enable-vt $ make # make install
The --enable-vt option enables a virtual terminal, which can be useful to retrieve the binding cache or binding update list information on the Home Agent or the Mobile Node.
That's it! You can now configure UMIP with the help of our documentions.
Debian Packages
We provide Debian packages for UMIP as well as all the necessary files to build you own Debian packages. Check the documentation here. Note that you still need to compile a mobility-ready kernel as described in the Kernel section above.
Changelog
- 2011/03/19: Updated addresses of repo (switch from http transport to git).
- 2009/08/26: First version of this document.