免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
自訂 FreeBSD Kernel (系統(tǒng)核心)
 .
   6 October 1995.

   這個(gè)略大的章節(jié)會(huì)討論如何自訂你的 FreeBSD kernel。
   這個(gè)章節(jié)適合初學(xué)者以及經(jīng)驗(yàn)豐富的管理者。

  5.1. 為何要自訂 kernel ?

  5.2. 建立以及安裝一個(gè)自訂的 kernel

  5.3. kernel 設(shè)定檔

          5.3.1. 一定要有的關(guān)鍵字
          5.3.2. 一般的參數(shù)
          5.3.3. 檔案系統(tǒng)的參數(shù)
          5.3.4. 基本控制卡以及介面卡
          5.3.5. SCSI 裝置支援
          5.3.6. Console,滑鼠,及 X Server 支援
          5.3.7. Serial 跟 Parallel Ports
          5.3.8. 網(wǎng)路
          5.3.9. 音效卡
          5.3.10. 虛擬裝置 (Pseudo-devices)
          5.3.11. 搖桿、PC 喇叭及其他雜七雜八的

  5.4. 建立 device nodes

  5.5. 發(fā)生問(wèn)題的解決方法


     _________________________________________________________________
5.1. 為何要自訂 kernel ?



   建立一個(gè)自訂的 kernel 是每個(gè) UNIX 系統(tǒng)管理者所必須學(xué)習(xí)的重要課題。
   這個(gè)過(guò)程雖然耗時(shí),但是將會(huì)對(duì)你的 FreeBSD 系統(tǒng)帶來(lái)許多好處。 一個(gè)自訂的
   kernel,只會(huì)包含支援你硬體的驅(qū)動(dòng)程式, 而一個(gè) GENERIC kernel
   卻包含大多數(shù)的硬體驅(qū)動(dòng)程式以便在各種機(jī)器上執(zhí)行。 自訂的 kernel
   將包含下列優(yōu)點(diǎn):



     * 開(kāi)機(jī)時(shí)只需要花較少的時(shí)間,因?yàn)?nbsp;kernel 不需花額外的時(shí)間去偵測(cè)
       你沒(méi)有的硬體是否存在。

     * 自訂的 kernel 通常占較少的記憶體,這是很重要的。 因?yàn)?nbsp;kernel
       本身是一個(gè)常駐在記憶體中的程式,那些沒(méi)有用到的 程式碼 (如 GENERIC
       kernel) 將會(huì)占去你其他程式執(zhí)行時(shí)的記憶體空間。
       因此,在一個(gè)記憶體較小的機(jī)器上,建立一個(gè)自訂的 kernel
       將是相當(dāng)重要的。

     * 最後,有你可以調(diào)整許多的 kernel 參數(shù)來(lái)符合你的需求, 以及奶J其他
       (如音效卡的驅(qū)動(dòng)程式) ,這些是 GENERIC kernel 所沒(méi)有的。




     _________________________________________________________________
5.2. 建立以及安裝一個(gè)自訂的 kernel



   首先,我們先瀏覽一下編譯 kernel 的目錄。 所有的 kernel
   原始程式都是放在 /usr/src/sys 以下的 (而通常我們會(huì)將 /sys 連結(jié) (link)
   到 /usr/src/sys)。 Kernel 原始程式有許多不同的目錄,比方說(shuō)
   /sys/i386/conf, 你將會(huì)把你的 kernel 設(shè)定檔放在此目錄下; 還有例如
   /sys/compile, 你將會(huì)在此編譯你的 kernel。

     注意: 如果你的系統(tǒng)中 沒(méi)有 /usr/src/sys, 表示你尚未安裝 kernel
     原始程式,請(qǐng)參照系統(tǒng)安裝過(guò)程來(lái)安裝 kernel 原始程式。



   接下來(lái),進(jìn)入 /sys/i386/conf 并且拷貝 GENERIC 檔
   成為你想要的檔名。例如:

# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL

   傳統(tǒng)上這個(gè)檔名都是用大寫(xiě)字母,如果你有許多的 FreeBSD 機(jī)器, 用大寫(xiě)的
   hostname 來(lái)命名是區(qū)分不同機(jī)器設(shè)定的好方法。

     注意: 你必須以 root 的身份執(zhí)行所有的命令,否則你會(huì)得到 "permission
     denied" 的錯(cuò)誤。



   現(xiàn)在,以你最習(xí)慣的編輯器編輯 MYKERNEL (如果你不知道用什麼好,
   你可以試試 vi,雖然要解釋如何使用它太過(guò)雜, 但是至少大部份的 書(shū)
   都會(huì)提到它。 你必須修改或新增此檔案中的設(shè)定以符合你系統(tǒng)的需求。

   如果你曾經(jīng)在 SunOS 或是其他的 BSD 系統(tǒng)上建立過(guò) kernel,
   那麼你將會(huì)對(duì)這個(gè) kernel 設(shè)定檔的內(nèi)容十分熟悉。
   如果你較熟悉其他的作業(yè)系統(tǒng) (如 DOS),你可能會(huì)看不懂 kernel
   設(shè)定檔,麻煩你仔細(xì)閱讀 kernel 設(shè)定檔 。

     注意: 如果你是從較舊版本的 FreeBSD 升級(jí)上來(lái)的, 你可能必須一更新
     config(8)。如果你是從 FreeBSD 原始程式升級(jí)的, 你可以在
     /usr/src/usr.sbin/config 中找到 config 的原始程式。



   當(dāng)你完成建立或修改 kernel 設(shè)定檔時(shí),執(zhí)行以下命令來(lái)編譯你的 kernel:

# /usr/sbin/config MYKERNEL
# cd /compile/MYKERNEL
# make depend
# make
# make install

:make depend; make; make install 可用 make depend all install 來(lái)替代

   新編譯好的 kernel 將會(huì)被安裝到根目錄去 (名為 /kernel), 舊的 kernel
   將會(huì)被更名為 /kernel.old。 現(xiàn)在,關(guān)閉 (shutdown) 你的系統(tǒng)并重新開(kāi)機(jī)
   (reboot)。 如果重新開(kāi)機(jī)後出了什麼問(wèn)題,請(qǐng)閱讀本文最後的
   發(fā)生問(wèn)題的解決方法 。 請(qǐng)記得閱讀 以免你的 kernel 無(wú)法開(kāi)機(jī) 。

     注意: 如果你增s的硬體 (如音效卡), 你必須建立一些 device nodes
     到你的 /dev 下。


     _________________________________________________________________
5.3. kernel 設(shè)定檔



   這個(gè)檔案的內(nèi)容相當(dāng)?shù)暮?jiǎn)單。每一行都包含了一個(gè)關(guān)鍵字以及它的參數(shù)。
   任何以 # 開(kāi)頭的行都被視為解而忽略。 接下來(lái)會(huì)介紹 GENERIC
   (一般設(shè)定檔) 中所含有的關(guān)鍵字。 另一個(gè)設(shè)定檔 LINT
   中包含絕大多數(shù)的詳細(xì)關(guān)鍵字,LINT 中并有詳細(xì)說(shuō)明,
   如果你有任何的疑問(wèn)可以參考 LINT。

   傳統(tǒng)上 kernel 設(shè)定檔中的關(guān)鍵字會(huì)以 -D 的方式由 CFLAGS
   傳遞給編譯器,但是這樣做所有的檔案都有可能被影響。

   現(xiàn)在我們有了新的方法。config 這個(gè)程式會(huì)將那些關(guān)鍵字分門(mén)別類的放到
   opt_foo.h,這樣只有相關(guān)的原始程式才會(huì)參考到這些設(shè)定檔。

  5.3.1. 一定要有的關(guān)鍵字

  5.3.2. 一般的參數(shù)

  5.3.3. 檔案系統(tǒng)的參數(shù)

  5.3.4. 基本控制卡以及介面卡

  5.3.5. SCSI 裝置支援

  5.3.6. Console,滑鼠,及 X Server 支援

  5.3.7. Serial 跟 Parallel Ports

  5.3.8. 網(wǎng)路

  5.3.9. 音效卡

  5.3.10. 虛擬裝置 (Pseudo-devices)

  5.3.11. 搖桿、PC 喇叭及其他雜七雜八的


     _________________________________________________________________
5.3.1. 一定要有的關(guān)鍵字



   以下是你的 kernel 設(shè)定檔中一定要有的關(guān)鍵字。



   machine ``i386''


          第一個(gè)關(guān)鍵字是 machine,因?yàn)?nbsp;FreeBSD 現(xiàn)在只能在 386 以上的 PC
          執(zhí)行,理所當(dāng)然參數(shù)是 i386。

     注意: 任何包含數(shù)字的關(guān)鍵字都必須用引號(hào)匡起來(lái) (如 "i386"), 否則
     config 可能會(huì)誤以為你的意思是數(shù)字 386 (三百八十六)。

   cpu ``cpu_type''


          第二個(gè)關(guān)鍵字是 cpu, 這些是指你的 kernel 即將支援的 CPU 種類。
          它的參數(shù) cpu_type 有:

          + I386_CPU


          + I486_CPU

          + I586_CPU


          + I686_CPU



   設(shè)定檔中可以有一行以上的 cpu "cpu_type" 以支援各種的 CPU, 就像
          GENERIC 檔案一樣。如果你的硬體是固定的,只要包含你用的 CPU
          種類就好了。 如果你使用 Intel Pentium,那你只要有 cpu
          "I586_CPU" 就好了。

   ident machine_name


          接下來(lái)是 ident, 這是用來(lái)區(qū)別不同 kernel 用的。 你可以使用
          GENERIC 這個(gè)字或是其他你喜歡的字 (如 MYKERNEL)。
          你可以在開(kāi)機(jī)的時(shí)候看到這個(gè)字。 你可以替試驗(yàn)性的 kernel
          取不同的名字藉以區(qū)別其它的 kernel。 要注意的是,這個(gè)字將會(huì)以
          CFLAGS 的方式傳給 C 編譯器, 請(qǐng)勿使用到特殊的關(guān)鍵字如
          DEBUG,以免發(fā)生不可預(yù)期的事。 如果你不知道要用那個(gè)字,你可以用
          GENERIC 這個(gè)字。

   maxusers number


          這個(gè)數(shù)字將會(huì)決定你的 kernel 中一些資料結(jié)構(gòu)的大小。
          例如你的系統(tǒng)中可以同時(shí)載入的程序 (process) 數(shù)目等於 20 + 16 *
          maxusers。 對(duì)於一個(gè)使用者的環(huán)境來(lái)說(shuō),設(shè)定 maxusers = 4
          大概可以符合一般需求。 然而,如果你得到 "proc table full"
          的錯(cuò)誤訊息, 你必須增?maxuser 的值。如果你想執(zhí)行
          X-Windows,你可能需要 maxuser = 16A更大的值是必須的。

     注意: 這個(gè)數(shù)字并 不是 代表你的系統(tǒng)
     可以同時(shí)上線的人數(shù),它只是決定你的 kernel 中一些資料結(jié)構(gòu)的大小。
     真正影響上線人數(shù)的是 pseudo-device pty 16 。

   config kernel_name root on root_device


          這行指定 kernel 的名稱及位置。傳統(tǒng)上來(lái)說(shuō),kernel 的命名為
          vmunix, 但是 FreeBSD 稱它為 kernel。你一定要用 kernel 當(dāng)作
          kernel_name,因?yàn)樵S多程式都會(huì)去參考 /kernel 這個(gè)檔案。
          這行的第二個(gè)參數(shù) root_device 指定你的 root partition 跟 kernel
          放在哪顆硬碟上。 一般來(lái)說(shuō),用 SCSI 硬碟的系統(tǒng)使用 sd0,用 IDE
          硬碟的使用 wd0。


     _________________________________________________________________
