Linux Kernel in a Nutshell - 8
Kernel Configuration Recipes
前面介绍了重新配置内核的机制,本章介绍制作自己的内核通常会遇到的那些问题,并给出对应指令来处理它。
Disks
Linux
内核支持宽泛的盘类型。本节将展示如何配置内核,让其支持大多数常见类型的盘控制器。
USB Storage
为了使用 USB
存储设备 (通常是 USB
闪存设备,或外部 USB
盘驱动),必须首先让 USB
能够正常工作。可以参考 USB
小节查看如何进行。
USB
存储设备可以使用 lsusb
程序辨识。如果执行下面的命令并有如下结果,那么 USB
存储设备就是在系统上的:
$ lsusb -v | grep Storage
bInterfaceClass 8 Mass Storage
使能它步骤如下:
-
一个
USB
存储设备是一个USB SCSI
设备与USB
连接沟通的实现。因此,SCSI
子系统必须使能:Device Drivers SCSI Device Support [*] SCSI Device Support
-
在
SCSI
系统中,SCSI disk support
必须使能,来让设备能够正确地挂载Device Drivers SCSI Device Support [*] SCSI disk support
-
使能
USB
存储支持Device Drivers USB Support [M] USB Mass Storage support
很多 USB
存储设备因为不符合标准 USB
规范,需要特殊的代码,被列为单独的配置项。如果你具有这样的设备,需要使能这样的选项。
IDE Disk
IDE
盘是最常见的 PC
盘类型。IDE
盘控制器令这些设备能够正常工作。以下面的命令的使用方式,来查看在你的系统上是否具有一个 IDE
盘控制器:
$ lspci | grep IDE
00:1f.1 IDE interface: Intel Corporation 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02)
应该注意的是,你系统上的响应内容可能不同。重要的是,这条命令展示出了 IDE
控制器。如果你只找到了 SATA
控制器,请查看下一节。
使能这一控制器,可以使用下面的步骤:
-
为内核使能
PCI
支持Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support
-
使能
IDE
子系统,与IDE
支持Device Drivers [*] ATA/ATAPI/MFM/RLL support [*] Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
-
在
ATA
系统中,特殊类型的IDE
控制器必须使能,以使它能够正常工作。为防止选择了错误的类型,可以勾选generic
通用型IED
控制器Device Drivers ATA/ATAPI/MFM/RLL support [*] generic/default IDE chipset support
-
使能不同的
PCI IDE
控制器Device Drivers ATA/ATAPI/MFM/RLL support [*] PCI IDE chipset support
这会打开一系列列有不同 IDE
控制器类型的子菜单,选择 lspci
步骤中出现的选项。
Serial ATA (SATA)
SATA
是 IDE
盘控制器的继任盘控制器。运行下面的命令,查看你的系统上是否具有 SATA
盘控制器:
$ lspci | grep SATA
00:1f.2 IDE interface: Intel Corporation 82801EB (ICH5) SATA Controller (rev 02)
应该注意的是,在你的系统上执行上面这条命令出现的结果可能有不同。重要的是执行完这条命令出现了信息打印。
SATA
盘使用 libata
内核库处理大部分 SATA
规范功能。这个库使用 SCSI
层来与块层沟通,因此不同的内核选项需要使能来令 SATA
盘能正常工作。使用下面的步骤:
-
使能内核对
PCI
的支持Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support
-
使能
SCSI
子系统Device Drivers SCSI Device Support [*] SCSI Device Support
-
在
SCSI
系统中,SCSI
盘支持选项必须使能,来令系统能够正常挂载Device Drivers SCSI Device Support [*] SCSI disk support
-
SATA
选项在SCSI low-level driver
小节下Device Drivers SCSI Device Support SCSI low-level drivers [*] Serial ATA (SATA) support
-
在这一小节中,使能你拥有的特殊的
SATA
控制器类型。参考之前使用lspci
命令的输出,比如大部分Intel
母板需要PIIX/ICH SATA
驱动:Device Drivers SCSI Device Support SCSI low-level drivers [*] Serial ATA (SATA) support [*] Intel PIIX/ICH SATA support
Burning a CD-ROM
烧写一个 CD-ROM
在 Linux
上非常简单。如果你的内核能够支持对 CD-ROM
的读取操作,那么它也能够支持对 CD-ROM
的少些。在 Linux
中有两种使能 CD-ROM
的方式,一个是 IDE
驱动一个是 SCSI
与 SATA
驱动。
IDE CD-ROM drives
IDE CD-ROM
驱动器使用与你的主 IDE
盘驱动器一样的 IDE
控制器。首先要确保 IDE
控制器按照前面介绍过的步骤正确配置了 IDE
盘。如果它已经能够成功支持,只需要一个额外的配置选项:
Device Drivers
[*] ATA/ATAPI/MFM/RLL support
[*] Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
[M] Include IDE/ATAPI CDROM support
SCSI and SATA CD-ROM drives
SATA
以及 SCSI CD-ROM
驱动器与你的主盘驱动器使用同样的控制器。首先确保 SATA
或 SCSI
控制器能够正常使用。为了支持 SATA
或 SCSI CD-ROM
驱动器,SCSI CD-ROM
驱动必须使能:
Device Drivers
SCSI Device Support
[*] SCSI CDROM support
Devices
Linux
支持很宽泛的设备类型,本节介绍如何使能一些常用设备类型。
USB
Linux
支持不同类型的 USB
设备。为了支持 USB
,首先必须使能对 USB
控制器的支持。
使用下面的命令来查看你的设备上具有 USB
控制器,并查看它是什么类型:
$ lspci | grep USB
00:1d.0 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)
需要注意的是,在你的设备上执行上面的命令输出内容可能不同,重要的是有类似的输出。
使用下面的步骤使能:
-
使能内核的
PCI
支持Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support
-
使能内核的
USB
支持Device Drivers USB Support [M] Support for Host-side USB
-
使能特殊
USB
主控制器的支持,如果不清楚你具有的是哪一个,可以使能所有Device Drivers USB Support --- USB Host Controller Drivers [M] EHCI HCD (USB 2.0) support [M] OHCI HCD support [M] UHCI HCD (most Intel and VIA) support
-
某个
USB
设备需要使能它们自己的驱动,大部分位于主USB
驱动小节下面Device Drivers USB Support
但是有些设备,比如
USB
影音以及DVB
等,被划分到了控制这类设备下。比如,USB
声驱可以在Sound
子菜单下找到:Device drivers Sound [*] Sound card support [*] Advanced Linux Sound Architecture USB Devices [M] USB Audio/MIDI driver
如果你希望插入 USB
存储设备 (USB
闪存),可以查看 USB Storage
小节。
IEEE 1394 (FireWire)
略
PCI Hotplug
PCI
热插拔系统随着对 ExpressCard
(拓展卡) 以及笔记本拓展坞的使用变得越来越流行。
查看你的硬件来确定是否一个 ExpressCard
能够插入其上,来确定你的设备是否具有一个 ExpressCard
控制器。
使能热插拔的步骤:
-
使能内核的
PCI
支持Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support
-
使能内核的
PCI
热插拔支持Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support PCI Hotplug Support [M] Support for PCI Hotplug (EXPERIMENTAL)
-
存在很多种类的
PCI
热插拔控制器,对于大部分笔记本电脑和扩展卡,使能ACPI
控制器Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support PCI Hotplug Support [M] Support for PCI Hotplug (EXPERIMENTAL) [M] ACPI PCI Hotplug driver
-
使能
PCI Express
控制器Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support [*] PCI Express Support [M] PCI Express Hotplug driver
PCMCIA/CardBus
几乎所有的笔记本电脑都支持 PCMCIA
与 CardBus
设备。新的笔记本电脑,都转向了对扩展卡形式的支持。
查看你的硬件来确定是否能将 PCMCIA
卡插上,来确定你的设备是否具有一个 PCMCIA
控制器。
使能 PCMCIA
控制器步骤:
-
使能内核的
PCI
支持Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support
-
使能内核的
PCCARD
支持Bus options (PCI, PCMCIA, EISA, MCA, ISA) PCCARD (PCMCIA/CardBus) support [M] PCCard (PCMCIA/CardBus) support
-
使能
PCMCIA
以及CardBus
支持来覆盖这类设备Bus options (PCI, PCMCIA, EISA, MCA, ISA) PCCARD (PCMCIA/CardBus) support [M] PCCard (PCMCIA/CardBus) support [M] 16-bit PCMCIA support [*] 32-bit CardBus support
为你的笔记本电脑使能卡桥类型,最常见的为
yenta-like
控制器:Bus options (PCI, PCMCIA, EISA, MCA, ISA) PCCARD (PCMCIA/CardBus) support [M] PCCard (PCMCIA/CardBus) support [M] CardBus yenta-compatible bridge support [ ] Cirrus PD6729 compatible bridge support [ ] i82092 compatible bridge support [ ] i82365 compatible bridge support [ ] Databook TCIC host bridge support
Sound (ALSA)
ALSA: Advanced Linux Sound Architecture
是当前 Linux
系统的声音系统。
使用下面的命令查看你的设备上的声音控制器:
$ lspci | grep -i audio
00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)
06:0d.0 Multimedia audio controller: Creative Labs SB Audigy (rev 04)
注意到,在你的设备上出现的信息可能不同,重要的是有类似的输出。
使能步骤:
-
使能基本的声音支持
Device Drivers Sound [M] Sound Card Support
-
使能
ALSA
Device Drivers Sound [M] Sound Card Support [M] Advanced Linux Sound Architecture
-
有很多
ALSA
选项,比如对老版的OSS
声音协议的支持,如果你具有老版的应用,你可以使能相关选项Device Drivers Sound [M] Sound Card Support [M] Advanced Linux Sound Architecture [M] OSS Mixer API [M] OSS PCM (digital audio) API [ ] OSS PCM (digital audio) API - Include plugin system
-
使能你具有的特殊类型的设备,
PCI
声卡位于PCI
子菜单中Device Drivers Sound [M] Sound Card Support [M] Advanced Linux Sound Architecture PCI Devices
CPU
如果你希望你的内核能够在你自己的处理器与硬件设备类型上,尽可能快速的运行,下面几个选项可以用来配置以提升硬件性能。
Processor Types
在 Linux
内核中有很多与处理器相关的选项。最终要的一个是内核要在什么类型的处理器上运行。使用下面的命令确定:
$ cat /proc/cpuinfo | grep "model name"
model name : Intel(R) Xeon(TM) CPU 3.20GHz
你的设备打印内容可能不同,重要的是要有类似的打印信息。
配置步骤如下:
-
选择处理器的子架构
Processor type and features Subarchitecture Type (X) PC-compatible ( ) AMD Elan ( ) Voyager (NCR) ( ) NUMAQ (IBM/Sequent) ( ) Summit/EXA (IBM x440) ( ) Support for other sub-arch SMP systems with more than 8 CPUs ( ) SGI 320/540 (Visual Workstation) ( ) Generic architecture (Summit, bigsmp, ES7000, default) ( ) Support for Unisys ES7000 IA32 series
只有你的设备是上面列出的其他处理器时,再选择其他的选项。如果你希望创建一个内核能够在所有展示的设备上运行,则选择
Generic architecture
选项。如果你没有选Symmetric multi-processing
支持选项,上面的某些选项可能不会出现。 -
选择处理器家族类型,上一步选择
PC-compatible
选项之后下面的子菜单才会出现:Processor type and features Processor family ( ) 386 ( ) 486 ( ) 586/K5/5x86/6x86/6x86MX ( ) Pentium-Classic ( ) Pentium-MMX ( ) Pentium-Pro ( ) Pentium-II/Celeron(pre-Coppermine) ( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon ( ) Pentium M (X) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon ( ) K6/K6-II/K6-III ( ) Athlon/Duron/K7 ( ) Opteron/Athlon64/Hammer/K8 ( ) Crusoe ( ) Efficeon ( ) Winchip-C6 ( ) Winchip-2 ( ) Winchip-2A/Winchip-3 ( ) GeodeGX1 ( ) Geode GX/LX ( ) CyrixIII/VIA-C3 ( ) VIA C3-2 (Nehemiah) ( ) Generic x86 support
SMP
如果你的系统包含多个 CPU
,或是双 CPU
或是可以超线程,你需要选择选择多处理器选项。否则白白浪费了处理器。
使能多处理器:
Processor type and features
[*] Symmetric multi-processing support
Preemption
作为服务器运行的系统,与做为视频或声音应用的桌面电脑的工作负载是不同的。内核允许不同的抢占程度,来处理不同的工作负载。preemption
内核在做其他事务时打断自身的能力,一次来进行高优先级的工作,比如更新音频或视频程序。
使用下面的菜单来修改不同的抢占模型:
Processor type and features
Preemption Model
(X) No Forced Preemption (Server)
( ) Voluntary Kernel Preemption (Desktop)
( ) Preemptible Kernel (Low-Latency Desktop)
如果你希望让内核比常规的抢占选项提供的更高的优先级任务,可以允许中断其内部的内核锁:
Processor type and features
[*] Preempt The Big Kernel Lock
这个选项只有在 Preemptible Kernel
或 Symmetric multi-processing
支持选项。
Suspend
Linux
内核具有将其内核挂起到盘中,并允许你断开电源,并在之后上电重新从挂起的地方开始执行。这个功能在运行 Linux
的笔记本电脑上比较有用。
选择这个选项来使能:
Power management options (ACPI, APM)
[*] Software Suspend
内核需要知道将挂起的内核镜像保存到什么位置。并在之后重新使用它。这个位置通常是盘上的一个内核交换分区。指定使用哪个分区:
Power management options (ACPI, APM)
(/dev/hda3) Default resume partition
你需要确定你指定的分区是没有问题的,不要使用系统或数据已经使用的分区。可以使用下面的命令查看它慎用的分区:
$ swapon -s | grep dev | cut -f 1 -d ' '
/dev/hda3
在设备挂起之后,使用 resume=/dev/swappartition
来让其使用合适的镜像。如果你不希望使用挂起的镜像,使用 noresume
。
CPU Frequency Scaling
大部分现代处理器可以缓速处理器的内部时钟,来节能延长电池使用时间。Linux
支持这一能力,并给出不同的能量管理等级。不同的管理提供不同的分级。
使能步骤:
-
使能基础的频率调节功能
Power management options (ACPI, APM) [*] CPU Frequency scaling
-
选择不同的频率管理类型
Power management options (ACPI, APM) [*] CPU Frequency scaling [*] 'performance' governor [*] 'powersave' governor [*] 'userspace' governor for userspace frequency scaling [*] 'ondemand' cpufreq policy governor [*] 'conservative' cpufreq governor
可以在第十一章的
CPU_FREQ
条目查看具体的不同监管的信息。 -
选择启动时默认的管理类型
Power management options (ACPI, APM) [*] CPU Frequency scaling Default CPUFreq governor (performance)
-
选择设备的指定的处理器类型
Power management options (ACPI, APM) [*] CPU Frequency scaling --- CPUFreq processor drivers [ ] ACPI Processor P-States driver [ ] AMD Mobile K6-2/K6-3 PowerNow! [ ] AMD Mobile Athlon/Duron PowerNow! [ ] AMD Opteron/Athlon64 PowerNow! [ ] Cyrix MediaGX/NatSemi Geode Suspend Modulation [*] Intel Enhanced SpeedStep [*] Use ACPI tables to decode valid frequency/voltage pairs [*] Built-in tables for Banias CPUs [ ] Intel Speedstep on ICH-M chipsets (ioport interface) [ ] Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface) [ ] Intel Pentium 4 clock modulation [ ] nVidia nForce2 FSB changing [ ] Transmeta LongRun
Different Memory Models
在 32
位的 intel
硬件上的 Linux
能够访问高达 64GB
的内存,但是因为 32
位处理器的地址空间仅 4GB
,为了处理这一限制,Linux
可以将额外的内核映射到其他区域,之后再其他任务需要时切换到它。但是如果你的设备具备的内存很小,那么Linux
就没有必要担心这个问题了。因此告知内核你希望它支持多少内存是有好处的。查看第十一章的 HIGHMEM
条目的相信描述。
针对 32
位的 Intel
处理器,Linux
支持三种不同的内存模型:
- 低于
1GB
的物理内存 1-4GB
的物理内存4GB
以上的物理内存
选择内存支持的大小:
Processor type and features
High Memory Support
(X) off
( ) 4GB
( ) 64GB
ACPI
几乎所有基于 Intel
的系统,都需要 ACPI
来令设备工作正常。ACPI
是一个标准,允许电脑的 BIOS
与操作系统以间接的形式方式访问硬件。ACPI
也提供机制来帮助挂起、恢复设备,并控制处理器的速度与风扇的转速。如果你的设备是笔记本电脑,推荐你使能这个选项:
使能 ACPI
:
Power management options (ACPI, APM)
ACPI (Advanced Configuration and Power Interface) Support
[*] ACPI Support
有不同的 ACPI
驱动控制着不同类型的 ACPI
设备,你应该使能你的设备上具有的设备:
Power management options (ACPI, APM)
ACPI (Advanced Configuration and Power Interface) Support
[*] ACPI Support
[*] AC Adapter
[*] Battery
[*] Button
[*] Video
[*] Generic Hotkey (EXPERIMENTAL)
[*] Fan
[*] Processor
[*] Thermal Zone
[ ] ASUS/Medion Laptop Extras
[ ] IBM ThinkPad Laptop Extras
[ ] Toshiba Laptop Extras
NetWorking
现如今,几乎所有的设备都支持网络,Linux
几乎支持所有的网络选项。这里只展示简单的几个。
对于所有网络选项,包括不同的驱动,主网络配置选项必须使能:
Networking
[*] Networking support
当然,需要使能 TCP/IP
令使能设备与网络上的其他设备通讯:
Networking
[*] Networking support
Networking options
[*] TCP/IP networking
Netfilter
Linux
内核的网络过滤器用来过滤操作所有到达设备上的网络包的框架。它通常用来使能防火墙,来保护系统,或者用作网络上其他设备的代理。查看第十一章的 NETFILTER
条目来查看更多详细内容。
使能网络过滤步骤:
-
使能主网络过滤选项
Networking [*] Networking support Networking options [*] Network packet filtering (replaces ipchains)
-
建议网络过滤器网络链接接口以及使用网络链接时的
Xtables
支持Networking [*] Networking support Networking options [*] Network packet filtering (replaces ipchains) Core Netfilter Configuration [*] Netfilter netlink interface [*] Netfilter Xtables support (required for ip_tables)
-
你希望过滤的不同协议也要选上
Networking [*] Networking support Networking options [*] Network packet filtering (replaces ipchains) IP: Netfilter Configuration [M] Connection tracking (required for masq/NAT) [ ] Connection tracking flow accounting [ ] Connection mark tracking support [ ] Connection tracking events (EXPERIMENTAL) [ ] SCTP protocol connection tracking support (EXPERIMENTAL) [M] FTP protocol support [ ] IRC protocol support [ ] NetBIOS name service protocol support (EXPERIMENTAL) [M] TFTP protocol support [ ] Amanda backup protocol support [ ] PPTP protocol support [ ] H.323 protocol support (EXPERIMENTAL)
Network Drivers
Linux
支持宽泛的网络设备。最常用的是 PCI
网络设备,以太网网线可以插入。使用下面的命令确定你是否具有这么一个 PCI
网络设备:
$ lspci | grep Ethernet
03:0c.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
03:0e.0 Ethernet controller: Intel Corporation 82545GM Gigabit Ethernet Controller (rev 04)
使用下面的命令使能设备:
-
使能
PCI
支持Bus options (PCI, PCMCIA, EISA, MCA, ISA) [*] PCI Support
-
使能基础网络设备支持
Device Drivers Network device support [*] Network device support
-
找到支持你的硬件的驱动
Device Drivers Network device support [*] Network device support Ethernet (1000 Mbit) [*] Network device support Ethernet (10 or 100Mbit)
IrDA
IrDA
是笔记本或 PDA
进行短距通讯的红外协议。在老的设备中是常见的,比较新的设备被蓝牙取代了。
配置步骤如下:
-
IrDA
是一个网络协议,因此它可以在网络主菜单下找到Networking [*] Networking support [*] IrDA (infrared) subsystem support
-
有很多不同的
IrDA
协议可以选择,依赖于你希望与之沟通的设备类型,以及用来沟通的程序Networking [*] Networking support --- IrDA (infrared) subsystem support --- IrDA protocols [*] IrLAN protocol (NEW) [*] IrCOMM protocol (NEW) [*] Ultra (connectionless) protocol (NEW)
-
有很多不同的
IrDA
设备,有些是串行设备,有的是PCI
设备,有的是USB
设备,选择你具有的IrDA
设备,在IrDA
的子菜单下选择它Networking [*] Networking support --- IrDA (infrared) subsystem support Infrared-port device drivers --- SIR device drivers [ ] IrTTY (uses Linux serial driver) --- Dongle support --- Old SIR device drivers --- Old Serial dongle support --- FIR device drivers [ ] IrDA USB dongles [ ] SigmaTel STIr4200 bridge (EXPERIMENTAL) [ ] NSC PC87108/PC87338 [ ] Winbond W83977AF (IR) [ ] Toshiba Type-O IR Port [ ] SMSC IrCC (EXPERIMENTAL) [ ] ALi M5123 FIR (EXPERIMENTAL) [ ] VLSI 82C147 SIR/MIR/FIR (EXPERIMENTAL) [ ] VIA VT8231/VT1211 SIR/MIR/FIR
Bluetooth
蓝牙是用来替代 IrDA
的无线技术。它用来短距通信,可以在十米范围内进行通信,通常在手机中使用。
配置步骤:
-
蓝牙是一个网络协议,因此它可以在网络主菜单下发现
Networking [*] Networking support [*] Bluetooth subsystem support
-
蓝牙有两个主要的协议,为了能与所有的蓝牙设备进行通讯,需要将两者都勾选上
Networking [*] Networking support --- Bluetooth subsystem support [*] L2CAP protocol support [*] SCO links support
-
蓝牙具有的驱动就相对较少了,因为这些设备几乎都遵循拉亚规范。下面列表中标记的驱动必须选择,以令蓝牙设备能正常工作
Networking [*] Networking support --- Bluetooth subsystem support Bluetooth device drivers [M] HCI USB driver [*] SCO (voice) support [ ] HCI UART driver [M] HCI BCM203x USB driver [M] HCI BPA10x USB driver [ ] HCI BlueFRITZ! USB driver [ ] HCI DTL1 (PC Card) driver [ ] HCI BT3C (PC Card) driver [ ] HCI BlueCard (PC Card) driver [ ] HCI UART (PC Card) device driver [ ] HCI VHCI (Virtual HCI device) driver
Wireless
现今,几乎所有的笔记本都配备有无线网络设备。使用下面的命令来查看系统上是否具有 PCI
无线设备:
$ lspci | grep -i wireless
06:05.0 Network controller: Intel Corporation PRO/Wireless 2915ABG MiniPCI Adapter (rev 05)
配置步骤:
-
为了使能
Linux
对无线网络的支持,必须使能IEEE 802.11
网络配置选项Networking [*] Networking support [*] Generic IEEE 802.11 Networking Stack
-
使能不同的
802.11
协议选项与Software MAC
选项,提供对所有类型的无线设备的支持Networking [*] Networking support [*] Generic IEEE 802.11 Networking Stack [*] IEEE 802.11 WEP encryption (802.1x) [M] IEEE 802.11i CCMP support [M] IEEE 802.11i TKIP encryption [M] Software MAC add-on to the IEEE 802.11 networking stack
-
PCI
无线设备的驱动可以在网络驱动部分找到配置项Device Drivers Network device support Wireless LAN (non-hamradio) [*] Wireless LAN drivers (non-hamradio) & Wireless Extensions [*] Wireless Extension API over RtNetlink
USB
无线网络设备驱动在其他部分:Device Drivers USB Support USB Network Adapters
FileSystems
Linux
支持很多种文件系统类型。常规的文件系统类型可以在主文件系统配置菜单种找到:
File systems
[*] Second extended fs support
[*] Ext3 journalling file system support
[ ] Reiserfs support
[ ] JFS filesystem support
[ ] XFS filesystem support
本小节将会展示一些非常规的文件系统类型。
RAID
RAID
为将不同盘组织成一个盘提供一种选择。Linux
支持同时支持硬件与软件的 RAID
。硬件 RAID
使用盘控制器处理,而不需要内核的参与。
配置步骤如下:
-
软件
RAID
由内核控制,可以通过编译选项选择Device Drivers Multi-device support (RAID and LVM) [*] Multiple devices driver support (RAID and LVM) [*] RAID support
-
有很多不同类型的
RAID
配置,为了令RAID
正常工作,至少要选择一种Device Drivers Multi-device support (RAID and LVM) [*] Multiple devices driver support (RAID and LVM) [*] RAID support [*] Linear (append) mode [*] RAID-0 (striping) mode [*] RAID-1 (mirroring) mode [*] RAID-10 (mirrored striping) mode (EXPERIMENTAL) [*] RAID-4/RAID-5 mode [*] RAID-6 mode
Logical Volume Manager and Device Mapper
就像 RAID
一样,逻辑卷管理 (LVM: Logical Volume Manager
) 允许用户将不同的块设备组织成一个块设备。但是,它不是像 RAID
一样是设备级,而是通过一个块与节映射机制。它允许不同盘的不同部分像一个块设备一样组织起来。为了实现这一个内容,内核使用称为设备映射 (DM: Device Mapper
) 的机制。
配置步骤如下:
-
使能内核对
DM
的支持Device Drivers Multi-device support (RAID and LVM) [*] Multiple devices driver support (RAID and LVM) [*] Device mapper support
-
有很多帮助类的模块,与
DM
一起工作,来提供额外的功能Device Drivers Multi-device support (RAID and LVM) [*] Multiple devices driver support (RAID and LVM) [*] Device mapper support [*] Crypt target support [*] Snapshot target (EXPERIMENTAL) [*] Mirror target (EXPERIMENTAL) [*] Zero target (EXPERIMENTAL) [*] Multipath target (EXPERIMENTAL)
File Sharing with Windows
Samba
可以允许 Linux
用户通过网络访问本地的 Windows
设备。它也允许 Linux
像 Windows
服务器那样工作,允许 Windows
客户端像连接 Windows
那样连接 Linux
服务。
两个不同的文件系统允许 Linux
设备与 Windows
设备连接: SMB
文件系统以及 CIFS
文件系统。对于 Win95
或 Win98
,选择 SMB
文件系统:
File systems
Network File Systems
[*] SMB file system support (to mount Windows shares etc.)
对于比较新的 Windows
设备,推荐 CIFS
文件系统:
File systems
Network File Systems
[*] CIFS support
对于这两个文件系统的详细区别,使用某个文件系统的时机,可以参考第十一章的 SMB_FS
以及 CIFS
条目。
OCFS2
OCFS2
是来自 Oracle
的一簇文件系统,同时安装在大型网络系统以及小型本地系统。当使用大型数据库比如 Oracle
或 DB2
时建议配置这个内容。
File systems
[*] OCFS2 file system support
Security
Linux
内核通过提供挂钩来支持不同的安全模型。
Default Linux Capabilities
标准的安全模型是 capability
模型,除非你就希望使用一个不安全的内核,否则请选择这个选项。
使能它:
Security options
[*] Enable different security models
[*] Default Linux Capabilities
SELinux
一个非常流行的模型称作 SELinux
,这一模型被不同的 Linux
发布版本支持。
SELinux
需要网络选项使能。也需要审核使能:
General setup
[*] Auditing support
当然,网络安全选项也要使能:
Security options
[*] Enable different security models
[*] Socket and Networking Security Hooks
现在可以选择 SELinux
选项了:
Security options
[*] Enable different security models
[*] NSA SELinux Support
你可能希望使能其他的 SELinux
选项:
Security options
[*] Enable different security models
[*] NSA SELinux Support
[ ] NSA SELinux boot parameter
[ ] NSA SELinux runtime disable
[*] NSA SELinux Development Support
[*] NSA SELinux AVC Statistics
(1) NSA SELinux checkreqprot default value
Kernel Debugging
很多不同的内核选项,可以帮助进行内核调试。
Kernel Log Timestamps
内核会再它的日志文件中输出很多内容。这些信息可以通过查看日志文件系统 /var/log/messages
或通过运行 dmesg
命令来查看。
有时候,查看这些信息生成的具体时间是有一定帮助的。dmesg
不会对展示的信息给出时间戳。你可以配置内核为每一个信息附上一个时间戳。
使能时间戳选项:
Kernel hacking
[*] Show timing information on printks
Magic SysRq Keys
键盘上的 SysRq
按键可以用来以在内核运行时或在其崩溃之后以不同的方式控制内核。
Kernel hacking
[*] Magic SysRq key
查看内核源码的 Documentation/sysrq.txt
文件来获取详细信息。
Debug Filesystem
基于 RAM
的文件系统可以用来输出一些调试信息。这个文件称为 debugfs
,并使用如下方式使能:
Kernel hacking
[*] Debug filesystem
在使能这个选项之后,启动这个重新编译的内核,它会创建目录 /sys/kernel/debug
让用户挂载 debugfs
文件系统。可以手动挂载:
$ mount -t debugfs none /sys/kernel/debug
或者在 /etc/fstab
文件中,添加下面的行,在启动时自动挂载:
debugfs /sys/kernel/debug debugfs 0 0
在挂载 debugfs
之后,又很多不同的目录会在 /sys/kernel/debug/
目录中出现。这些都是由内核动态生成的虚拟目录,就像 procfs
或 sysfs
一样。这些文件可以用来帮助调试不同的内核子系统,或者只是查看系统运行时发生了什么。
General Kernel Debugging
下面是一些选项,能够帮助调试不同的问题,或者只是通过打印信息学习内核是怎样工作的。注意到,如果你使能了几乎所有下面的选项,内核运行速度会降下来,因此如果你注意到你的系统性能降低了,可以选择将这些选项关闭:
Kernel hacking
[*] Kernel debugging
[*] Detect Soft Lockups
[ ] Collect scheduler statistics
[*] Debug slab memory allocations
[*] Memory leak debugging
[*] Mutex debugging, deadlock detection
[*] Spinlock debugging
[*] Sleep-inside-spinlock checking
[ ] kobject debugging
[ ] Highmem debugging
[ ] Compile the kernel with debug info