当前位置:
硬件测评 > 编译Linux内核的四个简单步骤
编译Linux内核的四个简单步骤
本文简单介绍了Linux内核编译的四个步骤,从安装编译环境到最后修改内核启动选项,简单明了。本文使用的环境是基于Debian的Ubuntu,可以简单地从Ubuntu源码安装,也可以从内核官网下载。
下面介绍编译Linux内核的四个步骤:
1.需要先安装编译环境
输入root账户:
> 苏
输入密码
安装必要的工具:
> apt-get install build-essential
(安装gcc、make等)
> apt-get 安装 libncurses-dev
(安装make menuconfig时需要库文件)
> apt-get 安装内核包、fakeroot
(Debian系统中生成kernel-image的一些配置文件和工具)
> apt-get 安装 initramfs-tools、module-init-tools
2. 安装内核源码:
它可以从 Ubuntu 源安装。优点是简单,安装的内核是基于Debian的。缺点是内核不是最新的内核。
> apt-get 安装 linux 源
您还可以从 www.sychzs.cn 下载内核安装。 www.sychzs.cn的镜像应该很多,选择最快的下载,因为下载的文件比较大。我这里介绍的是安装2.6.24内核并添加ck补丁。
下载www.sychzs.cn2和www.sychzs.cn2并将其存放在/usr/src目录下。
> tar xvjf www.sychzs.cn2
> ln -s linux-2.6.24 linux
(如果已有linux目录,请先删除)
> 光盘Linux
> bzcat ../www.sychzs.cn2 |补丁-p1
至此,内核源文件和补丁就安装完成了。
3.编译内核
将源码包解压到/usr/src/linux-2.6.24,然后在/usr/src/下创建一个名为linux的链接,指向/usr/src/linux-2.6.24。在外壳中输入
root@FE2000:~# cd ..
root@FE2000:/# cd /usr/src/linux
root@FE2000:/usr/src/linux# make mrproper
root@FE2000:/usr/src/linux# make menuconfig
或者进行gconfig
此时qconf已经读取了默认配置,你也可以这样做:
点击File->Load in qconf,读取其他配置文件。
例如/boot/config-2.6.18-23-686
接下来在 qconf 中配置 .config 文件。选择“Y”(勾选)将其编译到内核中,选择“M”(点)将其编译成模块供内核动态调用。选择“N”不安装。您也可以保留默认选项...
这里仅仅是少数:
一般设置
优化大小(注意损坏的编译器!)爱好者可以选择 Y 以获得更小的内核。
处理器类型和功能
对称多处理支持如果没有多线程处理器,可以选择N
根据您的 CPU 选择处理器系列。
高内存支持 如果您的内存超过 1G,请选择“4GB”。如果您的内存小于 1G 并且将来不打算升级到 1G,请选择“关闭”。
总线选项(PCI、PCMCIA、EISA、MCA、ISA)
PCI支持
PCI Express 支持 如果较旧的机器没有 PCI-E 设备,则可以选择 N。
ISA支持 较新的机器没有ISA设备,可以选择N
MCA支持一般选择N
NatSemi SCx200支持一般选择N
PCI 热插拔支持
支持 PCI 热插拔(实验) 如果没有 PCI 热插拔设备,请选择 N
设备驱动程序
块设备
在 CD/DVD 介质上写入数据包启用写入缓存(实验) 如果您有录音机并且想要启用写入缓存功能,请选择 Y
ATA/ATAPI/MFM/RLL 支持
包含 IDE/ATA-2 DISK 支持 如果你的 /boot 放在 IDE 硬盘上,这里即使选择 M,也必须选择 Y。否则,启动时会出现“等待根文件系统”提示,系统将会停滞。
SCSI 设备支持 如果您有 SATA 硬盘,请选择 Y
SCSI 磁盘支持 如果您的 /boot 放置在 SATA 硬盘上,请务必选择 Y。
字符设备
I2C支持一般可以选择Y或M
图形支持不建议将图形驱动程序编译到内核中。 ,选择M编译成模块,方便以后驱动升级。
支持帧缓冲设备
VESA VGA显卡支持可以选择Y
标志配置
启动徽标 如果您想看到 Linux 启动徽标,请选择 Y
声音
声卡支持 选择Y,除非你没有声卡
可以根据需要添加和删除其他驱动程序。根据机器配置删除不需要的驱动可以缩短编译时间。您可以在命令行中输入lspci或dmesg来查看硬件信息。
文件系统
CD-ROM/DVD 文件系统
ISO 9660 CDROM 文件系统支持 一般选择 Y
DOS/FAT/NT 文件系统
VFAT (Windows-95) fs 支持 如果您有 FAT32 分区,请选择 Y。
NTFS 文件系统支持 如果您有 NTFS 分区,请选择 Y。
NTFS写入支持 如果要写入NTFS分区,请选择Y
母语支持
简体中文字符集(CP936、GB2312) 选择Y或M,避免读取FAT分区时出现中文乱码。设置完成后,点击保存按钮。无论最初加载哪个配置文件,qconfig 都会将设置保存到隐藏文件/usr/src/linux/.config 中。
下面输入make开始编译。这个过程大约需要 40-100 分钟,具体取决于您机器的速度......
root@FE2000:/usr/src/linux# make
安装内核
root@FE2000:/usr/src/linux# make install
编译模块
root@FE2000:/usr/src/linux# 制作模块
安装模块
root@FE2000:/usr/src/linux# make module_install
然后
root@FE2000:/usr/src/linux# cd /
root@FE2000:/usr/src/linux# /usr/sbin/mkinitramfs -o /boot/initrd.img-2.6.24 2.6.24
如果出现错误信息,可能是因为没有安装 initramfs-tools。首先安装它。
如果不执行此步骤,启动时会出现提示
……
initrd /initrd.img-2.6.24
错误 15:找不到文件
4.修改内核启动选项
最后打开/boot/grub/menu.lst
添加类似于下面的两段## ## End Default Options ##
标题 Ubuntu,内核 2.6.24
根(hd0,4)
内核 /vmlinuz-2.6.24 root=/dev/hdd6
initrd /initrd.img-2.6.24
保存默认值
启动
标题 Ubuntu,内核 2.6.24(恢复模式)
根(hd0,4)
内核 /vmlinuz-2.6.24 root=/dev/hdd6 ro single
initrd /initrd.img-2.6.24
启动
请注意,根字段和内核字段必须模仿 menu.lst 下面的现有内容进行编写。下面是(hd0,4),那么你也写(hd0,4),下面写root=/dev/hdd6,你也写root=/dev/hdd6,但是内核版本号改为当前编译的版本号。
然后删除下面重复的savedefault。
重新启动计算机并在 GRUB 中选择要启动的新内核。
【编辑精选】
如何在2.6内核中编译内核模块
Linux 2.6.31 内核优化指南
Ubuntu 9.10基于Linux 2.6.31.1内核