`
844604778
  • 浏览: 548746 次
文章分类
社区版块
存档分类
最新评论

使用kernel-package编译内核imgage包

 
阅读更多

之前我们编译内核一般也就是使用make --> make modules_install -->make install --> update-grub 这一系列步骤,后来我发现了Debian、Ubuntu机器上可以使用kernel-package这番神器来编译安装内核。kernel-package是Debian提供的一个编译Linux内核的一个工具集,安装kernel-package 会同时安装上build-essential、libncurses-dev、linux-source等一系列工具。

下面我们看下此等神器的神器之处:


首先、我们需要安装:# su --> # apt-get install kernel-package

安装完成后我们可以使用dpkg 查看一下:#dpkg -l kernel-package

$dpkg -l kernel-package
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-==============-==============-===========================================
ii kernel-package 12.036+nmu3 all A utility for building Linux kernel related
$

在打印出来的信息中我们可以看到,kernel-package 是A utility for building Linux kernel related 也就是一个用来构建内核的工具。

同样我们可以查看 类似于make之类的编译系统自带的工具:

long@zhouyl:~$ dpkg -l make
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-==============-==============-===========================================
ii make 3.81-8.2 i386 An utility for Directing compilation.

我们会发现安装完kernel-package之后make等一系列工具都是相关安装了!


然后我们还是编译一个内核看一下kernel-package的真正威力:

# cd linux-3.4.33 // 进入你想要编译的内核的解压文件夹

# make menuconfig // 编译内核,自己选择

#sudo CONCURRENCY_LEVEL=4 make-kpkg --initrd kernel-image // 这一句就是在使用kernel-package在编译,CONCURRENCY_LEVEL=4 是设置多线程(类似于我们make -j4的多线程控制), make-kpkg就是kernel-package提供的编译工具,--initrd参数是说明在生成的image包里有initrd

……

dpkg --build /home//kernel/linux-3.4.33/debian/linux-image-3.4.33 ..
dpkg-deb: building package `linux-image-3.4.33' in `../linux-image-3.4.33_3.4.33-10.00.Custom_i386.deb'.
make[2]: Leaving directory `/home/kernel/linux-3.4.33'
make[1]: Leaving directory `/home/kernel/linux-3.4.33'
从上面的信息可以看出,我们的make-kpkg生成了一个deb文件,其实这就是我们编译好的内核,放在当前内核文件夹的上层目录。

#cd ..

linux-image-3.4.33_3.4.33-10.00.Custom_i386.deb linux-3.4.33 linux-3.4.33.tar.xz


到此我们的编译工作结束,我们可以使用dpkg 安装我们刚编译好的目录!当然……如果你的编译的内核对其他机器也适用,你可以拷贝这个deb文件到其他机器上直接安装使用。这是神器的一大优势。

#sudo dpkg -i linux-image-3.4.33_3.4.33-10.00.Custom_i386.deb // dpkg -i 安装生成的deb格式image文件
[sudo] password for long:
Selecting previously unselected package linux-image-3.4.33.
(Reading database ... 154502 files and directories currently installed.)
Unpacking linux-image-3.4.33 (from linux-image-3.4.33_3.4.33-10.00.Custom_i386.deb) ...
Examining /etc/kernel/preinst.d/
Done.
Setting up linux-image-3.4.33 (3.4.33-10.00.Custom) ...
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.4.33 /boot/vmlinuz-3.4.33
update-initramfs: Generating /boot/initrd.img-3.4.33
Generating grub.cfg ... // 安装完成重新生成grub
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-3.4.33
Found initrd image: /boot/initrd.img-3.4.33
Found linux image: /boot/vmlinuz-3.2.0-4-686-pae
Found initrd image: /boot/initrd.img-3.2.0-4-686-pae
Found linux image: /boot/vmlinuz-2.6.34.14
Found initrd image: /boot/initrd.img-2.6.34.14
Found Windows 7 (loader) on /dev/sda1
Found elementary OS Luna (0.2) on /dev/sda3

done
#

所以这个神器使得我们编译内核工作变得更加简单快捷。当然如果仅限于此还不能称之为神器!我们使用kernel-package编译内核最大的好处是我们可以使用 dpkg -r 删除我们编译的内核

如上: 安装我们使用的是sudo dpkg -i linux-image-3.4.33_3.4.33-10.00.Custom_i386.deb

卸载时我们可以直接使用:sudo dpkg -r linux-image-3.4.33




分享到:
评论

相关推荐

    md-imgage-error-loader:Markdown图片替换无效

    md-imgage-error-loader 处理.md文件中不存在的图像文件并替换它们 安装 npm i md-imgage-error-loader 用法 网络包 // ... omit some configuration use: [ { loader : 'md-imgage-error-loader' , options : { ...

    zhizhong-imgage-server.rar

    资源是springboot整合mybatis的demo,资源中包含了附件上传的功能,以及从上去的图片中提取文字的demo,

    Imgage Stitching Thesis

    Imgage Stitching Thesis

    html2imgage_1.5 jdk1.5版

    之前看见网上有这个jar包的1.6版本的,可是我们的服务器是1.5jdk的,所以自己改了一个,大家可以试一下

    get_train_imgage.py

    声明:该文件主要获取中文点触验证码所需要的训练集,主要用于研究交流,不用于任何商业行为。

    导航条自动编译工具,css 导航

    自动编辑各种导航条 css +imgage 导航条

    Imgage:允许用户同时绘制图像或图形的应用程序

    Imgage是一个简单的Node应用程序,具有很多扩展可能性。 动机 Imgage项目开始于令人惊叹的存储库的分支,使我的成为。 它位于“页面上,它教会了我有关Node的所有知识。 安装之前 为了使安装尽可能顺利进行,请确保...

    Imgage_box:存放在线图片

    Imgage_box 这是放置bug的地方 此仓库存放一些学习或代码报错截图

    delphi 图片拖动和弹跳

    delphi 图片拖动和弹跳,鼠标拖动,有力回弹。放到自己用的。

    SCHOOL-Q-A

    原始应用程序设计项目-自述模板学校问答目录概述描述用户可以:-发布问题-搜索问题和答案-回答问题应用评估[通过以下属性... (可选)用户可以从照片库上传imgage以及问题帖子的内容屏幕(显示问题,答案和评论框):用

    Yakaferci SEO审计工具:「Yakaferci: Outil d'Audit SEO」-crx插件

    Avec l'extension Chrome浏览器搜索引擎优化Yakaferci vous pourrez alors职位:-voir un diagnostic de vos balises标题,meta,Open Graph,imgage alt,h1 ...-voir un diagnostic de vos liens Internes,外部,...

    MultiMediaSamples

    多媒体(Camera,Imgage,SurfaceView,Matrix,Audio,Video)

    fckeditor jsp接口 需要个upload类

    fckeditor 在jsp环境下,针对于imgage上传,没有直接的jsp文件可以执行上传,我对一个jsp上传的upload进行了修改 使用时,要注意这个upload页面的授权问题 为了快速实现我的需求而该写的。 可能存在其他问题。

    law-global-nav

    Bootstrap3当前内置去做: 格式首页标题 格式化首页页脚[]格式登陆头[]着陆页脚格式 将imgage面板转换为js布局 应用卡片叠加以解决bg图像[]为选择性输出添加逻辑-链接和链接文本[]分别解析链接路径和标题[]应用图片...

    JS按照比例缩小图片

    function imgage(ImgD){ var image=new Image(); var iwidth = 400; //定义允许图片宽度 var iheight =450; //定义允许图片高度 image.src=ImgD.src; if(image.width>0 && image.height>0){ flag=true; if(image....

    C#中图片、二进制与字符串的相互转换方法

    本文实例讲述了C#中图片、二进制与字符串的相互转换方法。分享给大家供大家参考,具体如下: protected void Button1_Click(object sender, EventArgs e) { //图片转二进制 byte[] imageByte = GetPictureData...

    Docker中如何删除image(镜像)的方法

    主要介绍了Docker中如何删除image(镜像)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    winform打开pdf,word,图片

    利用devexpress插件开发的在线打开文档、图片等。

    php图片缩放实现方法

     */ function imageZoom($filename, $w, $h) { /* Arguments meaning */ /* $filename: the source of the name */ /* $w: you want get the image’s width */ /* $h: you want get the imgage’s height */...

Global site tag (gtag.js) - Google Analytics