FreeBSD 4.X、5.X、6.X 常見問答集

FreeBSD 文件計畫

這份文件是 FreeBSD 4.X,5.X 及 6.X 的常見問答集。 除非有特別加註,否則這些項目都適用於 FreeBSD 4.0 及以後的版本。 (如果條目內容中有 <XXX> 則是尚未完成中譯的部份。) 如果您對協助本文件/翻譯計畫 的進行有興趣的話,請寄 e-mail 到 FreeBSD 文件計畫的郵遞論壇。此外,隨時可從 FreeBSD 網站 拿到這份文件的最新版本。 也可以利用 HTTP 來下載一份龐大的 HTML 文件,或是經由 FreeBSD FTP 站 下載純文字、PostScript®、或 PDF 版本的檔案。 您也可以在這裡使用 搜尋資料 的功能。

Redistribution and use in source (SGML DocBook) and 'compiled' forms (SGML, HTML, PDF, PostScript, RTF and so forth) with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code (SGML DocBook) must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified.

  2. Redistributions in compiled form (transformed to other DTDs, converted to PDF, PostScript, RTF and other formats) must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Important: THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

FreeBSD is a registered trademark of the FreeBSD Foundation.

3Com and HomeConnect are registered trademarks of 3Com Corporation.

Adobe, Acrobat, Acrobat Reader, and PostScript are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.

Sound Blaster is a trademark of Creative Technology Ltd. in the United States and/or other countries.

CVSup is a registered trademark of John D. Polstra.

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both.

IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States.

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

Iomega, Zip, and Jaz are either registered trademarks or trademarks of Iomega Corporation in the United States and/or other countries.

Linux is a registered trademark of Linus Torvalds.

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

MIPS and R4000 are registered trademarks of MIPS Technologies, Inc. in the United States and other countries.

Netscape and the Netscape Navigator are registered trademarks of Netscape Communications Corporation in the U.S. and other countries.

Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries.

Oracle is a registered trademark of Oracle Corporation.

Silicon Graphics, SGI, and OpenGL are registered trademarks of Silicon Graphics, Inc., in the United States and/or other countries worldwide.

Sparc, Sparc64, SPARCEngine, and UltraSPARC are trademarks of SPARC International, Inc in the United States and other countries. Products bearing SPARC trademarks are based upon architecture developed by Sun Microsystems, Inc.

Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, and Ultra are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

U.S. Robotics and Sportster are registered trademarks of U.S. Robotics Corporation.

XFree86 is a trademark of The XFree86 Project, Inc.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol.


Table of Contents
1 前言、一般問題
2 文件與技術支援
3 安裝
4 硬體支援方面
4.1 一般問題
4.2 硬體架構及 CPU
4.3 硬碟、磁帶機以及光碟、DVD、燒錄機
4.4 鍵盤、滑鼠
4.5 網路跟 serial 設備
4.6 音效卡
4.7 其他怪異問題(ACPI、重開機後掛了..等)
5 常見問題解決
6 商業軟體
7 一般應用程式
8 kernel 設定
9 硬碟、檔案系統、Boot Loader
10 系統管理
11 X Window System 及 Virtual Consoles
12 Networking
13 系統安全篇
14 PPP
15 Serial Communications
16 其它各式各樣的問題
17 The FreeBSD Funnies
18 進階主題
19 感謝
20 Ports and Packages 常見問題
Bibliography
List of Tables
3-1. 檔案大小的最大限制
12-1. Network cards based on the DEC PCI chipset
List of Examples
11-1. 在 XFree86 3.3.x 系列的 XF86Config 設定檔的 “Pointer” 區塊中,以 moused 作轉換 的滾輪鼠的設定範例
11-2. 在 XFree86 4.x 系列的 XF86Config 設定檔的 “InputDevice” 區塊中,以 X Server 作轉換 的滾輪鼠的設定範例
11-3. 在 “.emacs” 中,設定滾輪鼠的原生 頁面滾動支援範例
11-4. 在 XF86Config 設定檔的 “Pointer” 區塊中,以 X Server 作轉換的滾輪鼠的設定範例
11-5. 在 XFree86 4.x 系列的 XF86Config 設定檔的 “InputDevice” 區塊中,以 X Server 作轉換 的滾輪鼠的設定範例
11-6. 在 “.emacs” 中,設定滾輪鼠的原生 頁面滾動支援範例
11-7. ImwheelEmacs 設定
11-8. ImwheelXemacs 設定

Chapter 1 前言、一般問題

Ying-Chieh Liao

歡迎使用 FreeBSD 4.X-6.X FAQ!

跟其他 Usenet 上的 FAQ 一樣,這份文件涵蓋了有關 FreeBSD 這套作業 系統最常被問到的問題 (當然包括了回答!)。雖然說我們本來的目的是為了 減少網路頻寬的浪費以及避免同樣的問題一再出現,但事實上 FAQ 已經被視 為是一種值得閱讀的文件資源。

我們已經儘可能地使這份 FAQ 更豐富了。如果您對如何改善、進步方面有任 何建議,請隨時寄電子郵件給 FreeBSD 文件計畫的郵遞論壇

1.1. 什麼是 FreeBSD?
1.2. 發展 FreeBSD 的目的是什麼?
1.3. FreeBSD 版權有任何限制嗎?
1.4. FreeBSD 可以取代我現在在用的作業系統嗎?
1.5. 為什麼要叫做 FreeBSD?
1.6. FreeBSD 及 NetBSD, OpenBSD 以及其他 open source BSD 作業系統之間有何不同之處呢?
1.7. 最新版的 FreeBSD 是那一版?
1.8. 什麼是 FreeBSD-CURRENT?
1.9. 什麼是 FreeBSD-STABLE?
1.10. FreeBSD 版本命名原則是什麼呢?
1.11. 每次新的 FreeBSD 將於什麼時候推出?
1.12. 誰負責 FreeBSD 的發展?
1.13. 我要如何取得 FreeBSD?
1.14. 我要如何去查詢、提交問題回報(Problem Report,簡稱PR)資料庫呢?
1.15. 還有其他有關 FreeBSD 的資訊嗎?

1.1. 什麼是 FreeBSD?

簡單地來說,FreeBSD 是一套可以在 Alpha/AXP, AMD64 及 Intel® EM64T, i386™ IA-64, PC-98, UltraSPARC® 上執行的 UN*X-like 作業系統,它是根據 U.C. Berkeley 所開發出來的 “4.4BSD-Lite”,並加上了許多 “4.4BSD-Lite2” 的增強功能。它同時也間接使用了 U.C. Berkeley 所開發出來並由 William Jolitz 移植到 i386 的 “Net/2”,也就是 “386BSD”,不過現在 386BSD 的程式碼只剩下極少數還留 存在 FreeBSD 中。您可以在 FreeBSD 首頁找到有關 什麼是 FreeBSD 以及它可以幫您做些什麼的相關資訊。

FreeBSD 已被廣泛地被世界各地的公司行號、ISP、研究人員、電腦 專家、學生,以及家庭用戶所使用,用在工作、教育以及娛樂上。

如果想看關於 FreeBSD 更深入的資料,請看 FreeBSD 使用手冊

1.2. 發展 FreeBSD 的目的是什麼?

FreeBSD 計畫的目的是提供可以任意使用且沒有限制的軟體。我們在 程式碼 (以及計晝本身) 上付出了大量心血,當然不會介意來點金錢上的 回饋,不過我們絕對不會如此堅持。我們相信我們首要的 “任務” 就是提供程式碼給每一個使用者,不管他們打算用 來幹嘛;這麼一來,這些程式碼才能被用在最多地方,也才能發揮它們最 大的利益。我們相信這就是自由軟體最基本的目標之一,而且我們會盡全 力去支持它。

在我們 source tree 中有部份的程式碼是採用所謂的GPL或是 LGPL 版權宣告,雖然這些版權宣告是用來保障而非限制使用者的權 利,畢竟是不那麼自由了些。由於這些 GPL 的軟體在商業使用上會引起 非常複雜的版權問題,因此只要有機會,我們會盡量以採用比較鬆的 FreeBSD 版權的軟體來取代這些 GPL 版權宣告的軟體。

1.3. FreeBSD 版權有任何限制嗎?

有的。但是這並不是限制你怎麼去使用這些程式碼,而是你怎麼看待 FreeBSD 這個計畫。如果你有版權焦慮症的話,請閱讀 版權本文。簡單地來說,這份版權的重點可以條列如下。

  • 請勿宣稱是您寫了這個程式。

  • 如果它出問題了,不要控告我們。

1.4. FreeBSD 可以取代我現在在用的作業系統嗎?

對大部份的人來說是這樣沒錯,但事實上這問題並沒有這麼好回 答。

大部份的人並不是真正在使用一個作業系統。他們使用的是應用程式 ;而那些應用程式才是真正用到作業系統的東西。FreeBSD 是設計用來提 供一個強韌且功能完整的作業環境給應用程式來執行。它支援了多種瀏覽 器,辦公室套件軟體,電子郵件閱讀軟體,繪圖程式,程式設計環境,網 路伺服器軟體,以及幾乎所有你想要的東西。大部份的程式都可以靠Ports Collection來管 理。

但是如果你想要使用的應用程式只能在某個特定的作業系統上面執行 的話,你就不能輕易地把它換掉,或者指望在 FreeBSD 上有很相似的應用 程式才有機會。如果你想要的是一個強健的辦公室或是網路伺服器,或是 一部穩定的工作站,或是想在不被中斷的環境下工作的話,FreeBSD 無疑 是您的最佳選擇。世界各地有很多使用者,包括初學或資深的 UNIX® 管理 人員都選用 FreeBSD 當他們唯一的桌上作業系統。

如果你是從其他的 UNIX 環境轉換到 FreeBSD 的話,基本上是大同小 異的。但是如果你之前用的是圖形界面的作業系統,例如說是 Windows® 或是 比較古老的 Mac OS® 的話,可能就要多花一點時間來學習怎麼用 UNIX 的 方法來做事。你可以從這份 FAQ 和 FreeBSD 使用手冊 來入門。

1.5. 為什麼要叫做 FreeBSD?

  • 您可以免費使用它,即使是用於商業用途。

  • 整個 FreeBSD 作業系統完整的原始程式都可以免費取得,而且不 管是在使用,散佈或是整合進其他程式等各方面也只受到最小的限 制 (不論是否用於商業用途)。

  • 任何人都可以自由地把他對系統的改良或錯誤修正的程式碼加入 source tree 之中 (當然要符合幾個先決條件)。

  • 特別值得注意的是這裡的 “free” 出現了兩次,而且它們 的意思是不一樣的:一種代表 “免費”,另一種代表 “自由”。您可以拿 FreeBSD 去做任何您想要做的事,除了一些 例外,例如您宣稱 FreeBSD 是您寫的。

1.6. FreeBSD 及 NetBSD, OpenBSD 以及其他 open source BSD 作業系統之間有何不同之處呢?

James Howard 在 DaemonNews 上寫了 The BSD Family Tree 的文件,裡面說明了這些歷史淵源及這些 *BSD 家族計畫之間的差異。

1.7. 最新版的 FreeBSD 是那一版?

就 FreeBSD 目前的發展而言,有三個主要發展分支(其中兩個仍持續有在出 RELEASE 的活動): 由 5-STABLE 所發行(release)的 5.X 系列、 由 6-STABLE 所發行(release)的 6.X 系列這兩個分支。

在 5.3 release 之前,4.X 系列仍屬 -STABLE 分支。 自從 5.3 開始,5.X 系列開始規劃新的 -STABLE 分支發展重點, 而 4.X 將只著重在重大問題上(比如:漏洞修補、安全維護)以及所謂的 "extended support" ,不再會有新的突破性發展。另一方面,5-STABLE 分支雖然仍將繼續發行,但是由於它只是 “legacy” 過渡期分支, 所以大多數主力都已轉移到 6-STABLE 繼續開發。

於 May 2006 所發行的 6.1 版是目前最新的 6-STABLE 分支; 而於 May 2006 所發行的 5.5 版則是目前最新的 5-STABLE 分支。

簡單地來說,-STABLE 的主要訴求對象是對於 穩定性及低變異性的需求遠勝過對最新 -CURRENT snapshot 中特別新功能的需求,例如 ISP 或公司行號的使用者。這兩個 branch 都有可能會產生 release 版,但只有當你能接受 -CURRENT 遠比 -STABLE 容易更動這一點,才應該用 -CURRENT

Release 版每幾個月才會發 行一次。雖然如此,有很多人和 FreeBSD 原始碼同步更新(詳見 FreeBSD-CURRENTFreeBSD-STABLE 的相關問題),但因為原始碼 是一直不斷地在變動的,所以如果要這麼做的話得要花上更多的精 力。

其他更多相關 FreeBSD 發行情報,可由 FreeBSD 網站上的 Release Engineering 得知

1.8. 什麼是 FreeBSD-CURRENT?

