Pre-ci test passed git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4000 818b1a75-f10b-46b9-bf7c-635c3b92a50f
129 lines
5.0 KiB
Plaintext
Executable File
129 lines
5.0 KiB
Plaintext
Executable File
Until Mobile IPv6 extensions are integrated in the mainline kernel,
|
|
you may have to replace your kernel with one that has Mobile IPv6
|
|
support. This involves downloading kernel source and the
|
|
modifications to support Mobile IPv6, and patching, configuring,
|
|
compiling and last installing the new kernel in your system.
|
|
|
|
If you have never patched or compiled a Linux kernel, you should take
|
|
a look at the Kernel HOWTO or Kernel Rebuild Guide available through
|
|
the Linux Documentation Project's site (http://www.tldp.org/). Be
|
|
careful, you can render your system unbootable quite easily.
|
|
|
|
Kernel patches usually only work for the exact kernel version they
|
|
were made for. Therefore, you should not try to use mismatching
|
|
kernel and patch versions (unless you know what you are doing, and are
|
|
prepared to fix possible conflicts).
|
|
|
|
All that said, here follows the instructions.
|
|
|
|
|
|
1. Check if your current kernel supports Mobile IPv6 extensions. To
|
|
do this we have provided a shell script to check it for you. Just
|
|
run:
|
|
|
|
./chkconf_kernel.sh
|
|
|
|
This depends on /proc/config.gz to be available. It may tell you
|
|
one of three things: 1) your kernel does not support
|
|
/proc/config.gz, 2) your current running kernel does not support
|
|
MIPv6 extensions, or 3) your current kernel supports everything we
|
|
need. If the answer was three, you are very lucky and can just
|
|
skip rest of this document. Otherwise, proceed to the next step.
|
|
|
|
2. Check if your current kernel sources support Mobile IPv6
|
|
extensions. Again, you can use the same tool as in the previous
|
|
section. Now you just have to locate your kernel sources (usually
|
|
in /usr/src/linux) and supply that path to the script:
|
|
|
|
./chkconf_kernel.sh /usr/src/linux
|
|
|
|
Now the script will tell you: 1) if support for Mobile IPv6 is
|
|
present or not, and 2) if it has been properly configured. If
|
|
support is there and it has been configured (and you know these
|
|
settings where used for your running kernel), again you are lucky
|
|
and may skip rest of this document. If the support was found, but
|
|
not configured, skip to step 5. For most of us, just continue on.
|
|
|
|
3. Get the latest Mobile IPv6 kernel patch. Download the latest patch
|
|
from http://www.mobile-ipv6.org/. The patch will have a version
|
|
number that tells which kernel version it was built for. As said
|
|
before, you really should use that kernel version only.
|
|
|
|
Next you should get a fresh kernel source tree. Usually, you
|
|
should not use the kernel tree that came with your distribution,
|
|
since distributors often apply their own patches to the tree, which
|
|
might make it incompatible with the Mobile IPv6 patch. Safest way
|
|
is to get your kernel source from kernel.org or some other reliable
|
|
source. Grab a source tree that has matching version number with
|
|
the Mobile IPv6 patch.
|
|
|
|
4. Unpack kernel source tree and patch the kernel tree. Once you've
|
|
unpacked the source tree, change to the source tree's root
|
|
directory (e.g. /usr/src/linux). Apply the Mobile IPv6 patch
|
|
(replace mipv6-patch.gz with the actual path of the patch file you
|
|
downloaded earlier):
|
|
|
|
zcat mipv6-patch.gz | patch -p1
|
|
|
|
You should get information about the patching process, but no error
|
|
messages. If no errors appeared, you are all done here and can
|
|
proceed to the next step.
|
|
|
|
5. Now your kernel tree is ready for configuration. You may want to
|
|
copy your old .config from an old kernel source tree (or even
|
|
/proc/config.gz, if supported) to keep other configuration options
|
|
the same as before. Run your favorite 'make *config' (e.g. make
|
|
menuconfig). Make sure you have at least the following options
|
|
set:
|
|
|
|
CONFIG_EXPERIMENTAL=y
|
|
CONFIG_SYSVIPC=y
|
|
CONFIG_PROC_FS=y
|
|
CONFIG_NET=y
|
|
CONFIG_INET=y
|
|
CONFIG_IPV6=y
|
|
CONFIG_IPV6_MIP6=y
|
|
CONFIG_XFRM=y
|
|
CONFIG_XFRM_USER=y
|
|
CONFIG_XFRM_SUB_POLICY=y
|
|
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=y
|
|
|
|
The Home Agent and Mobile Node also need:
|
|
|
|
CONFIG_IPV6_TUNNEL=y
|
|
CONFIG_IPV6_ADVANCED_ROUTER=y
|
|
CONFIG_IPV6_MULTIPLE_TABLES=y
|
|
|
|
The Mobile Node also needs:
|
|
|
|
CONFIG_IPV6_SUBTREES=y
|
|
|
|
For some additional movement indicators on the Mobile Node you may set:
|
|
|
|
CONFIG_ARPD=y
|
|
|
|
For IPsec support you need at least:
|
|
|
|
CONFIG_INET6_ESP=y
|
|
|
|
If you plan to use IPsec tunnel mode you need:
|
|
|
|
CONFIG_NET_KEY=y
|
|
CONFIG_NET_KEY_MIGRATE=y
|
|
|
|
Do not turn CONFIG_IPV6_MIP6_DEBUG on, unless you are specifically
|
|
debugging the Mobile IPv6 extensions in the kernel. This options
|
|
will degrade system performance and swamp you with too many debug
|
|
messages.
|
|
|
|
If you are unsure you got everything right, you can check your
|
|
configuration with the tool used in steps 1 and 2.
|
|
|
|
./chkconf_kernel.sh /usr/src/linux
|
|
|
|
Fix any warnings and proceed to the next step.
|
|
|
|
6. Compile and install the kernel. Proceed with the user space
|
|
installation described in INSTALL. Be sure to reboot to your new
|
|
kernel before trying to run the user space daemon.
|