Linux内核的编译(Ubuntu为例

1、获取linux内核源代码

Linux内核的编译(Ubuntu为例

在下载目录打开终端,输入命令

 sudo tar -xvf linux*.tar.xz -C /usr/src

解压到/usr/src文件夹中

2、选择和启动内核配置程序

打开终端,输入命令cd /usr/src/linux-5.0
(最后一项为你所下载的linux内核源代码文件夹的名称)

准备安装环境,输入命令

sudo apt-get install kernel-package build-essential libncurses5-dev fakeroot

输入命令,sudo make menuconfig(文本选择界面,字符终端)
(ps:请提前安装好make,gcc,bison,flex,libncurses-dev
安装方式为,sudo apt-get install make(换成对应的名字 即可)

打开后如图
Linux内核的编译(Ubuntu为例

3.根据需要配置内核模块和参数(默认即可)

如需修改, 可参考如下
1 、Loadable module support 设置对可加载模块支持。

Enable loadable module support(y)
Set version info on all module symbols (n)
Kernel module loader(y)

2、 Processor type and features

设置CPU的类型
	Processor family
选择CPU类型
	High Memory Support (n)
	Math emulation (n)
	MTTR support: (n)
	Symmetric multi-processing support (n)

3 General setup

对普通的一些属性进行设置。
		Networking support:(y)
		PCI support(y)
		PCI access mode PCI卡存取模式: BIOS、Direct和Any
		Support for hot-pluggable devices (n)
		PCMCIA/CardBus support (n)

4 Parallel port support 并口支持 (y)
5 Plug and Play configuration:即插即用配置(y)
6 Block devices 块设备支持的选项

   Normal PC floppy disk support 软盘支持(y)
   Network block device support 网络块设备支持(y)

7 Networking options 选取TCP/IP networking选项
8 Network device support 网络设备支持的选项

例如:使用Realtek 8139网卡
	Ethernet(10 or 100Mbit) (y)
	RealTeck RTL-8139 PCI Fast Ethernet Adapter support (y)

9 Mice 鼠标设置选项:串口、PS/2等类型鼠标
10 File systems 文件系统类型。

DOS FAT fs 选项:FAT16, FAT32
NTFS file system support
/proc file system support: (y)

11.Sound 声卡驱动,选项:声卡型号
12.USB support USB接口的支持,根据需要选择。

4、重新编译新的内核

sudo make clean        (清除旧的编译结果
sudo make bzImage . (/arch/i386/boot/bzImage

5、编译和安装模块

sudo make modules
sudo make modules_install
(模块被编译且安装到 /usr/lib/<内核版本号> 目录下。

6、启动新内核

配置grub,更新grub启动信息

sudo update-grub

如下配置默认也可

cp bzImage /boot/bzImage

LILO

配置/etc/lilo.conf
image=/boot/bzImage
label=newLinux build by Zhang San Feb.28, 2012

命令 #lilo 使配置生效
GRUB (与发行版本有关)

配置/boot/grub/grub.conf
title newLinux build by Zhang San Feb.28, 2012
root (hd0,1)
kernel /boot/bzImage ro root=/dev/hda2