5.3.2. 一般的參數(shù)



   這些參數(shù)提供檔案系統(tǒng)及其它的功能支援。







   options MATH_EMULATE


          這個(gè)參數(shù)讓 kernel 用軟體的方式模擬浮點(diǎn)運(yùn)算,如果你的 CPU
          不含浮點(diǎn)運(yùn)算器 (或沒(méi)有 387),你就必須打開(kāi)此參數(shù)。

     注意: FreeBSD 所提供的一般浮點(diǎn)模擬器并沒(méi)有十分準(zhǔn)確,
     如果你沒(méi)有浮點(diǎn)運(yùn)算器卻又需要最好的準(zhǔn)確度,你可以是用
     GPL_MATH_EMULATE 來(lái)使用較優(yōu)秀的 GNU 浮點(diǎn)模擬。 因?yàn)?nbsp;GNU
     版權(quán)的關(guān),因此不以它來(lái)當(dāng)作內(nèi)定的模擬器。

   options ``COMPAT_43''


          提供 4.3BSD
          的相容模式,有些程式需要這個(gè)參數(shù),所以請(qǐng)一定要打開(kāi)。

   options BOUNCE_BUFFERS


          ISA 以及以 ISA 相容模式運(yùn)作的 EISA 介面卡只能對(duì) 16MB
          以下的記憶體做 DMA(Direct Memory
          Access)。這個(gè)參數(shù)用緩區(qū)的方式使得這些介面卡 可以 DMA 存取
          16MB 以上的記憶體。 通常使用 ISA SCSI 卡又有超過(guò) 16MB
          的人才需要此參數(shù), 打開(kāi)此參數(shù)會(huì)使得系統(tǒng)稍微慢一點(diǎn)。

   options UCONSOLE


          允許使用者?ampcirc;取 console,對(duì) X Windows 是很有用的。
          舉例來(lái)說(shuō),你可以用 xterm -C來(lái)?ampcirc;取傳到 console 上的 talk
          、write 以及 system log 的訊息。

   options SYSVSHM


          這個(gè)參數(shù)提供 System V 共享記憶體 (shared memory) 的支援。
          最常使用 SYSVSHM 的是 X Windows 的 XSHM 功能 (如使用 xanim,
          Linux DOOM 等),因?yàn)樗梢蕴岣邎?zhí)行速度。如果你使用 X Windows
          或是電子告欄 (BBS),你一定要打開(kāi)此參數(shù)。

   options SYSVSEM


          提供 System V semaphores 的支援,雖然不常用到,但是它只占一點(diǎn)點(diǎn)
          kernel 的空間。

   options SYSVMSG


          提供 System V messages 的支援,雖然不常用到,但是它只占一點(diǎn)點(diǎn)
          kernel 的空間。

     注意: ipcs(1) 這個(gè)命令會(huì)列出正在使用以上三種 SYSV 的功能 的程序
     (process)。


     _________________________________________________________________
