为什么有些人想要编译新内核? Debian 自带的默认内核已经包含了绝大部分配置,所以编
译新内核并不是必需的。并且,Debian 提供了多个内核供选择。所以您应该先确认一下,
有没有适合您硬件的内核映像软件包存在。然而,基于下列理由,编译新内核还是很有用
的:
- 支持某些特殊的硬件,或者默认的内核配置和某些硬件冲突
- 使用某些不为所提供的内核支持的选项 (例如,支持 high memory)
- 通过删除无用的驱动程序来优化内核,以减少启动时间
- 创建整体的而不是模块化的内核
- 运行最新的内核或开发中的内核
- 深入了解 linux 内核
* 依赖软件
想要编译内核,还必须安装一些软件:
libc6-dev, gcc, make用于编译源代码,libncurses5-dev用于建立文本菜单界面,
而kernel-package则用来建立deb包。运行:
sudo apt-get install libc6-dev gcc make libncurses5-dev kernel-package
* 获取源代码
首先查找可用的源代码:
apt-cache search linux-source
下载查找到的源代码:
<example>
sudo apt-get install linux-source-2.6.X
</example>
* 配置(增删)内核
进入目录并进入配置界面:
cd /usr/src/
sudo tar xjvf linux-source-2.6.X.tar.bz2
cd linux-source-2.6.X
sudo make menuconfig #如果没有libncurses5-dev,这里会出错
** 按键信息
+---------+--------------+
| 按键 | 含义 |
+---------+--------------+
| 回车 | 进入子菜单 |
+---------+--------------+
| Y | 加入内核 |
+---------+--------------+
| N |模块化加入内核|
+---------+--------------+
| M | 帮助信息 |
+---------+--------------+
| ? | 切换选项 |
+---------+--------------+
| / | 查找 |
+---------+--------------+
| ESC | 回到父菜单 |
+---------+--------------+
** 配置选项
- code maturity level option: 代码成熟度,不选会不加入可开发中的内核功能。
- general setup: 通用的配置。如支持swap,system V IPC等等。
- loadable module support: 可加载模块支持,当然要选择。
- block layer: 支持大硬盘,大文件。
- processer type and layer: 选择CPU类型。
- power management option: 高级电源管理,笔记本用户比较需要。包括ACPI和APM,听说两
个不能同时使用。
- bus option:包括PCI,PCMCIA,EISA,MCA和ISA等总线。一般都必须选择PCI。其它的根据需 要选择。
- executable file format:可执行文件格式,一般要全部选择。
- networking:支持一些协议的东西。
- device drivers:这里面内容很多。主要是各种设备的驱动程序。
- file systems:支持的文件系统,一般要选择ext2,ext3,fat,vfat, ntfs, iso9660等。
* 编译内核并生成deb包
sudo make-kpkg --revision=custom.1.0 kernel_image
其中make-kpkg是kernel-package包的一个程序。
--revision=custom.1.0说明版本号为custom.1.0。
kernel_image是一个TARGETS,也可以说一个指令,它指示make-kpkg
/usr/src/目录上生成一个deb包。
* 安装内核
cd ..
sudo dpkg -i kernel-image-2.6.X...deb
* 重启系统
sudo shutdown -r now
译新内核并不是必需的。并且,Debian 提供了多个内核供选择。所以您应该先确认一下,
有没有适合您硬件的内核映像软件包存在。然而,基于下列理由,编译新内核还是很有用
的:
- 支持某些特殊的硬件,或者默认的内核配置和某些硬件冲突
- 使用某些不为所提供的内核支持的选项 (例如,支持 high memory)
- 通过删除无用的驱动程序来优化内核,以减少启动时间
- 创建整体的而不是模块化的内核
- 运行最新的内核或开发中的内核
- 深入了解 linux 内核
* 依赖软件
想要编译内核,还必须安装一些软件:
libc6-dev, gcc, make用于编译源代码,libncurses5-dev用于建立文本菜单界面,
而kernel-package则用来建立deb包。运行:
sudo apt-get install libc6-dev gcc make libncurses5-dev kernel-package
* 获取源代码
首先查找可用的源代码:
apt-cache search linux-source
下载查找到的源代码:
<example>
sudo apt-get install linux-source-2.6.X
</example>
* 配置(增删)内核
进入目录并进入配置界面:
cd /usr/src/
sudo tar xjvf linux-source-2.6.X.tar.bz2
cd linux-source-2.6.X
sudo make menuconfig #如果没有libncurses5-dev,这里会出错
** 按键信息
+---------+--------------+
| 按键 | 含义 |
+---------+--------------+
| 回车 | 进入子菜单 |
+---------+--------------+
| Y | 加入内核 |
+---------+--------------+
| N |模块化加入内核|
+---------+--------------+
| M | 帮助信息 |
+---------+--------------+
| ? | 切换选项 |
+---------+--------------+
| / | 查找 |
+---------+--------------+
| ESC | 回到父菜单 |
+---------+--------------+
** 配置选项
- code maturity level option: 代码成熟度,不选会不加入可开发中的内核功能。
- general setup: 通用的配置。如支持swap,system V IPC等等。
- loadable module support: 可加载模块支持,当然要选择。
- block layer: 支持大硬盘,大文件。
- processer type and layer: 选择CPU类型。
- power management option: 高级电源管理,笔记本用户比较需要。包括ACPI和APM,听说两
个不能同时使用。
- bus option:包括PCI,PCMCIA,EISA,MCA和ISA等总线。一般都必须选择PCI。其它的根据需 要选择。
- executable file format:可执行文件格式,一般要全部选择。
- networking:支持一些协议的东西。
- device drivers:这里面内容很多。主要是各种设备的驱动程序。
- file systems:支持的文件系统,一般要选择ext2,ext3,fat,vfat, ntfs, iso9660等。
* 编译内核并生成deb包
sudo make-kpkg --revision=custom.1.0 kernel_image
其中make-kpkg是kernel-package包的一个程序。
--revision=custom.1.0说明版本号为custom.1.0。
kernel_image是一个TARGETS,也可以说一个指令,它指示make-kpkg
/usr/src/目录上生成一个deb包。
* 安装内核
cd ..
sudo dpkg -i kernel-image-2.6.X...deb
* 重启系统
sudo shutdown -r now