Linux内核编译的各种坑
来源:互联网 发布:华为防火墙开放端口 编辑:程序博客网 时间:2024/06/07 06:57
最近在进行Linux内核编译的时候遇到了很多bug。在此一一列出并给出我的解决方法,至于编译步骤什么的网上一大堆。
1.用ubuntu12编译Linux 3.8内核源码,编译成功了,但是在进行安装的时候,由于虚拟机内存才20G,直接内存塞满了。T...T,然后去扩容,直接系统崩溃,然后直接下一个最新的ubuntu16.因为老版本的是厂家给的,现在没啦。
2.于是乎,用ubuntu 16去编译Linux 3.8 内核源码,出现了‘fatal error:linux/compiler-gcc5.h:No such file’的错误,这时最好 不要去修改什么文件,因为即使你成功让这个bug消失,后面还会出现很多bug。最好的做法是去降低gcc等软件的版本。这样做的原因可以 进内核源码的Documention/Changes文件了解,里面说了该版本的源码最低要什么版本的gcc,什么版本的make,等等。
用gcc -v 看了gcc版本,当前是gcc5版本,就降低成gcc4.7。文本末尾附有有降低方法。
虽然里面没有说gcc太新行不行,但是通过本人亲自踩坑,验证确实不行。相信我,嵌入式新人肯定会遇到很多系统,软件,工具等各种版本不符的bug,所以降低gcc版本是必须的。
3.在makefile这里转了一天,然后转出去之后还不知道怎么出去的。也就是自己写的第一个版本的Makefile,找了一天的错误,就是找不出来,总是说报这个错:
M=/home/master/myfile/hello: is not a dir or file
recipe target for module failed.
最后,重新抄写一遍,居然成功了。可是和之前写的Makefile对比,并没发现问题。
降低gcc版本的方法:http://blog.csdn.net/ice_moyan/article/details/50504798
编译步骤可参考:http://www.cnblogs.com/ddk3000/p/5051081.html
这个编译步骤也有些出入,比如它里面没有make modules,又比如它修改timeout的文件根本不一样。
所以我用的是ubuntu16.04LT是下修改timeout的方法:https://www.ssdax.com/2347.html#prettyPhoto
timeout修改成功图
内核装载成功图:
驱动运行成功图:
- Linux内核编译的各种坑
- 网上找的linux内核编译各种资料
- Linux内核的编译
- Linux内核的编译
- Linux内核的编译
- linux内核的编译
- linux内核的编译
- linux内核的编译
- linux内核的编译
- 重新编译Linux内核踩的坑
- Linux内核的编译过程
- linux-2.6内核的编译
- 编译android的linux内核
- 如何编译Linux的内核
- 编译android的linux内核
- linux内核编译的实质
- Linux内核的编译控制
- 编译Linux内核的方法
- safe
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 A. Weather Patterns(阅读题)
- java 解决调用c语言实现简单HelloWorld函数生成.dll动态链接库的32位dll文件无法在64位机上运行
- stm32f4与f1底层的差异
- Luogu-3805 (Manacher 最长回文子串)(模板)
- Linux内核编译的各种坑
- 让datatable的各个字段的标题居中显示
- CCF-CSP 地铁修建 JAVA 201703-4
- python中下划线的作用
- JDOM4J读XML
- Python 基础
- 将博客搬至CSDN
- oracle中pl/sql编程(一):
- RCNN学习笔记(0)-RCNN->SPPnet->Fast RCNN->Faster RCNN