zoukankan      html  css  js  c++  java
  • 运行在TQ2440开发板上以及X86平台上的linux内核编译

     一、运行在TQ2440开发板上的linux内核编译

    1、获取源码并解压

      直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包。

      解压(天嵌默认解压到/opt/EmbedSky/linux-2.6.30.4/中)

    tar xvjf linux-2.6.30.4_20100531.tar.bz2 -C /

    2、获取默认配置文件

     可以使用“config_EmbedSky_W43”作为默认配置文件 

    cp config_EmbedSky_W43 .config

     3、配置(根据需要修改部分选项)

           笔者认为只要有一个适合自己开发板的“.config”,这一步也不需要,直接使用这个配置文件去编译内核即可。

           至于这一步的意义,其实也就是为了生成一个适合自己开发板的“.config”,决定哪些模块需要编译进内核(裁剪内核)。

           默认配置文件的意义就在于,为我们提供了一种参考,通常选择的默认配置文件是与我们的开发板很相似的。由于配置选项太多,多达上千项,使用默认配置文件,只需要修改那些默认配置文件与我们开发板不一样的选项即可,这肯定是节省时间和体力的捷径。

     make menuconfig

    4、编译内核 

      make zImage

     5、编译modules(内核驱动)模块 

     make modules 

      可在内核中挂载使用生成的“*.ko”文件

    二、运行在X86平台上的linux内核编译和安装

    1、获取源码并解压

      可以从http://www.kernel.org/选择一个想要的版本,例如“linux-3.2.55.tar.xz”,并解压到“/usr/src”(/usr/src目录下是专门存放内核源代码的)。

    sudo tar -xvf linux-3.2.55.tar.xz -C /usr/src

        解压后源码大小几百MB。

    2、 获取默认配置文件

      比如说:/boot/config-3.2.0-55-generic-pae(Ubuntu当前内核的配置文件)

    cp /boot/config-3.2.0-55-generic-pae .config

    3、配置 

    make menuconfig

        此命令会调取各级目录中的kconfig生成一个菜单,通过这个菜单,我们可以配置linux内核。配置完成后的信息,保存在“.config”中。在编译内核的时候,会读取这个配置文件,从而决定以什么样的方式编译内核,编译内核的那些模块等等。 

    4、编译内核和模块

     编译内核

    make

     此过程长达几个小时,编译完后源码包就有5、6个G,所以在编译之前确保你的虚拟磁盘剩余容量足够大,不够的话参考修改虚拟机linux硬盘的大小 进行磁盘扩容,否则在编译过程中将出现“磁盘空间不足”的问题。生成的内核镜像在arch/x86/boot目录下。

        安装模块

    make modules_install 

      make modules_install命令用于安装可装载模块,安装的目的目录时/lib/modules/3.2.55

    5、安装 

    make install

        make install命令执行三个操作:复制内核镜像到/boot目录下;生成initrd-img;更新grub。命令成功执行成功后,新的内核已可以使用,并且列在引导菜单中。

        /boot目录下的内容

    6、重启检查

      重启系统,grub引导选项中多了我们新编译的内核选择,选择新内核引导。“Previous Linux version”为更新内核前的内核启动项。

          进入系统后执行命令uname -r 查看当前的内核版本。

    uname -r

     

    后记

        倘若想卸载自己编译的内核,可以参考linux下删除内核 进行操作。

    参考网页:linux内核学习之二:编译内核 

                  自己编译linux内核    

     
  • 相关阅读:
    AcWing 1027. 方格取数 dp
    AcWing 1014. 登山 dp
    acwing 482. 合唱队形 dp
    LeetCode 1463. 摘樱桃II dp
    LeetCode 100. 相同的树 树的遍历
    LeetCode 336. 回文对 哈希
    LeetCode 815. 公交路线 最短路 哈希
    算法问题实战策略 DARPA大挑战 二分
    算法问题实战策略 LUNCHBOX 贪心
    AcWing 1100. 抓住那头牛 BFS
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3592009.html
Copyright © 2011-2022 走看看