Ubuntu18.04编译 Linux 2.6.32总结及问题汇总

1. 生成配置文件

使用make defconfig来使用缺省的配置生成.config文件,然后使用make menuconfig进行特定的配置

使用make oldconfig来更新和验证配置

2. 编译

make -j32 > /dev/null

多核编译,同时过滤掉不必要的信息

3. Ubuntu18.04编译安装 Linux 2.6.32问题解决汇总

环境: X86,  Ubuntu18.04,  gcc7 (默认)

1. 找不到complier-gcc7.h

原因: Linux2.6属于老版本内核, 与新版gcc不适配, 直接原因是没有这个文件,只有gcc4和gcc3,于是另外再安装gcc4, 注意无需卸载gcc7, 切换即可

1. sudo apt-get install gcc-4.8 g++-4.8

2. ls /usr/bin/gcc*

3. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100

4. sudo update-alternatives --config gcc

最后使用查看是否操作成功

5. gcc --version

以上是gcc的操作方法,g++同理,

2. make[1]: *** [kernel/timeconst.h] Error 255

根据提示将相应文件中的相应行的 defined()删除即可

3. gcc: error: elf_x86_64: No such file or directory

-m elf-x86_64改成-m64, -m elf-x86改成-m32

4. error: code model kernel does not support PIC mode

这是由于不支持地址无关模式,在 Makefile这段的最后加上-fno-pie即可

 344 KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
 345                    -fno-strict-aliasing -fno-common \
 346                    -Werror-implicit-function-declaration \
 347                    -Wno-format-security \
 348                    -fno-delete-null-pointer-checks -fno-pie
posted @   我叫平沢唯  阅读(1430)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示