5.3.3. 檔案系統(tǒng)的參數(shù)



   這些參數(shù)提供各種檔案系統(tǒng)的支援,你一定要包含一種以上的檔案系統(tǒng)
   以便開(kāi)機(jī)所需。 如果你是從硬碟開(kāi)機(jī),你必須包含 FFS; 如果你用 diskless
   開(kāi)機(jī) (網(wǎng)路開(kāi)機(jī)),你必須包含 NFS。
   此外,你還可以將常用到的檔案系統(tǒng)包含進(jìn)去 (如 MSDOS)。
   但是你可以將這些非開(kāi)機(jī)必備的檔案系統(tǒng)拿掉,F(xiàn)reeBSD 會(huì)利用動(dòng)態(tài)載入模組
   (Loadable Kernel Module) 在你用到檔案系統(tǒng)時(shí),自動(dòng)將檔案系統(tǒng)模組從 /lkm
   載入使用。



   options FFS


          最基本的檔案系統(tǒng)支援,如果你是從硬碟開(kāi)機(jī)的,你一定需要它。

   options NFS


          網(wǎng)路檔案系統(tǒng)(Network Filesystem?ampcirc;,除非你想要經(jīng)由網(wǎng)路存取
          (mount)其他工作站的檔案,否則你不需要它。

   options MSDOSFS


          MS-DOS 檔案系統(tǒng)。除非你每次開(kāi)機(jī)都要使用 MSDOS 檔案系統(tǒng),
          不然你可以將他拿掉,系統(tǒng)會(huì)在你使用到 MSDOS 檔案系統(tǒng)時(shí), 自動(dòng)用
          LKM 將 MSDOS 檔案系統(tǒng)支援載入。 除此之外,你也可以使用
          mtools來(lái)存取 DOS 的軟碟, 這并不需要有 MSDOS 檔案系統(tǒng)的支援。

   options ``CD9660''


          ISO 9660 是 CD-ROM 的檔案系統(tǒng),如果你只是偶爾用到 CD-ROM,
          你可以將它拿掉,系統(tǒng)會(huì)在使用到 CD-ROM 時(shí)自動(dòng)以 LKM 載入。
          此外,用 CD-ROM 聽(tīng) Audio CD 不需要 CD9660 的支援。

   options PROCFS


          Process 檔案系統(tǒng)。這是一個(gè)對(duì)映記憶體中執(zhí)行程序的虛擬檔案系統(tǒng),
          許多系統(tǒng)工具如 ps 需要 PROCFS。

   options MFS


          記憶體映對(duì)檔案系統(tǒng) (Memory-mapped Filesystem)。
          這基本上是一個(gè)為了達(dá)到快速暫存用的 RAM disk, 當(dāng)你有許多 swap
          空間的時(shí)候是很有用的。 一個(gè)掛上 (mount) MFS 的好地方是 /tmp,
          因?yàn)樵S多程式會(huì)利用 /tmp 建立暫時(shí)檔案。 以下是將 MFS 掛上 /tmp
          的方法: 在 /etc/fstab 中奶J以下這行并重新開(kāi)機(jī)或鍵入 mount
          /tmp。


/dev/wd1s2b   /tmp mfs rw 0 0



     注意: 將 /dev/wd1s2b 替換成你的 swap partition, 你的 swap partition
     在 /etc/fstab 中看起來(lái)是這樣的:

/dev/wd1s2b none swap sw 0 0



     注意: 再來(lái),MFS 無(wú)法以 LKM 載入, 一定要將它連結(jié)在 kernel 中。

   options QUOTA


          奶J quota 的支援,可以藉以限制使用者能用的硬碟空間。 請(qǐng)參閱
          quota(1) 的說(shuō)明 (man quota)。


     _________________________________________________________________
5.3.4. 基本控制卡以及介面卡



   這些章節(jié)討論 FreeBSD 的硬碟、磁帶機(jī)、CD-ROM 的支援。 對(duì)於 SCSI 卡 跟
   網(wǎng)路卡 我們將在另一章節(jié)討論。



   controller isa0


          所有的 PC 都應(yīng)該奶J ISA 的支援。如果你的系統(tǒng)是 IBM PS/2 (Micro
          Channel Architecture),很抱歉現(xiàn)在 FreeBSD 并不支援。

   controller pci0


          奶J PCI (含 PCI Plug) 的支援。

   controller fdc0


          軟碟控制卡: fd0 是 ``A:'' 磁碟,fd1 是 ``B:'' 磁碟。 ft0
          是接在軟碟控制卡上的 QIC-80 磁帶機(jī)。

     注意: QIC-80 磁帶機(jī)需要 ft(8) 程式的支援。

   controller wdc0


          這是主要 (primary) IDE 控制卡的支援。 wd0 跟 wd1 是第一臺(tái)
          (primary) 跟第二臺(tái) (slave) 硬碟。 wdc1 是次要 (secondary) IDE
          控制卡, 提供第三臺(tái)及第四臺(tái)硬碟 (或者是 IDE ATAPI CD-ROM)
          的支援。

   controller wcd0


          提供 IDE ATAPI CD-ROM 的支援,需要 wdc0 或 wdc1
          的支援。此外,你還需要 options ATAPI, ATAPI_STATIC 的參數(shù)。

   device npx0 at isa? port ``IO_NPX'' irq 13 vector npxintr


          npx0 是 FreeBSD 浮點(diǎn)運(yùn)算的呼叫介面,不管你有沒(méi)有
          浮點(diǎn)運(yùn)算器,這個(gè)參數(shù)都是 必要 的。

   device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr


          Wangtek 跟 Archive QIC-02/QIC-36 磁帶機(jī)的支援。

   專屬介面 CD-ROM 的支援


          以下這些是所謂的 專屬介面 CD-ROM。
          他們使用專屬的控制卡或是音效卡,他們 不是 IDE 或 SCSI 的
          CD-ROM。他們大多數(shù)是單倍速或雙倍速的老機(jī)種。



        device mcd0 at isa? port 0x300 bio irq 10 vector mcdintr


                Mitsumi CD-ROM (LU002, LU005, FX001D).

        device scd0 at isa? port 0x230 bio


                Sony CD-ROM (CDU31, CDU33A).

        controller matcd0 at isa? port ? bio


                Matsushita/Panasonic CD-ROM (Creative Labs for
                SoundBlaster).


     _________________________________________________________________
