【发布时间】:2014-08-05 17:10:46
【问题描述】:
我即将在 ARM 板 SabreLite 上实现 AODV,但遇到了一些问题。
所以,我使用位于此处 (sourceforge.net/projects/aodvuu/) 的最新版本的 AODV。我已经按照 README 文件中的说明进行操作,但最后我得到了错误:
kaodv-mod.c:22:27: 致命错误: linux/version.h: 没有这样的文件或目录 #include
由于板子使用3.0.35内核版本,我下载它,我只是在Makefile中更改内核目录。而且,它应该根据指令(http://w3.antd.nist.gov/wctg/aodv_kernel/kaodv_arm.html)正常工作。上面的错误提示我没有version.h,但是我检查了一下,我已经安装了所有的linux头文件,所以不可能。
在教程的第 6 步(README 文件)中,我没有编译内核 3.0.35,因为我非常肯定它对 AODV-UU 具有适当的 netfilter 支持,因为它是内核年轻版本。 (这实际上是内核 2.4 和 2.6 的配置建议,但我认为我不应该在这里这样做)
- 有什么办法可以解决这个问题?
- 在继续之前我真的需要编译这个内核版本(3.0.35)吗?
- 我是否必须更改 AODV 代码,如果需要,我必须修改哪些文件?
提前致谢!!!
感谢您的回复,但不幸的是,我已经这样做了。这么说,我的意思是,我选择了与目标内核匹配的内核源代码树(linux-imx6-boundary-imx_3.0.35_4.1.0)。我还设置了我的交叉编译器,让我的环境变量为交叉编译做好准备。这是输出。
echo $CC:
arm-oe-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/usr/local/oecore-x86_64/sysroots/cortexa9hf-vfp-neon-oe-linux-gnueabi
我的一些环境变量看起来像这样:
ARCH=arm
CROSS_COMPILE=arm-oe-linux-gnueabi-
CFLAGS= -O2 -pipe -g -feliminate-unused-debug-types
RANLIB=arm-oe-linux-gnueabi-ranlib
在所有这些配置之后,我仍然得到错误。我真的不认为我必须重新编译内核
【问题讨论】:
标签: c linux-kernel arm cross-compiling openembedded