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文件,因为一些环境相关的东西,
这个文件可能会告诉你,例如,编译器版本等信息,还有一些其他的依赖
因为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文件,因为一些环境相关的东西,
这个文件可能会告诉你,例如,编译器版本等信息,还有一些其他的依赖
相关文章推荐
- 查看编译linux内核所用的gcc版本
- 查看编译linux内核所用的gcc版本
- Linux 环境下编译 0.11版本内核 kernel
- Linux 环境下编译 0.11版本内核 kernel(部分转载,加上自己修改的部分(绿色注释))
- linux下安装两个不同版本的交叉编译环境arm-linux-gcc4.4.3、arm-linux-gcc3.4.1,切换调用的解决
- 关于redhat9.0与arm-linux-gcc 编译链版本问题
- linux的编译内核版本和板子内核版本不一致?
- 使用arm-linux-gcc 4.3.2编译必须启用内核中的Use the ARM EABI选项
- Ubuntu 8.04 Linux系统下面编译更新内核版本
- 在linux下查看内核版本、gcc版本、操作系统多少位等参数
- Fedora9.0和VMware6.5下编译内核出现arm-linux-gcc无法找到的错误解决办法
- Ubuntu16.10下查看linux版本,内核版本,系统位数,gcc版本
- 编译linux内核出现 arm-eabi-gcc: error: ": No such file or directory
- ubuntu 10.04 编译安装最新版本linux-2.6.34内核
- Linux 环境下编译 0.11版本内核 kernel
- linux内核编程4部曲之一:linux内核编译(2.6.12版本)图文解说
- Fedora9.0和VMware6.5下编译内核出现arm-linux-gcc无法找到的错误解决办法
- 【内核】linux2.6版本内核编译配置选项(一)
- CentOS 6编译升级gcc清晰简易教程(可通用大部分Linux版本)
- 使用arm-linux-gcc 4.3.2编译必须启用内核中的Use the ARM EABI选项