5.3.5. SCSI 裝置支援



   這個(gè)章節(jié)討論許多種 FreeBSD 支援的 SCSI 控制卡及周邊裝置。



   SCSI 控制卡


          以下這幾行提供 SCSI 控制卡的支援,只需要奶J你所需要的:

        controller bt0 at isa? port ``IO_BT0'' bio irq ? vector btintr


                大多數(shù)的 Buslogic 控制卡

        controller uha0 at isa? port ``IO_UHA0'' bio irq ? drq 5 vector
                uhaintr


                UltraStor 14F 跟 34F

        controller ahc0


                Adaptec 274x/284x/294x/394x

        controller ahb0 at isa? bio irq ? vector ahbintr


                Adaptec 174x

        controller aha0 at isa? port ``IO_AHA0'' bio irq ? drq 5 vector
                ahaintr


                Adaptec 154x

        controller aic0 at isa? port 0x340 bio irq 11 vector aicintr


                Adaptec 152x 跟在音效卡上的 Adaptec AIC-6360 (速度慢!)

        controller nca0 at isa? port 0x1f88 bio irq 10 vector ncaintr


                使用 NCR 5380 or Trantor T130 的 ProAudioSpectrum

        controller sea0 at isa? bio irq 5 iomem 0xc8000 iosiz 0x2000
                vector seaintr


                Seagate ST01/02 8 bit 控制卡 (速度慢!)

        controller wds0 at isa? port 0x350 bio irq 15 drq 6 vector
                wdsintr


                Western Digital WD7000 控制卡

        controller ncr0


                NCR 53C81x/82x/87x PCI SCSI 控制卡

   options ``SCSI_DELAY=15''


          這個(gè)參數(shù)使得 kernel 在開(kāi)機(jī)時(shí)會(huì)先等待 15 秒, 再偵測(cè) SCSI
          周邊裝置,有些速度慢的周邊 (如 CD-ROM) 需要較長(zhǎng)的初始時(shí)間。

   controller scbus0


          如果你有任何的 SCSI 裝置,你就需要這個(gè)參數(shù)。

   device sd0


          支援 SCSI 硬碟。

   device st0


          支援 SCSI 磁帶機(jī)。

   device cd0


          支援 SCSI CD-ROM。

          請(qǐng)注意這個(gè) 0 并不是說(shuō)只支援一臺(tái)或是 SCSI-ID 0,
          無(wú)論有多少裝置都被支援的。

          如果你想要指定 SCSI ID 或是 LUN,請(qǐng)參閱 LINT 中相關(guān)的說(shuō)明。


     _________________________________________________________________
5.3.6. Console,滑鼠,及 X Server 支援



   你一定要在以下兩種顯示驅(qū)動(dòng)程式中選一種。 大多數(shù)的程式經(jīng)由終端函式庫(kù)
   (如 termcap)控制顯示, 不管你選哪一種都應(yīng)該能執(zhí)行。



   device sc0 at isa? port ``IO_KBD' tty irq 1 vector scintr


          sc0 是內(nèi)定的顯示驅(qū)動(dòng)程式,它是模擬 SCO console 的。
          使用的時(shí)候,將你的環(huán)境變數(shù) TERM 設(shè)定成 "scoansi" 或 "cons25"。

   device vt0 at isa? port ``IO_KBD'' tty irq 1 vector pcrint


          這是 VT200 相容的顯示驅(qū)動(dòng)程式,通常是用來(lái)給那些不能用 sc0
          的機(jī)器用的。使用的時(shí)候?qū)⒛愕沫h(huán)境變數(shù)設(shè)成 "vt100" 或 "vt200"。



        options ``PCVT_FREEBSD=210''


                設(shè)定 vt0 程式在 FreeBSD 2.1.0 以上的系統(tǒng)執(zhí)行。

        options XSERVER


                奶J XFree86 的 X Windows 所需的支援。

   device mse0 at isa? port 0x23c tty irq 5 vector ms


          支援 Logitech bus mouse 或 ATI InPort bus mouse card.

     注意: 如果你使用 serial mouse (插在 COM1 上),你并不需要這項(xiàng)參數(shù)。

   device psm0 at isa? port ``IO_KBD'' conflicts tty irq 12 vector
          psmintr


          使用 PS/2 mouse.


     _________________________________________________________________