FreeBSD-CURRENT 指的是正在發展中的作業系統版本,它終將在適當的時機成為 FreeBSD-STABLE 分支。它實在是只適合給系統發展者以及有毅力的業餘愛好者使用 。如果想要得到有關如何使用 -CURRENT 的深入資訊,請參考 使用手冊相關部份

如果您對作業系統本身並不是很熟悉,或是您沒辦法分辨您遇到的問 題是真的發生了問題亦或是暫時性的小狀況,那麼您就不應該使用 FreeBSD-CURRENT。這個分支的程式碼有時候變動得很快,而且可能會因此 而使您有好幾天的時間無法更新您的系統。我們假設使用 FreeBSD-CURRENT 的使用者都有能力去分析他們所遇到的問題並且只回報 真正的問題而非“小狀況”。如果您在 -CURRENT mailing list 中提到類似“make world 造成一些有關 groups 的錯 誤”之類的問題的話,也許會被其他人輕視。

我們每天都會根據目前 -CURRENT 和 -STABLE 的狀況對這兩個分支各 發行一個snapshot 版。有的時候甚至還會發行可供取得的版本。發表這些 snapshot 的目的在於:

  • 測試最新版的安裝程式。

  • 提供一個簡單的方法給那些喜歡使用 -CURRENT 或是 -STABLE 但 是沒有時間和頻寬去每天昇級的使用者。

  • 為了替我們發展中的程式保留一個固定的參考點,以防止我們未 來造成不幸。(雖然一般而言 CVS 可以防止類似這種的可怕事件 :)

  • 為了確保所有需要測試的新功能都可以得到最多的測試。

我們不對 -CURRENT snapshot 做任何形式的“品質保 證”。如果你想要的是一個穩定且經過充分測試過的系統的話, 最好選擇使用完整 release 的版本,或是使用 -STABLE snapshots。

您可以直接從 ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/ 取得 -CURRENT 的 snapshot release

對每個有在活動的分支而言,平均每天都會產生一次 snapshots。

1.9. 什麼是 FreeBSD-STABLE?

回溯到 FreeBSD 2.0.5 剛發表的時候,我們決定把 FreeBSD 的發展 分成兩支。一支叫做 -STABLE ,我們只對它做錯誤修正及小幅度的修改 (這是給 ISP 和商業公司等,對實驗中功能不感興趣的單位所使用的)。 另外一支叫做 -CURRENT,從 2.0 版發行以後,就不斷地朝著 6.0-RELEASE (含後續的版本)前進著。

6-STABLE 分支是從 6.0-RELEASE 開始(5-STABLE 分支算是 5.3-RELEASE 之後才開始的), 然後原本的 FreeBSD-CURRENT 就會成為 7-CURRENT。

下面就是版本演進的示意圖:

                 2.0
                  |
                  |
                  |  [2.1-STABLE]
 *BRANCH*       2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1  [2.1-STABLE ends]
                  |                            (Mar 1997)
                  |
                  |
                  |  [2.2-STABLE]
 *BRANCH*       2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [end]
                  |       (Mar 1997)    (Oct 97) (Apr 98) (Jul 98) (Dec 98)
                  |
                  |
               3.0-SNAPs  (started Q1 1997)
                  |
                  |
               3.0-RELEASE (Oct 1998)
                  |
                  |  [3.0-STABLE]
 *BRANCH*      3.1-RELEASE  (Feb 1999) -> 3.2 -> 3.3 -> 3.4 -> 3.5 -> 3.5.1
                  |                     (May 1999) (Sep 1999) (Dec 1999) (June 2000) (July 2000)
                  |
                  |  [4.0-STABLE]
 *BRANCH*        4.0  (Mar 2000) -> 4.1 -> 4.1.1 -> 4.2 -> 4.3 -> 4.4 -> ... -> 4.11
                  |
                  |              (July 2000)   (Sep 2000)   (Nov 2000)          (Jan 2005)
                  |
                  |  [5.0-STABLE]
 *BRANCH*        5.0  (2001) -> 5.1 -> 5.2 -> 5.3 -> 5.4 -> 5.5
                  |
                  |             (2001)         (Nov 2004) (May 2005)(May 2006)
                  |
                  |  [6.0-STABLE]
 *BRANCH*        6.0  (Nov 2005) -> 6.1... -> future 6.x releases...
                  |
                  |             (May 2006)
                 \|/
                  +
          [7.0-CURRENT continues]

2.2-STABLE 這個分支隨著 2.2.8 的發表而功成身退。3-STABLE 這個 分支則是結束在 3.5.1 發表之後,它也是 3.X 的最後一次發表。之後除了 安全漏洞的後續修正之外,這些分支就幾乎沒有再更動過。 而 4-STABLE、5-STABLE 分支的支援將仍持續一段時間(4-STABLE 是持續到 2007/01/31), 但主要焦點僅在於安全方面的漏洞、臭蟲及其他嚴重問題的修補。

6-STABLE 是目前正在發展中的 -STABLE 分支。6-STABLE 的最新的一 次發表是在 May 2006 發行的 6.1-RELEASE。

7-CURRENT 這個分支是 FreeBSD 的 -CURRENT 分支,仍然不斷地在發展當中。 如果想要知道更多關於這個分支的資訊的話,請參考 什麼是 FreeBSD-CURRENT?

1.10. FreeBSD 版本命名原則是什麼呢?

您可能會看到以下幾種 FreeBSD 的版本名稱:

  • 1) 4.4.2-RELEASE、4.4-BETA: 最前面的數字 A.B.C 裡,A 表示主要的作業系統版本(Major),B 表示 次要的作業系統版本(Minor),C 表示些微修正版本(Patch)。後面的英文 表示是否為正式版,通常是測試版(ALPHA、BETA、GAMMA)、正式版(RELEASE)。

  • 2) 6.0-STABLE、7.0-CURRENT: 通常 FreeBSD 會有一個以發展新功能為主的版本,稱為 CURRENT,目前的 CURRENT 版本是 7.0;FreeBSD 也會有一個以維護穩定性及系統安全為主 的版本,稱為 STABLE,目前 STABLE 的版本是 6.0。雖然如此,並不代表 STABLE 就沒有新功能,也不代表 CURRENT 就不穩定不安全,這兩個版本 是相輔相成的,而且終有一天 7.0-CURRENT 會變成 7.0-STABLE,而開始 8.0-CURRENT 的發展。不過一般來說,由於 CURRENT 系統開發的速度相當 快,跟 STABLE 相比較不穩定,而且最好是有相當經驗的使用者才來使用。 如果是商業環境或是伺服器站台,最好還是跑 STABLE 與 RELEASE 比較好。 由於 STABLE 與 CURRENT 都是一直在開發維護中的版本,因此沒有一個 特定的數字版本可以稱呼,因此通常我們會以編譯日期來代表是哪個時候 的 STABLE 或 CURRENT,例如「4.4-STABLE、編譯日期 2001/10/08」。

  • 3) 5.0-011025-SNAP、4.2-010816-RELENG: SNAP 與 RELENG 並不是正式發行的版本,其中 3.0-970625-SNAP 表示是 在 2001 年 10 月 25 日發行的 5.0 測試版(SNAPshot),通常是指 CURRENT 的版本。而 4.2-010816-RELENG 表示是在 2001 年 8 月 16 日發行的 4.2 非正式的穩定版,通常是指 STABLE 的版本。 通常 FreeBSD 核心小組會不定時釋出 SNAP 以供測試,然後有一天 SNAP 會變成 ALPHA->BETA->GAMMA,再來是 RELEASE,而後可能會有不定時的 RELENG 以供測試使用,但是 RELENG 的穩定性通常又比前期的 RELEASE 來的好。

您要是習慣微軟的術語,這樣說好了,SNAP 是開發期間的內部流出版, 那個日期(011025)就是Build Number,而 ALPHA 與 BETA 是搶鮮版, RELEASE(RELENG 勉強也算)是正式版,這樣應該了解了吧。

1.11. 每次新的 FreeBSD 將於什麼時候推出?

一般而言,Release Engineering Team 平均每四個月發行一次 release,每次新版本的發表時程都會事先公告, 相關的開發人員就會知道,什麼時候該先把手邊的計劃完成並且測試過, 此外,這些更動都已經完整地測試過,且不會影響系統穩定度。 雖然,等這些好東西進入 -STABLE 的時間令人等得有些不耐煩, 但是大多數的使用者都認為這種謹慎的態度是 FreeBSD 最好的優點之一。

有關發行情報的更多細節部分(包括 release 的行程表、進度),都可在 FreeBSD 網站上的 發行情報 上面獲得。

為了滿足那些需要 (或想要) 新鮮刺激感的使用者, 上面(-CURRENT的部分)已經提到我們每天都會發行 snapshots 版可供使用。

1.12. 誰負責 FreeBSD 的發展?

如果是一些有關 FreeBSD 計畫的關鍵性決定,像是整個計畫的走向 或是決定誰可以改 source tree 裡的程式碼這類的事,是由一個由 9 個 人所組成的 core team 來決定。而有另一群超過 300 個人的 commiters 有權利可以直接修改 FreeBSD 的 source tree。

無論如何,大多數的改變都會事前在 mailing lists 先討論過,而且不分角色,每個人都可以參與討論。

1.13. 我要如何取得 FreeBSD?

每個 FreeBSD 的重要版本都可以經由匿名 ftp 從 FreeBSD FTP 站取得:

  • 如果需要 6-STABLE 的最新版,也就是 6.1-RELEASE,請到 6.1-RELEASE 這個目錄

  • 7-CURRENT Snapshot 通常也是每天都會做一份,這是從 -CURRENT 分支做出來的, 主要是為了提供給那些熱心的測試者和開發人員。

  • 如果需要 5-STABLE 的最新版,也就是 5.5-RELEASE,請到 5.5-RELEASE 這個目錄

  • 5.X、6X snapshots 通常每天都會做一份。

FreeBSD 的 CD、DVD,還有其他取得方式可以在 使用手冊 中找到解答。

1.14. 我要如何去查詢、提交問題回報(Problem Report,簡稱PR)資料庫呢?

所有使用者的變更要求都可以經由網頁介面的 PR查詢介面 來察看 (或是回報) 我們的錯誤回報資料庫。

也可以使用 send-pr(1) 這個指令透過電子郵件來回報問題、要求變更。 或者是經由 網頁介面的 PR 來送出問題回報。

然而,在您回報問題之前,請先閱讀 如何撰寫 FreeBSD 的問題回報單,這是一篇告訴你怎樣才能寫出一篇真正有用的 問題回報單。

1.15. 還有其他有關 FreeBSD 的資訊嗎?

詳見 FreeBSD 網站上的 文件 列表。


Chapter 2 文件與技術支援

Chin-San Huang
2.1. 關於 FreeBSD 有哪些好書可以推薦閱讀的嗎?
2.2. 這些文件有其他格式的嗎?像是:純文字(ASCII)或 PostScript 之類的格式?
2.3. 哪裡有關於 FreeBSD 的郵遞論壇(mailing lists)呢?
2.4. 有哪些可以使用的 FreeBSD 新聞群組(news groups)呢?
2.5. 在文件中常看到類似 "pf(4)"、"pfctl(8)" 等這些字樣代表什麼意思呢?
2.6. 有哪些 FreeBSD IRC (Internet Relay Chat)頻道呢?
2.7. 可以從哪邊獲得 FreeBSD 的教育課程訓練及技術支援呢?

2.1. 關於 FreeBSD 有哪些好書可以推薦閱讀的嗎?

FreeBSD 文件計畫已陸續發表了相當廣泛範圍的文件,可在 http://www.FreeBSD.org/docs.html 取得。另外, FreeBSD 本身的 manual(一般通稱的man)、doc也如同套件軟體一樣,可以輕鬆地裝在您系統上。

此外,也建議參閱本份 FAQ 最後所列的參考書目表(Bibliography)與 FreeBSD 使用手冊。

2.2. 這些文件有其他格式的嗎?像是:純文字(ASCII)或 PostScript 之類的格式?

有的。這些文件都分別以不同格式儲存以及壓縮處理,放在 FTP 上面,可以從各 FreeBSD FTP 站的 /pub/FreeBSD/doc/ 目錄內找到你要的。

