Gentoo Linux on T43 (5) 配置内核(kernel)
以下的内容,适合于正在按照Gentoo手册安装Gentoo Linux 系统,并且已经进行到:第7部分 配置内核 的人。此外,也适合那些已经安装了Gentoo 系统,打算调整内核配置或者需要升级内核的人。
内核版本:gentoo-sources-2.6.23
不同的内核
在网络上,我们经常会看到很多命名不同的Linux kernel 以及它们所对应的patchs,比如: git-sources, mm-sources 等等,它们分别代表了不同的含义,vanilla-sources 是官方 的定期发布版本,未经过任何修改与patch,而git-sources 则每天更新,是vanilla-sources 的开发快照。其它的,诸如mm-sources 是一个增加了补丁集合的版本,由Andrew Morton 进行维护。
这些kernel 也包含在Gentoo 的官方Package 列表里面,可以使用emerge 命令进行安装(虽然Gentoo 并不推荐),Gentoo 也为它们提供了一个概要的描述 。
在Gentoo手册中要求安装的gentoo-sources 也与它们类似,属于Gentoo Team 维护的一个经过patch 的版本。我们接下来的讨论都是基于此内核。
T43 有关的内核配置
这一节讨论与硬件有关的内核配置选项,以下的内容源于我在网上查找的资料以及自己的经验,有出处的的方我尽量附上链接。对于内核中配置的选择,我尽量摒除无用的选项,以减小内核文件的体积和生成的Modules 规模,但由于我的知识所限,以及个人喜好,仍然会有很多有争议的的方,如果您认为是一个错误,欢迎指正。
T43 不同型号的配置可能会有差别, 以下每一项设备后面,都标出了可能配备的硬件型号,这些硬件信息来源于ThinkWiki ,在开始之前,多花些时间,了解您的Thinkpad 含有哪些硬件,是值得的。
CPU
Intel Pentium M (Dothan) 1.6, 1.73, 1.86, 2.0, 2.13 or 2.26 GHz CPU
CONFIG_X86_PC=y CONFIG_MPENTIUMM=y CONFIG_X86_GENERIC=y
主板南桥
Intel 82801FBM ICH6-M southbridge
CONFIG_I2C_I801=m
电源管理
CONFIG_PM=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND_UP_POSSIBLE=y CONFIG_SUSPEND=y CONFIG_HIBERNATION_UP_POSSIBLE=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=m CONFIG_ACPI_BAY=m CONFIG_ACPI_PROCESSOR=m CONFIG_ACPI_THERMAL=m CONFIG_ACPI_BLACKLIST_YEAR=0 CONFIG_ACPI_DEBUG=y CONFIG_ACPI_DEBUG_FUNC_TRACE=y CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_SYSTEM=y CONFIG_X86_PM_TIMER=y
CPU 频率调节
CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_X86_ACPI_CPUFREQ=m
Fn + Keys
CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_BAY=y
硬盘/光驱
- 40, 60 or 80GB PATA HDD1
- UltraBay Slim with one of the following:
- DVD-ROM
- DVD-ROM/CD-RW Combo
- DVD±RW
有关PATA ,其实就是传统的、使用扁线缆的ATA 硬盘,是对应新的SATA 硬盘而提出的名称。T43 使用PATA 硬盘,但控制器是SATA 的。
前面文章中,提到了硬盘/光驱设备名称的问题 ,以下的设置会决定设备使用哪一种驱动程序,也决定了设备名使用sd* ,还是hd*。
如果打开CONFIG_IDE 选项,那么设备将会识别为hd* ,即使同时打开了scsi 的有关选项。因此,应该关闭CONFIG_IDE 及其以下的所有选项,无论它看起来多么正确,或者你仅仅为了保持兼容性,它都会强制使用落后的驱动程序,硬盘传输速度将遭受明显损失,CPU 占用率也明显提高。方案来源:Desktop Lags under Heavy IO
# CONFIG_IDE is not set # # SCSI device support # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=y CONFIG_SCSI_DMA=y CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SR=y CONFIG_CHR_DEV_SG=y # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=y CONFIG_SCSI_FC_ATTRS=m CONFIG_ATA=y CONFIG_ATA_ACPI=y CONFIG_ATA_PIIX=y CONFIG_PATA_MPIIX=m CONFIG_MD=y CONFIG_BLK_DEV_DM=y CONFIG_DM_CRYPT=y
显卡
- Intel 915GM northbridge with integrated Intel Graphics Media Accelerator 900 (no dvi docking support) using shared system RAM (未测试)
- Intel 915PM northbridge and an ATI Mobility Radeon X300 with 64MB on-chip dedicated RAM
ATI X300 有2种驱动方案,一种是开源驱动,一种是ATI 官方的闭源驱动(已经加入Gentoo Package 列表),闭源驱动对3D 加速支持的更好一些,不过最近开源社区的R300 项目已经可以支持X300 显卡的3D 加速功能了。对于内核配置之外的内容,将来讨论。
以下内核选项对显卡系统起到支持作用,确保已经配置(来源于Gentoo ATI Radeon FAQ: 2.1 - Which kernel options are important for the ATI drivers?)
CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_KMOD=y CONFIG_PCI=y CONFIG_MTRR=y CONFIG_TMPFS=y
下面讨论与显卡直接相关的内核选项。
使用开源驱动程序,仅仅需要配置以下2项即可。
CONFIG_DRM=m CONFIG_DRM_RADEON=m
CONFIG_DRM 与CONFIG_DRM_RADEON 编译为module 会分别对应为drm 与radeon 。
如果使用官方驱动,仅配置以下选项即可
CONFIG_DRM=m
另外一种选择,可以在内核disable CONFIG_DRM 选项,然后在外面emerge x11-base/x11-drm 软件包。
有很多人在论坛上问,X300 是否需要配置CONFIG_AGP(对应agpgart module),X300是 PCIe 接口,经过测试,不需要配置CONFIG_AGP ,无论是内建,还是Module,虽然加入AGP 支持可能不会产生错误,但也不会带来任何性能提升。以下FAQ 也可以作为参考: 2.1 - Which kernel options are important for the ATI drivers?
NOTE 2: if you have a PCIe card, the AGP settings should be irrelevant. If you encounter problems, make sure you're using a recent kernel and the latest driver version. Some people have also reported that they had to enable AGP for their PCIe cards to work.
...
If you're using a PCIe card, then as noted above, it shouldn't be necessary to enable AGP, but it may be worth trying if you have problems.
网卡
CONFIG_TIGON3=m
无线网卡
- IBM 11a/b/g Wireless LAN Mini PCI Adapter II(使用第三方驱动)
- Intel PRO/Wireless 2200BG Mini-PCI Adapter
- Intel PRO/Wireless 2915ABG Mini-PCI Adapter
Intel 2200/2915 芯片可以使用内置驱动程序
CONFIG_IPW2200=m
Bluetooth/Modem
声卡
AD1981B AC'97 Audio controller
内核支持很多种类的声卡驱动,主要包括2种:ALSA 与OSS,如下。几年前在Linux 下装声卡驱动程序,都是用OSS,不过现在有了更好的ALSA 。
<*> Sound card support Advanced Linux Sound Architecture ---> Open Sound System --->
对于T43,我们可以使用内核中的ALSA 驱动程序,选项CONFIG_SND_INTEL8X0 为此提供支持,CONFIG_SND_INTEL8X0M是对Modem 的支持,也要选择上。
以下是在我的系统中设定的所有与声卡有关的内核选项:
CONFIG_SOUND=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m CONFIG_SND_SEQUENCER=m CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y CONFIG_SND_MPU401_UART=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DUMMY=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MPU401=m CONFIG_SND_INTEL8X0=m CONFIG_SND_INTEL8X0M=m CONFIG_SND_AC97_POWER_SAVE=y CONFIG_AC97_BUS=m
另外还有一种方案,即使用外面的ALSA 驱动程序,可以直接在alsa 项目 的主页下载 alsa-driver。
有关内核以外的配置,后面单独讨论。
PCMCIA *2
CardBus slot (Type 2) (未测试)
ExpressCard/54 slot (未测试)
HDAPS 硬盘动态保护系统
IBM Active Protection System(使用第三方驱动)
Fingerprint Reader 指纹识别
Integrated Fingerprint Reader(使用第三方驱动)
嵌入式加密
IBM Embedded Security Subsystem 2.0 (未测试)
键盘、指点杆、触摸板、usb鼠标
UltraNav (TrackPoint / Touchpad combo) (整理中)
内核选项如下:
CONFIG_INPUT=y CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1400 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1050 CONFIG_INPUT_EVDEV=y CONFIG_INPUT_KEYBOARD=y CONFIG_INPUT_MOUSE=y CONFIG_INPUT_MISC=y CONFIG_INPUT_UINPUT=m CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y
非T43 相关特性的内核配置
这些配置不再一一列举,请见配置文件:config-2.6.23
Tips
查看当前运行系统的内核配置
$ zcat /proc/config.gz |grep -i drm