5.3.7. Serial 跟 Parallel Ports



   幾乎所有的機(jī)器都有這東西,如 印表機(jī) 或是 Modem 撥接 等等。



   device sio0 at isa? port ``IO_COM1'' tty irq 4 vector siointr


          sio0 到 sio3 是四個(gè) seiral ports (即 COM1 到 COM4)。 如果你的
          COM4 有內(nèi)接 Modem,而 COM2 有接 serial 裝置, 你必須將 Modem 的
          IRQ 改成 2 (IRQ 2 就是 IRQ 9)。 如果你有 multiport serial
          卡,請(qǐng)閱讀 sio(4)的資料。 有些顯示卡 (如某些 S3 的卡) 使用
          0x*2e8 的 IO Address, 而有些便宜的 serial 卡沒(méi)有完全支援
          16-bit IO Address, 這些會(huì)互相突而使得 COM4 失效。 每個(gè)
          serial port 都需要有一個(gè)獨(dú)立的 IRQ (除了 Multiport 卡),
          所以內(nèi)定給 COM3 跟 COM4 的 IRQ 是不能使用的。

   device lpt0 at isa? port? tty irq 7 vector lptintr


          lpt0 到 lpt2 是三個(gè)印表機(jī)的 port,
          大多數(shù)人只有一臺(tái)印表機(jī),你可以將沒(méi)有用到的移除。


     _________________________________________________________________

5.3.8. 網(wǎng)路



   FreeBSD,跟一般 UNIX 一樣,非常重視網(wǎng)路。
   因此,就算你沒(méi)有網(wǎng)路卡,也請(qǐng)注意那些撥接服務(wù)支援。



   options INET


          網(wǎng)路的支援。就算你不需要網(wǎng)路,你還是需要此參數(shù),
          許多程式至少需要 loopback 網(wǎng)路 (即,連接自己的電腦),
          所以這是必要的。

   Ethernet 網(wǎng)路卡


          以下是網(wǎng)路卡的支援,如果你沒(méi)有網(wǎng)路卡,你可以跳過(guò)。



        device de0


                Digital Equipment DC21040 PCI Ethernet 網(wǎng)路卡

        device cx0 at isa? port 0x240 net irq 15 drq 7 vector cxintr


                Cronyx/Sigma multiport sync/async (with Cisco or PPP
                framing)

        device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector
                edintr


                Western Digital 跟 SMC 80xx; Novell NE1000 跟 NE2000;
                3Com 3C503

        device el0 at isa? port 0x300 net irq 9 vector elintr


                3Com 3C501 (速度慢!)

        device eg0 at isa? port 0x310 net irq 5 vector egintr


                3Com 3C505

        device ep0 at isa? port 0x300 net irq 10 vector epintr


                3Com 3C509

        device fe0 at isa? port 0x240 net irq ? vector feintr


                Fujitsu MB86960A/MB86965A Ethernet 網(wǎng)路卡

        device fea0 at isa? net irq ? vector feaintr


                DEC DEFEA EISA FDDI 網(wǎng)路卡

        device ie0 at isa? port 0x360 net irq 7 iomem 0xd0000 vector
                ieintr


                AT&T StarLAN 10 and EN100; 3Com 3C507; unknown NI5210

        device ix0 at isa? port 0x300 net irq 10 iomem 0xd0000 iosiz
                32768 vector ixintr


                Intel EtherExpress 16

        device le0 at isa? port 0x300 net irq 5 iomem 0xd0000 vector
                le_intr


                Digital Equipment EtherWorks 2 跟 EtherWorks 3 (DEPCA,
                DE100, DE101, DE200, DE201, DE202, DE203, DE204, DE205,
                DE422)

        device lnc0 at isa? port 0x300 net irq 10 drq 0 vector lncintr


                Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL,
                PCnet-PCI)

        device ze0 at isa? port 0x300 net irq 5 iomem 0xd8000 vector
                zeintr


                IBM/National Semiconductor PCMCIA Ethernet 網(wǎng)路卡

        device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000 vector
                zpintr


                3Com PCMCIA Etherlink III



     注意: 你必須更改某些網(wǎng)路卡 (如 NE2000) 的 port 或 IRQ,因?yàn)檫@些卡的
     port/IRQ 并沒(méi)有一定的標(biāo)準(zhǔn)。

   pseudo-device loop


          loop 是 TCP/IP 的通用 loopback 裝置。 如果你 telnet 或 ftp
          localhost,他們將會(huì)經(jīng)由 loopback 連接。這是必須的。

   pseudo-device ether


          當(dāng)你有網(wǎng)路卡的時(shí)候你才需要 ether。

   pseudo-device sl number


          sl 提供 SLIP (Serial Line Internet Protocol)
          的支援。SLIP一經(jīng)幾乎被 PPP 所取代,因?yàn)?nbsp;PPP 功能較強(qiáng)。其參數(shù)
          number 代表同時(shí) SLIP 連接數(shù)目的個(gè)數(shù)。 關(guān)於 SLIP
          的更多資料,請(qǐng)參閱 SLIP Client 或 SLIP Server 。

   pseudo-device ppp number


          ppp 提供 kernel-mode PPP (Point-to-Point Protocol)
          的支援。另外還有一種 user-mode PPP (tun)
          提供連線時(shí)更多的彈性,以及自動(dòng)連接的功能。 如果你依然想用
          kernel-mode PPP,請(qǐng)閱讀 kernel-mode PPP 。 如同 sl 一樣,其參數(shù)
          number 代表同時(shí)連接 PPP 的數(shù)目。

   pseudo-device tun number


          tun 提供 user-mode PPP 的支援。 這個(gè)模式的 PPP
          相當(dāng)容易設(shè)定,而且連線速度快。
          而且他還包含更多的新功能,如欲連線時(shí)自動(dòng)撥號(hào)連線,
          停滯一段時(shí)間後自動(dòng)斷線。其參數(shù) number 代表同時(shí)連接 PPP 的數(shù)目。
          請(qǐng)閱讀 user-mode PPP 以獲得更多的資訊。

   pseudo-device bpfilter number


          Berkeley 封包過(guò)濾器 (packet filter)。
          提供網(wǎng)路監(jiān)聽(tīng)的功能,這些網(wǎng)路上的資料可經(jīng)由 tcpdump(1)
          處理顯示,以增進(jìn)網(wǎng)路安全的目的。 其參數(shù) number
          代表同時(shí)提供網(wǎng)路介面監(jiān)聽(tīng)數(shù)目的多少。
          除非你想要使用網(wǎng)路監(jiān)聽(tīng)的功能,否則你不需此功能。
          有少數(shù)網(wǎng)路卡不支援此功能。


     _________________________________________________________________
