QQme 发表于 2003-5-5 18:48:24

内核编译错误??!!

我的redhat 6.2
按支持移动IP的patch
如 patch -p1 <mip-kernel-2.2.14.patch
然后在配置中按说明要求选了networking options中的以下选项加入内核编译
@Mobile IP support
@IP:advanced router
@IP :tunneling
@Kernel/User netlink socket
@Routing messages

在make bzImage后出现错误提示:
net/network.a(ipv4.o):In function 'mip_config':
ipv4.o(text+0x21a2d):undefined reference to 'init_mpt'
make :*** Error 1

给个提示,怎么解决? 各位大侠救命啊!

keenor 发表于 2003-5-5 21:24:13

是连接错误,不是编译错误
你先看看内核版本和patch版本是否一致
我觉得你不应该使用红帽提供的内核原代码,而应该到kernel.org上下载一个内核原码(按照cheungming老大的说法就是vanilla kernel),再用与这个内核原码版本相同的patch
红帽的kernel是红帽自己改过的,所以在上面打你找来的patch恐怕有问题

Dragonfly 发表于 2003-5-5 22:25:04

yes, i agree with keenor,

btw, u 2.2.14 can be cut to a small size, 2xx kb is possible.

QQme 发表于 2003-5-6 06:45:51

thx

我用的内核原代码是redhat时上去的,
另外,我的patch是在我要安装的一个系统软件压缩包(MosquitoNet-MIP-2.0.2beta.tar)里提供的。patch 的安装是不是要在内核原代码目录下执行安装。

Dragonfly 发表于 2003-5-6 07:07:44

try to use kernel downloaded from www.kernel.org.
yes, the answer to u question about patch is yes

QQme 发表于 2003-5-6 09:32:36

问题依旧!!??

我在www.kernel.org下在了linux-2.2.14.tar.gz 问题依旧是
net/network.a(ipv4.o):In function 'mip_config':
ipv4.o(text+0x21a2d):undefined reference to 'init_mpt'
make :*** Error 1

我的操作是
(redhat 6.2   内核版本2.2.14-5.0)
1)下载linux-2.2.14.tar.gz (http://www.kernel.org/pub/linux/kernel/v2.2/linux-2.2.14.tar.gz)
2)解压
cd /usr/src
rm -f linux (原来linux--->linux-2.2.14)
tar -xzvf linux-2.2.14
mv linux linux-2.2.14.MIP
ln -s linux-2.2.14.MIP linux (linux-->linux-2.2.14.MIP)
3)patch
cp /usr/src/linux-2.2.14.patch /usr/src/linux
patch -p1 <linux-2.2.14.patch
4)配置
make menuconfig
5)按安装说明
cd /usr/include
rm -f asm linux
ln -s /usr/src/linux/include/asm asm
ln -s /usr/src/linux/include/linux linux

之后make dep
make clean
make bzImage
之后就出错了。
几个问题:
1)cd /usr/include
rm -f asm linux
ln -s /usr/src/linux/include/asm asm
ln -s /usr/src/linux/include/linux linux

以上有什么用? asm 和linux下是什么文件,有什么作用?
我的问题是不是出在这?
2)在make menuconfig 之前要不要进行make prpoper
make proper的作用是什么?

Dragonfly 发表于 2003-5-6 09:41:48

need not do 1) .
need not do make proper.

tell me where u download the patch. i will try it.

QQme 发表于 2003-5-6 10:03:24

1)你是说
cd /usr/include
rm -f asm linux
ln -s /usr/src/linux/include/asm asm
ln -s /usr/src/linux/include/linux linux
不用吗? 我做了也没有影响吧?
2)patch 我是在我安的软件包(MosquitoNet-MIP-2.0.2beta.tar)里提供的。

软件包目录如下:
daemons
doc
kernel--》下有patch
(linux-2.2.12.patch , linux-2.2.14.patch,linux-2.2.5.patch)
我用的是linux-2.2.14.patch, patch后在networking options多了些选项)
#是不是我要到www.kernel.org下在支持mobile IP 的patch .
scripts

Dragonfly 发表于 2003-5-6 10:07:18

why not use this with 2.4.x support http://www.cs.hut.fi/Research/Dynamics/software.html#download

QQme 发表于 2003-5-6 10:39:44

我要做毕业设计

这是老师的要求,我也没办法:
1) 理解Mobile IP 的原理,linux的使用。
2) Standford University’s MIP 实现系统的安装,运行,测试。
3) Columbia University’s Cellular IP实现系统的安装,运行,测试。
4) 对内核进行剪裁。
软件包给定了。

Dragonfly 发表于 2003-5-6 10:44:14

o, ic, but i tried it just now. my gentoo 1.4 use gcc 3.2.3. which can not compile the 2.2.14 kernel.
but do u choose config_nobile_ip in u config? i read
#ifdef CONFIG_MOBILE_IP
+ int
+ init_mpt(__u32 home_ipaddr, __u32 home_agent)
+ {
in the patch. so u have to choose that

QQme 发表于 2003-5-6 11:05:27

{in the patch. so u have to choose that}
how to choose, like follow:

我按要求在(make menuconfig)
配置中选了networking options中的以下选项加入内核编译(我把他便宜进入内核)
@Mobile IP support
@IP:advanced router
@IP :tunneling
@Kernel/User netlink socket
@Routing messages

Dragonfly 发表于 2003-5-6 11:10:23

but that is the place to define the init_mpt.

choose CONFIG_IP_MULTIPLE_TABLES and try again

QQme 发表于 2003-5-6 11:17:17

choose CONFIG_IP_MULTIPLE_TABLES and try again

怎么选?是要编辑文本吗? 编辑那个?

Dragonfly 发表于 2003-5-6 11:21:05

choose this one [*] IP: policy routing (NEW)
页: [1] 2
查看完整版本: 内核编译错误??!!