热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(Mark)(Ubuntu)Ubuntu12.04LTS编译内核(Linux)(内核)

编译环境为Ubuntu12.04LTS64Bit内核版本3.2.0-591.https:www.kernel.org下载内核和补丁linux-3.13.6.tar.xz和patch

 

编译环境为Ubuntu 12.04 LTS 64 Bit 内核版本3.2.0-59

1.https://www.kernel.org/下载内核和补丁linux-3.13.6.tar.xz和patch-3.13.6.xz

2.安装编译时需要的工具,构建编译环境

sudo apt-get install build-essential kernel-package libncurses5-dev libqt3-headers

注:

build-essential  (基本的编程库(gcc, make等)

kernel-package   (Debian 系统里生成 kernel-image 的一些配置文件和工具)

libncurses5-dev  (meke menuconfig要调用的)

libqt3-headers   (make xconfig要调用的)

 

3.解压内核到/usr/src/下,补丁到/usr/src/linux-3.13.6/下

sudo tar xvf linux-3.13.6.tar.xz -C /usr/src/
xz
-d patch-3.13.6.xz
sudo cp patch-3.13.6 /usr/src/linux-3.13.6/

4.净化内核

cd /usr/src/linux-3.13.6/
sudo make mrproper

注:

 make mrproper

 删除之前编译所生成的文件和配置文件,备份文件,如.config配置文件。如果你是第一次编译,可不执行。

5.为内核打上补丁,用file 命令查看补丁

file patch-3.13.6

输出:patch-3.13.6: unified diff output, ASCII text

此处Patch文件使用diff 做的,因此使用diff命令打补丁

sudo diff -rN patch-3.13.6 ./

注:如果patch文件是patch做成的,那么就相应的用:patch -p1

5.配置内核

  对于内核配置可不是那么熟练什么的,可以用原来系统中存在的配置文件。原来系统中的配置文件,位置有两种情况:一是放在/boot下面的,一个是放在/usr/src/linux-headers-xxxxx-generic/下面.

  本机是把/usr/src/linux-headers-xxx-generic/下面的.config复制到要编译的内核路径下

sudo cp ../linux-headers-3.2.0-59-generic/.config ./

或者  sudo cp /boot/config-3.2.0-59-generic ./.config

6.清理编译中间文件

sudo make clean

注: 删除绝大多数编译生产的文件并保留配置文件。如果你是第一次编译,可不执行

7.在menuconfig中配置内核

sudo make menuconfig

默认会加载.config的配置,也可根据自己的需求在界面中修改。然后 Exit --->Yes

8.编译

sudo make -j4

注:make命令可以理解为 make bzImage(编译内核) 和make modules (编译模块)

-j4 表示jobs=4,同时最多跑4个进程。make自己会协调,如果CPU等资源不够可能小于4个。不过一般瓶颈都在硬盘,所以一般能看到4个进程一起跑。

9.安装模块,将编译好的模块安装到/lib/modules/下

sudo make modules_install

10.创建创建initrd 文件

sudo mkinitramfs -o /boot/initrd.img-3.13.6-generic

注:如果linux系统安装在scsi磁盘上,这步是必须的,否则可以跳过。

11.安装内核

sudo make install

注:此步包含如下操作

cp /usr/src/linux-3.13.6/arch/x86/boot/bzImage /boot/vmlinuz-3.13.6-generic
cp/usr/src/linux-3.13.6/System.map /boot/System.map-3.13.6-generic

12.更新grub

update-grub2

到此完成内核编译安装完成

注:使用命令查看grub添加的信息 3.13.6 为新编的内核

sudo gedit /boot/grub/grub.cfg

查看信息中包含如下配置描述

menuentry 'Ubuntu,Linux 3.13.6-generic' --class ubuntu --class gnu-linux --class gnu --class os {recordfailgfxmode $linux_gfx_modeinsmod gzioinsmod part_msdosinsmod ext2set root='(hd0,msdos8)'search --no-floppy --fs-uuid --set=root 67f03453-7d9b-4a50-9441-ce3af69abc42linux /boot/vmlinuz-3.13.6-generic root=UUID=67f03453-7d9b-4a50-9441-ce3af69abc42 ro quiet splash $vt_handoffinitrd /boot/initrd.img-3.13.6-generic
}

重新编译可从第6步开始,如要清除配置文件从第4步开始。

 

 

转:https://www.cnblogs.com/think-o/p/3586655.html



推荐阅读
author-avatar
失意的汐_194
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有