Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52854
  • 博文数量: 53
  • 博客积分: 752
  • 博客等级: 军士长
  • 技术积分: 450
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-17 11:46
文章分类

全部博文(53)

文章存档

2015年(1)

2014年(1)

2013年(11)

2012年(21)

2011年(19)

我的朋友

分类: 嵌入式

2012-02-11 17:32:03

环境准备:

   vmware+ubuntu 8.04 desktop

   在终端登陆到su  (超级用户)

   apt-get install build-essential

   apt-get install libncurses5-dev

 

文件准备:

       arm-linux-gcc-4.3.2.tgz    (google)

       linux-2.6.39.4.tar.gz      

    

注意事项:

1.      这中间要注意,gcc编译器的版本很重要,不要太低。(之前用arm-linux-gcc3.2 失败)

2.      单独建立个目录来编译,不要使用source目录。

3.      如果中途编译出现错误,建议重新来过,或者执行好 make mrproper

4.   使用超级用户执行命令


1.      安装交叉编译工具链  (codesourcery)


      1.1复制arm-linux-gcc-4.3.2.tgz ubuntu

           sudo tar –xzvf arm-linux-gcc-4.3.2.tgz –C /

      这样在 /usr/local/arm/4.3.2/bin 下就会有arm-linux-gcc 编译器了

        1.2 添加路径到path

 sudo vi /etc/bash.bashrc

              在后面加入如下代码:

              if [ -d /usr/local/arm ] ; then

                  PATH=/usr/local/arm/4.3.2/bin:"${PATH}"

              fi  

         1.3 执行 source /etc/profile    使生效

         1.4 输入 arm-linux-gcc –v 来检测是否安装好了arm-linux-gcc

      

2.      解压 linux-2.6.39.4.tar.gz

2.1    复制 linux-2.6.39.4.tar.gz   /usr/local/linuxkernel  目录

2.2  cd /usr/local/linuxkernel

 tar –xzvf linux-2.6.39.4.tar.gz

2.3    mkdir build   (/usr/local/linuxkernel/build)

2.4    复制源代码目录下的 arch/arm/configs 下的对应 XXXX_defconfig/usr/local/linuxkernel/linux-2.6.39.4/ 目录,并重命名为.config

        cd  /usr/local/linuxkernel/linux-2.6.39.4

cp -f /usr/local/linuxkernel/linux-2.6.39.4/arch/arm/configs/XXXX_defconfig  .config

        (XXXX_defconfig 表示对应平台的配置 例如 s3c2410_defconfig)


3.      修改Makefile   (这部分可以省略,通过后面传参数来操作)

  ARCH ?= arm

  CROSS_COMPILE  ?= arm-linux-

 

4.      apt-get install libncurses5-dev   解决make menuconfig 错误问题 (如果没有安装的话)

 

5.      make O=/usr/local/linuxkernel/build ARCH=arm CROSS_COMPILE=arm-linux-  menuconfig

O=/usr/local/linuxkernel/build 指定创建使用的目录

ARCH=arm 指定target

CROSS_COMPILE=arm-linux-  指定使用的编译器 会自动补上gcc

这样会在 /usr/local/linuxkernel/build  下生成.config文件

注意选择save configure 保存。


(配置的时候

   有可能需要去掉EABI Kernel Features ---> [*] Use the ARM EABI 

                防止后面编译,该版本不需要去掉。)


6.      编译内核

6.1    make mrproper 清除source目录下的.config(我们使用usr/local/linuxkernel/build 目录的.config)

6.2    make O=/usr/local/linuxkernel/build ARCH=arm CROSS_COMPILE=arm-linux-  zImage

 

这样没有出错的话在 /usr/local/linuxkernel/build/arch/arm/boot 下就有编译好的内核了.

 

阅读(417) | 评论(0) | 转发(0) |
0

上一篇:CodeBlock + minGW+wxWidgets

下一篇:gnu工具集

给主人留下些什么吧!~~