內(nèi)核引導(dǎo)參數(shù)大體上可以分為兩類(lèi):一類(lèi)與設(shè)備無(wú)關(guān)、另一類(lèi)與設(shè)備有關(guān)。內(nèi)核源碼樹(shù)下的 Documentation/kernel-parameters.txt 文件列出了所有可用的引導(dǎo)參數(shù),并指明了處理每個(gè)參數(shù)的具體文件。注意:對(duì)于模塊而言,引導(dǎo)參數(shù)只能用于直接編譯到核心里的模塊,格式是使用"模塊名.參數(shù)=值"模式指定,比如:usbcore.blinkenlights=1 。動(dòng)態(tài)加載的模塊可以在 modprobe 命令行上指定相應(yīng)的參數(shù)值,比如:modprobe usbcore blinkenlights=1 。
可以使用"modinfo -p ${modulename}"命令顯示可加載模塊的所有可用參數(shù)。已經(jīng)加載到內(nèi)核中的模塊會(huì)在 /sys/module/${modulename}/parameters/ 中顯示出其參數(shù),并且某些參數(shù)的值還可以在運(yùn)行時(shí)通過(guò)"echo -n ${value} > /sys/module/${modulename}/parameters/${parm}"命令修改。
與設(shè)備有關(guān)的引導(dǎo)參數(shù)多如牛毛,需要你自己閱讀內(nèi)核中的相應(yīng)驅(qū)動(dòng)程序源碼以獲取其能夠接受的引導(dǎo)參數(shù)。比如,如果你想知道可以向 AHA1542 SCSI 驅(qū)動(dòng)程序傳遞哪些引導(dǎo)參數(shù),那么就到 drivers/scsi 目錄下尋找到 aha1542.c 文件,一般在前面 100 行注釋里就可以找到所接受的引導(dǎo)參數(shù)說(shuō)明。大多數(shù)參數(shù)是通過(guò)"__setup(... , ...)"函數(shù)設(shè)置的,逗號(hào)前的部分就是引導(dǎo)參數(shù)的名稱(chēng),后面的部分就是處理這些參數(shù)的函數(shù)名。[提示]你可以在源碼樹(shù)的根目錄下試一試
grep -r '__setup *(' *命令。
[注意]多個(gè)參數(shù)之間用空格分割,而每個(gè)參數(shù)的值中不能包含空白,參數(shù)值是一個(gè)逗號(hào)分割的列表。
正確:ether=9,0x300,0xd0000,0xd4000,eth0 root=/dev/hda1錯(cuò)誤:ether = 9, 0x300, 0xd0000, 0xd4000, eth0 root = /dev/hda1
在內(nèi)核運(yùn)行起來(lái)之后,可以通過(guò) cat /proc/cmdline 命令查看當(dāng)初使用的引導(dǎo)參數(shù)以及相應(yīng)的值。
所有引導(dǎo)參數(shù)都是大小寫(xiě)敏感的!
內(nèi)核如何處理引導(dǎo)參數(shù)
絕大部分的內(nèi)核引導(dǎo)參數(shù)的格式如下(每個(gè)參數(shù)的值列表中最多只能有十項(xiàng)):
name[=value_1][,value_2]...[,value_10]
如果"name"不能被識(shí)別并且滿(mǎn)足"name=value"的格式,那么則被解譯為一個(gè)環(huán)境變量(比如"TERM=linux"或"BOOT_IMAGE=vmlinuz.bak"),否則將被原封不動(dòng)的傳遞給 init 程序(比如"single")。
內(nèi)核可以接受的參數(shù)個(gè)數(shù)沒(méi)有限制,但是整個(gè)命令行的總長(zhǎng)度(參數(shù)/值/空格全部包含在內(nèi))卻是有限制的,一般是 256-4096 之間,定義在 include/asm/setup.h 中的 COMMAND_LINE_SIZE 宏中。
內(nèi)核引導(dǎo)參數(shù)精選
由于引導(dǎo)參數(shù)多如牛毛,本文不可能涉及全部,因此下面只列出精選出來(lái)的一些(基于 2.6.22 內(nèi)核),與設(shè)備有關(guān)的基本上都被忽略了。
標(biāo)記說(shuō)明
并不是所有的參數(shù)都是永遠(yuǎn)可用的,只有在特定的模塊存在并且相應(yīng)的硬件也存在的情況下才可用。引導(dǎo)參數(shù)上面的方括號(hào)說(shuō)明了其依賴(lài)關(guān)系,其中使用的標(biāo)記解釋如下:
ACPI 高級(jí)配置與電源接口APIC 高級(jí)可編程中斷控制器HW 相應(yīng)的硬件設(shè)備存在IA-32 IA-32(i386)體系結(jié)構(gòu)X86-64 X86-64體系結(jié)構(gòu),更多參數(shù)在 Documentation/x86_64/boot-options.txt 中描述IOSCHED 啟用了多個(gè)IO調(diào)度器LIBATA 啟用了Libata驅(qū)動(dòng)LOOP 啟用了Loopback設(shè)備N(xiāo)ET 啟用了網(wǎng)絡(luò)支持PCI PCI總線支持PNP 即插即用支持PS2 PS/2支持SCSI 許多SCSI設(shè)備的參數(shù)在 Documentation/scsi/ 中描述SMP 對(duì)稱(chēng)多處理器USB USB支持USBHID USB人機(jī)界面設(shè)備VT 虛擬終端(Virtual terminal)
此外,下面的標(biāo)記的含義與在邏輯上與上面的有所不同:
BUGS=用于在特定的體系結(jié)構(gòu)上解決某些CPU的bugKNL 是一個(gè)內(nèi)核啟動(dòng)參數(shù)BOOT是一個(gè)引導(dǎo)程序參數(shù)
標(biāo)記為"BOOT"的參數(shù)實(shí)際上由引導(dǎo)程序使用,對(duì)內(nèi)核本身沒(méi)有直接的意義。沒(méi)有特別的需求,請(qǐng)不要修改此類(lèi)參數(shù)的語(yǔ)法,更多信息請(qǐng)閱讀 Documentation/i386/boot.txt 文檔。
控制臺(tái)
這些參數(shù)控制著控制臺(tái)或內(nèi)核日志,在何處顯示內(nèi)核調(diào)試信息和錯(cuò)誤信息。
[KNL]
console=tty 設(shè)置輸出控制臺(tái)使用第N號(hào)虛擬控制臺(tái)。 [IA-32,X86-64]
earlyprintk=vga 在傳統(tǒng)的控制臺(tái)初始化之前,在VGA上顯示內(nèi)核日志信息。如果不使用此參數(shù)那么這些信息你可用永遠(yuǎn)沒(méi)機(jī)會(huì)看見(jiàn)。 loglevel={0|1|2|3|4|5|6|7} 所有小于該數(shù)字的內(nèi)核信息都將在控制臺(tái)上顯示出來(lái)。這個(gè)級(jí)別可以使用 klogd 程序或者修改 /proc/sys/kernel/printk 文件進(jìn)行調(diào)整。取值范圍是"0"(不顯示任何信息)到"7"(顯示所有級(jí)別的信息)。建議至少設(shè)為"4"。[提示]級(jí)別"7"要求編譯時(shí)加入了調(diào)試支持。 [KNL]
initcall_debug 跟蹤所有內(nèi)核初始化過(guò)程中調(diào)用的函數(shù)。有助于診斷內(nèi)核在啟動(dòng)過(guò)程中死在了那個(gè)函數(shù)上面。
中斷
這些參數(shù)影響內(nèi)核與處理中斷的硬件之間的接口。常見(jiàn)的中斷控制器有兩種:傳統(tǒng)的8259A和新式的APIC,前者也被稱(chēng)為"PIC"。8259A只適合單CPU的場(chǎng)合,而APIC則能夠把中斷傳遞給系統(tǒng)中的每個(gè)CPU,從而充分挖掘SMP體系結(jié)構(gòu)的并行性。所以8259A已經(jīng)被淘汰了。
APIC系統(tǒng)由3部分組成:APIC總線、IO-APIC、本地APIC。
每個(gè)CPU中集成了一個(gè)本地APIC,負(fù)責(zé)傳遞中斷信號(hào)到處理器。而IO-APIC是系統(tǒng)芯片組中一部分,負(fù)責(zé)收集來(lái)自I/O設(shè)備的中斷信號(hào)并發(fā)送到本地APIC。APIC總線則是連接IO-APIC和各個(gè)本地APIC的橋梁。
[APIC,i386]
apic={quiet|verbose|debug} 在初始化 APIC 和 IO-APIC 組件的時(shí)候,顯示調(diào)試信息的詳細(xì)程度。默認(rèn)是"quiet"。 [SMP,APIC]
noapic 強(qiáng)制內(nèi)核禁止使用IO-APIC(輸入輸出高級(jí)可編程輸入控制器) [IA-32,APIC]
lapic 強(qiáng)制內(nèi)核啟用 local APIC ,即使 BIOS 已經(jīng)禁用了。 [IA-32,APIC]
nolapic 強(qiáng)制內(nèi)核禁用 local APIC ,即使 BIOS 已經(jīng)啟用了。 [IA-32,SMP,KNL]
noirqbalance 禁止使用內(nèi)核中的中斷平衡邏輯 [HW]
irqfixup 用于修復(fù)基本的中斷問(wèn)題:當(dāng)一個(gè)中斷沒(méi)有被處理時(shí)搜索所有可用的中斷處理器。用于解決某些firmware缺陷。 [HW]
irqpoll 用于修復(fù)更進(jìn)一步的中斷問(wèn)題:當(dāng)一個(gè)中斷沒(méi)有被處理時(shí)搜索所有可用的中斷處理器,并且對(duì)每個(gè)時(shí)鐘中斷都進(jìn)行搜索。用于解決某些嚴(yán)重的firmware缺陷。 [IA-32]
noirqdebug 默認(rèn)情況下,內(nèi)核將探測(cè)并且禁止未處理的中斷源,以免引起內(nèi)核其他部分的響應(yīng)問(wèn)題,這個(gè)選項(xiàng)禁止該功能。
內(nèi)存
[KNL,BOOT]
highmem=nn[KMG] 強(qiáng)制指定highmem區(qū)域的大小,甚至在默認(rèn)沒(méi)有highmem的機(jī)器上也能工作。這個(gè)選項(xiàng)還可以用來(lái)在大內(nèi)存的機(jī)器上強(qiáng)制減少highmem區(qū)域的大小。內(nèi)核使用低于896M的"直接映射物理內(nèi)存"很方便,但使用大于896M的部分(highmem)卻比較麻煩,所以系統(tǒng)在給用戶(hù)進(jìn)程分配內(nèi)存時(shí)會(huì)優(yōu)先使用highmem。對(duì)于小于等于 1G 內(nèi)存的用戶(hù)來(lái)說(shuō),則無(wú)需關(guān)心這個(gè)問(wèn)題。 [HW,IA-32]
hugepages= 指定 HugeTLB 頁(yè)的最大數(shù)量,僅在內(nèi)核啟用了CONFIG_HUGETLBFS之后才有效。大多數(shù)現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)提供對(duì)多頁(yè)面大小的支持,比如IA-32結(jié)構(gòu)支持4K和4M(PAE模式為2M)兩種頁(yè)面。因此Linux將物理內(nèi)存劃分成許多固定大小的頁(yè)面(默認(rèn)大小為 4k),每個(gè)頁(yè)對(duì)應(yīng)一個(gè)page結(jié)構(gòu),這些結(jié)構(gòu)組成一個(gè)mem_map[]數(shù)組。TLB(Translation Lookaside Buffer)是虛擬地址到物理地址的翻譯緩沖區(qū),這種緩沖區(qū)在處理器上是很寶貴的,操作系統(tǒng)總是嘗試將有限的TLB資源發(fā)揮到極致。特別是能夠輕松獲得若干G內(nèi)存的時(shí)候(>4G),這種優(yōu)化就顯得尤為關(guān)鍵。而 HugeTLB 特性則允許將某些頁(yè)的尺寸增大到 4MB 。用戶(hù)可以使用mmap系統(tǒng)調(diào)用或者標(biāo)準(zhǔn)的SYSv共享內(nèi)存調(diào)用(shmget,shmat)來(lái)使用hugepage??梢允褂?grep Huge /proc/meminfo 命令查看是否開(kāi)啟了 hugepage 支持。 [KNL]
ihash_entries= 內(nèi)核會(huì)在內(nèi)存中緩存一定數(shù)量的inode結(jié)構(gòu)來(lái)加速文件訪問(wèn),每個(gè)inode對(duì)應(yīng)一個(gè)文件(不同于文件系統(tǒng)中的inode概念),包含文件訪問(wèn)權(quán)限/屬主/組/大小/生成時(shí)間/訪問(wèn)時(shí)間/最后修改時(shí)間等信息。這些inode保存在一個(gè)哈希表中。這個(gè)值用于指定這個(gè)哈希表的最大項(xiàng)數(shù)。比如 1G 內(nèi)存推薦為 16384 ,4G 及以上內(nèi)存推薦 131072 ,但你可以根據(jù)自己硬盤(pán)上可能被訪問(wèn)的文件數(shù)量對(duì)默認(rèn)值進(jìn)行調(diào)整(注意需要考慮哈希值的碰撞)。 [KNL,BOOT]
max_addr=nn[KMG] 內(nèi)核將忽略在該物理地址以上的內(nèi)存 [KNL,BOOT]
mem=nn[KMG] 強(qiáng)制指定內(nèi)核使用多少數(shù)量的內(nèi)存。缺乏遠(yuǎn)見(jiàn)設(shè)計(jì)的傳統(tǒng)BIOS只能報(bào)告最大64MB內(nèi)存。新的e820規(guī)范則突破了這個(gè)限制,使得BIOS可以正確報(bào)告大于64MB的內(nèi)存。如果你在老舊的機(jī)器上使用大內(nèi)存就需要指定這個(gè)參數(shù)(最保險(xiǎn)的做法是在實(shí)際內(nèi)存的總數(shù)上減掉1MB)。但有時(shí)候e820報(bào)告的數(shù)量并不準(zhǔn)確,此時(shí)就需要使用下面的memmap參數(shù)精確指定內(nèi)存映射(此時(shí)就不要使用"mem="了)。 [KNL,IA-32,X86_64]
memmap=exactmap 指定將要使用隨后的"memmap=nn@ss"等參數(shù)進(jìn)行精確的E820內(nèi)存映射。比如對(duì)于一個(gè)4G內(nèi)存的機(jī)器可能是:"memmap=exactmap memmap=640K@0 memmap=4095M@1M"。 [KNL]
memmap=nn[KMG]@ss[KMG] 強(qiáng)制內(nèi)核只使用從ss開(kāi)始的nn長(zhǎng)度的特定內(nèi)存區(qū)域??梢远啻问褂靡灾付ǘ鄠€(gè)區(qū)域。 [IA-32,X86-64]
noexec={on|off} 允許(on,默認(rèn))或禁止(off)內(nèi)核將部分內(nèi)存映射為"不可執(zhí)行"區(qū)域。 [KNL,BUGS]
reserve=nn[KMG] 強(qiáng)制內(nèi)核忽略(預(yù)留)一定量的IO內(nèi)存區(qū)域 [KNL,BOOT]
vmalloc=nn[KMG] 強(qiáng)制指定vmalloc區(qū)域的大小??捎糜谠黾觱malloc區(qū)域的最小尺寸(x86默認(rèn)128MB),也可以用于減少vmalloc的大小,增加更多的空間用于直接映射內(nèi)核RAM。 norandmaps 默認(rèn)內(nèi)核隨機(jī)化程序啟動(dòng)的地址,該選項(xiàng)禁用該功能。該選項(xiàng)等價(jià)于"echo 0 > /proc/sys/kernel/randomize_va_space"命令。
CPU
[BUGS=IA-32]
cachesize= 強(qiáng)制指定 CPU L2 cache 的大小,單位是字節(jié)。 [KNL,BUGS=IA-32]
nmi_watchdog={0|1|2|3} 設(shè)置非屏蔽中斷(NMI)watchdog的特性。"0"表示禁用NMI watchdog;"1"表示使用APIC;"2"表示使用local APIC;"3"表示NMI watchdog有缺陷,因此被禁用。 [IA-32]
mce
nomce 啟用/禁用Machine Check Exception功能。 [SMP]
maxcpus= 明確指定一個(gè)SMP內(nèi)核能夠使用的最大CPU數(shù)量。最好使用"maxcpus=0"而不是"maxcpus=1"來(lái)禁用SMP功能。
Ramdisk
[BOOT]
initrd= 指定initial ramdisk的位置 [RAM]
noinitrd 禁止使用任何initial RAM disk [RAM]
ramdisk_blocksize= 指定ramdisk的塊尺寸,默認(rèn)是"1024"。 [RAM]
ramdisk_size= RAM disks的大小(kB),默認(rèn)為4096(4MB)。
根文件系統(tǒng)
[KNL]
root=XXxx 告訴核心啟動(dòng)時(shí)以那個(gè)設(shè)備作為根文件系統(tǒng)使用,默認(rèn)為編譯內(nèi)核時(shí)使用的設(shè)備。設(shè)備名由16進(jìn)制主設(shè)備號(hào)(XX)與16進(jìn)制次設(shè)備號(hào)(xx)組成,比如:root=B401 相當(dāng)于從 /dev/uba1 啟動(dòng);root=0801 相當(dāng)于從 /dev/sda1 啟動(dòng)。 [KNL]
rootdelay= 掛載文件系統(tǒng)前延遲多少秒,當(dāng)根文件系統(tǒng)在USB或FireWire設(shè)備上時(shí)常用。 [KNL]
rootflags= 設(shè)置根文件系統(tǒng)的掛載選項(xiàng),比如"noatime,ro"。各種不同的文件系統(tǒng)所能使用的選項(xiàng)各不相同(比如 Documentation/filesystems/xfs.txt),也可以參考 mount 程序的選項(xiàng)。 [KNL]
rootfstype= 根文件系統(tǒng)的類(lèi)型,比如"xfs"。
init
[KNL]
init= 指定內(nèi)核啟動(dòng)后運(yùn)行的第一個(gè)程序的絕對(duì)路徑。默認(rèn)為"/sbin/init"。 [KNL]
rdinit= 從ramdisk中運(yùn)行的第一個(gè)程序的絕對(duì)路徑,默認(rèn)為"/init"。指定的文件必須是在ramdisk而不是在根文件系統(tǒng)中進(jìn)行。 [KNL]
S 以單用戶(hù)模式運(yùn)行init,默認(rèn)是多用戶(hù)模式。
ACPI
[HW,ACPI,X86-64,i386]
acpi={force|off|ht|strict|noirq} ACPI的總開(kāi)關(guān)。force表示強(qiáng)制啟用;off表示強(qiáng)制禁用;noirq表示不要將ACPI用于IRQ路由;ht表示只運(yùn)行足夠的ACPI來(lái)支持超線程;strict表示降低對(duì)不嚴(yán)格遵循ACPI規(guī)格的平臺(tái)的兼容性。 acpi_sleep={s3_bios,s3_mode} ACPI休眠選項(xiàng)。在從S3狀態(tài)(掛起到內(nèi)存)恢復(fù)的時(shí)候,硬件需要被正確的初始化。這對(duì)大多數(shù)硬件都不成問(wèn)題,除了顯卡之外,因?yàn)轱@卡是由BIOS初始化的,內(nèi)核無(wú)法獲取必要的恢復(fù)信息(僅存在于BIOS中,內(nèi)核無(wú)法讀取)。這個(gè)選項(xiàng)允許內(nèi)核以?xún)煞N方式嘗試使用ACPI子系統(tǒng)來(lái)恢復(fù)顯卡的狀態(tài)。 [HW,ACPI]
acpi_sci={level|edge|high|low} ACPI系統(tǒng)控制終端觸發(fā)器模式(System Control Interrupt trigger mode)。 [HW,ACPI]
acpi_irq_balance 使ACPI對(duì)中斷請(qǐng)求進(jìn)行平衡,在APIC模式下為默認(rèn)值 [HW,ACPI]
acpi_irq_nobalance ACPI不對(duì)中斷請(qǐng)求進(jìn)行平衡(默認(rèn)),PIC模式下為默認(rèn)值 [HW,ACPI]
acpi_irq_pci=,... 如果啟用了irq_balance則將列出的中斷號(hào)標(biāo)記為已經(jīng)被PCI子系統(tǒng)使用,可用于屏蔽某些中斷。 [HW,ACPI]
acpi_os_name= 告訴ACPI BIOS操作系統(tǒng)的名稱(chēng)。常常用來(lái)哄騙某些老舊的BIOS以為運(yùn)行的是Windows系統(tǒng)。比如"Microsoft 2001"表示W(wǎng)inXP,"Microsoft Windows"表示W(wǎng)in98。 [HW,ACPI]
acpi_serialize 強(qiáng)制串行化ACPI機(jī)器語(yǔ)言(ACPI Machine Language)方法,操作系統(tǒng)使用這種語(yǔ)言與BIOS打交道。 [HW,ACPI]
acpi_use_timer_override 對(duì)于某些有毛病的 Nvidia NF5 主板需要使用此選項(xiàng)才能正常使用,不過(guò)此時(shí) HPET 將失效。 [IA-32,X86-64]
acpi_pm_good 跳過(guò)pmtimer的bug檢測(cè),強(qiáng)制內(nèi)核假設(shè)這臺(tái)機(jī)器的pmtimer沒(méi)有毛病。用于解決某些有缺陷的BIOS。 [KNL,ACPI]
memmap=nn[KMG]#ss[KMG] 將從ss開(kāi)始的nn長(zhǎng)度的內(nèi)存區(qū)域標(biāo)記為ACPI數(shù)據(jù)。 [KNL,ACPI]
memmap=nn[KMG]$ss[KMG] 將從ss開(kāi)始的nn長(zhǎng)度的內(nèi)存區(qū)域標(biāo)記為"保留"。 [ACPI]
pnpacpi=off 禁用ACPI的即插即用功能,而使用PNPBIOS來(lái)代替。 [HW,ACPI]
processor.max_cstate={0|1|2|3|4|5|6|7|8|9} 無(wú)視ACPI表報(bào)告的值,強(qiáng)制制定CPU的最大C-state值。這里的數(shù)字必須是一個(gè)有效的C-state值,比如Yonah處理器支持"0-4"五個(gè)級(jí)別:C0為正常狀態(tài),其他則為不同的省電模式(數(shù)字越大表示CPU休眠的程度越深/越省電)。"9"表示超越所有的DMI黑名單限制。你的CPU的95%的時(shí)間應(yīng)該處于最深度的idle狀態(tài)。 processor.nocst 不使用_CST方法來(lái)偵測(cè)C-state值,而是使用傳統(tǒng)的FADT方法。
SCSI
這里只列出了SCSI子系統(tǒng)的通用參數(shù)。其他特定于某一種SCSI驅(qū)動(dòng)的參數(shù)并未列出,請(qǐng)?jiān)?Documentation 目錄下的 kernel-parameters.txt 文件中和 scsi 目錄下尋找它們。
[SCSI]
max_luns= 限制SCSI的最大邏輯單元號(hào)(LUN,logical unit number)。取值范圍在1到2^32-1之間。 [SCSI]
max_report_luns= 限制系統(tǒng)能夠接受的最大邏輯單元號(hào)(LUN)。取值范圍在1到16384之間。
PCI
[PCI]
pci=option[,option...] off [IA-32]不檢測(cè)PCI總線,也就是關(guān)閉所有PCI設(shè)備。 bios [IA-32]強(qiáng)制使用PCI BIOS而不是直接訪問(wèn)硬件,這表示內(nèi)核完全信任BIOS(大多數(shù)情況下它并不可信)。僅在你的機(jī)器有一個(gè)不標(biāo)準(zhǔn)的PCI host bridge的時(shí)候才用。 nobios [IA-32]強(qiáng)制直接訪問(wèn)硬件而不使用PCI BIOS,2.6.13之后這是默認(rèn)值。如果你確定在內(nèi)核引導(dǎo)時(shí)的崩潰是由BIOS所致就可以使用它。 conf1 [IA-32]強(qiáng)制硬件設(shè)備使用PCI Configuration Mechanism 1訪問(wèn)PCI Memory以與內(nèi)核中的驅(qū)動(dòng)程序進(jìn)行通信。 conf2 [IA-32]強(qiáng)制硬件設(shè)備使用PCI Configuration Mechanism 2訪問(wèn)PCI Memory以與內(nèi)核中的驅(qū)動(dòng)程序進(jìn)行通信。 nommconf [IA-32,X86_64]禁止為 PCI Configuration 使用 MMCONFIG 表。 nomsi [MSI]如果啟用了PCI_MSI內(nèi)核配置選項(xiàng),那么可以使用這個(gè)參數(shù)在系統(tǒng)范圍內(nèi)禁用MSI中斷。 nosort [IA-32]不在檢測(cè)階段根據(jù)PCI BIOS給出的順序?qū)CI設(shè)備進(jìn)行排序。進(jìn)行這樣的排序是為了以與早期內(nèi)核兼容的方式獲取設(shè)備序號(hào)。 biosirq [IA-32]使用PCI BIOS調(diào)用來(lái)獲取中斷路由表。這些調(diào)用在不少機(jī)器上都有缺陷,會(huì)導(dǎo)致系統(tǒng)在使用過(guò)程中掛起。但是在某些機(jī)器上卻是唯一獲取中斷路由表的手段。如果內(nèi)核無(wú)法分配IRQ或者發(fā)現(xiàn)了第二個(gè)PCI總線,就可以嘗試使用這個(gè)選項(xiàng)解決問(wèn)題。 rom [IA-32]為擴(kuò)展ROM分配地址空間。使用此選項(xiàng)要小心,因?yàn)槟承┰O(shè)備在ROM與其它資源之間共享地址解碼器。 pirqaddr=0xAAAAA [IA-32]指定物理地址位于F0000h-100000h范圍之外的PIRQ表(通常由BIOS產(chǎn)生)的物理地址。 lastbus=N [IA-32]掃描所有總線,直到第N個(gè)總線。如果內(nèi)核找不到第二條總線的時(shí)候,你就需要使用這個(gè)選項(xiàng)明確告訴它。 assign-busses [IA-32]總是使用你自己指定的PCI總線號(hào)(而不是firmware提供的)。 usepirqmask [IA-32]優(yōu)先使用可能存在于BIOS $PIR表中的IRQ掩碼。某些有缺陷的BIOS需要這個(gè)選項(xiàng),特別是在HP Pavilion N5400和Omnibook XE3筆記本上。如果啟用了ACPI IRQ路由的話,將不會(huì)考慮這個(gè)選項(xiàng)的設(shè)置。 noacpi [IA-32]不為IRQ路由或者PCI掃描使用ACPI。 routeirq 為所有PCI設(shè)備執(zhí)行IRQ路由。這個(gè)通常在pci_enable_device()中執(zhí)行,所有這是一個(gè)解決不調(diào)用此函數(shù)的bug驅(qū)動(dòng)程序的臨時(shí)解決方法。 bfsort 按照寬度優(yōu)先的順序?qū)CI設(shè)備進(jìn)行排序。進(jìn)行這樣的排序是為了以與2.4內(nèi)核兼容的方式獲取設(shè)備序號(hào)。 nobfsort 不按照寬度優(yōu)先的順序?qū)CI設(shè)備進(jìn)行排序。 cbiosize=nn[KMG] 從CardBus bridge 的 IO 窗口接受的固定長(zhǎng)度的總線空間(bus space),默認(rèn)值是256字節(jié)。 cbmemsize=nn[KMG] 從CardBus bridge 的 memory 窗口接受的固定長(zhǎng)度的總線空間(bus space),默認(rèn)值是64MB。
網(wǎng)絡(luò)
[NET]
netdev=,,,, 網(wǎng)絡(luò)設(shè)備參數(shù)。具體細(xì)節(jié)取決于不同的驅(qū)動(dòng)程序,請(qǐng)參考各自的驅(qū)動(dòng)程序文檔。該選項(xiàng)通常不用于PCI/USB等即插即用網(wǎng)卡。 [KNL,NET]
rhash_entries= 設(shè)置內(nèi)核路由緩沖區(qū)哈希表的大小,僅供內(nèi)核網(wǎng)絡(luò)專(zhuān)家使用。 [NET]
shapers= 設(shè)置內(nèi)核允許使用的最大網(wǎng)絡(luò)Shaper(限制網(wǎng)絡(luò)速率的虛擬網(wǎng)絡(luò)設(shè)備)。 [KNL,NET]
thash_entries= 設(shè)置內(nèi)核允許使用的TCP鏈接哈希表的大小。
硬件
[USB]
nousb 禁用USB子系統(tǒng)。
[i386,x86-64]
enable_timer_pin_1
disable_timer_pin_1 啟用/禁用APIC定時(shí)器的PIN1,可以用于解決某些有bug的芯片組(特別是ATI芯片組)。內(nèi)核將盡可能自動(dòng)探測(cè)正確的值。 [IA32/X86_64]
enable_8254_timer
disable_8254_timer 啟用/禁用 在通過(guò)IO-APIC對(duì)IRQ0(時(shí)鐘中斷)進(jìn)行路由之外,還通過(guò)8254進(jìn)行路由。內(nèi)核將盡可能通過(guò)檢測(cè)來(lái)選擇正確的值。 [IA-32,HPET]
hpet=disable 禁用HPET,轉(zhuǎn)而使用PIT。 [GENERIC_TIME,IA-32,X86-64,ACPI]
clocksource={hpet|pit|tsc|acpi_pm} 強(qiáng)制指定clocksource來(lái)取代默認(rèn)值。
其他雜項(xiàng)
[VT]
default_utf8={0|1} 在系統(tǒng)范圍內(nèi)為將所有tty默認(rèn)設(shè)置為UTF-8模式。"1"表示UTF-8模式,默認(rèn)值為"0"。 [IOSCHED]
elevator={"anticipatory"|"cfq"|"deadline"|"noop"} 指定默認(rèn)IO調(diào)度器 [LOOP]
max_loop=<1-256> 最大允許掛載的loopback設(shè)備數(shù)。 [KNL]
panic= 在內(nèi)核發(fā)生panic之后reboot之前等候的秒數(shù)。默認(rèn)值"0"表示不重啟而停頓在那里。
?
評(píng)論
查看更多