有时候可能需要自己编译 Linux 内核,下面简单讲述编译 Linux Kernel 3.0 的一般方法(在 Fedora 和 Ubuntu Linux 发行版上测试通过)。作为示例,下面使用的是 3.0 RC4 版内核 (update: 2011-8-19 这篇文章是从我旧 blog 搬过来的,整理此文时 3.1-RC2 版已经发放出,不过下面的方法仍然适用的)。
1、下载并解压缩 Linux Kernel 3.0 RC4 源代码
到
Linux Kernel 官方网站下载得到 linux-3.0-rc4.tar.bz2 文件,把它放到一个你有权限读写的文件夹,运行下面命令解压缩并进入解压后的文件夹:$ tar -jxvf linux-3.0-rc4.tar.bz2$ cd linux-3.0-rc4
2、配置内核编译参数
先安装 ncurses 工具,这是字符版配置工具所依赖的:$ sudo apt-get install libncurses5 libncurses5-dev(Ubuntu 适用)$ sudo yum install ncurses ncurses-devel(Fedora 适用)因为新版本配置工具会自动寻找当前系统环境的配置信息(比如 /boot/config-XXX 文件),所以接下来可以直接运行字符版的配置工具:$ make menuconfig这里应该是整个过程最为困惑的一部,因为有很多配置选项。具体的配置方法和含义可以搜索相关的文章,当然也可以一切用默认值,直接选中菜单下面的“Save”然后退出,配置工具会生成一个“.config”文件。
3、开始编译
$ make编译过程从十几分钟到一二小时不等,视乎你计算机运行的速度。如果CPU是4核的,可以在 make 命令后面加上“-j4”参数让编译程序同时使用4核编译,这样编译所需要的时间能大大缩减。如果编译中途意外中断,然后想重新开始编译,需要先执行下面命令清理一下编译现场然后再编译:$ make mrproper
4、安装编译好的模块和内核
内核编译好之后,使用下面命令安装 modules:$ sudo make modules_install上面的命令会将编译好的 modules 复制到 “/lib/modules/3.0.0-rc4” 文件夹,其中“3.0.0-rc4”是内核的版本号,你会在“/lib/modules”文件夹中看到其他版本内核的 modules,包括当前系统的。然后安装编译好的内核映像文件:$ sudo make install上面的命令会把编译文件夹里面的“arch/x86/boot/bzImage”文件复制到“/boot”,同时还会复制 config 和 System.map 文件,最终在“/boot”会多出如下3个文件:
/boot/config-3.0.0-rc4
/boot/System.map-3.0.0-rc4
/boot/vmlinuz-3.0.0-rc4是不是发现缺少了一个 initrd.img 文件(
初始ram磁盘文件)。使用下面命令创建一个即可:$ sudo mkinitramfs 3.0.0-rc4 -o /boot/initrd.img-3.0.0-rc4(Ubuntu 适用)$ sudo mkinitrd initramfs-3.0.0-rc4.img 3.0.0-rc4(Fedora 适用)
5、修改 GRUB 启动菜单,增加新内核的启动选项
这一步可以使用 Grub2 的自动生成工具完成$ sudo update-grub2(Ubuntu 适用)$ sudo grub2-mkconfig(Fedora 适用)假如你(对自己编译的内核没什么把握)不希望修改 Grub 启动菜单,则可以直接在启动 Linux 时手动指定新内核,方法如下:(熟悉 Grub 的请忽略以下段落)
重启计算机,在 Grub 菜单界面(假如没有看到的话,则在重启计算机时按下 ESC 键)按“c”进入命令模式,先选择启动文件的分区,假设 “/boot”位于第一块硬盘第一个分区:
set root=(hd0, 1)
其中0表示第一块硬盘,1表示第一个分区。然后指定内核映像和虚拟ram磁盘文件位置:
linux /boot/vmlinuz-3.0.0-rc4 root=/dev/sda1
initrd /boot/initrd.img-3.0.0-rc4在 grub 命令模式下也可以按“tab”键自动补完的,不需要一个字一个字地敲。最后输入“boot”启动。 ArchLinux 的CPU和显卡的节能设置Linux下的动态链接库.so文件的使用相关资讯 Linux内核
- IT人员必须了解的六项Linux内核变 (今 12:05)
- Linux 内核更新:3.10.98、3.14.62 (02月26日)
- Linux:让手机运行主线内核 (11/26/2015 22:16:17)
| - Linux内核自防护项目 (05月24日)
- Linux 内核架构的理解 (12/09/2015 09:01:01)
- Linux内核被指缺乏安全性 (11/07/2015 08:28:47)
|
本文评论 查看全部评论 (0)