您的位置:首页 > 运维架构 > Linux

gcc-2.95.3编译-同时编译linux2.6.30版本内核

2017-10-04 21:29 441 查看
编译准备:



因为linux2.6.3源码目录下的reademe文件里明确告知需要使用gcc-2.95.3来进行编译,所以就不要安装最新gcc编译器了

因为这是编译内核所以为了方便,我建议大家切换到root下

执行 sudo -s

-----------下载并编译gcc-2.95.3版本的编译器---------------

1. 下载gcc-2.95.3, 下载地址 http://ftp.gnu.org/gnu/gcc/gcc2.95.3 , 这个目录下我并没有发现patch,所以我并没有给这个版本编译器源码打patch

2. 解压-解压后的目录为 gcc-2.95.3

3. cd gcc-2.95.3

4. mkdir build-gcc

5. cd build-gcc

6. ../configure --prefix=/opt/gcc-2.95.3 --enable-shared --enable-languages=c

7. make

8. make install

9. 将/opt/gcc-2.95.3/bin 目录加入到环境变量里就可以用了

10. gcc -v 查看版本

----------linux2.6.30内核编译---------------------------------

1. 下载linux2.6.3 内核源码并解压,不要改文件

2. cd linux2.6.3

3. 下载补丁patch2.6.3.bz2 放到与linux2.6.30同级目录下

4. 下载linux-2.6-seg-5.patch 放到与linux2.6.30同级目录下,

你也可以不放在这里, 下面的两个命令你自己指定好路径就行了,

下载地址 https://www.kernel.org/pub/linux/devel/binutils/ 这个地址比较稳定

5. 执行 bzcat ../patch2.6.3.bz2 | patch -p1 开始打补丁

6. 执行patch -p1 <../linux2.6-seg-5.patch

如果不打这两个补丁, as编译会出现问题 大概如下,很明显这是编译器不支持这种语法了:

{standard input}: Assembler message suffix or operands invalid for mov

好了,开始编译内核,编译内核需要依赖的一些库基本上就是

libncurses5-dev libncurses-dev fakeroot initramfs-tools module-init-tools

apt-get install 自己下载安装

我建议,用本机的配置来初始化.config 文件,因为这样make menuconfig

就不用配置里

在内核源码目录下 执行 cp /boot/config-`uname -r` .config

然后cat .config确认这个文件被我们拷贝过来了

然后执行make menuconfig,进入到menu后往下找,找到Load开头的,进去

你懂的,这个就是把我们刚才拷贝过来的 .config 文件让menuconfig识别,然后退出保存

开始make, 不出意外,一切顺利

Tips: 在拿到源码的时候一定要看README文件,因为一些环境相关的东西,

这个文件可能会告诉你,例如,编译器版本等信息,还有一些其他的依赖
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: