编译环境

Arch Linux on VirtualBox

下载内核

下载的内核压缩包,此时的最新内核版本为4.1:

解压包

# tar -xvJf linux-4.1.tar.xz
在这里为了方便直接切换到su权限了,如果为普通权限,须在每条命令前加上sudo,如果sudo可用的话。
(命令语句中划线的部分为文件名或目录名,是要根据实际情况更改的部分,后面也会遇到很多)

cd到源码根目录

# cd ~/Documents/linux-4.1

进行设置

这里我使用了当前运行内核的默认设置。
拷贝正在运行的内核的配置文件(.config文件)到编译根目录。
# zcat /proc/config.gz > .config
 
 
当然也可以手动设置
# sudo make menuconfig
(末尾参考资料一中有详细的说明)

编译内核

# sudo make [-j ]
后面的参数-j2表示,cpu要开启两个线程来编译内核,可以加快编译速度。
编译完成后的内核文件:

安装模块

# sudo make modules_install
 

将编译好的内核拷贝到/boot目录

# cp -v arch/x86/boot/bzImage /boot/vmlinuz-YourKernelName
# cp -v arch/x86/boot/bzImage /boot/vmlinuz-YourKernelName
在这里YourKernelName为4.1:
# cp -v arch/x86/boot/bzImage /boot/vmlinuz-4.1
# cp -v arch/x86/boot/bzImage /boot/vmlinuz-4.1

制作初始化内存盘

# mkinitcpio -k FullKernelName /etc/mkinitcpio.conf -g /boot/initramfs-YourKernelName.img 
可以通过 ls /lib/modules 命令查询到可用的FullKernelName:
 
在这里FullKernelName为4.1.0-ARCH(如上图):
# mkinitcpio -k 4.1.0-ARCH -c /etc/mkinitcpio.conf -g /boot/initramfs-4.1.img 

[拷贝System.map]

# cp System.map /boot/System.map-YourKernelName
在这里YourKernelName为4.1:
# cp System.map /boot/System.map-4.1
# ln -sf /boot/System.map-YourKernelName /boot/System.map
完成了这部操作后,/boot目录如下图所示:
 
在这里vmlinuz-linux为当前内核,vmlinuz-4.1为新编译的内核。initramfs-4.1.img为新的初始化内存盘,还有刚拷贝的System.map-4.1文件以及System.map链接。
下面我们需要对新的内核文件和内存盘进行引导,以启动新内核。

设置启动项

 # grub-mkconfig -o /boot/grub/grub.cfg
我们可以看到grub自动添加了新的内核,新的内核启动选项在"Advanced options for Arch Linux"中。

重启

# reboot 

编译前后内核对比

编译前:
编译后:

参考资料

(感谢Arch-Linux详细的wiki文档)
 

转载请注明来自:田小777-博客园

原文地址:http://www.cnblogs.com/kitian616/p/4598819.html

如若转载,请保留原文地址。谢谢合作。

Linux 4.1内核编译报告的更多相关文章

  1. Linux系统的内核编译

    <1>给虚拟机分配2048M内存 <2>配置高可用yum源 <3>下载软件 <1>安装内核源码包 根据依赖性提示,安装对应的包 下载并安装软件包(3个) ...

  2. linux 驱动模块 内核编译环境

    目录(?)[+] Linux设备驱动Hello World程序介绍 如何编写一个简单的linux内核模块和设备驱动程序.我将学习到如何在内核模式下以三种不同的方式来打印hello world,这三种方 ...

  3. linux内核编译,配置本机驱动

    1.前言  编译linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去.面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要.面对内核里面这么多 ...

  4. linux内核编译相关

    参考:http://www.arm.linux.org.uk/docs/kerncomp.php 一. 内核编译1) linux 2.4make clean/make mrpropermake dep ...

  5. 运行在TQ2440开发板上以及X86平台上的linux内核编译

    一.运行在TQ2440开发板上的linux内核编译 1.获取源码并解压 直接使用天嵌移植好的“linux-2.6.30.4_20100531.tar.bz2”源码包. 解压(天嵌默认解压到/opt/E ...

  6. linux内核编译环境配置

    linux内核编译环境配置 如果不是编译内核,只需要安装与内核相匹配的kernel-devel开发包即可.即是/lib/modules/`uname -r`/build -> /usr/src/ ...

  7. Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装

    原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底 ...

  8. Linux内核编译与安装

    2013-04-16    Linux内核介绍  Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统.内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.L ...

  9. 最全最详细:ubuntu16.04下linux内核编译以及设备驱动程序的编写(针对新手而写)

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

随机推荐

  1. poj 2503 Babelfish(字典树哈希)

    Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 29059 Accepted: 12565 Description You hav ...

  2. LNMP搭建(CentOS 6.3+Nginx 1.2.0+PHP 5.3.15(fpm)+ MySQL 5.5.35)

    Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 ...

  3. 【转】图说Android的8年演变史

    原文网址:http://tech.gmw.cn/2016-02/17/content_18916338_14.htm 图说Android的8年演变史 我有话说    0      2011年10月谷歌 ...

  4. [FreeProxy]FreeProxy代理服务器端软件介绍 之 sock 5

    首先在FreeProxy上创建一个sock5 service 然后在Client 设置使用sock5

  5. QTP自传之web常用对象

    随着科技的进步,“下载-安装-运行”这经典的三步曲已离我们远去.web应用的高速发展,改变了我们的思维和生活习惯,同时也使web方面的自动化测试越来越重要.今天,介绍一下我对web对象的识别,为以后的 ...

  6. Sort Colors —— LeetCode

    Given an array with n objects colored red, white or blue, sort them so that objects of the same colo ...

  7. 如何在COM的IDL文件中include头文件?

    可以使用import语句,如import "x.h"; 则在自动生成的xxx_i.h中将会有include "x.h", 于是x.h就被include到工程中了 ...

  8. eclipse连接远程hadoop集群开发时0700问题解决方案

    eclipse连接远程hadoop集群开发时报错 错误信息: Exception in thread "main" java.io.IOException:Failed to se ...

  9. SVN强制注释

    1.目的 在使用SVN作为版本控制的时候,强制提交的人员写注释,这样能确保每次提交都有注释,方便查看 2.解决办法     2.1给工程加上属性          2.1.1在工程提交之后,通过客户端 ...

  10. Android Developers:两个视图渐变

    淡入淡出动画(也被称为渐隐)逐渐淡出一个UI组件,同时淡入另一个.这个动画在你想在你的应用程序中切换内容或者是视图的情况下非常有用.淡入淡出非常微妙并短,但支持从一个屏幕到下一个屏幕流畅的过渡.当你不 ...