Linux Kernal 2.60 编译手记
时间:2007-04-26 来源:LinuxAndrew
(0)编译内核是很简单的
相信这句话,然后大胆开始尝试。
(1)弄清楚机器硬件情况
编译Linux内核之前,首先要搞清楚机器的硬件配置,这样才能对症下药,针对适合自己的
硬件的选项进行最优化配置。
我的机器情况:
CPU: AMD Athlon XP 1600+
主板: VIA KT266A
显卡: NVIDIA Geforce2 Ti
声卡: 板载 VIA AC97 (8233)
网卡: RealTek 兼容
内存: 512M DDR
硬盘: IBM 腾龙4 80G
CRT: ASUS 17P
Keyboard: PS/2
Mouse: USB
光驱: CD-RW
Linux Distribution: Slackware 9.1 pro
(2)编译前工作
下载:到kernel.org或者其镜像站点下载linux-2.6.0.tar.bz2到/usr/src
解压:cd /usr/src && tar xvfj linux-2.6.0.tar.bz2
cd linux-2.6.0
编译前清理,恢复默认设置:
make mrproper
进入内核设定:
make xconfig
(或者用make config进入老式交互式配置,或者make menuconfig进入文本界面的菜单方式
配置)
(3)编译设定
注:* 表示第一级菜单项(xconfig在左边面板中)
-> 表示 * 项的下级菜单项
如果一个 * 项下面列出了多个 -> ,那么他们是同级的。
第一部分:CPU
* Processor type and features
-> processor family
根据我的情况(以后省略这句限定:),从P4改成了Athlon/Duron/K7
-> Symmetric multi-processing support
我只有一个CPU,取消之
第二部分:高级电源管理
* Power Management options (ACPI, APM)
使用默认的ACPI
第三部分:总线与设备接口
* Bus Options (PCI, PCMICA, EISA, MCA, ISA)
我没有PCMICA,也没有ISA,去掉他们
* Device Drivers -> Parallel port support
我没有并口打印机,去掉
* Device Drivers -> ATA/ATAPI/MFM/RLL support
-> SCSI emulation support
可以不要了,2.6.0支持CD-RW直接写入了(ATAPI direct writing)
-> PCI IDE chipset support -> Generice PCI bus-master DMA support
去掉默认的Intel PIIXn芯片组支持,选上VIA 82CXXX chipset support
* SCSI device support
使用默认值
* IEEE 1394(FireWire) support
我没有1394口,去掉
* USB support
用默认值
第四部分:网络
* Device Drivers -> Networking support
-> Networking options
嗯,tunnel, routing, packet filtering(iptables支持), QoS都在这里了。
我根据需要打开了Network packet filtering以便使用iptables
(-> Network packet filtering -> IP: Netfilter Configuration -> 全部选上!)
-> Dummy net device support
把默认的编成模块改成编入内核
-> Networking device support -> Ethernet(10 or 100Mbit)
网卡芯片组,RealTek兼容,默认不用改
-> 蓝牙,红外,我没有,不要
第五部分:显卡和声卡
* Device Drivers -> Character devices
-> /dev/nvram support 选上!
-> /dev/agpgart(AGP support)
取消Inter 440...,选择VIA chipset support
注意这里选的是主板AGP总线,不是显卡芯片组
(另:-> Intel/AMD/VIA HW Random Number Generator support
-> Enhanced Real Time Clock Support 选上,vmware需要/dev/rtc)
* Device Drivers -> Graphics support
-> support for frame buffer devices
选上VESA和nVidia Riva support
* Device Drivers -> Sound
-> Advanced Linux Sound Architecture (就用默认的ALSA,不用OSS)
-> PCI devices
去掉Intel i8xO/MX440...,选择VIA 82C686A/B, 8233 South Bridge
第六部分:文件系统
* File systems
-> Reiserfs support
我用reiserfs,选上
-> ROM file system
若想支持内存盘(见* Device Drivers -> Block devices),选上
-> DOS/FAT/NT Filesystems
选上NTFS支持,选上写支持!
-> Network File Systems
若想用SMB file system support就选上
-> Native Language Support
选上Simplified Chinese charset(cp936, GB2312)
第六部分:其他
* kernel hacking
据说是类似安全模式用于内核调试的,不选能够加快速度,所以全部去掉
(4)编译及编译后设定
编译:make dep && make modules && make
(编译花费时间:2003.12.19 00:21am-00:31am)
安装:make modules_install install
(内核大小:/vmlinuz 1982844)
修改/etc/lilo.conf,加入新内核启动选项,运行lilo写入mbr
重启:reboot
用uname -a检查内核版本,例如我的:
Linux hmisty 2.6.0 #1 Fri Dec 19 00:31:01 CST 2003 i686 unknown unknown GNU/Li
nu
x
(5)常见问题:
a. Q: 无法启动X了
A: 旧的显卡驱动模块肯定不能在新模块下用了,请修改/etc/XF86Config
例如我的就把Driver "nvidia"改成"nv",如果实在不行,就改成"vesa"
b. Q: 无声,但是不是报告/dev/dsp找不到设备
A: PCM声道被静音。用alsamixer取消PCM和Master的静音状态
c. Q: XXX软件报告XX需要内核支持,好象是这部分内核功能缺少了
A: 重新去/usr/src/linux-2.6.0编译模块(提醒备份.config,因为make mrproper会清
除.config中存储的设定)
相信这句话,然后大胆开始尝试。
(1)弄清楚机器硬件情况
编译Linux内核之前,首先要搞清楚机器的硬件配置,这样才能对症下药,针对适合自己的
硬件的选项进行最优化配置。
我的机器情况:
CPU: AMD Athlon XP 1600+
主板: VIA KT266A
显卡: NVIDIA Geforce2 Ti
声卡: 板载 VIA AC97 (8233)
网卡: RealTek 兼容
内存: 512M DDR
硬盘: IBM 腾龙4 80G
CRT: ASUS 17P
Keyboard: PS/2
Mouse: USB
光驱: CD-RW
Linux Distribution: Slackware 9.1 pro
(2)编译前工作
下载:到kernel.org或者其镜像站点下载linux-2.6.0.tar.bz2到/usr/src
解压:cd /usr/src && tar xvfj linux-2.6.0.tar.bz2
cd linux-2.6.0
编译前清理,恢复默认设置:
make mrproper
进入内核设定:
make xconfig
(或者用make config进入老式交互式配置,或者make menuconfig进入文本界面的菜单方式
配置)
(3)编译设定
注:* 表示第一级菜单项(xconfig在左边面板中)
-> 表示 * 项的下级菜单项
如果一个 * 项下面列出了多个 -> ,那么他们是同级的。
第一部分:CPU
* Processor type and features
-> processor family
根据我的情况(以后省略这句限定:),从P4改成了Athlon/Duron/K7
-> Symmetric multi-processing support
我只有一个CPU,取消之
第二部分:高级电源管理
* Power Management options (ACPI, APM)
使用默认的ACPI
第三部分:总线与设备接口
* Bus Options (PCI, PCMICA, EISA, MCA, ISA)
我没有PCMICA,也没有ISA,去掉他们
* Device Drivers -> Parallel port support
我没有并口打印机,去掉
* Device Drivers -> ATA/ATAPI/MFM/RLL support
-> SCSI emulation support
可以不要了,2.6.0支持CD-RW直接写入了(ATAPI direct writing)
-> PCI IDE chipset support -> Generice PCI bus-master DMA support
去掉默认的Intel PIIXn芯片组支持,选上VIA 82CXXX chipset support
* SCSI device support
使用默认值
* IEEE 1394(FireWire) support
我没有1394口,去掉
* USB support
用默认值
第四部分:网络
* Device Drivers -> Networking support
-> Networking options
嗯,tunnel, routing, packet filtering(iptables支持), QoS都在这里了。
我根据需要打开了Network packet filtering以便使用iptables
(-> Network packet filtering -> IP: Netfilter Configuration -> 全部选上!)
-> Dummy net device support
把默认的编成模块改成编入内核
-> Networking device support -> Ethernet(10 or 100Mbit)
网卡芯片组,RealTek兼容,默认不用改
-> 蓝牙,红外,我没有,不要
第五部分:显卡和声卡
* Device Drivers -> Character devices
-> /dev/nvram support 选上!
-> /dev/agpgart(AGP support)
取消Inter 440...,选择VIA chipset support
注意这里选的是主板AGP总线,不是显卡芯片组
(另:-> Intel/AMD/VIA HW Random Number Generator support
-> Enhanced Real Time Clock Support 选上,vmware需要/dev/rtc)
* Device Drivers -> Graphics support
-> support for frame buffer devices
选上VESA和nVidia Riva support
* Device Drivers -> Sound
-> Advanced Linux Sound Architecture (就用默认的ALSA,不用OSS)
-> PCI devices
去掉Intel i8xO/MX440...,选择VIA 82C686A/B, 8233 South Bridge
第六部分:文件系统
* File systems
-> Reiserfs support
我用reiserfs,选上
-> ROM file system
若想支持内存盘(见* Device Drivers -> Block devices),选上
-> DOS/FAT/NT Filesystems
选上NTFS支持,选上写支持!
-> Network File Systems
若想用SMB file system support就选上
-> Native Language Support
选上Simplified Chinese charset(cp936, GB2312)
第六部分:其他
* kernel hacking
据说是类似安全模式用于内核调试的,不选能够加快速度,所以全部去掉
(4)编译及编译后设定
编译:make dep && make modules && make
(编译花费时间:2003.12.19 00:21am-00:31am)
安装:make modules_install install
(内核大小:/vmlinuz 1982844)
修改/etc/lilo.conf,加入新内核启动选项,运行lilo写入mbr
重启:reboot
用uname -a检查内核版本,例如我的:
Linux hmisty 2.6.0 #1 Fri Dec 19 00:31:01 CST 2003 i686 unknown unknown GNU/Li
nu
x
(5)常见问题:
a. Q: 无法启动X了
A: 旧的显卡驱动模块肯定不能在新模块下用了,请修改/etc/XF86Config
例如我的就把Driver "nvidia"改成"nv",如果实在不行,就改成"vesa"
b. Q: 无声,但是不是报告/dev/dsp找不到设备
A: PCM声道被静音。用alsamixer取消PCM和Master的静音状态
c. Q: XXX软件报告XX需要内核支持,好象是这部分内核功能缺少了
A: 重新去/usr/src/linux-2.6.0编译模块(提醒备份.config,因为make mrproper会清
除.config中存储的设定)
相关阅读 更多 +