linux内核编译问题
来源:互联网 发布:凶宅笔记知乎 编辑:程序博客网 时间:2024/05/17 14:29
1 内核编译命令
编译非压缩内核: make Image
编译压缩内核: make zImage
编译可被u-boot支持的内核: make uImage
最后生成的内核都在 $(src_tree)/arch/arm/boot目录下
2 make uImage
需要使用u-boot提供的mkimage工具,把这个文件拷贝到/usr/bin或/bin目录下
,否则会有“mkimage找不到”的错误。
makeimage软件内部使用了mmap()函数,这个函数对NTFS文件系统中的文件操作时会失败(使用的是Fedora Core 7,不知道别的linux版本是否也一样),显示“不能映射文件”错误。所以最好不要在NTFS文件系统上构建内核,或者把内核编译过程中生成的zImage拷贝到非NTFS文件系统上,再调用mkimage处理。
一个比较好的解决方案是修改$(src_tree)/arch/arm/boot/Makefile中产生uImage的部分:
$(obj)/uImage: $(obj)/zImage FORCE
$(call if_changed,uimage)
@echo ' Image $@ is ready'
方法一:使用Image
# Method 1 : Image->gzip->add u-boot header
$(obj)/uImage: /tftpboot/u9260.img
/tftpboot/u9260.img: $(obj)/Image FORCE
cat $< | gzip -9 > $(obj)/Image.gz
mkimage -A arm -O linux -T kernel -C gzip -a $(LOADADDR) -e $(LOADADDR) \
-n 'Linux-$(KERNELRELEASE)' -d $(obj)/Image.gz $@
rm -f $(obj)/Image.gz
@echo ' Image $@ is ready'
方法二:使用zImage
# Method 2 : zImage->add u-boot header
$(obj)/uImage: /tftpboot/u9260.img
/tftpboot/u9260.img: $(obj)/zImage FORCE
$(call if_changed,uimage)
@echo ' Image $@ is ready'
3 EABI
使用AT91SAM9260EK的缺省配置编译内核,制作根文件系统,下载到AT9260单板,启动过程中出现“kernel panic: not syncing attempted to kill init”信息,然后死机。
经检查发现,ramdisk挂载正常,很可能是busybox执行失败。
怀疑是共享库的问题,将busybox静态编译链接,故障依旧。
换用一个老版本的根文件系统映象,可以正常启动。
后来上网搜索了一些相关信息,找到了解决问题的途径。 原因在于:编译内核和busybox使用的编译器是arm-linux-gcc 4.3.2,而这个编译器默认是打开“EABI选项”的,这样编译出来的busybox就是EABI的。但是内核编译的时候,默认是把“EABI选项”关掉的。所以busybox和内核无法正常配合。把“EABI选项”打开,重新编译内核后,一切正常。
- linux内核编译问题
- linux内核编译问题
- Linux-0.11内核编译问题
- 编译Linux内核问题收集与总结
- 编译linux内核容易忽略的问题
- linux内核编译遇到的问题总结
- 编译linux内核遇到的问题
- linux-3.5内核编译失败的问题
- Linux内核:编译内核
- 【LINUX内核】LINUX内核编译
- Tiny6410 编译linux内核的问题(Linux-2.6.38)
- Linux编译内核遇到找不到linux/limits.h的问题
- 【嵌入式Linux】[内核编译]:内核编译时出现的问题:undefined reference to `__gnu_mcount_nc'
- linux 内核编译:内核配置原理与常见配置问题的解决方法&&内核版本控制解析
- linux 内核编译:内核配置原理与常见配置问题的解决方法&&内核版本控制解析
- 内核编译问题详解
- 今天编译内核问题
- 内核编译问题详解
- web弹出窗体之间的操作
- 第二部分 关于Cassandra1.0.x节点间通讯《草稿》
- 文件的上传和下载(一)
- Linux内核中的红黑树
- Windows7下Qt开发环境搭建
- linux内核编译问题
- 最长公共子串LCS plus 空间复杂度优化版
- linux源代码包(.tar.gz)制作
- Mysql float类型where 语句判断相等问题
- 项目层循环引用导致无法更新dll
- Adobe AIR 3在iOS上图形宣染的效能较AIR 2.7.1提升了约7%
- H264中参考帧安排
- 申请企业级IDP、真机调试、游戏接入GameCenter 指南、游戏接入OpenFeint指南
- 男人不知道女人的16件事