文件的分類方面主要是一些不同性質所組成:

  • 文件名稱,比如:faq(常見問答集)或是 handbook(FreeBSD 使用手冊)等等。

  • 各國翻譯的的文件:這主要是由 locale 名稱來決定的 (不清楚的話,可參考您的 FreeBSD 作業系統上的 /usr/share/locale) 目前文件總共有下列幾種語言(及編碼)有翻譯:

    Locale 名稱 說明(所代表的語系、編碼)
    en_US.ISO8859-1 美式英文(US English)
    de_DE.ISO8859-1 德文(German)
    es_ES.ISO8859-1 西班牙文(Spanish)
    fr_FR.ISO8859-1 法文(French)
    it_IT.ISO8859-15 義大利文(Italian)
    ja_JP.eucJP 日文(Japanese,編碼方式:EUC)
    ru_RU.KOI8-R 俄文(Russian,編碼方式:KOI8-R)
    zh_CN.GB2312 簡體中文(Simplified Chinese,編碼方式:GB2312)
    zh_TW.Big5 正體中文(Traditional Chinese,編碼方式:Big5)

    Note: 上列的各國翻譯語系文件中,並非所有文件都有翻譯。

  • 文件的格式:每份文件都以各種不同格式儲存,每種格式都各有好壞, 有些格式適合線上閱讀,而有些則適合列印出美觀的文件。 我們都提供這些不同格式的文件,來確保無論是螢幕上、列印紙本,每個人都可以正常地閱讀內容, 目前可供使用的格式如下:

    格式 說明
    html-split 章節模式
    html 完整模式
    pdb Palm Pilot 資料格式,使用 iSilo 程式來閱讀
    pdf Adobe's PDF 格式
    ps PostScript 格式
    rtf Microsoft's RTF格式[a]
    txt 純文字(ASCII)
    Notes:
    a. 當使用 MS Word 來開啟 RTF 格式的話,頁數顯示並不會自動更新。 (在開啟文件後,要按 CTRL+A, CTRL+END, F9,這樣子才會更新頁數的顯示。)
  • 文件的壓縮、打包方式:目前有三種方式:

    1. 當採用 章節模式(html-split),章節模式所產生的各檔案會先使用 tar(1) 來壓縮。檔名結尾有 .tar 的檔案就是 tar 格式。 接著,會再以下列方式再壓縮。

    2. 其他格式的檔案都會是單一檔案,檔名通常會是: book.格式 (舉例: book.pdbbook.html 等等..後面通常加上『.格式』).

      而這些檔案會分別以兩種壓縮型態進行壓縮,而存成兩種壓縮型態。

      格式 說明
      zip Zip 格式,若要在 FreeBSD 上解壓 zip 檔,則必須先安裝 chinese/unziparchivers/unzip
      bz2 BZip2 格式,雖然不如 zip 格式的廣泛使用,但是好處在於可壓縮成更小的檔案。 要解壓 bz2 格式的話,需先安裝 archivers/bzip2

      所以像是 Handbook 的 PostScript 版格式,會以 BZip2 格式壓縮, 存放在 handbook/ 目錄內, 檔名就是book.ps.bz2

選擇想要下載的文件格式與壓縮型態之後,則要決定是否以 FreeBSD 套件(package) 型態來下載。

下載、安裝『package』的好處在於:可以透過一般 FreeBSD 套件管理方式來進行管理,比如 pkg_add(1)pkg_delete(1)

若決定好要下載、安裝『package』的話,必須要確認所要下載的檔名。 文件計畫的套件(package)通常是放在是 packages 的目錄內, 每個文件計畫的套件檔名通常是: 文件名稱.語系.編碼.格式.tgz

舉個例子,英文版的 FAQ (格式選擇 PDF)在 package 就叫做 faq.en_US.ISO8859-1.pdf.tgz

再舉個例子,中文版的 FAQ (格式選擇 PDF)在 package 就叫做 faq.zh_TW.Big5.pdf.tgz

知道這點之後,就可以用下面指令來安裝中文版 FAQ 套件:

# pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.zh_TW.Big5.pdf.tgz

完成之後,可以用 pkg_info(1) 來找出檔案裝在哪邊:

# pkg_info -f faq.zh_TW.Big5.pdf
Information for faq.zh_TW.Big5.pdf:

Packing list:
        Package name: faq.zh_TW.Big5.pdf
        CWD to /usr/share/doc/zh_TW.Big5/books/faq
File: book.pdf
        CWD to .
File: +COMMENT (ignored)
File: +DESC (ignored)

如同您所看到的 book.pdf 會被安裝到 /usr/share/doc/zh_TW.Big5/books/faq 內。

若不想用 package 方式安裝,那麼就需手動下載、解壓縮、複製到你想要擺放的位置去。

舉例,章節模式(split HTML)版的英文 FAQ (壓縮為 bzip2(1))會放在 doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 要下載、解壓的話,則要打:

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2
# bzip2 -d book.html-split.tar.bz2
# tar xvf book.html-split.tar

這時你會看到一堆 .html 的檔案, 主要的目錄檔為 index.html 內含主目錄及連結到其他文件。(若有需要的話,也可以複製或搬移這些檔案到同一目錄下)

2.3. 哪裡有關於 FreeBSD 的郵遞論壇(mailing lists)呢?

這個問題,可以從 FreeBSD 使用手冊上面的 郵遞論壇(mailing-lists) 部分獲得答案。

2.4. 有哪些可以使用的 FreeBSD 新聞群組(news groups)呢?

這答案可以從 FreeBSD 使用手冊上面的 新聞群組(newsgroups) 部分獲得答案。

2.5. 在文件中常看到類似 "pf(4)"、"pfctl(8)" 等這些字樣代表什麼意思呢?

這表示 man 的章節,系統上一般有八個章節:

  • 1->generl commands

  • 2->system calls and error numbers

  • 3->C libraries

  • 4->devices and device drivers

  • 5->file formats

  • 6->games

  • 7->miscellaneous information pages

  • 8->system maintenance and operation commands

比如:pf(4) 就是指 man 4 pf

2.6. 有哪些 FreeBSD IRC (Internet Relay Chat)頻道呢?

有的,大部分的 IRC 主機都有 FreeBSD 聊天頻道:

  • EFNet#FreeBSD 頻道是個 FreeBSD 論壇, 但可不適合那些想不勞而獲或者搬救兵用的。 這裡是聊天用的頻道,話題範圍甚至涉及『性、運動、核武』等, 請注意:我們已經警告過你了!本頻道可經由 irc.chat.org 進入。

  • EFNet#FreeBSDhelp 頻道 乃是給 FreeBSD 使用者之間交流的, 來這裡提問會比 #FreeBSD 好一些,當然請不要一股腦隨便亂問。

  • DALNET#FreeBSD 頻道,可由 irc.dal.net(位於美國)及 irc.eu.dal.net(位於歐洲)進入。

  • DALNET#FreeBSDHelp 頻道,可由 irc.dal.net(位於美國)及 irc.eu.dal.net(位於歐洲)進入。

  • UNDERNET#FreeBSD 頻道,可由 us.undernet.org(位於美國)及 eu.undernet.org(位於歐洲)進入。由於這是個輔助新手用的頻道, 請記得閱讀別人向你提及的連結或檔案。

  • RUSNET#FreeBSD 頻道是俄語國家的 FreeBSD 使用者頻道。 這裡同時也是一般交流的討論好去處。

  • freebsd-gnome#FreeBSD 頻道,可由 irc.freenode.net 進入, 這是 Gnome 的 FreeBSD 使用者頻道。

  • IRCNet#BSDChat 頻道,可由 irc.seed.net.twirc.csie.nctu.edu.twirc.tw.freebsd.org 進入 這是台灣的 FreeBSD 使用者頻道。

上述每個頻道都不一樣,風格迥異而各具特色,且並沒有相連, 因此,你得多方嘗試才能找到適合自己的頻道。而有些地方與所有的 IRC 文化類似, 就是請注意自己言行是否恰當,另外可能跟頻道內一些年輕/老一輩的,會有些代溝需要適應。

2.7. 可以從哪邊獲得 FreeBSD 的教育課程訓練及技術支援呢?

DaemonNews 有專門提供 FreeBSD 的教育課程訓練及技術支援。 詳情請到 BSD Mall 察看,謝謝。

FreeBSD Mall 有提供 BSD 技術支援付費服務, 詳情請到 FreeBSD Mall 察看,謝謝。

其他任何有提供教育課程訓練及技術支援的組織、單位,若也想列表於此的話, 請與 FreeBSD 文件計畫的郵遞論壇 聯絡,謝謝。


Chapter 3 安裝

Nik Clayton
3.1. 若要用軟碟片開機來安裝 FreeBSD 的話,要下載哪些檔案呢?
3.2. 若磁片裝不下 image 檔的話,該怎麼辦呢?
3.3. 可以在哪邊找到安裝 FreeBSD 的解說步驟呢?
3.4. 要跑 FreeBSD 需要什麼的配備呢?
3.5. 我電腦 RAM 只有 4MB 而已,可以裝 FreeBSD 嗎?
3.6. 要怎樣才能自行打造專用的開機、安裝磁片呢?
3.7. 我電腦上可以有多重作業系統嗎?
3.8. Windows 可以與 FreeBSD 共存於電腦上嗎?
3.9. 嗚.. Windows 把我的多重開機管理員(boot manager)拿掉了!要怎麼救回來呢?
3.10. IBM Thinkpad A系列、T系列或 X系列的筆記型電腦裝完 FreeBSD 之後重開機,就當了,該怎麼辦呢?
3.11. 有壞軌的硬碟可以拿來裝 FreeBSD 嘛?
3.12. 用安裝磁片開機時,卻有些怪現象發生!這是什麼情況呢?
3.13. 用光碟開機片來安裝,但光碟開機後,安裝程式說找不到光碟...這是怎麼了?
3.14. 我可以用 PLIP(Parallel Line IP)方式來安裝 FreeBSD 到筆記型電腦上嗎?
3.15. 該用哪一種硬碟設定參數(geometry)呢?
3.16. 分割磁碟機時有任何限制嗎﹖
3.17. 可以使用哪些磁碟管理程式(disk managers)呢?
3.18. FreeBSD 安裝完畢後重開機,但是電腦卻說 “Missing Operating System”這是怎麼了?
3.19. 為什麼機器上多重開機管理員(boot manager)出現了 F? 這個選單畫面, 但卻不會自動跳過而繼續開機呢?
3.20. 安裝 FreeBSD 時,需要安裝完整的 sources 嗎?
3.21. 需要重新 build kernel 嗎?
3.22. 密碼編碼該採用 DES、Blowfish 或 MD5 的哪一種?該怎麼設定呢?
3.23. 為什麼開機磁片開到一半,就出現 Probing Devices... 的畫面訊息,然後就停住了?
3.24. 系統裝完並重開機後,為什麼卻出現 “panic: can't mount root”?
3.25. 記憶體最大限制為多少?
3.26. 檔案系統最大限制為多少?
3.27. 為何在啟動新的 kernel 時,看到 “archsw.readin.failed” 錯誤訊息?
3.28. “security profiles” 是指什麼?
3.29. 在開機時,選擇使用 ACPI 則在安裝過程就掛了,該怎麼辦?

3.1. 若要用軟碟片開機來安裝 FreeBSD 的話,要下載哪些檔案呢?

FreeBSD 4.X 的話,需要兩個 image 檔: floppies/kernel.flpfloppies/mfsroot.flp。image 檔必須用工具像是 fdimagedd(1) 來傳送到磁片上。 若是在 FreeBSD 5.3 (及之後版本)有重新規劃開機片架構,所以要抓的是 floppies/boot.flp 以及 floppies/kernX 檔案(目前 X 為 1 跟 2 兩個,加上 floppies/boot.flp,總共是 3 個檔案)。

若想自己下載 distributions 的話(比如以 MS-DOS® 檔案系統格式安裝), 以下是建議要抓的 distributions :

  • base/ (4.X 版本則為 bin/)

  • manpages/

  • compat*/

  • doc/

  • src/ssys.*

完整安裝步驟以及大部分的安裝問題,請參閱 FreeBSD 使用手冊的 安裝 FreeBSD 章節

3.2. 若磁片裝不下 image 檔的話,該怎麼辦呢?

一張 3.5 英吋(1.44MB) 的磁碟片是可以裝上 1474560 bytes 的資料 ,而開機片的 image 檔案大小實際上也是 1474560 bytes。

在製作開機片時,常見錯誤有:

  • 使用 FTP 來下載檔案時, 未選擇 binary 傳輸模式來下載。

    有些 FTP client端程式,是預設將傳輸模式設定為 ascii 模式,而且會修改接收到的檔案行尾字串為 client 端的作業系統方式 ,比如 newline(UNIX格式) 到了作業系統為 Windows 的 client 端會被改為 CR-LF(MS-DOS格式), 這會使得 image 檔本身遭到修改而無法正常使用。因此,如果下載的 image 檔案大小若與 FTP 主機上面的檔案『不一致』 的話,請重新使用 binary 傳輸模式下載即可。

    FTP 指令: 進入 FTP 之後,打 binary 指令,即可切換到 binary 傳輸模式,然後再下載相關 image 檔案。

  • 直接用 MS-DOScopy 指令(或類似 的 GUI 程式、或是視窗上直接複製)來複製開機用的 image 檔到磁片上。

    不可以用像是 copy 這類程式直接將 image 檔複製到磁片上,因為 image 檔本身包含了完整的磁軌資料,所以不能單純用複製方式, 而必須使用低階工具程式(像是 fdimagerawrite), 以 “raw” 方式傳送到磁片上。(這部分可參閱 FreeBSD 使用手冊上的 安裝 FreeBSD)

3.3. 可以在哪邊找到安裝 FreeBSD 的解說步驟呢?

安裝步驟的解說,請參閱 FreeBSD 使用手冊上的 安裝 FreeBSD 章節部分。

3.4. 要跑 FreeBSD 需要什麼的配備呢?

FreeBSD 4.X 之前的版本,硬體需求為 386 或更高級的 PC ,記憶體(RAM)至少要 5 MB 或更多,硬碟空間至少要 60 MB 或更多。 不過,FreeBSD 『系統安裝程式』的記憶體(RAM)需求為至少 16 MB。

從 FreeBSD 5.X 起,硬體需求為 486 或更高級的 PC ,記憶體(RAM)至少要 24 MB 或更多,硬碟空間至少要 150 MB 或更多。

FreeBSD 的所有版本都可以只用低階的 MDA 規格顯示卡,不過...要跑 X11R6 視窗的話, 還是至少用 VGA 或更好規格的顯示卡來用吧。

這部分也可參閱 Chapter 4

3.5. 我電腦 RAM 只有 4MB 而已,可以裝 FreeBSD 嗎?

安裝 FreeBSD 4.X 的記憶體需求為至少 5 MB ,而 安裝 FreeBSD 5.X (含之後版本) 則是至少要 8 MB 。

在 5.X 之前的所有 FreeBSD 版本,都可以只用 4 MB 的記憶體來 『運作』,不過,前面那節我們說過了『系統安裝程式』的話, 則無法只用 4 MB 的記憶體來執行。因此,你可以先在『系統安裝程式』這步驟之前, 先將記憶體加到 16 MB 以上,安裝完 FreeBSD 之後,就可以把多餘的記憶體拿下來。 或者是,先把要安裝的硬碟拿到有足夠記憶體的機器上先裝好, 然後再把硬碟放回原機器。

此外,只用 4 MB 的記憶體來運作的話,必須要自製 kernel(拿掉不必要的以及犧牲一些東西)。 也有人成功只用 2 MB 的記憶體以 FreeBSD 開機(雖然這樣的系統幾乎等於廢了..)

3.6. 要怎樣才能自行打造專用的開機、安裝磁片呢?

目前,還沒有辦法『只』自製專用的開機、安裝磁片。 必須透過自行打造完整作業系統的 release(發行),這樣裡面才會包括自己的開機、安裝磁片。

若想自行打造、發行(release)一個完整的作業系統,請參閱這篇 Release Engineering 文章。

3.7. 我電腦上可以有多重作業系統嗎?

可以呀,請參閱 多重作業系統 這篇文章。

3.8. Windows 可以與 FreeBSD 共存於電腦上嗎?

先裝 Windows 再裝 FreeBSD。 那麼 FreeBSD 多重開機管理員(boot manager)就會出現選單讓你選擇要以 Windows 或 FreeBSD 來開機。不過,若你是先裝 FreeBSD 再裝 Windows 的話, 那麼 Windows 將會不問先宰,把 FreeBSD 的多重開機管理員(boot manager)蓋掉, 當你遇上這種情況時,請參考下一節說明。

3.9. 嗚.. Windows 把我的多重開機管理員(boot manager)拿掉了!要怎麼救回來呢?

可以用以下三種方式之一,來救回你的 FreeBSD 多重開機管理員(boot manager):

  • 可以從各 FreeBSD FTP 站的 /pub/FreeBSD/tools/ 找到 bootinst.exeboot.bin 這兩個檔, 以 binary 傳輸模式下載後,複製到磁片上,再用 DOS 開機片開機, 接著打類似下面的指令:

    > bootinst.exe boot.bin
    

    這樣,多重開機管理員(boot manager)就會重裝完畢了。

  • 用 FreeBSD 開機片開機,然後選單那邊選 Custom installation(自訂安裝), 再選 Partition,接著選擇你要裝多重開機管理員(boot manager)的硬碟(通常是第一顆), 然後會出現 partition editor 的畫面,這時請不要做任何修改,直接按 W 儲存, 這時程式就會問是否要確定 Write ,最後出現 Boot Manager 選擇畫面, 記得要選 “Boot Manager” ,這樣就會重新將多重開機管理員(boot manager) 安裝到硬碟上。現在,就大功告成可以離開安裝選單並重開機了。

  • 用 FreeBSD 開機片或是開機光碟開機,然後選單那邊選 “Fixit” ,或是以 Fixit 開機片或是光碟安裝的第二片(選擇 “live” filesystem 選項)然後就會進入 fixit shell 了,接著打下列指令:

    Fixit# fdisk -B -b /boot/boot0 bootdevice
    

    請將上面的 bootdevice 修改為您實際的開機硬碟代號 比如 ad0 (第一顆 IDE 硬碟) ,或是ad4 (first IDE disk on auxiliary controller), da0 (第一顆 SCSI 硬碟)等等。

3.10. IBM Thinkpad A系列、T系列或 X系列的筆記型電腦裝完 FreeBSD 之後重開機,就當了,該怎麼辦呢?

(本問題主要是發生在 2000 ~ 2001 四月間時)這些 IBM 機器上的 BIOS 早期版本有個臭蟲(bug)會把 FreeBSD 分割區誤認為是 FAT 格式分割區,然後當 BIOS 試著偵測 FreeBSD 分割區時,就會當了。

根據 IBM 方面的說法[1] ,以下型號/BIOS版本的機種,已經都有修正:

型號 BIOS 版本
T20 IYET49WW(含之後)
T21 KZET22WW(含之後)
A20p IVET62WW(含之後)
A20m IWET54WW(含之後)
A21p KYET27WW(含之後)
A21m KXET24WW(含之後)
A21e KUET30WW

這些後期的 IBM BIOS 修訂版大多已經修正此一臭蟲。Jacques Vidrine 寫給 FreeBSD laptop computer mailing list這封信 上面說明了若你新的 IBM 筆記型電腦無法順利以 FreeBSD 開機的解法步驟 (假設可以升級或降級 BIOS 版本的話)。

如果機器用的是較古早版本的 BIOS,而且不適合更新 BIOS 的話,那麼以下我們會介紹暫時解法, 教你如何修改 FreeBSD 分割區所使用的 ID ,並安裝相關修補程式。

First, you will need to restore the machine to a state where it can get through its self-test screen. Doing this requires powering up the machine without letting it find a FreeBSD partition on its primary disk. One way is to remove the hard disk and temporarily move it to an older ThinkPad (such as a ThinkPad 600) or a desktop PC with an appropriate conversion cable. Once it is there, you can delete the FreeBSD partition and move the hard disk back. The ThinkPad should now be in a bootable state again.

With the machine functional again, you can use the workaround procedure described here to get a working FreeBSD installation.

  1. http://people.FreeBSD.org/~bmah/ThinkPad/ 來下載 boot1boot2 這兩個檔。 把這兩個檔案放在磁片、光碟或其他硬碟上。

  2. 以一般安裝 FreeBSD 裝到 ThinkPad 上,記得 『不要用』 Dangerously Dedicated 模式。 此外,『不要』 在完成安裝之後就重開機。

  3. 進入 shell:(按 ALT+F4) 切換到“Emergency Holographic Shell” 或是選單上面選擇 “fixit” shell。

  4. fdisk(8) 把 FreeBSD 分割區 ID 由 165 改為 166(OpenBSD所使用的ID)。

  5. 把剛剛提的 boot1boot2 這兩個檔案放到目前的硬碟檔案系統上。

  6. disklabel(8)boot1boot2 存到你的 FreeBSD slice 上面。

    # disklabel -B -b boot1 -s boot2 ad0sn
    

    「n」 是你裝 FreeBSD 的 slice, 請將 「n」 改為符合你系統現況的 slice。

  7. 重開機,在 boot prompt 會看到有 OpenBSD 的選項, 選它,這樣就會以 FreeBSD 開機。

另外,至於如何讓 OpenBSD 及 FreeBSD 並存在同一台 IBM ThinkPad 上... 這個問題就交給各位看倌們去嘗試了 :p

3.11. 有壞軌的硬碟可以拿來裝 FreeBSD 嘛?

