89 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| <!-- $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/_hw_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>
 | |
| 
 |