Linux 4.1内核编译报告

实验环境

Arch Linux on VirtualBox

下载内核

https://www.kernel.org/

下载的内核压缩包:

解压包

$ sudo tar -xvJf linux-4.1.tar.xz

进行设置

这里我使用了当前运行内核的默认设置。

拷贝正在运行的内核的配置文件(.config文件)到编译根目录。

$ zcat /proc/config.gz > .config

当然也可以手动设置

$ sudo make menuconfig

(末尾参考资料一中有详细的说明)

编译内核

$ sudo make [-j 2]

后面的参数-j2表示,cpu要开启两个线程来编译内核,可以加快编译速度。

编译完成后的内核文件:

安装模块

$ sudo make modules_install

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

$ cp -v arch/x86/boot/bzImage /boot/vmlinuz-YourKernelName

在这里YourKernelName为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

设置启动项

$ grub-mkconfig -o /boot/grub/grub.cfg

我们可以看到grub自动添加了新的内核

重启

$ reboot 0

编译前后内核对比

编译前:

编译后:

参考资料

1. https://wiki.archlinux.org/index.php/GRUB

2. https://wiki.archlinux.org/index.php/GRUB

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

时间: 2024-07-29 15:42:19

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

Linux下的内核编译与模块操作

Linux下的内核编译与模块操作 一:实验环境 1):虚拟机 2):linux系统 3):linux系统的硬盘的空余空间要大于7G 4):虚拟机的内存要大于2.5G以上 二:实验目标 1):源码编译Linux内核 2):使用Linux内核模块 3):实战-编译一个NTFS内核模块,实现linux挂载NTFS文件系统并实现读写功能 三:实验脚本 第一块 --源码编译Linux内核 linux系统与windows系统是两种截然不同的系统,windows系统中的软件都是需要付费的,而linux系统中的

linux基础之内核编译

编译内核: 程序包的编译安装: ./configure, make, make install 前提:开发环境(开发工具,开发库),头文件:/usr/include 开源:源代码 --> 可执行格式 发行版:以"通用"的目标: 前提: (1) 准备好开发环境: (2) 获取目标主机上硬件设备的相关信息: (3) 获取到目标主机系统功能的相关信息,例如要启用的文件系统: (4) 获取内核源代码包:www.kernel.org 准备开发环境: CentOS 6.7: 包组: Deve

Linux内核编译和参数配置

内核 内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核的bug,并增加了许多新的特性.如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核.本文将以RedHat Linux 6.0(kernel 2.2.5)为操作系统平台,介绍在Linux上进行内核编译的方法. 一. 下载新内核的源代码 内核,是一个

linux内核编译与开发

一.Linux内核简介linux kernel map: linux 系统体系结构: linux kernel体系结构: arm有7种工作模式,x86也实现了4个不同级别RING0-RING3,RING0级别最高, 这样linux用户代码运行在RING3下,内核运行在RING0,这样系统本身就得到了 充分的保护 用户空间(用户模式)转到内核空间(系统模式)方法: ·系统调用 ·硬件中断 linux kernel 体系结构: 虚拟文件系统VFS: VFS(虚拟文件系统)隐藏各种文件系统的具体细节,

Linux入门之CentOS7内核编译三部曲(1)

Linux入门之CentOS7内核编译三部曲(1) 我们知道,一个Linux系统的主要组成是由liunx内核核心和一些支持模块组合而成的.但是在某些场合中,需要某项功能,而当前内核的核心或者模块不支持此功能,那么就需要对内核进行一个升级或者重新编译内核添加相应的功能,以此提供了对此功能的支持. 编译前的准备 认识kernel 所为kernel,就是一种操作系统的核心,当然也是一个文件,而这种核心提供了对一些硬件的支持,一般来说其中包含了一些对常见硬件核心驱动的核心代码.启动系统时会通过加载MBR

Linux入门之CentOS7内核编译三部曲(2)

Linux入门之CentOS7内核编译三部曲(2) 在linux系统中,编译完了内核,得到了所需的功能,并不能表示就已经能完美完成我们的所需.因为内核只是做一个核心的硬件及核心代码的支持,而注意的模块支持任然是对应版本的内核模块文件.这些文件决定着平时能否使用哪些功能.这次不会介绍如果添加给上次编译的新内核模块功能,主要介绍模块的功能和作用以及其加载和卸载. 查看当前系统以及加载的内核模块命令:lsmod  modinfo lsmod 命令 lsmod - program to show the

谢烟客---------Linux之内核编译及LFS制作

内核组成.内核优化.内核编译步骤:开发环境.硬件信息.展开到源码树.内存特性设定.编译 屏幕:在一个终端上,为多个进程,开启多个使用接口. 何谓交叉编译:目标代码非当前平台 有10天没有学习了,去做了LFS,当然得感谢我"瑞哥",学习Linux的导师,www.mykernel.cn , 要不是他告诉我说,选对发行版本和LFS手册很关键,否则很难一次成功的. 前3天就是不懂,好不容易编译到gcc,呀!失败了,..... 心得:体验就够了,没有必要花时间在LFS制作之上,完全浪费时间. 1

Linux内核编译

一.背景介绍 编译内核虽然在实际工作中用到的几率不大,但作为一个Linux运维人员,还是要对编译内核有初步的了解,以下就来介绍下编译内核的方法 二.操作步骤 1.检查开发环境 以CentOS6为例,确认Server Platform Development和Development tools这两个包组已安装. yum grouplist | grep "Development" 2.下载内核源码 此处以3.10.105版本为例,下载到root用户的家目录下并解压到指定目录,同时创建一个

自制linux和内核编译

自制linux和内核编译 1.分区并创建文件系统 fdisk /dev/sdb分两个必要的分区/dev/sdb1对应/boot /dev/sdb2对应根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2.挂载boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3.安装grub grub-install --root-directory=/mnt  /dev/sdb 4.建立grub.conf: vim /mnt/boot/gr