5.3.9. 音效卡



   內(nèi)附的 GENERIC kernel 并不包含音效卡的支援, 你必須參考 LINT
   這個(gè)設(shè)定檔來(lái)奶J音效卡的支援 (只有 LINT 尼t(yī)所有音效卡的設(shè)定)。



   controller snd0


          標(biāo)準(zhǔn)音效呼叫介面,所有的音效卡 (除了 pca 外) 都需要此參數(shù)。

   device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr


          ProAudioSpectrum digital audio 跟 MIDI.

   device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr


          SoundBlaster digital audio.

     注意: 如果你的 SoundBlaster 使用不同的 IRQ (如 5), 你必須將設(shè)定中的
     irq 7 改成 irq 5, 并且移除 conflicts,此外,你還需要奶Joptions
     ``SBC_IRQ=5'' 的設(shè)定。

   此外,你還需要奶J以下幾行:

   device sbxvi0 at isa? drq 5


          SoundBlaster 16 digital 16-bit audio.

     注意: 如果你的 SB16 使用不同的 16-bit DMA channel (如 6 或 7),將
     drq 5 改成 drq 6 或 drq 7,并奶Joptions "SB16_DMA=6" 的設(shè)定。

   device sbmidi0 at isa? port 0x330


          SoundBlaster 16 MIDI 介面。如果你有 SB16,
          你一定要奶J此參數(shù),?ampthinsp;則你的 kernel 將無(wú)法完成編譯。

   device gus0 at isa? port 0x220 irq 10 drq 1 vector gusintr


          Gravis Ultrasound.

   device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr


          Microsoft Sound System.

   device opl0 at isa? port 0x388 conflicts


          AdLib FM-synthesis 音效卡,如果你有 AdLib、SoundBlaster 跟
          ProAudioSpectrum,你需要此參數(shù)。 此外,你可以用 playmidi 來(lái)播放
          MIDI 音效 (在 ports 收集里)。

   device mpu0 at isa? port 0x330 irq 6 drq 0


          獨(dú)立的 Roland MPU-401 音效卡。

   device uart0 at isa? port 0x330 irq 5 vector ``m6850intr''


          獨(dú)立的 6850 UART MIDI 介面。

   device pca0 at isa? port ``IO_TIMER1'' tty


          利用 PC 喇叭模擬數(shù)位音效,此音效的效果很差, 而且要花不少 CPU
          時(shí)間,你應(yīng)該要知道這點(diǎn)。 在你沒(méi)有音效卡時(shí)才考慮此功能。



     注意: 你還可以閱讀 /usr/src/sys/i386/isa/sound/sound.doc。
     此外,你還必須建立相關(guān)的 device nodes 給音效卡使用。


     _________________________________________________________________
5.3.10. 虛擬裝置 (Pseudo-devices)



   虛擬裝置提供一些特殊的支援,但它們并不是真正的硬體介面。 有一部份的
   網(wǎng)路相關(guān)的 虛擬裝置并不在下列說(shuō)明中。



   pseudo-device gzip


          gzip 讓你可以執(zhí)行被 gzip 壓縮的 FreeBSD 程式,由於 /stand
          中的程式都是被壓縮過(guò)的, 因此奶J此功能是個(gè)好主意。

   pseudo-device log


          log 提供系統(tǒng)記錄 (system log) 的功能, 這是必須的。

   pseudo-device pty number


          pty 代表 ``虛擬終端機(jī) (pseudo-terminal)'' 或上線人數(shù)的多少。
          許多程式如 telnet、rlogin、xtermx 和 emacs
          等都會(huì)使用它。GENERIC kernel 內(nèi)定只有 16 的 ttys,
          你可能會(huì)想要將它提高到 32 或 64 以上。

   pseudo-device snp number


          監(jiān)看裝置 (Snoop device)。提供你監(jiān)看其他 tty 的資訊 (使用
          watch(8) 命令),這牽涉到系統(tǒng)安全以及
          使用者隱私權(quán)的問(wèn)題,是可有可無(wú)的功能。

   pseudo-device vn


          Vnode 驅(qū)動(dòng)程式。允許將一個(gè)檔案利用 vnconfig(8) 當(dāng)成一個(gè)
          partition 來(lái)使用。通常拿來(lái)建立 floppy disk image 或充當(dāng) swap
          裝置 (如跟 MS Windows 共享 swap file),是可有可無(wú)的功能。


     _________________________________________________________________