(如果很堅持的話)也是可以,不過這想法顯然不太明智。:(

如果在一般較新的 IDE 硬碟上看到有壞軌,很有可能代表:這顆硬碟即將掛點了。 (因為目前所有較新的 IDE 硬碟,內部都有自動 remapping 壞軌的能力。 如果看到有壞軌,則表示它內部自動 remapping 功能失效,無法處理壞軌, 也就是說這顆硬碟已經是嚴重損壞程度了。)我們建議買顆新硬碟比較乾脆些唷。

如果是 SCSI 硬碟有壞軌的話,請試著參考這個 解法

3.12. 用安裝磁片開機時,卻有些怪現象發生!這是什麼情況呢?

若看到一些怪異現象,像是開機片開機開到一半就當了,磁碟機完全沒任何動作、 或是不斷反覆重開機,請先檢查以下幾個線索:

  1. 請確定是否為全新、沒有磁軌錯誤的磁片? (最好使用新買的,而非雜誌、書本附贈的,甚至還放在床底下三年了...=_="")

  2. 請確定是否有用 binary(或image)傳輸模式來下載 image 檔? (不用覺得不好意思,即使是我們也曾意外以 ASCII 傳輸模式來下載 binary 檔案!)

  3. 若你是 Windows 95/98/ME/NT/2000/XP/2003 來下載、製作開機磁片的話, 請確定是否有在 DOS 模式使用 fdimagerawrite 這兩個工具程式?剛講的這些作業系統, 都會影響程式去直接寫入硬體,像是製作開機片之類的動作。 有時候,在 GUI 介面上的 DOS shell 也可能會發生這樣的問題。

此外,直接透過 Netscape® 瀏覽器下載 image 檔的話,也有類似現象。 所以,如果可以的話,請改用其他可以調整設定的 FTP client端程式來進行下載。 (當然,要記得調 binary 傳輸模式)

3.13. 用光碟開機片來安裝,但光碟開機後,安裝程式說找不到光碟...這是怎麼了?

通常問題在於光碟機設定錯誤。目前很多電腦的出廠標準配備都有光碟機,並且 會預先設定為 IDE 通道上面 Secondary 的 Slave 設備,而 Secondary 上面的 卻沒有 Master 設備。以 ATAPI 的規格而言,這是錯誤的設定,然而 Windows 的作法 是不理會這些規格上的設定問題,而且開機時 BIOS 偵測也會略過這點。 這也就是為什麼 BIOS 可以看到光碟,並且可用光碟開機,但 FreeBSD 無法正常抓到光碟以順利進行安裝。

解法:重新設定系統,讓光碟成為它所連接那條 IDE 通道的 Master, 或者只有一條 IDE 通道的話,那就讓光碟機成為 Slave ,當然該 IDE 通道上至少要有 Master 設備。

3.14. 我可以用 PLIP(Parallel Line IP)方式來安裝 FreeBSD 到筆記型電腦上嗎?

可以,用一條普通的 Laplink 線就可以囉。若有這方面需求的話,請參閱 FreeBSD 使用手冊中的 PLIP 章節 的細部設定

3.15. 該用哪一種硬碟設定參數(geometry)呢?

Note: 這裡的『硬碟設定參數(geometry)』,指的是硬碟上的 「cylinders」、「heads」、「sectors/track」 這三個設定參數。 接下來的文章內,為了方便介紹,將簡稱為『C/H/S』。 這些設定參數是讓 PC 上的 BIOS 能順利地正常判別硬碟, 與硬碟本身讀寫的重要因素。



對剛接手的系統管理者新手而言,這些設定參數常造成一些困擾。 首先,SCSI 硬碟上的 physical geometry 跟 FreeBSD 上的 disk blocks 是完全無關的。事實上, 就硬碟上磁區密度的變化而言,並沒有所謂『physical geometry』這種東西。 硬碟製造商所說的『physical geometry』通常是指: 硬碟上所使用最小空間來存放資料的設定參數(geometry)。 以 IDE 硬碟而言,FreeBSD 用以存取硬碟設定的方式是 C/H/S , 然而,目前市面上的硬碟早就在內部運作時,就自動轉換為 block 方式 了。

真正關鍵的地方,其實是在於 『logical geometry』— 這是 BIOS 偵測硬碟時所得到的設定,並且用來決定硬碟存取方式。 由於 FreeBSD 是採用 BIOS 的偵測設定值,所以如何來讓 BIOS 偵測到的設定值保持正確, 是十分重要。尤其是同一顆硬碟上有多個作業系統的情況, 它們都必須採用一致的硬碟設定參數(geometry), 否則就會有開機進不去作業系統的嚴重問題了。

以 SCSI 硬碟而言,硬碟設定參數(geometry)是由 SCSI 卡上的 extended translation(通常指的是有標示 “support >1GB”(支援 1GB 以上容量,或類似名詞) 支援與否來作決定。 如果不支援,那麼就會採用 N cylinders、 64 heads、 32 sectors/track 作為硬碟設定參數(geometry),這裡講的『N』 是指硬碟的容量(單位:MB)。舉個例子來說,一顆 2GB 硬碟應該是 2048 cylinders、64 heads、32 sectors/track。

如果該 SCSI 有支援使用 extended translation 的話, (通常這個方式在 MS-DOS 使用上有某些限制),並且硬碟容量大於 1GB, 那麼硬碟設定參數(geometry)就會使用像是: M cylinders、255 heads、每磁軌 63 sectors(請注意:不是『64』哦), 這裡講的『M』是指硬碟的容量(單位:MB)再除以 7.844238 所得出的數值喔!所以,這個例子的話,同樣是 2GB 硬碟應該是 261 cylinders、255 heads、每磁軌 63 sectors。

若對上面講的不瞭解,或是 FreeBSD 在安裝時所偵測到的硬碟設定參數(geometry) 有問題的話,最簡單的解法通常是在硬碟上建立一塊小小的 DOS 分割區(partition)。 這樣一來,就可以偵測到正確的硬碟設定參數了,而且, 如果不想繼續留著那小塊 DOS 分割區的話,可以隨時用 partition editor 來拿掉它。或者把它留著當作網路卡驅動程式使用,或隨你高興怎麼用它。

此外呢,有個免費好用的工具程式叫做『pfdisk.exe』, 這個程式放在各 FreeBSD FTP 站或光碟的 tools 目錄下, 它可以用來找出硬碟上其他作業系統所使用的硬碟設定參數, 然後就可以在 partition editor 內輸入剛剛找到的那些設定參數就可以了。

3.16. 分割磁碟機時有任何限制嗎﹖

有,你必須確認你的 root 分割區是在 1024 cylinders 之內,讓 BIOS 可以從其中啟動核心。(注意:這是 PC 的 BIOS 功能限制,而不 是 FreeBSD 的)

以 SCSI 硬碟而言,通常是把 root (/) 分割區放到硬碟最前面的 1024MB (如果有支援 extended translation 的話, 那麼是最前面的 4096MB — 這點請參考上一小節)。而 IDE 硬碟的話,相對應的則是 504MB。

3.17. 可以使用哪些磁碟管理程式(disk managers)呢?

FreeBSD 可以用 Ontrack Disk Manager 並且運作正常, 至於其他的 disk manager 則不在正式支援之列。

若整顆硬碟只裝 FreeBSD ,那麼就不用再裝 disk manager 了。 只要把硬碟設定為 BIOS 所能抓到的最大空間,那麼 FreeBSD 就可算出實際上可使用的空間了。 如果,正在使用的是古早 MFM 控制卡的舊式硬碟, 那麼就需要在 FreeBSD內作 cylinders 相關設定了。

如果想在磁碟上使用 FreeBSD 和另外的作業系統,也可以不裝 disk manager, 只要確定 FreeBSD 的啟動分割區跟其他作業系統的 slice 都位於開始的 1024 cylinders 內就可以了。如果你相當地高明的話,一個 20MB 的啟動分割區應該就夠用了。

3.18. FreeBSD 安裝完畢後重開機,但是電腦卻說 “Missing Operating System”這是怎麼了?

通常原因出在 FreeBSD 及 DOS 或其他作業系統在硬碟的 設定參數(geometry)上的規劃有相衝。解法是重裝,但是請照 上述的相關章節步驟來做。

3.19. 為什麼機器上多重開機管理員(boot manager)出現了 F? 這個選單畫面, 但卻不會自動跳過而繼續開機呢?

這個症狀是本文上面所提的另外一個問題了,原因在於 BIOS 上跟 FreeBSD 上面兩邊的硬碟的 設定參數(geometry) 並不一致。 若你硬碟或 BIOS 支援 cylinder translation (通常會被標為 “support >1GB(支援 1 GB以上容量)”的話, 試試看更改相關設定,並重裝 FreeBSD。

3.20. 安裝 FreeBSD 時,需要安裝完整的 sources 嗎?

一般來說,這是用不著的。然而,我們強烈建議您的 source 至少要裝 base(包含了本文中所提的一些檔案)、以及 sys (kernel 的 source 檔)。 雖然,作業系統本身運是不需要裝 source 檔,但是 config(8) 這個 kernel設定程式則需要 src 。 若沒裝 kernel 的 source 檔,仍然可以用其他地方透過 NFS 掛載的唯讀檔案系統, 來編譯程式。 但由於 kernel-source 本身的限制,我們建議不要直接 mount 在 /usr/src, 最好是用 symbolic link(參閱 ln(1)) 將掛載的路徑,設定連結到/usr/src 目錄。

在機器上直接裝有 source 並且瞭解相關編譯過程,這樣子日後升級 FreeBSD 會來得方便多。

若忘了裝相關 source 的話,可以事後用 sysinstalll (FreeBSD 5.2 之前版本則是 /stand/sysinstall) 來補裝,選單:Configure → Distributions → src。

3.21. 需要重新 build kernel 嗎?

在很久很久以前,原本重新 build kernel 在 FreeBSD 安裝過程中, 是絕對必需的步驟之一。但目前早就不用這麼麻煩了, 目前主要常見的版本都使用更友善的 kernel 設定指令。 FreeBSD 4.X(含之前版本),在 FreeBSD 啟動提示號(boot:)時,使用 "-c" flag 就會進入設定畫面,來對 kernel 作常見的 ISA 卡細節設定。 而 FreeBSD 5.X(含之後版本)的話,則是以更具彈性的 "hints" 設定方式。

如果想更節省 RAM 的使用、縮短開機流程,那麼建議:新的 kernel 設定檔只要包含你需要的驅動程式, 然後重新編譯、安裝 kernel 並重開機。然而呢,這點對大多數的系統來說, 這不一定是必要的。

3.22. 密碼編碼該採用 DES、Blowfish 或 MD5 的哪一種?該怎麼設定呢?

FreeBSD 預設的密碼編碼方式是採 MD5。 就密碼編碼方式而言,MD5 方式一般被視為比傳統 UNIXDES 方式較為安全。 然而,若有需要在使用舊環境(較不安全的密碼編碼方式的),DES 密碼編碼方式一樣可以使用。 (若使用 sysinstall 時有選擇 “crypto” 套件,或是從 source 內編譯安裝) 有裝 crypto 的話,crypto libraries 也支援更安全的 Blowfish 編碼方式。

密碼編碼的方式是由 /etc/login.conf 內的 “passwd_format” 欄位來決定的。該欄設定值,(若有裝 crypto 的話)可以是 “des” 或 “blf” 或是原本的 “md5”。 詳情請參閱 login.conf(5) 說明。

3.23. 為什麼開機磁片開到一半,就出現 Probing Devices... 的畫面訊息,然後就停住了?

若機器上有裝 IDE 介面的 Iomega Zip® 或是 Jaz® 的話, 因為這些設備可能跟開機片有相衝,請先拿掉這些設備再重試。 當整個作業系統裝好後,就可以把這些設備接回去使用了。 希望這點在日後 release 的 FreeBSD 可以獲得徹底解決。

3.24. 系統裝完並重開機後,為什麼卻出現 “panic: can't mount root”?

這個錯誤是因為啟動磁區跟 kernel 兩者對磁碟裝置的認知不相同。 通常這問題會發生在有兩顆 IDE 硬碟的系統,比如:硬碟 Jumper 設定為 Master、 或是兩條 IDE 排線各只連接一顆硬碟,但是裝 FreeBSD 那顆開機硬碟, 卻接在 Secondary IDE 排線上。 如此一來,在開機時當 kernel 指定第二個 IDE 控制器的第一個磁碟機 ad2, 啟動磁區卻認為系統是裝在 ad0(BIOS偵測的第二顆硬碟)! 偵測完裝置後,kernel 試著把啟動磁區所認為的開機硬碟(ad0) mount 起來,事實上應該是 ad2 才對,所以就會出現上面的錯誤訊息了。

解法如下,請選擇其中一種方式就好:

  1. 重開機並在出現『Booting kernel in 10 seconds; hit [Enter] to interrupt』 提示的時候,按下 Enter鍵。 這樣子就會進入 boot loader 畫面:

    請輸入 set root_disk_unit="disk_number" 這裡的『disk_number』請依據情況換成相關代號: 若 FreeBSD 硬碟是設定裝在 Primary IDE 接線的 Master,就設為 0 ; 若是 Primary IDE 接線的 Slave,就設為 1; 若是 Secondary IDE 接線的 Master,就設為 2; 若是 Secondary IDE 接線的 Slave,就設為 3。

    接著請再輸入 boot,然後系統應該就可以正常開機了。

    若要每次開機都自動設定,而不必每次都打一次,那麼就在 /boot/loader.conf.local 檔案內加上 root_disk_unit="disk_number" 這行 (當然,『disk_number』要改成相關代號)

  2. 把 FreeBSD 硬碟改接到 Primary IDE 接線上,如此一來就可順利使用。

3.25. 記憶體最大限制為多少?

一般 i386 機器上最多可支援到 4 GB(gigabytes)。 而自 FreeBSD 4.9 及 5.1 可以開始使用 pae(4) 來支援更多的記憶體。 有關這點,需要在 kernel 設定檔內加入下列內容並重新編譯 kernel,才能使用 PAE。

options       PAE

FreeBSD 在 pc98 機器上最多則只支援 4 GB ,而且不能使用 PAE。 在 Alpha 機器上,記憶體限制方面要視所使用的型號支援程度而定,這點請參閱 所使用的 Alpha 硬體規格表。至於其他架構的 FreeBSD 理論上最多可使用的記憶體,有較多的限制。

3.26. 檔案系統最大限制為多少?

就檔案系統方面,理論上的限制是最多到 8TB(2G blocks), 或是使用內定 8K block 大小時,限制是 16TB。 實際上,目前軟體使用上限制只能用到 1 TB, 然而如果是有另行改造過檔案系統,那麼達到 4TB 的目標是可行的 (也有人成功過)。

單一檔案的大小方面,假如 block 以 4K 作規劃的話, 則最大是趨近 1G blocks(4TB)。

Table 3-1. 檔案大小的最大限制

檔案系統 block 大小 works should work
4K 4T-1 >4T
8K >32G 32T-1
16K >128G 32T-1
32K >512G 64T-1
64K >2048G 128T-1

When the fs block size is 4K, triple indirect blocks work and everything should be limited by the maximum fs block number that can be represented using triple indirect blocks (approx. 1K^3 + 1K^2 + 1K), but everything is limited by a (wrong) limit of 1G-1 on fs block numbers. The limit on fs block numbers should be 2G-1. There are some bugs for fs block numbers near 2G-1, but such block numbers are unreachable when the fs block size is 4K.

block 大小如果是 8K 或更大,檔案系統 block 數目會被限制在 2G-1 ,但實際上應該說限制是 1G-1 才對,因為採用 2G-1 block 的檔案系統會導致一些問題。

3.27. 為何在啟動新的 kernel 時,看到 “archsw.readin.failed” 錯誤訊息?

原因出在你的 world 以及 kernel 並不同步,舉例:kernel 用 4.11, 而 world 卻是 4.8,這樣是會有問題的。 請再次確認,是否有以 make buildworldmake buildkernel 來正常更新 kernel。

在啟動 loader 之前,會看到 "|" 這個符號在轉動,這時可以按任何鍵中斷, 然後再指定要載入哪個 kernel 來開機。

3.28. “security profiles” 是指什麼?

A “security profile” is a set of configuration options that attempts to achieve the desired ratio of security to convenience by enabling and disabling certain programs and other settings. For full details, see the Security Profile section of the Handbook's post-install chapter.

3.29. 在開機時,選擇使用 ACPI 則在安裝過程就掛了,該怎麼辦?

試試看關閉 ACPI support。 當在載入 bootloader時,按下空白鍵。 系統會顯示

OK
這時輸入
unset acpi_load
接著打
boot
以繼續開機,這樣子應該就可以了。


Chapter 4 硬體支援方面

4.1 一般問題

4.1.1. 我想組裝自己的 FreeBSD 機器,有哪些型號、品牌、規格是支援程度最好的呢?

4.1.1. 我想組裝自己的 FreeBSD 機器,有哪些型號、品牌、規格是支援程度最好的呢?

有關這點,在 FreeBSD 討論區上時常有人討論。雖然硬體汰換速度很快, 可能隨時有新規格、新產品出現,然而這些都在我們意料之中, 我們 仍然 強烈建議:在詢問有關最新規格硬體的支援問題之前, 請先參閱 FreeBSD 6.15.5的支援硬體列表, 或是搜尋討論區的舊文章, 也許,上週才剛恰巧有人討論過你所要問的硬體。

如果要找有關筆記型電腦方面,請到 FreeBSD-mobile 筆記型電腦討論區。 不然,就到 FreeBSD-questions 討論區,或是特定硬體規格(比如 pc98, Alpha)的專屬討論區吧。


4.2 硬體架構及 CPU

4.2.1. FreeBSD 有支援 x86 之外的硬體架構平台嗎?
4.2.2. FreeBSD 支援 CPU 對稱多工處理(SMP, Symmetric Multiprocessing)嗎?

4.2.1. FreeBSD 有支援 x86 之外的硬體架構平台嗎?

有的,FreeBSD 目前可以在 Intel x86 and DEC (現在的 HP-Compaq) Alpha 架構上面運作。自 FreeBSD 5.0 之後的版本,則 可支援 AMD64 及 Intel EM64T, IA-64 以及 Sparc64® 架構。 未來平台支援上還會有 MIPS® 及 PowerPC®,細節請分別參閱 FreeBSD MIPS porting mailing listFreeBSD PowerPC porting mailing list。 一般而言,新的硬體架構平台方面,都是到 FreeBSD non-Intel platforms porting mailing list 討論。

若你機器不是以上架構或是比較奇特的,而想立刻試試看 BSD 的魔力, 我們建議你可以考慮使用 NetBSDOpenBSD

4.2.2. FreeBSD 支援 CPU 對稱多工處理(SMP, Symmetric Multiprocessing)嗎?

有的。 SMP 在 FreeBSD 5.2 預設的 kernel(GENERIC)已有啟動。

在 FreeBSD 5.3 要 release 時,SMP相關設定也是預設就有啟動。 然而,在一些較新型的機器(像是 emt64)上卻又有些問題, 所以還是決定在相關問題、安全議題未獲解決前,先關閉 SMP 的相關啟動。 這點,正是 FreeBSD 5.4 所優先考慮的方向。

FreeBSD 4.X 的話,預設的 kernel 並沒有啟動 SMP, 因此,必須要把 options SMP 加入 kernel 設定檔並重新編譯才能啟動。 至於還有哪些相關設定要放入 kernel 設定檔,請參閱/sys/i386/conf/LINT


4.3 硬碟、磁帶機以及光碟、DVD、燒錄機

4.3.1. FreeBSD 可支援哪些種類的硬碟呢?
4.3.2. 支援哪些 SCSI 卡、設備呢?
4.3.3. 支援哪些磁帶機呢?
4.3.4. FreeBSD 支援磁帶自動換帶機嗎?
4.3.5. FreeBSD 可支援哪些種類的光碟機呢?
4.3.6. FreeBSD 支援哪些光碟燒錄機的驅動程式呢?
4.3.7. FreeBSD 支援 Iomega Zip 嗎?
4.3.8. FreeBSD 有支援 Jaz、EZ 及其他類似的隨身磁片嗎?

4.3.1. FreeBSD 可支援哪些種類的硬碟呢?

FreeBSD 都支援 EIDE 及 SCSI 介面的硬碟(以及 SCSI 卡,請看下一節說明) 以及 “Western Digital” 介面的硬碟 (MFM、 RLL、 ESDI,當然包含 IDE),不過有一些少數的 ESDI 晶片組的(型號:WD1002/3/6/7) 可能無法正常運作。

4.3.2. 支援哪些 SCSI 卡、設備呢?

請參閱 FreeBSD 的硬體支援表( 6.15.5)

4.3.3. 支援哪些磁帶機呢?

FreeBSD 支援 SCSI 及 QIC-36 (QIC-02 介面) 規格的磁帶機。 同時包含了 8-mm (也就是 Exabyte) 及 DAT 磁帶機。

有些早期版本的 8-mm 磁帶機並不是完全相容於 SCSI-2 規格, 所以可能在 FreeBSD 上表現不是很好。

4.3.4. FreeBSD 支援磁帶自動換帶機嗎?

FreeBSD 可以用 ch(4) 上面所列的機種,搭配 chio(1) 指令, 來使用 SCSI 種類的自動換帶機,細節部分請參閱 chio(1) 說明。

If you are not using AMANDA or some other product that already understands changers, remember that they only know how to move a tape from one point to another, so you need to keep track of which slot a tape is in, and which slot the tape currently in the drive needs to go back to.

4.3.5. FreeBSD 可支援哪些種類的光碟機呢?

只要是有支援的 SCSI 卡上所接的任一 SCSI 光碟機都有支援。

此外,也支援下列的光碟機:

  • Mitsumi LU002 (8bit), LU005 (16bit) 及 FX001D (16bit 2x Speed)

  • Sony CDU 31/33A

  • Sound Blaster 非 SCSI 介面的光碟機

  • Matsushita/Panasonic 光碟機

  • 相容 ATAPI 規格的 IDE CDROMs

相對於 SCSI 機種而言,其他非 SCSI 的光碟機都是比較慢, 此外,有些 ATAPI 種類的光碟機可能無法順利運作

Daemon News 以及 FreeBSD Mall 所發行的正式 FreeBSD 光碟以及燒錄用的影像檔(ISO), 都可以直接用於開機光碟使用。

4.3.6. FreeBSD 支援哪些光碟燒錄機的驅動程式呢?

FreeBSD 支援任何相容 ATAPI 標準的 IDE CD-R 或 CD-RW 光碟燒錄機, 細節請參閱 burncd(8) 說明。

FreeBSD 也支援任何 SCSI CD-R 或 CD-RW 光碟燒錄機。 請用 port 或 packag 機制來安裝、使用 cdrecord , 並確定您的 kernel 內有將 pass設備一併編譯在內。 (預設的 kernel.GENERIC 都會有 device pass 這段)

4.3.7. FreeBSD 支援 Iomega Zip 嗎?

FreeBSD 支援外接式的 SCSI 及 ATAPI(IDE) 介面的 Iomega Zip。 不過 SCSI ZIP 只能被設為 SCSI ID 5 或是 6 才可以運作,但如果 SCSI 卡上的 BIOS 支援它,你甚至可以用它來開機。 我們不曉得哪一塊卡可以把卡的 ID 設在除了 0 或 1 以外的地方而開機成功, 因此,如果想改 SCSI ID 的話,請務必參閱該型號的說明手冊。

FreeBSD 同時也支援 Parallel Port Zip磁碟機。請檢查 kernel 設定檔是否有: scbus0da0ppbus0,以及 vp0 這些驅動程式 (預設的 GENERIC kernel 除了 vp0 沒包進去,其他三者都會有)。 加了這幾個驅動程式之後,Parallel Port Zip 就會成為 /dev/da0s4

這時,就可以用像是 mount /dev/da0s4 /mnt 或 (DOS 檔案系統)mount_msdos /dev/da0s4 /mnt 之類的指令來掛載、讀寫。

也可以參閱下面有關隨身磁片 部分,以及抽取碟、隨身碟的『格式化』討論 的部分

4.3.8. FreeBSD 有支援 Jaz、EZ 及其他類似的隨身磁片嗎?

可以啊,除了 IDE 的 EZ drive 外,其他的應該都是 SCSI 介面, 所以在 FreeBSD 上都會以 SCSI 硬碟來處理。

當然,你必須確定在開機時,這些設備的電源是打開的, 以便讓 FreeBSD 可以偵測到。

如果在磁碟運中狀態中,要更換磁片的話, 記得先看一下 mount(8)umount(8)、 以及(SCSI的話)camcontrol(8)atacontrol(8) 還有 FAQ 後面有關 使用抽取碟、隨身碟的討論


4.4 鍵盤、滑鼠

4.4.1. FreeBSD 有支援 USB 鍵盤嗎?
4.4.2. 古早的 bus 滑鼠,要怎麼設定呢?
4.4.3. PS/2 (“mouse port” 或 “keyboard”)的滑鼠要怎麼設定才好呢?
4.4.4. 如果不用 X Window 環境的話,也可以用滑鼠嗎?
4.4.5. 在文字模式的 console 環境要怎麼用滑鼠來剪貼文字呢?
4.4.6. 我滑鼠上面的滾輪、滾輪按鈕,可以在 console 上使用嗎?
4.4.7. 要怎麼在筆記型電腦上使用滑鼠、軌跡球、觸控板呢?

4.4.1. FreeBSD 有支援 USB 鍵盤嗎?

FreeBSD (尤其是有支援 USB keyboards。 Enable USB support in /etc/rc.conf.

若有開 USB 鍵盤支援而且同時接上 AT 跟 USB 鍵盤的話,那麼 AT 鍵盤會變成 /dev/kbd0,而 USB 鍵盤則是 /dev/kbd1。如果只接 USB 鍵盤,那麼它就是 /dev/ukbd0 囉。

如果想在 console 上使用 USB 鍵盤的話,那麼必須設定 console 指定用 USB 鍵盤。 可以在系統開機程序時,加上下列指令:

# kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null

注意:若只有 USB 鍵盤的話,也就是 /dev/ukbd0, 那麼請改用下列指令:

# kbdcontrol -k /dev/ukbd0 < /dev/ttyv0 > /dev/null

建議:可以把上述指令放入 /etc/rc.i386

設定成功之後,USB 鍵盤不用作任何特別設定,就可以在 X 視窗環境上正常運作囉。

USB 鍵盤的熱插拔(Hot-plugging and unplugging)在 FreeBSD 可能還無法完全正常運作, 建議:在系統開機前就先接上鍵盤,直到關機為止,以避免不必要的困擾。

相關細節請參閱 ukbd(4) 的說明。

4.4.2. 古早的 bus 滑鼠,要怎麼設定呢?

FreeBSD 支援一些廠商(像是:Microsoft、Logitech、ATI)所做的 bus 及 InPort bus 介面的滑鼠。 然而,預設的 kernel(GENERIC)已經不內含它們的驅動程式。 因此,要加入下列到 kernel 設定檔並重新編譯、安裝,才能啟用:

device mse0 at isa? port 0x23c irq5

Bus 滑鼠通常要搭配專用的介面卡才能使用。 這些卡可以設定 port address 及 IRQ 值,這些細節請參閱你的滑鼠說明手冊及 mse(4) 說明。

4.4.3. PS/2 (“mouse port” 或 “keyboard”)的滑鼠要怎麼設定才好呢?

PS/2 滑鼠都有支援,所需要用到的驅動程式 psm 在預設的 kernel(GENERIC)已有內含了。

若你自訂的 kernel 內漏了 psm 的話,那麼就再把下列內容加到 kernel 設定檔並重新編譯、安裝:

device psm0 at atkbdc? irq 12

當開機時 kernel 有正確偵測到 psm0 ,請務必確認在 /dev 內有 psm0 。 如果沒有的話,那麼就用 root 來打下列指令來建立吧:

# cd /dev; sh MAKEDEV psm0

Note: 如果是 FreeBSD 5.0-RELEASE(含之後版本)的話,因為採用 devfs(5) 機制的因素, 所以會自動在 /dev 下建立相關設備的節點,因此就可以略過上面這一步。

4.4.4. 如果不用 X Window 環境的話,也可以用滑鼠嗎?

若使用 console 的預設驅動程式(也就是 syscons(4)), 那麼就可以在文字介面的 console 上面用滑鼠來剪貼文字了。 那麼要啟動 moused(8) 並開啟游標顯示, 請打下列指令:

# moused -p /dev/xxxx -t yyyy
# vidcontrol -m on

其中『xxxx』是滑鼠的設備名稱,而 『yyyy』則是滑鼠所使用的 protocol 種類。 目前的 moused 可以自動偵測(除了舊式的 serial 滑鼠之外)大多數滑鼠所使用的 protocol 種類,而不用刻意去指定。 『protocol 種類』設定用 auto 就會自動偵測了。若自動偵測失敗的話,請參閱 moused(8) 裡面的 type 那段說明。

如果用的是 PS/2 滑鼠,只要把 moused_enable="YES" 加到 /etc/rc.conf ,這樣每次開機就會自動啟動了。 此外,如果要在所有 virtual terminals 上也能使用滑鼠, 而不限定只有 console 的話,那麼請再把 allscreens_flags="-m on" 加到 /etc/rc.conf 裡面即可。

moused 在執行中的時候,如果要使用滑鼠相關功能,都必須透過 moused 或其他程式像是 X 視窗來進行。請參閱 FAQ 中有關『為什麼不能在 X 視窗裡使用滑鼠?』以瞭解相關細節。

4.4.5. 在文字模式的 console 環境要怎麼用滑鼠來剪貼文字呢?

當執行 moused 後,(參閱前一節) 按住左鍵,接著移動滑鼠來選擇一個區域之後放開,這樣就完成『複製』。 要『貼上』的話,按滑鼠中鍵就可以了。 要『延伸選取區』的話,按滑鼠右鍵

如果你的滑鼠沒有中鍵,你可以用模擬的方式,或是重新定義滑鼠按鍵的方式, 來達成「延伸」的功能。詳情請參閱 moused(8) 說明。

4.4.6. 我滑鼠上面的滾輪、滾輪按鈕,可以在 console 上使用嗎?

這個答案嘛...,很不幸地,在大多數的情況下不行。 這些有滾輪的滑鼠需要用特殊驅動程式才行, 除非,滑鼠驅動程式或使用者自己的應用程式有支援, 不然,這些滑鼠只能夠當成是普通的兩鍵或三鍵的滑鼠來用而已。

如果要在 X 視窗環境上使用滾輪的話,請參閱 X 視窗上的滾輪使用 說明。

4.4.7. 要怎麼在筆記型電腦上使用滑鼠、軌跡球、觸控板呢?


4.5 網路跟 serial 設備

4.5.1. FreeBSD 支援哪些網路卡呢?
4.5.2. 為什麼 FreeBSD 找不到 PnP(隨插隨用,Plug & Play)規格的 modem?
4.5.3. FreeBSD 支援像是 Winmodems 之類的軟體 modem 嗎?
4.5.4. 有 Broadcom 43xx 無線網卡的原生驅動程式(Native driver)嗎?
4.5.5. FreeBSD 支援哪些 multi-port serial卡呢?
4.5.6. 在 serial console 上要如何才會出現 boot: 提示呢?

4.5.1. FreeBSD 支援哪些網路卡呢?

請參考 FreeBSD 各版本的硬體支援列表。

4.5.2. 為什麼 FreeBSD 找不到 PnP(隨插隨用,Plug & Play)規格的 modem?

原因在於:需要把 modem 的 PnP ID 加到 serial 驅動程式的 PnP ID 表,作法如下:

  1. 首先,在 kernel 設定檔內加入 controller pnp0, 並重新編譯、安裝 kernel,最後重開機就會啟動 PnP 支援。

  2. 然後,kernel 會把偵測到所有設備上的 PnP ID 都列出。 這時,修改 /usr/src/sys/isa/sio.c(大約第752行左右的地方), 可以搜尋 SUP1310 當關鍵字(位於 sio_ids[] 表內), 請將剛才 kernel 顯示的 modem 的 PnP ID 複製到相關位置。

  3. 這時,再重新編譯、安裝 kernel,最後重開機應該就會正確偵測到 modem 了。



此外,也可以在開機時以 pnp 指令來手動設定 PnP 設備, 來讓 kernel 得以正確偵測,舉例:

pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8

4.5.3. FreeBSD 支援像是 Winmodems 之類的軟體 modem 嗎?

FreeBSD 可以安裝額外的軟體來支援軟體 modem。 像是 comms/ltmdm 可支援常見的 Lucent LT 晶片, comms/mwavem 則可支援 IBM Thinkpad 600 及 700 筆記型電腦上面的 modem。

然而,並不能用軟體 modem 來安裝 FreeBSD, 因為:這類軟體必須在作業系統安裝完畢之後,才能安裝。

4.5.4. 有 Broadcom 43xx 無線網卡的原生驅動程式(Native driver)嗎?

沒有,而且也不太可能會有。

Broadcom 拒絕公開有關無線網卡晶片的驅動程式相關說明, 主因大概是他們用軟體來控制無線傳輸方式。 事實上,因為要能通過美國聯邦電信委員會(FCC)檢磁安規的話, 必須確保產品不能讓使用者不能隨意更動相關設定,比如:電磁波頻率、相關模組參數、輸出電源等。 但是,如果我們不知道如何去控制晶片的話,那麼撰寫驅動程式之路恐怕不太可行。

4.5.5. FreeBSD 支援哪些 multi-port serial卡呢?

請參閱使用手冊上的 安裝篇—其他硬體 列表。

雖然有些卡是沒牌的(尤其是有標明:相容 AST 規格)但也可以正常使用。

至於卡的設定方面,請參閱 sio(4) 的說明。

4.5.6. 在 serial console 上要如何才會出現 boot: 提示呢?

  • kernel 設定檔加入 options COMCONSOLE

  • 建立 /boot.config 檔,並且該檔裡面內容只填上 -P

  • 把鍵盤從機器上拔掉

  • 細節請看 /usr/src/sys/i386/boot/biosboot/README.serial


4.6 音效卡

4.6.1. FreeBSD 支援哪些音效卡?
4.6.2. pcm(4) 所支援的音效卡沒有聲音,有什麼暫時解決方式嗎?

4.6.1. FreeBSD 支援哪些音效卡?

FreeBSD 支援各種音效卡,包括了 SoundBlaster®、 SoundBlaster Pro、SoundBlaster 16、Pro Audio Spectrum 16、 AdLib、及 Gravis UltraSound sound cards (細節請參閱 FreeBSD 發行情報 以及 snd(4) 的說明)。 此外,對 MPU-401 及 MIDI 相容規格的也有一定程度的支援,而 Microsoft® Sound System 規格也有支援。

Note: 驅動程式僅適用於『音效』部分! 除了 SoundBlaster 之外, 目前音效驅動程式並不支援這些音效卡上的光碟機, SCSI設備或搖桿。 SoundBlaster 的 SCSI 介面及某些非 SCSI 的光碟機是有支援,但無法用來開機。

4.6.2. pcm(4) 所支援的音效卡沒有聲音,有什麼暫時解決方式嗎?

因為有些像是 es1370 晶片的音效卡會在每次開機時把音量調為零。 暫時解法是在每次開機時執行下面指令,或是加到 /etc/rc.local 內:

# mixer pcm 100 vol 100 cd 100

4.7 其他怪異問題(ACPI、重開機後掛了..等)

4.7.1. FreeBSD 還支援其他哪些硬體呢?
4.7.2. FreeBSD 支援筆記型電腦的省電管理功能嗎?
4.7.3. 該如何關閉 ACPI?
4.7.4. Micron 電腦總是在 FreeBSD 啟動時就掛掉,該怎麼辦呢?
4.7.5. 3Com® PCI 介面網路卡無法在 Micron 電腦上使用,該怎麼辦?
4.7.6. 主機板是用華碩(ASUS) K7V,可是用開機片開到一半就當了,怎麼辦呢?
4.7.7. PCMCIA 卡無法使用,並出現錯誤訊息 “cbb0: unsupported card type detected.” 該怎麼辦?
4.7.8. 為什麼 DellPowerEdge™ 2850 裝完 FreeBSD 之後,重開機接著鍵盤就掛了?

4.7.1. FreeBSD 還支援其他哪些硬體呢?

請參閱使用手冊上的 安裝篇—其他硬體

4.7.2. FreeBSD 支援筆記型電腦的省電管理功能嗎?

FreeBSD 4.X(含之後版本)在某些機種上都有支援 APM。 細節請參閱 apm(4) 的說明。

FreeBSD 5.X(含之後版本)支援在目前大部分機種上都有的 ACPI 功能。 細節請參閱 acpi(4) 的說明。若機器上同時都有 APMACPI 功能的話,我們建議你可以兩者都試試看, 看看哪一種比較符合你的需求。

4.7.3. 該如何關閉 ACPI?

hint.acpi.0.disabled="1"
這段加到 /boot/device.hints 即可。

4.7.4. Micron 電腦總是在 FreeBSD 啟動時就掛掉,該怎麼辦呢?

有些 Micron 主機板上的 BIOS 在 PCI 方面會有問題, 這會導致 PCI 設備會被 BIOS 偵測為不正確設定,而進入 FreeBSD 就掛掉。

暫時解決方式:關閉 BIOS 內 “Plug and Play Operating System” 的設定。

4.7.5. 3Com® PCI 介面網路卡無法在 Micron 電腦上使用,該怎麼辦?

這問題跟前面的問題因素一樣,總之,就是關閉 BIOS 中有關 OS PnP 的設定。

暫時解決方式:關閉 BIOS 內 “Plug and Play Operating System” 的設定。

4.7.6. 主機板是用華碩(ASUS) K7V,可是用開機片開到一半就當了,怎麼辦呢?

進入 BIOS 設定,並關閉 “boot virus protection” 設定即可。

4.7.7. PCMCIA 卡無法使用,並出現錯誤訊息 “cbb0: unsupported card type detected.” 該怎麼辦?

可以試試看改用舊的方式,請先修改 kernel 設定檔,拿掉下面這幾行:

device cbb
device pccard
device cardbus
然後加上:
device pcic
device card 1
最後請參閱 Handbook 中 調整 FreeBSD Kernel 章節,以重新編譯、安裝新的 kernel。

4.7.8. 為什麼 DellPowerEdge™ 2850 裝完 FreeBSD 之後,重開機接著鍵盤就掛了?

(本題由 cdsheen 提供)嚐試在 Dell PowerEdge 2850 上面安裝 FreeBSD 6.0, 不過安裝完成、並重新開機之後,發現 console 的鍵盤不能動了, 同樣的情況似乎也存在於 FreeBSD 5.3 及 FreeBSD 5.4, 經過一番搜尋,發覺是因為這台機器上面有一個 “Dell Remote Access Controller (DRAC)”, 這個裝置會被系統辨識成一個 USB Keyboard,所以導致開完機之後,正常的 PS/2 鍵盤反而不能動了!

暫時解決方式如下:

  1. 先以 Single User Mode 進入系統

  2. 在命令列模式下,先執行下列命令:

    # fsck -y /
    
    # mount -u /
    
  3. 然後編輯 /etc/devd.conf,把對於 USB Keyboard 的支援暫時拿掉, 也就是把下面幾行開頭加上 #

    # When a USB keyboard arrives, attach it as the console keyboard.
    #attach 100 {
    #       device-name "ukbd0";
    #       action "kbdcontrol -k /dev/ukbd0 < /dev/console && /etc/rc.d/syscons restart";
    #};
    #detach 100 {
    #       device-name "ukbd0";
    #       action "kbdcontrol -k /dev/kbd0 < /dev/console";
    #};
    
  4. 然後輸入 exit離開 Single User Mode 之後, 就可以順利進入系統、而且鍵盤也可以正常運作,下次開機也不會有問題!

另外,Dell 的 DRAC/BMC 看起來有蠻多不錯的遠端存取功能,有興趣的人可以玩玩看...


Chapter 5 常見問題解決

William Liao
5.1. Why is FreeBSD finding the wrong amount of memory?
5.2. 硬碟有壞軌時該怎麼辦?
5.3. 為什麼 FreeBSD 抓不到 HP Netserver 的 SCSI 控制卡?
5.4. 一直看到類似 “ed1: timeout” 的訊息。它們是什麼意思呢?
5.5. 3Com 3C509 網路卡莫名其妙罷工?
5.6. 平行埠印表速度破天荒的慢,該怎麼辦?
5.7. 程式有時會因 “Signal 11” 錯誤而停止?
5.8. 當機時出現:“Fatal trap 12: page fault in kernel mode” ,或是 “panic:” 以及一堆錯誤訊息,該怎麼辦?
5.9. 為什麼當我開機時,螢幕變黑,且不停閃動?
5.10. 為什麼我的系統裝有 128 MB 的 RAM,而 FreeBSD 只用了其中的 64MB?
5.11. 機器上的 RAM 有 1GB 以上,可是為何卻收到 “kmem_map too small” 的 panic 錯誤訊息?
5.12. 機器上 RAM 不到 1GB ,但仍會出現 “kmem_map too small!” 的 panic 錯誤訊息
5.13. 為什麼我一直看到 “/kernel: proc: table is full” 這個錯誤訊息?
5.14. 為什麼用新 kernel 開機時,出現 “CMAP busy” 這個錯誤訊息?
5.15. 請問這個訊息:“ahc0: brkadrint, Illegal Host Access at seqaddr 0x0” 是什麼意思?
5.16. 開機時,看到這個錯誤訊息 “ahc0: illegal cable configuration”。 我的排線確定有接對。 是出了什麼問題呢?
5.17. 為什麼 Sendmail 一直出現 ““mail loops back to myself”” 這個錯誤訊息?
5.18. 為什麼執行遠端機器(remote machine)的全螢幕的軟體時, 有不正常的情形?
5.19. 為什麼我的機器一直顯示 “calcru: negative time...”?
5.20. 出現 “pcm0 not found” 這個訊息,或者是 我的音效卡變成了 pcm1,但在 kernel 設定 檔�我是設 device pcm0 啊。這是怎麼回事呢?
5.21. 為什麼在更新到 FreeBSD 4.X 後會抓不到我的 PnP 卡 (或者是抓成 unknown)?
5.22. 為什麼我常常在跑一些程式(例如 topsystat)的時候出現 “nlist failed” 這個錯誤訊息?
5.23. 為什麼我用 sshtelnet 連到我的電腦時,會等待很長的一段時間才能連上?
5.24. stray IRQ” 這個錯誤訊息是什麼意思?
5.25. 為什麼 “file: table is full” 這個訊息 一直在 dmesg �重複出現?
5.26. 為什麼我筆記型電腦上的時鐘一直顯示錯誤的時間?
5.27. 為什麼我的筆記型電腦無法正確的偵測到 PC card ?
5.28. 為什麼在 BIOS 畫面之後,FreeBSD 的 boot loader 顯示 “Read error” 然後就停止不動了?
5.29. 另一個作業系統摧毀了我的 Boot Manager。我要怎麼樣才能把它還 原回來?
5.30. 這個錯誤訊息:“swap_pager: indefinite wait buffer:” 是什麼意思呢?
5.31. 為何在 buildworld/installworld 時,會趴在 “touch: not found” 的錯誤訊息?

5.1. Why is FreeBSD finding the wrong amount of memory?

The reason is the difference between physical memory addresses and virtual addresses.

The convention for most PC hardware is to use the memory area between 3.5G and 4G for a special purpose (usually for PCI). This address space is used to access PCI hardware. As a result real, physical memory can not appear in that address space.

What happens to the memory that should appear in that location is dependent on your hardware. Unfortunately, some hardware does nothing and the ability to use that last 500M of RAM is entirely lost.

Luckily, most hardware remaps the memory to a higher location so that it can still be used. However, this can cause some confusion if you watch the boot messages.

On a 32 bit version of FreeBSD, the memory appears lost, since it will be remapped above 4G, which a 32 bit kernel is unable to access. In this case, the solution is to build a PAE enabled kernel. See this FAQ entry for more information.

On a 64 bit version of FreeBSD, or when running a PAE-enabled kernel, FreeBSD will correctly detect and remap the memory so it is usable. During boot, however, it may seem as if FreeBSD is detecting more memory than the system really has. This is normal and the available memory will be corrected as the boot process completes.

5.2. 硬碟有壞軌時該怎麼辦?

若是 SCSI 硬碟的話,那麼磁碟機應該有能力自動作 re-mapping 的動作。然而,因為一些未知的因素,在出廠時,很多硬碟的這項 功能是關閉的...

要將其重新開啟,您需要編輯裝置的第一個 page 模式 (first device page mode),在 FreeBSD 上可以用下面的指令辦到 (以 root身分執行)

# scsi -f /dev/rsd0c -m 1 -e -P 3

然後將 AWRE 和 ARRE 的數值從 0 變成 1:-

AWRE(Auto Write Reallocation Enbld): 1
ARRE(Auto Read Reallocation Enbld): 1

以下這段是由 Ted Mittelstaedt 所提供:

若為 IDE 硬碟,任何的壞軌通常都是麻煩的預兆。目前所有較新的 IDE 硬碟,內部都有自動 remapping 壞軌的能力。目前所有 IDE 硬碟 製造商,都提供了更久的保證,而且會幫您更換出現壞軌的硬碟。

如果您仍想要修復產生壞軌的 IDE 硬碟,您仍可以試著去下載 IDE 硬碟製造商所提供的檢測程式,並用它來檢查您的硬碟。有時這些軟體可 以強迫重新檢查硬碟的壞軌,並將它們標示出來。

對 ESDI,RLL 及 MFM 的硬碟來說,通常壞軌是正常現象,也不是什 麼麻煩的前兆。在 PC 上,磁碟控制卡和 BIOS 負責標示壞軌的任務。這 對一些使用 BIOS來存取磁碟的作業環境(如 DOS)是沒有問題的。然而, FreeBSD 的磁碟驅動程式並不經過 BIOS 來存取磁碟,所以,有個 bad144 的機制用來取代這項功能。bad144 只能用在 wd 這個磁碟驅動程式上(這 個代表了 FreeBSD 4.0 並不支援它),它也無法用在 SCSI 硬碟上。 bad144的工作方法是將所有找到的壞軌資料存到一個特別的檔案�。

使用 bad144 的警告 - 存著壞軌資料的特別檔案是放在硬碟的最後 一軌上。因為這個檔案儲存的壞軌資料中,有可能有些資料是指向硬碟最 前端所發生的壞軌情形,就是可能儲存 /kernel 這個檔的地方,所以它 一定要能被開機程式所讀取,而開機程式是透過 BIOS 來讀取 kernel 檔。這表示了使用 bad144 的硬碟絕不能擁有超過 1024 個 cylinder, 16 個 head 及 63 個 sector。而這使得欲使用 bad144 的硬碟的大小不 能大於 500 MB。

要使用 bad144 很簡單,只要在開始安裝時,在 FreeBSD fdisk 畫面 把“Bad Block” 掃瞄設為 ON 即可。在 FreeBSD 2.2.7 以 後都可以使用此方法。但這個硬碟的 cylinder 一定要在 1024 以下。使 用前,我們建議這個硬碟要至少先使用四個小時,以便熱膨脹與磁軌偏移 達一般狀態。

如果這個硬碟擁有超過 1024 個 cylinder(像大容量的 ESDI 硬碟) ,ESDI 控制卡利用一個特別的轉換模式使它能在 DOS 下工作。而如果您 在 fdisk �的 “set geometry” 中輸入 “轉換過” 的 geometry,wd 這個驅動程式能了解這些轉換 模式。您也絕對不能使用 dangerously dedicated 模式來建立 FreeBSD 的分割區,因為它會忽略 geometry 這個參數。此外,就算 fdisk 使用 您所輸入的 geometry 參數,它依然會去讀取這硬碟的真正資料,而會嘗 試去建立一個過大的 FreeBSD 分割區。如果磁碟的 geometry 已經被 “轉換” 過了,那麼 這個分割區 “必須” 以手動輸入 block 數目的方法來建立。

一個快速的小技巧是利用 ESDI 控制卡來設定大容量的 ESDI 硬碟, 用 DOS 開機片開機,再將它 format 為 DOS 的分割區。然後重開機進入 FreeBSD 安裝程序,在 fdisk 畫面,把DOS 分割區的 blocksize 和 block number 抄下來。然後重新設定 geometry 使其跟 DOS 使用的一樣。 刪除 DOS 分割區,然後使用您剛剛抄下的 blocksize 來建立一個 “cooperative” FreeBSD 分割區。然後設定這個分割區為可 開機,再打開壞軌掃瞄。在真正的安裝過程中,bad144 會在任何檔案系統 被建立前先被執行。(您可以按 Alt-F2 來監看這一切)如果在建立壞軌資 料檔時發生了問題,您會需要設定一個較大的磁碟 geometry - 這表示您 需要重開機,然後全部再重新開始(包括重新分割以及在 DOS 下重新 format)。

如果 remapping 的功能已經啟動了,而您依然一直看到壞軌產生, 那麼考慮換一台硬碟吧。壞軌的情形只會隨時間增加而更為嚴重。

5.3. 為什麼 FreeBSD 抓不到 HP Netserver 的 SCSI 控制卡?

基本上這個是一個已知的問題。在 HP Netserver 機器上的 on-board EISA 介面 SCSI 控制卡占據了定址為第 11 的 EISA 槽,因此所有的 “真實” EISA 槽都在它之前。可是,在 EISA 定址空間 >= 10 時,會與指定給 PCI 用的定址空間相衝突,且 FreeBSD 的 auto-configuration 無法正確的處理這個情形。

因此,現在你能做的最好事情就是在 kernel �設定 EISA_SLOTS 這個選項為 12 ,然後當作沒有這個 問題 :)。請依照 Handbook 中有關 kernel 的設定 �所說的方法來設定與編譯 您的 kernel。

當然,在安裝 FreeBSD 到這種機器上時,這是一個雞生蛋蛋生雞的 問題。為了解決這個問題,在 UserConfig 中有 一個特別的方法,安裝時不要進入 “visual” 介面,相反 的,在命令列模式中,鍵入

eisa 12
quit

然後就如以往一樣安裝您的系統。不過我們建議您編譯與安裝一個 屬於自己的 kernel,但

希望在未來的版本中能對這個問題有一個好的解決方法。

Note: 您無法在 HP Netserver 上使用 dangerously dedicated 磁碟模式。您可以參考 這份註解 以獲得更多資訊。

5.4. 一直看到類似 “ed1: timeout” 的訊息。它們是什麼意思呢?

這個通常是由於中斷衝突(interrupt conflict)所造成的 (例如:兩塊卡使用到了相同的 IRQ)。 FreeBSD 在 2.0.5 版以前都容許這個情形, 就算有 IRQ 衝突情形,網路卡也應該仍可正常運作。然而,在 2.0.5 版及其以後, 已不再容許有 IRQ 衝突的情形了。請於開機時使用 -c 這個選項, 然後更改 ed0/de0/..等的設定,使其和您網路卡本身的設定一致。

如果您是使用您網路卡上的 BNC 接頭,您或許也會因不良的終端電阻設定, 而發生裝置(device) timeout 的情形。要檢查是否有這種情形, 您可以在網路卡上直接接上終端電阻(不要接網路線), 然後,看看這個錯誤訊息是不是就消失了。

有些 NE2000 的相容卡,如果它的 UTP 埠沒有接網路線, 或是該網路線並沒被使用的話,也會出現這個錯誤訊息。

5.5. 3Com 3C509 網路卡莫名其妙罷工?

這塊卡有個不好的地方在於它常常會遺失本身的設定資料。請使用該 卡的 DOS 工具 3c5x9.exe 來更新卡上設定。

5.6. 平行埠印表速度破天荒的慢,該怎麼辦?

如果唯一的問題就是速度很慢的話,試著改變您的 印表機連接埠設定 這個在手冊中的 印表機設定 這個章節有加以討論。

5.7. 程式有時會因 “Signal 11” 錯誤而停止?

Signal 11 這個錯誤是因為你的 process 嘗試要存取一塊記憶體, 而你的作業系統並不允許它做這個動作而發生的。如果這種情形常常不 定時發生,那麼你應該要開始看看是不是哪裡出問題了。

這些問題可能是與下列情形有關:

  1. 如果這個問題只在某一個您自己寫的某個特定程式發生,那 麼很有可能是您的程式碼有問題。

  2. 如果這個問題是在 FreeBSD 的某些系統檔案發生,有可能是 因為程式有問題,但通常在我們這群讀 FAQ 的使用者去跑這些有 問題的程式碼前,它們早就就已經被解決了(這是 -current 在做 的事)。

尤其如果你在編譯一個程式,但是每次編譯器跑出來的結果都不一樣 的話,這是一個無解的問題,而不是 FreeBSD 臭蟲。

舉例來說,假設您正在跑 “make buildworld”, 而 compiler 在將 ls.c 編譯成 ls.o 時發生錯誤,這時請再跑一次 “make buildworld”,如果 compiler 依然在同樣的地方發 生問題,那麼就是程式碼有問題--請更新原始碼然後再試試看。而如果 compiler 是在其他的地方發生錯誤,那麼幾乎可以確定是硬體的問題了。

您這時應該做什麼:

如果是第一種情形,可以使用一些 debugger,如:gdb,來找出程式 是在那兒會去嘗試存取錯誤的記憶體位址,然後再修正它。

如果是第二種情形,就需要檢查看看是不是硬體的問題了。

一些造成硬體不穩的原因包括:

  1. 可能是硬碟過熱:請檢查機殼內的風扇是否運作正常,因為您 的硬碟(或者還有其他的硬體裝置)過熱了。

  2. 處理器過熱:這個有可能是因為超頻,或者是處理器的風扇掛了。 不論是哪種原因,您都需要將所有的元件回復到它們原先設定的工作狀 態,這樣才能解決這個問題。舉個例子來說:將處理器調回原先的工作 頻率。

    如果您還是堅持要超頻的話,請謹記,與其燒壞而需要換新的一台 主機,不如將速度調慢一點!除此之外,不管你覺得它安不安全,一般 人對於您因為超頻而發生的問題,是不會有什麼同情心的。

  3. 不穩定的記憶體:如果主機上有安裝數根 SIMM/DIMM 記憶體, 試著把它們全拆下來,然後一根一根插上去做測試,藉此縮小範圍, 以便找出有問題的某根記憶體或是某種記憶體組合。

  4. 最佳化過頭的主機板設定:在 BIOS �或是有些主機板的 jumper 上,有時可以更改一些 timing,但在大多數的情形�,使用預設值就 已經足夠了。況且有時候把 RAM 的 wait states 設太小,或是在 BIOS �,把 “RAM Speed: Turbo” 這個或是其他類似 的選項打開都有可能會造成一些不正常的現象。一個解決的方法是把 BIOS 設回預設值,不過在這之前記得先記下目前的設定!

  5. 供給主機板的電力不乾淨或是不足。試著把系統內沒有用到的 I/O 卡.硬碟或是 CDROM 暫時拆掉或是拔掉電源線,看看你的電源 供應器是不是能夠在小一點的負荷下正常工作。不然就是換上另一 個新的電源供應器,最好是瓦數高一點的(打個比方來說,如果原 先的電源供應器是 250 瓦的,那麼就換上 300 瓦的試試)。

請順便參閱 SIG11 FAQ(連結在下面),雖然它是站在 Linux 的角 度寫的,可是裡面對這些問題有許多很棒的解說。它裡面也有討論為什麼 有問題的記憶體能通過軟體或硬體的測試的原因。

最後,如果上面這些原因都排除了,那麼有可能是遇到了 FreeBSD �的一隻臭蟲,請參閱指示做一個問題回報。

這兒有一個更詳細的 FAQ - the SIG11 problem FAQ

5.8. 當機時出現:“Fatal trap 12: page fault in kernel mode” ,或是 “panic:” 以及一堆錯誤訊息,該怎麼辦?

FreeBSD 的開發者對於這些錯誤訊息相當的有興趣,但是他們需要 更詳細的一些細節。請把您的當機的訊息全部複製下來,接著查閱 FAQ � kernel panics 這節,依說明編譯一個含除錯碼的 kernel,以取得函式 呼叫順序(backtrace)。這個聽起來很難,但實際上並不需要任何程式 設計的能力,您只需要依照指示做即可。

5.9. 為什麼當我開機時,螢幕變黑,且不停閃動?

這個問題,已知是由 ATI Mach 64 顯示卡所引起的。因為這塊卡 使用到 2e8 這個位址,而這與第四個序列埠 (serial port)所使用的位址相同。而在