玩腻了开发板,在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-.bpo.-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.---pae # SMP Debian 3.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.---pae_3.2.57-+deb7u1_i386.deb  ../linux-image-3.2.---pae-dbg_3.2.57-+deb7u1_i386.deb
../linux-image-3.2.---pae_3.2.57-+deb7u1_i386.deb ../xen-linux-system-3.2.---pae_3.2.57-+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 的源代码包。
获取: http://mirrors.163.com/debian/ wheezy/main linux-latest 46 (dsc) [14.5 kB]
获取: http://mirrors.163.com/debian/ wheezy/main linux-latest 46 (tar) [29.9 kB]
下载 44.4 kB,耗时 0秒 ( kB/s)
gpgv: 密钥块资源‘/root/.gnupg/trustedkeys.gpg’:文件打开错误
gpgv: 于 2012年10月08日 星期一 02时57分55秒 CST 创建的签名,使用 RSA,钥匙号
gpgv: 无法检查签名:找不到公钥
dpkg-source: warning: failed to verify signature on ./linux-latest_46.dsc
dpkg-source: info: extracting linux-latest in linux-latest-
dpkg-source: info: unpacking linux-latest_46.tar.gz

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

编译debian内核的更多相关文章

  1. 编译Debian内核源码

    参考: <鸟哥的Linux私房菜>第26章 http://hi.baidu.com/wg_wang/item/f9375c2f00ca75c0ee10f1db http://www.lin ...

  2. 安装debian总结以及编译linux内核

    1. 安装debian 使用unetbootin(http://unetbootin.sourceforge.net/)来创建启动盘,并且下载debian的基本包. 将磁盘进行压缩操作,并且保留出一个 ...

  3. 编译Linux内核

    下面的实验以 debian7.5 64bit 为例. 获取源码 获取 debian7.5 本身的源码非常简单: sudo apt-get install linux-source https://ww ...

  4. 编译linux内核时出错

    在编译linux内核的时候使用make menuconfig 可能出现下面的错误 *** Unable to find the ncurses libraries or the*** required ...

  5. 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #2 如何编译Linux内核

    HACK #2 如何编译Linux内核 本节介绍编译Linux内核的方法.当发现bug而修改源代码或者添加新功能时,就需要对内核进行重新编译,生成二进制映像文件.另外,如果想要使用发布版内核中无效的功 ...

  6. 删除多余的自编译的内核、mysql连接不了的问题

    1.删除多余的自编译的内核 每次Debian发布内核更新,总是有某些内核选项跟自己的硬件不配套,要自己编译内核.编译多了,多余的内核就占用了多余的硬盘空间.我就试过因为/boot分区满了,而导致编译内 ...

  7. Linux 编译安装内核

    一.简介 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修 ...

  8. linux —— 编译linux内核

    目录:     0.测试环境 1.获得最新内核源代码  2.编译源代码 3.运行新的内核 0.测试环境: 我的系统 : ubuntu 16.04 LTS (内核版本:4.4.0-36-generic ...

  9. 如何解决编译linux内核(解决声卡问题),遭遇fatal error: linux/limits.h: 没有那个文件或目录

    最近帮一位上海的朋友搞一块小板,在ubuntu15.04 vivid上已经加载了对应了.ko驱动包 但关键是系统根本就枚举不到该声卡ALC5640,试了OpenSUSE也是一样的结果,看来是内核漏加载 ...

随机推荐

  1. python数据分析入门学习笔记儿

    学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...

  2. H5 性能调优 工具

    1.阿里测:http://www.alibench.com 2.奇云测:http://ce.cloud.360.cn 3.百度应用性能检测中心:http://apm.baidu.com 推荐理由:这3 ...

  3. ios 之 autoresizing小解

    对于IOS的app开发人员来说,不会像Android开发人员一样为非常多的屏幕尺寸来做界面适配,因此硬编码的坐标也能工作良好,可是从设计模式上来说这不是好的做法. 并且也另一些问题,如iPhone5的 ...

  4. 『HTML5梦幻之旅』 - 仿Qt演示样例Drag and Drop Robot(换装机器人)

    起源 在Qt的演示样例中看到了一个有趣的demo.截图例如以下: 这个demo的名字叫Drag and Drop Robot,简单概括而言,在这个demo中,能够把机器人四周的颜色拖动到机器人的各个部 ...

  5. 开发SharePoint 自定义WebService 的小工具

    是一个开源的项目,地址:http://www.codeproject.com/Articles/10728/WSS-Web-Service-DISCO-and-WSDL-Generator-Helpe ...

  6. Web Service之Soap请求响应内容中文编码解密

    java模拟Soap请求测试Web Service接口,发现Web Service响应内容中的中文竟然是编码格式.比如: 中文:退保成功 Soap中文编码:退保成功   我仔细分析后发现,退编码实际上 ...

  7. .NET实现爬虫

    前几天看到一个.NET Core写成的爬虫,有些莫名的小兴奋,之前一直用集搜客去爬拉勾网的招聘信息,这个傻瓜化工具相当于用HTML模板页去标记DOM节点,然后在浏览器窗口上模拟人的浏览行为同时跟踪节点 ...

  8. [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

    再用爬虫爬取数据的时候报错:[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661) 好多博客我看都说是:网站证书 ...

  9. Redis闲谈(1):构建知识图谱

    场景:Redis面试 (图片来源于网络) 面试官: 我看到你的简历上说你熟练使用Redis,那么你讲一下Redis是干嘛用的? 小明: (心中窃喜,Redis不就是缓存吗?)Redis主要用作缓存,通 ...

  10. u-boot-2014-04 网络不通解决一例

    不久前我移植了u-boot-214-04到Tq2440的板子上,基本功能都有了,网卡也可以使用了.有一天打算把u-boot-2010-06也也一直到tq2440上,移植完后发现u-boot-214-0 ...