标题:
一套完整的ARM交叉编译环境的搭建过程(2)
[打印本页]
作者:
yuyang911220
时间:
2014-8-28 17:08
标题:
一套完整的ARM交叉编译环境的搭建过程(2)
三、安装内核头文件
将Linux内核源码解压至$PRJROOT/kernel目录,然后建立几个文件的符号链接,最后生成version.h文件。实例:
首先解压Linux内核源文件
root@fedora:/opt/embedded/kernel# cp /mnt/hgfs/Document/linux-3.2.12.tar .
root@fedora:/opt/embedded/kernel# tar -xvf linux-3.2.12.tar
root@fedora:/opt/embedded/kernel# mkdir /opt/embedded/tools/arm-linux
root@fedora:/opt/embedded/kernel# mkdir /opt/embedded/tools/arm-linux/include
root@fedora:/opt/embedded/kernel# ln -s /opt/embedded/kernel/linux-3.2.12/include/linux /opt/embedded/tools/arm-linux/include/linux
root@fedora:/opt/embedded/kernel# ln -s /opt/embedded/kernel/linux-3.2.12/include/asm-generic /opt/embedded/tools/arm-linux/include/asm-generic
root@fedora:/opt/embedded/kernel# ln -s /opt/embedded/kernel/linux-3.2.12/arch/arm/include/asm /opt/embedded/tools/arm-linux/include/asm (也可能是是asm-arm,示内核版本而定)
下面检查上面创建的符号链接是否正确。实例:
root@fedora:/opt/embedded/kernel# cd /opt/embedded/tools/arm-linux/include/
root@fedora:/opt/embedded/tools/arm-linux/include# ll
asm -> /opt/embedded/kernel/linux-3.2.12/arch/arm/include/asm/
asm-generic -> /opt/embedded/kernel/linux-3.2.12/include/asm-generic/
linux -> /opt/embedded/kernel/linux-3.2.12/include/linux/
有如上结果表示符号链接创建正确。
root@fedora:/opt/embedded/kernel/linux-3.2.12#make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig *配置(注意:arm-linux- 与menuconfig之间有一个空格)*
//在随后出现的文本菜单进行配置、配置完退出并保存。若要设置某个选项,可将光标定位在该项上,按回车键。对于前面有[]或者<>的,可以按空格键显示所包含的子选项。
注意在选项System Types中选择正确的硬件类型。配置完退出并保存(Exit Yes)。
最后生成version.h文件。实例:
root@fedora:/opt/embedded/kernel/linux-3.2.12# cd /opt/embedded/kernel/linux-3.2.12/
root@fedora:/opt/embedded/kernel/linux-3.2.12# make include/linux/version.h
CHK include/linux/version.h
UPD include/linux/version.h
接着进入相应目录查看version.h文件是否建立成功。
注:上述的做法理论上没什么问题,但实际操作时,如果用其他版本的linux内核可能会出现头文件包含不全的情况,这会直接导致后面编译glibc时出现未定义、未声明、缺少头文件(如asm/unistd.h)的错误。如果可能的话,建议按上述操作直接copy好用的其他交叉编译工具链中的asm-arm、asm-generic、linux目录。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0