<!-- $FreeBSD$ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by foxfair@FreeBSD.org -->
<!-- English Version: 1.2 -->

  <sect>
    <heading>核心設定<label id="kernelconfig"></heading>

    <sect1>
      <heading>
	我想自訂核心程式，這會很困難嗎？
        <label id="make-kernel">
      </heading>

      <p>不會！請查閱 <url url="../../handbook/kernelconfig.html"
      name="kernel config section of the Handbook">.

      <p><bf/注意：/我會建議你在你讓核心能正常工作後，做一個
        <tt/kernel.YYMMDD/日期形式的備份，這樣下次如果你很不幸的玩壞
	了設定，至少可以不需要使用最原始的<tt/kernel.GENERIC/。假如你
	正從一個沒有在 GENERIC kernel 裡面支援的控制器裡啟動，這顯得特
	別重要(沒錯，這是筆者的經驗)。

    <sect1>
      <heading>
	我的核心因為<tt/&lowbar;hw&lowbar;float/遺失而編譯失敗。
      </heading>

      <p>讓我猜看看，你把<htmlurl
	url="http://www.FreeBSD.org/cgi/man.cgi?npx(4)" name="npx0">從你
	的核心設定檔移除了，因為你沒有數學運算器，對嗎？錯了！:-) 這個
	<tt/npx0/是<bf/必須要有的/。就算你沒有數學運算器，你仍<bf/必須/
	引入<tt/npx0/裝置。

    <sect1>
      <heading>multi-port serial code 的中斷衝突。</heading>

      <p><bf/Q./ 當我編譯一個 multi-port serial code 的核心時，它告訴我
	只有第一個被偵測到，其他的則因中斷衝突而跳過了，我該怎麼修正它？

      <p><bf/A./ 這個問題是因為 FreeBSD 使用內建程式碼避免因為硬體或軟體
	衝突導致核心程式過於肥大或無用。要修正這種情形的方法是除了一個
	port 外把其他所有的 IRQ 設定都做保留。這裡有一個範例：

      <verb>
        #
        # Multiport high-speed serial line - 16550 UARTS
        #
        device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
        device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
        device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
        device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr
      </verb>

    <sect1>
      <heading>我該怎麼啟動 QIC-40/80 的支援？</heading>

      <p>你需要在 generic config 檔中把以下這行的註解取消(或是把它加到你的
	設定檔)，在<htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fdc(4)" 
	name="fdc">這行加入``<tt/flags 0x1/''然後重新編譯核心。

      <verb>
controller  fdc0  at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr
disk        fd0   at fdc0 drive 0                       ^^^^^^^^^
disk        fd1   at fdc0 drive 1
#tape       ft0   at fdc0 drive 2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      </verb>

      <p>接著，你可以在<tt>/dev</tt>執行以下命令, 建立一個叫<tt>/dev/ft0</tt>
        的裝置：

      <verb>
        sh ./MAKEDEV ft0
      </verb>

      <p>是給第一個裝置使用。同理<tt/ft1/是第二個，以此類推。

      <p>你將會有個叫<tt>/dev/ft0</tt>的裝置，可以透過一個特殊的程式叫 
	``<tt/ft/''的來管理它 - 請看<htmlurl 
	url="http://www.FreeBSD.org/cgi/man.cgi?ft" name="ft">
	的 man page 有更進一步說明。

      <p>版本比<tt/-current/早的系統在處理壞的磁帶媒體時有些問題，如果你
	的<tt/ft/磁頭有一直在同一個地方來回移動的問題，嘗試從<tt/-current/
	裡的<tt>/usr/src/sbin/ft</tt>找出最新版的<tt/ft/並且試看看。

  </sect>

