编译环境

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. mac下的改装人生——第一次拆卸mbp,加入内存

    这是我第一次拆我的mbp哈,心情无比激动. 在家门口电脑维修店的老板那里借来了螺丝刀.回家以后立刻开始了改装行动 我的MC700后盖是可以全部打开的,总共大概是10个螺丝的样子,上面靠右边的三颗是长螺 ...

  2. Docker网络模式

    [编者的话] 本文是<Docker网络及服务发现>一书的一个章节,介绍了搭建Docker单主机网络的基础内容.关于Docker网络的更多内容,包括多主机的网络,请参考该书的其他章节. @C ...

  3. getting start with storm 翻译 第八章 part-1

    转载请注明出处:http://blog.csdn.net/lonelytrooper/article/details/12434915 第八章 事务性Topologies 在Storm中,正如本书前边 ...

  4. 菜鸟成长日记之新手备忘录-IOS开发第一个项目总结

    2013年5月3号,开始找IOS开发工作(自学了大半年,做了一个功能不全的Demo,该出去见见世面了!),5月4号面试了第一家公司(是家刚成立一段时间的外包公司),5月5号第一家公司已二轮电话面试,5 ...

  5. tomcat环境搭建

    前言 学习任何一门技术的都需要环境的搭建,Hello world成为学习的开端.今天我就为大家带来tomcat的环境搭建过程. 配置环境变量 右击我的电脑->属性->高级系统设置-> ...

  6. Codeforces 437B The Child and Set

    题目链接:Codeforces 437B The Child and Set 開始是想到了这样的情况,比方lowbit之后从大到小排序后有这么几个数,200.100,60.50.S = 210.那先选 ...

  7. 利用NIO建立Socket服务器

    传统的Java 的IO,利用Socket建立服务器,接收客户端连接,一般都是为每一个连接建立一个线程,如果连接数巨大,那么服务器开销也将巨大..NIO的原理,可以参照图:http://new.51ct ...

  8. 由阿里巴巴一道笔试题看Java静态代码块、静态函数、动态代码块、构造函数等的执行顺序

    一.阿里巴巴笔试题: public class Test { public static int k = 0; public static Test t1 = new Test("t1&qu ...

  9. [React Flow] Up and Running with Facebook Flow for Typed JavaScript

    Install: npm i -D flow-binnpm i -g flow-bin Init: flow init Script: "typecheck": "flo ...

  10. MYSQL 体系结构图-space结构图