免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1081 | 回复: 0
打印 上一主题 下一主题

[学习分享] linux编译内核 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-08-06 20:55 |只看该作者 |倒序浏览
前几天刚刚接触linux内核编译,现在将过程及遇到的问题与大家分享一下!

方案一:(失败)

系统:ubuntu 14.04 LTS

待编译内核: 在2.6.30基础之上修改PCI驱动及共享内存的通信方式

遇到问题:make xconfig一直不成功,无法找到libqt3-headers,libqt3-mt等等相关的软件包!

解决办法:目前没有找到解决办法

方案二:(成功)

系统:ubuntu 12.04 LTS

待编译内核: 在2.6.30基础之上修改PCI驱动及共享内存的通信方式

过程:

1、安装make xconfig所需要的相应软件包,如libqt3-headers,libqt3-mt等等,成功实现;

2、进入内核文件目录

#make mrproper

#make clean

确定该目录下没有不正确的.o文件以及文件互相依赖,并清除以前的编译记录

#make xconfig  配置编译选项,可以保存配置文件,同样也可以加载以前的配置文件

#make -j4  开始编译

gcc: 错误: elf_i386:没有那个文件或目录
make[2]: *** [arch/x86/vdso/vdso32-int80.so.dbg] 错误 1
make[1]: *** [arch/x86/vdso] 错误 2
make: *** [sub-make] 错误 2

原因是 高版本内核的gcc 4.6 不再支持 linker-style 架构。在arch/x86/vdso/Makefile 中,将以 VDSO_LDFLAGS_vdso.lds 开头所在行的 "-m elf_x86_64" 替换为 "-m64"。将以 VDSO_LDFLAGS_vdso32.lds 开头所在行的 "-m elf_386" 替换为 "-m32"。

还有一类错误类似于“ 错误: 重复的成员‘padding’”

这主要是由于高版本的gcc不再支持在同一个函数中结构体和联合出现相同名称的变量引起的,分别到对应的文件里,找到定义的结构体或者联合将其相同的变量名称任意修改掉一个就可以了。

至此,生成了相应的mlinuz文件和System.p文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP