zoukankan      html  css  js  c++  java
  • 编译debian内核

    玩腻了开发板,在pc上编译linux内核。

    debian 官方的内核文档见http://kernel-handbook.alioth.debian.org

    我选择编译与当前内核版本对应的linux内核源码,因为我安装了linux3.13 backport内核,所以选择下面命令:

    apt-get install linux-source-3.13

    解压缩源代码:

    cd /usr/src
    tar xf linux-source-3.13.tar.xz
    cd linux-source-3.13

    某些内核还需要打补丁(patch -p1 < linux-patch.patch),可根据需要自己加上补丁代码,更详细的patch资料可以查看这里

    将/boot下的config文件拷贝到linux源代码下:

    cp /boot/config-3.13-0.bpo.1-amd64  .config

    然后进行编译即可:

    make

     经过相当长时间编译后生成的 arch/x86/boot/bzImage 即是对应的vmlinuz文件。

    我另外一台电脑也安装了debian7.4,使用的是默认内核3.2

    可以直接选择从内核镜像下载源代码并用debian工具打补丁。

    需要先安装dpkg-dev:

    apt-get install dpkg-dev

    然后执行下面命令下载源码并打补丁:

    apt-get source linux-source-3.2

    然后debian系统会下载linux源码并自动打补丁,由于debian下载的是最新版本的源码,我的系统上当前文件夹会有一个名为linux-3.2.57的文件夹,

    可以在该文件夹下将安装debian内核文档中的步骤进行配置即可。

    在编译前需要安装软件:

    apt-get install quilt dh-buildinfo

    linux-3.2.57/debian/rules.gen下可以找到debian下关于内核的多种配置。

    使用"uname"命令查看当前内核,得到信息如下:

    Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.54-2 i686 GNU/Linux

    所以我选择rules.gen中的binary-arch_i386_none_686-pae,然后执行如下命令编译内核:

    fakeroot make -f debian/rules.gen binary-arch_i386_none_686-pae

    整个编译过程相当长,可能需要好几个小时(我花了3个小时),编译完后生成了四个deb文件:

    ../linux-headers-3.2.0-4-686-pae_3.2.57-3+deb7u1_i386.deb  ../linux-image-3.2.0-4-686-pae-dbg_3.2.57-3+deb7u1_i386.deb
    ../linux-image-3.2.0-4-686-pae_3.2.57-3+deb7u1_i386.deb    ../xen-linux-system-3.2.0-4-686-pae_3.2.57-3+deb7u1_i386.deb

    关于debian配置内核的一些脚本,可以用下面的命令下载:

    apt-get source linux-latest

    输出信息如下:

    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    提示:linux-latest 的打包工作被维护于以下位置的 Svn 版本控制系统中:
    svn://svn.debian.org/svn/kernel/dists/sid/linux-latest/
    需要下载 44.4 kB 的源代码包。
    获取:1 http://mirrors.163.com/debian/ wheezy/main linux-latest 46 (dsc) [14.5 kB]
    获取:2 http://mirrors.163.com/debian/ wheezy/main linux-latest 46 (tar) [29.9 kB]
    下载 44.4 kB,耗时 0秒 (108 kB/s)  
    gpgv: 密钥块资源‘/root/.gnupg/trustedkeys.gpg’:文件打开错误
    gpgv: 于 2012年10月08日 星期一 02时57分55秒 CST 创建的签名,使用 RSA,钥匙号 95861109
    gpgv: 无法检查签名:找不到公钥
    dpkg-source: warning: failed to verify signature on ./linux-latest_46.dsc
    dpkg-source: info: extracting linux-latest in linux-latest-46
    dpkg-source: info: unpacking linux-latest_46.tar.gz

    这样会在当前文件夹下下载配置文件压缩包并解压缩成linux-latest-46文件夹,而debian内核文档提到的通常就是使用这里的脚本配置。

  • 相关阅读:
    计算机基础总结
    Apache安装错误 APR not found解决方法
    一、编译错误
    2.2 进程控制之进程共享
    2.1 进程控制之fork创建子进程
    ARM串口控制终端命令
    u-boot、kernel、root系统烧写和挂载命令命令
    8.1 编写USB鼠标驱动程序,并测试
    八、USB驱动分析
    Source Insight的使用
  • 原文地址:https://www.cnblogs.com/qiaoqiao2003/p/3737754.html
Copyright © 2011-2022 走看看