Submitted by ╰☆往事如风 on 2006, August 20, 2:18 AM. Linux学习
进入 root 帐户:
> sudo -s -H
安装必要的工具:
> apt-get install build-essential
(安装 gcc, make 等)
> apt-get install libncurses-dev
(安装 make menuconfig 时必须的库文件)
> apt-get install kernel-package, fakeroot
(Debian 系统里生成 kernel-image 的一些配置文件和工具)
> apt-get install initramfs-tools, module-init-tools
(顾名思义)
安装 kernel-source:
可以从 Ubuntu 的源安装,这样的好处是简单,而且安装的内核 是
Debian 化了的,缺点是内核 不是最新的内核 。
> apt-get install linux-source
也可以从 www.kernel.org 下载内核 安装。kernel.org 的境象应该
很多,选一个最快的来下载,因为要下载的文件很大。我这里介绍的
是安装 2.6.17 的内核 ,加上了 ck 的补丁。
下载 linux-2.6.17.tar.bz2 和 patch-2.6.17-ck1.bz2 ,并且把它
们都存放在 /usr/src 目录下。
> tar xvjf linux-2.6.17.tar.bz2
> ln -s linux-2.6.17 linux
(如果已经有了 linux 目录,则要先将其删除)
> cd linux
> bzcat ../patch-2.6.17-ck1.bz2 | patch -p1
至此,内核 源文件以及补丁就都安装好了。
安装声卡和显卡驱动:(可选)
> apt-get install alsa-source
(可能会建议安装 kernel-source-2.4.**, 选择不安装这个
kernel-2.4.**)
该命令会在目录下生成一个 alsa-driver.tar.bz2 文件。
> cd /usr/src
> tar xvjf alsa-driver.tar.bz2
该命令会在 /usr/src/modules 目录下生成 alsa-driver 目录
> dpkg-reconfigure
(选择你机器上有的声卡)
因为我的显卡是 nvidia 所以我就只介绍如何安装 nvidia 的驱动
> apt-get install nvidia-kernel-source
> cd /usr/src
> tar xvzf nvidia-kernel-source.tar.gz
在 /usr/src/modules 目录下生成了 nvidia-kernel 目录
配置内核 :
> cd /usr/src/linux
> make menuconfig
也可以在执行 make menuconfig 之前从 /boot 目录拷贝一个
config 文件
> cp /boot/config-2.6.15-25-386 .config
怎样配置内核 是一个大学问,你如果有时间,可以一项一项的看帮
助,然后决定如何配置。
以下是一些你可以考虑的优化选项:
a. Block layer –> Support for Large Block Devices
(我想大家应该没有那么有钱能有那么大的设备,所以可以不选)
b. Processor type and features –> Subarchitecture type
Processor type and features –> Processor family
(不用多说,大家都明白)
c. Processor type and features –> High Memory Support
(如果你的机器没有4G的内存,可以不选)
d. Power Management Options 里可以 disable 掉所有非 ACPI 的选
项。当然如果你的机子够老则另当别论。
e. Networking –> Networking options 里的大部分我都 disable
了,只留下了我必须的,比如: Packet socket, Unix domain
sockets, TCP/IP networking 等,事实上我只选择了这些。
f. Device Driver Options 里的很多选项都完全用不到,比如
Parallel Port support, Memory Technology Devices, Old
CD-ROM drivers 等
g. Device Driver Options –> ATA/ATAPI/MFM/RLL support 是关于硬
盘等的,建议小心处理。
h. Device Driver Options –> Network device support 里就只用选你
的显卡
i. Device Driver Options –> Character devices –> /dev/agpgart
因为 nvidia 的驱动自带了 AGP 支持,所以我彻底 disable 了这一
项。事实上,menuconfig 可能不让 disable 这一项,我是通过手工修
改 .config 文件来彻底 disable 这一项的。
j. Device Driver Options –> Direct Rendering Manager (…)
不选,原因同上 (只对有 nvidia 卡的系统)
k. Device Driver Options –> Graphics support
这一项我也完全没有选,因为我通常都在图形界面工作,所以不需要
一个 Graphic 了的文本界面,
l. Device Driver Options –> Sound
只选择了 Sound Card support。 Advanced Linux Sound Architecture
和 Open Sound System 下的选项都没有选,因为有专门的ALSA Driver
m. 因为我的系统是台式机,所以所有关于笔记本的选项也都可以不选。
n. 所有关于 log, debug 的选项也都没有选。
编译内核 和驱动:
> cd /usr/src/linux
> make-kpkg clean
> fakeroot make-kpkg –initrd –append-to-version=-686-smp
–rev=1.0 kernel_image modules_image
说明:initrd 选项是为了生成 initrd.img 用的。 另外的 -686-smp 和
1.0 可以是任何别的一些字符串。
如果一切顺利,该命令结束以后会在 /usr/src 目录下生成三个 deb 文件,
分别是 kernel-image-2.6.17-ck1_1.0_i386.deb, nvidia-kernel-****.deb
和 alsa-****.deb
安装:
> cd /usr/src
> dpkg -i kernel-***.deb nvidia-***.deb alsa-***.deb
系统会自动安装内核 ,生成 initrd 境象,配置 grub 菜单。
最后的说明:
a. 如果因为某些原因使得新装的内核 不能正常工作而需要对内核 作一些小
修改,则只需要进入 /usr/src/linux 后 make menuconfig,然后不用
make-kpkg clean 而直接
fakeroot make-kpkg –initrd –append-to-version=*** –rev=**
!这里 rev 和 append-to-version 的参数要和原来的一样。
这样可以节省很多重新编译 的时间。
b. 新的内核 的第一次运行时,图形界面有可能不能正常工作,只需进入
root 帐户,执行 depmod ,然后再 /etc/init.d/gdm restart 。
简单的介绍怎样在 Ubuntu 下编译 新的 2.6.17 内核 ,这里的方法也
可以用于别的基于 Debian 的系统。