ubuntu编译3.5内核步骤

1、win7下安装VMware虚拟机,VMware-workstation-full-11.1.2,序列号: 1F04Z-6D111-7Z029-AV0Q4-3AEH8。

2、安装ubuntu 12.04.02系统

    http://mirrors.163.com/ubuntu-releases/  网易的开源镜像网站

    http://mirrors.sohu.com/ubuntu-releases/ 搜狐的开源镜像网站

3、将下好的 linux-3.5-20140422 内核copy到ubuntu的 /home目录下,解压到/usr/src目录下。

    需要用到的命令:

    tar   zxvf    test.tgz  -C  指定目录

    比如将/home/linux-3.5-20140422解压到  /usr/src目录

    tar  zxvf  /home/linux-3.5-20140422 -C /usr/src

    参数:

      -c :create 建立压缩档案的参数;

      -x : 解压缩压缩档案的参数;

      -z : 是否需要用gzip压缩;

      -v: 压缩的过程中显示档案;

      -f: 置顶文档名,在f后面立即接文件名,不能再加参数

4、编译内核前,需要做的准备工作

  1)解决下载慢的问题:      

    1、首先备份Ubuntu12.04源列表 sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表)
    2、sudo gedit /etc/apt/sources.list (打开Ubuntu 12.04源列表文件)
    3、更新源 阿里源
http://mirrors.aliyun.com/help/ubuntu
    4、更新源 sudo apt-get update
 
     升级源:sudo apt-get upgrade

    2) rm /var/lib/dpkg/lock 

          解锁 解决apt-get不能下载问题

          Apt-get update   

    3)安装软件

    apt-get install +软件名称

          Minicom  串口

           build-essential  (基本的编程库(gcc, make等)

           kernel-package   (Debian 系统里生成 kernel-image 的一些配置文件和工具)

           libncurses5-dev  (meke menuconfig要调用的)

          libqt3-headers   (make xconfig要调用的)

          automake

          vim

            在命令行下,输入命令:sudo vim /etc/vim/vimrc

            set nu // 在左侧行号

            set tabstop //tab 长度设置为 4

            set nobackup //覆盖文件时不备份

            set cursorline //突出显示当前行

            set ruler //在右下角显示光标位置的状态行

            set autoindent //自动缩进

      4)64位的操作系统没有32位的类库,而android的SDK是要32位支持的,如果没装make就会报下面的错!

              CC      scripts/mod/empty.o

            /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/../../../../arm-none-linux-gnueabi/bin/as: error while            loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

            make[2]: *** [scripts/mod/empty.o] Error 1

            make[1]: *** [scripts/mod] Error 2

            make: *** [scripts] Error 2

            所以要

            sudo apt-get update

            sudo apt-get install ia32-libs

5、安装交叉编译环境      

      解压命令tar xvzf arm-linux-gcc-4.3.2 -C /注意以上命令必须要有-C而且是大写,后边有个空格也要注意。

      配置下编译环境路径 在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上下面代码:export PATH=安装路径:$PATH

      安装兼容库,在终端输入:sudo apt-get install g++-multilib

      保存关闭后,注销当前用户,用root账号重新登录系统(使刚刚添加的环境变量生效)。

      此时你可以在控制台输入: arm-linux-gcc -v 如果安装成功将会输出 arm-linux-gcc的版本号。

6、修改Makefile文件

      CROSS_COMPILE =arm-linux-   注意=和arm之间没有空格

7、make dep

   根据以往的经验,这一步是必须的,但是这次编译的时候,系统提醒我没必须要执行这个命令: make dep

     make clean / make mrproper

   Linux下面去编译项目之前,一般常会用make mrproper去先删除之前编译所生成的文件和配置文件,备份文件等,清理旧的编译生成的文件及其他配置等文件,所以,相当于Clean

  make distclean 清除配置  

     在编译内核之前,用户必须首先完成必要的配置。Linux内核提供了数不胜数的功能,支持众多的硬件体系结构,这就需要用户对将要生成的内核进行裁减。

     当用户完成配置后,配置工具会自动生成.config文件,它被保存在内核代码树的根目录下。用户可以很容易找到它,当然用户也可以直接对这个文件进行简单的修改。但是当你修改过配置文件之后,你必须通过下面的命令来验证和更新配置:make oldconfig

      make menuconfig

  加载.config文件

8、make 编译内核  

         根目录下生成vmlinux和system.map

     Arch/arm/boot 目录下生成zImage

 

9、make modules

 

      

posted @ 2015-10-30 21:33  elix  Views(451)  Comments(0Edit  收藏  举报