?? 214.html
字號:
<tr><td> </td></tr>
<tr><td align=left><i>作者:</i>王波</td></tr>
<tr><td> </td></tr>
<tr><td><font color=white>缺省內核配置選項<br> 通用內核的設置文件中包含了很多比較重要的設置選項,這里的設置選項也是最常用的配置選項,為了編譯出適合自己計算機的設置,就需要了解這個文件中的設置選項。<br><br>#<br># GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks<br>#<br># For more information read the handbook part System Administration -> <br># Configuring the FreeBSD Kernel -> The Configuration File. <br># The handbook is available in /usr/share/doc/handbook or online as<br># latest version from the FreeBSD World Wide Web server <br># <URL:http://www.FreeBSD.ORG/><br>#<br># An exhaustive list of options and more detailed explanations of the <br># device lines is present in the ./LINT configuration file. If you are <br># in doubt as to the purpose or necessity of a line, check first in LINT.<br>#<br># $Id: GENERIC,v 1.143.2.2 1999/02/15 02:50:07 des Exp $<br><br>machine "i386"<br>cpu "I386_CPU"<br>cpu "I486_CPU"<br>cpu "I586_CPU"<br>cpu "I686_CPU"<br>ident GENERIC<br>maxusers 32<br> <br> <br><br> machine行定義了系統所使用的計算機體系結構,對于運行在個人計算機平臺上的FreeBSD,此參數值只能是i386,運行在其他平臺上的BSD系統將使用其他相應設置。注意由于這個配置參數中混用了字母和數字,因此需要用引號將其括起來。這種情況在配置文件中經常會碰到,如果不使用雙引號括起來,配置程序就不能區分它是用于標識字符串還是用于數值設置,造成語法錯誤。<br><br> 可以多個cpu參數描述了處理器類型,可以使用 ”I386_CPU” 、 “I486_CPU” 、 “I586_CPU” 、 “I686_CPU” 四種類型。 “I386_CPU” 是最低配置,缺省的GENERIC配置文件中將這些類型全部列出,這使得這個通用內核在任何個人計算機系統下都能正常運行,但最好根據處理器類型進行針對配置。由于處理器是向下兼容的,但不能向上兼容,因此如果配置的參數高于計算機實際處理器類型,內核就不能正常啟動和工作。<br><br> 對于586以上的處理器,各個兼容廠商的標記方法各不相同,因此必須小心選擇正確的處理器類型,以避免選擇錯誤。可以使用系統啟動時的檢測信息來判斷處理器的類型:<br><br># dmesg | grep ^CPU<br> <br> <br><br> ident用于標識內核,每個內核都應該具有自己的標識,GENERIC內核的標識為GENERIC,而自己定制的內核可以在這一行中定義自己的標識。由于系統中可能存在有多個內核,因此使用這個標識來幫助區分不同的內核。這個標識在系統啟動時將顯示在啟動屏幕上。<br><br> maxusers這個值并不直接限制FreeBSD的用戶數目,而是定義了內核中的一些非常重要的系統表格大小,這些表格會隨系統中進程的增加和資源的被占用會逐漸被填滿,而系統中的用戶和進程數量有一定的關系,因此這個值大概等于系統同時允許的用戶數目。但是當用戶使用X Winodw或其他產生了大量進程和應用程序時,即使只有很少的用戶,系統表格也很容易被填滿。因此這個值不能設置的太小。尤其是要將FreeBSD 用作服務器的時候,服務器會啟動大量的進程,往往要增大這個值以提升系統對高負載的支持能力。<br><br> 系統的進程表的大小為:20+16*maxusers,去除系統啟動時自動啟動的一些守護進程數目,因此可以大致估計出系統中空余的進程表項。進而估計出系統中還可以容納的進程數目,因此就可以根據需求改變這個值的設置。<br><br>options MATH_EMULATE #Support for x87 emulation<br>options INET #InterNETworking<br>options FFS #Berkeley Fast Filesystem<br>options FFS_ROOT #FFS usable as root device [keep this!]<br>options MFS #Memory Filesystem<br>options MFS_ROOT #MFS usable as root device, "MFS" req'ed<br>options NFS #Network Filesystem<br>options NFS_ROOT #NFS usable as root device, "NFS" req'ed<br>options MSDOSFS #MSDOS Filesystem<br>options "CD9660" #ISO 9660 Filesystem<br>options "CD9660_ROOT" #CD-ROM usable as root. "CD9660" req'ed<br>options PROCFS #Process filesystem<br>options "COMPAT_43" #Compatible with BSD 4.3 [KEEP THIS!]<br>options SCSI_DELAY=15000 #Be pessimistic about Joe SCSI device<br>options UCONSOLE #Allow users to grab the console<br>options FAILSAFE #Be conservative<br>options USERCONFIG #boot -c editor<br>options VISUAL_USERCONFIG #visual boot -c editor<br><br>config kernel root on wd0<br> <br> <br><br> MATH_EMULATE選項是一個x87浮點運算模擬器,當計算機中沒有x87協處理器時才需要使用。當前586級以上處理器的處理器內部均已集成了浮點運算器件,因此除非使用386芯片或部分低檔486芯片,內核配置并不需要這種模擬功能。此外,另一個具有相同功能的選項為GPL_MATH_EMULATE,這個選項性能更好,只是它使用GNU的數學函數代碼,而GNU公用許可比BSD許可要求更嚴格。因為這個版權的原因,缺省使用 MATH_EMULATE,這保證FreeBSD可以只以二進制形式向外發布,而不違反GNU許可。由于兩個選項功能相同,只能任選一種,不能同時使用這兩個選項。<br><br> INET選項定義了基本的TCP/IP支持,由于FreeBSD是網絡操作系統,因此這是最基本的選項。<br><br> FFS為BSD快速文件系統,即UFS文件系統,這是FreeBSD使用的基本文件系統。FFS_ROOT用于在UFS系統上啟動系統, 允許將UFS文件系統用作根文件系統。由于UFS是FreeBSD使用的最基本的文件系統,因此應該設置FFS_ROOT,以使系統能夠從磁盤上正常啟動。<br><br> NFS為Sun公司開發的網絡文件系統,它是Unix之間共享文件系統一種事實標準。NFS文件系統也可以用作根文件系統,這通過NFS_ROOT選項進行定義,使得可以配置FreeBSD無盤工作站,無盤的FreeBSD系統可以用于專用X終端等特殊場合。<br><br> "CD9660"為ISO 9660 格式的CD-Rom文件系統,使用它訪問CD-Rom上的文件系統。"CD9660_ROOT"使得可以用光盤作根文件系統。<br><br> MFS為內存映射文件系統,可以將內存映射為文件系統,改善文件系統的性能,當然這只適合有大量物理內存和交換空間的系統。也可以使用mfs類型來將交換分區安裝到某個目錄上,保存一些臨時文件。例如,系統的交換分區為wd0s3b,那么可以使用 “mount -t mfs /dev/wd0s3b /tmp” ,將交換分區安裝到/tmp目錄上。由于tmp是臨時目錄, 被程序用來交換數據,使用mfs文件系統能提高訪問速度,這是擁有大量內存的計算機使用 mfs較常用的方式。MFS_ROOT用于將內存映射文件系統用作根文件系統,FreeBSD的安 裝軟盤就是使用的這種根文件系統,此外,使用MFS_ROOT也用于將FreeBSD系統用作專用防火 墻的嵌入式操作系統。<br><br> 當安裝了系統源代碼之后,可以很容易生成能運行在一張軟盤上的FreeBSD系統,叫做 PicoBSD,它主要被用做路由器、防火墻等專用服務器等。<br><br> MSDOSFS選項定義了msdos的fat文件系統,這不是必要的文件系統選項,使用它來訪問本地硬盤上的msdos文件系統。如果要訪問軟盤上的msdos文件系統,使用mtools軟件更為方便。<br><br> PROCFS是一個偽文件系統,它被安裝到/proc目錄,用于訪問與相應的進程相關的信息,一些系統程序如ps,使用它來獲得進程的信息。<br><br> 此外,"EXT2FS"選項為Linux所使用Ext2fs類型的文件系統,如果用戶的計算機上還運行著Linux,并希望使用FreeBSD訪問本地硬盤上的Linux文件系統,就需要這個選項。<br><br> FreeBSD 2.x以后版本是從4.4BSD發展來的,但FreeBSD 1.x是來自于4.3BSD的。4.3BSD是一個非常重要的BSD版本,很多應用程序也是依照4.3BSD開發的。因此需要使用這個"COMPAT_43" 選項保持和基于4.3BSD(包括FreeBSD 1.x)應用程序的兼容性。<br><br> SCSI設備在設置時需要一定的延遲時間,以便使SCSI控制卡能正確的和SCSI設備通信。因此需要定義SCSI_DELAY=15000選項,與其他選項不同,這個選項為數值設置,使用了賦值符號和數字。這個值的單位為毫秒<br><br> UCONSOLE選項使用戶能接管console,通常在使用X Window時比較有用,這樣就能在 X Window下接管console輸出的與系統相關的信息。FAILSAFE選項使得配置程序對待內核更為謹慎和保守,從而增加了系統的安全性。<br><br> USERCONFIG和VISUAL_USERCONFIG這兩個選項使用戶可以在啟動時進入內核參數設置程序UserConfig,配置硬件參數。USERCONFIG參數只提供基本命令行配置功能,而 VISUAL_USERCONFIG進一步提供全屏的編輯功能。<br><br> config行指定內核文件名及其位置,它指定內核名為kernel,并且內核所在的根文件系統位于wd0硬盤上,根文件系統即為wd0a。FreeBSD習慣上使用kernel作為內核的文件名,不應改變。而它的位置wd0可能會根據硬件設置的不同而不同,例如:如果將FreeBSD安裝到了SCSI硬盤上,則內核和根文件系統的位置就為da0中的分區。<br><br># To make an SMP kernel, the next two are needed<br>options SMP # Symmetric MultiProcessor Kernel<br>options APIC_IO # Symmetric (APIC) I/O<br># Optionally these may need tweaked, (defaults shown):<br>#options NCPU=2 # number of CPUs<br>#options NBUS=4 # number of busses<br>#options NAPIC=1 # number of IO APICs<br>#options NINTR=24 # number of INTs<br> <br> <br><br> 如果用戶的計算機有多個處理器,就需要取消注釋,使用這幾個選項以進行支持。一般 SMP和APIC_IO是最基本的兩個設置選項,SMP選項是用于支持對稱多處理器SMP結構的基本代碼,APIC_IO支持APIC IO方式對稱I/O。使用這兩個選項之后,系統就能自動檢測出所使用的處理器個數以及其他系統資源。當然也可以手工指定這些資源設置,這用于不能正確偵測處理器數目時使用。缺省內核不支持多處理器,因此對于多處理器系統必須重新生成內核。<br><br> 由于只有586以上的芯片才支持SMP,因此這需要在cpu行的設置中刪除386和486行的設置,明確指定處理器的類型。否則就會發生邏輯沖突。<br><br>controller isa0<br>controller eisa0<br>controller pci0<br> <br> <br><br> 這三行定義了三種控制器的基本支持代碼:ISA、EISA和PCI總線控制器。<br><br> ISA總線類型是個人計算機的標準配置,很多驅動程序代碼都基于ISA控制器的代碼,因此系統必須對ISA總線進行支持。EISA總線類型是ISA的擴展,使用在一些較老型號的服務器中,今天已經逐漸被PCI總線代替,它是可選的。PCI選項支持PCI總線設備的通用代碼,當前PCI總線主板是個人計算機的主流,這個選項也是必須的。<br><br> 如果用戶的計算機不存在EISA總線,可以刪除對EISA選項的支持。但是,由于后面設置的一些設備是EISA總線類型的設備,依賴這個選項的支持,必須同時也必須刪除所有的EISA總線類型的設備,否則就存在邏輯錯誤。配置程序并不會自動刪除那些并不存在的設備選項,這樣就導致直到編譯時才會發現EISA總線設備的驅動程序發生編譯錯誤,編譯不能正常完成。<br><br>controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2<br>disk fd0 at fdc0 drive 0<br>disk fd1 at fdc0 drive 1<br> <br> <br><br> 控制器fdc0是支持標準軟盤控制器的基本代碼,一般個人計算機能支持兩個軟盤驅動器, fd0和fd1設備。 通過drive參數的值可以指定這兩個軟盤的順序。fdc0使用的資源是個人計算機缺省設置,因此不存在系統探測問題。此外,雖然讓內核自動探測軟盤的數量沒什么壞處,但刪除不必要的選項可以略微加快系統啟動的速度<br><br>options "CMD640" # work around CMD640 chip deficiency<br>controller wdc0 at isa? port "IO_WD1" bio irq 14<br>#controller wdc0 at isa? port "IO_WD1" bio irq 14 flags 0x00ff8004<br>disk wd0 at wdc0 drive 0<br>disk wd1 at wdc0 drive 1<br><br>controller wdc1 at isa? port "IO_WD2" bio irq 15<br>disk wd2 at wdc1 drive 0<br>disk wd3 at wdc1 drive 1<br><br>options ATAPI #Enable ATAPI support for IDE bus<br>options ATAPI_STATIC #Don't do it as an LKM<br>device acd0 #IDE CD-ROM<br>device wfd0 #IDE Floppy (e.g. LS-120)<br> <br> <br><br> 前面的這些選項是用于支持IDE驅動器及硬盤的配置,事實上這些設置不但支持IDE驅動器,還支持一些較老的ST506或ESDI界面的硬盤設備,雖然那些硬盤設備已經淘汰,沒有人再使用它們了。<br><br> "CMD640"用于修正使用CMD640控制芯片的系統主板的問題,wdc0是第一個IDE接口控制器,wdc1為第二個IDE控制器,一個個人計算機系統中只能存在兩個標準IDE控制器,并且一個IDE驅動器能帶兩個硬盤設備,因此wdc0上能連接兩個硬盤wd0和wd1,wdc1能連接wd2和wd3。其中wd0和wd2為主硬盤,wd1和wd3為從硬盤。當然可以通過指定磁盤的參數at和drive參數的設置,改變硬盤號的順序。<br><br> 由于IDE經過了一個長期的發展,控制器是由不同的制造廠商制造的,因此在一些細微的方面也存在有差異,主要是新的控制器能夠支持更強的傳輸模式,當然它也支持原有的兼容模式。為這些細小的差異沒有必要重寫驅動程序,只需要更改配置行中的參數設置,就能支持某些IDE控制器的高級功能。<br><br> 每個控制器都有長32位的flags標志位,用于定義IDE硬盤的I/O類型,其中前16位定義 drive 1的標志,后16位定義drive 0的標志。例如wdc0的標志為0x00ff8004,表示定義了wd0的標志為0x8004,使用32位I/O每次傳送4個扇區,而wd1設置為0x00ff,不探測32位傳輸而使用兼容模式。這個標志也可以分割為兩個16位的部分,也在每個磁盤設備的標志中定義。<br><br> IDE控制器中還支持光盤驅動器,首先需要ATAPI提供IDE界面使用的ATAPI類型光驅基本代碼, ATAPI_STATIC這一選項使ATAPI代碼直接編譯到內核文件中,而不編譯為可加載模塊。而acd0就為IDE光驅的驅動程序。由于光驅就是連接在IDE控制器上,因此IDE接口的光驅還需要相應IDE驅動器的支持,例如光驅接在第二個IDE控制器上,則必須增加wdc1控制器選項。如果光驅上的主/從(master/slave)跳線不正確,就不能正確偵知IDE光驅,很多IDE光驅出廠設置位從設備,在該IDE總線上沒有其他設備的情況下,應該將光驅跳為主設備。<br><br> 2.2和3.0release版本使用wcd0作光驅的驅動程序,而acd0是3.1-stable使用的新CD-ROM驅動,因此從2.2.x或3.0-release升級到3.1-stable時,要更改設置文件中的原wcd0項為acd0項。以后隨著系統的發展,老wcd0的代碼會完全刪除,新代碼的驅動名字會恢復為wcd0。<br><br> wfd0為IDE接口的軟盤驅動器,某些zip驅動器需要這個驅動器的支持。<br><br># A single entry for any of these controllers (ncr, ahb, ahc) is<br># sufficient for any number of installed devices.<br>controller ncr0<br>controller ahb0<br>controller ahc0<br>controller isp0<br><br># This controller offers a number of configuration options, too many to<br># document here - see the LINT file in this directory and look up the<br># dpt0 entry there for much fuller documentation on this.<br>controller dpt0<br><br>controller adv0 at isa? port ? cam irq ?<br>controller adw0<br>controller bt0 at isa? port ? cam irq ?<br>controller aha0 at isa? port ? cam irq ?<br>#controller aic0 at isa? port 0x340 bio irq 11<br><br>controller scbus0<br>#controller scbus1 at ahc1 bus 0<br><br>device da0<br>#disk da0 at scbus0 target 0 unit 0<br><br>device sa0<br>device pass0<br>device cd0 #Only need one of these, the code dynamically grows<br> <br> <br><br> 對于網絡服務器來講,SCSI控制器是理想的選擇,因為SCSI設備不需要占用計算機處理器的處理能力,因此適合經常發生并發存取的服務器系統。FreeBSD 3.0之后的SCSI驅動代碼已經完全重寫,新的代碼更高效,并支持更多新設備。<br><br> 對于不同的SCSI設備,需要不同的SCSI控制器驅動程序,例如aha0為支持使用Adaptec 154x 芯片SCSI控制器的驅動程序,內核配置文件LINT和安裝介質中的HARDWARE.TXT中也列出了FreeBSD支持的 SCSI控制器對應的各個選項。需要根據自己計算機上的SCSI卡的具體型號進行選擇。確定了具體的驅動之后,可以刪除和添加相應的控制行,但需要注意最好不要改變配置文件中控制器的前后順序,因為配置順序決定系統檢測硬件的順序,那么配置順序不正確有可能造成錯誤的檢測結果。<br><br> scbus0控制器提供基本的SCSI總線驅動代碼,當不使用參數的時候,這個控制器將自動和檢測到的某個SCSI控制器聯系起來。在已經了解系統擁有的控制器的條件下,可以使用at參數手工指定某個序號的SCSI總線位于哪個SCSI控制器上,一般一個SCSI控制器可以有幾個SCSI總線通道。上例中注釋中的 scbus1總線控制器被指定為ahc1控制卡上的第一個總線,注意自動分配SCSI總線序號的方式與手工指定 SCSI總線的方式不應該混用,以避免出現沖突錯誤。<br><br> da0就用于標識SCSI硬盤設備,不同的SCSI磁盤的SCSI總線scbus0,總線上的ta</font></td></tr>
<tr><td> </td></tr>
<tr><td align=right><i>來源:</i><a href="javascript:if(confirm('http://freebsd.online.ha.cn/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://freebsd.online.ha.cn/'" tppabs="http://freebsd.online.ha.cn/">http://freebsd.online.ha.cn/</a></td></tr>
</table>
<p> </p>
<p> </p>
<p> </p>
聲明:本站的文章和軟件是本人從網上收集整理的(除本人的作品之外),所有版權屬于作者,<br>
如有侵犯您的權益,請指出,本站將立即改正,謝謝.
<hr width=500>
<br>
<font color=#ffffff>Copyright 2000 <a href="javascript:if(confirm('http://www.newok.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.newok.com/'" tppabs="http://www.newok.com/" class=t1>www.newok.com</a></font>
</div>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -