forked from hugo-ma-alves/OAI-PMIPv6-FM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL.kernel
128 lines (96 loc) · 4.96 KB
/
INSTALL.kernel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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.