5.3.11. 搖桿、PC 喇叭及其他雜七雜八的



   本章及討論 FreeBSD 支援的其他雜七雜八的裝置, 這些都是 GENERIC kernel
   所沒(méi)有的功能。 你可能會(huì)想?yún)⒄?nbsp;LINT 設(shè)定檔的內(nèi)容。



   device joy0 at isa? port ``IO_GAME''


          PC 搖桿的支援。

   pseudo-device speaker


          支援 IBM BASIC 格式的 PC 喇叭音效。 有些有趣的程式 (如
          /usr/sbin/splrtest、/usr/games/piano) 會(huì)使用到它。

          有關(guān) PC 喇叭的的數(shù)位音效請(qǐng)參閱 pca0 。


     _________________________________________________________________
5.4. 建立 device nodes



   幾乎所有 kernel 支援的裝置,都有一個(gè)在 /dev 下的 ``node''
   來(lái)相對(duì)應(yīng)。這些 nodes 看起來(lái)像是一般的檔案,
   但是實(shí)際上應(yīng)用程式可以透過(guò)這些 nodes 來(lái)存取 kernel 的資料。 你可以用
   shell script /dev/MAKEDEV 來(lái)幫助你建立 nodes。
   雖然在安裝過(guò)程中已經(jīng)幫你建立一些必備的 nodes,
   是你一定會(huì)想再新增你所需要的
   nodes,尤其是增s功能或安裝新硬體的時(shí)候。 假A想新增一臺(tái) IDE
   CD-ROM,你必須在 kernel 設(shè)定檔中奶J相關(guān)的釧w,如G

controller wcd0

   這表示你必須看看在 /dev 下有沒(méi)有 wcd0 的 nodes。 比方說(shuō)是
   wcd0c、rwcd0c 等等。 假設(shè)沒(méi)有這些 nodes,你必須建立它們:

# cd /dev; sh MAKEDEV wcd0

   當(dāng)這個(gè) script 執(zhí)行完畢時(shí),你應(yīng)該會(huì)看到 wcd0c 或 rwcd0c 等 nodes。

   又例如新增音效卡的 nodes:

# cd /dev; sh MAKEDEV snd0

   這樣將會(huì)建立音效卡所需的 nodes。
     _________________________________________________________________
5.5. 發(fā)生問(wèn)題的解決方法



   再建立自訂 kernel 時(shí),有四種問(wèn)題可能發(fā)生:



   Config 發(fā)生錯(cuò)誤


          如果 config 抱怨這個(gè)錯(cuò)誤時(shí),你的 kernel 設(shè)定檔可能有錯(cuò)誤,
          config 會(huì)指出哪些行錯(cuò)了,請(qǐng)重新檢查那些行。 比方說(shuō)你看到:


config: line 17: syntax error

   表示你的 kernel 設(shè)定檔的 17 行有錯(cuò)誤,請(qǐng)用編輯器修正。

   Make 失敗


          如果執(zhí)行 make 時(shí)發(fā)生錯(cuò)誤,有可能是你的 kernel 設(shè)定檔有錯(cuò)誤,
          但是 config 程式并沒(méi)有檢查出來(lái),請(qǐng)?jiān)贆z查 kernel
          設(shè)定檔是否有錯(cuò)誤, 或是缺少該有的參數(shù)。 如果在編譯過(guò)程中發(fā)生
          "compiler internal error" 或 "signal 11" 等等,
          可能你的硬體設(shè)備不是很穩(wěn)定。

   Kernel 無(wú)法開(kāi)機(jī)


          如果你的新 kernel 無(wú)法開(kāi)機(jī),或是無(wú)法偵測(cè)到你新左熊w體裝置,
          你可以在開(kāi)機(jī)時(shí),鍵入其他 kernel 的名稱 (如 boot: /kernel.old),
          如果連其他 kernel 都無(wú)法開(kāi)機(jī),你可以試試 kernel.GENERIC。
          在用舊的 kernel 開(kāi)機(jī)後,檢查你的 kernel 釧w檔是否有誤,
          修改後再重新編譯一個(gè)新的 kernel。 你可以參考 /var/log/messages
          中的開(kāi)機(jī)記錄,或是執(zhí)行 dmesg(8)。

     注意: 在 FreeBSD 中有另一種 file flag 來(lái)保護(hù)重要檔案,
     如果你無(wú)法移動(dòng)或刪除 /kernel,你可以執(zhí)行:

# chflags noschg /kernel

     如果你想保護(hù) /kernel 避免人為疏失破壞它,請(qǐng)執(zhí)行:

# chflags schg /kernel

   Kernel 可以開(kāi)機(jī),但 ps 或是 w 發(fā)生錯(cuò)誤


          如果你更新 kernel 原始程式 (如從 2.1.0-RELEASE 升級(jí)到
          2.2-CURRENT),你必須一更新 (或重新編譯) 一些重要的檔案, 如
          ps(1)、vmstat(8)或是libkvm。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux kernel boot arguments
linux 內(nèi)核中斷相關(guān)閱讀記錄
BIOS設(shè)置詳解
Ubuntu下U盤(pán)變成只讀的解決方法
BIOS升級(jí)與CMOS設(shè)置
Linux查看SATA速度和具體設(shè)備
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服