This is the Chinese FAQ.

Some part have not finish yet.
This commit is contained in:
Vanilla I. Shu 1999-01-30 23:20:34 +00:00
parent 7401d9bca9
commit 80b2078094
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=4154
34 changed files with 11928 additions and 0 deletions

69
zh/FAQ/FAQ.sgml Normal file
View file

@ -0,0 +1,69 @@
<!-- $Id: FAQ.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by -->
<!-- English Version: 1.101 -->
<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [
<!ENTITY % includes SYSTEM "includes.sgml"> %includes;
<!ENTITY preface SYSTEM "preface.sgml">
<!ENTITY install SYSTEM "install.sgml">
<!ENTITY hardware SYSTEM "hardware.sgml">
<!ENTITY troubleshoot SYSTEM "troubleshoot.sgml">
<!ENTITY commercial SYSTEM "commercial.sgml">
<!ENTITY applications SYSTEM "applications.sgml">
<!ENTITY kernelconfig SYSTEM "kernelconfig.sgml">
<!ENTITY admin SYSTEM "admin.sgml">
<!ENTITY x SYSTEM "x.sgml">
<!ENTITY network SYSTEM "network.sgml">
<!ENTITY serial SYSTEM "serial.sgml">
<!ENTITY misc SYSTEM "misc.sgml">
<!ENTITY hackers SYSTEM "hackers.sgml">
<!ENTITY acknowledgments SYSTEM "acknowledgments.sgml">
]>
<article>
<title>Frequently Asked Questions for FreeBSD 2.X</title>
<author>
<name>The FreeBSD Documentation Project</name>
</author>
<date>$Date: 1999-01-30 23:20:34 $</date>
<abstract>
This is the FAQ for FreeBSD systems version 2.X All entries are
assumed to be relevant to FreeBSD 2.0.5 and later, unless otherwise noted.
Any entries with a &lt;XXX&gt; are under construction.
If you are interested in helping with this project, send
email to the the FreeBSD documentation project mailing list <htmlurl
url="mailto:freebsd-doc@freebsd.org" name="<freebsd-doc@FreeBSD.ORG>">.
The latest version of this document is always available from the <url
url="http://www.FreeBSD.ORG/" name="FreeBSD World Wide Web server">.
It may also be downloaded in <url url="FAQ.latin1" name="plain text">,
<url url="FAQ.ps" name="postscript">,
<url url="ftp://ftp.freebsd.org/pub/FreeBSD/docs/FAQ.pdf" name="PDF">
or <url url="FAQ-html.tar.gz"
name="HTML"> with HTTP or gzip'd from the <url
url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs" name="FreeBSD FTP server">.
You may also want to <url url="http://www.freebsd.org/search/search.html" name="Search the FAQ">.
</abstract>
<toc>
&preface;
&install;
&hardware;
&troubleshoot;
&commercial;
&applications;
&kernelconfig;
&admin;
&x;
&network;
&serial;
&misc;
&hackers;
&acknowledgments;
</article>

12
zh/FAQ/Makefile Normal file
View file

@ -0,0 +1,12 @@
# $Id: Makefile,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $
.NOTPARALLEL:
SGMLOPTS=-links -e big5
DOC= FAQ
SRCS= FAQ.sgml acknowledgments.sgml admin.sgml applications.sgml
SRCS+= commercial.sgml hackers.sgml hardware.sgml install.sgml
SRCS+= kernelconfig.sgml misc.sgml network.sgml preface.sgml
SRCS+= serial.sgml troubleshoot.sgml x.sgml
.include <bsd.sgml.mk>

View file

@ -0,0 +1,43 @@
<!-- $Id: acknowledgments.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by vanilla@FreeBSD.ORG -->
<!-- English Version: 1.1 -->
<sect>
<heading>感謝<label id="acknowledgments"></heading>
<p>
<verb>
假如您在這份 FAQ 中找到錯誤的地方, 或是您想增加些甚麼,
請寫封信到 <FAQ@FreeBSD.ORG>. 我們非常感謝您的建議,
因為您的建議讓這份文件變得更好!
FreeBSD Core Team
</verb>
<descrip>
<tag/Jordan Hubbard/
不停的更新過時的 FAQ.
<tag/Doug White/
經常在 freebsd-questions 上回答問題
<tag/Joerg Wunsch/
經常在 Usenet 上回答問題
<tag/Garrett Wollman/
Networking and formatting
<tag/Jim Lowe/
Multicast information
<tag/Peter da Silva/
FreeBSD FAQ 這份文件的打字苦工
<tag/The FreeBSD Team/
Kvetching, moaning, submitting data
</descrip>
<p>對於那些曾經對這份 FAQ 提供幫助, 而我們沒提到的人們, 我們由衷的感謝您!
</sect>

810
zh/FAQ/admin.sgml Normal file
View file

@ -0,0 +1,810 @@
<!-- $Id: admin.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by foxfair@FreeBSD.ORG -->
<!-- English Version: 1.12 -->
<sect>
<heading>系統管理<label id="admin"></heading>
<sect1>
<heading>系統起始設定檔在哪?</heading>
<p>從 2.0.5R 到 2.2.1R,主要的設定檔是 <tt>/etc/sysconfig</tt>。
所有的選項都被定義在這個檔,而其他像 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?rc" name="/etc/rc">
和 <tt>/etc/netstart</tt> 只是引用它。
<p>觀察 <tt>/etc/sysconfig</tt> 這個檔並修正其值以適合你的系統。
這個檔用註解填滿以表示何處該放置什麼設定。
<p>在 2.2.1 和 3.0 以後,<tt>/etc/sysconfig</tt> 更名為一個更容
易描述的檔名叫 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">
,並且語法進化成只剩一個位元。<tt>/etc/netstart</tt> 亦更名為
<tt>/etc/rc.network</tt> 因此所有的檔案都可以用 <tt><htmlurl
url="http://www.freebsd.org/cgi/man.cgi?cp" name="cp"> /usr/src/etc/rc*
/etc</tt> 來拷貝。
<p><tt>/etc/rc.local</tt> 出現並可以用來啟動額外的本地服務像是
<htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^inn" name="INN">
或某些個人選項。
<p><tt>/etc/rc.serial</tt> 用來初始化序列埠(像是鎖住埠的特性等)。
<p><tt>/etc/rc.i386</tt> 是 Intel 特殊的設定,像是 iBCS2 模擬或是 PC
系統主控台設定。
<p>由 2.1.0R 開始,你也可以在 <tt>/etc/sysconfig</tt> (或
<tt>/etc/rc.conf</tt>) 裡指定目錄擁有"本地"起始檔:
<verb>
# Location of local startup files.
local_startup=/usr/local/etc/rc.local.d
</verb>
<p>每個以 <tt/.sh/ 結尾的檔將以字母順序被執行。
<p>假如你想確保某個執行順序又不想改所有的檔名,你可以使用一個簡單
的架構如下,利用事先安排到每個檔名前的數字來確保順序:
<verb>
10news.sh
15httpd.sh
20ssh.sh
</verb>
<p>這可能看起來有點醜(或類似 SysV :-)) 但是它提供一個簡單而規律的
架構讓本地加入的套件不須編輯 <tt>/etc/rc.local</tt> 就能重新排
序。許多的 ports/packages 假設 <tt>/usr/local/etc/rc.d</tt> 是
本地起始的目錄。
<sect1>
<heading>我該如何簡單地加入使用者﹖</heading>
<p>使用 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?adduser"
name="adduser"> 指令。
<p>另外也有個套件叫 ``<tt/new-account/'' 由 Ollivier Robert 以
Perl 寫出。可向 <tt>&lt;roberto@FreeBSD.ORG&gt;</tt> 詢問它。
目前正在發展階段。
<p>要再次移除使用者,使用 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?rmuser" name="rmuser"> 指令。
<sect1>
<heading>我該怎麼把新硬碟加入 FreeBSD 系統中﹖</heading>
<p>察看 <url url="../tutorials/diskformat/" name="www.freebsd.org">
的磁碟格式化指導文件。
<sect1>
<heading>我有一個新的可移除裝置,我該怎麼使用﹖</heading>
<p>可移除裝置無論是 ZIP 或 EZ(或甚至是軟碟機,如果你要這樣使用
它),或是一個新的硬碟,只要是安裝並由系統重組,而你有磁片匣
/軟碟片/或其他東西可以插入,那這些裝置似乎都是類似功能的東
西。
<p><label id="disklabel">(本節主要由 <url
url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html"
name="Mark Mayo's ZIP FAQ"> 引入)
<p>假如是 ZIP 或軟碟機,你已經在上面有 DOS 檔案系統,可以使用
像這樣的命令:
<verb>
mount -t msdos /dev/fd0c /floppy
</verb>
<p>如果只是軟碟機,那就這樣:
<verb>
mount -t msdos /dev/sd2s4 /zip
</verb>
<p>對 ZIP 磁片來說是使用出廠預設值。
<p>其他磁片,用 <tt/fdisk/ 或 <tt>/stand/sysinstall</tt> 察看
如何配置。
<p>接下來這個範例是 ZIP 裝在 sd2第三個 SCSI 磁碟。
<p>不像軟碟機,或一個你計畫跟其他人分享使用的可移除裝置,用
BSD 檔案系統貫穿它可能是一個比較好的主意。你將擁有長檔名支援
,至少兩倍以上的效率增進,更高的穩定度。首先,你需要重新製作
DOS 層的分割區/檔案系統。你可以使用 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?fdisk" name="fdisk"> 或
<tt>/stand/sysinstall</tt>,或對一個你不想支援多重作業系統的
小磁碟,只要把它劃分成整個 FAT 分割表(slices)並用以下 BSD 分
割法:
<verb>
dd if=/dev/zero of=/dev/rsd2 count=2
disklabel -Brw sd2 auto
</verb>
<p>你可以使用 disklabel 或 <tt>/stand/sysinstall</tt> 去建立多重
BSD 分割區。無疑的如果你正在硬碟機上增加置換空間(swap space)時
你就需要這麼做,但是在可移除裝置如 ZIP 上這是無意義的。
<p>最後,建立一個新的檔案系統。在 ZIP 裝置上是使用整個磁碟:
<verb>
newfs /dev/rsd2c
</verb>
<p>並且把它掛上(mount)
<verb>
mount /dev/sd2c /zip
</verb>
<p>在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fstab"
name="/etc/fstab"> 加上下面這一行可能是一個好主意,你以後就只
要打"mount /zip" :
<verb>
/dev/sd2c /zip ffs rw,noauto 0 0
</verb>
<sect1>
<heading>我該怎麼掛上次要的 DOS 分割區﹖</heading>
<p>次要 DOS 分割區是在所有主要分割區之後被找到,舉例,如果你有一個
"E" 分割區在第二個 SCSI 裝置的第二個 DOS 分割區,你需要在 /dev 下
建立 "slice 5" 的特殊檔案,然後掛上 /dev/sd1s5
<verb>
# cd /dev
# ./MAKEDEV sd1s5
# mount -t msdos /dev/sd1s5 /dos/e
</verb>
<sect1>
<heading>我可以在 FreeBSD 下掛上其他異質性檔案系統嗎﹖</heading>
<p><bf/ Digital UNIX/ UFS 光碟機可以直接掛在 FreeBSD 上。從 Digital
UNIX 和其他支援 UFS 格式的系統掛上磁碟分割區應該更複雜,主要細節
是依賴作業系統的磁碟分割法。
<p><bf/ Linux/: 2.2 及以後的版本支援 <bf/ext2fs/ 分割區,請查閱
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount_ext2fs"
name="mount_ext2fs"> 有更多資訊。
<p>提供任何這個主題的其他資訊將被重視。
<sect1>
<heading>我該如何使用 NT loader 來啟動 FreeBSD﹖</heading>
<p>最普遍的想法是把你的 native FreeBSD root 分割區
的第一個磁區拷貝到 DOS/NT 分割區裡的一個檔案內。假設
你命名它:<tt>c:&bsol;bootsect.bsd</tt>
(由 <tt>c:&bsol;bootsect.dos</tt> 授意而來),接著你可以編輯
<tt>c:&bsol;boot.ini</tt> 檔案內容如下:
<verb>
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"
</verb>
<p>此程序假設 DOSNTFreeBSD或其他作業系統已經被安裝在
<bf/同一個/ 磁碟的各自分割區。本例中我的 DOS &amp; NT 是在第一
個分割區而 FreeBSD 在第二個。我也把 FreeBSD 安裝成由 native
partition 啟動,<bf/而不是/ 從磁碟的 MBR。
<p>掛上一個 DOS 格式化的軟碟(假如你已經轉換到 NTFS或 FAT 分割區
到 <tt>/mnt</tt>
<verb>
dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1
</verb>
<p>重新開機進入 DOS 或 NT。NTFS 使用者把 <tt/bootsect.bsd/ 以及/或
<tt/bootsect.lnx/ 從軟碟拷貝到 <tt/C:&bsol;/。修改 <tt/boot.ini/
的屬性(存取許可)
<verb>
attrib -s -r c:\boot.ini
</verb>
<p>編輯並從 <tt/boot.ini/ 的範例上加入相關適當的項目,再把屬性回復
<verb>
attrib -r -s c:\boot.ini
</verb>
<p>如果 FreeBSD 是由 MBR 啟動,在你重新設定從哪個原生分割區啟動後
用 DOS 的的 ``<tt/fdisk/'' 命令回復它:
<sect1>
<heading>
我該怎麼用 LILO 啟動 FreeBSD 和 Linux﹖
</heading>
<p>如果你在同一個磁碟機裡有 FreeBSD 和 Linux只要跟隨 LILO 的安
裝指令,從一個非 Linux 作業系統啟動。簡略說明如下:
<p>啟動 Linux並在 <tt>/etc/lilo.conf</tt> 中加入以下幾行:
<verb>
other=/dev/hda2
table=/dev/hda
label=FreeBSD
</verb>
(上面是假設你的 FreeBSD slice 在 Linux 是 <tt>/dev/hda2</tt>;請
配合自己的設定)。然後,用 root 執行 <tt>lilo</tt> 應該就完成了。
<p>假如 FreeBSD 在另外一個磁碟,你必須在 LILO 選項中加入
``<tt>loader=/boot/chain.b</tt>'',舉例:
<verb>
other=/dev/sdb4
table=/dev/sdb
loader=/boot/chain.b
label=FreeBSD
</verb>
<p>某些情形你必須指定 BIOS 磁碟代號給 FreeBSD 啟動載入程式以能從第
二磁碟成功的啟動。舉例,假如你的 FreeBSD SCSI 磁碟在 BIOS 中偵測
是 BIOS disk 1那在 FreeBSD 啟動載入程式的提示號出現時你必須指
定:
<verb>
Boot: 1:sd(0,a)/kernel
</verb>
<p>在 FreeBSD 2.2.5 和之後的版本,你可以設定 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?boot(8)" name="boot(8)">
這樣每次啟動時就會自動幫你執行。
<p><htmlurl url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html"
name="Linux+FreeBSD mini-HOWTO"> 是 FreeBSD 和 Linux 共用操作的良好
參考文件。
<sect1>
<heading>
我怎麼使用 BootEasy 來啟動 FreeBSD 和 Linux﹖
</heading>
<p>在你的 Linux 啟動分割區安裝 LILO 取代主要啟動資料(Master Boot
Record)。接著你可以從 BootEasy 啟動 LILO。
<p>假如你正在執行 Windows-95 和 Linux這是一個建議方法要更簡單的
從 Linux 再次啟動在於你是否應該重新安裝 Windows95這是一個善妒
的作業系統,它壓迫不讓其他作業系統存在於主要啟動記錄內)。
<sect1>
<heading>
一個所謂``危險奉獻''的磁碟有害嗎﹖
</heading>
<p><label id="dedicate">安裝程序允許你選擇兩種不同的方法來分割你的
磁碟機。內定方法是在同一台機器上和其他作業系統可以相容,但是
使用 fdisk table entries(FreeBSD 裡稱之為``slices'')FreeBSD
的 slice 就是使用整個自己的分割區。可供選擇的是,你可以選擇安裝
啟動選擇器(boot-selector) 在磁碟機的數個可能作業系統上來回切換。
<p>現在,這是某些常見情形,人們只有 PC 的使用背景。更多本來曾使用
Unix 又想把機器設定只執行 FreeBSD 的人,大多會用傳統 Unix 的方
法讓一個作業系統佔據整個磁碟,從最開頭的第一個磁區到最後一個。
一個真實的 fdisk table 並在這個情形中並沒有實質功用,機器上一天
24 小時,每週七天無時不刻地都在執行 FreeBSD甚至沒有啟動其他作
業系統。因此,如果你在 sysinstall 的 fdsik 編輯器裡選擇
``A)ll FreeBSD'',並用 ``No'' 回答下一個問題,你就是在這種模式中
。值得注意的是這代表 BSD bootstrap 也由這台磁碟機的 MBR 所產生,
因此沒有留下空間給其他像是啟動管理員的程式。不要試著去安裝它,不
然你會把 BSD bootsrtap 弄壞了。
<p>因此為何叫它``危險的''﹖一個處於這種模式的磁碟機不包含將被正
常 PC 公用程式視為有效的 fdisk table。依循它們被設計的模式
要它們在這樣一個磁碟機中一旦被觸及可能就會產生錯誤的提示,或更
糟糕的,可能未經提示或通知你就把 FreeBSD bootstrap 弄壞。一些在
PC 上廣泛使用的作業系統就有這種 ``使用者不友善性'' 的存在(當然
,它們稱之為``使用者的友善性'')。至少已知在 HP Netservers 上的
Award BIOS(它並不是唯一的特例)就是會忽略任何它認為沒有有效
fdisk 列表的硬碟。這導致它啟動時,簡略的忽略過這樣一個磁碟裝置,
切換到軟碟機,然後只是跟你吐著``讀取錯誤''的訊息。很讓人印象深
刻吧﹖或許他們也叫這為``使用者友善性'',誰知道﹖
<p>這種模式的好處是FreeBSD 擁有整個磁碟,不需要因為 1980 年代
簡略的分割模式強迫一些人造而現在看起來無意義的限制在這些分割該
怎麼被完成,浪費好幾個虛擬的``磁軌''。這些限制時常導致可能變成
PC 的 OS 安裝過程中最大的頭痛,幾何學錯誤的搭配這兩個差異的爭
論結果,是在 fdisk 列表中儲存分割資訊時過剩的方法。請查閱
<ref id="missing_os" name="Missing Operating System">。
在``完全奉獻''的模式下BSD bootstrap 從磁區 0 開始,這是唯一
能轉換同一個 C/H/S 值的磁區,不管你的 BIOS 如何``轉換''你的磁
碟。因此,你也可以在系統/控制器之間以一種不同的轉換架構置換磁
碟,而不須承擔失敗後磁碟機再也不會啟動的風險。
<p>要把``危險奉獻''的磁碟回復到正常 PC 使用,基本上有兩個選擇。
第一個是你把足夠的 NULL 位元組寫入 MBR 確保任何隨後的安裝程
式相信這只是一個空白的磁碟。舉例來說你可以這樣做:
<verb>
dd if=/dev/zero of=/dev/rsd0 count=15
</verb>
<p>或是採用另外一個,非正式的 DOS ``特色''
<verb>
fdisk /mbr
</verb>
<p>這將會安裝一個全新的主要啟動記錄,因此會破壞 BSD bootstrap。
<sect1>
<heading>我如何能加入更多的置換空間﹖</heading>
<p>最好的方法是增加你置換分割區的大小,或利用這個方便理由的好處去
增加另一個硬碟。
<p>在分散的磁碟上增加置換空間會比單純地在同一個磁碟加入置換空間
讓效率來的快一點。舉一個例子來說,如果你正在一個磁碟裡編譯來
源程式,而置換空間在另一個磁碟,這會比置換空間跟編譯程式都在
同一個磁碟時來得快。這對 SCSI 磁碟機特別正確。
<p>IDE 磁碟並不允許同時在同一通道理存取兩個裝置FreeBSD 不支援
mode 4因此所有的 IDE 磁碟 I/O 是``可程式化的'')。然而我仍
會建議你把置換空間放在分別的磁碟。磁碟機這麼便宜,實在沒什麼
好擔心的。
<p>把你的置換檔放在 NFS 實在是一個很爛的主意,除非你正在一個非常
快速的網路環境下執行,還要有一個很好的伺服器。
<p>這裡有個範例是用 64MB vn-swap (<tt>/usr/swap0</tt>,當然你能用
任何你想用的名字)。
<p>確定你的核心程式建立時有包含以下這行:
<verb>
pseudo-device vn 1 #Vnode driver (turns a file into a device)
</verb>
<p>在你的設定檔中。GENERIC 這個核心已經包含這項了。
<enum>
<item>建立一個 vn-device
<verb>
cd /dev
sh ./MAKEDEV vn0
</verb>
<item>建立一個置換檔 (<tt>/usr/swap0</tt>)
<verb>
dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
</verb>
<item>在 <tt>/etc/rc.conf</tt> 中啟動置換檔
<verb>
swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.
</verb>
<item>重新開機。
</enum>
<p>要馬上啟動置換檔,鍵入:
<verb>
vnconfig -ce /dev/vn0c /usr/swap0 swap
</verb>
<sect1>
<heading>我不會設定我的印表機。</heading>
<p>請參閱 Handbook 裡有關列印的部份。這應該能解決你大部分的問題,請看
<url url="../handbook/printing.html" name="Handbook entry on printing.">
<sect1>
<heading>我系統上的鍵盤配置錯了。</heading>
<p>kbdcontrol 程式有一個選項可以讀取鍵盤配置檔案。在
<tt>/usr/share/syscons/keymaps</tt> 有一些配置檔。選擇一個跟你的
相關的並讀取它。
<verb>
kbdcontrol -l uk.iso
</verb>
<p> <tt>/usr/share/syscons/keymaps</tt> 和 <tt/.kbd/ 延展集兩個都由
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?kbdcontrol"
name="kbdcontrol"> 所斷定。
<p>可以從 <tt>/etc/sysconfig</tt> (或 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">)
來設定,請看此檔裡適合的註解。
<p>在 2.0.5R 及其之後的版本,所有跟文字字型,鍵盤對應相關的設定都在
<tt>/usr/share/examples/syscons</tt>。
<p>以下是目前支援的對應設定:
<itemize>
<!-- generate by `kbdmap -p' -->
<item>Belgian ISO-8859-1
<item>Brazilian 275 keyboard Codepage 850
<item>Brazilian 275 keyboard ISO-8859-1
<item>Danish Codepage 865
<item>Danish ISO-8859-1
<item>French ISO-8859-1
<item>German Codepage 850
<item>German ISO-8859-1
<item>Italian ISO-8859-1
<item>Japanese 106
<item>Japanese 106x
<item>Latin American
<item>Norwegian ISO-8859-1
<item>Polish ISO-8859-2 (programmer's)
<item>Russian Codepage 866 (alternative)
<item>Russian koi8-r (shift)
<item>Russian koi8-r
<item>Spanish ISO-8859-1
<item>Swedish Codepage 850
<item>Swedish ISO-8859-1
<item>Swiss-German ISO-8859-1
<item>United Kingdom Codepage 850
<item>United Kingdom ISO-8859-1
<item>United States of America ISO-8859-1
<item>United States of America dvorak
<item>United States of America dvorakx
</itemize>
<sect1>
<heading>我無法讓 user quotas 正常工作。</heading>
<p>
<enum>
<item>不要在 '/' 打開 quotas
<item>把 quotas 檔放在它必須強迫置入的檔案系統內,舉例:
<verb>
FS QUOTA FILE
/usr /usr/admin/quotas
/home /home/admin/quotas
...
</verb>
</enum>
<sect1>
<heading>我的 ccd 有何不妥﹖</heading>
<p>這種情形的徵兆是:
<verb>
# ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format
#
</verb>
<p>通常這會發生在你嘗試要連結 `c' 分割區,這內定的型別是 ``無法使用的''
。ccd 磁碟需要的基礎分割區型別為 FS_BSDFFS編輯你要試著連結的磁碟
標記並更改分割區的型別為`4.2BSD'。
<sect1>
<heading>為何我不能編輯我 ccd 的磁碟標記﹖</heading>
<p>這種情形的徵兆是:
<verb>
# disklabel ccd0
(這裡印出某些明顯的資料,所以試著編輯它)
# disklabel -e ccd0
(編輯,儲存,然後離開)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial label
#
</verb>
<p>這是因為由 ccd 傳回的磁碟標記事實上是一個``假的''而沒有真正在磁碟
上。你可以把它完全寫入來解決這個問題,像這樣:
<verb>
# disklabel ccd0 > /tmp/disklabel.tmp
# disklabel -Rr ccd0 /tmp/disklabel.tmp
# disklabel -e ccd0
(this will work now)
</verb>
<sect1>
<heading>FreeBSD 支援 System V IPC 格式指令集?</heading>
<p>是的FreeBSD 支援 System V-格式 IPC。這包括共享記憶體訊息跟
信號。你需要在你的核心設定檔內加入下列幾行以啟動它們。
<verb>
options SYSVSHM
options "SHMMAXPGS=64" # 256Kb of sharable memory
options SYSVSEM # enable for semaphores
options SYSVMSG # enable for messaging
</verb>
<p>重新編譯並安裝。
<p><bf/注意:/ 如果你要執行 GIMP 你可能需要增加 SHMMAXPKGS 到某些荒
謬的數目像是 4096(16M!)256Kb 對 X11R6 共享記憶體來說已經充分足
夠了。
<sect1>
<heading>
我該如何使用 sendmail 透過 UUCP 來遞送郵件?<label id="uucpmail">
</heading>
<p>跟隨 FreeBSD 套裝而來的 sendmail 設定是適合那些直接連上網際網路
的的站台。那些想透過 UUCP 交換它們郵件的站台必須另外安裝 sendmil
的設定檔案。
<p>手動修改 <tt>/etc/sendmail.cf</tt> 是絕對必要的。第 8 版的
sendmail 提供一個全新的入口以透過一些像 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?m4" name="m4"> 的處理就能
產生設定檔,這事實上是一個高層概念等級的技巧性設定。你應該可以在以
下檔案裡使用它:
<verb>
/usr/src/usr.sbin/sendmail/cf
</verb>
<p>假如你不是用完整的來源程式安裝系統,那麼 sendmail 設定項目可能已
經分散成好幾個來源分布檔在等著你,假設你已經掛上光碟機,做以下動作:
<verb>
cd /usr/src
tar -xvzf /cdrom/dists/src/ssmailcf.aa
</verb>
<p>別驚慌,這只有數十萬個位元組的大小。在 <tt>cf</tt> 目錄裡的
<tt>README</tt> 可以提供一個 m4 設定法的基本介紹。
<p>以 UUCP 遞送來說,建議你最好使用 <em>mailertable</em> 特點。
建構一個資料庫讓 sendmail 可以使用它自己的路徑決策。
<p>首先,你必須建立自己的 <tt>.mc</tt> 檔。
<tt>/usr/src/usr.sbin/sendmail/cf/cf</tt> 目錄是這些檔案的家。
首先,已經有好幾個範例檔,假設你已經命名自己的檔叫
<tt>foo.mc</tt>,你要做的只是把它轉換成一個有效的
<tt>sendmail.cf</tt>
<verb>
cd /usr/src/usr.sbin/sendmail/cf/cf
make foo.cf
cp foo.cf /etc/sendmail.cf
</verb>
<p>一個典型的 <tt>.mc</tt> 檔看起來可能像這樣:
<verb>
include(`../m4/cf.m4')
VERSIONID(`Your version number')
OSTYPE(bsd4.4)
FEATURE(nodns)
FEATURE(nocanonify)
FEATURE(mailertable)
define(`UUCP_RELAY', your.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw your.alias.host.name
Cw youruucpnodename.UUCP
</verb>
<p> <em>nodns</em> 和 <em>nocanonify</em> 特性將避免任何在遞送郵件
時會用到 DNS 的機會。<em>UUCP_RELAY</em> 項目的出現理由很奇怪,
就不要為何了。簡單的放入一個網際網路上可以處理 .UUCP 虛擬網域位址
的主機名稱;通常,你只需要在這裡填入你 ISP 的信件回覆處
(mail replay)。
<p>你已經做到這裡了,你還需要這個叫 <tt>/etc/mailertable</tt> 的檔案
。一個典型的範例如下:
<verb>
#
# makemap hash /etc/mailertable.db < /etc/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:sax
</verb>
<p>如你所見,這是某個活生生檔案裡的一部份。首三行處理網域定址信件
不應該被送出到內定路徑,而由某些 UUCP 鄰居(UUCP neighbor)取代,
這是為了``縮短''遞送的路徑。下一行處理到本地乙太網路網域的信件
讓它可以使用 SMTP。最後UUCP 鄰居提到 .UUCP 虛擬網域的記載,
允許一個``uucp-neighbor!recipient''推翻內定規則。最後一行則以一
個單獨的句點做結束,以 UUCP 遞送到提供當你全世界性郵件閘門的
UUCP 鄰居。所有在 <tt>uucp-dom:</tt> 關鍵字裡的節點名稱必須都是
有效的 UUCP 鄰居,你可以用 <tt>uuname</tt> 命令去確認。
<p>提醒你這個檔案在使用前必須被轉換成 DBM 資料庫檔案,最好在
mailertable 最上面用註解寫出命令列來完成這個工作。當你每次更換你
的 mailertable 後你總是需要執行這個命令。
<p>最後提示:如果你不確定某些特定的信件路徑可用,記得把 <tt>-bt</tt>
選項加到 sendmail。這會將 sendmail 啟動在 <em>address test mode</em>
;只要按下 ``0'',接著輸入你希望測試的信件路徑位址。最後一行告訴你使
用內部的信件代理程式,代理程式的會通知目的主機,以及(可能轉換的)位址
。要離開此模式請按 Control-D。
<verb>
j@uriah 191% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 0 foo@interface-business.de
rewrite: ruleset 0 input: foo @ interface-business . de
...
rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \
< @ interface-business . de >
> ^D
j@uriah 192%
</verb>
<sect1>
<heading>
當我用撥接連上網路時該怎麼設定信件遞送?<label id="ispmail">
</heading>
<p>如果你已經有一個固定的 IP 數字,你不需要調整任何內定值。設好
你要指定的網路名稱,其他的 sendmail 都會幫你做完。
<p>如果你拿到的是動態配置的 IP 數字而使用撥接 <bf/ppp/ 連接到網
際網路,你可能已經在你的 ISP 信件主機上有一個信箱。假設你的
ISP 網域是 <tt/myISP.com/,你的使用者名稱是 <tt/user/。亦假
設你稱自己的主機名稱是 <tt/bsd.home/ 而你的 ISP 告訴你可以使用
<tt/relay.myISP.com/ 當作信件回覆處。
<p>為了從你的信箱接收信件,你將需要安裝取信程式以便從信箱取回信件。
<bf/Fetchmail/ 是一個不錯的選擇因為它支援許多不同的通訊協定,通常
你的 ISP 會提供 POP3。如果你選擇使用 user-ppp你可以在連線到網路
成功後自動抓取你的信件,只要在 <tt>/etc/ppp/ppp.linkup</tt> 裡面
設定以下幾項:
<verb>
MYADDR:
!bg su user -c fetchmail
</verb>
<p>我假設你在 <tt/bsd.home/ 機器上有一個 <tt/user/ 的帳號。在
<tt/bsd.home/ 機器上 <tt/user/ 的家目錄裡建立一個 <tt/.fetchmailrc/
的檔案:
<verb>
poll myISP.com protocol pop3 fetchall pass MySecret;
</verb>
<p>無須贅言,這個檔除了 <tt/user/ 外不應該被任何人讀取,因為它包含
了 <tt/MySecret/ 這個密碼。
<p>為了在寄信時有正確的抬頭 <bf/from:/ ,你必須告訴 sendmail 使用
<tt/user@myISP.com/ 而非 <tt/user@bsd.home/。你可能會希望告訴
sendmail 從 <tt/relay.myISP.com/ 送出所有信件,加快信件傳送。
<p>以下的 <tt/.mc/ 檔應能滿足你的要求:
<verb>
VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`myISP.com')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(SMART_HOST, `relay.myISP.com')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnl
</verb>
<p>如果轉換這個 <tt/.mc/ 檔案到 <tt/sendmail.cf/ 檔的詳細細節請
參考上一節。另外,在更新 sendmail.cf 以後不要忘記重新啟動
sendmail。
<sect1>
<heading>咦!我忘記 root 的密碼了!</heading>
<p>不要驚慌!只要重新啟動系統,在 boot: 提示號打 -s 進入單使用者模式。
在問要使用哪個 shell 時,按下 ENTER。你會看到一個 # 的提示號,輸入
<tt>mount -u /</tt> 以重新架設你的根檔案系統可供讀/寫。執行
<tt/passwd root/ 以更換 root 密碼,然後執行 <tt/exit/ 繼續啟動。
<sect1>
<heading>我該怎麼保留讓 Control-Alt-Delete 不能重新啟動系統?
</heading>
<p>修改你正在使用的主控台鍵盤對應,並且把所有 <tt/boot/ 的關鍵字用
<tt/nop/ 取代。內定的鍵盤對應是在
<tt>/usr/share/syscons/keymaps/us.iso.kbd</tt>。你可能需要明白的
吩咐 <tt>/etc/rc.conf</tt> 去讀取這個鍵盤對應以確保更動生效。當
然如果你正在用適合你國籍的鍵盤對應,你應該編輯那一個。
<sect1>
<heading>我該怎麼把 DOS 文字檔案重新格式化成 UNIX 的?</heading>
<p>簡單地使用這個 perl 命令:
<verb>
perl -i.bak -pe 's/\r\n/\n/g' file ...
</verb>
<p>file 就是要處理的檔案。這個修改是在內部完成,原始的檔案會儲存成
副檔名為 .bak 的檔案。
<sect1>
<heading>我該怎麼用名稱砍掉 process</heading>
<p>使用 <url url="/cgi/cvsweb.cgi/man.cgi?killall" name="killall(1)">。
<sect1>
<heading>為何在 root 的 ACL 時 su 好像有問題?
</heading>
<p>這個錯誤是因為 Kerberos 分散認證系統。這個問題並不是很嚴重但是令人
厭煩。你可以用 -K 選項去執行 su或是像下個問題所描述的移除
Kerberos。
<sect1>
<heading>我該怎麼移除 Kerberos</handing>
<p>要從系統裡移除 Kerberos重裝你正在執行的 release 版本內 bin 分類
。如果你有 CDROM你可以掛上 cd(假設在 /cdrom)並執行:
<verb>
cd /cdrom/bin
./install.sh
</verb>
<sect1>
<heading>我該怎麼增加系統的虛擬終端機?</heading>
<p>如果你有許多 telnetsshX 或是 screen 使用者,你或許會用完虛擬
終端機,這能教你怎麼加更多:
<enum>
<item>建立並安裝一個新的核心程式並且加入這行到設定檔:
<verb>
pseudo-device pty 256
</verb>
<item>執行這個命令:
<verb>
# cd /dev
# ./MAKEDEV pty{1,2,3,4,5,6,7}
</verb>
<p>會造出 256 個虛擬終端機的裝置節點。
<item>編輯 <tt>/etc/ttys</tt> 並加入符合 256 個終端機的行數。它們應
該符合已經存在單項的格式,舉例來說,它們看起來像:
<verb>
ttyqc none network
</verb>
<p>字母設計的順序是 <tt>tty[pqrsPQRS][0-9a-v]</tt>,使用正規表示式。
<item>用新的核心程式重新啟動電腦就可以了。
</enum>
</sect>

139
zh/FAQ/applications.sgml Normal file
View file

@ -0,0 +1,139 @@
<!-- $Id: applications.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by freebsd@FreeBSD.ORG -->
<!-- English Version: 1.18 -->
<sect>
<heading>User Applications<label id="applications"></heading>
<sect1>
<heading>嗯. 我要在哪找到我要的程式ㄟ?</heading>
<p>請看看 <url url="../ports/" name="the ports page"> 吧.
這邊有份已經 port 到 FreeBSD 的軟體列表. 目前有超過 1800 個軟體已經被
port 到 FreeBSD 上, 並且每天都在增加中. 所以有空就多看看這份列表,
不然你也可以訂閱 <tt/freebsd-announce/
<ref id="mailing" name="mailing list"> 這份 mailing list, 會有人將
每個星期最新的軟體列表貼在上面.
<p>大部份的 ports 應該都可以在 2.2, 3.0 跟 4.0 的系統上使用,
並且還有部份的 ports 可以在 2.1.x 的系統上運作.
每次當 FreeBSD release 時, 都會有一份 ports tree 被放在這一個
release cd 裡面的 <tt>ports/</tt> 目錄裡.
<p>We also support the concept of a ``package'', essentially no
more than a gzipped binary distribution with a little extra
intelligence embedded in it for doing whatever custom installation
work is required. A package can be installed and uninstalled
again easily without having to know the gory details of which
files it includes.
<p>Use the package installation menu in <tt>/stand/sysinstall</tt>
(under the post-configuration menu item) or invoke the
<em>pkg_add(1)</em> command on the specific package files you're
interested in installing. Package files can usually be identified by
their <em>.tgz</em> suffix and CDROM distribution people will have
a <tt>packages/All</tt> directory on their CD which contains such
files. They can also be downloaded over the net for various versions
of FreeBSD at the following locations:
<descrip>
<tag>for 2.2.7-release/2.2-stable</tag>
<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.7/"
name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.7/">
<tag>for 3.0-current</tag>
<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/"
name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/">
</descrip>
<p>or your nearest local mirror site.
<p>Note that all ports may not be available as packages since
new ones are constantly being added. It is always a good
idea to check back periodically to see which packages are available
at the <url url="ftp://ftp.freebsd.org/pub/FreeBSD/"
name="ftp.freebsd.org"> master site.
<sect1>
<heading>我可以在哪邊找到 libc.so.3.0?</heading>
<p>你可能在一台 2.1.x 的機器上, 跑著給 2.2/3.0 的軟體.
請再往上面一個章節看, 正確的取得給你機器用的 port/package.
<sect1>
<heading>
ghostscript 在我的 386/486SX 上有點問題ㄟ.<label id="emul">
</heading>
<p>你沒有浮點運算器, 對吧?.
你必須在你的 kernel 中加入數學運算模擬器, 你可以跟著下面的步驟做,
並在更改過你的 kernel 設定檔後, 重新編譯過一次.
<verb>
options GPL_MATH_EMULATE
</verb>
<p><bf/NOTE/ 當你加入上一行的同時, 你必須將 <tt/MATH&lowbar;EMULATE/
移除掉.
<sect1>
<heading>
當我執行 SCO/iBCS2 的程式時, 它掛在 <tt/socksys/.
</heading>
<p>你必須先修改 <tt>/etc/sysconfig</tt>
(or <htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)"
name="/etc/rc.conf">) 這檔案最後一個章節, 將下面所講到的變數
設成 <tt/YES/:
<verb>
# Set to YES if you want ibcs2 (SCO) emulation loaded at startup
ibcs2=NO
</verb>
<p>這會在開機時將 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?ibcs2" name="ibcs2">
這一個 kernel 模組載入.
<p>你還要將你的 /compat/ibcs2/dev 改成下面這樣:
<verb>
lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null
lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> socksys
-rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null
lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -> /dev/null
crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx
</verb>
<p>你只需要將 socksys 轉向到 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?null(4)" name="/dev/null">
去騙過 open &amp; close. 在 -current 裡面的 ibcs2 相關程式碼將會處
理這些東西. This is muck cleaner than the way it was done before.
假如你想要使用 <tt/spx/ 方面的程式, 在你的核心設定檔裡面加上
<tt/SPX&lowbar;HACK/ .
<sect1>
<heading>
我要如何在我的機器上設定 INN (Internet News)?
</heading>
<p>After installing the inn package or port, an excellent place to
<p>在你使用 package 或者是 port 安裝完 inn 之後,
<url url="http://www.cis.ohio-state.edu/~barr/INN.html"
name="Dave Barr's INN Page"> 是個非常好的開始, 你可以在那邊找到
INN 的 FAQ.
</sect1>
<sect1>
<heading>我該使用那個版本的 Microsoft FrontPage?
</heading>
<p>使用 Port 吧! 在 ports tree 中已經有一個包含 FrontPage 的 Apache 版本了.
</p>
</sect1>
</sect>

99
zh/FAQ/commercial.sgml Normal file
View file

@ -0,0 +1,99 @@
<!-- $Id: commercial.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by vanilla@FreeBSD.ORG -->
<!-- English version: 1.3 -->
<sect>
<heading>商業軟體<label id="commercial"></heading>
<p><bf/NOTE/ This section is still very sparse, though we're hoping, of
course, that companies will add to it! :) The FreeBSD group has no
financial interest in any of the companies listed here but simply
lists them as a public service (and feels that commercial interest
in FreeBSD can have very positive effects on FreeBSD's long-term
viability). We encourage commercial software vendors to send their
entries here for inclusion. See
<url url="../commercial/commercial.html" name="the Vendors page">
for a longer list.
<sect1>
<heading>我可以在哪邊找到給 FreeBSD 用的 Motif?</heading>
<p>聯絡 <ref id="xig" name="Xi Graphics"> , 他們提供了一個給 FreeBSD
用的 Motif 2.0 套件.
<p>在這套件中包括了:
<itemize>
<item>OSF/Motif manager, xmbind, panner, wsm.
<item>Development kit with uil, mrm, xm, xmcxx, include and Imake
files.
<item>Static and dynamic libraries.
<item>Demonstration applets.
<item>Preformatted man pages.
</itemize>
<p>在你跟他們訂購 Motif 時, 請一定註明你要的是 FreeBSD 的版本!
因為 <em>Xi Graphics</em> 也同時提供了 BSDI 跟 Linux 版本的 Motif.
目前發行的版本是放在四塊磁片中, 將來他們會將所有的東西都放到光碟裡,
就像他們所發行的 CDE 一樣.
<sect1>
<heading>我可以在哪邊找到給 FreeBSD 用的 CDE?</heading>
<p>聯絡 <ref id="xig" name="Xi Graphics"> , 他們提供了一個給 FreeBSD
用的 CDE 1.0.10 套件, 裡面包括了 Motif 1.2.5, 並且他們的 CDE 也可以在
Motif 2.0 下很正常的執行.
<p>CDE 是用光碟的方式發行, FreeBSD 跟 Linux 版本都一樣.
<sect1>
<heading>
那邊有要錢, 但是高效率的 X servers?<label id="xig">
</heading>
<p>如你所願, <url url="http://www.xig.com" name="Xi Graphics">
提供了 Accelerated-X 給 FreeBSD 跟其他 Intel based 的系統.
<p>這個高效率的 X Server 有非常簡單的設定方式, 並且支援了目前市面上
當紅的各大廠牌的顯示卡, 最重要的是, 它只給你 Binary.
它是用磁片的方式發行, FreeBSD 跟 Linux 版本都一樣.
<p>你可以在 FreeBSD 的原廠四片光碟中找到這個高效率 X Server 的 demo 版,
當然你也可以直接在網路上找到. <!-- 這段我有加東西 -->
<p>Xi Graphics 也有在賣 FreeBSD 用的 Motif 跟 CDE (往上面看看).
<descrip>
<tag/更多的資訊/
<url url="http://www.xig.com/" name="Xi Graphics WWW page">
<tag/或/ <url url="mailto:sales@xig.com" name="Sales"> or
<url url="mailto:support@xig.com" name="Support"> email addresses.
<tag/或/ phone (800) 946 7433 or +1 303 298-7478.
</descrip>
<sect1>
<heading>在 FreeBSD 上有任何的資料庫嗎?</heading>
<p>有! Conetic Software Systems 已經將他們的 C/base 跟 C/books
ports 到 FreeBSD 2.0.5(或更高版次)上, 而 Sleepycat Software 也在賣
一套有商業支援的資料庫函式庫.
<descrip>
<tag/For more information/
<url url="http://www.conetic.com/" name="Conetic Software Systems">
<tag/or mail/
<url url="mailto:info@conetic.com" name="Information E-mail address">,
<tag/and/
<url url="http://www.sleepycat.com/" name = "Sleepycat Software">.
</descrip>
</sect>

492
zh/FAQ/hackers.sgml Normal file
View file

@ -0,0 +1,492 @@
<!-- $Id: hackers.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by -->
<!-- English Version: 1.11 -->
<sect>
<heading>For serious FreeBSD hackers only<label id="hackers"></heading>
<sect1>
<heading>
What are SNAPs and RELEASEs?
</heading>
<p>There are currently three active/semi-active branches in the FreeBSD
<url url="http://www.freebsd.org/cgi/cvsweb.cgi" name="CVS Repository">:
<itemize>
<item><bf/RELENG_2_2/ AKA <bf/2.2-stable/ AKA <bf/"2.2 branch"/
<item><bf/RELENG_3/ AKA <bf/3.x-stable/ AKA <bf/"3.0 branch"/
<item><bf/HEAD/ AKA <bf/-current/ AKA <bf/4.0-current/
</itemize>
<p><bf/HEAD/ is not an actual branch tag, like the other two, it's
simply a symbolic constant for
<em/"the current, non-branched development stream"/ which we simply
refer to as <bf/-current/.
<p>Right now, <bf/-current/ is the 4.0 development stream and the
<bf/3.0-stable/ branch, <bf/RELENG_3/, forked off from
<bf/-current/ in Jan 1999.
<p>The <bf/2.2-stable/ branch, <bf/RELENG_2_2/, departed -current in
November 1996.
<p>The <bf/2.1-stable/ branch, <bf/RELENG_2_1_0/, departed -current in
September of 1994. This branch has been fully retired.
<sect1>
<heading>
How do I make my own custom release?<label id="custrel">
</heading>
<p>To make a release you need to do three things: First, you need to
be running a kernel with the <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?vn" name="vn"> driver configured
in. Add this to your kernel config file and build a new kernel:
<verb>
pseudo-device vn #Vnode driver (turns a file into a device)
</verb>
<p>Second, you have to have the whole CVS repository at hand.
To get this you can use <url url="../handbook/cvsup.html" name="CVSUP">
but in your supfile set the release name to cvs and remove any tag or
date fields:
<verb>
*default prefix=/home/ncvs
*default base=/a
*default host=cvsup.FreeBSD.org
*default release=cvs
*default delete compress use-rel-suffix
## Main Source Tree
src-all
src-eBones
src-secure
# Other stuff
ports-all
www
doc-all
</verb>
<p>Then run <tt/cvsup -g supfile/ to suck all the good bits onto your
box...
<p>Finally, you need a chunk of empty space to build into. Let's
say it's in <tt>/some/big/filesystem</tt>, and from the example
above you've got the CVS repository in <tt>/home/ncvs</tt>:
<verb>
setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs
cd /usr/src/release
make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release
</verb>
<p>An entire release will be built in
<tt>/some/big/filesystem/release</tt> and you will have a full FTP-type
installation in <tt>/some/big/filesystem/release/R/ftp</tt> when you're
done. If you want to build your SNAP along some other branch than
-current, you can also add <tt/RELEASETAG=SOMETAG/ to
the make release command line above, e.g. <tt/RELEASETAG=RELENG_2_2/
would build an up-to-the- minute 2.2-STABLE snapshot.
<sect1>
<heading>How do I create customized installation disks?</heading>
<p>The entire process of creating installation disks and source and
binary archives is automated by various targets in
<tt>/usr/src/release/Makefile</tt>. The information there should
be enough to get you started. However, it should be said that this
involves doing a ``make world'' and will therefore take up a lot of
time and disk space.
<sect1>
<heading>``make world'' clobbers my existing installed binaries.</heading>
<p>Yes, this is the general idea; as its name might suggest,
``make world'' rebuilds every system binary from scratch, so you can be
certain of having a clean and consistent environment at the end (which
is why it takes so long).
<p>If the environment variable <tt/DESTDIR/ is defined while running
``<tt/make world/'' or ``<tt/make install/'', the newly-created
binaries will be deposited in a directory tree identical to the
installed one, rooted at <tt>&dollar;&lcub;DESTDIR&rcub;</tt>.
Some random combination of shared libraries modifications and
program rebuilds can cause this to fail in ``<tt/make world/'',
however.
<sect1>
<heading>
When my system boots, it says ``(bus speed defaulted)''.
</heading>
<p>The Adaptec 1542 SCSI host adapters allow the user to configure
their bus access speed in software. Previous versions of the
1542 driver tried to determine the fastest usable speed and set
the adapter to that. We found that this breaks some users'
systems, so you now have to define the ``<tt/TUNE&lowbar;1542/'' kernel
configuration option in order to have this take place. Using it
on those systems where it works may make your disks run faster,
but on those systems where it doesn't, your data could be
corrupted.
<sect1>
<heading>
Can I follow current with limited Internet access?<label id="ctm">
</heading>
<p>Yes, you can do this <tt /without/ downloading the whole source tree
by using the <url url="../handbook/ctm.html" name="CTM facility.">
<sect1>
<heading>How did you split the distribution into 240k files?</heading>
<p>Newer BSD based systems have a ``<tt/-b/'' option to split that
allows them to split files on arbitrary byte boundaries.
<p>Here is an example from <tt>/usr/src/Makefile</tt>.
<verb>
bin-tarball:
(cd $&lcub;DISTDIR&rcub;; \
tar cf - . \
gzip --no-name -9 -c | \
split -b 240640 - \
$&lcub;RELEASEDIR&rcub;/tarballs/bindist/bin_tgz.)
</verb>
<sect1>
<heading>I've written a kernel extension, who do I send it to?</heading>
<p>Please take a look at <url url="../handbook/contrib.html"
name="The Handbook entry on how to submit code.">
<p>And thanks for the thought!
<sect1>
<heading>How are Plug N Play ISA cards detected and initialized?</heading>
<p>By: <url url="mailto:uhclem@nemesis.lonestar.org"
name="Frank Durda IV">
<p>In a nutshell, there a few I/O ports that all of the PnP boards
respond to when the host asks if anyone is out there. So when
the PnP probe routine starts, he asks if there are any PnP boards
present, and all the PnP boards respond with their model &num; to
a I/O read of the same port, so the probe routine gets a wired-OR
``yes'' to that question. At least one bit will be on in that
reply. Then the probe code is able to cause boards with board
model IDs (assigned by Microsoft/Intel) lower than X to go
``off-line''. It then looks to see if any boards are still
responding to the query. If the answer was ``<tt/0/'', then
there are no boards with IDs above X. Now probe asks if there
are any boards below ``X''. If so, probe knows there are boards
with a model numbers below X. Probe then asks for boards greater
than X-(limit/4) to go off-line. If repeats the query. By
repeating this semi-binary search of IDs-in-range enough times,
the probing code will eventually identify all PnP boards present
in a given machine with a number of iterations that is much lower
than what 2^64 would take.
<p>The IDs are two 32-bit fields (hence 2&circ;64) + 8 bit checksum.
The first 32 bits are a vendor identifier. They never come out
and say it, but it appears to be assumed that different types of
boards from the same vendor could have different 32-bit vendor
ids. The idea of needing 32 bits just for unique manufacturers
is a bit excessive.
<p>The lower 32 bits are a serial &num;, ethernet address, something
that makes this one board unique. The vendor must never produce
a second board that has the same lower 32 bits unless the upper
32 bits are also different. So you can have multiple boards of
the same type in the machine and the full 64 bits will still be
unique.
<p>The 32 bit groups can never be all zero. This allows the
wired-OR to show non-zero bits during the initial binary search.
<p>Once the system has identified all the board IDs present, it will
reactivate each board, one at a time (via the same I/O ports),
and find out what resources the given board needs, what interrupt
choices are available, etc. A scan is made over all the boards
to collect this information.
<p>This info is then combined with info from any ECU files on the
hard disk or wired into the MLB BIOS. The ECU and BIOS PnP
support for hardware on the MLB is usually synthetic, and the
peripherals don't really do genuine PnP. However by examining
the BIOS info plus the ECU info, the probe routines can cause the
devices that are PnP to avoid those devices the probe code cannot
relocate.
<p>Then the PnP devices are visited once more and given their I/O,
DMA, IRQ and Memory-map address assignments. The devices will
then appear at those locations and remain there until the next
reboot, although there is nothing that says you can't move them
around whenever you want.
<p>There is a lot of oversimplification above, but you should get
the general idea.
<p>Microsoft took over some of the primary printer status ports to
do PnP, on the logic that no boards decoded those addresses for
the opposing I/O cycles. I found a genuine IBM printer board
that did decode writes of the status port during the early PnP
proposal review period, but MS said ``tough''. So they do a
write to the printer status port for setting addresses, plus that
use that address + <tt/0x800/, and a third I/O port for reading
that can be located anywhere between <tt/0x200/ and <tt/0x3ff/.
<sect1>
<heading>Does FreeBSD support architectures other than the x86?</heading>
<p>Several groups of people have expressed interest in working on
multi-architecture ports for FreeBSD and the FreeBSD/AXP (ALPHA)
port is one such effort which has been quite successful, now
available in 3.0 SNAPshot release form at <url
url="ftp://ftp.freebsd.org/pub/FreeBSD/alpha/"
name="ftp://ftp.freebsd.org/pub/FreeBSD/alpha">. The ALPHA
port currently runs on a growing number of ALPHA machine
types, among them the AlphaStation, AXPpci, PC164, Miata and Multia
models. This port is not yet considered a full release and won't be
until a full compliment of system installation tools and a distribution
on CDROM installation media is available, including a reasonable
number of working ports and packages.
FreeBSD/AXP should be considered BETA quality software at this
time. For status information, please join the
<tt>&lt;freebsd-alpha@FreeBSD.ORG&gt;</tt><ref id="mailing"
name="mailing list">.
Interest has also been expressed in a port of FreeBSD to
the SPARC architecture, join the <tt>&lt;freebsd-sparc@FreeBSD.ORG&gt;
</tt><ref id="mailing" name="mailing list"> if you are interested
in joining that project. For general discussion on new architectures,
join the <tt>&lt;freebsd-platforms@FreeBSD.ORG&gt;</tt>
<ref id="mailing" name="mailing list">.
<sect1>
<heading>I need a major number for a device driver I've written.</heading>
<p>This depends on whether or not you plan on making the driver
publicly available. If you do, then please send us a copy of the
driver source code, plus the appropriate modifications to
<tt>files.i386</tt>, a sample configuration file entry, and the
appropriate <htmlurl url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV"
name="MAKEDEV"> code to create any special files your device uses. If
you do not, or are unable to because of licensing restrictions, then
character major number 32 and block major number 8 have been reserved
specifically for this purpose; please use them. In any case, we'd
appreciate hearing about your driver on
<tt>&lt;freebsd-hackers@FreeBSD.ORG&gt;</tt>.
<sect1>
<heading>Alternative layout policies for directories</heading>
<p>
In answer to the question of alternative layout policies for
directories, the scheme that is currently in use is unchanged
from what I wrote in 1983. I wrote that policy for the original
fast filesystem, and never revisited it. It works well at keeping
cylinder groups from filling up. As several of you have noted,
it works poorly for find. Most filesystems are created from
archives that were created by a depth first search (aka ftw).
These directories end up being striped across the cylinder groups
thus creating a worst possible senario for future depth first
searches. If one knew the total number of directories to be
created, the solution would be to create (total / fs_ncg) per
cylinder group before moving on. Obviously, one would have to
create some heuristic to guess at this number. Even using a
small fixed number like say 10 would make an order of magnitude
improvement. To differentiate restores from normal operation
(when the current algorithm is probably more sensible), you
could use the clustering of up to 10 if they were all done
within a ten second window. Anyway, my conclusion is that this
is an area ripe for experimentation.</p>
<p>Kirk McKusick, September 1998</p>
<sect1>
<heading>Making the most of a kernel panic</heading>
<p>
<em>[This section was extracted from a mail written by <url
url="mailto:wpaul@FreeBSD.ORG" name="Bill Paul"> on the
freebsd-current <ref id="mailing" name="mailing list"> by <url
url="mailto:des@FreeBSD.ORG" name="Dag-Erling Co&iuml;dan
Sm&oslash;rgrav">, who fixed a few typos and added the bracketed
comments]</em>
<p>
<verb>
From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
Subject: Re: the fs fun never stops
To: ben@rosengart.com
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
Cc: current@FreeBSD.ORG
</verb>
<p>
<em>[&lt;ben@rosengart.com&gt; posted the following panic
message]</em>
<verb>
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x40
> fault code = supervisor read, page not present
> instruction pointer = 0x8:0xf014a7e5
^^^^^^^^^^
> stack pointer = 0x10:0xf4ed6f24
> frame pointer = 0x10:0xf4ed6f28
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 80 (mount)
> interrupt mask =
> trap number = 12
> panic: page fault
</verb>
<p> [When] you see a message like this, it's not enough to just
reproduce it and send it in. The instruction pointer value that
I highlighted up there is important; unfortunately, it's also
configuration dependent. In other words, the value varies
depending on the exact kernel image that you're using. If you're
using a GENERIC kernel image from one of the snapshots, then
it's possible for somebody else to track down the offending
function, but if you're running a custom kernel then only
<em/you/ can tell us where the fault occured.
<p> What you should do is this:
<itemize>
<item>Write down the instruction pointer value. Note that the
<tt/0x8:/ part at the begining is not significant in this case:
it's the <tt/0xf0xxxxxx/ part that we want.
<item>When the system reboots, do the following:
<verb>
% nm /kernel.that.caused.the.panic | grep f0xxxxxx
</verb>
where <tt/f0xxxxxx/ is the instruction pointer value. The
odds are you will not get an exact match since the symbols
in the kernel symbol table are for the entry points of
functions and the instruction pointer address will be
somewhere inside a function, not at the start. If you don't
get an exact match, omit the last digit from the instruction
pointer value and try again, i.e.:
<verb>
% nm /kernel.that.caused.the.panic | grep f0xxxxx
</verb>
If that doesn't yield any results, chop off another digit.
Repeat until you get some sort of output. The result will be
a possible list of functions which caused the panic. This is
a less than exact mechanism for tracking down the point of
failure, but it's better than nothing.
</itemize>
<p> I see people constantly show panic messages like this but
rarely do I see someone take the time to match up the
instruction pointer with a function in the kernel symbol table.
<p> The best way to track down the cause of a panic is by
capturing a crash dump, then using <tt/gdb(1)/ to to a stack
trace on the crash dump. Of course, this depends on <tt/gdb(1)/
in -current working correctly, which I can't guarantee (I recall
somebody saying that the new ELF-ized <tt/gdb(1)/ didn't handle
kernel crash dumps correctly: somebody should check this before
3.0 goes out of beta or there'll be a lot of red faces after the
CDs ship).
<p>
In any case, the method I normally use is this:
<itemize>
<item>Set up a kernel config file, optionally adding 'options DDB' if you
think you need the kernel debugger for something. (I use this mainly
for setting beakpoints if I suspect an infinite loop condition of
some kind.)
<item>Use <tt/config -g KERNELCONFIG/ to set up the build directory.
<item><tt>cd /sys/compile/KERNELCONFIG; make</tt>
<item>Wait for kernel to finish compiling.
<item><tt/cp kernel kernel.debug/
<item><tt/strip -d kernel/
<item><tt/mv /kernel /kernel.orig/
<item><tt>cp kernel /</tt>
<item>reboot
</itemize>
<p> <em>[Note: Now that FreeBSD 3.x kernels are Elf by default,
you should use <tt/strip -g/ instead of <tt/strip -d/. If for some
reason your kernel is still a.out, use <tt/strip -aout -d/.]</em>
<p> Note that YOU DO <em/NOT/ WANT TO ACTUALLY BOOT THE KERNEL
WITH ALL THE DEBUG SYMBOLS IN IT. A kernel compiled with <tt/-g/
can easily be close to 10MB in size. You don't have to actually
boot this massive image: you only need it later for <tt/gdb(1)/
(<tt/gdb(1)/ wants the symbol table). Instead, you want to keep
a copy of the full image and create a second image with the
debug symbols stripped out using <tt/strip -d/. It is this
second stripped image that you want to boot.
<p> To make sure you capture a crash dump, you need edit
<tt>/etc/rc.conf</tt> and set <tt/dumpdev/ to point to your swap
partition. This will cause the <tt/rc(8)/ scripts to use the
<tt/dumpon(8)/ command to enable crash dumps. You can also run
<tt/dumpon(8)/ manually. After a panic, the crash dump can be
recovered using <tt/savecore(8)/; if <tt/dumpdev/ is set in
<tt>/etc/rc.conf</tt>, the <tt/rc(8)/ scripts will run
<tt/savecore(8)/ automatically and put the crash dump in
<tt>/var/crash</tt>.
<p> NOTE: FreeBSD crash dumps are usually the same size as the
physical RAM size of your machine. That is, if you have 64MB of
RAM, you will get a 64MB crash dump. Therefore you must make sure
there's enough space in <tt>/var/crash</tt> to hold the dump.
Alternatively, you run <tt/savecore(8)/ manually and have it
recover the crash dump to another directory where you have more
room. It's possible to limit the size of the crash dump by using
<tt/options MAXMEM=(foo)/ to set the amount of memory the kernel
will use to something a little more sensible. For example, if
you have 128MB of RAM, you can limit the kernel's memory usage
to 16MB so that your crash dump size will be 16MB instead of
128MB.
<p> Once you have recovered the crash dump, you can get a stack
trace with <tt/gdb(1)/ as follows:
<p>
<verb>
% gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0
(gdb) where
</verb>
<p> Note that there may be several screens worth of information;
ideally you should use <tt/script(1)/ to capture all of them.
Using the unstripped kernel image with all the debug symbols
should show the exact line of kernel source code where the panic
occured. Usually you have to read the stack trace from the
bottom up in order to trace the exact sequence of events that
lead to the crash. You can also use <tt/gdb(1)/ to print out the
contents of various variables or structures in order to examine
the system state at the time of the crash.
<p> Now, if you're really insane and have a second computer, you
can also configure <tt/gdb(1)/ to do remote debugging such that
you can use <tt/gdb(1)/ on one system to debug the kernel on
another system, including setting breakpoints, single-stepping
through the kernel code, just like you can do with a normal
user-mode program. I haven't played with this yet as I don't
often have the chance to set up two machines side by side for
debugging purposes.
<p> <em>[Bill adds: "I forgot to mention one thing: if you have
DDB enabled and the kernel drops into the debugger, you can
force a panic (and a crash dump) just by typing 'panic' at the
ddb prompt. It may stop in the debugger again during the panic
phase. If it does, type 'continue' and it will finish the crash
dump." -ed]</em>
</sect>

353
zh/FAQ/hardware.sgml Normal file
View file

@ -0,0 +1,353 @@
<!-- $Id: hardware.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by gsl@tpts4.seed.net.tw -->
<!-- English Version: 1.14 -->
<sect>
<heading>硬體的相容性<label id="hardware"></heading>
<sect1>
<heading>FreeBSD 支援哪些硬碟的介面?</heading>
<p>FreeBSD 支援 EIDE 及 SCSI 週邊 (有著相容的 controller
請參考下一段)以及使用「Western Digital」介面的週邊 (MEM、
、RLL、ESDI當然IDE 也在包括內)。但少數使用專有的 ESDI
的介面無法運作:像是 WD1002/3/6/7 介面等等。
<sect1>
<heading>哪一些 SCSI 卡有被支援?</heading>
<p>在 <htmlurl url="../handbook/install:hw.html" name="Handbook"> 裡有完整的資料。
<sect1>
<heading>哪一些 CD-ROM 被 FreeBSD 所支援?</heading>
<p>首先,任何接在 SCSI 介面上的 CDROM 都有被 FreeBSD 所支援。
<p>其次,下面所列的 CD-ROM 也都有被支援:
<itemize>
<item>Mitsumi LU002 (8bit), LU005 (16bit) 及 FX001D (16bit 兩倍速)。<newline>
<item>Sony CDU 31/33A<newline>
<item>接在 Sound Blaster 上非 SCSI 介面的 CD-ROM<newline>
<item>Matsushita/Panasonic CD-ROM<newline>
<item>相容於 ATAPI IDE 介面的 CD-ROM<newline>
</itemize>
<p>已經知道非 SCSI 的週邊設備會比 SCSI 的慢很多,另外,有一些 ATAPI
CDROM (這也就是說非 SCSI 的 CDROM) 可能無法運作。
<p>對了2.2 版的 FreeBSD CDROM (由 Walnut Creek 整理的) 支援光碟開機。
<sect1>
<heading>FreeBSD 支援 ZIP 嗎?</heading>
<p>FreeBSD 當然支援 SCSI ZIP。但是 ZIP 只能夠被設定在 SCSI ID 5 或是 6
。但如果 SCSI 卡上的 BIOS 支援它,你甚至可以用它來開機。我們不曉得哪一
塊卡可以讓你把卡的 ID 設在除了 0 或 1 以外的地方開機... 看看你的說明手
冊 (果你成功的話,也請你讓我們知道)
<p>ATAPI (也就是 IDE 介面) ZIP 已經在 FreeBSD 2.2.6 及以後的版本被支援了。
<p>FreeBSD 3.0-CURRENT 也有支援 parallel ZIP。然而不過你需要製作一個可以
支援 ppbus (Parallel Port Bus) 的 kernel以讓你可以使用你的 ZIP。請參
考 LINT 這個檔案。
<p>也可以參考<ref id="jaz" name="有關可以移動的設備">
及<ref id="disklabel" name="有關於 format 的資料">。
<sect1>
<heading>
FreeBSD 有支援 JAZ、EZ 及其他像這一類可以移動的設備嗎?
</heading>
<p>除了 IDE 的 EZ drive 外,其他的應該都是 SCSI 介面。所以你應該將大部
份設備看成 SCSI 磁碟機,把剩下那些的 IDE EZ 的設備看成 IDE 設備。
<p><label id="jaz">我們並不確定 FreeBSD 對於更換 jaz 磁片時的支援怎樣
。但我們知道必需在抽換 jaz 磁片前將這個檔案系統先卸下。當然,你必需確
定在開機時這些設備的電源是打開的,以便讓 FreeBSD 可以偵測到。
<p>參考<ref id="disklabel" name="有關於 format 磁片的資料">。
<sect1>
<heading>有那些 multi-port serial 卡被 FreeBSD 所支援?</heading>
<p>你可以參考<htmlurl url="../handbook/install:misc.html"
name="其他週邊設備">的表。
<p>雖然有些卡是沒牌的,但也可以在 FreeBSD 下工作,像是號稱支援 AST 的卡。
<p>參考 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sio"
name="sio 這份說明文件">可以讓你了解更多有關於這一類卡的資訊。
<sect1>
<heading>我有一隻 bus mouse。我該如何設定<label id="busmouse"></heading>
<p>FreeBSD 支援由 Microsoft, Logitech 及 ATI 所生產的 bus mouse 及 InPort
bus mouse。這些滑鼠的 driver 都已經內含在 GENERIC 裡面了。如果你自己有重新
做一個 kernel請確定有沒有把下列這一行加入你的 kernel config file
<verb>
device mse0 at isa? port 0x23c tty irq5 vector mseintr
</verb>
<p>買 bus mouse 時應該會含一塊介面卡。這塊卡允許你設定不同的 port address 及
IRQ number。參考你的說明手冊及 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?mse"
name="mse man page"> 來得到更多的資訊.
<sect1>
<heading>
我如何使用 PS/2 mouse 或是 PS/2 keyboard<label id="ps2mouse"></heading>
<p>如果你的 FreeBSD 是 2.2.5 以上的版本 (含 2.2.5),那麼你需要的 driver 不僅放到
kernel 裡面了,而且你的 PS/2 設備應該可以在開機時被偵測到。
<p>如果你用的是 2.1.x 到 2.2.5 (不含 2.2.5) 版的 FreeBSD你可以在
開機的時候進入「kernel configuration menu」裡去啟動也就是在開機時出現
boot: 的符號後打入 -c。因為預設值是關掉的所以你必需自己去啟動它。
<p>如果你用的是更舊的版本,你需要自己編一個 kernel在你的核心設定檔裡面加入
<verb>
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
</verb>
<p>如果你對於自己編一個核心沒有經驗,請參考<htmlurl
url="../handbook/kernelconfig.html" name="「編一個核心」">
<p>如果在開機時有找到 psm0 卻不能使用,請確定在 /dev 下有 psm0 這個設備檔。
如果沒有,你應該用 root 的身份輸入下面這行來做出:
<verb>
cd /dev; sh MAKEDEV psm0
</verb>
<sect1>
<heading>是否有可能在 X Window 之外使用滑鼠呢?<label id="moused"></heading>
<p>如果你用的是 default console driver也就是 syscons而想要用
滑鼠指標來剪貼文字,那麼就執行滑鼠的 daemon也就是 moused然後
用下面這兩行來啟動它:
<verb>
moused -p /dev/xxxx -t yyyy
vidcontrol -m on
</verb>
<p><tt>xxxx</tt> 的地方填入 mouse 的 device name而 <tt>yyyy</tt>
填入這隻滑鼠的 protocol type。你可以參考 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?moused" name="moused">
這個 man page 來找看看有那些 protocol types 可以填。
<p>如果你想要在開機時就執行 moused。在 2.2.1 版之前 (含 2.2.1),到
<tt>/etc/sysconfig</tt> 設定下面的值:
<verb>
mousedtype="yyyy"
mousedport="xxxx"
mousedflags=""
</verb>
在 2.2.2 版以後 (含 2.2.2) 到 <tt>/etc/rc.conf</tt> 設定下面的值:
<verb>
moused_type="yyyy"
moused_port="xxxx"
moused_flags=""
</verb>
<p>另外從 2.2.6 版開始moused 可以自動決定 protocol type除非滑鼠實在
是太舊了。如果太舊的話,在 moused_type 填入 ``<tt>auto</tt>'',然後祈禱
可以偵測的到。
<p>當執行 moused 後,想要在其他程式裡使用滑鼠需要像 X Window 這類的應用
程式。參考本文的 <ref id="x-and-moused" name="另外一段">
<sect1>
<heading>如何在 text console 裡剪貼?</heading>
<p>當執行 moused 後,(參考<ref id="moused" name="前一段">),按住左鍵,
移動滑鼠來選擇一個區域之後放開。然後,按下中鍵或右鍵,就可以貼上去了。
<p>在 2.2.6 版後 (含 2.2.6),按下中鍵會執行貼上這個動作,但按下右鍵會延伸
所選取的區域。如果你的滑鼠沒有中鍵,你可以用模擬的方式或是重新定義滑鼠按
鍵的方式來達成「延伸」的功能。參考 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?moused" name="moused"> 這個 man
pages 來得到更多相關資訊。
<sect1>
<heading>我的滑鼠上有滾輪,能不能在 FreeBSD 下使用?</heading>
<p>很不幸的,在大多數的情況下不行。這些帶有滾輪的滑鼠需要用特
殊的驅動程式。除非滑鼠有被你的程式或是驅動程式所支援,不然這些滑
鼠只能夠當成是普通的兩鍵或三鍵的滑鼠使用。
<sect1>
<heading>
我能在我的 laptop 上使用滑鼠/軌跡球/touchpad 嗎?
</heading>
<p>參考<ref id="ps2mouse" name="上一段的答案">,並且參考
<ref id="pao" name="this note"> on the Mobile Computing page.
<sect1>
<heading>有那些 tape 周邊有被支援?</heading>
<p>FreeBSD 支援 SCSIQIC-36 (QIC-02 介面) 及 QIC-40/80 (Floppy 介面) tape drives。
包括 8-mm (aka Exabyte) 及 DAT drives。已經知道 QIC-40/80 drives 很慢。
<p>某些早期的 8-mm drives 並不相容於 SCSI-2可能沒有辦法在 FreeBSD 上運作。
<sect1>
<heading>FreeBSD 支援 tape changer 嗎?</heading>
<p>FreeBSD 2.2 利用 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ch(4)"
name="ch"> 這個設備來支援 SCSI changers你可以參考 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?chio" name="chio"> 這個指令。
如何控制 changer 的方法可以在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?chio"
name="chio"> 這份說明文件裡找到。
<p>如果你不是用 <htmlurl
url="http://www.freebsd.org/cgi/ports.cgi?amanda" name="AMANDA"> 或
其他已經被知道的 changer記住你只知道如何將一個 tape 從其中一個移到另外一個,
所以你需要記住那一個 tape 在裡面,及現在有那一個 tape 需要放回去。
<sect1>
<heading>有那些音效卡有被 FreeBSD 支援?</heading>
<p>FreeBSD 支援 SoundBlasterSoundBlaster ProSoundBlaster 16
Pro Audio Spectrum 16AdLib 及 Gravis UltraSound sound cards。
但對於 MPU-401 及其相容 MIDI 卡的支源有限。對於使用 Microsoft
Sound System 的卡可以透過 pcm 的驅動程式來使用它。
<p><bf/NOTE/ 這個驅動程式只適用於聲音方面,而且並不支援在這些
卡上的 CD-ROMSCSI 或 joysticks。但也有些例外像是 SoundBlaster、
SoundBlaster SCSI 介面及某些非 SCSI CDROMS 有被支援,但你無法使用這
些設備開機。
<sect1>
<heading>那些網路卡被 FreeBSD 所支援?</heading>
<p>參考<htmlurl url="../handbook/install:nics.html" name="乙太網路卡">
,裡面有完整的清單。
<sect1>
<heading>我的電腦沒有浮點運算器,這聽起來好像不太好?</heading>
<p><tt /Note/ 這只會影響到用 386/486SX/486SLC 的人 - 使用其他的 CPU 都
已經內含符點運算器了。
<p>一般來說這不會造成任何問題,但當你要用的時候,無論在效率上與精密度上,
模擬浮點運算的程式碼不能兼顧 (參考<ref id="emul" name="符點運算模擬器">)。
尤其是在 X 下面畫弧形時會很慢。所以,我們還是會建議買一顆符點運算器。
<p><bf/NOTE/ 有些數學運算器比其他的好。但是沒有人強迫你買 Intel 的。
除非你確定你買的可以在 FreeBSD 上正確的工作。
<sect1>
<heading>2.X 還支援那些設備?</heading>
<p>請多多參考 <htmlurl url="../handbook/install:misc.html" name="Handbook">
,裡面有列出。
<!--
<sect1>
<heading>我要買一臺新的機器,有任何建議可以給我嗎?</heading>
<p>如果你要自行組裝,你可以參考 Handbook 中的<htmlurl
url="../handbook/hw.html" name="硬體">,或者你可以參考<htmlurl
url="../commercial/hardware.html" name="硬體廠商">提供你了解各家
可以使用 FreeBSD 的機器。
-->
<sect1>
<heading>FreeBSD 支援電源管理系統嗎?</heading>
<p>FreeBSD 支援某些機器上的 APM。請參考 <tt/LINT/ 這個 kernel 設定檔,
並找看看 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?apm"
name="APM"> 這個關鍵字。
<sect1>
<heading>在某些硬體上所產生的問題</heading>
<p>本段包括了某些硬體所產生的問題。
<sect2>
<heading>在 Micron systems 的主機板上我沒有辦法進入 FreeBSD</heading>
<p>Micron 的某些主機板沒有遵守 PCI BIOS 的規定,而導至於當進入 FreeBSD
時掛掉。因為這些 PCI 的設備沒有在開機時向主機板報告他的的位置。
<p>進入 BIOS 後將「Plug and Play Operating System」這項給 disable 掉
可以暫時解決這個問題。如果你想得到更多有關 Micron 的訊息,可以參考
<htmlurl
url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"
name="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">
</sect2>
</sect1>
<sect1>
<heading>我有一塊新買的 Adaptec 卡,但是 FreeBSD 找不到它。
</heading>
<p>Adaptec 新的 AIC789x 系列晶片組在剛出蘆的 CAM SCSI 環境下可以使用。
3.0-CURRENT 及 2.2-STABLE 需要 patches
<url url="ftp://ftp.freebsd.org/pub/FreeBSD/development/cam/"
name="ftp://ftp.freebsd.org/pub/FreeBSD/development/cam/">。A CAM-enhanced 開機磁片在
<url url="http://www.freebsd.org/~abial/cam-boot/"
name="http://www.freebsd.org/~abial/cam-boot/">。無論你是用那一個,請先參考 README
</p>
</sect1>
<sect1>
<heading>我這有一個 PnP 的 modem但是 FreeBSD 沒找到咧?
</heading>
<p>你需要把 modem 的 PnP ID 加到 serial 驅動程式的 PnP ID 表裡,然後將 PnP 的功能
給打開。在你的核心設定檔裡加入 <tt/controller pnp0/ 後再重新編譯一個核心,然後重
新啟動你的系統。核心會列出它所找到的所有設備的 PnP ID。請將這些 modem 的 PnP ID
複製到 <tt>/sys/i386/isa/sio.c</tt>,大約 1200 行的地方。你可以找 "SUP1310" 這個
字串來幫助你找到 "siopnp_ids[]" 這個表。再重新編譯一個 kernel 之後重新開機,你的
modem 應該會被找到了。
</p>
<p>你也可以在開機時手動輸入類似下面的字串讓核心看到你的 modem
<verb>
pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
</verb>
</p>
</sect1>
<sect1>
<heading>我該如何在 serial console 前看到 boot: 這個提示符號?
</heading>
<p><enum>
<item>在你的核心檔裡面加入一行 <tt/options COMCONSOLE/,然後重新編譯你的核心,
<item>然後到 /boot.config 裡寫入 <tt/-P/ 這兩個字。
<item>Unplug the keyboard from the system.
</enum></p>
<p>參考 <tt>/usr/src/sys/i386/boot/biosboot/README.serial</tt> 來了解更多的資訊。</p>
</sect1>
<sect1>
<heading>為什麼我的 3Com PCI 網路卡沒有辦法在 Micron 主機板上工作?</heading>
<p>某些 Micron 主機板沒有遵守 PCI BIOS 的規定而使得 PCI 的週邊設備沒有回報
他們的位置。這使得在進入 FreeBSD 時會掛掉。
<p>如果要暫時解決這個問題,請在 BIOS 裡 disable「Plug and Play Operating System」
<p>有關 Micron 更多的訊息可以參考:
<htmlurl
url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"
name="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">
<sect1>
<heading>FreeBSD 支援 Symmetric Multiproccessing (SMP) 嗎?
</heading>
<p>SMP 只在 3.0-CURRENT 被支援.
</sect>

6
zh/FAQ/includes.sgml Normal file
View file

@ -0,0 +1,6 @@
<!-- $Id: includes.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- book stores -->
<!ENTITY isbn.amazon 'http://www.amazon.com/exec/obidos/ASIN'>

632
zh/FAQ/install.sgml Normal file
View file

@ -0,0 +1,632 @@
<!-- $Id: install.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by foxfair@FreeBSD.ORG -->
<!-- English Version: 1.13 -->
<sect>
<heading>安裝 FreeBSD<label id="install"></heading>
<sect1>
<heading>我該下載哪些檔案以取得 FreeBSD</heading>
<p>通常你只需要一張軟碟映像檔,<em>floppies/boot.flp</em>,把它拷
貝到 1.44MB 軟碟片上然後啟動它,再去下載其他的部份(安裝程序會管
理你的 TCP/IP 連線,以及 tapes光碟機軟碟機DOS 分割區,及
其他只要是安裝過程中需要用到的)。
<p>若你只需要自己下載 distributions(可迅速的由 DOS 檔案系統來安裝)
,以下是我們建議你抓來安裝的 distributions
<itemize>
<item> bin/<newline>
<item> manpages/<newline>
<item> compat*/<newline>
<item> doc/ <newline>
<item> src/ssys.* <newline>
</itemize>
<p>安裝程序的完整指令,以及更多普遍性安裝時會碰到的問題可以在
<url url="../handbook/install.html"
name="Handbook entry on installing FreeBSD.">這裡找到。
<sect1>
<heading>救命!啟動的軟碟映像檔無法塞到一片單獨的軟碟片裡!
</heading>
<p>一張 3.5 英吋(1.44MB)軟碟片可以容納 1474560 位元組的資料。
啟動的映像檔就剛好是這個大小。
<p>在準備啟動軟碟片時常見的錯誤有:
<itemize>
<item>使用 <tt>FTP</tt> 時沒有使用 <tt>binary</tt> 模式。
<p>某些 FTP client 軟體它們內定的傳輸模式是 <tt>ascii</tt>
並且試著更改任何在終端被接收的字元,以符合這個 client 系統本身
。大部分情形下這必然會毀損啟動映像檔,檢查一下你下載的啟動
映像檔大小:如果這不是<em>完全地</em>符合 server 端上的檔
案大小,那麼你的下載程序就有問題。
<p>解決方法:在你連接上 server 但尚未開始下載映像檔之前,
看到 FTP 命令提示號時打 <tt>binary</tt>。
<item>使用 DOS 的 <tt>copy</tt> 命令(或等效的 GUI 工具)來把啟
動映像檔傳送到軟碟片。
<p>類似像 <tt>copy</tt> 的程式,在啟動映像檔被建立並且直接
開機後並沒有功用。映像檔裡有完整的磁碟內容,磁軌對磁軌,這代
表著你無法用磁片上固定的檔案去取代它。
你必須把它傳送到軟碟片的``raw''上,使用低階化工具(像是
<tt>fdimage</tt> 或 <tt>rawrite</tt>),這些在
<url url="../handbook/install.html" name="installation guide to
FreeBSD">裡面多有描述。
</itemize>
<sect1>
<heading>安裝 FreeBSD 的指令是什麼?</heading>
<p>你可以在這裡找到安裝指令。
<url url="../handbook/install.html"
name="Handbook entry on installing FreeBSD.">
<sect1>
<heading>要執行 FreeBSD 我還需要什麼?</heading>
<p>你需要一台 386 或更好的 PC包含 5MB 或更多的 RAM以及至少 60MB
的磁碟空間。可以僅使用一個低階的 MDA 圖形卡,如果你要執行 X11R6
,需要 VGA 或更好的視訊卡。
<p>亦參考這個章節 <ref id="hardware" name="Hardware compatibility">
<sect1>
<heading>我只有 4MB RAM那我能安裝 FreeBSD 嗎?</heading>
<p>FreeBSD 2.1.7 是最後一個可在 4MB 系統上被安裝的版本。新版的
FreeBSD像是 2.2,需要至少 5MB 來安裝它在一個全新的系統上。
<p>FreeBSD 的所有版本,包括 3.0,都在 4MB 的記憶體下執行,不過安裝
時不能只用 4MB。如果你想這樣你可以在安裝時加入額外的記憶體
後等系統可以執行後,換回 4MB。或是你可以把你的磁碟機切出一個 4MB
以上置換空間,安裝好系統後再把置換空間砍掉。
<p>FreeBSD 2.1.7 也有不能在 4MB 安裝的情形。正確的說,應該是指
不能在基本的 640kB 加上 3MB 延伸記憶體裡安裝。如果你的主機板
可以重新找回在 640kB 到 1MB 範圍中那些``遺失''的記憶體,那麼
或許你還是可以把 FreeBSD 2.1.7 裝起來。
<p>試著進入你的 BIOS 設定選單並找一個``remap''選像,把它打開。
你或許也該把 ROM shadowing 給關掉。
<p>只在安裝時使用 4MB 可能容易一點,建立一個只有你需要的選項的
核心程式然後就可以用只用 4MB。
<p>你也可以安裝 2.0.5 然後再把你的系統用 2.1.7 安裝程式裡
``upgrade''的選項升級到 2.1.7 版本。
<p>安裝後如果你建立一個自訂的核心,這將會在 4MB 下執行。曾有
人成功的用 2MB 開機(不過系統幾乎不能用 :-))。
<sect1>
<heading>
我該怎麼製作自訂的安裝軟碟片?
</heading>
<p>目前你無法 *只* 製作一個自訂的安裝軟碟片。你必須做出整個全新的
release 系統,這裡面就包括你的安裝軟碟片。某些在
<tt>/usr/src/release/floppies/Makefile</tt> 裡的程式碼假設能讓
你*只*做出那些軟碟片,但是事實上還不行。
<p>要做出自訂的 release 版本,請遵循 <ref id="custrel" name="here">
的指令。
<sect1>
<heading>我可以在我的 PC 上擁有超過一個以上的作業系統嗎?</heading>
<p>請參考 <url url="../tutorials/multios/multios.html"
name="The multi-OS page.">
<sect1>
<heading>Windows 95 可以跟 FreeBSD 並存嗎?</heading>
<p>先安裝 Windows 95然後再裝 FreeBSD。FreeBSD 的啟動管理員
會接著管理 Win95 和 FreeBSD。假使你第二個才裝 Win95它將會
問都不問的粗魯地把你的啟動管理員覆寫過去。假如這已經發生,
請看下一節。
<sect1>
<heading>
Windows 95 把我的啟動管理員殺掉了!我該怎麼把它救回來?
</heading>
<p>你可以用以下兩種方法之一來重新安裝 FreeBSD 的啟動管理員:
<itemize>
<item>執行 DOS進入你的 FreeBSD distributions 的 tools/ 目錄
並找到 <bf>bootinst.exe</bf>。你可以這樣執行它:
<p><bf>bootinst.exe boot.bin</bf>
<p>這樣啟動管理員將會再次被安裝。
<item>用 FreeBSD 啟動軟碟片再次開機然後進入 Custom 安裝選單
項目,選擇 Partition選擇那個包含啟動管理員的磁碟機(大多是
第一個),然後當分割區編輯器(partition editor)出現時,第一件
事(意思就是:不要做任何更改) 先選擇 (W)rite。會出現確認的詢
問,回答 yes然後當你看到 Boot Manager 的選擇提示時,確定
你選的是"Boot Manager"這項。
這會把啟動管理員重新寫回磁碟裡。跳離安裝選單然後就跟正常情形
一樣重新啟動硬碟。
</itemize>
<sect1>
<heading>我可以在一個有壞軌(bad block)的磁碟上進行安裝嗎?</heading>
<p>FreeBSD 的 bad block (<htmlurl
url="http://www.freebsd.org/cgi/man.cgi?bad144" name="bad144">
命令) 處理並非 100&percnt 完全(用圖形化來看),而且很不幸我要告
訴你假如你有一個 IDE 或 ESDI 裝置包含大量的 bad blocks那麼
FreeBSD 可能不適合你!這表示,對其他大多數的 IDE 系統可能有
用,你可能想在放棄前先嘗試看看。
<p>如果你有一個有 bad blocks 的 SCSI 裝置,請看 <ref id="awre"
name="this answer">.
<sect1>
<heading>當我啟動安裝軟碟片時,奇怪的事情發生了!</heading>
<p>如果你看到奇怪的事情,像是機器停住了或是當你試著從安裝磁片起
動時突然自動重新開機了,這裡有三個問題你該先問問自己:-
<enum>
<item>你是否使用一個新的,剛格式化過,沒有任何錯誤的軟碟片(可
以是一張全新剛拆封的,而非是那種已經你的床下躺了三年,是雜誌贈
送的封面磁片)
<item>你是否用 binary 模式下載軟碟映像檔?
(不用不好意思,就算是我們之中最好的一個人也曾意外的把 binary
檔用 ASCII 模式下載至少一次!)
<item>如果你正在使用像是 Windows95 或 Windows NT 這幾種新型的
作業系統,你有沒有把系統關機然後啟動到最原始狀態,只有 DOS
這些 OS 看起來會阻礙那些直接操作硬體的程式,像是建立磁碟的程式
,只要在 GUI 環境下的 DOS shell 就會導致這個問題。
</enum>
<p>也有過報告有關 Netscape 會導致下載啟動軟碟的問題,因此如果你
可以,最好使用別種不同的 FTP client 。
<sect1>
<heading>救命!我不能從 tape 安裝!</heading>
<p>如果你從 tape 安裝 2.1.7,你必須用每個 tar blocksize 是 10
(5120 bytes)建立這個 tape。內定的 tar blocksize 是 20(10240
bytes),然而用這種內定大小建立的 tape 無法用來安裝 2.1.7R
如果你用這種 tapes你會看到有關資料記錄區大小過大的抱怨訊
息。
<sect1>
<heading>用一條並聯線(PLIP)連接兩台 FreeBSD。
</heading>
<p>找一條 laplink 線,確定兩邊電腦的核心都支援 lpt 驅動程式。
<verb>
$ dmesg | grep lp
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface
</verb>
<p>把 laplink 線插入並聯界面上。
<p>用 root 身分在兩台電腦上設定 lp0 的網路界面參數。舉例,如果
你想用 max 連接 moritz
<verb>
max <-----> moritz
IP Address 10.0.0.1 10.0.0.2
</verb>
max 端應該這樣開始:
<verb>
# ifconfig lp0 10.0.0.1 10.0.0.2
</verb>
moritz 則這樣:
<verb>
# ifconfig lp0 10.0.0.2 10.0.0.1
</verb>
<P>好了!也請你看看 lp(4) 和 lpt(4) 的 manpages。
<P>你也該把這些主機加到 /etc/hosts 裡面。
<verb>
127.0.0.1 localhost.my.domain localhost
10.0.0.1 max.my.domain max
10.0.0.2 moritz.my.domain moritz
</verb>
<P>用以下方法檢查是否有正常動作:
on max:
<verb>
$ ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
</verb>
<verb>
$ netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
moritz max UH 4 127592 lp0
</verb>
<verb>
$ ping -c 4 moritz
PING moritz (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- moritz ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
</verb>
<sect1>
<heading>
我可以在我的膝上型電腦用 PLIP(Parallel Line IP)安裝嗎?
</heading>
<p>用 laplink 並聯線連接兩台電腦以使用這個特性:
<verb>
+----------------------------------------+
|A-name A-End B-End Descr. Port/Bit |
+----------------------------------------+
|DATA0 2 15 Data 0/0x01 |
|-ERROR 15 2 1/0x08 |
+----------------------------------------+
|DATA1 3 13 Data 0/0x02 |
|+SLCT 13 3 1/0x10 |
+----------------------------------------+
|DATA2 4 12 Data 0/0x04 |
|+PE 12 4 1/0x20 |
+----------------------------------------+
|DATA3 5 10 Strobe 0/0x08 |
|-ACK 10 5 1/0x40 |
+----------------------------------------+
|DATA4 6 11 Data 0/0x10 |
|BUSY 11 6 1/0x80 |
+----------------------------------------+
|GND 18-25 18-25 GND - |
+----------------------------------------+
</verb>
<p>請參考 Mobile Computing 網頁的 <ref id="pao" name="this note">。
<sect1>
<heading>
我該怎麼使用一個磁碟裝置的幾何(geometry)
</heading>
<p>(一台磁碟的"gromrtry",我們指的是這台磁碟上 cylinders, heads
和 sectors/track 的數目 - 為了方便且稱之為 C/H/S。這是 PC 的
BIOS 用來讀/寫磁碟的依據)。
<p>為了某些理由,這似乎會導致很多困擾。首先,一台 SCSI 裝置的
<tt /physical/ geometry 跟 FreeBSD 在使用的 disk blocks 是完
全無關的。事實上,並沒有所謂"physical geometry"這種東西,這
是指磁碟機上磁區密度的變化 - 製造商要求是"真實的"physical
geometry 通常是指,他們所能找出浪費最少空間的 geometry 結果。
對 IDE 磁碟來說FreeBSD 使用 C/H/S 方式工作,但是所有現在
的磁碟已經在內部把它轉換成參考 block 了。
<p>另外就是所謂的<tt /logical/ geometry - 這是當 BIOS 問"你的
geometry 是什麼?"的時候,所得到的答案並且把它用來存取磁碟。
當開機時 FreeBSD 使用 BIOS 資料,讓這個正確是相當重要的。另外
,如果你在同一個磁碟機上有一個以上的作業系統,他們必須都同意
grometry否則你在開機時會有大問題
<p>對 SCSI 磁碟機來說geometry 的使用是依靠啟動控制器來支援
extended translation (這通常稱之為"對&gt;1GB DOS 磁碟機
的支援或"類似的稱呼)。如果不支援,那麼使用 N cylinders64
heads 和 32 sectors/track這裡'N'是指磁碟機的 MB 容量。舉例
來說,一個 2GB 的磁碟機應該假設它有 2048 cylinders64 heads
和 32 sectors/track。
<p>如果它確定<tt /是/ 打開的(通常提供這種方法在 MSDOS 下有某些限
制),並且磁碟容量超過 1GB使用 M cylinders, 每個 track 63 sectors
(*而非* 64),以及 255 heads這裡 'M' 是每 MB 的磁碟容量除以
7.844238 (!)。所以我們的這個範例2G 磁碟機就有 261 cylinders,
每個 track 63 sectors 以及 255 heads。
<p>如果你不確定以上這個,或是 FreeBSD 在安裝過程中要偵測 geometry
的正確性時失敗了,最簡單的解決方法通常是在磁碟上建立一個小的 DOS
分割區。正確的 geometry 應該能被偵測到(而且如果你不想保留它,
你總是可以在分割區編輯器裡把這個 DOS 分割區移除掉,或是把它留下
來,給程式化網路卡使用或隨你高興怎麼用它)。
<p>另外,有一個免費而有用的公用程式叫 ``<tt/pfdisk.exe/'' 隨著
FreeBSD 散播出來(位於 FreeBSD CDROM 的 <tt>tools</tt> 子目錄
下或是在大多數的 FreeBSD ftp 站台內可找到),這個程式可用來解
決找出另一作業系統正在使用磁碟機上的哪塊 geometry。然後你就可
以在分割區編輯器裡面輸入它。
<sect1>
<heading>當我分割磁碟機實有任何限制嗎﹖</heading>
<p>是的。你必須確認你的 root 分割區是在 1024 cylinders 之內,讓
BIOS 可以從其中啟動核心。(注意:這是 PC 的 BIOS 功能限制,而不
是 FreeBSD 的)
<p>對 SCSI 裝置來說,這通常按試著 root 分割區將會處於開始的 1024
MB(或是開始的 4096MB如果 extended translation 是打開的 - 請
參考前一節)。對 IDE 來說,相關的部份是 504MB。
<sect1>
<heading>
可以使用磁碟管理程式(disk managers)嗎﹖或是,我有一個巨大的磁碟機!
</heading>
<p>FreeBSD 認識 Ontrack Disk Manager 並且允許使用它,其他的 disk
managers 則不在支援之列。
<p>如果你只想在磁碟機上使用 FreeBSD 那麼你根本不需要 disk manager。
只要把磁碟設定成 BIOS 能抓到的最大空間(通常是 504 megabytes),那麼
FreeBSD 應該就可以算出你事實上擁有多少空間。如果你正使用一個 MFM
控制器來控制的老磁碟,你可能需要明白的告訴 FreeBSD 要使用多少個
cylinders。
<p>如果你想在磁碟上使用 FreeBSD 和另一個作業系統,你可能不需要
disk manager只要確定 FreeBSD 的啟動分割區跟其他作業系統的
slice 都位於開始的 1024 cylinders 內。如果你相當地小心,一個
20 megabytes 的啟動分割區應該就夠了。
<sect1>
<heading>
當我啟動 FreeBSD我看到 ``Missing Operating System''
<label id="missing_os">
</heading>
<p>這是一個典型的情形,有關 FreeBSD 以及 DOS 或其他在磁碟處理的
方法上有衝突的 OS <ref id="geometry" name="geometry.">。你需要
重新安裝 FreeBSD但是請遵照上面所提到的指令應該就可以了。
<sect1>
<heading>我看不到 boot manager 的 'F?' 提示號。</heading>
<p>這是前一頁所描述問題的另一個徵兆。你的 BIOS geometry 和 FreeBSD
的 geometry 設定不相同!如果你的控制器或 BIOS 支援 cylinders
translation (通常被標示成``&gt;1GB drive support''),試著把這個
設定打開然後重新安裝 FreeBSD。
<sect1>
<heading>
我有 &gt;16MB RAM。這會導致任何問題嗎﹖<label id="bigram">
</heading>
<p>從效能的角度來看不會。FreeBSD 2.X 內含 bounce buffers這允許
你的 bus mastering controller 存取超過 16MB。(注意如果你正使用
ISA 裝置這應該是必需的,儘管一個或兩個更早的 EISA 和 VLB 裝置也可
能需要它)。
<p>也請參考 <ref id="reallybigram" name="&gt;64M machines">
這節,假如你有這麼多記憶體,或假使你使用 Compaq 或是其他能處理
這麼多有用記憶體的機器。
<sect1>
<heading>我需要安裝完整的原始程式(sources)嗎﹖</heading>
<p>通常是不需要。然而,會強烈建議你最少安裝 ``<tt/base/''
source kit這包含數個這裡簡單描述過的檔案還有 ``<tt/sys/''
(kernel) source kit這包含核心程式的原始程式。系統裡面不需
要有原始程式才能操作,然而,除了 kernel-configuration 程式
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?config"
name="config">以外。缺少核心的原始程式,我們的建築架構是設定
成讓你可以從別處如 NFS 來掛上唯獨的原始程式,因此還是可以製
作新的 binaries。因為 kernel-source 的限制,我們建議你不要
直接把它掛在 <tt>/usr/src</tt> 下,最好用適合的符號性重複連
結到 source tree 的上層架構。)
<p>線上擁有 sources 並知道如何建立一個系統,將會讓你在升級今後
FreeBSD 的 releases 版本更容易一點。
<p>要實際的選擇 sources 的一個子集合,在你在系統安裝工具的
Distributions 選單時,使用 Custom 選單項目。<tt>src/install.sh</tt>
script 將會把 sources distribution 的部份安裝進去,主要是看
你傳入哪些參數。
<sect1>
<heading>我需要建立一個核心嗎﹖</heading>
<p>建立一個新的核心在 FreeBSD 安裝過程中是絕對必需的一個步驟。
但新版 releases 帶來一個更友善的核心設定工具指令的好處。在
FreeBSD 啟動提示號(boot:)時,使用 "-c" 旗號你就會進入一個設
定螢幕,這允許你做常見 ISA 卡的設定
<p>仍然建議你最後建立一個核心,只包含你需要的驅動程式,這是為了
節省 RAM但是對大多數的系統來說這卻不是嚴格的要求。
<sect1>
<heading>我不是住在美國,那我可以使用 DES 嗎﹖</heading>
<p>如果對你來說使用 DES 格式的加密技術不是絕對需要的,你可以使
用 FreeBSD 的內定加密技術,有<bf/更好/ 的安全性,並且沒有額外
的限制。FreeBSD 2.0 的密碼現在使用內定的 <bf/MD5/-based 加以
混合,要用自動破解密碼的程式去破解它,比起 DES 需要更多的 CPU
強化性,它還允許更長的密碼。今日不使用 <bf/MD5/-based 加密技
術的唯一理由是在 FreeBSD 和非 FreeBSD 系統上使用相同的密碼項
目。
<p>因為 DES 加密演算法不能由 US 合法輸出到國外,非 US 使用者不
應該從 US FTP 站台下載這個軟體(<tt/secrdist/的任一部份)。
<p>然而另外還有個有效的 libcrypt原始程式基本上由澳洲的
David Burren 寫成。這個程式碼目前在某些非 US FreeBSD mirror
站台上可以找到。這個沒有限制的 libcrypt 原始程式,以及使用它
的 binaries 程式,可以在以下 FTP 站台獲得:
<descrip>
<tag/South Africa/
<tt>ftp://ftp.internat.freebsd.org/pub/FreeBSD</tt><newline>
<tt>ftp://storm.sea.uct.ac.za/pub/FreeBSD</tt>
<tag/Brazil/
<tt>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</tt>
<tag/Finland/
<tt>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</tt>
</descrip>
<p>非 US 的 <tt/securedist/ 可以當限制性 US <tt/securedist/
的完全替代。這個 <tt/securedist/ package 安裝方法跟 US
package 完全一樣(細 請參考安裝須知)。如果你要裝 DES 加密法
,在你裝其他軟體前,你應該盡快改過來。在你裝其他軟體之前。
<p>非 US 使用者請勿從 USA 下載任何加密軟體。這會導致站台的管理
者因為被下載的軟體惹上數個法律性的困難。
<p>一個非 US 的 Kerberos distribution 亦正在發展中,現行版本通
可由匿名 FTP <tt>braae.ru.ac.za</tt> 來獲得。
<p>也有一個 <ref id="mailing" name="mailing list"> 專門用來討論
非 US 加密軟體。欲獲得更多資訊,寄一封內含單獨一行訊息說
``<tt/help/'' 的 email 給:
<tt>&lt;majordomo@braae.ru.ac.za&gt;</tt>.
<sect1>
<heading>
啟動軟碟開始讀了可是卻停在``Probing Devices...''螢幕。
</heading>
<p>如果你安裝了 IDE Zip 或 Jaz 裝置,移除它並重新試一遍。
啟動軟碟片可能會被這些裝置混淆了。當系統安裝好以後你可以再
把它接回來。希望這在之後的 release 版本可以被修正。
<sect1>
<heading>當我安裝好重新啟動系統後,我看到``panic: cant mount root''
的錯誤訊息。
</heading>
<p>這個錯誤試因為啟動區塊跟核心程式對磁碟裝置的認知不相同。通 這個
錯誤會出現在雙磁碟的 IDE 系統,硬碟排列在 master或是在分離的
IDE 系統上有單一個磁碟機。當核心指定第二個磁碟控制器的第一個磁碟
機 wd2 時,啟動 block 卻認為系統裝在 wd1(第二個 BIOS 磁碟機)。
在偵測裝置時,核心程式試著把啟動 block 認為的啟動磁碟(wd1) mount
起來,事實上卻是 wd2所以失敗了。
<p>要修正這個問題,做以下幾種方法之一:
<enum>
<item>當 Boot: 提示號出現時,輸入: <tt>1:wd(2,a)kernel</tt>
然後按 Enter。如果系統開始了就執行以下命令
<verb>
echo "1:wd(2,a)kernel" > /boot.config
</verb>
讓它變成內定的 boot string。
<item>把 FreeBSD 磁碟機移到 primary IDE controller因此硬碟機是
連續的。
<item><url url="../handbook/kernelconfig.html" name="Rebuild your kernel,">
修改有關 wd 設定的行數:
<verb>
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
# disk wd1 at wdc0 drive 1 # comment out this line
controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
disk wd1 at wdc1 drive 0 # change from wd2 to wd1
disk wd2 at wdc1 drive 1 # change from wd3 to wd2
</verb>
安裝新的核心程式。
如果你移動你的磁碟機,並希望把先前的設定恢復,只要把磁碟用預期
的設定置換回來然後重新開機。你的系統應該就能成功的啟動。
</enum>
<sect1>
<heading>記憶體的限制是什麼﹖</heading>
<p>對記憶體來說,(理論上)限制是 4 gigabytes。1 gigabytes 已被測試
過;一般你不可能買到可以支援超過這個數目的 i386 PC。
<sect1>
<heading>ffs 檔案系統的限制是什麼﹖</heading>
<p>對 ffs filesystems 而言,最大理論值限制在 8 terabytes(2G blocks
),或當使用內定 block大小時限制是 16TB。還有軟體限制是 1
terabytes但如果是經過修改的檔案系統上 4 terabytes 是可能(並且
存在)的。
<p>單一 ffs 檔案的大小最大是趨近 1G blocks(4TB) - 假如 block 大小是
4K。
The maximum size of a single ffs file is approximately 1G blocks
(4TB) if the block size is 4K.
<verb>
maxfilesize
----------------------------------
2.2.7 3.0
fs block size -stable -current works should-work
------------- ------- -------- ----- -----------
4K 4T-1 4T-1 4T-1 4+T
8K 32+G 8T-1 32+G 16T-1
16K 128+G 16T-1 128+G 32T-1
32K 512+G 32T-1 512+G 64T-1
64K 2048+G 64T-1 2048+G 128T-1
</verb>
<p>當 fs block 大小是 4Ktriple indirect block 運作並且所有的事情
都應該以表示成使用 triple indirect block 的最大 fs block 來作限
制(近似於 1K^3 + 1K^2 + 1K),但在 fs block 數目上卻有一個(錯誤)
的 1G-1 限制。對 fs block 數目的限制應該是 2G-1。在 fs block
數目接近 2G-1 時有點錯誤,但當 fs block 大小是 4K 時這個 block
數目是不能達到的。
<p>block 大小如果是 8K 或更大fs block 數目應該限制在 2G-1但實
際 fs block 數目卻限制在 1G-1除了在 -stable 時 triple indirect
blocks 是無法達到的,所以最多 fs block 數目的限制可以表示成用
double indirect blocks(近似於(blocksize/4)^2 + (blocksize/4))
,且在 -current 下超過這個限制可能會導致問題產生。使用正確的
2G-1 block 限制的確會導致問題發生。
<sect1>
<heading>我該怎麼在軟碟上放入 1TB 檔案?</heading>
<p>我自己就在軟碟片上放好幾個 :-)。檔案的最大容量事實上跟磁碟最大
的容量並沒有密切相關。磁碟的最大容量是 1TB這是一個檔案大小可
以超過磁碟容量的一個特色。
<p>以下範例會在小小的 root 分割區建立一個使用整個磁碟的 32K 空間
,大小是 8T-1 的檔案(3 indirect blocks and 1 data block)。dd
指令需要讓 dd 能在一個大檔案下執行。
<verb>
ttyv0:bde@alphplex:/tmp/q> cat foo
df .
dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
ls -l z
du z
df .
ttyv0:bde@alphplex:/tmp/q> sh foo
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/sd0a 64479 27702 31619 47% /
1+0 records in
1+0 records out
1 bytes transferred in 0.000187 secs (5346 bytes/sec)
-rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
32 z
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/sd0a 64479 27734 31587 47% /
ttyv0:bde@alphplex:/tmp/q> exit
</verb>
<p>Bruce Evans, September 1998
</sect>

89
zh/FAQ/kernelconfig.sgml Normal file
View file

@ -0,0 +1,89 @@
<!-- $Id: kernelconfig.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- 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>多重埠序列碼的中斷衝突。</heading>
<p><bf/Q./ 當我編譯一個多重埠序列碼的核心時,它告訴我只有第一個被偵
測到,其他的則因中斷衝突而跳過了,我該怎麼修正它?
<p><bf/A./ 這個問題是因為 FreeBSD 使用內建程式碼避免因為硬體或軟體衝
突導致核心程式過於肥大或無用。要修正這種情形的方法是除了一個埠外把
其他所有的 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>你需要在一般設定檔中把以下這行的註解取消(或是把它加到你的設定檔
),在<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>

242
zh/FAQ/misc.sgml Normal file
View file

@ -0,0 +1,242 @@
<!-- $Id: misc.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by zmx@mail.CDPA.nsysu.edu.tw -->
<!-- English Version: 1.8 -->
<sect>
<heading>其它各式各樣的問題<label id="misc"></heading>
<sect1>
<heading>
為甚麼 FreeBSD 用的 swap 空間比 Linux 多?
</heading>
<p>不是這樣的. 如果你的意思是: ``為甚麼我的 swap 看起來滿了?''
那是因為把東西放在 swap 裡後拿回來的速度會比 pager 經由檔案系
統拿回(未修改)的執行碼快.
<p>事實上, 記憶體中 dirty pages 的量並未減少; clean pages 則在需
要的時後移走.
<sect1>
<heading>
為甚麼要用(甚麼是) a.out 和 ELF 執行檔格式?
</heading>
<p>要了解為甚麼 FreeBSD 使用 <tt>a.out</tt> 格式, 首先你要知道一些
目前 Unix 中使用最廣泛的三種格式:
<itemize>
<item><htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)"
name="a.out">
<p>最早和`古典'的 unix 目的檔格式. 使用一種短而緊密的檔頭,
伴隨一個通常用來辨認格式的魔術數字(參考
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)"
name="a.out(5)"> 有更多細節). 具有三個節區: .text, .data, 和 .bss
加上一個符號表和字串表.
<item><bf>COFF</bf>
<p>SVR3 目的檔格式. 檔頭包含了一個節區表, 所以可以具備比
.text, .data, .bss 還多的節區.</item>
<item><bf>ELF</bf>
<p><tt/COFF/ 的後繼者, 具有多個節區以及 32-bit 或 64-bit 的
possible values. 主要的缺點:<tt/ELF/ 是在每個系統架構只
會有一種 ABI 的假設下設計出來的. 事實上這個假設錯的離譜,
即使是商業的 SYSV 世界, 也至少有 SVR4, Solaris, SCO 三種 ABI.
<p>FreeBSD 藉由一個工具, 把程式需要那種 ABI 的資訊 <em>烙印</em>
在 <tt/ELF/ 執行檔上.
參考 man page
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?brandelf"
name="brandelf"> 取得更多資訊.
</itemize>
<p>FreeBSD 來自 "古典" 陣營, 傳統上都使用
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)"
name="a.out"> 格式, 這是在好幾代的 BSD 中證明可靠的計術.
雖然可以在 FreeBSD 上可以建立以及執行原生的 <tt/ELF/ 執行檔(
以及核心), 剛開始 FreeBSD 反對轉換到以 <tt/ELF/ 做為預設的
格式. 為甚麼? 嗯. 當 Linux 開始痛苦地轉換至 <tt/ELF/, 並非因為
要逃離 <tt/a.out/ 格式, 而是因為他們沒有彈性的, 以跳躍表為基礎
的共享程式庫機制. 那是一種非常難以使用, 發展者不喜歡的東西. 既
然已經存在的 <tt/ELF/ 工具提供了共享程式庫的解決方案, 而且看來
是 "前衛的方法", 所需的代價就可接受因而轉換.
<p>在 FreeBSD 的狀況中, 我們的共享程式庫機制更接近 <tt>SunOS</tt> 的
型式, 也就是, 易於使用.
然而, 從 3.0 開始, FreeBSD 正式支援 <tt/ELF/ 為預設格式. 即使
<tt/a.out/ 格式仍然非常好, 我們編譯工具的撰寫者, GNU 的成員,
已中止了對, <tt/a.out/ 格式的支援. 這迫使我們維護另一份版本的
compiler 和 linker, 也使得我們不能從最新的 GNU 發展成果中獲得
好處. 此外對 ISO-C++ 的需求, 尤其是建構者和解構者, 也帶動未來
版本中對 <tt/ELF/ 的原生支援.
<sect1>
<heading>好吧, 但為甚麼會有這麼多種不同的格式?</heading>
<p>在黑暗的過去, 只有簡單的硬體. 簡單的硬體支援小型、簡單的系統.
a.out 在簡單的系統上勝任愉快 (PDP-11). 當 unix 移植到其他平台時,
a.out 保留了下來, 因為對早期的 Motorola 68K, VAX 之類的架構已經
夠用了.
<p>然後有些硬體工程師覺得讓軟體多做點事, 那 CPU 的電晶體就能少
一點而跑的更快. 要在這種新式硬體上工作(現在稱為RISC), <tt/a.out 就
不適合了, 所以需多的格式就發展出來以提供比受限、簡單的<tt/a.out 更
好的效能. 像是 <tt/COFF/, <tt/ECOFF/, 以及一些不有名的格式, 每一種
都有限制直到 <tt/ELF/.
<p>此外, 當程式越來越大兒磁碟(以及主記憶體)相對來說較小時, 共享
程式庫的概念就發展出來了. 虛擬記憶體系統也變得越來越精巧. 當每一
種進步都在 <tt/a.out/ 上完成時, 它的可用性也越來越低. 另外, 人們
還有在執行時期可以動態載入, 或是丟棄執行過的初始化程式以節省記憶
體. 程式語言也變得更精巧而且人們想要在在 main 之前執行別的程式碼
. 許多繁雜的技巧用在 <tt/a.out/ 上以解決這些問題. <tt/a.out/ 要
解決這些問題需要越來越多額外的負擔和複雜度. 當 <tt/ELF/ 輕易的解
決這些問題, 從基本上可以工作的系統轉換卻很痛苦. 所以<tt/ELF/ 要
等到維護 <tt/a.out/ 比轉換到 <tt/ELF/ 還痛苦.
<p>然而, 隨著時間過去, FreeBSD 的 build tools 形成了平行的兩支
(尤其是組譯器和 loader). FreeBSD 這支加進了共享程式庫以及修正
了一些錯誤. GNU 原來撰寫這些程式的人則重寫了這些程式, 並加入了
對於跨平台編譯, 不同格式模組之類的東西更簡單的支援. 許多人想要
做出以 FreeBSD 為目的平台的跨平台編譯器, 不幸的是 FreeBSD 的 as
和 ld 不能做這項工作. 新的 GNU 工具(binutils) 加入了跨平台編譯、
<tt/ELF/、共享程式庫、C++ 擴充, 等等. 此外, 許多廠商以 <tt/ELF/ 格
式發行產品, 而能夠在 FreeBSD 上跑的話當然很好. 而且如果能跑 <tt/ELF/
格式的執行檔, 為甚麼還要理 <tt/a.out/ ? 牠是一匹又累又老的馬, 過
去非常有用, 但是時後讓牠退休了.
<p><tt/ELF/ 比 a.out 更應有表達力(expressive?)而且具有更多的
擴充性. <tt/ELF/ 工具維護的比較好, 而且提供跨平台編譯的支援,
這對許多人來說是很重要的. <tt/ELF/ 可能比 a.out 慢一點, 但差異
非常難測量出來. 這兩者之間還有許多細節上的不同, 例如分頁的對應
方式, 初始化程式碼的作法等等. 這些並不是很重要, 但就是不同. 在
以後 GENERIC 核心不會支媛 <tt/a.out/ , 當不在有執行傳統 <tt/a.out/
程式的需要時, 會從核心移除.
<sect1>
<heading>為甚麼 chmod 不會改變符號連結(symlink)的存取權限?</heading>
<p>你必須把 ``<tt/-H/'' 或是 ``<tt/-L/'' 與 ``<tt/-R/'' 選項一起使用.
參考<htmlurl url="http://www.freebsd.org/cgi/man.cgi?chmod"
name="chmod">
及<htmlurl url="http://www.freebsd.org/cgi/man.cgi?symlink"
name="symlink"> man pages 以取得更多資訊.
<p><bf/警告/ ``<tt/-R/'' 選項會讓 <tt/chmod/ 做<bf/遞迴/. 指定目錄
或是連結到目錄的 symlink 時要小心. 如果你要改變一個符號連結參考到
的目錄的存取權限, 使用 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod"> 且不要
加任何選項, 並且在 symlink 的結尾加上斜線(``<tt>/</tt>''). 舉例來說
, 如果 ``<tt/foo/'' 連結到 ``<tt/bar/'', 而你要更改 ``<tt/foo/'' 的
權限 (事實上是 ``<tt/bar/''), 那就用:
<verb>
chmod 555 foo/
</verb>
<p>依照結尾的斜線, <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod"> 會
經過連結 ``<tt/foo/'', 而改變 ``<tt/bar/'' 目錄的權限.
<sect1>
<heading>
為甚麼帳號 <bf/仍然/ 限制為八個字元?
</heading>
<p>你會認為修改 <bf/UT_NAMESIZE/ 然後重建系統是很簡單的事情, 而且
每件事都可以運做地很好. 不辛的是有許多的程式和工具(包含系統工具)
把數字寫死在程式裡(並非總是 8 或 9, 有時是古怪的如 15 和 20).
這不只會把你的記錄檔弄壞(來自於變動長度和固定長度記錄的差異), 也
會破壞 Sun 的 NIS 客戶端的運做, 和其它 UNIX 系統的互相影響也可能
有潛在的問題.
<p>在 FreeBSD 3.0 以及之後的版本, 帳號的最大長度增加到16個字元,
而那些寫死長度的程式也找出來修正. 影響到系統如此多部份正是直到
3.0 才做修改的原因.</p>
<p>如果你有自信在出問題的時後能自行解決, 你可以用下面的方法讓較早的
版本支援較長的帳號. 修改 /usr/include/utmp.h 中的 UT_NAMESIZE. 你也
必須把 /usr/include/sys/param.h 中的 MAXLOGNAME 改成跟 UT_NAMESIZE
相符. 最後, 如果你是從原始程式建立系統, 別忘了 /usr/include 每次都
會更新! 修改 /usr/src/.. 中適當的檔案. </p>
<sect1>
<heading>我能在 FreeBSD 下跑 DOS 程式嗎?</heading>
<p>是的, 從 3.0 版開始可以使用已經整合並加強的 BSDI <tt/rundos/
DOS 模擬器. 如果你最這個東西有興趣, 送封信到
<url url="mailto:freebsd-emulation@freebsd.org"
name="The FreeBSD emulation discussion list">
<p>對 3.0 之前的系統, 在 port 中有一個極佳的工具程式
<htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^pcemu" name="pcemu">
可以模擬 8088 和足夠的 BIOS 服務以執行 DOS 文字模式程式. 它須要 X Window
System (由 XFree86 提供).
<sect1>
<heading>
甚麼是 ``<tt/sup/'', 如何使用?
</heading>
<p><htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^sup" name="SUP">
意思是 Software Update Protocol, 由 CMU 發展以維持發展的同步.
我們利用他來保持遠端的站台和原始站台同步.
<p>SUP 對頻寬的使用不友善, 而且已放棄了. 目前建議維持原始碼更新的方法是
<url url="../handbook/cvsup.html" name="Handbook entry on CVSup">
<sect1>
<heading>How cool is FreeBSD?</heading>
<p>問: 有人做過 FreeBSD 執行時的溫度測試嗎? 我知道 Linux 比 DOS 涼,
但沒聽人提過 FreeBSD. 似乎很熱.
<p>A. No, but we have done numerous taste tests on blindfolded
volunteers who have also had 250 micrograms of LSD-25
administered beforehand. 35% of the volunteers said that FreeBSD
tasted sort of orange, whereas Linux tasted like purple haze.
Neither group mentioned any particular variances in temperature
that I can remember. We eventually had to throw the results of
this survey out entirely anyway when we found that too many
volunteers were wandering out of the room during the tests, thus
skewing the results. I think most of the volunteers are at Apple
now, working on their new ``scratch and sniff'' GUI. It's a
funny old business we're in!
<p>不開玩笑了, FreeBSD 和 Linux 都使用 ``<tt/HLT/'' (hald) 指令
以在系統閒置時降低電力的使用也減少了熱的產生. 如果有設定 APM
(automatic power management), FreeBSD 也可以讓 CPU 進入低電力
模式.
<sect1>
<heading>誰在我的記憶體插槽中沙沙作響??</heading>
<p>問: FreeBSD 編譯核心時有做甚麼 "奇特" 的事讓記譯體沙沙作響嗎?
當編譯時(還有開機時確認軟碟後的短暫時間), 也種似乎來自記憶體插槽
的奇怪聲音.
<p>答; 是的! 在 BSD 的文件中你會常常看到 ``背後靈'', 大部份的人
都不知道那是一種實際存在的精神體 --- 掌控著你的電腦. 你聽到的聲音
是這些背後靈以高音口哨在溝通怎樣做許多的系統管理工作.
<p>如果這些聲音很困擾你, 來自 DOS 的 ``<tt>fdisk /mbr</tt>'' 就
能擺脫, 但如果有相反的效果也不要驚訝. 事實上, 如果在儀式中聽到
Bill Gates 恐怖的聲音從內建的喇叭傳來, 馬上逃而且不要回頭!
從 BSD 背後靈不平衡的影響中解放, DOS 和 Windows 背後靈通常都能
重新控制整台機器並對你的靈魂詛咒. 如果有選擇, 我想我寧願習慣奇
怪的聲音.
<sect1>
<heading>MFC 是甚麼意思?</heading>
<p>MFC 是 'Merged From -CURRENT' 的縮寫. 使用在 CVS 記錄中以
表示從 CURRENT 中整合進 STABLE 分支的改變.
</sect>

1158
zh/FAQ/network.sgml Normal file

File diff suppressed because it is too large Load diff

549
zh/FAQ/preface.sgml Normal file
View file

@ -0,0 +1,549 @@
<!-- $Id: preface.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by ijliao@dragon2.net -->
<!-- English Version: 1.26 -->
<sect>
<heading>前言<label id="preface"></heading>
<p>歡迎來到 FreeBSD 2.X FAQ!
<sect1>
<heading>寫這份 FAQ 的目的是什麼 ?</heading>
<p>跟其他 Usenet 上的 FAQ 一樣, 這份文件主要涵蓋了有關 FreeBSD 這套作
業系統最常被問到的問題 (當然包括了回答 !)。雖然說我們本來的目的是為了
減少網路頻寬的浪費以及避免同樣的問題一再出現, 但是 FAQ 已經被視為是一
種很有價值的資訊了。
<p>我們已經儘可能地使這份 FAQ 更豐富了 ; 如果您對如何使其更進步有任何
建議, 請隨時寄電子郵件給 <url url="mailto:FAQ@FreeBSD.ORG"
name="FAQ 維護者">。
<sect1>
<heading>什麼是 FreeBSD?</heading>
<p>簡單地來說, FreeBSD 2.X 是一套根據 U.C. Berkeley's 4.4BSD-lite
release for the i386 platform 所完成的 UN*X-like 作業系統。它同時也間
接使用了 William Jolitz 移植到 i386 上的 U.C. Berkeley's Net/2, 也就是
386BSD。不過現在 386BSD 的程式碼只剩下極少數還留存在 FreeBSD 中。您可
以在 <url url="http://www.freebsd.org" name="FreeBSD 首頁"> 找到有關什
麼是 FreeBSD 以及它可以幫您做些什麼的相關資訊。
<p>FreeBSD 已被廣泛地被世界各地的公司行號, ISP, 研究人員, 電腦專家, 學
生, 以及家庭用戶所使用, 用在工作, 教育, 以及娛樂上。您可以在
<url url="../gallery/gallery.html" name="FreeBSD Gallery">看到一些有
關他們的資料。
<p>如果想看關於 FreeBSD 更深入的資料, 請看
<url url="../handbook/handbook.html" name="FreeBSD 使用手冊">。
<sect1>
<heading>發展 FreeBSD 的目的是什麼 ?</heading>
<p>FreeBSD 計畫的目的是提供可以任意使用且沒有限制的軟體。我們在程式碼
(以及計晝本身) 上付出了大量心血, 雖然我們沒有特別強調, 不過並不要求任
何金錢上的回饋。我們相信我們首要的 "任務" 就是提供程式碼給每一個使用
者, 不管他們的目的是什麼 ; 這麼一來, 這些程式碼才能被用在最多地方, 也
才能發揮它們最大的利益。我們相信這就是自由軟體最基本的目標之一, 而且我
們會盡全力去支持它。
<p>在我們 source tree 中有部份的程式碼是採用所謂的 GPL 或是 LGPL 版權
宣告, 雖然這些版權宣告是用來保障而非限制使用者的權利, 畢竟是不那麼自由
了些。由於這些 GPL 的軟體在商業使用上會引起非常複雜的版權問題, 因此只
要有機會, 我們會盡量以採用比較鬆的 BSD 版權的軟體來取代這些 GPL 版權宣
告的軟體。
<sect1>
<heading>為什麼要叫做 FreeBSD?</heading>
<p>
<itemize>
<item>您可以免費使用它, 即使是用於商業用途。
<item>整個 FreeBSD 作業系統完整的原始程式都可以免費取得, 而且在使用
及散佈各方面也只受到最小的限制 (不論是否用於商業用途)。
<item>任何人都可以自由地把他對系統的改良或錯誤修正的程式碼加入
source tree 之中 (當然要符合幾個先決條件)。
</itemize>
<p>如果讀者您的母語不是英語的話, 您要特別注意這裡的 "free" 兩種用法的
意思是不一樣的 : 一種的意思是 "免費", 另一種的意思是 "自由"。您可以拿
FreeBSD 去做任何您想要做的事, 除了一些例外, 例如您宣稱 FreeBSD 是您寫
的。
<sect1>
<heading>最新版的 FreeBSD 是那一版 ?</heading>
<p><url url="ftp://ftp.freebsd.org/pub/FreeBSD/2.2.8-RELEASE"
name="2.2.8"> 是目前最新的 <em> stable </em> 版 ; 它於 1998 年
12 月發行。它同時也是目前最新的 <em>release</em> 版。
<p>簡單的說, <bf>-stable</bf> 的主要訴求對象是對於穩定性及低變異性有
較強需求的機構, 例如 ISP, 而非喜愛一些特別新功能的機構。在此同時, 這
些版本是完全一樣的, 但是在 <bf>-current</bf> 這個分支的完成度足以做一
個正常 release 之前, 這種情況不會維持太久。
<p>但是這並不代表說 3.0-current snapshot 就不適合用在商業服務上, 事實
上, 很多需要 3.0 新功能 (更新的編譯器技術, 更有效率的網路程式碼等) 的
使用者都得到了非常滿意的結果。在它變得更穩定以前, 我們不能 "擔保" 3.0
可以擔得起重要的工作。
<sect1>
<heading>什麼是 FreeBSD-current?<label id="current"></heading>
<p><url url="../handbook/current.html" name="FreeBSD-current">指的是正
在發展中的版本, 它終將在適當的時機成為 3.0.1-RELEASE。它實在是只適合給
系統發展者以及有毅力的業餘愛好者使用。如果想要得到有關如何使用
-current 的深入資訊, 請參考
<url url="../handbook/handbook.html" name="使用手冊"> 的
<url url="../handbook/current.html" name="相關部份">。
<p>如果您對作業系統本身並不是很熟悉, 或是您沒辦法分辨您遇到的問題是真
的發生了問題亦或是暫時性的小狀況, 那麼您就不應該使用 FreeBSD-current。
這個分支的程式碼有時候變動得很快, 而且可能會因此而使您有好幾天的時間無
法更新您的系統。我們假設使用 FreeBSD-current 的使用者都有能力去分析他
們所遇到的問題並且只回報真正的問題而非小狀況。如果您在 -current
mailing list 中提到類似 "make world 造成一些有關 groups 的錯誤" 的問題,
有時候會被其他人輕視。
<p>有時候我們會為這些 -current 發展中的程式碼發表
<url url="../releases/snapshots.html" name="snapshot">, 更有甚者, 我們
還會發表 CDROM 型式的 snapshot。發表這些 snapshot 的目的在於 :
<itemize>
<item>測試最新版的安裝程式。
<item>提供一個簡單的方法給那些喜歡使用 -current 但是沒有時間和頻寬去
每天昇級的使用者。
<item>為了替我們發展中的程式保留一個固定的參考點, 以防止我們未來造成
不幸。(雖然 CVS 可以正常地防止類似這種的可怕事件 :)
<item>為了確保所有需要測試的新功能都可以得到最多的測試。
</itemize>
<p>無論如何, 我們不保證 snapshot 的品質。為了穩定性, 您最好使用完全
release 的版本。
<p>您可以直接從
<url url="ftp://current.freebsd.org/pub/FreeBSD/"> 取得 snapshot
release, 不管是 3.0-current 或是 2.2-stable, 平均每天都會產生一個
snapshot 的版本。
<sect1>
<heading>什麼是 FreeBSD-stable?</heading>
<p>回溯到 FreeBSD 2.0.5 剛發表的時候, 我們決定把 FreeBSD 的 release
分成兩支。一支叫做<url url="../handbook/stable.html" name="-stable"> ,
我們只對它做錯誤修正及小幅度的修改 (這是給 ISP 和商業公司等對實驗中功
能不感興趣的單位所使用的)。另外一支叫做
<url url="../handbook/current.html" name="-current">, 從 2.0 版發行以
後就不間斷地朝著 3.0-RELEASE (以及以後的版本) 前進著。下面就是版本演
進的示意圖 :
<verb>
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.0-RELEASE (Oct 1998)
|
| [3.0-stable]
*BRANCH* 3.0.1 (Feb 1999) -> ... future 3.0.x releases ...
|
|
\|/
+
[3.1-current continues]
</verb>
<p>-current 這個分支正緩慢地朝向 3.0.1 以及以後的版本前進著, 而之前的
2.2-stable 分支則隨著 2.2.8 的發表而功成身退。3.0-current 將會成為主要
的發展線, 直到 1999 年初 3.0.1 發表為止。到那個時候, 3.0 就會成為另一
個分支, 而 3.1-current 則變成下一個 "current 分支"。
<sect1>
<heading>新的 FreeBSD 將於什麼時候推出 ?</heading>
<p>一般而言, 當 FreeBSD core team 認為已經累積了足夠多的新功能和錯誤修
正, 而且這些更動並不影響系統穩定度的時候, 他們才會推出新版的 FreeBSD。
雖然等待這些好東西的時間令人有點沮喪, 但是大多數的使用者都認為這種謹慎
的態度是 FreeBSD 最好的部份之一。
<p>平均而言, 我們每四個月發行一次 release。
<p>為了滿足那些需要 (或想要) 刺激的使用者, 通常 SNAP 的發表是相當頻繁
的, 特別是在 release 發表之前一個月左右。
<sect1>
<heading>FreeBSD 只能在 PC 上使用嗎 ?</heading>
<p>FreeBSD 3.x 目前可以在
<url url="../alpha/alpha.html" name="DEC Alpha"> 上使用, 就像在 x86 架
構下使用一樣。我們對移植到 SPARC 上也有相當的興趣, 不過這部份的計畫還
沒有完全明朗化。
如果您的機器不是以上這些架構, 而且您現在就要的話, 我們建議您參考
<url url="http://www.netbsd.org/" name="NetBSD"> 或是
<url url="http://www.openbsd.org/" name="OpenBSD">。
<sect1>
<heading>誰負責 FreeBSD 的發展 ?</heading>
<p>如果是一些有關 FreeBSD 計畫的關鍵性決定, 像是整個計畫的走向或是決
定誰可以改 source tree 裡的程式碼這類的事, 是由一個約 15 個人所組成的
<url url="../handbook/staff:core.html" name="core team"> 來決定。而有
另一群約 100 個人有權利可以直接修改 FreeBSD 的 source tree。
<p>無論如何, 大多數的改變都會事前在
<ref id="mailing" name="mailing lists"> 先討論過, 而且每個人都可以參與
討論。
<sect1>
<heading>我要如何取得 FreeBSD ?<label id="where-get"></heading>
<p>每個 FreeBSD 的重要版本都可以經由匿名 ftp 從
<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/" name="FreeBSD FTP site">
取得。
<itemize>
<item>如果是目前的 2.2-stable release, 2.2.8R, 請看
<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/2.2.8-RELEASE/"
name="2.2.8-RELEASE"> 這個目錄。
<item>如果是目前的 3.0-current release, 3.0-SNAP, 請看
<url url="ftp://current.freebsd.org/pub/FreeBSD/" name="3.0"> 這個目
錄。
<item>隨著 RELENG_2_2 分支 (後來的 2.2.8) 慢慢地進入維護階段, 我們每
天都會發行 <url url="ftp://releng22.freebsd.org/pub/FreeBSD/"
name="2.2 Snapshot">。我們目前正妥善維護著 RELENG_2_2 這個分支, 除非
對系統安全或是系統的可靠性有所增強, 否則我們將不再更動。
<item><ref id="current" name="-current"> 分支也是每天推出
<url url="ftp://current.freebsd.org/pub/FreeBSD/"
name="3.0 Snapshot">, 純粹是為了熱心的測試者以及發展人員所提供的。
</itemize>
<p>FreeBSD 的 CDROM 可以從下列地方取得 :
<p>Walnut Creek CDROM<newline>
4041 Pike Lane, Suite F<newline>
Concord, CA 94520 USA<newline>
Orders: +1 800 786-9907<newline>
Questions: +1 925 674-0783<newline>
FAX: +1 925 674-0821<newline>
email: <url url="mailto:orders@cdrom.com" name="WC Orders address">
<newline>
WWW: <url url="http://www.cdrom.com/" name="WC Home page">
<newline>
<p>如果您在澳洲, 您可以找 :
<p>Advanced Multimedia Distributors<newline>
Factory 1/1 Ovata Drive<newline>
Tullamarine, Melbourne<newline>
Victoria<newline>
Australia<newline>
Voice: +61 3 9338 6777<newline>
CDROM Support BBS<newline>
17 Irvine St<newline>
Peppermint Grove WA 6011<newline>
Voice: +61 9 385-3793<newline>
Fax: +61 9 385-2360<newline>
在英國 :
The Public Domain &amp; Shareware Library<newline>
Winscombe House, Beacon Rd<newline>
Crowborough<newline>
Sussex. TN6 1UL<newline>
Voice: +44 1892 663-298<newline>
Fax: +44 1892 667-473<newline>
<sect1>
<heading>
我在那裡可以找到有關 FreeBSD mailing lists 的資訊 ?<label id="mailing">
</heading>
<p>您可以在 <url url="../handbook/eresources:mail.html"
name="使用手冊 - mailing-lists"> 中找到完整的資訊。
<sect1>
<heading>有什麼討論 FreeBSD 的新聞討論群組嗎 ?</heading>
<p>您可以在 <url url="../handbook/eresources:news.html"
name="使用手冊 - 新聞討論群組"> 中找到完整的資訊。
<sect1>
<heading>
有專門討論 FreeBSD 的 IRC 頻道嗎 ?
</heading>
<p>是的, 大部份主要的 IRC 網路主機都提供了 FreeBSD 的聊天頻道 :
<itemize>
<item>EFNet 所提供的 <tt>&num;FreeBSD</tt> 頻道是一個 FreeBSD 的論
壇, 但是您可能無法從那邊得到技術方面的支援, 您也別想在那邊找到任何
人可以幫您避免掉閱讀 man page 以及自己研究的痛苦。那是一個以聊天為
主的頻道, 在那邊聊到 FreeBSD 和聊到性、運動、以及核子武器的機會是
一樣高的。
我們已經警告過您了。
您可以經由 <tt>irc.chat.org</tt> 來連線。
<item>DALNET 所提供的 <tt>&num;FreeBSD</tt> 頻道, 在美國可以經由
<tt>irc.dal.net</tt> 來連線, 在歐洲可以經由 <tt>irc.eu.dal.net</tt>
來連線。
<item>UNDERNET 所提供的 <tt>&num;FreeBSD</tt> 頻道, 在美國可以經由
<tt>us.undernet.org</tt> 來連線, 在歐洲可以經由
<tt>eu.undernet.org</tt> 來連線。
<item>最後, 您也可以加入 BSDNET 所提供的 <tt>&num;FreeBSD</tt> 頻
道, 這是一個小型的 BSD 專用聊天網路, 可以經由
<tt>irc.FreeBSD.org</tt> 來連線。
</itemize>
<p>以上的這些頻道都是不同的, 而且它們並沒有互相連通。它們聊天的方式也
不儘相同, 所以您可能每個都要去嚐試一下, 以找到最適合您的頻道。
<sect1>
<heading>FreeBSD 相關書籍</heading>
<p>您或許可以試試看 <tt>doc</tt> mailing list :
<url url="mailto:freebsd-doc@FreeBSD.ORG"
name="&lt;freebsd-doc@FreeBSD.ORG&gt;"> 上的 FreeBSD 文件計畫 (如果您
能加入這是計畫那是再好不過的了)。這個 mailing list 是用來討論 FreeBSD
文件的。如果您想要發問問題的話, 我們也有 <tt>questions</tt> mailing
list :
<url url="mailto:freebsd-questions@FreeBSD.ORG"
name="&lt;freebsd-questions@FreeBSD.ORG&gt;"> 。
<p>您也可以從
<url url="../handbook/handbook.html" name="FreeBSD 使用手冊">
取得 FreeBSD "使用手冊"。請注意, 這份文件仍處於製作階段, 有很多部份都
還沒有完成。
<p>有關 FreeBSD 的書籍中, 最好的應該就是 Greg Lehey 著作, Walnut Creek
CDROM Books 出版的 "The Complete FreeBSD" 了。現在這本書已經出到第二版
了, 總共 1750 頁左右, 內容包括安裝, 系統管理指導, 程式安裝協助, 以及
manual pages。這本書 (以及最新版的 FreeBSD release) 可以向
<url url="http://www.cdrom.com" name="Walnut Creek">,
<url url="http://www.cheapbytes.com" name="CheapBytes">, 或是任何一間
您喜歡的書局訂購。他的 ISBN 號碼是 1-57176-227-2。
<p>然而, 因為 FreeBSD 2.2.X 是以 4.4BSD-Lite2 為基礎來發展的系統, 所以
大部份 4.4BSD 的手冊都適用於 FreeBSD 2.2.X。O'Reilly and Associates
出版了下列手冊 :
<itemize>
<item>4.4BSD System Manager's Manual <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition June 1994, 804 pages <newline>
<url url="&isbn.amazon/1-56592-080-5" name="ISBN">: 1-56592-080-5 <newline>
<item>4.4BSD User's Reference Manual <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition June 1994, 905 pages <newline>
<url url="&isbn.amazon/1-56592-075-9" name="ISBN">: 1-56592-075-9 <newline>
<item>4.4BSD User's Supplementary Documents <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition July 1994, 712 pages <newline>
<url url="&isbn.amazon/1-56592-076-7" name="ISBN">: 1-56592-076-7 <newline>
<item>4.4BSD Programmer's Reference Manual <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition June 1994, 886 pages <newline>
<url url="&isbn.amazon/1-56592-078-3" name="ISBN">: 1-56592-078-3 <newline>
<item>4.4BSD Programmer's Supplementary Documents <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition July 1994, 596 pages <newline>
<url url="&isbn.amazon/1-56592-079-1" name="ISBN">: 1-56592-079-1 <newline>
</itemize>
<p>您可以在 WWW 上找到相關介紹 :
<url url="http://gnn.com/gnn/bus/ora/category/bsd.html"
name="4.4BSD books description">。因為銷售情形並不是很好, 所以您可能很
難去取得這些書籍。
<p>如果您想對 4.4BSD 的核心架構有更深層的認識, 您絕不能錯過這本書 :
<p>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels,
and John Quarterman.<newline>
<p><em>The Design and Implementation of the 4.4BSD Operating
System</em>. Reading, Mass. : Addison-Wesley, 1996.<newline>
<url url="&isbn.amazon/0-201-54979-4" name="ISBN"> 0-201-54979-4<newline>
<p>一本有關系統管理的好書 :
<p>Evi Nemeth, Garth Snyder, Scott Seebass &amp; Trent R. Hein,<newline>
``Unix System Administration Handbook'', Prentice-Hall, 1995<newline>
<url url="&isbn.amazon/0-13-151051-7" name="ISBN">: 0-13-151051-7<newline>
<p><bf/NOTE/ 請確認您買到的的確是第二版, 它是紅色書皮的, 第一版的不是。
<p>這本書涵蓋了一些基礎的東西, 包括 TCP/IP, DNS, NFS, SLIP/PPP,
sendmail, INN/NNTP, printing, 等。這本書蠻貴的 (大約
US&dollar;45-&dollar;55) , 不過它的確有這個價值。它也附了一片內含一些
工具程式原始碼的 CDROM ; 大部份的東西在 FreeBSD 2.2.6R 的 CDROM 裡也有 (
通常 FreeBSD CROM 裡的是比較新版的) 。
<sect1>
<heading>我要如何去存取您們的錯誤回報資料庫呢 ?</heading>
<p>所有使用者 open 的變更要求都可以經由我們 web 界面的 PR
<url url="http://www.freebsd.org/send-pr.html" name="submission"> 及
<url url="http://www.freebsd.org/cgi/query-pr-summary.cgi" name="query">
來查詢 (或是回報) 我們的錯誤回報資料庫。<em>send-pr(1)</em> 這個指令也
可以經由電子郵件來回報錯誤或是要求變更。
<sect1>
<heading>那裡可以找到 ASCII 或是 PostScript 版的 FAQ ?</heading>
<p>最新的 FAQ 可以從 FreeBSD 網站或是任何一個 mirror 站臺取得, 不論是
PostScript 或是純文字的 (包括 7 bit ASCII 以及 8-bit Latin1) 都有。
<p>PostScript 格式 (大約 370KB):
<itemize>
<item><url url="http://www.freebsd.org/FAQ/FAQ.ps"
name="http://www.freebsd.org/FAQ/FAQ.ps">
</itemize>
<p>ASCII 格式 (大約 220KB):
<itemize>
<item><url url="http://www.freebsd.org/FAQ/FAQ.ascii"
name="http://www.freebsd.org/FAQ/FAQ.ascii">
</itemize>
<p>ISO 8859-1 格式 (大約 220KB):
<itemize>
<item><url url="http://www.freebsd.org/FAQ/FAQ.latin1"
name="http://www.freebsd.org/FAQ/FAQ.latin1">
</itemize>
<sect1>
<heading>那裡可以找到 ASCII 或是 PostScript 版的使用手冊 ?</heading>
<p>最新的 FAQ 可以從 FreeBSD 網站或是任何一個 mirror 站臺取得, 不論是
PostScript 或是純文字的 (包括 7 bit ASCII 以及 8-bit Latin1) 都有。
<p>PostScript 格式 (大約 1.7MB):
<itemize>
<item><url url="http://www.freebsd.org/handbook/handbook.ps"
name="http://www.freebsd.org/handbook/handbook.ps">
</itemize>
<p>ASCII 格式 (大約 1080KB):
<itemize>
<item><url url="http://www.freebsd.org/handbook/handbook.ascii"
name="http://www.freebsd.org/handbook/handbook.ascii">
</itemize>
<p>ISO 8859-1 格式 (大約 1080KB):
<itemize>
<item><url url="http://www.freebsd.org/handbook/handbook.latin1"
name="http://www.freebsd.org/handbook/handbook.latin1">
</itemize>
<sect1>
<heading>ASCII 版的使用手冊不是純文字檔 !</heading>
<p>是的, ASCII 和 Latin1 格式的 FAQ 以及使用手冊嚴格來說並不能算是純
文字檔 ; 它們包含了一些印出底線以及重覆列印的控制碼以便能直接由點矩陣
式印表機輸出。如果您想把它們轉成一般的文字檔的話, 可以利用 col :
<verb>
$ col -b < inputfile > outputfile
</verb>
<sect1>
<heading>我想成為 FreeBSD 的 mirror 站臺 !</heading>
<p>當然可以 ! 有很多方法可以 mirror 我們的網頁。
<itemize>
<item>利用 CVSUP : 您可以利用 CVSUP 從 cvsup.freebsd.org 取得格式化
過的檔案。您只需要把下面這行加入您的 cvsup 設定檔 :
<verb>
www release=current hostname=/home base=/usr/local/etc/cvsup
prefix=/usr/local/www/data/www.freebsd.org delete old use-rel-suffix
</verb>
<item>利用 rsync : 請參閱
<url url="http://www.freebsd.org/internal/mirror.html"
name="the mirroring page"> 以獲得更多資訊。
<item>利用 ftp mirror : 您可以利用您喜歡的 ftp mirror 工具從 FTP 站
臺中取得網頁資料。就從
ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/www 開始吧。
</itemize>
<sect1>
<heading>我想要翻譯文件</heading>
<p>嗯, 我們沒能力給您薪水, 不過如果您能提供翻譯好的文件的話, 我們會送
您 CD 或是 T-shirt , 並把您加入使用手冊裡 Contributor 的行列。
<sect1>
<heading>其他資訊來源</heading>
<p>下列 newsgroups 中包括了 FreeBSD 相關的討論 :
<itemize>
<item><url url="news:comp.unix.bsd.freebsd.announce"
name="comp.unix.bsd.freebsd.announce"> (moderated)
<item><url url="news:comp.unix.bsd.freebsd.misc"
name="comp.unix.bsd.freebsd.misc">
<item><url url="news:comp.unix.bsd.misc" name="comp.unix.bsd.misc">
</itemize>
<p>網頁資源 :
<itemize>
<item>The <url url="http://www.freebsd.org/" name="FreeBSD Home Page">.
<item><label id="pao">如果您有膝上型電腦 (laptop) 的話, 別忘了去看看
位於日本的
<url url="http://www.jp.FreeBSD.org/PAO/"
name="Tatsumi Hosokawa's Mobile Computing page"> 。
<item><label id="smp">SMP (平行多處理器架構) 的相關資訊請看
<url url="http://www.freebsd.org/~fsmp/SMP/SMP.html"
name="SMP support page"> 。
<item><label id="multimedia">有關 FreeBSD 多媒體方面的應用程式, 請看
<url url="http://www.freebsd.org/~faulkner/multimedia/mm.html"
name="multimedia"> 。如果您對 Bt848 這個影像擷取晶片特別有興趣的話,
請看<url url="http://www.freebsd.org/~ahasty/Bt848.html"
name="這個網頁"> 。
</itemize>
<p>FreeBSD 使用手冊也有一分很完整的
<url url="../handbook/bibliography.html" name="參考書籍列表">, 如果您
正想買書的話, 這部份值得一看。
</sect>

489
zh/FAQ/serial.sgml Normal file
View file

@ -0,0 +1,489 @@
<!-- $Id: serial.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by ijliao@dragon2.net -->
<!-- English Version: 1.2 -->
<sect>
<heading>Serial 通訊<label id="serial"></heading>
<p>這一章主要是在討論 FreeBSD 上有關 serial 通訊的問題。有關 PPP 以及
SLIP 的問題是放在 <ref id="networking" name="網路"> 這一節。
<sect1>
<heading>我要怎麼知道 FreeBSD 是不是有抓到我的 serial port ?</heading>
<p>當 FreeBSD 開機的時候, 它會根據您在 kernel 中的設定來偵測您的
serial port。您可以在這些訊息出現的時候檢查, 也可以在系統開機之後用
下面的指令來觀察 :
<verb>
dmesg | grep sio
</verb>
<p>這裡有一些輸出的範例 :
<verb>
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
</verb>
<p>這代表您有兩個 serial port。第一個 port 佔用 irq 4, port address 是
<tt/0x3f8/ , 而且用的是 16550A 型的 UART 晶片。第二個 port 用的是同
型的晶片, 不過它佔用的是 irq 3 , 它的 port address 在 <tt/0x2f8/ 。
內接式 modem 卡會被辨識成是 serial port -- 唯一的差別就是該 port 上
總是接上 modem 而已。
<p><tt/GENERIC/ kernel 支援兩個 serial port , 它們的設定值就如同上面的
範例一樣。如果您系統上的設定不一樣, 或者您另外接了內接式 modem 卡,
或是您系統的實際 serial port 數比您在 kernel 設定中的還要多的話, 您
只要重新建立 kernel 就好了。詳情請看 <ref id="make-kernel"
name="如何建立 kernel"> 。
<sect1>
<heading>我要怎麼知道 FreeBSD 是不是有抓到我的 modem 卡 ?</heading>
<p>請看上一個問題。
<sect1>
<heading>我升級到 2.0.5 以後我的 <tt/tty0X/ 居然不見了 !</heading>
<p>不要緊張, 它們已經被併到 <tt/ttydX/ 裝置下去了。不過您還是得到自己
修改設定檔才能讓它們正常工作。
<sect1>
<heading>我要如何在 FreeBSD 下存取 seral ports ?</heading>
<p>第三個 serial port, <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?sio" name="sio2"> (就是 DOS
下的 COM3) , 以 dial-out 裝置來看是位於 <tt>/dev/cuaa2</tt> , 而以
dial-in 裝置來看則是位於 <tt>/dev/ttyd2</tt> 。這兩個裝置有什麼不同
呢 ?
<p>您在 dial-in 時使用的是 <tt/ttydX/ 。當您用 block 模式開啟
<tt>/dev/ttydX</tt> 時, 會有一隻 process 在對應的 <tt/cuaaX/ 上等它
變成 inactive , 然後一直等到 carrier detect line 變成 active 為止。
當您開啟 <tt/cuaaX/ 裝置時, 它會去確定目前 <tt/ttydX/ 裝置是不是正
在使用 serial port。如果它可以用的話, 它就會把 serial port 從
<tt/ttydX/ 裝置手中搶過來。同樣的, <tt/cuaXX/ 裝置不會去管 carrier
detect。有了這樣的設計, 再加上一台會自動回應的 modem, 您就可以令同
一台 modem 可以被遠端使用者拿來登入, 您自己也可以拿來 dialout, 系統
會自動檢查是否有衝突的現象。
<sect1>
<heading>我要如何啟動對 serial 多埠卡的支援 ?</heading>
<p>同樣的, 在 kernel 設定那一節有提到有關設定 kernel 的資訊。要設定一
張 serial 多埠卡, 您必需在您的 kernel 設定檔中為每一個 serial port
都設一行 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sio"
name="sio"> 的設定。但是您只能在它們之中選一個來設定 irq 以及
vector 。卡上的所有 port 會共享同一個 irq 。一般來說我們都把它設在最
後一個 serial port 上。不要忘了指定 <tt/COM&lowbar;MULTIPORT/ 這個
option 。
<p>下面是一個把 AST 4-port 卡 設在 irq 7 的例子 :
<verb>
options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
</verb>
<p>這裡的 flags 設定是指 master port 的 minor number 是 7
(<tt/0x700/), 在偵測時做檢查 (<tt/0x080/), 以及所有的 port 共享一個
irq (<tt/0x001/) 。
<sect1>
<heading>FreeBSD 可以控制多張 serial 多埠卡使用同一個 irq 嗎 ?</heading>
<p>還沒支援。您必需為每張卡設定不同的 irq 。
<sect1>
<heading>我可以為 port 設定預設參數嗎 ?</heading>
<p>通常您會想為您的應用程式開啟 <tt/ttydX/ (或是 <tt/cuaaX/) 裝置。當
一個 process 開啟裝置以後, 它會有一組預設的終端機 I/O 設定。您可以用
下面這個指令來觀察這些設定
<verb>
stty -a -f /dev/ttyd1
</verb>
<p>當您改變了某個裝置的設定後, 這些設定會一直作用, 直到這個裝置被關閉
了為止。當它被重開啟後, 又回到原先的預設值了。如果想要改變預設值, 您
可以開啟並修改 ``初始狀態'' 裝置的設定。舉例來說, 如果您想改變 ttyd5
的預設值, 把 <tt/CLOCAL/ 模式打開, 8 bits, 並且使用
<tt>XON/XOFF</tt> 流量控制, 您可以這樣做 :
<verb>
stty -f /dev/ttyid5 clocal cs8 ixon ixoff
</verb>
<p>您可以在 <tt>/etc/rc.serial</tt> 裡做這樣的設定。現在每一個開啟
<tt/ttyd5/ 的應用程式都會預設使用這些設定了。您依然可以用同樣的方法
去改變這些設定。
<p>您也可以藉由設定 ``鎖定狀態'' 裝置來防止其他應用程式去更動這些設定
。舉例來說, 想要把 <tt/ttyd5/ 的速度鎖定在 57600 bps, 您要這樣做
<verb>
stty -f /dev/ttyld5 57600
</verb>
<p>這樣一來, 每一個開啟 <tt/ttyd5/ 的應用程式都只能使用 57600 bps 的速
度了。
<p>當然, 您必需確定您的初始狀態以及鎖定狀態的裝置只能被 <tt/root/ 寫入
。<htmlurl url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV"
name="MAKEDEV"> 這個 script 並 <bf/不會/ 在建立這些裝置時自動幫您設
定好。
<sect1>
<heading>我要怎樣才能讓 modem 接受 dialup 登入呢 ?</heading>
<p>您是不是想當 ISP ? 首先, 您要有一部以上可以自動接聽的 modem。您的
modem 必須要有 carrier-detect 的功能。它也要能夠在 data terminal
ready (<tt/DTR/) 由開轉為關時重新設定自己。它或許也要能夠使用
<tt>RTS/CTS</tt> 流量控制或是不做任何流量控制。最後, 它必須能夠在電
腦和它自己的傳輸中使用定速, 但是在它和遠端 modem 的連線方面則要有協
商傳輸速度的能力。
<p>對 Hayes 指令集相容 modem 來說, 下面的指令會把上一段所講的全部設好
並存在非揮發性記憶體中 :
<verb>
AT &amp;C1 &amp;D3 &amp;K3 &amp;Q6 S0=1 &amp;W
</verb>
<p>看看下面的 <ref id="direct-at" name="傳送 AT 指令集"> 這一節可以得
更多有關如何不利用 MS-DOS 終端程式來做這些設定的資料。
<p>接下來, 在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys"
name="/etc/ttys"> 為您的 modem 做設定。列在這個檔案中的是所有系統會
待 login 的 ports 。像下面這樣加入一行 :
<verb>
ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
</verb>
<p>這一行指令第二個 serial port (<tt>/dev/ttyd1</tt>) 是一個以 57600
bps 速度在傳輸的 modem, 並且不做同位檢查 (<tt/std.57600/ 是在
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?gettytab"
name="/etc/gettytab"> 檔裡指定的) 。這個 port 的終端機型態是
``dialup'' 。這個 port 設成 ``on'' 而且是 ``insecure'' 的 --- 意思是
root 不能從這裡連線進來。您必需為每個 dialin port 都做類似
<tt/ttydX/ 的設定。
<p>通常我們會用 ``dialup'' 來做為終端機型態。如果使用者登入時的啟始型
態是 dialup 的話, 很多使用者都會在他們的 .profile 或是 .login 檔中設
定他們真正的終端機型態。上面的例子中我們舉的是 insecure 的例子。如果
您想要在這個 port 變成 root 的話, 您必須用一般使用者的身份登入, 然後
``<htmlurl url="http://www.freebsd.org/cgi/man.cgi?su" name="su">''
成 <tt/root/ 。如果您用的是 ``secure'' 的話, 則 <tt/root/ 可以直接登
入。
<p>在對 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys"
name="/etc/ttys"> 做過修改之後, 您必須送一個 hangup 或是 <tt/HUP/
的 signal 給 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?init"
name="init"> process :
<verb>
kill -HUP 1
</verb>
<p>這樣會強迫 init process 去重讀 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> 。
然後 init process 就會在所有的 ``on'' port 上重新啟動 getty
process 。您可以用下列指令來檢查您的 port 是不是可以 login 了
<verb>
ps -ax | grep '[t]tyd1'
</verb>
<p>您會見到類似這樣的結果 :
<verb>
747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1
</verb>
<sect1>
<heading>我要怎麼把 dumb terminal 連上 FreeBSD ?</heading>
<p>如果您要把別的電腦當成是 FreeBSD 的終端機的話, 您只需要在兩者的
serial port 之間牽一條 null modem 排線即可。如果您有一個真的終端機
的話, 看看它的指令集吧。
<p>然後, 像上一個問題一樣修改
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys"
name="/etc/ttys"> 。舉例來說, 如果您把一個 WYSE-50 終端機接在第五個
serial port 上的話, 就要用這樣的設定 :
<verb>
ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
</verb>
<p>這個例子示範的是 <tt>/dev/ttyd4</tt> 所代表的 port 用的是 wyse50 終
端機, 連線速度 38400 bps, 不使用同位檢查 (<tt/std.38400/ 是從
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?gettytab"
name="/etc/gettytab"> 設定的) 而且 <tt/root/ 可以 login (secure) 。
<sect1>
<heading>為什麼我不能執行 <tt/tip/ 及 <tt/cu/ 呢 ?</heading>
<p>在您的系統中, <htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip"
name="tip"> 和 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?cu"
name="cu"> 很可能只能由 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?uucp" name="uucp"> 使用者和
<tt/dialer/ 群組才能執行。您可以用 <tt/dialer/ 群組來控制到底有誰可
以存取您的 modem 以及遠端系統。您只要把您自己加到 dialer 群組中就可
以了。
<p>另外一種方法是, 您可以讓您系統上所有使用者都可以執行 <tt/tip/ 和
<tt/cu/ , 只要您
<verb>
# chmod 4511 /usr/bin/cu
# chmod 4511 /usr/bin/tip
</verb>
<sect1>
<heading>FreeBSD 不支援我的 stock Hayes modem --- 我要怎麼辦 ?</heading>
<p>事實上, <htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip"
name="tip"> 的 man page 已經過時了。一般的 Hayes dialer 已經內建在系
統內。您只要在 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?remote" name="/etc/remote">
指定 ``<tt/at=hayes/'' 就可以了。
<p>可惜的是, Hayes 的驅動程式不夠聰明, 有些新 modem 上的進階功能它無法
辨識出來 --- 例如 <tt/BUSY/ , <tt/NO DIALTONE/ , 或是
<tt/CONNECT 115200/ 這類的訊息它就會搞混。您在使用 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> 的時候必須
把它們關掉 (用 <tt/ATX0&amp;W/) 。
<p>還有, <tt/tip/ 的 dial 逾時時間是 60 秒。您的 modem 可能要設得更短,
否則 tip 會認為發生了通訊上的問題。試試看<tt/ATS7=45&amp;W/ 。
<p>事實上 <tt/tip/ 還沒有完全支援它。解決方法是去修改
<tt>/usr/src/usr.bin/tip/tip</tt> 目錄裡的 <tt/tipconf.h/ 。很顯然您
必須要有原始程式碼才能這麼做。
<p>把 ``<tt/#define HAYES 0/'' 改成 ``<tt/#define HAYES 1/'' 。然後
``<tt/make/'' 並 ``<tt/make install/'' 。之後一切都會恢復正常了。
<sect1>
<heading>
我什麼時候要直接鍵入 AT 指令 ?<label id="direct-at">
</heading>
<p>在您的 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote"
name="/etc/remote"> 檔裡加一個 ``<tt/direct/'' 。舉例來說, 如果您的
modem 連接在第一個 serial port, <tt>/dev/cuaa0</tt>, 則您要加入下面
這一行 :
<verb>
cuaa0:dv=/dev/cuaa0:br#19200:pa=none
</verb>
<p>在 br 欄中設定您 modem 所支援的最高速。之後, 鍵入 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip cuaa0"> 之後
您就連上您的 modem 了。
<p>如果您的系統上沒有 <tt>/dev/cuaa0</tt> , 您就先這樣 :
<verb>
# cd /dev
# ./MAKEDEV cuaa0
</verb>
<p>或是您可以用 root 執行 cu 指令, 像這樣 :
<verb>
# cu -l``line'' -s``speed''
</verb>
<p>這裡的 line 是指您的 serial port (例如 <tt>/dev/cuaa0</tt>) , speed
是指您的傳輸速度 (例如 <tt>57600</tt>) 。如果您下完 AT 指令後, 鍵入
<tt>~.</tt> 可以離開。
<sect1>
<heading>pn 欄中的 <tt/@/ 不能用了 !</heading>
<p>電話號碼欄中的 <tt/@/ 記號是用來告訴 tip 去 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?phones(5)"
name="/etc/phones"> 找電話號碼。但是 <tt/@/ 同時也是 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?remote" name="/etc/remote">
這類檔案中的特殊字元。您可以加上反斜線 :
<verb>
pn=\@
</verb>
<sect1>
<heading>我要怎麼在命令列下撥電話呢 ?</heading>
<p>在您的 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote"
name="/etc/remote"> 放一個 ``<tt/generic/''。舉例來說 :
<verb>
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
</verb>
<p>然後您就可以像 ``<tt/tip -115200 5551234/'' 這樣用了。如果您比較喜
歡用 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?cu" name="cu">
的話, 使用 generic cu 欄位 :
<verb>
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
</verb>
<p>然後輸入 ``<tt/cu 5551234 -s 115200/'' 。
<sect1>
<heading>我每次用的時候都要輸入 bps 速度嗎 ?</heading>
<p>您可以使用類似 <tt/tip1200/ 或是 <tt/cu1200/ 的欄位, 不過在您使用之
前請先確定您的 br 欄可以支援這個速度。<htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> 認為 1200
bps 是一個很好的預設值, 這也就是為什麼要叫做 ``<tt/tip1200/'' 的原因
了。當然您也可以不要用 1200 bps 。
<sect1>
<heading>透過一台 terminal server 來存取主機。</heading>
<p>除了每次等您連上 server 並鍵入 ``<tt/CONNECT &lt;host&gt;/'' 以外,
比較好的方法是用 tip 的 <tt/cm/ 。舉例來說, 看看 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?remote" name="/etc/remote"> :
<verb>
pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:
</verb>
<p>可以讓您只打 ``<tt/tip pain/'' 或是 ``<tt/tip muffin/'' 就可以連上
pain 或 muffin ; 然後 ``<tt/tip deep13/'' 可以連上 terminal server。
<sect1>
<heading>tip 可以在一次連線中選擇多台機器嗎 ?</heading>
<p>通常這個問題發生在 : 一間大學有一些 modem , 而且有上千名學生要用...
<p>在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote"
name="/etc/remote"> 裡為您的大學設一個欄位, 並使用 <tt>\@</tt> 作為
它的 <tt/pn/ :
<verb>
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
</verb>
<p>然後, 把大學的撥接電話放在 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?phones" name="/etc/phones">
中 :
<verb>
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
</verb>
<p><htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip">
會依照表列的順序依次嚐試, 最後放棄。如果您要一直試的話, 您可以在
while 迴圈裡執行 <tt/tip/ 。
<sect1>
<heading>為什麼我按兩次 CTRL+P, 可是卻只送出了一個 CTRL+P ?</heading>
<p>CTRL+P 是內定的 ``force'' 字元, 用來告訴 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> 下一個字元
是一般字元。您可以藉由 <tt/~s/ (代表 ``設定變數'') 把其他字元設成強
迫字元。
<p>鍵入 ``<tt/~sforce=&lt;single-char&gt;/'' 後面接一個 newline 。
<tt/&lt;single-char&gt;/ 可以是任意單一字元。如果您只打
<tt/&lt;single-char&gt;/ , 則 nul 就被設成是 force character, 您可
以藉由按 CTRL+2 或是 CTRL+SPACE 來按出 nul 。SHIFT+CTRL+6 是一個不
錯的 <tt/&lt;single-char&gt;/ , 我看過一些終端機都是這麼設定。
<p>您也可以在 <tt>&dollar;HOME/.tiprc</tt> 中設定 force character :
<verb>
force=<single-char>
</verb>
<sect1>
<heading>突然間我打的東西都變成大寫了 ??</heading>
<p>您應該是按到了 CTRL+A, 在 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> 中為沒有
caps-lock 鍵的使用者所設計的 ``raise character''。您可以像上個問題
一樣利用 <tt/~s/ 來把 ``raisechar'' 這個變數改成合理的值。事實上,
如果您認為您永遠都不會用到這兩個功能的話, 您可以把它設成跟 force
character 一樣。
<p>下面是一個為 Emacs 使用者所設定的 .tiprc , Emacs 使用者常常會用到
CTRL+2 和 CTRL+A :
<verb>
force=^^
raisechar=^^
</verb>
<p>^^ 就是 SHIFT+CTRL+6 。
<sect1>
<heading>我要如何使用 <tt/tip/ 來傳檔案呢 ?</heading>
<p>如果您的對像也是 UNIX 系統的話, 您可以用 <tt/~p/ (put) 和 <tt/~t/
(take) 來收送資料。這兩個命令會在遠端機器執行 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?cat" name="cat"> 和 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?echo" name="echo"> 來收送檔
案。用法是 :
<verb>
~p <local-file> [<remote-file>]
~t <remote-file> [<local-file>]
</verb>
<p>它不會做錯誤檢查, 所以您最好用別的通訊協定, 例如 zmodem 。
<sect1>
<heading>我要怎麼用 <tt/tip/ 來跑 zmodem 呢 ?</heading>
<p>首先, 從 ports 中選一個 zmodem 程式來安 裝 (例如在 comms 目錄下的
<htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^lrzsz"
name="lrzsz"> 或是 <htmlurl
url="http://www.freebsd.org/cgi/ports.cgi?^rzsz" name="rzsz"> ) 。
<p>在接收檔案方面, 您要先在遠端啟動傳送程式。然後按 enter 再鍵入
``<tt/~C rz/'' (如果您安裝 lrzsz 的話就要打 ``<tt/~C lrz/'') 就可以
開始接收了。
<p>在傳送檔案方面, 您要先在遠端啟動傳送程式。然後按 enter 再鍵入
``<tt/~C sz &lt;files&gt;/'' (或是 ``<tt/~C lsz &lt;files&gt;/'') 就
可以把檔案送到遠端系統了。
<sect1>
<heading>就算我設定無誤, FreeBSD 好像還是找不到我的 serial port ?</heading>
<p>如果您的主機板或是卡上有用到 Acer 的 UART 晶片的話, FreeBSD 在開機時
的 sio 偵測可能會不正確。您可以從 <url
url="http://www.lemis.com/serial-port-patch.html" name="www.lemis.com">
找到 patch 來修正這個問題。
</sect>

446
zh/FAQ/troubleshoot.sgml Normal file
View file

@ -0,0 +1,446 @@
<!-- $Id: troubleshoot.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by corona@tale.net -->
<!-- English Version: 1.9 -->
<sect>
<heading>常見問題解決<label id="troubleshoot"></heading>
<sect1>
<heading>我的硬碟有壞軌!<label id="awre"></heading>
<p>若是 SCSI 硬碟的話,應該有能力自動作 re-mapping 的動作。
然而,因為一些神秘的因素,在出廠時,很多硬碟的這項功能是關閉的.
<p>要將其重新開啟,您需要編輯裝置的第一個 page 模式
first device page mode在 FreeBSD 上可以用下面的指令辦到
(以 root 身分執行)
<verb>
scsi -f /dev/rsd0c -m 1 -e -P 3
</verb>
<p>然後將 AWRE 和 ARRE 的數值從 0 變成 1:-
<verb>
AWRE (Auto Write Reallocation Enbld): 1
ARRE (Auto Read Reallocation Enbld): 1
</verb>
<p>上面這段是由
<url url="mailto:tedm@toybox.placo.com" name="Ted Mittelstaedt">所提供:
<p>若為 IDE 硬碟,任何的壞軌通常都是麻煩的預兆。目前所有較新的 IDE 硬
碟,內部都有自動 remapping 壞軌的能力。目前所有 IDE 硬碟製造商,都提供
了更久的保證,而且會幫您更換出現壞軌的硬碟。
<p>如果您仍想要修復產生壞軌的 IDE 硬碟,您仍可以試著去下載 IDE 硬碟製造
商所提供的檢測程式,並用它來檢查您的硬碟。有時這些軟體可以強迫硬碟電路
重新檢查硬碟的壞軌,並將它們標示出來.
<p>對 ESDIRLL 及 MFM 的硬碟來說,通常壞軌是正常現象,也不是什麼麻煩的
前兆。在 PC 上,磁碟控制卡和 BIOS 負責標示壞軌的任務。這對一些使用 BIOS
來存取磁碟的作業環境(如 DOS)是沒有問題的。然而FreeBSD 的磁碟驅動程式
並不經過 BIOS 來存取磁碟,所以,有個 bad144 的機制用來取代這項功能。
bad144 只能用在 wd 這個磁碟驅動程式上,它無法用在 SCSI 硬碟上。bad144
的工作方法是將所有找到的壞軌資料存到一個特別的檔案裏。
<p>使用 bad144 的警告 - 存著壞軌資料的特別檔案是放在硬碟的最後一軌
上。因為這個檔案儲存的壞軌資料中,有可能有些資料是指向硬碟最前端所發生
的壞軌情形,就是可能儲存 /kernel 這個檔的地方,所以它一定要能被開機程式
所讀取,而開機程式是透過 BIOS 來讀取 kernel 檔。這表示了使用 bad144 的
硬碟絕不能擁有超過 1024 個 cylinder16 個 head 及 63 個 sector。
這造成了使用 bad144 的硬碟的大小不能大於 500 MB。
<p>要使用 bad144 很簡單,只要在開始安裝時,在 FreeBSD fdisk 畫面把
"Bad Block" 掃瞄設為 ON 即可。在 FreeBSD 2.2.7 以後都可以使用此方法。
但這個硬碟的 cylinder 一定要在 1024 以下。使用前,我們建議這個硬碟要
至少先使用四個小時,以便熱膨脹與磁軌偏移達一般狀態。
<p>如果這個硬碟擁有超過 1024 個 cylinder (像大容量的 ESDI 硬碟)
ESDI 控制卡利用一個特別的轉換模式使它能在 DOS 下工作。
而如果您在 fdisk 裏的 "set geometry" 中輸入 "轉換過" 的 geometrywd 這
個驅動程式能了解這些轉換模式。您也絕對不能使用 dangerously dedicated 模
式來建立 FreeBSD 的分割區,因為它會忽略 geometry 這個參數。
此外,就算 fdisk 使用您所輸入的 geometry 參數,它依然會去讀取這硬碟的
真正資料,而會嘗試去建立一個過大的 FreeBSD 分割區。如果磁碟的 geometry
已經被 "轉換" 過了,那麼這個分割區 "必須" 以手動輸入 block 數目的方法來
建立。
<p>一個快速的小技巧是利用 ESDI 控制卡來設定大容量的 ESDI 硬碟,用 DOS 開
機片開機,再將它 format 為 DOS 的分割區。然後重開機進入 FreeBSD 安裝程序
,在 fdisk 畫面把DOS 分割區的 blocksize 和 block number 抄下來。然後重
新設定 geometry 使其跟 DOS 使用的一樣。刪除 DOS 分割區,然後使用您剛剛抄
下的 blocksize 來建立一個 cooperative FreeBSD 分割區。然後設定這個分割區
為可開機再打開壞軌掃瞄。在真正的安裝過程中bad144 會在任何檔案系統被
建立前先被執行。(您可以按 Alt-F2 來監看這一切)如果在建立壞軌資料檔時發生
了問題,您會需要設定一個較大的磁碟 geometry - 這表示您需要重開機,然後全
部再重新開始 (包括重新分割以及在 DOS 下重新 format)。
<p>如果 remapping 的功能已經啟動了,而您依然一直看到壞軌產生,那麼考慮
換一台硬碟吧。壞軌的情形只會隨時間增加而更為嚴重。
<sect1>
<heading>FreeBSD 抓不到我的 Bustek 742a EISA SCSI 卡!</heading>
<p>下面的資訊是給 742a 這張卡用的,但是其他 Buslogic 的卡或許也可以
適用。 (Bustek 就是 Buslogic)
<p>742a 這張卡有兩個主要的「版本」。一個是版本 A-G另一個是版本 H
及其以後。版本資訊可以從介面卡邊緣的流水號最後面得知。742a 這張
卡有兩個唯讀晶片在它上面,一個是 BIOS 晶片,而另一個是韌體晶片。
FreeBSD 並不在乎您卡上的 BIOS 版本,但是韌體的版本就很重要了。如果
你打電話給他們技術支援專線的話,他們會寄給您最新的版本供您升級。
BIOS 和韌體晶片是一起送來的。 您需要將卡上 BIOS 和韌體版本,依您卡
版本的不同,升級到最新的一版。
<p>版本 A-G 的卡最高只能將 BIOS/韌體 升級到 2.41/2.21 版,而版本 H
後,目前 BIOS/韌體的最新版本是 4.70/3.37。這兩個韌體版本間的差異在
3.37 這版支援 ``round robin''
<p>Buslogic 的卡上面也都有序號。如果您卡的版本較舊,您可以試著打電
話給 Buslogic 的RMA 部門,然後給他們您的序號,看能不能跟他們交換一
張較新版本的卡。如果那張卡夠舊的話,他們會換給你。
<p>FreeBSD 2.1 只支援韌體 2.21 版以後的版本。如果您韌體版本比這個還
舊的話,那麼您的卡就不能被辨識出是 Buslogic 的卡。它有可能會被辨識成
Adaptec 1540。較早的 Buslogic 卡上的韌體有一個 AHA1540``模擬''模式,
這對一張 EISA 卡來說並不是件好事。
<p>如果您有一張較舊版本的卡,而您取得 2.21 版韌體的話,您需要檢查一下
jumper W1 的位置,將它調至 B-C原始設定是 A-B。
<p>742a EISA 卡沒有在 <ref id="bigram" name="在擁有 &gt;16 MB 記憶體的機器上">
這段中所提過的 ``&gt;16MB'' 問題。這個問題只會發生在 Vesa-Local 匯流排的
Buslogic SCSI 卡上。
<sect1>
<heading>
FreeBSD 抓不到我的 HP Netserver 的 SCSI 控制卡!
</heading>
<p>基本上這個是一個已知的問題。在 HP Netserver 機器上的 on-board
EISA 介面 SCSI 控制卡占據了定址為第 11 的 EISA 槽,因此所有的 ``真實''
EISA 槽都在它之前。可是,在 EISA 定址空間 >= 10 時,會與指定給 PCI
用的定址空間相衝突,且 FreeBSD 的 auto-configuration 無法正確的處理
這個情形。
<p>因此,現在你能做的最好事情就是在 kernel 裏設定 <tt/EISA_SLOTS/
這個選項為 12 ,然後當作沒有這個問題 :)。
請依照 <url url="../handbook/kernelconfig.html"
name="Handbook 中有關 kernel 的設定"> 裏所說的方法來
設定與編譯您的 kernel
<p>當然,在安裝到這種機器上時,這是一個雞生蛋蛋生雞的問題。
為了解決這個問題,在 <em>UserConfig</em> 中有一個特別的方法,
安裝時不要進入 ``visual'' 介面,相反的,在命令列模式中,鍵入
<verb>
eisa 12
quit
</verb>
<p>然後就如以往一樣安裝您的系統。雖然我們建議您編譯與安裝一個
屬於自己的 kernel
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?dset" name="dset">
現在也已經了解這個參數,且會儲存它。
<p>希望,在未來的版本中能對這個問題有一個好的解決方法。
<p><tt/注意:/ 您無法在 HP Netserver 上使用 <bf/dangerously dedicated/
磁碟模式。您可以參考 <ref id="dedicate" name="這份註解">以獲得更多
資訊。
<sect1>
<heading>CMD640 IDE 控制晶片出了什麼問題?</heading>
<p>它的問題在於無法同時處理兩個 channel 的指令。
<p>現在已經有個解決方法了,且會自動在您使用這塊晶片時啟動。
如果需要更詳盡的解釋,請查閱有關磁碟驅動程式的說明(man 4 wd)
<p>如果您目前是使用 CMD640 IDE 控制晶片,加上 FreeBSD 2.2.1 或
2.2.2,而且您又想要使用到第二個 channel 時,請在您的 kernel 設
定中加入 <tt/options "CMD640"/ 然後重新編譯一個新的 kernel。
這個 option 在 2.2.5 版以後是內定啟動的。
<sect1>
<heading>我一直看到類似 ``<tt/ed1: timeout/'' 的訊息</heading>
<p>這個通常是由於中斷衝突(interrupt conflict)所造成的 (例如,兩塊卡
使用到了相同的 IRQ)。 FreeBSD 在 2.0.5 版以前都容許這個情形,
就算有 IRQ 衝突情形,網路卡也應該仍可正常運作。
然而,在 2.0.5 版及其以後,已不再容許有 IRQ 衝突的情形了。
請於開機時使用 -c 這個選項,然後更改 ed0/de0/..。等的設定,使其
和您網路卡本身的設定一致。
<p>如果您是使用您網路卡上的 BNC 接頭,您或許也會因不良的終端電阻設定,
而發生裝置 (device) timeout 的情形。要檢查是否有這種情形,您可以在
網路卡上直接接上終端電阻 (不要接網路線),然後看看這個錯誤訊息是不是
就消失了。
<p>有些 NE2000 的相容卡,如果它的 UTP 埠沒有接網路線,或是該網路線並
沒被使用的話,也會出現這個錯誤訊息。
<sect1>
<heading>在我想要掛上 CDROM 時,出現``Incorrect super block''的訊息</heading>
<p>您必須告訴
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount" name="mount">
您想掛上的 device 的檔案格式。在原始設定裏,
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount" name="mount">
會假設您的檔案格式為 ``<tt/ufs/''。如果您想要掛上 CD-ROM 裏的檔案,
您需要在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount"
name="mount">。
時指定 ``<tt/-t cd9660/'' 這個選項。當然,這是假設光碟片是使用
ISO 9660 的檔案系統 (絕大多數光碟片皆是用這套檔案系統)
且在 1.1 版以後FreeBSD 已經能看得懂 Rock Ridge (長檔名) 這個延伸格式。
<p>舉例來說,如果您想將 ``<tt>/dev/cd0c</tt>'' 這個 CDROM 裝置 (device)
掛在 <tt>/mnt</tt> 下,您需要執行:
<verb>
mount -t cd9660 /dev/cd0c /mnt
</verb>
<p>要注意的是,您的裝置名稱可能會不一樣 (在此範例中是
``<tt>/dev/cd0c</tt>'',它是根據您的 CDROM 介面而定的。
另外要注意的,``<tt/-t cd9660/'' 這個選項只是呼叫
``<tt/mount&lowbar;cd9660/'' 這個指令,所以上面這個範例
也可以縮短為:
<verb>
mount_cd9660 /dev/cd0c /mnt
</verb>
<sect1>
<heading>當我想掛上 CDROM 時,出現了 ``Device not configured'' 的錯誤訊息
</heading>
<p>這通常是表示您的 CD-ROM 裏面沒有光碟片,或者是這台機器無法被
匯流排 (bus) 抓到。放片光碟片在光碟機裏,如果它是 IDE (ATAPI) 的
光碟機的話,檢查一下它的 master/slave 狀態。光碟機通常需要幾秒鐘
的時間才能備妥 (ready),所以請耐心等候。
<p>有時這是發生在 SCSI CD-ROM 上,因為它在匯流排重置 (bus reset)
時來不及回應,所以消失了。如果您擁有的是 SCSI CD-ROM請嘗試在
kernel 設定檔中加入以下的設定,然後重新編譯。
<verb>
options "SCSI_DELAY=15"
</verb>
<sect1>
<heading>我的印表速度破天荒的慢。我該怎麼做?</heading>
<p>如果是平行埠,且唯一的問題就是速度很慢的話,試著設定您的
印表機埠為 ``polled'' 模式:
<verb>
lptcontrol -p
</verb>
<p>有些新的 HP 印表機似乎無法在 interrupt 模式中正常工作,
很明顯的是因為一些時脈問題 (但還不是很瞭解為什麼會如此)
<sect1>
<heading>我的程式有時會因 ``Signal 11'' 這個錯誤而停止</heading>
<p>這個通常是因為有問題的硬體 (記憶體,主機板等等) 所造成的.
試試在您的 PC 上跑個記憶體測試程式看看。注意,就算您試過的每一種記
憶體測試程式都回報說您的記憶體沒有問題,但是,有一些低品質的記憶體,
雖然能通過記憶體測試,不過在真正工作時卻會出問題 (例如從
Adaptec 1542 等等 SCSI 控制卡做 bus mastering DMA、在編輯 kernel 時、
或是系統的負載很高時)
<p>SIG11 FAQ (位址在下面) 指出記憶體的速度不夠快通常是這個問題的原因。
試著在您的 BIOS 設定中增加記憶體 wait 狀態的時間,或是更換更快的記憶
體。
<p>以我而言,我曾遇過由不良的快取記憶體或是不良的 on-board 快取卡
所造成的這個問題。試著在 BIOS 設定中取消 on-board (第二階) 快取,
看看這樣能不能解決這個問題
<p>這兒有一份很好的 FAQ:
<url url="http://www.bitwizard.nl/sig11/" name="SIG11 問題的 FAQ">
<sect1>
<heading>當我開機時,螢幕變黑,且不停閃動!</heading>
<p>這個問題,已知是由 ATI Mach 64 顯示卡所引起的。因為這塊卡使用到
<tt/2e8/ 這個位址,而這與第四個序列埠(serial port)所使用的位址相同。而
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?sio" name="sio.c">
這個驅動程式,不知道是 bug 或是功能(feather),就算您沒有第四個序列埠,
或是已經將 sio3 (第四個序列埠)取消了,它依然會去嘗試驅動它。
<p>直到這個問題被解決以前,您可以使用這個方法:
<enum>
<item>在開機提示(看到<tt/boot:/ 時)打入 <tt/-c/。 (這會讓 kernel
進入設定模式)
<item>取消 <tt/sio0/<tt/sio1/<tt/sio2/ and <tt/sio3/ (全部)
這可以讓 sio 驅動程式不動作 -> 於是問題解決。
<item>輸入 exit 以繼續啟動程序
</enum>
<p>如果您想要使用您的序列埠,您需要修改
<tt>/usr/src/sys/i386/isa/sio.c</tt>,在該檔中找出 <tt/0x2e8/ 這個字串
移除這個字串及它前面的逗號(保留後面的),然後重新編譯一個新的 kernel
<p>就算使用了上面這些方法X Window 仍然有可能無法順利執行。有些新的
ATI Mach 64 顯示卡(特別是 ATI Mach Xpression無法在目前版本的
<tt/XFree86/ 上正常工作;啟動 X Window 時螢幕變黑,或是會有奇怪的問題
發生。您可以到 <url url="http://www.xfree86.org" name="XFree86 的網站">
找到 new beta release 這個連結(link),來取得 X-server 的 beta 版,它的
相容情形應該就比較好了。您需要取得下列這些檔案:
<p><tt>AccelCardsBetaReportCardsDevicesFILESREADME.ati
README.FreeBSDREADME.Mach64RELNOTESVGADriver.Doc
X312BMa64.tgz</tt>
<p>以這些檔案取代您原有的舊檔案,然後切記再跑 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"
name="xf86config"> 一遍。
<sect1>
<heading>
我有 128 MB 的 RAM但是系統只用其中的 64MB
<label id="reallybigram">
</heading>
<p>因為 FreeBSD 是使用呼叫 BIOS 來取得記憶體大小的方法,因此它只能
偵測到 16 bits 位元長度的 KByte 大小 (65535 KBytes = 64MB)
(或者更少..。有些 BIOS 將最高記憶體大小限為只有 16MB)
如果您擁有 64MB 以上的 RAMFreeBSD 會嘗試去偵測出它,但是有可能
會失敗。
<p>要解決這個問題,您需要使用下面所提的 kernel 設定選項。
雖然有方法可以從 BIOS 中取得記憶體的完整資訊,但是目前我們在
bootblock 中並沒有多餘的空間來做這件事。當某天 bootblock 空間
不足的情形獲得解決時,我們將會使用 BIOS 的延伸功能來取得記憶
體的完整資訊...但現在我們將它放在 kernel 設定選項中。
<tt>
options "MAXMEM=&lt;n>"
</tt>
<p><tt/n/ 是指您的記憶體大小,以 KB 為單位。以一台有 128MB RAM 的
機器來說,您可使用 <tt/131072/ 這個數字。
<sect1>
<heading>FreeBSD 2.0 因為 ``kmem_map too small!'' 而發生 panic</heading>
<p><tt /注意/ 這個訊息也有可能是 ``mb_map too small!''
<p>這個 panic 是表示系統用光了給網路緩衝區的所有的虛擬記憶體 (特
別是 mbuf clusters)。您可以增加給 mbuf clusters 的 VM 的數量,
只要加入:
<p><tt>options "NMBCLUSTERS=&lt;n>"</tt>
<p>在您的 kernel 設定檔中,&lt;n&gt; 是一個在 512-4096 間的數字,
依您想提供多少同時的 TCP 連接數目多寡而定。我會建議試試 2048 -
這數字應該可以完全避免這個 panic 了。您可以執行:
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?netstat"
name="netstat -m"> 來監看有多少 mbuf clusters
在系統上正被 配置/使用。NMBCLUSTERS 的數值內定為
<tt/512 + MAXUSERS * 16/。
<sect1>
<heading>用新 kernel 開機時,出現 ``CMAP busy panic'' 這個錯誤訊息</heading>
<p>用來偵測過期 <tt>/var/db/kvm_*.db</tt> 檔案的機制偶爾會"出鎚"
而使用一個含不正確資料的檔案有時就會導致 panic。
<p>如果發生了這個問題,請重新開機,進入單使用者模式,然後執行:
<verb>
rm /var/db/kvm_*.db
</verb>
<sect1>
<heading>ahc0: brkadrint Illegal Host Access at seqaddr 0x0</heading>
<p>這是一個和 Ultrastor SCSI 控制卡有關的衝突
<p>在開機時,進入 kernel 設定選單
取消 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?uha(4)"
name="uha0">,它是造成這個問題的原因
<sect1>
<heading>Sendmail 一直抱怨 ``mail loops back to myself''</heading>
<p>這個問題在 sendmail 的 FAQ 中是這樣回答的:-
<verb>
* 我一直收到有關 "Local configuration error" 的信件,例如:
553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error
我要如何解決這個問題?
您利用 MX 設定,讓要寄到某 domain (如: domain.net) 的信件,
寄到您所指定的機器 (在這個例子中為 relay.domain.net),但是這
部機器並未被設定接受 domain.net 的信件。把 domain.net 加到
/etc/sendmail.cw 中 (如果您有使用 FEATURE(use_cw_file)) 或是
在 sendmail.cf 中加入 "Cw domain.net"
</verb>
<p><url
url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq"
name="sendmail FAQ"> 現在已不再隨著 sendmail "出貨"。
它目前是被定期的發表在:
<url url="news:comp.mail.sendmail" name="comp.mail.sendmail">
<url url="news:comp.mail.misc" name="comp.mail.misc">
<url url="news:comp.mail.smail" name="comp.mail.smail">
<url url="news:comp.answers" name="comp.answers">,和
<url url="news:news.answers" name="news.answers">。
您也可以寄一封 Email 到
<url url="mailto:mail-server@rtfm.mit.edu"
name="mail-server@rtfm.mit.edu">,然後在信件內文中寫上
"send usenet/news.answers/mail/sendmail-faq" 這個指令
以取得這份文件。
<sect1>
<heading>在遠端機器(remote machine)執行全螢幕的軟體時,有不正常的情形!
</heading>
<p>或許遠端機器並非將您的終端機形態設為 FreeBSD console 所用
的 <tt>cons25</tt>,而是設為其它種類。
<p>這兒有幾個解決這個問題的方法:
<itemize>
<item>在 logging 進遠端機器後,更改您的 shell 變數 TERM 為
<tt>ansi</tt> 或是 <tt>sco</tt>。
<item>在 local 端用一些可以模擬 VT100 的模擬器,如 <htmlurl
url="http://www.freebsd.org/cgi/ports.cgi?screen-" name="screen">。
<tt>screen</tt> 提供您在一個 terminal 裏同時跑好幾個 session
的能力,而且它本身也是一個相當好的軟體。
<item>在遠端機器的終端機資料庫(terminal database)中加入
<tt>cons25</tt> 的資料。
<item>啟動 X 然後利用 <tt>xterm</tt> 來 login 進遠端的機器。
</itemize>
<sect1>
<heading>我的機器一直顯示 "calcru: negative time..."</heading>
<p>跟中斷 interrupt 有關的不同硬體 與/或 軟體的搭配都有可能造成
這個問題。這有可能是 bug 或是某個裝置本身的問題。在平行埠上使用
大的 MTU 來作 TCP/IP 傳輸可以重現這個問題。若是圖形加速卡造成這個
問題的話,您應該先檢查卡的中斷設定。
<p>這個問題的邊際效應是會造成有些 process 出現
"SIGXCPU exceeded cpu time limit" 的訊息,而不正常中斷
<p>若版本是 1998 年 11 月 29 日以後的 FreeBSD 3.0,如果這個
問題一直無法以其他方法解決,就只能設定 sysctl 變數:
<verb>
sysctl -w kern.timecounter.method=1
</verb>
<p> 這樣會對校能有些影響,但是若考慮到這個問題帶來的後果,這樣做是值
得的。如果這個問題還是存在的話,將 sysctl 那個值依然設為 1然後
增加 kernel 設定檔中 "NTIMECOUNTER" 這個選項的數值。如果您將
"NTIMECOUNTER" 增加到 20 依然無法解決這個問題,那麼您機器上的中斷
已經多到無法保持穩定的狀態了。
</sect>

336
zh/FAQ/x.sgml Normal file
View file

@ -0,0 +1,336 @@
<!-- $Id: x.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by ijliao@dragon2.net -->
<!-- English Version: 1.6 -->
<sect>
<heading>X Window System 及 Virtual Consoles<label id="x"></heading>
<sect1>
<heading>我想要執行 X , 我該怎麼做 ?</heading>
<p>最簡單的方法就是在安裝系統的時候一併安裝。
<p>然後看看 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"
name="xf86config 的 man page"> , 這個程式可以幫你設定 XFree86(tm) 使它
能夠使用你的顯示卡/滑鼠 等週邊。
<p>你或許也想試試看 Xaccel server , 它可以以非常合理價格取得。詳情請看
<ref id="xig" name="Xi Graphics"> 這一段。
<sect1>
<heading>為什麼我不能在 X 裡使用滑鼠 ?<label id="x-and-moused"></heading>
<p>如果你用的是 syscons (內定的 console 驅動程式) 的話, 你可以經由設定
FreeBSD 來讓它支援在每個 virtual console 使用滑鼠。為了避免和 X 產生衝
突, syscons 使用了一個叫做 "<tt>/dev/sysmouse</tt>" 的虛擬裝置。所有滑
鼠產生的 event 都會利用 MouseSystems 這個協定來傳到 sysmouse 這個裝置
。如果你希望在一個或以上的 virtual console 上使用滑鼠, <bf/並且/ 能夠
使用 X 的話, 我們建議你這樣設定 :
<verb>
/etc/rc.conf:
moused_type=ps/2 # or whatever your actual type is
moused_port=/dev/psm0 # or whatever your real port is
moused_flags=
/etc/XF86Config
Section Pointer
Protocol "MouseSystems"
Device "/dev/sysmouse"
.....
</verb>
<p>有些人比較喜歡在設定 X 的時候用 "<tt>/dev/mouse</tt>" 這個裝置。如
果你要讓它能夠正常工作的話, 你就必須把 "<tt>/dev/mouse</tt>" 連結到
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?sysmouse"
name="/dev/sysmouse"> :
<verb>
# cd /dev
# rm -f mouse
# ln -s sysmouse mouse
</verb>
<sect1>
<heading>X Window 的選單和對話框不能正常運作 !</heading>
<p>把 Num Lock 關掉試試。
<p>如果你的 Num Lock 在開機時的預設值是開著的話, 你必須把下列這行放到
<tt/XF86Config/ 設定檔中的 "<tt/Keyboard/" 部份。
<verb>
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock
</verb>
<sect1>
<heading>什麼是 virtual console ? 我要怎麼做才能用多一點 ?</heading>
<p>簡單來說, virtual console 就是可以讓你不必做太多複雜的設定如使用網
路或執行 X , 而在同一臺機器上同時做好幾件事的方法。
<p>當啟動系統並顯示完所有開機訊息之後, 你就會在螢幕上看到一個 login 的
提示符號。在這個時候你就可以輸入你的 login name 以及 password , 然後就
可以在第一個 virtual console 上開始工作了 (或者開始玩 !) 。
<p>在某些情況下, 你可能會想要作其他的工作, 例如說是看看你正在執行的程
式的說明文件, 或是當你在 FTP 傳輸的等待時間中看看你的郵件。你只需要按
Alt-F2 (按住 Alt 鍵不放, 並按下 F2 鍵) , 然後你就會在第二個 "virtual
console" 上看到一個 login 提示符號 ! 當你想要回到原來的工作時, 請按
Alt-F1。
<p>FreeBSD 在安裝時的預設值是使用三個 virtual console , 你可以用
Alt-F1, Alt-F2, 以及 Alt-F3 在它們之間做切換。
如果你想要多一點 virtual console 的話, 你只需要編輯 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> 這個檔
, 在 "Virtual terminals" 這個註解後面加入 "<tt/ttyv4/" 到 "<tt/ttyvc/"
的欄位 :
<verb>
# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
ttyva "/usr/libexec/getty Pc" cons25 on secure
ttyvb "/usr/libexec/getty Pc" cons25 on secure
</verb>
<p>你想用幾個就設幾個。你設越多 virtual terminal , 它們就用掉越多系統
資源 ; 如果你只有不到 8MB 的記憶體的話, 這影響就大了。你可能也會想把
"<tt/secure/" 換成 "<tt/insecure/" 。
<p><bf/IMPORTANT NOTE/ 如果你想要執行 X 的話, 你 <bf/必須/ 為它保留 (
或關掉) 至少一個 virtual terminal 。這就是說, 如果你想在按十二個 Alt
功能鍵時都有 login 提示符號, 而且又在同一部電腦上也想執行 X 的話, 那麼
這真是太不幸了 - 你只能用十一個。
<p>取消一個 console 最簡單的方法就是把它關掉。舉例來說, 如果你像上面講
的一樣設定了全部的 12 個 terminal 並且想要執行 X , 你必需把 virtual
terminal 12 從 :
<verb>
ttyvb "/usr/libexec/getty Pc" cons25 on secure
</verb>
<p>設成 :
<verb>
ttyvb "/usr/libexec/getty Pc" cons25 off secure
</verb>
<p>如果你的鍵盤只有 10 個功能鍵的話, 你就要改成這樣 :
<verb>
ttyv9 "/usr/libexec/getty Pc" cons25 off secure
ttyva "/usr/libexec/getty Pc" cons25 off secure
ttyvb "/usr/libexec/getty Pc" cons25 off secure
</verb>
<p>(你也可以直接把這幾行砍掉。)
<p>一旦你改了 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> ,
下一個步驟就是要確定你有足夠的 virtual terminal 裝置。最簡單的方法就是 :
<verb>
# cd /dev
# ./MAKEDEV vty12 # For 12 devices
</verb>
<p>再過來, 想要啟動這些 virtual console 最簡單 (也是最乾淨) 的做法就是
重開機。然後, 如果你不想重開機的話, 你可以把 X Window 關掉, 然後用
<tt/root/ 的身份執行下列指令 :
<verb>
kill -HUP 1
</verb>
<p>當你執行這個命令前, 你一定要完全把 X Window 關掉。如果你不這麼做的
話, 你的系統可能會在你執行 kill 命令後出現當掉或鎖死的情況。
<sect1>
<heading>我要怎麼從 X 切換到 virtual console ?</heading>
<p>如果你螢幕上正在顯示 X Window 的話, 你可以用 Ctrl-Alt-F1 等按鍵來切
換到 virtual console 。注意, 一旦你從 X Window 切換到任一個 virtual
console 之後, 你就可以只用 Alt- 功能鍵來切換到其他 virtual terminal 或
是切回 X Window 。你不必同時按著 Ctrl 鍵。如果在比較舊的版本中你用
Ctrl 鍵來切回 X Window 的話, 你會發現你的文字螢幕被卡在 "control-lock"
模式下。你只需要再按一次控制鍵就可以恢復原狀。
<sect1>
<heading>我要怎麼做才能在開機時啟動 XDM ?</heading>
<p>有兩種方法可以啟動 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm"
name="xdm"> 。一種方法是從
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys"
name="/etc/ttys"> 來啟動, 可以參考 man page 中的範例 ; 另一種方法是在
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc" name="rc.local">
執行 xdm , 或是在 <tt>/usr/local/etc/rc.d</tt> 放一個 <tt/X.sh/ 。這兩
種方法都是合法的, 如果你試某一種方法無效的話, 你可以試試另外一種。這兩
種方法的結果是一樣的 : X 會顯示一個圖形化的 login: 提示。
<p>用 ttys 的方法的優點在於說明了 X 在啟動以及在 logout 後重新啟動時,
到底 X 用的是那個 vty 。而 rc.local 的方法則是在當啟動 X 出了問題時, 你
可以把 xdm 殺掉來解決。
<p>如果是用 rc.local 的方法的話, 在執行 <tt/xdm/ 時你不能加任何參數 (
也就是跑成 daemon) 。
<p>前一版的 FAQ 說你必須把你想讓 X 使用的 <tt/vt/ 加到
<tt>/usr/X11R6/lib/X11/xdm/Xservers</tt> 檔裡去。這是不必要的 : X 會自
動使用第一個找到的可用 <tt/vt/ 。
<sect1>
<heading>當我執行 xconsole 時, 發生了 "Couldn't open console" 的錯誤</heading>
<p>如果你是用 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=startx"
name="startx"> 來啟動 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=X"
name="X"> 的話, /dev/console 的權限並不會改變, 結果就是 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xterm"
name="xterm -C"> 和 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xconsole"
name="xconsole"> 這類的程式無法正常執行。
<p>這一切的問題, 都是因為 console 的權限是採用系統預設值。在一個多使用
者的系統裡, 我們不希望每個使用者都可以直接寫入系統 console 。如果是使
用者是從機器的 VTY 直接 login 的話, 那麼
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?fbtab" name="fbtab">
可以解決這類的問題。
<p>簡單地說, 請確保
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?fbtab(5)"
name="/etc/fbtab"> 這個檔案中的這一行沒有被註解掉 :
<verb>
/dev/ttyv0 0600 /dev/console
</verb>
這一行設定的存在可以確保從 <tt>/dev/ttyv0</tt> 登入的使用者可以控制
console 。
<sect1>
<heading>我的 PS/2 滑鼠在 X 中有點不正常</heading>
<p>你的滑鼠和你的滑鼠驅動程式可能存在有不同步的現象。
<p>在 2.2.5 以及更早的系統裡, 從 X 切到 virtual terminal 然後再切回來
就可以使它們重新做同步的動作。如果這個問題常常發生的話, 你可以在你的
核心設定檔中加入下面這個選項然後重新編譯 :
<verb>
options PSM_CHECKSYNC
</verb>
<p>如果你沒有建立核心的經驗, 請看
<ref id="make-kernel" name="建立核心"> 這一節。
<p>加上這個選項以後, 滑鼠和滑鼠驅動程式間的同步問題應該就比較不會出現
了。如果這個問題仍然存在的話, 在移動滑鼠時按按滑鼠按鍵可以使滑鼠和滑
鼠驅動程式重新做同步的動作。
<p>該注意的是這個選項並不是對每一個系統都有效, 它可能會讓接在 PS/2 滑
鼠位置的 ALPS GlidePoint 裝置失去 "tap" 這項功能。
<p>在 2.2.6 及其後的版本, 同步的確認已經有了較好的解決辦法, 而且這些都
已經是 PS/2 滑鼠驅動程式的標準了。這個方法也可以在 GlidePoint 上正常工
作。 (因為確認的程式碼已經成為一個標準功能, 所以在這些版本中我們不在提
供 PSM_CHECKSYNC 的選項了。) 不過在極少數的案例中, 這些驅動程式會誤報
同步性錯誤, 然後你就會看到這樣的核心訊息 :
<verb>
psmintr: out of sync (xxxx != yyyy)
</verb>
然後你就會發現你的滑鼠不能正常運作了。
<p>如果你發生了這樣的狀況, 你必須藉由把 PS/2 滑鼠驅動程式的 flag 設成
0x100 來把同步確認的程式碼給取消掉。然後在開機提示符號時用
"<tt>-c</tt>" 選項來進入 <em>UserConfig</em> :
<verb>
boot: -c
</verb>
然後, 在 <em>UserConfig</em> 的命令列中鍵入 :
<verb>
UserConfig> flags psm0 0x100
UserConfig> quit
</verb>
<sect1>
<heading>我的 PS/2 滑鼠不能透過 MouseSystem 來運作</heading>
<p>有一些報告指出某些廠牌的 PS/2 滑鼠只能在 "高解析度" 狀態下才能運作
。如果不是的話, 滑鼠游標會常常跑到螢幕的左上角去。
<p>非常不幸的, 這個問題在 2.0.X 和 2.1.X 下是無解的。在 2.2 到 2.2.5
版, 你可以對 <tt>/sys/i386/isa/psm.c</tt> 使用下列 patch 然後重建你的
核心。如果你沒有建立核心的經驗, 請看
<ref id="make-kernel" name="building a kernel"> 這節。
<verb>
diff -u psm.c.orig psm.c
@@ -766,6 +766,8 @@
if (verbose >= 2)
log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
unit, i);
+ set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);
+
#if 0
set_mouse_scaling(sc->kbdc); /* 1:1 scaling */
set_mouse_mode(sc->kbdc); /* stream mode */
</verb>
<p>在 2.2.6 及以後的版本, 在 PS/2 滑鼠驅動程式中設定 0x04 的 flag 會
把滑鼠設成高解析度模式。在開機提示符號時用 "<tt>-c</tt>" 選項來進入
<em>UserConfig</em> :
<verb>
boot: -c
</verb>
然後, 在 <em>UserConfig</em> 的命令列中鍵入 :
<verb>
UserConfig> flags psm0 0x04
UserConfig> quit
</verb>
<p>前一節有提到另一個可能導致滑鼠問題的原因。
<sect1>
<heading>當我建立 X 程式時, <tt/imake/ 說它找不到 <tt/Imake.tmpl/ 。它在那 ?
</heading>
<p>Imake.tmpl 是 Imake 套件的一部份, Imake 是標準的建立 X 程式的工具。
Imake.tmpl 和其他數個 header file 一樣是建立 X 程式的必要檔案, 你可以在
X prog distribution 中找到它們。你可以用 sysinstall 來安裝或是直接從
X distribution 中手動安裝。
</sect1>
<sect1>
<heading>我要怎麼做才能設定左撇子用的滑鼠 ?
</heading>
<p>在你的 .xinitrc 或是 .xsession 中執行
<tt/ xmodmap -e "pointer = 3 2 1"/ 的指令。
</p>
</sect1>
</sect>

69
zh_TW.Big5/FAQ/FAQ.sgml Normal file
View file

@ -0,0 +1,69 @@
<!-- $Id: FAQ.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by -->
<!-- English Version: 1.101 -->
<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN" [
<!ENTITY % includes SYSTEM "includes.sgml"> %includes;
<!ENTITY preface SYSTEM "preface.sgml">
<!ENTITY install SYSTEM "install.sgml">
<!ENTITY hardware SYSTEM "hardware.sgml">
<!ENTITY troubleshoot SYSTEM "troubleshoot.sgml">
<!ENTITY commercial SYSTEM "commercial.sgml">
<!ENTITY applications SYSTEM "applications.sgml">
<!ENTITY kernelconfig SYSTEM "kernelconfig.sgml">
<!ENTITY admin SYSTEM "admin.sgml">
<!ENTITY x SYSTEM "x.sgml">
<!ENTITY network SYSTEM "network.sgml">
<!ENTITY serial SYSTEM "serial.sgml">
<!ENTITY misc SYSTEM "misc.sgml">
<!ENTITY hackers SYSTEM "hackers.sgml">
<!ENTITY acknowledgments SYSTEM "acknowledgments.sgml">
]>
<article>
<title>Frequently Asked Questions for FreeBSD 2.X</title>
<author>
<name>The FreeBSD Documentation Project</name>
</author>
<date>$Date: 1999-01-30 23:20:34 $</date>
<abstract>
This is the FAQ for FreeBSD systems version 2.X All entries are
assumed to be relevant to FreeBSD 2.0.5 and later, unless otherwise noted.
Any entries with a &lt;XXX&gt; are under construction.
If you are interested in helping with this project, send
email to the the FreeBSD documentation project mailing list <htmlurl
url="mailto:freebsd-doc@freebsd.org" name="<freebsd-doc@FreeBSD.ORG>">.
The latest version of this document is always available from the <url
url="http://www.FreeBSD.ORG/" name="FreeBSD World Wide Web server">.
It may also be downloaded in <url url="FAQ.latin1" name="plain text">,
<url url="FAQ.ps" name="postscript">,
<url url="ftp://ftp.freebsd.org/pub/FreeBSD/docs/FAQ.pdf" name="PDF">
or <url url="FAQ-html.tar.gz"
name="HTML"> with HTTP or gzip'd from the <url
url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/docs" name="FreeBSD FTP server">.
You may also want to <url url="http://www.freebsd.org/search/search.html" name="Search the FAQ">.
</abstract>
<toc>
&preface;
&install;
&hardware;
&troubleshoot;
&commercial;
&applications;
&kernelconfig;
&admin;
&x;
&network;
&serial;
&misc;
&hackers;
&acknowledgments;
</article>

12
zh_TW.Big5/FAQ/Makefile Normal file
View file

@ -0,0 +1,12 @@
# $Id: Makefile,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $
.NOTPARALLEL:
SGMLOPTS=-links -e big5
DOC= FAQ
SRCS= FAQ.sgml acknowledgments.sgml admin.sgml applications.sgml
SRCS+= commercial.sgml hackers.sgml hardware.sgml install.sgml
SRCS+= kernelconfig.sgml misc.sgml network.sgml preface.sgml
SRCS+= serial.sgml troubleshoot.sgml x.sgml
.include <bsd.sgml.mk>

View file

@ -0,0 +1,43 @@
<!-- $Id: acknowledgments.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by vanilla@FreeBSD.ORG -->
<!-- English Version: 1.1 -->
<sect>
<heading>感謝<label id="acknowledgments"></heading>
<p>
<verb>
假如您在這份 FAQ 中找到錯誤的地方, 或是您想增加些甚麼,
請寫封信到 <FAQ@FreeBSD.ORG>. 我們非常感謝您的建議,
因為您的建議讓這份文件變得更好!
FreeBSD Core Team
</verb>
<descrip>
<tag/Jordan Hubbard/
不停的更新過時的 FAQ.
<tag/Doug White/
經常在 freebsd-questions 上回答問題
<tag/Joerg Wunsch/
經常在 Usenet 上回答問題
<tag/Garrett Wollman/
Networking and formatting
<tag/Jim Lowe/
Multicast information
<tag/Peter da Silva/
FreeBSD FAQ 這份文件的打字苦工
<tag/The FreeBSD Team/
Kvetching, moaning, submitting data
</descrip>
<p>對於那些曾經對這份 FAQ 提供幫助, 而我們沒提到的人們, 我們由衷的感謝您!
</sect>

810
zh_TW.Big5/FAQ/admin.sgml Normal file
View file

@ -0,0 +1,810 @@
<!-- $Id: admin.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by foxfair@FreeBSD.ORG -->
<!-- English Version: 1.12 -->
<sect>
<heading>系統管理<label id="admin"></heading>
<sect1>
<heading>系統起始設定檔在哪?</heading>
<p>從 2.0.5R 到 2.2.1R,主要的設定檔是 <tt>/etc/sysconfig</tt>。
所有的選項都被定義在這個檔,而其他像 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?rc" name="/etc/rc">
和 <tt>/etc/netstart</tt> 只是引用它。
<p>觀察 <tt>/etc/sysconfig</tt> 這個檔並修正其值以適合你的系統。
這個檔用註解填滿以表示何處該放置什麼設定。
<p>在 2.2.1 和 3.0 以後,<tt>/etc/sysconfig</tt> 更名為一個更容
易描述的檔名叫 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">
,並且語法進化成只剩一個位元。<tt>/etc/netstart</tt> 亦更名為
<tt>/etc/rc.network</tt> 因此所有的檔案都可以用 <tt><htmlurl
url="http://www.freebsd.org/cgi/man.cgi?cp" name="cp"> /usr/src/etc/rc*
/etc</tt> 來拷貝。
<p><tt>/etc/rc.local</tt> 出現並可以用來啟動額外的本地服務像是
<htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^inn" name="INN">
或某些個人選項。
<p><tt>/etc/rc.serial</tt> 用來初始化序列埠(像是鎖住埠的特性等)。
<p><tt>/etc/rc.i386</tt> 是 Intel 特殊的設定,像是 iBCS2 模擬或是 PC
系統主控台設定。
<p>由 2.1.0R 開始,你也可以在 <tt>/etc/sysconfig</tt> (或
<tt>/etc/rc.conf</tt>) 裡指定目錄擁有"本地"起始檔:
<verb>
# Location of local startup files.
local_startup=/usr/local/etc/rc.local.d
</verb>
<p>每個以 <tt/.sh/ 結尾的檔將以字母順序被執行。
<p>假如你想確保某個執行順序又不想改所有的檔名,你可以使用一個簡單
的架構如下,利用事先安排到每個檔名前的數字來確保順序:
<verb>
10news.sh
15httpd.sh
20ssh.sh
</verb>
<p>這可能看起來有點醜(或類似 SysV :-)) 但是它提供一個簡單而規律的
架構讓本地加入的套件不須編輯 <tt>/etc/rc.local</tt> 就能重新排
序。許多的 ports/packages 假設 <tt>/usr/local/etc/rc.d</tt> 是
本地起始的目錄。
<sect1>
<heading>我該如何簡單地加入使用者﹖</heading>
<p>使用 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?adduser"
name="adduser"> 指令。
<p>另外也有個套件叫 ``<tt/new-account/'' 由 Ollivier Robert 以
Perl 寫出。可向 <tt>&lt;roberto@FreeBSD.ORG&gt;</tt> 詢問它。
目前正在發展階段。
<p>要再次移除使用者,使用 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?rmuser" name="rmuser"> 指令。
<sect1>
<heading>我該怎麼把新硬碟加入 FreeBSD 系統中﹖</heading>
<p>察看 <url url="../tutorials/diskformat/" name="www.freebsd.org">
的磁碟格式化指導文件。
<sect1>
<heading>我有一個新的可移除裝置,我該怎麼使用﹖</heading>
<p>可移除裝置無論是 ZIP 或 EZ(或甚至是軟碟機,如果你要這樣使用
它),或是一個新的硬碟,只要是安裝並由系統重組,而你有磁片匣
/軟碟片/或其他東西可以插入,那這些裝置似乎都是類似功能的東
西。
<p><label id="disklabel">(本節主要由 <url
url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html"
name="Mark Mayo's ZIP FAQ"> 引入)
<p>假如是 ZIP 或軟碟機,你已經在上面有 DOS 檔案系統,可以使用
像這樣的命令:
<verb>
mount -t msdos /dev/fd0c /floppy
</verb>
<p>如果只是軟碟機,那就這樣:
<verb>
mount -t msdos /dev/sd2s4 /zip
</verb>
<p>對 ZIP 磁片來說是使用出廠預設值。
<p>其他磁片,用 <tt/fdisk/ 或 <tt>/stand/sysinstall</tt> 察看
如何配置。
<p>接下來這個範例是 ZIP 裝在 sd2第三個 SCSI 磁碟。
<p>不像軟碟機,或一個你計畫跟其他人分享使用的可移除裝置,用
BSD 檔案系統貫穿它可能是一個比較好的主意。你將擁有長檔名支援
,至少兩倍以上的效率增進,更高的穩定度。首先,你需要重新製作
DOS 層的分割區/檔案系統。你可以使用 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?fdisk" name="fdisk"> 或
<tt>/stand/sysinstall</tt>,或對一個你不想支援多重作業系統的
小磁碟,只要把它劃分成整個 FAT 分割表(slices)並用以下 BSD 分
割法:
<verb>
dd if=/dev/zero of=/dev/rsd2 count=2
disklabel -Brw sd2 auto
</verb>
<p>你可以使用 disklabel 或 <tt>/stand/sysinstall</tt> 去建立多重
BSD 分割區。無疑的如果你正在硬碟機上增加置換空間(swap space)時
你就需要這麼做,但是在可移除裝置如 ZIP 上這是無意義的。
<p>最後,建立一個新的檔案系統。在 ZIP 裝置上是使用整個磁碟:
<verb>
newfs /dev/rsd2c
</verb>
<p>並且把它掛上(mount)
<verb>
mount /dev/sd2c /zip
</verb>
<p>在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?fstab"
name="/etc/fstab"> 加上下面這一行可能是一個好主意,你以後就只
要打"mount /zip" :
<verb>
/dev/sd2c /zip ffs rw,noauto 0 0
</verb>
<sect1>
<heading>我該怎麼掛上次要的 DOS 分割區﹖</heading>
<p>次要 DOS 分割區是在所有主要分割區之後被找到,舉例,如果你有一個
"E" 分割區在第二個 SCSI 裝置的第二個 DOS 分割區,你需要在 /dev 下
建立 "slice 5" 的特殊檔案,然後掛上 /dev/sd1s5
<verb>
# cd /dev
# ./MAKEDEV sd1s5
# mount -t msdos /dev/sd1s5 /dos/e
</verb>
<sect1>
<heading>我可以在 FreeBSD 下掛上其他異質性檔案系統嗎﹖</heading>
<p><bf/ Digital UNIX/ UFS 光碟機可以直接掛在 FreeBSD 上。從 Digital
UNIX 和其他支援 UFS 格式的系統掛上磁碟分割區應該更複雜,主要細節
是依賴作業系統的磁碟分割法。
<p><bf/ Linux/: 2.2 及以後的版本支援 <bf/ext2fs/ 分割區,請查閱
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount_ext2fs"
name="mount_ext2fs"> 有更多資訊。
<p>提供任何這個主題的其他資訊將被重視。
<sect1>
<heading>我該如何使用 NT loader 來啟動 FreeBSD﹖</heading>
<p>最普遍的想法是把你的 native FreeBSD root 分割區
的第一個磁區拷貝到 DOS/NT 分割區裡的一個檔案內。假設
你命名它:<tt>c:&bsol;bootsect.bsd</tt>
(由 <tt>c:&bsol;bootsect.dos</tt> 授意而來),接著你可以編輯
<tt>c:&bsol;boot.ini</tt> 檔案內容如下:
<verb>
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
C:\BOOTSECT.BSD="FreeBSD"
C:\="DOS"
</verb>
<p>此程序假設 DOSNTFreeBSD或其他作業系統已經被安裝在
<bf/同一個/ 磁碟的各自分割區。本例中我的 DOS &amp; NT 是在第一
個分割區而 FreeBSD 在第二個。我也把 FreeBSD 安裝成由 native
partition 啟動,<bf/而不是/ 從磁碟的 MBR。
<p>掛上一個 DOS 格式化的軟碟(假如你已經轉換到 NTFS或 FAT 分割區
到 <tt>/mnt</tt>
<verb>
dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1
</verb>
<p>重新開機進入 DOS 或 NT。NTFS 使用者把 <tt/bootsect.bsd/ 以及/或
<tt/bootsect.lnx/ 從軟碟拷貝到 <tt/C:&bsol;/。修改 <tt/boot.ini/
的屬性(存取許可)
<verb>
attrib -s -r c:\boot.ini
</verb>
<p>編輯並從 <tt/boot.ini/ 的範例上加入相關適當的項目,再把屬性回復
<verb>
attrib -r -s c:\boot.ini
</verb>
<p>如果 FreeBSD 是由 MBR 啟動,在你重新設定從哪個原生分割區啟動後
用 DOS 的的 ``<tt/fdisk/'' 命令回復它:
<sect1>
<heading>
我該怎麼用 LILO 啟動 FreeBSD 和 Linux﹖
</heading>
<p>如果你在同一個磁碟機裡有 FreeBSD 和 Linux只要跟隨 LILO 的安
裝指令,從一個非 Linux 作業系統啟動。簡略說明如下:
<p>啟動 Linux並在 <tt>/etc/lilo.conf</tt> 中加入以下幾行:
<verb>
other=/dev/hda2
table=/dev/hda
label=FreeBSD
</verb>
(上面是假設你的 FreeBSD slice 在 Linux 是 <tt>/dev/hda2</tt>;請
配合自己的設定)。然後,用 root 執行 <tt>lilo</tt> 應該就完成了。
<p>假如 FreeBSD 在另外一個磁碟,你必須在 LILO 選項中加入
``<tt>loader=/boot/chain.b</tt>'',舉例:
<verb>
other=/dev/sdb4
table=/dev/sdb
loader=/boot/chain.b
label=FreeBSD
</verb>
<p>某些情形你必須指定 BIOS 磁碟代號給 FreeBSD 啟動載入程式以能從第
二磁碟成功的啟動。舉例,假如你的 FreeBSD SCSI 磁碟在 BIOS 中偵測
是 BIOS disk 1那在 FreeBSD 啟動載入程式的提示號出現時你必須指
定:
<verb>
Boot: 1:sd(0,a)/kernel
</verb>
<p>在 FreeBSD 2.2.5 和之後的版本,你可以設定 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?boot(8)" name="boot(8)">
這樣每次啟動時就會自動幫你執行。
<p><htmlurl url="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html"
name="Linux+FreeBSD mini-HOWTO"> 是 FreeBSD 和 Linux 共用操作的良好
參考文件。
<sect1>
<heading>
我怎麼使用 BootEasy 來啟動 FreeBSD 和 Linux﹖
</heading>
<p>在你的 Linux 啟動分割區安裝 LILO 取代主要啟動資料(Master Boot
Record)。接著你可以從 BootEasy 啟動 LILO。
<p>假如你正在執行 Windows-95 和 Linux這是一個建議方法要更簡單的
從 Linux 再次啟動在於你是否應該重新安裝 Windows95這是一個善妒
的作業系統,它壓迫不讓其他作業系統存在於主要啟動記錄內)。
<sect1>
<heading>
一個所謂``危險奉獻''的磁碟有害嗎﹖
</heading>
<p><label id="dedicate">安裝程序允許你選擇兩種不同的方法來分割你的
磁碟機。內定方法是在同一台機器上和其他作業系統可以相容,但是
使用 fdisk table entries(FreeBSD 裡稱之為``slices'')FreeBSD
的 slice 就是使用整個自己的分割區。可供選擇的是,你可以選擇安裝
啟動選擇器(boot-selector) 在磁碟機的數個可能作業系統上來回切換。
<p>現在,這是某些常見情形,人們只有 PC 的使用背景。更多本來曾使用
Unix 又想把機器設定只執行 FreeBSD 的人,大多會用傳統 Unix 的方
法讓一個作業系統佔據整個磁碟,從最開頭的第一個磁區到最後一個。
一個真實的 fdisk table 並在這個情形中並沒有實質功用,機器上一天
24 小時,每週七天無時不刻地都在執行 FreeBSD甚至沒有啟動其他作
業系統。因此,如果你在 sysinstall 的 fdsik 編輯器裡選擇
``A)ll FreeBSD'',並用 ``No'' 回答下一個問題,你就是在這種模式中
。值得注意的是這代表 BSD bootstrap 也由這台磁碟機的 MBR 所產生,
因此沒有留下空間給其他像是啟動管理員的程式。不要試著去安裝它,不
然你會把 BSD bootsrtap 弄壞了。
<p>因此為何叫它``危險的''﹖一個處於這種模式的磁碟機不包含將被正
常 PC 公用程式視為有效的 fdisk table。依循它們被設計的模式
要它們在這樣一個磁碟機中一旦被觸及可能就會產生錯誤的提示,或更
糟糕的,可能未經提示或通知你就把 FreeBSD bootstrap 弄壞。一些在
PC 上廣泛使用的作業系統就有這種 ``使用者不友善性'' 的存在(當然
,它們稱之為``使用者的友善性'')。至少已知在 HP Netservers 上的
Award BIOS(它並不是唯一的特例)就是會忽略任何它認為沒有有效
fdisk 列表的硬碟。這導致它啟動時,簡略的忽略過這樣一個磁碟裝置,
切換到軟碟機,然後只是跟你吐著``讀取錯誤''的訊息。很讓人印象深
刻吧﹖或許他們也叫這為``使用者友善性'',誰知道﹖
<p>這種模式的好處是FreeBSD 擁有整個磁碟,不需要因為 1980 年代
簡略的分割模式強迫一些人造而現在看起來無意義的限制在這些分割該
怎麼被完成,浪費好幾個虛擬的``磁軌''。這些限制時常導致可能變成
PC 的 OS 安裝過程中最大的頭痛,幾何學錯誤的搭配這兩個差異的爭
論結果,是在 fdisk 列表中儲存分割資訊時過剩的方法。請查閱
<ref id="missing_os" name="Missing Operating System">。
在``完全奉獻''的模式下BSD bootstrap 從磁區 0 開始,這是唯一
能轉換同一個 C/H/S 值的磁區,不管你的 BIOS 如何``轉換''你的磁
碟。因此,你也可以在系統/控制器之間以一種不同的轉換架構置換磁
碟,而不須承擔失敗後磁碟機再也不會啟動的風險。
<p>要把``危險奉獻''的磁碟回復到正常 PC 使用,基本上有兩個選擇。
第一個是你把足夠的 NULL 位元組寫入 MBR 確保任何隨後的安裝程
式相信這只是一個空白的磁碟。舉例來說你可以這樣做:
<verb>
dd if=/dev/zero of=/dev/rsd0 count=15
</verb>
<p>或是採用另外一個,非正式的 DOS ``特色''
<verb>
fdisk /mbr
</verb>
<p>這將會安裝一個全新的主要啟動記錄,因此會破壞 BSD bootstrap。
<sect1>
<heading>我如何能加入更多的置換空間﹖</heading>
<p>最好的方法是增加你置換分割區的大小,或利用這個方便理由的好處去
增加另一個硬碟。
<p>在分散的磁碟上增加置換空間會比單純地在同一個磁碟加入置換空間
讓效率來的快一點。舉一個例子來說,如果你正在一個磁碟裡編譯來
源程式,而置換空間在另一個磁碟,這會比置換空間跟編譯程式都在
同一個磁碟時來得快。這對 SCSI 磁碟機特別正確。
<p>IDE 磁碟並不允許同時在同一通道理存取兩個裝置FreeBSD 不支援
mode 4因此所有的 IDE 磁碟 I/O 是``可程式化的'')。然而我仍
會建議你把置換空間放在分別的磁碟。磁碟機這麼便宜,實在沒什麼
好擔心的。
<p>把你的置換檔放在 NFS 實在是一個很爛的主意,除非你正在一個非常
快速的網路環境下執行,還要有一個很好的伺服器。
<p>這裡有個範例是用 64MB vn-swap (<tt>/usr/swap0</tt>,當然你能用
任何你想用的名字)。
<p>確定你的核心程式建立時有包含以下這行:
<verb>
pseudo-device vn 1 #Vnode driver (turns a file into a device)
</verb>
<p>在你的設定檔中。GENERIC 這個核心已經包含這項了。
<enum>
<item>建立一個 vn-device
<verb>
cd /dev
sh ./MAKEDEV vn0
</verb>
<item>建立一個置換檔 (<tt>/usr/swap0</tt>)
<verb>
dd if=/dev/zero of=/usr/swap0 bs=1024k count=64
</verb>
<item>在 <tt>/etc/rc.conf</tt> 中啟動置換檔
<verb>
swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.
</verb>
<item>重新開機。
</enum>
<p>要馬上啟動置換檔,鍵入:
<verb>
vnconfig -ce /dev/vn0c /usr/swap0 swap
</verb>
<sect1>
<heading>我不會設定我的印表機。</heading>
<p>請參閱 Handbook 裡有關列印的部份。這應該能解決你大部分的問題,請看
<url url="../handbook/printing.html" name="Handbook entry on printing.">
<sect1>
<heading>我系統上的鍵盤配置錯了。</heading>
<p>kbdcontrol 程式有一個選項可以讀取鍵盤配置檔案。在
<tt>/usr/share/syscons/keymaps</tt> 有一些配置檔。選擇一個跟你的
相關的並讀取它。
<verb>
kbdcontrol -l uk.iso
</verb>
<p> <tt>/usr/share/syscons/keymaps</tt> 和 <tt/.kbd/ 延展集兩個都由
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?kbdcontrol"
name="kbdcontrol"> 所斷定。
<p>可以從 <tt>/etc/sysconfig</tt> (或 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)" name="rc.conf">)
來設定,請看此檔裡適合的註解。
<p>在 2.0.5R 及其之後的版本,所有跟文字字型,鍵盤對應相關的設定都在
<tt>/usr/share/examples/syscons</tt>。
<p>以下是目前支援的對應設定:
<itemize>
<!-- generate by `kbdmap -p' -->
<item>Belgian ISO-8859-1
<item>Brazilian 275 keyboard Codepage 850
<item>Brazilian 275 keyboard ISO-8859-1
<item>Danish Codepage 865
<item>Danish ISO-8859-1
<item>French ISO-8859-1
<item>German Codepage 850
<item>German ISO-8859-1
<item>Italian ISO-8859-1
<item>Japanese 106
<item>Japanese 106x
<item>Latin American
<item>Norwegian ISO-8859-1
<item>Polish ISO-8859-2 (programmer's)
<item>Russian Codepage 866 (alternative)
<item>Russian koi8-r (shift)
<item>Russian koi8-r
<item>Spanish ISO-8859-1
<item>Swedish Codepage 850
<item>Swedish ISO-8859-1
<item>Swiss-German ISO-8859-1
<item>United Kingdom Codepage 850
<item>United Kingdom ISO-8859-1
<item>United States of America ISO-8859-1
<item>United States of America dvorak
<item>United States of America dvorakx
</itemize>
<sect1>
<heading>我無法讓 user quotas 正常工作。</heading>
<p>
<enum>
<item>不要在 '/' 打開 quotas
<item>把 quotas 檔放在它必須強迫置入的檔案系統內,舉例:
<verb>
FS QUOTA FILE
/usr /usr/admin/quotas
/home /home/admin/quotas
...
</verb>
</enum>
<sect1>
<heading>我的 ccd 有何不妥﹖</heading>
<p>這種情形的徵兆是:
<verb>
# ccdconfig -C
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format
#
</verb>
<p>通常這會發生在你嘗試要連結 `c' 分割區,這內定的型別是 ``無法使用的''
。ccd 磁碟需要的基礎分割區型別為 FS_BSDFFS編輯你要試著連結的磁碟
標記並更改分割區的型別為`4.2BSD'。
<sect1>
<heading>為何我不能編輯我 ccd 的磁碟標記﹖</heading>
<p>這種情形的徵兆是:
<verb>
# disklabel ccd0
(這裡印出某些明顯的資料,所以試著編輯它)
# disklabel -e ccd0
(編輯,儲存,然後離開)
disklabel: ioctl DIOCWDINFO: No disk label on disk;
use "disklabel -r" to install initial label
#
</verb>
<p>這是因為由 ccd 傳回的磁碟標記事實上是一個``假的''而沒有真正在磁碟
上。你可以把它完全寫入來解決這個問題,像這樣:
<verb>
# disklabel ccd0 > /tmp/disklabel.tmp
# disklabel -Rr ccd0 /tmp/disklabel.tmp
# disklabel -e ccd0
(this will work now)
</verb>
<sect1>
<heading>FreeBSD 支援 System V IPC 格式指令集?</heading>
<p>是的FreeBSD 支援 System V-格式 IPC。這包括共享記憶體訊息跟
信號。你需要在你的核心設定檔內加入下列幾行以啟動它們。
<verb>
options SYSVSHM
options "SHMMAXPGS=64" # 256Kb of sharable memory
options SYSVSEM # enable for semaphores
options SYSVMSG # enable for messaging
</verb>
<p>重新編譯並安裝。
<p><bf/注意:/ 如果你要執行 GIMP 你可能需要增加 SHMMAXPKGS 到某些荒
謬的數目像是 4096(16M!)256Kb 對 X11R6 共享記憶體來說已經充分足
夠了。
<sect1>
<heading>
我該如何使用 sendmail 透過 UUCP 來遞送郵件?<label id="uucpmail">
</heading>
<p>跟隨 FreeBSD 套裝而來的 sendmail 設定是適合那些直接連上網際網路
的的站台。那些想透過 UUCP 交換它們郵件的站台必須另外安裝 sendmil
的設定檔案。
<p>手動修改 <tt>/etc/sendmail.cf</tt> 是絕對必要的。第 8 版的
sendmail 提供一個全新的入口以透過一些像 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?m4" name="m4"> 的處理就能
產生設定檔,這事實上是一個高層概念等級的技巧性設定。你應該可以在以
下檔案裡使用它:
<verb>
/usr/src/usr.sbin/sendmail/cf
</verb>
<p>假如你不是用完整的來源程式安裝系統,那麼 sendmail 設定項目可能已
經分散成好幾個來源分布檔在等著你,假設你已經掛上光碟機,做以下動作:
<verb>
cd /usr/src
tar -xvzf /cdrom/dists/src/ssmailcf.aa
</verb>
<p>別驚慌,這只有數十萬個位元組的大小。在 <tt>cf</tt> 目錄裡的
<tt>README</tt> 可以提供一個 m4 設定法的基本介紹。
<p>以 UUCP 遞送來說,建議你最好使用 <em>mailertable</em> 特點。
建構一個資料庫讓 sendmail 可以使用它自己的路徑決策。
<p>首先,你必須建立自己的 <tt>.mc</tt> 檔。
<tt>/usr/src/usr.sbin/sendmail/cf/cf</tt> 目錄是這些檔案的家。
首先,已經有好幾個範例檔,假設你已經命名自己的檔叫
<tt>foo.mc</tt>,你要做的只是把它轉換成一個有效的
<tt>sendmail.cf</tt>
<verb>
cd /usr/src/usr.sbin/sendmail/cf/cf
make foo.cf
cp foo.cf /etc/sendmail.cf
</verb>
<p>一個典型的 <tt>.mc</tt> 檔看起來可能像這樣:
<verb>
include(`../m4/cf.m4')
VERSIONID(`Your version number')
OSTYPE(bsd4.4)
FEATURE(nodns)
FEATURE(nocanonify)
FEATURE(mailertable)
define(`UUCP_RELAY', your.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw your.alias.host.name
Cw youruucpnodename.UUCP
</verb>
<p> <em>nodns</em> 和 <em>nocanonify</em> 特性將避免任何在遞送郵件
時會用到 DNS 的機會。<em>UUCP_RELAY</em> 項目的出現理由很奇怪,
就不要為何了。簡單的放入一個網際網路上可以處理 .UUCP 虛擬網域位址
的主機名稱;通常,你只需要在這裡填入你 ISP 的信件回覆處
(mail replay)。
<p>你已經做到這裡了,你還需要這個叫 <tt>/etc/mailertable</tt> 的檔案
。一個典型的範例如下:
<verb>
#
# makemap hash /etc/mailertable.db < /etc/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:sax
</verb>
<p>如你所見,這是某個活生生檔案裡的一部份。首三行處理網域定址信件
不應該被送出到內定路徑,而由某些 UUCP 鄰居(UUCP neighbor)取代,
這是為了``縮短''遞送的路徑。下一行處理到本地乙太網路網域的信件
讓它可以使用 SMTP。最後UUCP 鄰居提到 .UUCP 虛擬網域的記載,
允許一個``uucp-neighbor!recipient''推翻內定規則。最後一行則以一
個單獨的句點做結束,以 UUCP 遞送到提供當你全世界性郵件閘門的
UUCP 鄰居。所有在 <tt>uucp-dom:</tt> 關鍵字裡的節點名稱必須都是
有效的 UUCP 鄰居,你可以用 <tt>uuname</tt> 命令去確認。
<p>提醒你這個檔案在使用前必須被轉換成 DBM 資料庫檔案,最好在
mailertable 最上面用註解寫出命令列來完成這個工作。當你每次更換你
的 mailertable 後你總是需要執行這個命令。
<p>最後提示:如果你不確定某些特定的信件路徑可用,記得把 <tt>-bt</tt>
選項加到 sendmail。這會將 sendmail 啟動在 <em>address test mode</em>
;只要按下 ``0'',接著輸入你希望測試的信件路徑位址。最後一行告訴你使
用內部的信件代理程式,代理程式的會通知目的主機,以及(可能轉換的)位址
。要離開此模式請按 Control-D。
<verb>
j@uriah 191% sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 0 foo@interface-business.de
rewrite: ruleset 0 input: foo @ interface-business . de
...
rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \
< @ interface-business . de >
> ^D
j@uriah 192%
</verb>
<sect1>
<heading>
當我用撥接連上網路時該怎麼設定信件遞送?<label id="ispmail">
</heading>
<p>如果你已經有一個固定的 IP 數字,你不需要調整任何內定值。設好
你要指定的網路名稱,其他的 sendmail 都會幫你做完。
<p>如果你拿到的是動態配置的 IP 數字而使用撥接 <bf/ppp/ 連接到網
際網路,你可能已經在你的 ISP 信件主機上有一個信箱。假設你的
ISP 網域是 <tt/myISP.com/,你的使用者名稱是 <tt/user/。亦假
設你稱自己的主機名稱是 <tt/bsd.home/ 而你的 ISP 告訴你可以使用
<tt/relay.myISP.com/ 當作信件回覆處。
<p>為了從你的信箱接收信件,你將需要安裝取信程式以便從信箱取回信件。
<bf/Fetchmail/ 是一個不錯的選擇因為它支援許多不同的通訊協定,通常
你的 ISP 會提供 POP3。如果你選擇使用 user-ppp你可以在連線到網路
成功後自動抓取你的信件,只要在 <tt>/etc/ppp/ppp.linkup</tt> 裡面
設定以下幾項:
<verb>
MYADDR:
!bg su user -c fetchmail
</verb>
<p>我假設你在 <tt/bsd.home/ 機器上有一個 <tt/user/ 的帳號。在
<tt/bsd.home/ 機器上 <tt/user/ 的家目錄裡建立一個 <tt/.fetchmailrc/
的檔案:
<verb>
poll myISP.com protocol pop3 fetchall pass MySecret;
</verb>
<p>無須贅言,這個檔除了 <tt/user/ 外不應該被任何人讀取,因為它包含
了 <tt/MySecret/ 這個密碼。
<p>為了在寄信時有正確的抬頭 <bf/from:/ ,你必須告訴 sendmail 使用
<tt/user@myISP.com/ 而非 <tt/user@bsd.home/。你可能會希望告訴
sendmail 從 <tt/relay.myISP.com/ 送出所有信件,加快信件傳送。
<p>以下的 <tt/.mc/ 檔應能滿足你的要求:
<verb>
VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`myISP.com')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(SMART_HOST, `relay.myISP.com')
Dmbsd.home
define(`confDOMAIN_NAME',`bsd.home')dnl
define(`confDELIVERY_MODE',`deferred')dnl
</verb>
<p>如果轉換這個 <tt/.mc/ 檔案到 <tt/sendmail.cf/ 檔的詳細細節請
參考上一節。另外,在更新 sendmail.cf 以後不要忘記重新啟動
sendmail。
<sect1>
<heading>咦!我忘記 root 的密碼了!</heading>
<p>不要驚慌!只要重新啟動系統,在 boot: 提示號打 -s 進入單使用者模式。
在問要使用哪個 shell 時,按下 ENTER。你會看到一個 # 的提示號,輸入
<tt>mount -u /</tt> 以重新架設你的根檔案系統可供讀/寫。執行
<tt/passwd root/ 以更換 root 密碼,然後執行 <tt/exit/ 繼續啟動。
<sect1>
<heading>我該怎麼保留讓 Control-Alt-Delete 不能重新啟動系統?
</heading>
<p>修改你正在使用的主控台鍵盤對應,並且把所有 <tt/boot/ 的關鍵字用
<tt/nop/ 取代。內定的鍵盤對應是在
<tt>/usr/share/syscons/keymaps/us.iso.kbd</tt>。你可能需要明白的
吩咐 <tt>/etc/rc.conf</tt> 去讀取這個鍵盤對應以確保更動生效。當
然如果你正在用適合你國籍的鍵盤對應,你應該編輯那一個。
<sect1>
<heading>我該怎麼把 DOS 文字檔案重新格式化成 UNIX 的?</heading>
<p>簡單地使用這個 perl 命令:
<verb>
perl -i.bak -pe 's/\r\n/\n/g' file ...
</verb>
<p>file 就是要處理的檔案。這個修改是在內部完成,原始的檔案會儲存成
副檔名為 .bak 的檔案。
<sect1>
<heading>我該怎麼用名稱砍掉 process</heading>
<p>使用 <url url="/cgi/cvsweb.cgi/man.cgi?killall" name="killall(1)">。
<sect1>
<heading>為何在 root 的 ACL 時 su 好像有問題?
</heading>
<p>這個錯誤是因為 Kerberos 分散認證系統。這個問題並不是很嚴重但是令人
厭煩。你可以用 -K 選項去執行 su或是像下個問題所描述的移除
Kerberos。
<sect1>
<heading>我該怎麼移除 Kerberos</handing>
<p>要從系統裡移除 Kerberos重裝你正在執行的 release 版本內 bin 分類
。如果你有 CDROM你可以掛上 cd(假設在 /cdrom)並執行:
<verb>
cd /cdrom/bin
./install.sh
</verb>
<sect1>
<heading>我該怎麼增加系統的虛擬終端機?</heading>
<p>如果你有許多 telnetsshX 或是 screen 使用者,你或許會用完虛擬
終端機,這能教你怎麼加更多:
<enum>
<item>建立並安裝一個新的核心程式並且加入這行到設定檔:
<verb>
pseudo-device pty 256
</verb>
<item>執行這個命令:
<verb>
# cd /dev
# ./MAKEDEV pty{1,2,3,4,5,6,7}
</verb>
<p>會造出 256 個虛擬終端機的裝置節點。
<item>編輯 <tt>/etc/ttys</tt> 並加入符合 256 個終端機的行數。它們應
該符合已經存在單項的格式,舉例來說,它們看起來像:
<verb>
ttyqc none network
</verb>
<p>字母設計的順序是 <tt>tty[pqrsPQRS][0-9a-v]</tt>,使用正規表示式。
<item>用新的核心程式重新啟動電腦就可以了。
</enum>
</sect>

View file

@ -0,0 +1,139 @@
<!-- $Id: applications.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by freebsd@FreeBSD.ORG -->
<!-- English Version: 1.18 -->
<sect>
<heading>User Applications<label id="applications"></heading>
<sect1>
<heading>嗯. 我要在哪找到我要的程式ㄟ?</heading>
<p>請看看 <url url="../ports/" name="the ports page"> 吧.
這邊有份已經 port 到 FreeBSD 的軟體列表. 目前有超過 1800 個軟體已經被
port 到 FreeBSD 上, 並且每天都在增加中. 所以有空就多看看這份列表,
不然你也可以訂閱 <tt/freebsd-announce/
<ref id="mailing" name="mailing list"> 這份 mailing list, 會有人將
每個星期最新的軟體列表貼在上面.
<p>大部份的 ports 應該都可以在 2.2, 3.0 跟 4.0 的系統上使用,
並且還有部份的 ports 可以在 2.1.x 的系統上運作.
每次當 FreeBSD release 時, 都會有一份 ports tree 被放在這一個
release cd 裡面的 <tt>ports/</tt> 目錄裡.
<p>We also support the concept of a ``package'', essentially no
more than a gzipped binary distribution with a little extra
intelligence embedded in it for doing whatever custom installation
work is required. A package can be installed and uninstalled
again easily without having to know the gory details of which
files it includes.
<p>Use the package installation menu in <tt>/stand/sysinstall</tt>
(under the post-configuration menu item) or invoke the
<em>pkg_add(1)</em> command on the specific package files you're
interested in installing. Package files can usually be identified by
their <em>.tgz</em> suffix and CDROM distribution people will have
a <tt>packages/All</tt> directory on their CD which contains such
files. They can also be downloaded over the net for various versions
of FreeBSD at the following locations:
<descrip>
<tag>for 2.2.7-release/2.2-stable</tag>
<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.7/"
name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-2.2.7/">
<tag>for 3.0-current</tag>
<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/"
name="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/packages-3.0/">
</descrip>
<p>or your nearest local mirror site.
<p>Note that all ports may not be available as packages since
new ones are constantly being added. It is always a good
idea to check back periodically to see which packages are available
at the <url url="ftp://ftp.freebsd.org/pub/FreeBSD/"
name="ftp.freebsd.org"> master site.
<sect1>
<heading>我可以在哪邊找到 libc.so.3.0?</heading>
<p>你可能在一台 2.1.x 的機器上, 跑著給 2.2/3.0 的軟體.
請再往上面一個章節看, 正確的取得給你機器用的 port/package.
<sect1>
<heading>
ghostscript 在我的 386/486SX 上有點問題ㄟ.<label id="emul">
</heading>
<p>你沒有浮點運算器, 對吧?.
你必須在你的 kernel 中加入數學運算模擬器, 你可以跟著下面的步驟做,
並在更改過你的 kernel 設定檔後, 重新編譯過一次.
<verb>
options GPL_MATH_EMULATE
</verb>
<p><bf/NOTE/ 當你加入上一行的同時, 你必須將 <tt/MATH&lowbar;EMULATE/
移除掉.
<sect1>
<heading>
當我執行 SCO/iBCS2 的程式時, 它掛在 <tt/socksys/.
</heading>
<p>你必須先修改 <tt>/etc/sysconfig</tt>
(or <htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc.conf(5)"
name="/etc/rc.conf">) 這檔案最後一個章節, 將下面所講到的變數
設成 <tt/YES/:
<verb>
# Set to YES if you want ibcs2 (SCO) emulation loaded at startup
ibcs2=NO
</verb>
<p>這會在開機時將 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?ibcs2" name="ibcs2">
這一個 kernel 模組載入.
<p>你還要將你的 /compat/ibcs2/dev 改成下面這樣:
<verb>
lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 X0R@ -> /dev/null
lrwxr-xr-x 1 root wheel 7 Oct 15 22:20 nfsd@ -> socksys
-rw-rw-r-- 1 root wheel 0 Oct 28 12:02 null
lrwxr-xr-x 1 root wheel 9 Oct 15 22:20 socksys@ -> /dev/null
crw-rw-rw- 1 root wheel 41, 1 Oct 15 22:14 spx
</verb>
<p>你只需要將 socksys 轉向到 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?null(4)" name="/dev/null">
去騙過 open &amp; close. 在 -current 裡面的 ibcs2 相關程式碼將會處
理這些東西. This is muck cleaner than the way it was done before.
假如你想要使用 <tt/spx/ 方面的程式, 在你的核心設定檔裡面加上
<tt/SPX&lowbar;HACK/ .
<sect1>
<heading>
我要如何在我的機器上設定 INN (Internet News)?
</heading>
<p>After installing the inn package or port, an excellent place to
<p>在你使用 package 或者是 port 安裝完 inn 之後,
<url url="http://www.cis.ohio-state.edu/~barr/INN.html"
name="Dave Barr's INN Page"> 是個非常好的開始, 你可以在那邊找到
INN 的 FAQ.
</sect1>
<sect1>
<heading>我該使用那個版本的 Microsoft FrontPage?
</heading>
<p>使用 Port 吧! 在 ports tree 中已經有一個包含 FrontPage 的 Apache 版本了.
</p>
</sect1>
</sect>

View file

@ -0,0 +1,99 @@
<!-- $Id: commercial.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by vanilla@FreeBSD.ORG -->
<!-- English version: 1.3 -->
<sect>
<heading>商業軟體<label id="commercial"></heading>
<p><bf/NOTE/ This section is still very sparse, though we're hoping, of
course, that companies will add to it! :) The FreeBSD group has no
financial interest in any of the companies listed here but simply
lists them as a public service (and feels that commercial interest
in FreeBSD can have very positive effects on FreeBSD's long-term
viability). We encourage commercial software vendors to send their
entries here for inclusion. See
<url url="../commercial/commercial.html" name="the Vendors page">
for a longer list.
<sect1>
<heading>我可以在哪邊找到給 FreeBSD 用的 Motif?</heading>
<p>聯絡 <ref id="xig" name="Xi Graphics"> , 他們提供了一個給 FreeBSD
用的 Motif 2.0 套件.
<p>在這套件中包括了:
<itemize>
<item>OSF/Motif manager, xmbind, panner, wsm.
<item>Development kit with uil, mrm, xm, xmcxx, include and Imake
files.
<item>Static and dynamic libraries.
<item>Demonstration applets.
<item>Preformatted man pages.
</itemize>
<p>在你跟他們訂購 Motif 時, 請一定註明你要的是 FreeBSD 的版本!
因為 <em>Xi Graphics</em> 也同時提供了 BSDI 跟 Linux 版本的 Motif.
目前發行的版本是放在四塊磁片中, 將來他們會將所有的東西都放到光碟裡,
就像他們所發行的 CDE 一樣.
<sect1>
<heading>我可以在哪邊找到給 FreeBSD 用的 CDE?</heading>
<p>聯絡 <ref id="xig" name="Xi Graphics"> , 他們提供了一個給 FreeBSD
用的 CDE 1.0.10 套件, 裡面包括了 Motif 1.2.5, 並且他們的 CDE 也可以在
Motif 2.0 下很正常的執行.
<p>CDE 是用光碟的方式發行, FreeBSD 跟 Linux 版本都一樣.
<sect1>
<heading>
那邊有要錢, 但是高效率的 X servers?<label id="xig">
</heading>
<p>如你所願, <url url="http://www.xig.com" name="Xi Graphics">
提供了 Accelerated-X 給 FreeBSD 跟其他 Intel based 的系統.
<p>這個高效率的 X Server 有非常簡單的設定方式, 並且支援了目前市面上
當紅的各大廠牌的顯示卡, 最重要的是, 它只給你 Binary.
它是用磁片的方式發行, FreeBSD 跟 Linux 版本都一樣.
<p>你可以在 FreeBSD 的原廠四片光碟中找到這個高效率 X Server 的 demo 版,
當然你也可以直接在網路上找到. <!-- 這段我有加東西 -->
<p>Xi Graphics 也有在賣 FreeBSD 用的 Motif 跟 CDE (往上面看看).
<descrip>
<tag/更多的資訊/
<url url="http://www.xig.com/" name="Xi Graphics WWW page">
<tag/或/ <url url="mailto:sales@xig.com" name="Sales"> or
<url url="mailto:support@xig.com" name="Support"> email addresses.
<tag/或/ phone (800) 946 7433 or +1 303 298-7478.
</descrip>
<sect1>
<heading>在 FreeBSD 上有任何的資料庫嗎?</heading>
<p>有! Conetic Software Systems 已經將他們的 C/base 跟 C/books
ports 到 FreeBSD 2.0.5(或更高版次)上, 而 Sleepycat Software 也在賣
一套有商業支援的資料庫函式庫.
<descrip>
<tag/For more information/
<url url="http://www.conetic.com/" name="Conetic Software Systems">
<tag/or mail/
<url url="mailto:info@conetic.com" name="Information E-mail address">,
<tag/and/
<url url="http://www.sleepycat.com/" name = "Sleepycat Software">.
</descrip>
</sect>

492
zh_TW.Big5/FAQ/hackers.sgml Normal file
View file

@ -0,0 +1,492 @@
<!-- $Id: hackers.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by -->
<!-- English Version: 1.11 -->
<sect>
<heading>For serious FreeBSD hackers only<label id="hackers"></heading>
<sect1>
<heading>
What are SNAPs and RELEASEs?
</heading>
<p>There are currently three active/semi-active branches in the FreeBSD
<url url="http://www.freebsd.org/cgi/cvsweb.cgi" name="CVS Repository">:
<itemize>
<item><bf/RELENG_2_2/ AKA <bf/2.2-stable/ AKA <bf/"2.2 branch"/
<item><bf/RELENG_3/ AKA <bf/3.x-stable/ AKA <bf/"3.0 branch"/
<item><bf/HEAD/ AKA <bf/-current/ AKA <bf/4.0-current/
</itemize>
<p><bf/HEAD/ is not an actual branch tag, like the other two, it's
simply a symbolic constant for
<em/"the current, non-branched development stream"/ which we simply
refer to as <bf/-current/.
<p>Right now, <bf/-current/ is the 4.0 development stream and the
<bf/3.0-stable/ branch, <bf/RELENG_3/, forked off from
<bf/-current/ in Jan 1999.
<p>The <bf/2.2-stable/ branch, <bf/RELENG_2_2/, departed -current in
November 1996.
<p>The <bf/2.1-stable/ branch, <bf/RELENG_2_1_0/, departed -current in
September of 1994. This branch has been fully retired.
<sect1>
<heading>
How do I make my own custom release?<label id="custrel">
</heading>
<p>To make a release you need to do three things: First, you need to
be running a kernel with the <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?vn" name="vn"> driver configured
in. Add this to your kernel config file and build a new kernel:
<verb>
pseudo-device vn #Vnode driver (turns a file into a device)
</verb>
<p>Second, you have to have the whole CVS repository at hand.
To get this you can use <url url="../handbook/cvsup.html" name="CVSUP">
but in your supfile set the release name to cvs and remove any tag or
date fields:
<verb>
*default prefix=/home/ncvs
*default base=/a
*default host=cvsup.FreeBSD.org
*default release=cvs
*default delete compress use-rel-suffix
## Main Source Tree
src-all
src-eBones
src-secure
# Other stuff
ports-all
www
doc-all
</verb>
<p>Then run <tt/cvsup -g supfile/ to suck all the good bits onto your
box...
<p>Finally, you need a chunk of empty space to build into. Let's
say it's in <tt>/some/big/filesystem</tt>, and from the example
above you've got the CVS repository in <tt>/home/ncvs</tt>:
<verb>
setenv CVSROOT /home/ncvs # or export CVSROOT=/home/ncvs
cd /usr/src/release
make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release
</verb>
<p>An entire release will be built in
<tt>/some/big/filesystem/release</tt> and you will have a full FTP-type
installation in <tt>/some/big/filesystem/release/R/ftp</tt> when you're
done. If you want to build your SNAP along some other branch than
-current, you can also add <tt/RELEASETAG=SOMETAG/ to
the make release command line above, e.g. <tt/RELEASETAG=RELENG_2_2/
would build an up-to-the- minute 2.2-STABLE snapshot.
<sect1>
<heading>How do I create customized installation disks?</heading>
<p>The entire process of creating installation disks and source and
binary archives is automated by various targets in
<tt>/usr/src/release/Makefile</tt>. The information there should
be enough to get you started. However, it should be said that this
involves doing a ``make world'' and will therefore take up a lot of
time and disk space.
<sect1>
<heading>``make world'' clobbers my existing installed binaries.</heading>
<p>Yes, this is the general idea; as its name might suggest,
``make world'' rebuilds every system binary from scratch, so you can be
certain of having a clean and consistent environment at the end (which
is why it takes so long).
<p>If the environment variable <tt/DESTDIR/ is defined while running
``<tt/make world/'' or ``<tt/make install/'', the newly-created
binaries will be deposited in a directory tree identical to the
installed one, rooted at <tt>&dollar;&lcub;DESTDIR&rcub;</tt>.
Some random combination of shared libraries modifications and
program rebuilds can cause this to fail in ``<tt/make world/'',
however.
<sect1>
<heading>
When my system boots, it says ``(bus speed defaulted)''.
</heading>
<p>The Adaptec 1542 SCSI host adapters allow the user to configure
their bus access speed in software. Previous versions of the
1542 driver tried to determine the fastest usable speed and set
the adapter to that. We found that this breaks some users'
systems, so you now have to define the ``<tt/TUNE&lowbar;1542/'' kernel
configuration option in order to have this take place. Using it
on those systems where it works may make your disks run faster,
but on those systems where it doesn't, your data could be
corrupted.
<sect1>
<heading>
Can I follow current with limited Internet access?<label id="ctm">
</heading>
<p>Yes, you can do this <tt /without/ downloading the whole source tree
by using the <url url="../handbook/ctm.html" name="CTM facility.">
<sect1>
<heading>How did you split the distribution into 240k files?</heading>
<p>Newer BSD based systems have a ``<tt/-b/'' option to split that
allows them to split files on arbitrary byte boundaries.
<p>Here is an example from <tt>/usr/src/Makefile</tt>.
<verb>
bin-tarball:
(cd $&lcub;DISTDIR&rcub;; \
tar cf - . \
gzip --no-name -9 -c | \
split -b 240640 - \
$&lcub;RELEASEDIR&rcub;/tarballs/bindist/bin_tgz.)
</verb>
<sect1>
<heading>I've written a kernel extension, who do I send it to?</heading>
<p>Please take a look at <url url="../handbook/contrib.html"
name="The Handbook entry on how to submit code.">
<p>And thanks for the thought!
<sect1>
<heading>How are Plug N Play ISA cards detected and initialized?</heading>
<p>By: <url url="mailto:uhclem@nemesis.lonestar.org"
name="Frank Durda IV">
<p>In a nutshell, there a few I/O ports that all of the PnP boards
respond to when the host asks if anyone is out there. So when
the PnP probe routine starts, he asks if there are any PnP boards
present, and all the PnP boards respond with their model &num; to
a I/O read of the same port, so the probe routine gets a wired-OR
``yes'' to that question. At least one bit will be on in that
reply. Then the probe code is able to cause boards with board
model IDs (assigned by Microsoft/Intel) lower than X to go
``off-line''. It then looks to see if any boards are still
responding to the query. If the answer was ``<tt/0/'', then
there are no boards with IDs above X. Now probe asks if there
are any boards below ``X''. If so, probe knows there are boards
with a model numbers below X. Probe then asks for boards greater
than X-(limit/4) to go off-line. If repeats the query. By
repeating this semi-binary search of IDs-in-range enough times,
the probing code will eventually identify all PnP boards present
in a given machine with a number of iterations that is much lower
than what 2^64 would take.
<p>The IDs are two 32-bit fields (hence 2&circ;64) + 8 bit checksum.
The first 32 bits are a vendor identifier. They never come out
and say it, but it appears to be assumed that different types of
boards from the same vendor could have different 32-bit vendor
ids. The idea of needing 32 bits just for unique manufacturers
is a bit excessive.
<p>The lower 32 bits are a serial &num;, ethernet address, something
that makes this one board unique. The vendor must never produce
a second board that has the same lower 32 bits unless the upper
32 bits are also different. So you can have multiple boards of
the same type in the machine and the full 64 bits will still be
unique.
<p>The 32 bit groups can never be all zero. This allows the
wired-OR to show non-zero bits during the initial binary search.
<p>Once the system has identified all the board IDs present, it will
reactivate each board, one at a time (via the same I/O ports),
and find out what resources the given board needs, what interrupt
choices are available, etc. A scan is made over all the boards
to collect this information.
<p>This info is then combined with info from any ECU files on the
hard disk or wired into the MLB BIOS. The ECU and BIOS PnP
support for hardware on the MLB is usually synthetic, and the
peripherals don't really do genuine PnP. However by examining
the BIOS info plus the ECU info, the probe routines can cause the
devices that are PnP to avoid those devices the probe code cannot
relocate.
<p>Then the PnP devices are visited once more and given their I/O,
DMA, IRQ and Memory-map address assignments. The devices will
then appear at those locations and remain there until the next
reboot, although there is nothing that says you can't move them
around whenever you want.
<p>There is a lot of oversimplification above, but you should get
the general idea.
<p>Microsoft took over some of the primary printer status ports to
do PnP, on the logic that no boards decoded those addresses for
the opposing I/O cycles. I found a genuine IBM printer board
that did decode writes of the status port during the early PnP
proposal review period, but MS said ``tough''. So they do a
write to the printer status port for setting addresses, plus that
use that address + <tt/0x800/, and a third I/O port for reading
that can be located anywhere between <tt/0x200/ and <tt/0x3ff/.
<sect1>
<heading>Does FreeBSD support architectures other than the x86?</heading>
<p>Several groups of people have expressed interest in working on
multi-architecture ports for FreeBSD and the FreeBSD/AXP (ALPHA)
port is one such effort which has been quite successful, now
available in 3.0 SNAPshot release form at <url
url="ftp://ftp.freebsd.org/pub/FreeBSD/alpha/"
name="ftp://ftp.freebsd.org/pub/FreeBSD/alpha">. The ALPHA
port currently runs on a growing number of ALPHA machine
types, among them the AlphaStation, AXPpci, PC164, Miata and Multia
models. This port is not yet considered a full release and won't be
until a full compliment of system installation tools and a distribution
on CDROM installation media is available, including a reasonable
number of working ports and packages.
FreeBSD/AXP should be considered BETA quality software at this
time. For status information, please join the
<tt>&lt;freebsd-alpha@FreeBSD.ORG&gt;</tt><ref id="mailing"
name="mailing list">.
Interest has also been expressed in a port of FreeBSD to
the SPARC architecture, join the <tt>&lt;freebsd-sparc@FreeBSD.ORG&gt;
</tt><ref id="mailing" name="mailing list"> if you are interested
in joining that project. For general discussion on new architectures,
join the <tt>&lt;freebsd-platforms@FreeBSD.ORG&gt;</tt>
<ref id="mailing" name="mailing list">.
<sect1>
<heading>I need a major number for a device driver I've written.</heading>
<p>This depends on whether or not you plan on making the driver
publicly available. If you do, then please send us a copy of the
driver source code, plus the appropriate modifications to
<tt>files.i386</tt>, a sample configuration file entry, and the
appropriate <htmlurl url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV"
name="MAKEDEV"> code to create any special files your device uses. If
you do not, or are unable to because of licensing restrictions, then
character major number 32 and block major number 8 have been reserved
specifically for this purpose; please use them. In any case, we'd
appreciate hearing about your driver on
<tt>&lt;freebsd-hackers@FreeBSD.ORG&gt;</tt>.
<sect1>
<heading>Alternative layout policies for directories</heading>
<p>
In answer to the question of alternative layout policies for
directories, the scheme that is currently in use is unchanged
from what I wrote in 1983. I wrote that policy for the original
fast filesystem, and never revisited it. It works well at keeping
cylinder groups from filling up. As several of you have noted,
it works poorly for find. Most filesystems are created from
archives that were created by a depth first search (aka ftw).
These directories end up being striped across the cylinder groups
thus creating a worst possible senario for future depth first
searches. If one knew the total number of directories to be
created, the solution would be to create (total / fs_ncg) per
cylinder group before moving on. Obviously, one would have to
create some heuristic to guess at this number. Even using a
small fixed number like say 10 would make an order of magnitude
improvement. To differentiate restores from normal operation
(when the current algorithm is probably more sensible), you
could use the clustering of up to 10 if they were all done
within a ten second window. Anyway, my conclusion is that this
is an area ripe for experimentation.</p>
<p>Kirk McKusick, September 1998</p>
<sect1>
<heading>Making the most of a kernel panic</heading>
<p>
<em>[This section was extracted from a mail written by <url
url="mailto:wpaul@FreeBSD.ORG" name="Bill Paul"> on the
freebsd-current <ref id="mailing" name="mailing list"> by <url
url="mailto:des@FreeBSD.ORG" name="Dag-Erling Co&iuml;dan
Sm&oslash;rgrav">, who fixed a few typos and added the bracketed
comments]</em>
<p>
<verb>
From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
Subject: Re: the fs fun never stops
To: ben@rosengart.com
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
Cc: current@FreeBSD.ORG
</verb>
<p>
<em>[&lt;ben@rosengart.com&gt; posted the following panic
message]</em>
<verb>
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x40
> fault code = supervisor read, page not present
> instruction pointer = 0x8:0xf014a7e5
^^^^^^^^^^
> stack pointer = 0x10:0xf4ed6f24
> frame pointer = 0x10:0xf4ed6f28
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 80 (mount)
> interrupt mask =
> trap number = 12
> panic: page fault
</verb>
<p> [When] you see a message like this, it's not enough to just
reproduce it and send it in. The instruction pointer value that
I highlighted up there is important; unfortunately, it's also
configuration dependent. In other words, the value varies
depending on the exact kernel image that you're using. If you're
using a GENERIC kernel image from one of the snapshots, then
it's possible for somebody else to track down the offending
function, but if you're running a custom kernel then only
<em/you/ can tell us where the fault occured.
<p> What you should do is this:
<itemize>
<item>Write down the instruction pointer value. Note that the
<tt/0x8:/ part at the begining is not significant in this case:
it's the <tt/0xf0xxxxxx/ part that we want.
<item>When the system reboots, do the following:
<verb>
% nm /kernel.that.caused.the.panic | grep f0xxxxxx
</verb>
where <tt/f0xxxxxx/ is the instruction pointer value. The
odds are you will not get an exact match since the symbols
in the kernel symbol table are for the entry points of
functions and the instruction pointer address will be
somewhere inside a function, not at the start. If you don't
get an exact match, omit the last digit from the instruction
pointer value and try again, i.e.:
<verb>
% nm /kernel.that.caused.the.panic | grep f0xxxxx
</verb>
If that doesn't yield any results, chop off another digit.
Repeat until you get some sort of output. The result will be
a possible list of functions which caused the panic. This is
a less than exact mechanism for tracking down the point of
failure, but it's better than nothing.
</itemize>
<p> I see people constantly show panic messages like this but
rarely do I see someone take the time to match up the
instruction pointer with a function in the kernel symbol table.
<p> The best way to track down the cause of a panic is by
capturing a crash dump, then using <tt/gdb(1)/ to to a stack
trace on the crash dump. Of course, this depends on <tt/gdb(1)/
in -current working correctly, which I can't guarantee (I recall
somebody saying that the new ELF-ized <tt/gdb(1)/ didn't handle
kernel crash dumps correctly: somebody should check this before
3.0 goes out of beta or there'll be a lot of red faces after the
CDs ship).
<p>
In any case, the method I normally use is this:
<itemize>
<item>Set up a kernel config file, optionally adding 'options DDB' if you
think you need the kernel debugger for something. (I use this mainly
for setting beakpoints if I suspect an infinite loop condition of
some kind.)
<item>Use <tt/config -g KERNELCONFIG/ to set up the build directory.
<item><tt>cd /sys/compile/KERNELCONFIG; make</tt>
<item>Wait for kernel to finish compiling.
<item><tt/cp kernel kernel.debug/
<item><tt/strip -d kernel/
<item><tt/mv /kernel /kernel.orig/
<item><tt>cp kernel /</tt>
<item>reboot
</itemize>
<p> <em>[Note: Now that FreeBSD 3.x kernels are Elf by default,
you should use <tt/strip -g/ instead of <tt/strip -d/. If for some
reason your kernel is still a.out, use <tt/strip -aout -d/.]</em>
<p> Note that YOU DO <em/NOT/ WANT TO ACTUALLY BOOT THE KERNEL
WITH ALL THE DEBUG SYMBOLS IN IT. A kernel compiled with <tt/-g/
can easily be close to 10MB in size. You don't have to actually
boot this massive image: you only need it later for <tt/gdb(1)/
(<tt/gdb(1)/ wants the symbol table). Instead, you want to keep
a copy of the full image and create a second image with the
debug symbols stripped out using <tt/strip -d/. It is this
second stripped image that you want to boot.
<p> To make sure you capture a crash dump, you need edit
<tt>/etc/rc.conf</tt> and set <tt/dumpdev/ to point to your swap
partition. This will cause the <tt/rc(8)/ scripts to use the
<tt/dumpon(8)/ command to enable crash dumps. You can also run
<tt/dumpon(8)/ manually. After a panic, the crash dump can be
recovered using <tt/savecore(8)/; if <tt/dumpdev/ is set in
<tt>/etc/rc.conf</tt>, the <tt/rc(8)/ scripts will run
<tt/savecore(8)/ automatically and put the crash dump in
<tt>/var/crash</tt>.
<p> NOTE: FreeBSD crash dumps are usually the same size as the
physical RAM size of your machine. That is, if you have 64MB of
RAM, you will get a 64MB crash dump. Therefore you must make sure
there's enough space in <tt>/var/crash</tt> to hold the dump.
Alternatively, you run <tt/savecore(8)/ manually and have it
recover the crash dump to another directory where you have more
room. It's possible to limit the size of the crash dump by using
<tt/options MAXMEM=(foo)/ to set the amount of memory the kernel
will use to something a little more sensible. For example, if
you have 128MB of RAM, you can limit the kernel's memory usage
to 16MB so that your crash dump size will be 16MB instead of
128MB.
<p> Once you have recovered the crash dump, you can get a stack
trace with <tt/gdb(1)/ as follows:
<p>
<verb>
% gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0
(gdb) where
</verb>
<p> Note that there may be several screens worth of information;
ideally you should use <tt/script(1)/ to capture all of them.
Using the unstripped kernel image with all the debug symbols
should show the exact line of kernel source code where the panic
occured. Usually you have to read the stack trace from the
bottom up in order to trace the exact sequence of events that
lead to the crash. You can also use <tt/gdb(1)/ to print out the
contents of various variables or structures in order to examine
the system state at the time of the crash.
<p> Now, if you're really insane and have a second computer, you
can also configure <tt/gdb(1)/ to do remote debugging such that
you can use <tt/gdb(1)/ on one system to debug the kernel on
another system, including setting breakpoints, single-stepping
through the kernel code, just like you can do with a normal
user-mode program. I haven't played with this yet as I don't
often have the chance to set up two machines side by side for
debugging purposes.
<p> <em>[Bill adds: "I forgot to mention one thing: if you have
DDB enabled and the kernel drops into the debugger, you can
force a panic (and a crash dump) just by typing 'panic' at the
ddb prompt. It may stop in the debugger again during the panic
phase. If it does, type 'continue' and it will finish the crash
dump." -ed]</em>
</sect>

View file

@ -0,0 +1,353 @@
<!-- $Id: hardware.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by gsl@tpts4.seed.net.tw -->
<!-- English Version: 1.14 -->
<sect>
<heading>硬體的相容性<label id="hardware"></heading>
<sect1>
<heading>FreeBSD 支援哪些硬碟的介面?</heading>
<p>FreeBSD 支援 EIDE 及 SCSI 週邊 (有著相容的 controller
請參考下一段)以及使用「Western Digital」介面的週邊 (MEM、
、RLL、ESDI當然IDE 也在包括內)。但少數使用專有的 ESDI
的介面無法運作:像是 WD1002/3/6/7 介面等等。
<sect1>
<heading>哪一些 SCSI 卡有被支援?</heading>
<p>在 <htmlurl url="../handbook/install:hw.html" name="Handbook"> 裡有完整的資料。
<sect1>
<heading>哪一些 CD-ROM 被 FreeBSD 所支援?</heading>
<p>首先,任何接在 SCSI 介面上的 CDROM 都有被 FreeBSD 所支援。
<p>其次,下面所列的 CD-ROM 也都有被支援:
<itemize>
<item>Mitsumi LU002 (8bit), LU005 (16bit) 及 FX001D (16bit 兩倍速)。<newline>
<item>Sony CDU 31/33A<newline>
<item>接在 Sound Blaster 上非 SCSI 介面的 CD-ROM<newline>
<item>Matsushita/Panasonic CD-ROM<newline>
<item>相容於 ATAPI IDE 介面的 CD-ROM<newline>
</itemize>
<p>已經知道非 SCSI 的週邊設備會比 SCSI 的慢很多,另外,有一些 ATAPI
CDROM (這也就是說非 SCSI 的 CDROM) 可能無法運作。
<p>對了2.2 版的 FreeBSD CDROM (由 Walnut Creek 整理的) 支援光碟開機。
<sect1>
<heading>FreeBSD 支援 ZIP 嗎?</heading>
<p>FreeBSD 當然支援 SCSI ZIP。但是 ZIP 只能夠被設定在 SCSI ID 5 或是 6
。但如果 SCSI 卡上的 BIOS 支援它,你甚至可以用它來開機。我們不曉得哪一
塊卡可以讓你把卡的 ID 設在除了 0 或 1 以外的地方開機... 看看你的說明手
冊 (果你成功的話,也請你讓我們知道)
<p>ATAPI (也就是 IDE 介面) ZIP 已經在 FreeBSD 2.2.6 及以後的版本被支援了。
<p>FreeBSD 3.0-CURRENT 也有支援 parallel ZIP。然而不過你需要製作一個可以
支援 ppbus (Parallel Port Bus) 的 kernel以讓你可以使用你的 ZIP。請參
考 LINT 這個檔案。
<p>也可以參考<ref id="jaz" name="有關可以移動的設備">
及<ref id="disklabel" name="有關於 format 的資料">。
<sect1>
<heading>
FreeBSD 有支援 JAZ、EZ 及其他像這一類可以移動的設備嗎?
</heading>
<p>除了 IDE 的 EZ drive 外,其他的應該都是 SCSI 介面。所以你應該將大部
份設備看成 SCSI 磁碟機,把剩下那些的 IDE EZ 的設備看成 IDE 設備。
<p><label id="jaz">我們並不確定 FreeBSD 對於更換 jaz 磁片時的支援怎樣
。但我們知道必需在抽換 jaz 磁片前將這個檔案系統先卸下。當然,你必需確
定在開機時這些設備的電源是打開的,以便讓 FreeBSD 可以偵測到。
<p>參考<ref id="disklabel" name="有關於 format 磁片的資料">。
<sect1>
<heading>有那些 multi-port serial 卡被 FreeBSD 所支援?</heading>
<p>你可以參考<htmlurl url="../handbook/install:misc.html"
name="其他週邊設備">的表。
<p>雖然有些卡是沒牌的,但也可以在 FreeBSD 下工作,像是號稱支援 AST 的卡。
<p>參考 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sio"
name="sio 這份說明文件">可以讓你了解更多有關於這一類卡的資訊。
<sect1>
<heading>我有一隻 bus mouse。我該如何設定<label id="busmouse"></heading>
<p>FreeBSD 支援由 Microsoft, Logitech 及 ATI 所生產的 bus mouse 及 InPort
bus mouse。這些滑鼠的 driver 都已經內含在 GENERIC 裡面了。如果你自己有重新
做一個 kernel請確定有沒有把下列這一行加入你的 kernel config file
<verb>
device mse0 at isa? port 0x23c tty irq5 vector mseintr
</verb>
<p>買 bus mouse 時應該會含一塊介面卡。這塊卡允許你設定不同的 port address 及
IRQ number。參考你的說明手冊及 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?mse"
name="mse man page"> 來得到更多的資訊.
<sect1>
<heading>
我如何使用 PS/2 mouse 或是 PS/2 keyboard<label id="ps2mouse"></heading>
<p>如果你的 FreeBSD 是 2.2.5 以上的版本 (含 2.2.5),那麼你需要的 driver 不僅放到
kernel 裡面了,而且你的 PS/2 設備應該可以在開機時被偵測到。
<p>如果你用的是 2.1.x 到 2.2.5 (不含 2.2.5) 版的 FreeBSD你可以在
開機的時候進入「kernel configuration menu」裡去啟動也就是在開機時出現
boot: 的符號後打入 -c。因為預設值是關掉的所以你必需自己去啟動它。
<p>如果你用的是更舊的版本,你需要自己編一個 kernel在你的核心設定檔裡面加入
<verb>
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
</verb>
<p>如果你對於自己編一個核心沒有經驗,請參考<htmlurl
url="../handbook/kernelconfig.html" name="「編一個核心」">
<p>如果在開機時有找到 psm0 卻不能使用,請確定在 /dev 下有 psm0 這個設備檔。
如果沒有,你應該用 root 的身份輸入下面這行來做出:
<verb>
cd /dev; sh MAKEDEV psm0
</verb>
<sect1>
<heading>是否有可能在 X Window 之外使用滑鼠呢?<label id="moused"></heading>
<p>如果你用的是 default console driver也就是 syscons而想要用
滑鼠指標來剪貼文字,那麼就執行滑鼠的 daemon也就是 moused然後
用下面這兩行來啟動它:
<verb>
moused -p /dev/xxxx -t yyyy
vidcontrol -m on
</verb>
<p><tt>xxxx</tt> 的地方填入 mouse 的 device name而 <tt>yyyy</tt>
填入這隻滑鼠的 protocol type。你可以參考 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?moused" name="moused">
這個 man page 來找看看有那些 protocol types 可以填。
<p>如果你想要在開機時就執行 moused。在 2.2.1 版之前 (含 2.2.1),到
<tt>/etc/sysconfig</tt> 設定下面的值:
<verb>
mousedtype="yyyy"
mousedport="xxxx"
mousedflags=""
</verb>
在 2.2.2 版以後 (含 2.2.2) 到 <tt>/etc/rc.conf</tt> 設定下面的值:
<verb>
moused_type="yyyy"
moused_port="xxxx"
moused_flags=""
</verb>
<p>另外從 2.2.6 版開始moused 可以自動決定 protocol type除非滑鼠實在
是太舊了。如果太舊的話,在 moused_type 填入 ``<tt>auto</tt>'',然後祈禱
可以偵測的到。
<p>當執行 moused 後,想要在其他程式裡使用滑鼠需要像 X Window 這類的應用
程式。參考本文的 <ref id="x-and-moused" name="另外一段">
<sect1>
<heading>如何在 text console 裡剪貼?</heading>
<p>當執行 moused 後,(參考<ref id="moused" name="前一段">),按住左鍵,
移動滑鼠來選擇一個區域之後放開。然後,按下中鍵或右鍵,就可以貼上去了。
<p>在 2.2.6 版後 (含 2.2.6),按下中鍵會執行貼上這個動作,但按下右鍵會延伸
所選取的區域。如果你的滑鼠沒有中鍵,你可以用模擬的方式或是重新定義滑鼠按
鍵的方式來達成「延伸」的功能。參考 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?moused" name="moused"> 這個 man
pages 來得到更多相關資訊。
<sect1>
<heading>我的滑鼠上有滾輪,能不能在 FreeBSD 下使用?</heading>
<p>很不幸的,在大多數的情況下不行。這些帶有滾輪的滑鼠需要用特
殊的驅動程式。除非滑鼠有被你的程式或是驅動程式所支援,不然這些滑
鼠只能夠當成是普通的兩鍵或三鍵的滑鼠使用。
<sect1>
<heading>
我能在我的 laptop 上使用滑鼠/軌跡球/touchpad 嗎?
</heading>
<p>參考<ref id="ps2mouse" name="上一段的答案">,並且參考
<ref id="pao" name="this note"> on the Mobile Computing page.
<sect1>
<heading>有那些 tape 周邊有被支援?</heading>
<p>FreeBSD 支援 SCSIQIC-36 (QIC-02 介面) 及 QIC-40/80 (Floppy 介面) tape drives。
包括 8-mm (aka Exabyte) 及 DAT drives。已經知道 QIC-40/80 drives 很慢。
<p>某些早期的 8-mm drives 並不相容於 SCSI-2可能沒有辦法在 FreeBSD 上運作。
<sect1>
<heading>FreeBSD 支援 tape changer 嗎?</heading>
<p>FreeBSD 2.2 利用 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ch(4)"
name="ch"> 這個設備來支援 SCSI changers你可以參考 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?chio" name="chio"> 這個指令。
如何控制 changer 的方法可以在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?chio"
name="chio"> 這份說明文件裡找到。
<p>如果你不是用 <htmlurl
url="http://www.freebsd.org/cgi/ports.cgi?amanda" name="AMANDA"> 或
其他已經被知道的 changer記住你只知道如何將一個 tape 從其中一個移到另外一個,
所以你需要記住那一個 tape 在裡面,及現在有那一個 tape 需要放回去。
<sect1>
<heading>有那些音效卡有被 FreeBSD 支援?</heading>
<p>FreeBSD 支援 SoundBlasterSoundBlaster ProSoundBlaster 16
Pro Audio Spectrum 16AdLib 及 Gravis UltraSound sound cards。
但對於 MPU-401 及其相容 MIDI 卡的支源有限。對於使用 Microsoft
Sound System 的卡可以透過 pcm 的驅動程式來使用它。
<p><bf/NOTE/ 這個驅動程式只適用於聲音方面,而且並不支援在這些
卡上的 CD-ROMSCSI 或 joysticks。但也有些例外像是 SoundBlaster、
SoundBlaster SCSI 介面及某些非 SCSI CDROMS 有被支援,但你無法使用這
些設備開機。
<sect1>
<heading>那些網路卡被 FreeBSD 所支援?</heading>
<p>參考<htmlurl url="../handbook/install:nics.html" name="乙太網路卡">
,裡面有完整的清單。
<sect1>
<heading>我的電腦沒有浮點運算器,這聽起來好像不太好?</heading>
<p><tt /Note/ 這只會影響到用 386/486SX/486SLC 的人 - 使用其他的 CPU 都
已經內含符點運算器了。
<p>一般來說這不會造成任何問題,但當你要用的時候,無論在效率上與精密度上,
模擬浮點運算的程式碼不能兼顧 (參考<ref id="emul" name="符點運算模擬器">)。
尤其是在 X 下面畫弧形時會很慢。所以,我們還是會建議買一顆符點運算器。
<p><bf/NOTE/ 有些數學運算器比其他的好。但是沒有人強迫你買 Intel 的。
除非你確定你買的可以在 FreeBSD 上正確的工作。
<sect1>
<heading>2.X 還支援那些設備?</heading>
<p>請多多參考 <htmlurl url="../handbook/install:misc.html" name="Handbook">
,裡面有列出。
<!--
<sect1>
<heading>我要買一臺新的機器,有任何建議可以給我嗎?</heading>
<p>如果你要自行組裝,你可以參考 Handbook 中的<htmlurl
url="../handbook/hw.html" name="硬體">,或者你可以參考<htmlurl
url="../commercial/hardware.html" name="硬體廠商">提供你了解各家
可以使用 FreeBSD 的機器。
-->
<sect1>
<heading>FreeBSD 支援電源管理系統嗎?</heading>
<p>FreeBSD 支援某些機器上的 APM。請參考 <tt/LINT/ 這個 kernel 設定檔,
並找看看 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?apm"
name="APM"> 這個關鍵字。
<sect1>
<heading>在某些硬體上所產生的問題</heading>
<p>本段包括了某些硬體所產生的問題。
<sect2>
<heading>在 Micron systems 的主機板上我沒有辦法進入 FreeBSD</heading>
<p>Micron 的某些主機板沒有遵守 PCI BIOS 的規定,而導至於當進入 FreeBSD
時掛掉。因為這些 PCI 的設備沒有在開機時向主機板報告他的的位置。
<p>進入 BIOS 後將「Plug and Play Operating System」這項給 disable 掉
可以暫時解決這個問題。如果你想得到更多有關 Micron 的訊息,可以參考
<htmlurl
url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"
name="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">
</sect2>
</sect1>
<sect1>
<heading>我有一塊新買的 Adaptec 卡,但是 FreeBSD 找不到它。
</heading>
<p>Adaptec 新的 AIC789x 系列晶片組在剛出蘆的 CAM SCSI 環境下可以使用。
3.0-CURRENT 及 2.2-STABLE 需要 patches
<url url="ftp://ftp.freebsd.org/pub/FreeBSD/development/cam/"
name="ftp://ftp.freebsd.org/pub/FreeBSD/development/cam/">。A CAM-enhanced 開機磁片在
<url url="http://www.freebsd.org/~abial/cam-boot/"
name="http://www.freebsd.org/~abial/cam-boot/">。無論你是用那一個,請先參考 README
</p>
</sect1>
<sect1>
<heading>我這有一個 PnP 的 modem但是 FreeBSD 沒找到咧?
</heading>
<p>你需要把 modem 的 PnP ID 加到 serial 驅動程式的 PnP ID 表裡,然後將 PnP 的功能
給打開。在你的核心設定檔裡加入 <tt/controller pnp0/ 後再重新編譯一個核心,然後重
新啟動你的系統。核心會列出它所找到的所有設備的 PnP ID。請將這些 modem 的 PnP ID
複製到 <tt>/sys/i386/isa/sio.c</tt>,大約 1200 行的地方。你可以找 "SUP1310" 這個
字串來幫助你找到 "siopnp_ids[]" 這個表。再重新編譯一個 kernel 之後重新開機,你的
modem 應該會被找到了。
</p>
<p>你也可以在開機時手動輸入類似下面的字串讓核心看到你的 modem
<verb>
pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
</verb>
</p>
</sect1>
<sect1>
<heading>我該如何在 serial console 前看到 boot: 這個提示符號?
</heading>
<p><enum>
<item>在你的核心檔裡面加入一行 <tt/options COMCONSOLE/,然後重新編譯你的核心,
<item>然後到 /boot.config 裡寫入 <tt/-P/ 這兩個字。
<item>Unplug the keyboard from the system.
</enum></p>
<p>參考 <tt>/usr/src/sys/i386/boot/biosboot/README.serial</tt> 來了解更多的資訊。</p>
</sect1>
<sect1>
<heading>為什麼我的 3Com PCI 網路卡沒有辦法在 Micron 主機板上工作?</heading>
<p>某些 Micron 主機板沒有遵守 PCI BIOS 的規定而使得 PCI 的週邊設備沒有回報
他們的位置。這使得在進入 FreeBSD 時會掛掉。
<p>如果要暫時解決這個問題,請在 BIOS 裡 disable「Plug and Play Operating System」
<p>有關 Micron 更多的訊息可以參考:
<htmlurl
url="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron"
name="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">
<sect1>
<heading>FreeBSD 支援 Symmetric Multiproccessing (SMP) 嗎?
</heading>
<p>SMP 只在 3.0-CURRENT 被支援.
</sect>

View file

@ -0,0 +1,6 @@
<!-- $Id: includes.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- book stores -->
<!ENTITY isbn.amazon 'http://www.amazon.com/exec/obidos/ASIN'>

632
zh_TW.Big5/FAQ/install.sgml Normal file
View file

@ -0,0 +1,632 @@
<!-- $Id: install.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by foxfair@FreeBSD.ORG -->
<!-- English Version: 1.13 -->
<sect>
<heading>安裝 FreeBSD<label id="install"></heading>
<sect1>
<heading>我該下載哪些檔案以取得 FreeBSD</heading>
<p>通常你只需要一張軟碟映像檔,<em>floppies/boot.flp</em>,把它拷
貝到 1.44MB 軟碟片上然後啟動它,再去下載其他的部份(安裝程序會管
理你的 TCP/IP 連線,以及 tapes光碟機軟碟機DOS 分割區,及
其他只要是安裝過程中需要用到的)。
<p>若你只需要自己下載 distributions(可迅速的由 DOS 檔案系統來安裝)
,以下是我們建議你抓來安裝的 distributions
<itemize>
<item> bin/<newline>
<item> manpages/<newline>
<item> compat*/<newline>
<item> doc/ <newline>
<item> src/ssys.* <newline>
</itemize>
<p>安裝程序的完整指令,以及更多普遍性安裝時會碰到的問題可以在
<url url="../handbook/install.html"
name="Handbook entry on installing FreeBSD.">這裡找到。
<sect1>
<heading>救命!啟動的軟碟映像檔無法塞到一片單獨的軟碟片裡!
</heading>
<p>一張 3.5 英吋(1.44MB)軟碟片可以容納 1474560 位元組的資料。
啟動的映像檔就剛好是這個大小。
<p>在準備啟動軟碟片時常見的錯誤有:
<itemize>
<item>使用 <tt>FTP</tt> 時沒有使用 <tt>binary</tt> 模式。
<p>某些 FTP client 軟體它們內定的傳輸模式是 <tt>ascii</tt>
並且試著更改任何在終端被接收的字元,以符合這個 client 系統本身
。大部分情形下這必然會毀損啟動映像檔,檢查一下你下載的啟動
映像檔大小:如果這不是<em>完全地</em>符合 server 端上的檔
案大小,那麼你的下載程序就有問題。
<p>解決方法:在你連接上 server 但尚未開始下載映像檔之前,
看到 FTP 命令提示號時打 <tt>binary</tt>。
<item>使用 DOS 的 <tt>copy</tt> 命令(或等效的 GUI 工具)來把啟
動映像檔傳送到軟碟片。
<p>類似像 <tt>copy</tt> 的程式,在啟動映像檔被建立並且直接
開機後並沒有功用。映像檔裡有完整的磁碟內容,磁軌對磁軌,這代
表著你無法用磁片上固定的檔案去取代它。
你必須把它傳送到軟碟片的``raw''上,使用低階化工具(像是
<tt>fdimage</tt> 或 <tt>rawrite</tt>),這些在
<url url="../handbook/install.html" name="installation guide to
FreeBSD">裡面多有描述。
</itemize>
<sect1>
<heading>安裝 FreeBSD 的指令是什麼?</heading>
<p>你可以在這裡找到安裝指令。
<url url="../handbook/install.html"
name="Handbook entry on installing FreeBSD.">
<sect1>
<heading>要執行 FreeBSD 我還需要什麼?</heading>
<p>你需要一台 386 或更好的 PC包含 5MB 或更多的 RAM以及至少 60MB
的磁碟空間。可以僅使用一個低階的 MDA 圖形卡,如果你要執行 X11R6
,需要 VGA 或更好的視訊卡。
<p>亦參考這個章節 <ref id="hardware" name="Hardware compatibility">
<sect1>
<heading>我只有 4MB RAM那我能安裝 FreeBSD 嗎?</heading>
<p>FreeBSD 2.1.7 是最後一個可在 4MB 系統上被安裝的版本。新版的
FreeBSD像是 2.2,需要至少 5MB 來安裝它在一個全新的系統上。
<p>FreeBSD 的所有版本,包括 3.0,都在 4MB 的記憶體下執行,不過安裝
時不能只用 4MB。如果你想這樣你可以在安裝時加入額外的記憶體
後等系統可以執行後,換回 4MB。或是你可以把你的磁碟機切出一個 4MB
以上置換空間,安裝好系統後再把置換空間砍掉。
<p>FreeBSD 2.1.7 也有不能在 4MB 安裝的情形。正確的說,應該是指
不能在基本的 640kB 加上 3MB 延伸記憶體裡安裝。如果你的主機板
可以重新找回在 640kB 到 1MB 範圍中那些``遺失''的記憶體,那麼
或許你還是可以把 FreeBSD 2.1.7 裝起來。
<p>試著進入你的 BIOS 設定選單並找一個``remap''選像,把它打開。
你或許也該把 ROM shadowing 給關掉。
<p>只在安裝時使用 4MB 可能容易一點,建立一個只有你需要的選項的
核心程式然後就可以用只用 4MB。
<p>你也可以安裝 2.0.5 然後再把你的系統用 2.1.7 安裝程式裡
``upgrade''的選項升級到 2.1.7 版本。
<p>安裝後如果你建立一個自訂的核心,這將會在 4MB 下執行。曾有
人成功的用 2MB 開機(不過系統幾乎不能用 :-))。
<sect1>
<heading>
我該怎麼製作自訂的安裝軟碟片?
</heading>
<p>目前你無法 *只* 製作一個自訂的安裝軟碟片。你必須做出整個全新的
release 系統,這裡面就包括你的安裝軟碟片。某些在
<tt>/usr/src/release/floppies/Makefile</tt> 裡的程式碼假設能讓
你*只*做出那些軟碟片,但是事實上還不行。
<p>要做出自訂的 release 版本,請遵循 <ref id="custrel" name="here">
的指令。
<sect1>
<heading>我可以在我的 PC 上擁有超過一個以上的作業系統嗎?</heading>
<p>請參考 <url url="../tutorials/multios/multios.html"
name="The multi-OS page.">
<sect1>
<heading>Windows 95 可以跟 FreeBSD 並存嗎?</heading>
<p>先安裝 Windows 95然後再裝 FreeBSD。FreeBSD 的啟動管理員
會接著管理 Win95 和 FreeBSD。假使你第二個才裝 Win95它將會
問都不問的粗魯地把你的啟動管理員覆寫過去。假如這已經發生,
請看下一節。
<sect1>
<heading>
Windows 95 把我的啟動管理員殺掉了!我該怎麼把它救回來?
</heading>
<p>你可以用以下兩種方法之一來重新安裝 FreeBSD 的啟動管理員:
<itemize>
<item>執行 DOS進入你的 FreeBSD distributions 的 tools/ 目錄
並找到 <bf>bootinst.exe</bf>。你可以這樣執行它:
<p><bf>bootinst.exe boot.bin</bf>
<p>這樣啟動管理員將會再次被安裝。
<item>用 FreeBSD 啟動軟碟片再次開機然後進入 Custom 安裝選單
項目,選擇 Partition選擇那個包含啟動管理員的磁碟機(大多是
第一個),然後當分割區編輯器(partition editor)出現時,第一件
事(意思就是:不要做任何更改) 先選擇 (W)rite。會出現確認的詢
問,回答 yes然後當你看到 Boot Manager 的選擇提示時,確定
你選的是"Boot Manager"這項。
這會把啟動管理員重新寫回磁碟裡。跳離安裝選單然後就跟正常情形
一樣重新啟動硬碟。
</itemize>
<sect1>
<heading>我可以在一個有壞軌(bad block)的磁碟上進行安裝嗎?</heading>
<p>FreeBSD 的 bad block (<htmlurl
url="http://www.freebsd.org/cgi/man.cgi?bad144" name="bad144">
命令) 處理並非 100&percnt 完全(用圖形化來看),而且很不幸我要告
訴你假如你有一個 IDE 或 ESDI 裝置包含大量的 bad blocks那麼
FreeBSD 可能不適合你!這表示,對其他大多數的 IDE 系統可能有
用,你可能想在放棄前先嘗試看看。
<p>如果你有一個有 bad blocks 的 SCSI 裝置,請看 <ref id="awre"
name="this answer">.
<sect1>
<heading>當我啟動安裝軟碟片時,奇怪的事情發生了!</heading>
<p>如果你看到奇怪的事情,像是機器停住了或是當你試著從安裝磁片起
動時突然自動重新開機了,這裡有三個問題你該先問問自己:-
<enum>
<item>你是否使用一個新的,剛格式化過,沒有任何錯誤的軟碟片(可
以是一張全新剛拆封的,而非是那種已經你的床下躺了三年,是雜誌贈
送的封面磁片)
<item>你是否用 binary 模式下載軟碟映像檔?
(不用不好意思,就算是我們之中最好的一個人也曾意外的把 binary
檔用 ASCII 模式下載至少一次!)
<item>如果你正在使用像是 Windows95 或 Windows NT 這幾種新型的
作業系統,你有沒有把系統關機然後啟動到最原始狀態,只有 DOS
這些 OS 看起來會阻礙那些直接操作硬體的程式,像是建立磁碟的程式
,只要在 GUI 環境下的 DOS shell 就會導致這個問題。
</enum>
<p>也有過報告有關 Netscape 會導致下載啟動軟碟的問題,因此如果你
可以,最好使用別種不同的 FTP client 。
<sect1>
<heading>救命!我不能從 tape 安裝!</heading>
<p>如果你從 tape 安裝 2.1.7,你必須用每個 tar blocksize 是 10
(5120 bytes)建立這個 tape。內定的 tar blocksize 是 20(10240
bytes),然而用這種內定大小建立的 tape 無法用來安裝 2.1.7R
如果你用這種 tapes你會看到有關資料記錄區大小過大的抱怨訊
息。
<sect1>
<heading>用一條並聯線(PLIP)連接兩台 FreeBSD。
</heading>
<p>找一條 laplink 線,確定兩邊電腦的核心都支援 lpt 驅動程式。
<verb>
$ dmesg | grep lp
lpt0 at 0x378-0x37f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface
</verb>
<p>把 laplink 線插入並聯界面上。
<p>用 root 身分在兩台電腦上設定 lp0 的網路界面參數。舉例,如果
你想用 max 連接 moritz
<verb>
max <-----> moritz
IP Address 10.0.0.1 10.0.0.2
</verb>
max 端應該這樣開始:
<verb>
# ifconfig lp0 10.0.0.1 10.0.0.2
</verb>
moritz 則這樣:
<verb>
# ifconfig lp0 10.0.0.2 10.0.0.1
</verb>
<P>好了!也請你看看 lp(4) 和 lpt(4) 的 manpages。
<P>你也該把這些主機加到 /etc/hosts 裡面。
<verb>
127.0.0.1 localhost.my.domain localhost
10.0.0.1 max.my.domain max
10.0.0.2 moritz.my.domain moritz
</verb>
<P>用以下方法檢查是否有正常動作:
on max:
<verb>
$ ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
</verb>
<verb>
$ netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
moritz max UH 4 127592 lp0
</verb>
<verb>
$ ping -c 4 moritz
PING moritz (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- moritz ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
</verb>
<sect1>
<heading>
我可以在我的膝上型電腦用 PLIP(Parallel Line IP)安裝嗎?
</heading>
<p>用 laplink 並聯線連接兩台電腦以使用這個特性:
<verb>
+----------------------------------------+
|A-name A-End B-End Descr. Port/Bit |
+----------------------------------------+
|DATA0 2 15 Data 0/0x01 |
|-ERROR 15 2 1/0x08 |
+----------------------------------------+
|DATA1 3 13 Data 0/0x02 |
|+SLCT 13 3 1/0x10 |
+----------------------------------------+
|DATA2 4 12 Data 0/0x04 |
|+PE 12 4 1/0x20 |
+----------------------------------------+
|DATA3 5 10 Strobe 0/0x08 |
|-ACK 10 5 1/0x40 |
+----------------------------------------+
|DATA4 6 11 Data 0/0x10 |
|BUSY 11 6 1/0x80 |
+----------------------------------------+
|GND 18-25 18-25 GND - |
+----------------------------------------+
</verb>
<p>請參考 Mobile Computing 網頁的 <ref id="pao" name="this note">。
<sect1>
<heading>
我該怎麼使用一個磁碟裝置的幾何(geometry)
</heading>
<p>(一台磁碟的"gromrtry",我們指的是這台磁碟上 cylinders, heads
和 sectors/track 的數目 - 為了方便且稱之為 C/H/S。這是 PC 的
BIOS 用來讀/寫磁碟的依據)。
<p>為了某些理由,這似乎會導致很多困擾。首先,一台 SCSI 裝置的
<tt /physical/ geometry 跟 FreeBSD 在使用的 disk blocks 是完
全無關的。事實上,並沒有所謂"physical geometry"這種東西,這
是指磁碟機上磁區密度的變化 - 製造商要求是"真實的"physical
geometry 通常是指,他們所能找出浪費最少空間的 geometry 結果。
對 IDE 磁碟來說FreeBSD 使用 C/H/S 方式工作,但是所有現在
的磁碟已經在內部把它轉換成參考 block 了。
<p>另外就是所謂的<tt /logical/ geometry - 這是當 BIOS 問"你的
geometry 是什麼?"的時候,所得到的答案並且把它用來存取磁碟。
當開機時 FreeBSD 使用 BIOS 資料,讓這個正確是相當重要的。另外
,如果你在同一個磁碟機上有一個以上的作業系統,他們必須都同意
grometry否則你在開機時會有大問題
<p>對 SCSI 磁碟機來說geometry 的使用是依靠啟動控制器來支援
extended translation (這通常稱之為"對&gt;1GB DOS 磁碟機
的支援或"類似的稱呼)。如果不支援,那麼使用 N cylinders64
heads 和 32 sectors/track這裡'N'是指磁碟機的 MB 容量。舉例
來說,一個 2GB 的磁碟機應該假設它有 2048 cylinders64 heads
和 32 sectors/track。
<p>如果它確定<tt /是/ 打開的(通常提供這種方法在 MSDOS 下有某些限
制),並且磁碟容量超過 1GB使用 M cylinders, 每個 track 63 sectors
(*而非* 64),以及 255 heads這裡 'M' 是每 MB 的磁碟容量除以
7.844238 (!)。所以我們的這個範例2G 磁碟機就有 261 cylinders,
每個 track 63 sectors 以及 255 heads。
<p>如果你不確定以上這個,或是 FreeBSD 在安裝過程中要偵測 geometry
的正確性時失敗了,最簡單的解決方法通常是在磁碟上建立一個小的 DOS
分割區。正確的 geometry 應該能被偵測到(而且如果你不想保留它,
你總是可以在分割區編輯器裡把這個 DOS 分割區移除掉,或是把它留下
來,給程式化網路卡使用或隨你高興怎麼用它)。
<p>另外,有一個免費而有用的公用程式叫 ``<tt/pfdisk.exe/'' 隨著
FreeBSD 散播出來(位於 FreeBSD CDROM 的 <tt>tools</tt> 子目錄
下或是在大多數的 FreeBSD ftp 站台內可找到),這個程式可用來解
決找出另一作業系統正在使用磁碟機上的哪塊 geometry。然後你就可
以在分割區編輯器裡面輸入它。
<sect1>
<heading>當我分割磁碟機實有任何限制嗎﹖</heading>
<p>是的。你必須確認你的 root 分割區是在 1024 cylinders 之內,讓
BIOS 可以從其中啟動核心。(注意:這是 PC 的 BIOS 功能限制,而不
是 FreeBSD 的)
<p>對 SCSI 裝置來說,這通常按試著 root 分割區將會處於開始的 1024
MB(或是開始的 4096MB如果 extended translation 是打開的 - 請
參考前一節)。對 IDE 來說,相關的部份是 504MB。
<sect1>
<heading>
可以使用磁碟管理程式(disk managers)嗎﹖或是,我有一個巨大的磁碟機!
</heading>
<p>FreeBSD 認識 Ontrack Disk Manager 並且允許使用它,其他的 disk
managers 則不在支援之列。
<p>如果你只想在磁碟機上使用 FreeBSD 那麼你根本不需要 disk manager。
只要把磁碟設定成 BIOS 能抓到的最大空間(通常是 504 megabytes),那麼
FreeBSD 應該就可以算出你事實上擁有多少空間。如果你正使用一個 MFM
控制器來控制的老磁碟,你可能需要明白的告訴 FreeBSD 要使用多少個
cylinders。
<p>如果你想在磁碟上使用 FreeBSD 和另一個作業系統,你可能不需要
disk manager只要確定 FreeBSD 的啟動分割區跟其他作業系統的
slice 都位於開始的 1024 cylinders 內。如果你相當地小心,一個
20 megabytes 的啟動分割區應該就夠了。
<sect1>
<heading>
當我啟動 FreeBSD我看到 ``Missing Operating System''
<label id="missing_os">
</heading>
<p>這是一個典型的情形,有關 FreeBSD 以及 DOS 或其他在磁碟處理的
方法上有衝突的 OS <ref id="geometry" name="geometry.">。你需要
重新安裝 FreeBSD但是請遵照上面所提到的指令應該就可以了。
<sect1>
<heading>我看不到 boot manager 的 'F?' 提示號。</heading>
<p>這是前一頁所描述問題的另一個徵兆。你的 BIOS geometry 和 FreeBSD
的 geometry 設定不相同!如果你的控制器或 BIOS 支援 cylinders
translation (通常被標示成``&gt;1GB drive support''),試著把這個
設定打開然後重新安裝 FreeBSD。
<sect1>
<heading>
我有 &gt;16MB RAM。這會導致任何問題嗎﹖<label id="bigram">
</heading>
<p>從效能的角度來看不會。FreeBSD 2.X 內含 bounce buffers這允許
你的 bus mastering controller 存取超過 16MB。(注意如果你正使用
ISA 裝置這應該是必需的,儘管一個或兩個更早的 EISA 和 VLB 裝置也可
能需要它)。
<p>也請參考 <ref id="reallybigram" name="&gt;64M machines">
這節,假如你有這麼多記憶體,或假使你使用 Compaq 或是其他能處理
這麼多有用記憶體的機器。
<sect1>
<heading>我需要安裝完整的原始程式(sources)嗎﹖</heading>
<p>通常是不需要。然而,會強烈建議你最少安裝 ``<tt/base/''
source kit這包含數個這裡簡單描述過的檔案還有 ``<tt/sys/''
(kernel) source kit這包含核心程式的原始程式。系統裡面不需
要有原始程式才能操作,然而,除了 kernel-configuration 程式
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?config"
name="config">以外。缺少核心的原始程式,我們的建築架構是設定
成讓你可以從別處如 NFS 來掛上唯獨的原始程式,因此還是可以製
作新的 binaries。因為 kernel-source 的限制,我們建議你不要
直接把它掛在 <tt>/usr/src</tt> 下,最好用適合的符號性重複連
結到 source tree 的上層架構。)
<p>線上擁有 sources 並知道如何建立一個系統,將會讓你在升級今後
FreeBSD 的 releases 版本更容易一點。
<p>要實際的選擇 sources 的一個子集合,在你在系統安裝工具的
Distributions 選單時,使用 Custom 選單項目。<tt>src/install.sh</tt>
script 將會把 sources distribution 的部份安裝進去,主要是看
你傳入哪些參數。
<sect1>
<heading>我需要建立一個核心嗎﹖</heading>
<p>建立一個新的核心在 FreeBSD 安裝過程中是絕對必需的一個步驟。
但新版 releases 帶來一個更友善的核心設定工具指令的好處。在
FreeBSD 啟動提示號(boot:)時,使用 "-c" 旗號你就會進入一個設
定螢幕,這允許你做常見 ISA 卡的設定
<p>仍然建議你最後建立一個核心,只包含你需要的驅動程式,這是為了
節省 RAM但是對大多數的系統來說這卻不是嚴格的要求。
<sect1>
<heading>我不是住在美國,那我可以使用 DES 嗎﹖</heading>
<p>如果對你來說使用 DES 格式的加密技術不是絕對需要的,你可以使
用 FreeBSD 的內定加密技術,有<bf/更好/ 的安全性,並且沒有額外
的限制。FreeBSD 2.0 的密碼現在使用內定的 <bf/MD5/-based 加以
混合,要用自動破解密碼的程式去破解它,比起 DES 需要更多的 CPU
強化性,它還允許更長的密碼。今日不使用 <bf/MD5/-based 加密技
術的唯一理由是在 FreeBSD 和非 FreeBSD 系統上使用相同的密碼項
目。
<p>因為 DES 加密演算法不能由 US 合法輸出到國外,非 US 使用者不
應該從 US FTP 站台下載這個軟體(<tt/secrdist/的任一部份)。
<p>然而另外還有個有效的 libcrypt原始程式基本上由澳洲的
David Burren 寫成。這個程式碼目前在某些非 US FreeBSD mirror
站台上可以找到。這個沒有限制的 libcrypt 原始程式,以及使用它
的 binaries 程式,可以在以下 FTP 站台獲得:
<descrip>
<tag/South Africa/
<tt>ftp://ftp.internat.freebsd.org/pub/FreeBSD</tt><newline>
<tt>ftp://storm.sea.uct.ac.za/pub/FreeBSD</tt>
<tag/Brazil/
<tt>ftp://ftp.iqm.unicamp.br/pub/FreeBSD</tt>
<tag/Finland/
<tt>ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt</tt>
</descrip>
<p>非 US 的 <tt/securedist/ 可以當限制性 US <tt/securedist/
的完全替代。這個 <tt/securedist/ package 安裝方法跟 US
package 完全一樣(細 請參考安裝須知)。如果你要裝 DES 加密法
,在你裝其他軟體前,你應該盡快改過來。在你裝其他軟體之前。
<p>非 US 使用者請勿從 USA 下載任何加密軟體。這會導致站台的管理
者因為被下載的軟體惹上數個法律性的困難。
<p>一個非 US 的 Kerberos distribution 亦正在發展中,現行版本通
可由匿名 FTP <tt>braae.ru.ac.za</tt> 來獲得。
<p>也有一個 <ref id="mailing" name="mailing list"> 專門用來討論
非 US 加密軟體。欲獲得更多資訊,寄一封內含單獨一行訊息說
``<tt/help/'' 的 email 給:
<tt>&lt;majordomo@braae.ru.ac.za&gt;</tt>.
<sect1>
<heading>
啟動軟碟開始讀了可是卻停在``Probing Devices...''螢幕。
</heading>
<p>如果你安裝了 IDE Zip 或 Jaz 裝置,移除它並重新試一遍。
啟動軟碟片可能會被這些裝置混淆了。當系統安裝好以後你可以再
把它接回來。希望這在之後的 release 版本可以被修正。
<sect1>
<heading>當我安裝好重新啟動系統後,我看到``panic: cant mount root''
的錯誤訊息。
</heading>
<p>這個錯誤試因為啟動區塊跟核心程式對磁碟裝置的認知不相同。通 這個
錯誤會出現在雙磁碟的 IDE 系統,硬碟排列在 master或是在分離的
IDE 系統上有單一個磁碟機。當核心指定第二個磁碟控制器的第一個磁碟
機 wd2 時,啟動 block 卻認為系統裝在 wd1(第二個 BIOS 磁碟機)。
在偵測裝置時,核心程式試著把啟動 block 認為的啟動磁碟(wd1) mount
起來,事實上卻是 wd2所以失敗了。
<p>要修正這個問題,做以下幾種方法之一:
<enum>
<item>當 Boot: 提示號出現時,輸入: <tt>1:wd(2,a)kernel</tt>
然後按 Enter。如果系統開始了就執行以下命令
<verb>
echo "1:wd(2,a)kernel" > /boot.config
</verb>
讓它變成內定的 boot string。
<item>把 FreeBSD 磁碟機移到 primary IDE controller因此硬碟機是
連續的。
<item><url url="../handbook/kernelconfig.html" name="Rebuild your kernel,">
修改有關 wd 設定的行數:
<verb>
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
# disk wd1 at wdc0 drive 1 # comment out this line
controller wdc1 at isa? port "IO_WD2" bio irq 15 vector wdintr
disk wd1 at wdc1 drive 0 # change from wd2 to wd1
disk wd2 at wdc1 drive 1 # change from wd3 to wd2
</verb>
安裝新的核心程式。
如果你移動你的磁碟機,並希望把先前的設定恢復,只要把磁碟用預期
的設定置換回來然後重新開機。你的系統應該就能成功的啟動。
</enum>
<sect1>
<heading>記憶體的限制是什麼﹖</heading>
<p>對記憶體來說,(理論上)限制是 4 gigabytes。1 gigabytes 已被測試
過;一般你不可能買到可以支援超過這個數目的 i386 PC。
<sect1>
<heading>ffs 檔案系統的限制是什麼﹖</heading>
<p>對 ffs filesystems 而言,最大理論值限制在 8 terabytes(2G blocks
),或當使用內定 block大小時限制是 16TB。還有軟體限制是 1
terabytes但如果是經過修改的檔案系統上 4 terabytes 是可能(並且
存在)的。
<p>單一 ffs 檔案的大小最大是趨近 1G blocks(4TB) - 假如 block 大小是
4K。
The maximum size of a single ffs file is approximately 1G blocks
(4TB) if the block size is 4K.
<verb>
maxfilesize
----------------------------------
2.2.7 3.0
fs block size -stable -current works should-work
------------- ------- -------- ----- -----------
4K 4T-1 4T-1 4T-1 4+T
8K 32+G 8T-1 32+G 16T-1
16K 128+G 16T-1 128+G 32T-1
32K 512+G 32T-1 512+G 64T-1
64K 2048+G 64T-1 2048+G 128T-1
</verb>
<p>當 fs block 大小是 4Ktriple indirect block 運作並且所有的事情
都應該以表示成使用 triple indirect block 的最大 fs block 來作限
制(近似於 1K^3 + 1K^2 + 1K),但在 fs block 數目上卻有一個(錯誤)
的 1G-1 限制。對 fs block 數目的限制應該是 2G-1。在 fs block
數目接近 2G-1 時有點錯誤,但當 fs block 大小是 4K 時這個 block
數目是不能達到的。
<p>block 大小如果是 8K 或更大fs block 數目應該限制在 2G-1但實
際 fs block 數目卻限制在 1G-1除了在 -stable 時 triple indirect
blocks 是無法達到的,所以最多 fs block 數目的限制可以表示成用
double indirect blocks(近似於(blocksize/4)^2 + (blocksize/4))
,且在 -current 下超過這個限制可能會導致問題產生。使用正確的
2G-1 block 限制的確會導致問題發生。
<sect1>
<heading>我該怎麼在軟碟上放入 1TB 檔案?</heading>
<p>我自己就在軟碟片上放好幾個 :-)。檔案的最大容量事實上跟磁碟最大
的容量並沒有密切相關。磁碟的最大容量是 1TB這是一個檔案大小可
以超過磁碟容量的一個特色。
<p>以下範例會在小小的 root 分割區建立一個使用整個磁碟的 32K 空間
,大小是 8T-1 的檔案(3 indirect blocks and 1 data block)。dd
指令需要讓 dd 能在一個大檔案下執行。
<verb>
ttyv0:bde@alphplex:/tmp/q> cat foo
df .
dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1
ls -l z
du z
df .
ttyv0:bde@alphplex:/tmp/q> sh foo
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/sd0a 64479 27702 31619 47% /
1+0 records in
1+0 records out
1 bytes transferred in 0.000187 secs (5346 bytes/sec)
-rw-r--r-- 1 bde bin 8796093022207 Sep 7 16:04 z
32 z
Filesystem 1024-blocks Used Avail Capacity Mounted on
/dev/sd0a 64479 27734 31587 47% /
ttyv0:bde@alphplex:/tmp/q> exit
</verb>
<p>Bruce Evans, September 1998
</sect>

View file

@ -0,0 +1,89 @@
<!-- $Id: kernelconfig.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- 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>多重埠序列碼的中斷衝突。</heading>
<p><bf/Q./ 當我編譯一個多重埠序列碼的核心時,它告訴我只有第一個被偵
測到,其他的則因中斷衝突而跳過了,我該怎麼修正它?
<p><bf/A./ 這個問題是因為 FreeBSD 使用內建程式碼避免因為硬體或軟體衝
突導致核心程式過於肥大或無用。要修正這種情形的方法是除了一個埠外把
其他所有的 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>你需要在一般設定檔中把以下這行的註解取消(或是把它加到你的設定檔
),在<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>

242
zh_TW.Big5/FAQ/misc.sgml Normal file
View file

@ -0,0 +1,242 @@
<!-- $Id: misc.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by zmx@mail.CDPA.nsysu.edu.tw -->
<!-- English Version: 1.8 -->
<sect>
<heading>其它各式各樣的問題<label id="misc"></heading>
<sect1>
<heading>
為甚麼 FreeBSD 用的 swap 空間比 Linux 多?
</heading>
<p>不是這樣的. 如果你的意思是: ``為甚麼我的 swap 看起來滿了?''
那是因為把東西放在 swap 裡後拿回來的速度會比 pager 經由檔案系
統拿回(未修改)的執行碼快.
<p>事實上, 記憶體中 dirty pages 的量並未減少; clean pages 則在需
要的時後移走.
<sect1>
<heading>
為甚麼要用(甚麼是) a.out 和 ELF 執行檔格式?
</heading>
<p>要了解為甚麼 FreeBSD 使用 <tt>a.out</tt> 格式, 首先你要知道一些
目前 Unix 中使用最廣泛的三種格式:
<itemize>
<item><htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)"
name="a.out">
<p>最早和`古典'的 unix 目的檔格式. 使用一種短而緊密的檔頭,
伴隨一個通常用來辨認格式的魔術數字(參考
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)"
name="a.out(5)"> 有更多細節). 具有三個節區: .text, .data, 和 .bss
加上一個符號表和字串表.
<item><bf>COFF</bf>
<p>SVR3 目的檔格式. 檔頭包含了一個節區表, 所以可以具備比
.text, .data, .bss 還多的節區.</item>
<item><bf>ELF</bf>
<p><tt/COFF/ 的後繼者, 具有多個節區以及 32-bit 或 64-bit 的
possible values. 主要的缺點:<tt/ELF/ 是在每個系統架構只
會有一種 ABI 的假設下設計出來的. 事實上這個假設錯的離譜,
即使是商業的 SYSV 世界, 也至少有 SVR4, Solaris, SCO 三種 ABI.
<p>FreeBSD 藉由一個工具, 把程式需要那種 ABI 的資訊 <em>烙印</em>
在 <tt/ELF/ 執行檔上.
參考 man page
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?brandelf"
name="brandelf"> 取得更多資訊.
</itemize>
<p>FreeBSD 來自 "古典" 陣營, 傳統上都使用
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?a.out(5)"
name="a.out"> 格式, 這是在好幾代的 BSD 中證明可靠的計術.
雖然可以在 FreeBSD 上可以建立以及執行原生的 <tt/ELF/ 執行檔(
以及核心), 剛開始 FreeBSD 反對轉換到以 <tt/ELF/ 做為預設的
格式. 為甚麼? 嗯. 當 Linux 開始痛苦地轉換至 <tt/ELF/, 並非因為
要逃離 <tt/a.out/ 格式, 而是因為他們沒有彈性的, 以跳躍表為基礎
的共享程式庫機制. 那是一種非常難以使用, 發展者不喜歡的東西. 既
然已經存在的 <tt/ELF/ 工具提供了共享程式庫的解決方案, 而且看來
是 "前衛的方法", 所需的代價就可接受因而轉換.
<p>在 FreeBSD 的狀況中, 我們的共享程式庫機制更接近 <tt>SunOS</tt> 的
型式, 也就是, 易於使用.
然而, 從 3.0 開始, FreeBSD 正式支援 <tt/ELF/ 為預設格式. 即使
<tt/a.out/ 格式仍然非常好, 我們編譯工具的撰寫者, GNU 的成員,
已中止了對, <tt/a.out/ 格式的支援. 這迫使我們維護另一份版本的
compiler 和 linker, 也使得我們不能從最新的 GNU 發展成果中獲得
好處. 此外對 ISO-C++ 的需求, 尤其是建構者和解構者, 也帶動未來
版本中對 <tt/ELF/ 的原生支援.
<sect1>
<heading>好吧, 但為甚麼會有這麼多種不同的格式?</heading>
<p>在黑暗的過去, 只有簡單的硬體. 簡單的硬體支援小型、簡單的系統.
a.out 在簡單的系統上勝任愉快 (PDP-11). 當 unix 移植到其他平台時,
a.out 保留了下來, 因為對早期的 Motorola 68K, VAX 之類的架構已經
夠用了.
<p>然後有些硬體工程師覺得讓軟體多做點事, 那 CPU 的電晶體就能少
一點而跑的更快. 要在這種新式硬體上工作(現在稱為RISC), <tt/a.out 就
不適合了, 所以需多的格式就發展出來以提供比受限、簡單的<tt/a.out 更
好的效能. 像是 <tt/COFF/, <tt/ECOFF/, 以及一些不有名的格式, 每一種
都有限制直到 <tt/ELF/.
<p>此外, 當程式越來越大兒磁碟(以及主記憶體)相對來說較小時, 共享
程式庫的概念就發展出來了. 虛擬記憶體系統也變得越來越精巧. 當每一
種進步都在 <tt/a.out/ 上完成時, 它的可用性也越來越低. 另外, 人們
還有在執行時期可以動態載入, 或是丟棄執行過的初始化程式以節省記憶
體. 程式語言也變得更精巧而且人們想要在在 main 之前執行別的程式碼
. 許多繁雜的技巧用在 <tt/a.out/ 上以解決這些問題. <tt/a.out/ 要
解決這些問題需要越來越多額外的負擔和複雜度. 當 <tt/ELF/ 輕易的解
決這些問題, 從基本上可以工作的系統轉換卻很痛苦. 所以<tt/ELF/ 要
等到維護 <tt/a.out/ 比轉換到 <tt/ELF/ 還痛苦.
<p>然而, 隨著時間過去, FreeBSD 的 build tools 形成了平行的兩支
(尤其是組譯器和 loader). FreeBSD 這支加進了共享程式庫以及修正
了一些錯誤. GNU 原來撰寫這些程式的人則重寫了這些程式, 並加入了
對於跨平台編譯, 不同格式模組之類的東西更簡單的支援. 許多人想要
做出以 FreeBSD 為目的平台的跨平台編譯器, 不幸的是 FreeBSD 的 as
和 ld 不能做這項工作. 新的 GNU 工具(binutils) 加入了跨平台編譯、
<tt/ELF/、共享程式庫、C++ 擴充, 等等. 此外, 許多廠商以 <tt/ELF/ 格
式發行產品, 而能夠在 FreeBSD 上跑的話當然很好. 而且如果能跑 <tt/ELF/
格式的執行檔, 為甚麼還要理 <tt/a.out/ ? 牠是一匹又累又老的馬, 過
去非常有用, 但是時後讓牠退休了.
<p><tt/ELF/ 比 a.out 更應有表達力(expressive?)而且具有更多的
擴充性. <tt/ELF/ 工具維護的比較好, 而且提供跨平台編譯的支援,
這對許多人來說是很重要的. <tt/ELF/ 可能比 a.out 慢一點, 但差異
非常難測量出來. 這兩者之間還有許多細節上的不同, 例如分頁的對應
方式, 初始化程式碼的作法等等. 這些並不是很重要, 但就是不同. 在
以後 GENERIC 核心不會支媛 <tt/a.out/ , 當不在有執行傳統 <tt/a.out/
程式的需要時, 會從核心移除.
<sect1>
<heading>為甚麼 chmod 不會改變符號連結(symlink)的存取權限?</heading>
<p>你必須把 ``<tt/-H/'' 或是 ``<tt/-L/'' 與 ``<tt/-R/'' 選項一起使用.
參考<htmlurl url="http://www.freebsd.org/cgi/man.cgi?chmod"
name="chmod">
及<htmlurl url="http://www.freebsd.org/cgi/man.cgi?symlink"
name="symlink"> man pages 以取得更多資訊.
<p><bf/警告/ ``<tt/-R/'' 選項會讓 <tt/chmod/ 做<bf/遞迴/. 指定目錄
或是連結到目錄的 symlink 時要小心. 如果你要改變一個符號連結參考到
的目錄的存取權限, 使用 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod"> 且不要
加任何選項, 並且在 symlink 的結尾加上斜線(``<tt>/</tt>''). 舉例來說
, 如果 ``<tt/foo/'' 連結到 ``<tt/bar/'', 而你要更改 ``<tt/foo/'' 的
權限 (事實上是 ``<tt/bar/''), 那就用:
<verb>
chmod 555 foo/
</verb>
<p>依照結尾的斜線, <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?chmod" name="chmod"> 會
經過連結 ``<tt/foo/'', 而改變 ``<tt/bar/'' 目錄的權限.
<sect1>
<heading>
為甚麼帳號 <bf/仍然/ 限制為八個字元?
</heading>
<p>你會認為修改 <bf/UT_NAMESIZE/ 然後重建系統是很簡單的事情, 而且
每件事都可以運做地很好. 不辛的是有許多的程式和工具(包含系統工具)
把數字寫死在程式裡(並非總是 8 或 9, 有時是古怪的如 15 和 20).
這不只會把你的記錄檔弄壞(來自於變動長度和固定長度記錄的差異), 也
會破壞 Sun 的 NIS 客戶端的運做, 和其它 UNIX 系統的互相影響也可能
有潛在的問題.
<p>在 FreeBSD 3.0 以及之後的版本, 帳號的最大長度增加到16個字元,
而那些寫死長度的程式也找出來修正. 影響到系統如此多部份正是直到
3.0 才做修改的原因.</p>
<p>如果你有自信在出問題的時後能自行解決, 你可以用下面的方法讓較早的
版本支援較長的帳號. 修改 /usr/include/utmp.h 中的 UT_NAMESIZE. 你也
必須把 /usr/include/sys/param.h 中的 MAXLOGNAME 改成跟 UT_NAMESIZE
相符. 最後, 如果你是從原始程式建立系統, 別忘了 /usr/include 每次都
會更新! 修改 /usr/src/.. 中適當的檔案. </p>
<sect1>
<heading>我能在 FreeBSD 下跑 DOS 程式嗎?</heading>
<p>是的, 從 3.0 版開始可以使用已經整合並加強的 BSDI <tt/rundos/
DOS 模擬器. 如果你最這個東西有興趣, 送封信到
<url url="mailto:freebsd-emulation@freebsd.org"
name="The FreeBSD emulation discussion list">
<p>對 3.0 之前的系統, 在 port 中有一個極佳的工具程式
<htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^pcemu" name="pcemu">
可以模擬 8088 和足夠的 BIOS 服務以執行 DOS 文字模式程式. 它須要 X Window
System (由 XFree86 提供).
<sect1>
<heading>
甚麼是 ``<tt/sup/'', 如何使用?
</heading>
<p><htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^sup" name="SUP">
意思是 Software Update Protocol, 由 CMU 發展以維持發展的同步.
我們利用他來保持遠端的站台和原始站台同步.
<p>SUP 對頻寬的使用不友善, 而且已放棄了. 目前建議維持原始碼更新的方法是
<url url="../handbook/cvsup.html" name="Handbook entry on CVSup">
<sect1>
<heading>How cool is FreeBSD?</heading>
<p>問: 有人做過 FreeBSD 執行時的溫度測試嗎? 我知道 Linux 比 DOS 涼,
但沒聽人提過 FreeBSD. 似乎很熱.
<p>A. No, but we have done numerous taste tests on blindfolded
volunteers who have also had 250 micrograms of LSD-25
administered beforehand. 35% of the volunteers said that FreeBSD
tasted sort of orange, whereas Linux tasted like purple haze.
Neither group mentioned any particular variances in temperature
that I can remember. We eventually had to throw the results of
this survey out entirely anyway when we found that too many
volunteers were wandering out of the room during the tests, thus
skewing the results. I think most of the volunteers are at Apple
now, working on their new ``scratch and sniff'' GUI. It's a
funny old business we're in!
<p>不開玩笑了, FreeBSD 和 Linux 都使用 ``<tt/HLT/'' (hald) 指令
以在系統閒置時降低電力的使用也減少了熱的產生. 如果有設定 APM
(automatic power management), FreeBSD 也可以讓 CPU 進入低電力
模式.
<sect1>
<heading>誰在我的記憶體插槽中沙沙作響??</heading>
<p>問: FreeBSD 編譯核心時有做甚麼 "奇特" 的事讓記譯體沙沙作響嗎?
當編譯時(還有開機時確認軟碟後的短暫時間), 也種似乎來自記憶體插槽
的奇怪聲音.
<p>答; 是的! 在 BSD 的文件中你會常常看到 ``背後靈'', 大部份的人
都不知道那是一種實際存在的精神體 --- 掌控著你的電腦. 你聽到的聲音
是這些背後靈以高音口哨在溝通怎樣做許多的系統管理工作.
<p>如果這些聲音很困擾你, 來自 DOS 的 ``<tt>fdisk /mbr</tt>'' 就
能擺脫, 但如果有相反的效果也不要驚訝. 事實上, 如果在儀式中聽到
Bill Gates 恐怖的聲音從內建的喇叭傳來, 馬上逃而且不要回頭!
從 BSD 背後靈不平衡的影響中解放, DOS 和 Windows 背後靈通常都能
重新控制整台機器並對你的靈魂詛咒. 如果有選擇, 我想我寧願習慣奇
怪的聲音.
<sect1>
<heading>MFC 是甚麼意思?</heading>
<p>MFC 是 'Merged From -CURRENT' 的縮寫. 使用在 CVS 記錄中以
表示從 CURRENT 中整合進 STABLE 分支的改變.
</sect>

1158
zh_TW.Big5/FAQ/network.sgml Normal file

File diff suppressed because it is too large Load diff

549
zh_TW.Big5/FAQ/preface.sgml Normal file
View file

@ -0,0 +1,549 @@
<!-- $Id: preface.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by ijliao@dragon2.net -->
<!-- English Version: 1.26 -->
<sect>
<heading>前言<label id="preface"></heading>
<p>歡迎來到 FreeBSD 2.X FAQ!
<sect1>
<heading>寫這份 FAQ 的目的是什麼 ?</heading>
<p>跟其他 Usenet 上的 FAQ 一樣, 這份文件主要涵蓋了有關 FreeBSD 這套作
業系統最常被問到的問題 (當然包括了回答 !)。雖然說我們本來的目的是為了
減少網路頻寬的浪費以及避免同樣的問題一再出現, 但是 FAQ 已經被視為是一
種很有價值的資訊了。
<p>我們已經儘可能地使這份 FAQ 更豐富了 ; 如果您對如何使其更進步有任何
建議, 請隨時寄電子郵件給 <url url="mailto:FAQ@FreeBSD.ORG"
name="FAQ 維護者">。
<sect1>
<heading>什麼是 FreeBSD?</heading>
<p>簡單地來說, FreeBSD 2.X 是一套根據 U.C. Berkeley's 4.4BSD-lite
release for the i386 platform 所完成的 UN*X-like 作業系統。它同時也間
接使用了 William Jolitz 移植到 i386 上的 U.C. Berkeley's Net/2, 也就是
386BSD。不過現在 386BSD 的程式碼只剩下極少數還留存在 FreeBSD 中。您可
以在 <url url="http://www.freebsd.org" name="FreeBSD 首頁"> 找到有關什
麼是 FreeBSD 以及它可以幫您做些什麼的相關資訊。
<p>FreeBSD 已被廣泛地被世界各地的公司行號, ISP, 研究人員, 電腦專家, 學
生, 以及家庭用戶所使用, 用在工作, 教育, 以及娛樂上。您可以在
<url url="../gallery/gallery.html" name="FreeBSD Gallery">看到一些有
關他們的資料。
<p>如果想看關於 FreeBSD 更深入的資料, 請看
<url url="../handbook/handbook.html" name="FreeBSD 使用手冊">。
<sect1>
<heading>發展 FreeBSD 的目的是什麼 ?</heading>
<p>FreeBSD 計畫的目的是提供可以任意使用且沒有限制的軟體。我們在程式碼
(以及計晝本身) 上付出了大量心血, 雖然我們沒有特別強調, 不過並不要求任
何金錢上的回饋。我們相信我們首要的 "任務" 就是提供程式碼給每一個使用
者, 不管他們的目的是什麼 ; 這麼一來, 這些程式碼才能被用在最多地方, 也
才能發揮它們最大的利益。我們相信這就是自由軟體最基本的目標之一, 而且我
們會盡全力去支持它。
<p>在我們 source tree 中有部份的程式碼是採用所謂的 GPL 或是 LGPL 版權
宣告, 雖然這些版權宣告是用來保障而非限制使用者的權利, 畢竟是不那麼自由
了些。由於這些 GPL 的軟體在商業使用上會引起非常複雜的版權問題, 因此只
要有機會, 我們會盡量以採用比較鬆的 BSD 版權的軟體來取代這些 GPL 版權宣
告的軟體。
<sect1>
<heading>為什麼要叫做 FreeBSD?</heading>
<p>
<itemize>
<item>您可以免費使用它, 即使是用於商業用途。
<item>整個 FreeBSD 作業系統完整的原始程式都可以免費取得, 而且在使用
及散佈各方面也只受到最小的限制 (不論是否用於商業用途)。
<item>任何人都可以自由地把他對系統的改良或錯誤修正的程式碼加入
source tree 之中 (當然要符合幾個先決條件)。
</itemize>
<p>如果讀者您的母語不是英語的話, 您要特別注意這裡的 "free" 兩種用法的
意思是不一樣的 : 一種的意思是 "免費", 另一種的意思是 "自由"。您可以拿
FreeBSD 去做任何您想要做的事, 除了一些例外, 例如您宣稱 FreeBSD 是您寫
的。
<sect1>
<heading>最新版的 FreeBSD 是那一版 ?</heading>
<p><url url="ftp://ftp.freebsd.org/pub/FreeBSD/2.2.8-RELEASE"
name="2.2.8"> 是目前最新的 <em> stable </em> 版 ; 它於 1998 年
12 月發行。它同時也是目前最新的 <em>release</em> 版。
<p>簡單的說, <bf>-stable</bf> 的主要訴求對象是對於穩定性及低變異性有
較強需求的機構, 例如 ISP, 而非喜愛一些特別新功能的機構。在此同時, 這
些版本是完全一樣的, 但是在 <bf>-current</bf> 這個分支的完成度足以做一
個正常 release 之前, 這種情況不會維持太久。
<p>但是這並不代表說 3.0-current snapshot 就不適合用在商業服務上, 事實
上, 很多需要 3.0 新功能 (更新的編譯器技術, 更有效率的網路程式碼等) 的
使用者都得到了非常滿意的結果。在它變得更穩定以前, 我們不能 "擔保" 3.0
可以擔得起重要的工作。
<sect1>
<heading>什麼是 FreeBSD-current?<label id="current"></heading>
<p><url url="../handbook/current.html" name="FreeBSD-current">指的是正
在發展中的版本, 它終將在適當的時機成為 3.0.1-RELEASE。它實在是只適合給
系統發展者以及有毅力的業餘愛好者使用。如果想要得到有關如何使用
-current 的深入資訊, 請參考
<url url="../handbook/handbook.html" name="使用手冊"> 的
<url url="../handbook/current.html" name="相關部份">。
<p>如果您對作業系統本身並不是很熟悉, 或是您沒辦法分辨您遇到的問題是真
的發生了問題亦或是暫時性的小狀況, 那麼您就不應該使用 FreeBSD-current。
這個分支的程式碼有時候變動得很快, 而且可能會因此而使您有好幾天的時間無
法更新您的系統。我們假設使用 FreeBSD-current 的使用者都有能力去分析他
們所遇到的問題並且只回報真正的問題而非小狀況。如果您在 -current
mailing list 中提到類似 "make world 造成一些有關 groups 的錯誤" 的問題,
有時候會被其他人輕視。
<p>有時候我們會為這些 -current 發展中的程式碼發表
<url url="../releases/snapshots.html" name="snapshot">, 更有甚者, 我們
還會發表 CDROM 型式的 snapshot。發表這些 snapshot 的目的在於 :
<itemize>
<item>測試最新版的安裝程式。
<item>提供一個簡單的方法給那些喜歡使用 -current 但是沒有時間和頻寬去
每天昇級的使用者。
<item>為了替我們發展中的程式保留一個固定的參考點, 以防止我們未來造成
不幸。(雖然 CVS 可以正常地防止類似這種的可怕事件 :)
<item>為了確保所有需要測試的新功能都可以得到最多的測試。
</itemize>
<p>無論如何, 我們不保證 snapshot 的品質。為了穩定性, 您最好使用完全
release 的版本。
<p>您可以直接從
<url url="ftp://current.freebsd.org/pub/FreeBSD/"> 取得 snapshot
release, 不管是 3.0-current 或是 2.2-stable, 平均每天都會產生一個
snapshot 的版本。
<sect1>
<heading>什麼是 FreeBSD-stable?</heading>
<p>回溯到 FreeBSD 2.0.5 剛發表的時候, 我們決定把 FreeBSD 的 release
分成兩支。一支叫做<url url="../handbook/stable.html" name="-stable"> ,
我們只對它做錯誤修正及小幅度的修改 (這是給 ISP 和商業公司等對實驗中功
能不感興趣的單位所使用的)。另外一支叫做
<url url="../handbook/current.html" name="-current">, 從 2.0 版發行以
後就不間斷地朝著 3.0-RELEASE (以及以後的版本) 前進著。下面就是版本演
進的示意圖 :
<verb>
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.0-RELEASE (Oct 1998)
|
| [3.0-stable]
*BRANCH* 3.0.1 (Feb 1999) -> ... future 3.0.x releases ...
|
|
\|/
+
[3.1-current continues]
</verb>
<p>-current 這個分支正緩慢地朝向 3.0.1 以及以後的版本前進著, 而之前的
2.2-stable 分支則隨著 2.2.8 的發表而功成身退。3.0-current 將會成為主要
的發展線, 直到 1999 年初 3.0.1 發表為止。到那個時候, 3.0 就會成為另一
個分支, 而 3.1-current 則變成下一個 "current 分支"。
<sect1>
<heading>新的 FreeBSD 將於什麼時候推出 ?</heading>
<p>一般而言, 當 FreeBSD core team 認為已經累積了足夠多的新功能和錯誤修
正, 而且這些更動並不影響系統穩定度的時候, 他們才會推出新版的 FreeBSD。
雖然等待這些好東西的時間令人有點沮喪, 但是大多數的使用者都認為這種謹慎
的態度是 FreeBSD 最好的部份之一。
<p>平均而言, 我們每四個月發行一次 release。
<p>為了滿足那些需要 (或想要) 刺激的使用者, 通常 SNAP 的發表是相當頻繁
的, 特別是在 release 發表之前一個月左右。
<sect1>
<heading>FreeBSD 只能在 PC 上使用嗎 ?</heading>
<p>FreeBSD 3.x 目前可以在
<url url="../alpha/alpha.html" name="DEC Alpha"> 上使用, 就像在 x86 架
構下使用一樣。我們對移植到 SPARC 上也有相當的興趣, 不過這部份的計畫還
沒有完全明朗化。
如果您的機器不是以上這些架構, 而且您現在就要的話, 我們建議您參考
<url url="http://www.netbsd.org/" name="NetBSD"> 或是
<url url="http://www.openbsd.org/" name="OpenBSD">。
<sect1>
<heading>誰負責 FreeBSD 的發展 ?</heading>
<p>如果是一些有關 FreeBSD 計畫的關鍵性決定, 像是整個計畫的走向或是決
定誰可以改 source tree 裡的程式碼這類的事, 是由一個約 15 個人所組成的
<url url="../handbook/staff:core.html" name="core team"> 來決定。而有
另一群約 100 個人有權利可以直接修改 FreeBSD 的 source tree。
<p>無論如何, 大多數的改變都會事前在
<ref id="mailing" name="mailing lists"> 先討論過, 而且每個人都可以參與
討論。
<sect1>
<heading>我要如何取得 FreeBSD ?<label id="where-get"></heading>
<p>每個 FreeBSD 的重要版本都可以經由匿名 ftp 從
<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/" name="FreeBSD FTP site">
取得。
<itemize>
<item>如果是目前的 2.2-stable release, 2.2.8R, 請看
<url url="ftp://ftp.FreeBSD.ORG/pub/FreeBSD/2.2.8-RELEASE/"
name="2.2.8-RELEASE"> 這個目錄。
<item>如果是目前的 3.0-current release, 3.0-SNAP, 請看
<url url="ftp://current.freebsd.org/pub/FreeBSD/" name="3.0"> 這個目
錄。
<item>隨著 RELENG_2_2 分支 (後來的 2.2.8) 慢慢地進入維護階段, 我們每
天都會發行 <url url="ftp://releng22.freebsd.org/pub/FreeBSD/"
name="2.2 Snapshot">。我們目前正妥善維護著 RELENG_2_2 這個分支, 除非
對系統安全或是系統的可靠性有所增強, 否則我們將不再更動。
<item><ref id="current" name="-current"> 分支也是每天推出
<url url="ftp://current.freebsd.org/pub/FreeBSD/"
name="3.0 Snapshot">, 純粹是為了熱心的測試者以及發展人員所提供的。
</itemize>
<p>FreeBSD 的 CDROM 可以從下列地方取得 :
<p>Walnut Creek CDROM<newline>
4041 Pike Lane, Suite F<newline>
Concord, CA 94520 USA<newline>
Orders: +1 800 786-9907<newline>
Questions: +1 925 674-0783<newline>
FAX: +1 925 674-0821<newline>
email: <url url="mailto:orders@cdrom.com" name="WC Orders address">
<newline>
WWW: <url url="http://www.cdrom.com/" name="WC Home page">
<newline>
<p>如果您在澳洲, 您可以找 :
<p>Advanced Multimedia Distributors<newline>
Factory 1/1 Ovata Drive<newline>
Tullamarine, Melbourne<newline>
Victoria<newline>
Australia<newline>
Voice: +61 3 9338 6777<newline>
CDROM Support BBS<newline>
17 Irvine St<newline>
Peppermint Grove WA 6011<newline>
Voice: +61 9 385-3793<newline>
Fax: +61 9 385-2360<newline>
在英國 :
The Public Domain &amp; Shareware Library<newline>
Winscombe House, Beacon Rd<newline>
Crowborough<newline>
Sussex. TN6 1UL<newline>
Voice: +44 1892 663-298<newline>
Fax: +44 1892 667-473<newline>
<sect1>
<heading>
我在那裡可以找到有關 FreeBSD mailing lists 的資訊 ?<label id="mailing">
</heading>
<p>您可以在 <url url="../handbook/eresources:mail.html"
name="使用手冊 - mailing-lists"> 中找到完整的資訊。
<sect1>
<heading>有什麼討論 FreeBSD 的新聞討論群組嗎 ?</heading>
<p>您可以在 <url url="../handbook/eresources:news.html"
name="使用手冊 - 新聞討論群組"> 中找到完整的資訊。
<sect1>
<heading>
有專門討論 FreeBSD 的 IRC 頻道嗎 ?
</heading>
<p>是的, 大部份主要的 IRC 網路主機都提供了 FreeBSD 的聊天頻道 :
<itemize>
<item>EFNet 所提供的 <tt>&num;FreeBSD</tt> 頻道是一個 FreeBSD 的論
壇, 但是您可能無法從那邊得到技術方面的支援, 您也別想在那邊找到任何
人可以幫您避免掉閱讀 man page 以及自己研究的痛苦。那是一個以聊天為
主的頻道, 在那邊聊到 FreeBSD 和聊到性、運動、以及核子武器的機會是
一樣高的。
我們已經警告過您了。
您可以經由 <tt>irc.chat.org</tt> 來連線。
<item>DALNET 所提供的 <tt>&num;FreeBSD</tt> 頻道, 在美國可以經由
<tt>irc.dal.net</tt> 來連線, 在歐洲可以經由 <tt>irc.eu.dal.net</tt>
來連線。
<item>UNDERNET 所提供的 <tt>&num;FreeBSD</tt> 頻道, 在美國可以經由
<tt>us.undernet.org</tt> 來連線, 在歐洲可以經由
<tt>eu.undernet.org</tt> 來連線。
<item>最後, 您也可以加入 BSDNET 所提供的 <tt>&num;FreeBSD</tt> 頻
道, 這是一個小型的 BSD 專用聊天網路, 可以經由
<tt>irc.FreeBSD.org</tt> 來連線。
</itemize>
<p>以上的這些頻道都是不同的, 而且它們並沒有互相連通。它們聊天的方式也
不儘相同, 所以您可能每個都要去嚐試一下, 以找到最適合您的頻道。
<sect1>
<heading>FreeBSD 相關書籍</heading>
<p>您或許可以試試看 <tt>doc</tt> mailing list :
<url url="mailto:freebsd-doc@FreeBSD.ORG"
name="&lt;freebsd-doc@FreeBSD.ORG&gt;"> 上的 FreeBSD 文件計畫 (如果您
能加入這是計畫那是再好不過的了)。這個 mailing list 是用來討論 FreeBSD
文件的。如果您想要發問問題的話, 我們也有 <tt>questions</tt> mailing
list :
<url url="mailto:freebsd-questions@FreeBSD.ORG"
name="&lt;freebsd-questions@FreeBSD.ORG&gt;"> 。
<p>您也可以從
<url url="../handbook/handbook.html" name="FreeBSD 使用手冊">
取得 FreeBSD "使用手冊"。請注意, 這份文件仍處於製作階段, 有很多部份都
還沒有完成。
<p>有關 FreeBSD 的書籍中, 最好的應該就是 Greg Lehey 著作, Walnut Creek
CDROM Books 出版的 "The Complete FreeBSD" 了。現在這本書已經出到第二版
了, 總共 1750 頁左右, 內容包括安裝, 系統管理指導, 程式安裝協助, 以及
manual pages。這本書 (以及最新版的 FreeBSD release) 可以向
<url url="http://www.cdrom.com" name="Walnut Creek">,
<url url="http://www.cheapbytes.com" name="CheapBytes">, 或是任何一間
您喜歡的書局訂購。他的 ISBN 號碼是 1-57176-227-2。
<p>然而, 因為 FreeBSD 2.2.X 是以 4.4BSD-Lite2 為基礎來發展的系統, 所以
大部份 4.4BSD 的手冊都適用於 FreeBSD 2.2.X。O'Reilly and Associates
出版了下列手冊 :
<itemize>
<item>4.4BSD System Manager's Manual <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition June 1994, 804 pages <newline>
<url url="&isbn.amazon/1-56592-080-5" name="ISBN">: 1-56592-080-5 <newline>
<item>4.4BSD User's Reference Manual <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition June 1994, 905 pages <newline>
<url url="&isbn.amazon/1-56592-075-9" name="ISBN">: 1-56592-075-9 <newline>
<item>4.4BSD User's Supplementary Documents <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition July 1994, 712 pages <newline>
<url url="&isbn.amazon/1-56592-076-7" name="ISBN">: 1-56592-076-7 <newline>
<item>4.4BSD Programmer's Reference Manual <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition June 1994, 886 pages <newline>
<url url="&isbn.amazon/1-56592-078-3" name="ISBN">: 1-56592-078-3 <newline>
<item>4.4BSD Programmer's Supplementary Documents <newline>
By Computer Systems Research Group, UC Berkeley <newline>
1st Edition July 1994, 596 pages <newline>
<url url="&isbn.amazon/1-56592-079-1" name="ISBN">: 1-56592-079-1 <newline>
</itemize>
<p>您可以在 WWW 上找到相關介紹 :
<url url="http://gnn.com/gnn/bus/ora/category/bsd.html"
name="4.4BSD books description">。因為銷售情形並不是很好, 所以您可能很
難去取得這些書籍。
<p>如果您想對 4.4BSD 的核心架構有更深層的認識, 您絕不能錯過這本書 :
<p>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels,
and John Quarterman.<newline>
<p><em>The Design and Implementation of the 4.4BSD Operating
System</em>. Reading, Mass. : Addison-Wesley, 1996.<newline>
<url url="&isbn.amazon/0-201-54979-4" name="ISBN"> 0-201-54979-4<newline>
<p>一本有關系統管理的好書 :
<p>Evi Nemeth, Garth Snyder, Scott Seebass &amp; Trent R. Hein,<newline>
``Unix System Administration Handbook'', Prentice-Hall, 1995<newline>
<url url="&isbn.amazon/0-13-151051-7" name="ISBN">: 0-13-151051-7<newline>
<p><bf/NOTE/ 請確認您買到的的確是第二版, 它是紅色書皮的, 第一版的不是。
<p>這本書涵蓋了一些基礎的東西, 包括 TCP/IP, DNS, NFS, SLIP/PPP,
sendmail, INN/NNTP, printing, 等。這本書蠻貴的 (大約
US&dollar;45-&dollar;55) , 不過它的確有這個價值。它也附了一片內含一些
工具程式原始碼的 CDROM ; 大部份的東西在 FreeBSD 2.2.6R 的 CDROM 裡也有 (
通常 FreeBSD CROM 裡的是比較新版的) 。
<sect1>
<heading>我要如何去存取您們的錯誤回報資料庫呢 ?</heading>
<p>所有使用者 open 的變更要求都可以經由我們 web 界面的 PR
<url url="http://www.freebsd.org/send-pr.html" name="submission"> 及
<url url="http://www.freebsd.org/cgi/query-pr-summary.cgi" name="query">
來查詢 (或是回報) 我們的錯誤回報資料庫。<em>send-pr(1)</em> 這個指令也
可以經由電子郵件來回報錯誤或是要求變更。
<sect1>
<heading>那裡可以找到 ASCII 或是 PostScript 版的 FAQ ?</heading>
<p>最新的 FAQ 可以從 FreeBSD 網站或是任何一個 mirror 站臺取得, 不論是
PostScript 或是純文字的 (包括 7 bit ASCII 以及 8-bit Latin1) 都有。
<p>PostScript 格式 (大約 370KB):
<itemize>
<item><url url="http://www.freebsd.org/FAQ/FAQ.ps"
name="http://www.freebsd.org/FAQ/FAQ.ps">
</itemize>
<p>ASCII 格式 (大約 220KB):
<itemize>
<item><url url="http://www.freebsd.org/FAQ/FAQ.ascii"
name="http://www.freebsd.org/FAQ/FAQ.ascii">
</itemize>
<p>ISO 8859-1 格式 (大約 220KB):
<itemize>
<item><url url="http://www.freebsd.org/FAQ/FAQ.latin1"
name="http://www.freebsd.org/FAQ/FAQ.latin1">
</itemize>
<sect1>
<heading>那裡可以找到 ASCII 或是 PostScript 版的使用手冊 ?</heading>
<p>最新的 FAQ 可以從 FreeBSD 網站或是任何一個 mirror 站臺取得, 不論是
PostScript 或是純文字的 (包括 7 bit ASCII 以及 8-bit Latin1) 都有。
<p>PostScript 格式 (大約 1.7MB):
<itemize>
<item><url url="http://www.freebsd.org/handbook/handbook.ps"
name="http://www.freebsd.org/handbook/handbook.ps">
</itemize>
<p>ASCII 格式 (大約 1080KB):
<itemize>
<item><url url="http://www.freebsd.org/handbook/handbook.ascii"
name="http://www.freebsd.org/handbook/handbook.ascii">
</itemize>
<p>ISO 8859-1 格式 (大約 1080KB):
<itemize>
<item><url url="http://www.freebsd.org/handbook/handbook.latin1"
name="http://www.freebsd.org/handbook/handbook.latin1">
</itemize>
<sect1>
<heading>ASCII 版的使用手冊不是純文字檔 !</heading>
<p>是的, ASCII 和 Latin1 格式的 FAQ 以及使用手冊嚴格來說並不能算是純
文字檔 ; 它們包含了一些印出底線以及重覆列印的控制碼以便能直接由點矩陣
式印表機輸出。如果您想把它們轉成一般的文字檔的話, 可以利用 col :
<verb>
$ col -b < inputfile > outputfile
</verb>
<sect1>
<heading>我想成為 FreeBSD 的 mirror 站臺 !</heading>
<p>當然可以 ! 有很多方法可以 mirror 我們的網頁。
<itemize>
<item>利用 CVSUP : 您可以利用 CVSUP 從 cvsup.freebsd.org 取得格式化
過的檔案。您只需要把下面這行加入您的 cvsup 設定檔 :
<verb>
www release=current hostname=/home base=/usr/local/etc/cvsup
prefix=/usr/local/www/data/www.freebsd.org delete old use-rel-suffix
</verb>
<item>利用 rsync : 請參閱
<url url="http://www.freebsd.org/internal/mirror.html"
name="the mirroring page"> 以獲得更多資訊。
<item>利用 ftp mirror : 您可以利用您喜歡的 ftp mirror 工具從 FTP 站
臺中取得網頁資料。就從
ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/www 開始吧。
</itemize>
<sect1>
<heading>我想要翻譯文件</heading>
<p>嗯, 我們沒能力給您薪水, 不過如果您能提供翻譯好的文件的話, 我們會送
您 CD 或是 T-shirt , 並把您加入使用手冊裡 Contributor 的行列。
<sect1>
<heading>其他資訊來源</heading>
<p>下列 newsgroups 中包括了 FreeBSD 相關的討論 :
<itemize>
<item><url url="news:comp.unix.bsd.freebsd.announce"
name="comp.unix.bsd.freebsd.announce"> (moderated)
<item><url url="news:comp.unix.bsd.freebsd.misc"
name="comp.unix.bsd.freebsd.misc">
<item><url url="news:comp.unix.bsd.misc" name="comp.unix.bsd.misc">
</itemize>
<p>網頁資源 :
<itemize>
<item>The <url url="http://www.freebsd.org/" name="FreeBSD Home Page">.
<item><label id="pao">如果您有膝上型電腦 (laptop) 的話, 別忘了去看看
位於日本的
<url url="http://www.jp.FreeBSD.org/PAO/"
name="Tatsumi Hosokawa's Mobile Computing page"> 。
<item><label id="smp">SMP (平行多處理器架構) 的相關資訊請看
<url url="http://www.freebsd.org/~fsmp/SMP/SMP.html"
name="SMP support page"> 。
<item><label id="multimedia">有關 FreeBSD 多媒體方面的應用程式, 請看
<url url="http://www.freebsd.org/~faulkner/multimedia/mm.html"
name="multimedia"> 。如果您對 Bt848 這個影像擷取晶片特別有興趣的話,
請看<url url="http://www.freebsd.org/~ahasty/Bt848.html"
name="這個網頁"> 。
</itemize>
<p>FreeBSD 使用手冊也有一分很完整的
<url url="../handbook/bibliography.html" name="參考書籍列表">, 如果您
正想買書的話, 這部份值得一看。
</sect>

489
zh_TW.Big5/FAQ/serial.sgml Normal file
View file

@ -0,0 +1,489 @@
<!-- $Id: serial.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by ijliao@dragon2.net -->
<!-- English Version: 1.2 -->
<sect>
<heading>Serial 通訊<label id="serial"></heading>
<p>這一章主要是在討論 FreeBSD 上有關 serial 通訊的問題。有關 PPP 以及
SLIP 的問題是放在 <ref id="networking" name="網路"> 這一節。
<sect1>
<heading>我要怎麼知道 FreeBSD 是不是有抓到我的 serial port ?</heading>
<p>當 FreeBSD 開機的時候, 它會根據您在 kernel 中的設定來偵測您的
serial port。您可以在這些訊息出現的時候檢查, 也可以在系統開機之後用
下面的指令來觀察 :
<verb>
dmesg | grep sio
</verb>
<p>這裡有一些輸出的範例 :
<verb>
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
</verb>
<p>這代表您有兩個 serial port。第一個 port 佔用 irq 4, port address 是
<tt/0x3f8/ , 而且用的是 16550A 型的 UART 晶片。第二個 port 用的是同
型的晶片, 不過它佔用的是 irq 3 , 它的 port address 在 <tt/0x2f8/ 。
內接式 modem 卡會被辨識成是 serial port -- 唯一的差別就是該 port 上
總是接上 modem 而已。
<p><tt/GENERIC/ kernel 支援兩個 serial port , 它們的設定值就如同上面的
範例一樣。如果您系統上的設定不一樣, 或者您另外接了內接式 modem 卡,
或是您系統的實際 serial port 數比您在 kernel 設定中的還要多的話, 您
只要重新建立 kernel 就好了。詳情請看 <ref id="make-kernel"
name="如何建立 kernel"> 。
<sect1>
<heading>我要怎麼知道 FreeBSD 是不是有抓到我的 modem 卡 ?</heading>
<p>請看上一個問題。
<sect1>
<heading>我升級到 2.0.5 以後我的 <tt/tty0X/ 居然不見了 !</heading>
<p>不要緊張, 它們已經被併到 <tt/ttydX/ 裝置下去了。不過您還是得到自己
修改設定檔才能讓它們正常工作。
<sect1>
<heading>我要如何在 FreeBSD 下存取 seral ports ?</heading>
<p>第三個 serial port, <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?sio" name="sio2"> (就是 DOS
下的 COM3) , 以 dial-out 裝置來看是位於 <tt>/dev/cuaa2</tt> , 而以
dial-in 裝置來看則是位於 <tt>/dev/ttyd2</tt> 。這兩個裝置有什麼不同
呢 ?
<p>您在 dial-in 時使用的是 <tt/ttydX/ 。當您用 block 模式開啟
<tt>/dev/ttydX</tt> 時, 會有一隻 process 在對應的 <tt/cuaaX/ 上等它
變成 inactive , 然後一直等到 carrier detect line 變成 active 為止。
當您開啟 <tt/cuaaX/ 裝置時, 它會去確定目前 <tt/ttydX/ 裝置是不是正
在使用 serial port。如果它可以用的話, 它就會把 serial port 從
<tt/ttydX/ 裝置手中搶過來。同樣的, <tt/cuaXX/ 裝置不會去管 carrier
detect。有了這樣的設計, 再加上一台會自動回應的 modem, 您就可以令同
一台 modem 可以被遠端使用者拿來登入, 您自己也可以拿來 dialout, 系統
會自動檢查是否有衝突的現象。
<sect1>
<heading>我要如何啟動對 serial 多埠卡的支援 ?</heading>
<p>同樣的, 在 kernel 設定那一節有提到有關設定 kernel 的資訊。要設定一
張 serial 多埠卡, 您必需在您的 kernel 設定檔中為每一個 serial port
都設一行 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?sio"
name="sio"> 的設定。但是您只能在它們之中選一個來設定 irq 以及
vector 。卡上的所有 port 會共享同一個 irq 。一般來說我們都把它設在最
後一個 serial port 上。不要忘了指定 <tt/COM&lowbar;MULTIPORT/ 這個
option 。
<p>下面是一個把 AST 4-port 卡 設在 irq 7 的例子 :
<verb>
options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
</verb>
<p>這裡的 flags 設定是指 master port 的 minor number 是 7
(<tt/0x700/), 在偵測時做檢查 (<tt/0x080/), 以及所有的 port 共享一個
irq (<tt/0x001/) 。
<sect1>
<heading>FreeBSD 可以控制多張 serial 多埠卡使用同一個 irq 嗎 ?</heading>
<p>還沒支援。您必需為每張卡設定不同的 irq 。
<sect1>
<heading>我可以為 port 設定預設參數嗎 ?</heading>
<p>通常您會想為您的應用程式開啟 <tt/ttydX/ (或是 <tt/cuaaX/) 裝置。當
一個 process 開啟裝置以後, 它會有一組預設的終端機 I/O 設定。您可以用
下面這個指令來觀察這些設定
<verb>
stty -a -f /dev/ttyd1
</verb>
<p>當您改變了某個裝置的設定後, 這些設定會一直作用, 直到這個裝置被關閉
了為止。當它被重開啟後, 又回到原先的預設值了。如果想要改變預設值, 您
可以開啟並修改 ``初始狀態'' 裝置的設定。舉例來說, 如果您想改變 ttyd5
的預設值, 把 <tt/CLOCAL/ 模式打開, 8 bits, 並且使用
<tt>XON/XOFF</tt> 流量控制, 您可以這樣做 :
<verb>
stty -f /dev/ttyid5 clocal cs8 ixon ixoff
</verb>
<p>您可以在 <tt>/etc/rc.serial</tt> 裡做這樣的設定。現在每一個開啟
<tt/ttyd5/ 的應用程式都會預設使用這些設定了。您依然可以用同樣的方法
去改變這些設定。
<p>您也可以藉由設定 ``鎖定狀態'' 裝置來防止其他應用程式去更動這些設定
。舉例來說, 想要把 <tt/ttyd5/ 的速度鎖定在 57600 bps, 您要這樣做
<verb>
stty -f /dev/ttyld5 57600
</verb>
<p>這樣一來, 每一個開啟 <tt/ttyd5/ 的應用程式都只能使用 57600 bps 的速
度了。
<p>當然, 您必需確定您的初始狀態以及鎖定狀態的裝置只能被 <tt/root/ 寫入
。<htmlurl url="http://www.freebsd.org/cgi/man.cgi?MAKEDEV"
name="MAKEDEV"> 這個 script 並 <bf/不會/ 在建立這些裝置時自動幫您設
定好。
<sect1>
<heading>我要怎樣才能讓 modem 接受 dialup 登入呢 ?</heading>
<p>您是不是想當 ISP ? 首先, 您要有一部以上可以自動接聽的 modem。您的
modem 必須要有 carrier-detect 的功能。它也要能夠在 data terminal
ready (<tt/DTR/) 由開轉為關時重新設定自己。它或許也要能夠使用
<tt>RTS/CTS</tt> 流量控制或是不做任何流量控制。最後, 它必須能夠在電
腦和它自己的傳輸中使用定速, 但是在它和遠端 modem 的連線方面則要有協
商傳輸速度的能力。
<p>對 Hayes 指令集相容 modem 來說, 下面的指令會把上一段所講的全部設好
並存在非揮發性記憶體中 :
<verb>
AT &amp;C1 &amp;D3 &amp;K3 &amp;Q6 S0=1 &amp;W
</verb>
<p>看看下面的 <ref id="direct-at" name="傳送 AT 指令集"> 這一節可以得
更多有關如何不利用 MS-DOS 終端程式來做這些設定的資料。
<p>接下來, 在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys"
name="/etc/ttys"> 為您的 modem 做設定。列在這個檔案中的是所有系統會
待 login 的 ports 。像下面這樣加入一行 :
<verb>
ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
</verb>
<p>這一行指令第二個 serial port (<tt>/dev/ttyd1</tt>) 是一個以 57600
bps 速度在傳輸的 modem, 並且不做同位檢查 (<tt/std.57600/ 是在
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?gettytab"
name="/etc/gettytab"> 檔裡指定的) 。這個 port 的終端機型態是
``dialup'' 。這個 port 設成 ``on'' 而且是 ``insecure'' 的 --- 意思是
root 不能從這裡連線進來。您必需為每個 dialin port 都做類似
<tt/ttydX/ 的設定。
<p>通常我們會用 ``dialup'' 來做為終端機型態。如果使用者登入時的啟始型
態是 dialup 的話, 很多使用者都會在他們的 .profile 或是 .login 檔中設
定他們真正的終端機型態。上面的例子中我們舉的是 insecure 的例子。如果
您想要在這個 port 變成 root 的話, 您必須用一般使用者的身份登入, 然後
``<htmlurl url="http://www.freebsd.org/cgi/man.cgi?su" name="su">''
成 <tt/root/ 。如果您用的是 ``secure'' 的話, 則 <tt/root/ 可以直接登
入。
<p>在對 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys"
name="/etc/ttys"> 做過修改之後, 您必須送一個 hangup 或是 <tt/HUP/
的 signal 給 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?init"
name="init"> process :
<verb>
kill -HUP 1
</verb>
<p>這樣會強迫 init process 去重讀 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> 。
然後 init process 就會在所有的 ``on'' port 上重新啟動 getty
process 。您可以用下列指令來檢查您的 port 是不是可以 login 了
<verb>
ps -ax | grep '[t]tyd1'
</verb>
<p>您會見到類似這樣的結果 :
<verb>
747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1
</verb>
<sect1>
<heading>我要怎麼把 dumb terminal 連上 FreeBSD ?</heading>
<p>如果您要把別的電腦當成是 FreeBSD 的終端機的話, 您只需要在兩者的
serial port 之間牽一條 null modem 排線即可。如果您有一個真的終端機
的話, 看看它的指令集吧。
<p>然後, 像上一個問題一樣修改
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys"
name="/etc/ttys"> 。舉例來說, 如果您把一個 WYSE-50 終端機接在第五個
serial port 上的話, 就要用這樣的設定 :
<verb>
ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
</verb>
<p>這個例子示範的是 <tt>/dev/ttyd4</tt> 所代表的 port 用的是 wyse50 終
端機, 連線速度 38400 bps, 不使用同位檢查 (<tt/std.38400/ 是從
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?gettytab"
name="/etc/gettytab"> 設定的) 而且 <tt/root/ 可以 login (secure) 。
<sect1>
<heading>為什麼我不能執行 <tt/tip/ 及 <tt/cu/ 呢 ?</heading>
<p>在您的系統中, <htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip"
name="tip"> 和 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?cu"
name="cu"> 很可能只能由 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?uucp" name="uucp"> 使用者和
<tt/dialer/ 群組才能執行。您可以用 <tt/dialer/ 群組來控制到底有誰可
以存取您的 modem 以及遠端系統。您只要把您自己加到 dialer 群組中就可
以了。
<p>另外一種方法是, 您可以讓您系統上所有使用者都可以執行 <tt/tip/ 和
<tt/cu/ , 只要您
<verb>
# chmod 4511 /usr/bin/cu
# chmod 4511 /usr/bin/tip
</verb>
<sect1>
<heading>FreeBSD 不支援我的 stock Hayes modem --- 我要怎麼辦 ?</heading>
<p>事實上, <htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip"
name="tip"> 的 man page 已經過時了。一般的 Hayes dialer 已經內建在系
統內。您只要在 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?remote" name="/etc/remote">
指定 ``<tt/at=hayes/'' 就可以了。
<p>可惜的是, Hayes 的驅動程式不夠聰明, 有些新 modem 上的進階功能它無法
辨識出來 --- 例如 <tt/BUSY/ , <tt/NO DIALTONE/ , 或是
<tt/CONNECT 115200/ 這類的訊息它就會搞混。您在使用 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> 的時候必須
把它們關掉 (用 <tt/ATX0&amp;W/) 。
<p>還有, <tt/tip/ 的 dial 逾時時間是 60 秒。您的 modem 可能要設得更短,
否則 tip 會認為發生了通訊上的問題。試試看<tt/ATS7=45&amp;W/ 。
<p>事實上 <tt/tip/ 還沒有完全支援它。解決方法是去修改
<tt>/usr/src/usr.bin/tip/tip</tt> 目錄裡的 <tt/tipconf.h/ 。很顯然您
必須要有原始程式碼才能這麼做。
<p>把 ``<tt/#define HAYES 0/'' 改成 ``<tt/#define HAYES 1/'' 。然後
``<tt/make/'' 並 ``<tt/make install/'' 。之後一切都會恢復正常了。
<sect1>
<heading>
我什麼時候要直接鍵入 AT 指令 ?<label id="direct-at">
</heading>
<p>在您的 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote"
name="/etc/remote"> 檔裡加一個 ``<tt/direct/'' 。舉例來說, 如果您的
modem 連接在第一個 serial port, <tt>/dev/cuaa0</tt>, 則您要加入下面
這一行 :
<verb>
cuaa0:dv=/dev/cuaa0:br#19200:pa=none
</verb>
<p>在 br 欄中設定您 modem 所支援的最高速。之後, 鍵入 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip cuaa0"> 之後
您就連上您的 modem 了。
<p>如果您的系統上沒有 <tt>/dev/cuaa0</tt> , 您就先這樣 :
<verb>
# cd /dev
# ./MAKEDEV cuaa0
</verb>
<p>或是您可以用 root 執行 cu 指令, 像這樣 :
<verb>
# cu -l``line'' -s``speed''
</verb>
<p>這裡的 line 是指您的 serial port (例如 <tt>/dev/cuaa0</tt>) , speed
是指您的傳輸速度 (例如 <tt>57600</tt>) 。如果您下完 AT 指令後, 鍵入
<tt>~.</tt> 可以離開。
<sect1>
<heading>pn 欄中的 <tt/@/ 不能用了 !</heading>
<p>電話號碼欄中的 <tt/@/ 記號是用來告訴 tip 去 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?phones(5)"
name="/etc/phones"> 找電話號碼。但是 <tt/@/ 同時也是 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?remote" name="/etc/remote">
這類檔案中的特殊字元。您可以加上反斜線 :
<verb>
pn=\@
</verb>
<sect1>
<heading>我要怎麼在命令列下撥電話呢 ?</heading>
<p>在您的 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote"
name="/etc/remote"> 放一個 ``<tt/generic/''。舉例來說 :
<verb>
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
</verb>
<p>然後您就可以像 ``<tt/tip -115200 5551234/'' 這樣用了。如果您比較喜
歡用 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?cu" name="cu">
的話, 使用 generic cu 欄位 :
<verb>
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
</verb>
<p>然後輸入 ``<tt/cu 5551234 -s 115200/'' 。
<sect1>
<heading>我每次用的時候都要輸入 bps 速度嗎 ?</heading>
<p>您可以使用類似 <tt/tip1200/ 或是 <tt/cu1200/ 的欄位, 不過在您使用之
前請先確定您的 br 欄可以支援這個速度。<htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> 認為 1200
bps 是一個很好的預設值, 這也就是為什麼要叫做 ``<tt/tip1200/'' 的原因
了。當然您也可以不要用 1200 bps 。
<sect1>
<heading>透過一台 terminal server 來存取主機。</heading>
<p>除了每次等您連上 server 並鍵入 ``<tt/CONNECT &lt;host&gt;/'' 以外,
比較好的方法是用 tip 的 <tt/cm/ 。舉例來說, 看看 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?remote" name="/etc/remote"> :
<verb>
pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:
</verb>
<p>可以讓您只打 ``<tt/tip pain/'' 或是 ``<tt/tip muffin/'' 就可以連上
pain 或 muffin ; 然後 ``<tt/tip deep13/'' 可以連上 terminal server。
<sect1>
<heading>tip 可以在一次連線中選擇多台機器嗎 ?</heading>
<p>通常這個問題發生在 : 一間大學有一些 modem , 而且有上千名學生要用...
<p>在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?remote"
name="/etc/remote"> 裡為您的大學設一個欄位, 並使用 <tt>\@</tt> 作為
它的 <tt/pn/ :
<verb>
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
</verb>
<p>然後, 把大學的撥接電話放在 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?phones" name="/etc/phones">
中 :
<verb>
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
</verb>
<p><htmlurl url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip">
會依照表列的順序依次嚐試, 最後放棄。如果您要一直試的話, 您可以在
while 迴圈裡執行 <tt/tip/ 。
<sect1>
<heading>為什麼我按兩次 CTRL+P, 可是卻只送出了一個 CTRL+P ?</heading>
<p>CTRL+P 是內定的 ``force'' 字元, 用來告訴 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> 下一個字元
是一般字元。您可以藉由 <tt/~s/ (代表 ``設定變數'') 把其他字元設成強
迫字元。
<p>鍵入 ``<tt/~sforce=&lt;single-char&gt;/'' 後面接一個 newline 。
<tt/&lt;single-char&gt;/ 可以是任意單一字元。如果您只打
<tt/&lt;single-char&gt;/ , 則 nul 就被設成是 force character, 您可
以藉由按 CTRL+2 或是 CTRL+SPACE 來按出 nul 。SHIFT+CTRL+6 是一個不
錯的 <tt/&lt;single-char&gt;/ , 我看過一些終端機都是這麼設定。
<p>您也可以在 <tt>&dollar;HOME/.tiprc</tt> 中設定 force character :
<verb>
force=<single-char>
</verb>
<sect1>
<heading>突然間我打的東西都變成大寫了 ??</heading>
<p>您應該是按到了 CTRL+A, 在 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?tip" name="tip"> 中為沒有
caps-lock 鍵的使用者所設計的 ``raise character''。您可以像上個問題
一樣利用 <tt/~s/ 來把 ``raisechar'' 這個變數改成合理的值。事實上,
如果您認為您永遠都不會用到這兩個功能的話, 您可以把它設成跟 force
character 一樣。
<p>下面是一個為 Emacs 使用者所設定的 .tiprc , Emacs 使用者常常會用到
CTRL+2 和 CTRL+A :
<verb>
force=^^
raisechar=^^
</verb>
<p>^^ 就是 SHIFT+CTRL+6 。
<sect1>
<heading>我要如何使用 <tt/tip/ 來傳檔案呢 ?</heading>
<p>如果您的對像也是 UNIX 系統的話, 您可以用 <tt/~p/ (put) 和 <tt/~t/
(take) 來收送資料。這兩個命令會在遠端機器執行 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?cat" name="cat"> 和 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?echo" name="echo"> 來收送檔
案。用法是 :
<verb>
~p <local-file> [<remote-file>]
~t <remote-file> [<local-file>]
</verb>
<p>它不會做錯誤檢查, 所以您最好用別的通訊協定, 例如 zmodem 。
<sect1>
<heading>我要怎麼用 <tt/tip/ 來跑 zmodem 呢 ?</heading>
<p>首先, 從 ports 中選一個 zmodem 程式來安 裝 (例如在 comms 目錄下的
<htmlurl url="http://www.freebsd.org/cgi/ports.cgi?^lrzsz"
name="lrzsz"> 或是 <htmlurl
url="http://www.freebsd.org/cgi/ports.cgi?^rzsz" name="rzsz"> ) 。
<p>在接收檔案方面, 您要先在遠端啟動傳送程式。然後按 enter 再鍵入
``<tt/~C rz/'' (如果您安裝 lrzsz 的話就要打 ``<tt/~C lrz/'') 就可以
開始接收了。
<p>在傳送檔案方面, 您要先在遠端啟動傳送程式。然後按 enter 再鍵入
``<tt/~C sz &lt;files&gt;/'' (或是 ``<tt/~C lsz &lt;files&gt;/'') 就
可以把檔案送到遠端系統了。
<sect1>
<heading>就算我設定無誤, FreeBSD 好像還是找不到我的 serial port ?</heading>
<p>如果您的主機板或是卡上有用到 Acer 的 UART 晶片的話, FreeBSD 在開機時
的 sio 偵測可能會不正確。您可以從 <url
url="http://www.lemis.com/serial-port-patch.html" name="www.lemis.com">
找到 patch 來修正這個問題。
</sect>

View file

@ -0,0 +1,446 @@
<!-- $Id: troubleshoot.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by corona@tale.net -->
<!-- English Version: 1.9 -->
<sect>
<heading>常見問題解決<label id="troubleshoot"></heading>
<sect1>
<heading>我的硬碟有壞軌!<label id="awre"></heading>
<p>若是 SCSI 硬碟的話,應該有能力自動作 re-mapping 的動作。
然而,因為一些神秘的因素,在出廠時,很多硬碟的這項功能是關閉的.
<p>要將其重新開啟,您需要編輯裝置的第一個 page 模式
first device page mode在 FreeBSD 上可以用下面的指令辦到
(以 root 身分執行)
<verb>
scsi -f /dev/rsd0c -m 1 -e -P 3
</verb>
<p>然後將 AWRE 和 ARRE 的數值從 0 變成 1:-
<verb>
AWRE (Auto Write Reallocation Enbld): 1
ARRE (Auto Read Reallocation Enbld): 1
</verb>
<p>上面這段是由
<url url="mailto:tedm@toybox.placo.com" name="Ted Mittelstaedt">所提供:
<p>若為 IDE 硬碟,任何的壞軌通常都是麻煩的預兆。目前所有較新的 IDE 硬
碟,內部都有自動 remapping 壞軌的能力。目前所有 IDE 硬碟製造商,都提供
了更久的保證,而且會幫您更換出現壞軌的硬碟。
<p>如果您仍想要修復產生壞軌的 IDE 硬碟,您仍可以試著去下載 IDE 硬碟製造
商所提供的檢測程式,並用它來檢查您的硬碟。有時這些軟體可以強迫硬碟電路
重新檢查硬碟的壞軌,並將它們標示出來.
<p>對 ESDIRLL 及 MFM 的硬碟來說,通常壞軌是正常現象,也不是什麼麻煩的
前兆。在 PC 上,磁碟控制卡和 BIOS 負責標示壞軌的任務。這對一些使用 BIOS
來存取磁碟的作業環境(如 DOS)是沒有問題的。然而FreeBSD 的磁碟驅動程式
並不經過 BIOS 來存取磁碟,所以,有個 bad144 的機制用來取代這項功能。
bad144 只能用在 wd 這個磁碟驅動程式上,它無法用在 SCSI 硬碟上。bad144
的工作方法是將所有找到的壞軌資料存到一個特別的檔案裏。
<p>使用 bad144 的警告 - 存著壞軌資料的特別檔案是放在硬碟的最後一軌
上。因為這個檔案儲存的壞軌資料中,有可能有些資料是指向硬碟最前端所發生
的壞軌情形,就是可能儲存 /kernel 這個檔的地方,所以它一定要能被開機程式
所讀取,而開機程式是透過 BIOS 來讀取 kernel 檔。這表示了使用 bad144 的
硬碟絕不能擁有超過 1024 個 cylinder16 個 head 及 63 個 sector。
這造成了使用 bad144 的硬碟的大小不能大於 500 MB。
<p>要使用 bad144 很簡單,只要在開始安裝時,在 FreeBSD fdisk 畫面把
"Bad Block" 掃瞄設為 ON 即可。在 FreeBSD 2.2.7 以後都可以使用此方法。
但這個硬碟的 cylinder 一定要在 1024 以下。使用前,我們建議這個硬碟要
至少先使用四個小時,以便熱膨脹與磁軌偏移達一般狀態。
<p>如果這個硬碟擁有超過 1024 個 cylinder (像大容量的 ESDI 硬碟)
ESDI 控制卡利用一個特別的轉換模式使它能在 DOS 下工作。
而如果您在 fdisk 裏的 "set geometry" 中輸入 "轉換過" 的 geometrywd 這
個驅動程式能了解這些轉換模式。您也絕對不能使用 dangerously dedicated 模
式來建立 FreeBSD 的分割區,因為它會忽略 geometry 這個參數。
此外,就算 fdisk 使用您所輸入的 geometry 參數,它依然會去讀取這硬碟的
真正資料,而會嘗試去建立一個過大的 FreeBSD 分割區。如果磁碟的 geometry
已經被 "轉換" 過了,那麼這個分割區 "必須" 以手動輸入 block 數目的方法來
建立。
<p>一個快速的小技巧是利用 ESDI 控制卡來設定大容量的 ESDI 硬碟,用 DOS 開
機片開機,再將它 format 為 DOS 的分割區。然後重開機進入 FreeBSD 安裝程序
,在 fdisk 畫面把DOS 分割區的 blocksize 和 block number 抄下來。然後重
新設定 geometry 使其跟 DOS 使用的一樣。刪除 DOS 分割區,然後使用您剛剛抄
下的 blocksize 來建立一個 cooperative FreeBSD 分割區。然後設定這個分割區
為可開機再打開壞軌掃瞄。在真正的安裝過程中bad144 會在任何檔案系統被
建立前先被執行。(您可以按 Alt-F2 來監看這一切)如果在建立壞軌資料檔時發生
了問題,您會需要設定一個較大的磁碟 geometry - 這表示您需要重開機,然後全
部再重新開始 (包括重新分割以及在 DOS 下重新 format)。
<p>如果 remapping 的功能已經啟動了,而您依然一直看到壞軌產生,那麼考慮
換一台硬碟吧。壞軌的情形只會隨時間增加而更為嚴重。
<sect1>
<heading>FreeBSD 抓不到我的 Bustek 742a EISA SCSI 卡!</heading>
<p>下面的資訊是給 742a 這張卡用的,但是其他 Buslogic 的卡或許也可以
適用。 (Bustek 就是 Buslogic)
<p>742a 這張卡有兩個主要的「版本」。一個是版本 A-G另一個是版本 H
及其以後。版本資訊可以從介面卡邊緣的流水號最後面得知。742a 這張
卡有兩個唯讀晶片在它上面,一個是 BIOS 晶片,而另一個是韌體晶片。
FreeBSD 並不在乎您卡上的 BIOS 版本,但是韌體的版本就很重要了。如果
你打電話給他們技術支援專線的話,他們會寄給您最新的版本供您升級。
BIOS 和韌體晶片是一起送來的。 您需要將卡上 BIOS 和韌體版本,依您卡
版本的不同,升級到最新的一版。
<p>版本 A-G 的卡最高只能將 BIOS/韌體 升級到 2.41/2.21 版,而版本 H
後,目前 BIOS/韌體的最新版本是 4.70/3.37。這兩個韌體版本間的差異在
3.37 這版支援 ``round robin''
<p>Buslogic 的卡上面也都有序號。如果您卡的版本較舊,您可以試著打電
話給 Buslogic 的RMA 部門,然後給他們您的序號,看能不能跟他們交換一
張較新版本的卡。如果那張卡夠舊的話,他們會換給你。
<p>FreeBSD 2.1 只支援韌體 2.21 版以後的版本。如果您韌體版本比這個還
舊的話,那麼您的卡就不能被辨識出是 Buslogic 的卡。它有可能會被辨識成
Adaptec 1540。較早的 Buslogic 卡上的韌體有一個 AHA1540``模擬''模式,
這對一張 EISA 卡來說並不是件好事。
<p>如果您有一張較舊版本的卡,而您取得 2.21 版韌體的話,您需要檢查一下
jumper W1 的位置,將它調至 B-C原始設定是 A-B。
<p>742a EISA 卡沒有在 <ref id="bigram" name="在擁有 &gt;16 MB 記憶體的機器上">
這段中所提過的 ``&gt;16MB'' 問題。這個問題只會發生在 Vesa-Local 匯流排的
Buslogic SCSI 卡上。
<sect1>
<heading>
FreeBSD 抓不到我的 HP Netserver 的 SCSI 控制卡!
</heading>
<p>基本上這個是一個已知的問題。在 HP Netserver 機器上的 on-board
EISA 介面 SCSI 控制卡占據了定址為第 11 的 EISA 槽,因此所有的 ``真實''
EISA 槽都在它之前。可是,在 EISA 定址空間 >= 10 時,會與指定給 PCI
用的定址空間相衝突,且 FreeBSD 的 auto-configuration 無法正確的處理
這個情形。
<p>因此,現在你能做的最好事情就是在 kernel 裏設定 <tt/EISA_SLOTS/
這個選項為 12 ,然後當作沒有這個問題 :)。
請依照 <url url="../handbook/kernelconfig.html"
name="Handbook 中有關 kernel 的設定"> 裏所說的方法來
設定與編譯您的 kernel
<p>當然,在安裝到這種機器上時,這是一個雞生蛋蛋生雞的問題。
為了解決這個問題,在 <em>UserConfig</em> 中有一個特別的方法,
安裝時不要進入 ``visual'' 介面,相反的,在命令列模式中,鍵入
<verb>
eisa 12
quit
</verb>
<p>然後就如以往一樣安裝您的系統。雖然我們建議您編譯與安裝一個
屬於自己的 kernel
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?dset" name="dset">
現在也已經了解這個參數,且會儲存它。
<p>希望,在未來的版本中能對這個問題有一個好的解決方法。
<p><tt/注意:/ 您無法在 HP Netserver 上使用 <bf/dangerously dedicated/
磁碟模式。您可以參考 <ref id="dedicate" name="這份註解">以獲得更多
資訊。
<sect1>
<heading>CMD640 IDE 控制晶片出了什麼問題?</heading>
<p>它的問題在於無法同時處理兩個 channel 的指令。
<p>現在已經有個解決方法了,且會自動在您使用這塊晶片時啟動。
如果需要更詳盡的解釋,請查閱有關磁碟驅動程式的說明(man 4 wd)
<p>如果您目前是使用 CMD640 IDE 控制晶片,加上 FreeBSD 2.2.1 或
2.2.2,而且您又想要使用到第二個 channel 時,請在您的 kernel 設
定中加入 <tt/options "CMD640"/ 然後重新編譯一個新的 kernel。
這個 option 在 2.2.5 版以後是內定啟動的。
<sect1>
<heading>我一直看到類似 ``<tt/ed1: timeout/'' 的訊息</heading>
<p>這個通常是由於中斷衝突(interrupt conflict)所造成的 (例如,兩塊卡
使用到了相同的 IRQ)。 FreeBSD 在 2.0.5 版以前都容許這個情形,
就算有 IRQ 衝突情形,網路卡也應該仍可正常運作。
然而,在 2.0.5 版及其以後,已不再容許有 IRQ 衝突的情形了。
請於開機時使用 -c 這個選項,然後更改 ed0/de0/..。等的設定,使其
和您網路卡本身的設定一致。
<p>如果您是使用您網路卡上的 BNC 接頭,您或許也會因不良的終端電阻設定,
而發生裝置 (device) timeout 的情形。要檢查是否有這種情形,您可以在
網路卡上直接接上終端電阻 (不要接網路線),然後看看這個錯誤訊息是不是
就消失了。
<p>有些 NE2000 的相容卡,如果它的 UTP 埠沒有接網路線,或是該網路線並
沒被使用的話,也會出現這個錯誤訊息。
<sect1>
<heading>在我想要掛上 CDROM 時,出現``Incorrect super block''的訊息</heading>
<p>您必須告訴
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount" name="mount">
您想掛上的 device 的檔案格式。在原始設定裏,
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount" name="mount">
會假設您的檔案格式為 ``<tt/ufs/''。如果您想要掛上 CD-ROM 裏的檔案,
您需要在 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?mount"
name="mount">。
時指定 ``<tt/-t cd9660/'' 這個選項。當然,這是假設光碟片是使用
ISO 9660 的檔案系統 (絕大多數光碟片皆是用這套檔案系統)
且在 1.1 版以後FreeBSD 已經能看得懂 Rock Ridge (長檔名) 這個延伸格式。
<p>舉例來說,如果您想將 ``<tt>/dev/cd0c</tt>'' 這個 CDROM 裝置 (device)
掛在 <tt>/mnt</tt> 下,您需要執行:
<verb>
mount -t cd9660 /dev/cd0c /mnt
</verb>
<p>要注意的是,您的裝置名稱可能會不一樣 (在此範例中是
``<tt>/dev/cd0c</tt>'',它是根據您的 CDROM 介面而定的。
另外要注意的,``<tt/-t cd9660/'' 這個選項只是呼叫
``<tt/mount&lowbar;cd9660/'' 這個指令,所以上面這個範例
也可以縮短為:
<verb>
mount_cd9660 /dev/cd0c /mnt
</verb>
<sect1>
<heading>當我想掛上 CDROM 時,出現了 ``Device not configured'' 的錯誤訊息
</heading>
<p>這通常是表示您的 CD-ROM 裏面沒有光碟片,或者是這台機器無法被
匯流排 (bus) 抓到。放片光碟片在光碟機裏,如果它是 IDE (ATAPI) 的
光碟機的話,檢查一下它的 master/slave 狀態。光碟機通常需要幾秒鐘
的時間才能備妥 (ready),所以請耐心等候。
<p>有時這是發生在 SCSI CD-ROM 上,因為它在匯流排重置 (bus reset)
時來不及回應,所以消失了。如果您擁有的是 SCSI CD-ROM請嘗試在
kernel 設定檔中加入以下的設定,然後重新編譯。
<verb>
options "SCSI_DELAY=15"
</verb>
<sect1>
<heading>我的印表速度破天荒的慢。我該怎麼做?</heading>
<p>如果是平行埠,且唯一的問題就是速度很慢的話,試著設定您的
印表機埠為 ``polled'' 模式:
<verb>
lptcontrol -p
</verb>
<p>有些新的 HP 印表機似乎無法在 interrupt 模式中正常工作,
很明顯的是因為一些時脈問題 (但還不是很瞭解為什麼會如此)
<sect1>
<heading>我的程式有時會因 ``Signal 11'' 這個錯誤而停止</heading>
<p>這個通常是因為有問題的硬體 (記憶體,主機板等等) 所造成的.
試試在您的 PC 上跑個記憶體測試程式看看。注意,就算您試過的每一種記
憶體測試程式都回報說您的記憶體沒有問題,但是,有一些低品質的記憶體,
雖然能通過記憶體測試,不過在真正工作時卻會出問題 (例如從
Adaptec 1542 等等 SCSI 控制卡做 bus mastering DMA、在編輯 kernel 時、
或是系統的負載很高時)
<p>SIG11 FAQ (位址在下面) 指出記憶體的速度不夠快通常是這個問題的原因。
試著在您的 BIOS 設定中增加記憶體 wait 狀態的時間,或是更換更快的記憶
體。
<p>以我而言,我曾遇過由不良的快取記憶體或是不良的 on-board 快取卡
所造成的這個問題。試著在 BIOS 設定中取消 on-board (第二階) 快取,
看看這樣能不能解決這個問題
<p>這兒有一份很好的 FAQ:
<url url="http://www.bitwizard.nl/sig11/" name="SIG11 問題的 FAQ">
<sect1>
<heading>當我開機時,螢幕變黑,且不停閃動!</heading>
<p>這個問題,已知是由 ATI Mach 64 顯示卡所引起的。因為這塊卡使用到
<tt/2e8/ 這個位址,而這與第四個序列埠(serial port)所使用的位址相同。而
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?sio" name="sio.c">
這個驅動程式,不知道是 bug 或是功能(feather),就算您沒有第四個序列埠,
或是已經將 sio3 (第四個序列埠)取消了,它依然會去嘗試驅動它。
<p>直到這個問題被解決以前,您可以使用這個方法:
<enum>
<item>在開機提示(看到<tt/boot:/ 時)打入 <tt/-c/。 (這會讓 kernel
進入設定模式)
<item>取消 <tt/sio0/<tt/sio1/<tt/sio2/ and <tt/sio3/ (全部)
這可以讓 sio 驅動程式不動作 -> 於是問題解決。
<item>輸入 exit 以繼續啟動程序
</enum>
<p>如果您想要使用您的序列埠,您需要修改
<tt>/usr/src/sys/i386/isa/sio.c</tt>,在該檔中找出 <tt/0x2e8/ 這個字串
移除這個字串及它前面的逗號(保留後面的),然後重新編譯一個新的 kernel
<p>就算使用了上面這些方法X Window 仍然有可能無法順利執行。有些新的
ATI Mach 64 顯示卡(特別是 ATI Mach Xpression無法在目前版本的
<tt/XFree86/ 上正常工作;啟動 X Window 時螢幕變黑,或是會有奇怪的問題
發生。您可以到 <url url="http://www.xfree86.org" name="XFree86 的網站">
找到 new beta release 這個連結(link),來取得 X-server 的 beta 版,它的
相容情形應該就比較好了。您需要取得下列這些檔案:
<p><tt>AccelCardsBetaReportCardsDevicesFILESREADME.ati
README.FreeBSDREADME.Mach64RELNOTESVGADriver.Doc
X312BMa64.tgz</tt>
<p>以這些檔案取代您原有的舊檔案,然後切記再跑 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"
name="xf86config"> 一遍。
<sect1>
<heading>
我有 128 MB 的 RAM但是系統只用其中的 64MB
<label id="reallybigram">
</heading>
<p>因為 FreeBSD 是使用呼叫 BIOS 來取得記憶體大小的方法,因此它只能
偵測到 16 bits 位元長度的 KByte 大小 (65535 KBytes = 64MB)
(或者更少..。有些 BIOS 將最高記憶體大小限為只有 16MB)
如果您擁有 64MB 以上的 RAMFreeBSD 會嘗試去偵測出它,但是有可能
會失敗。
<p>要解決這個問題,您需要使用下面所提的 kernel 設定選項。
雖然有方法可以從 BIOS 中取得記憶體的完整資訊,但是目前我們在
bootblock 中並沒有多餘的空間來做這件事。當某天 bootblock 空間
不足的情形獲得解決時,我們將會使用 BIOS 的延伸功能來取得記憶
體的完整資訊...但現在我們將它放在 kernel 設定選項中。
<tt>
options "MAXMEM=&lt;n>"
</tt>
<p><tt/n/ 是指您的記憶體大小,以 KB 為單位。以一台有 128MB RAM 的
機器來說,您可使用 <tt/131072/ 這個數字。
<sect1>
<heading>FreeBSD 2.0 因為 ``kmem_map too small!'' 而發生 panic</heading>
<p><tt /注意/ 這個訊息也有可能是 ``mb_map too small!''
<p>這個 panic 是表示系統用光了給網路緩衝區的所有的虛擬記憶體 (特
別是 mbuf clusters)。您可以增加給 mbuf clusters 的 VM 的數量,
只要加入:
<p><tt>options "NMBCLUSTERS=&lt;n>"</tt>
<p>在您的 kernel 設定檔中,&lt;n&gt; 是一個在 512-4096 間的數字,
依您想提供多少同時的 TCP 連接數目多寡而定。我會建議試試 2048 -
這數字應該可以完全避免這個 panic 了。您可以執行:
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?netstat"
name="netstat -m"> 來監看有多少 mbuf clusters
在系統上正被 配置/使用。NMBCLUSTERS 的數值內定為
<tt/512 + MAXUSERS * 16/。
<sect1>
<heading>用新 kernel 開機時,出現 ``CMAP busy panic'' 這個錯誤訊息</heading>
<p>用來偵測過期 <tt>/var/db/kvm_*.db</tt> 檔案的機制偶爾會"出鎚"
而使用一個含不正確資料的檔案有時就會導致 panic。
<p>如果發生了這個問題,請重新開機,進入單使用者模式,然後執行:
<verb>
rm /var/db/kvm_*.db
</verb>
<sect1>
<heading>ahc0: brkadrint Illegal Host Access at seqaddr 0x0</heading>
<p>這是一個和 Ultrastor SCSI 控制卡有關的衝突
<p>在開機時,進入 kernel 設定選單
取消 <htmlurl url="http://www.freebsd.org/cgi/man.cgi?uha(4)"
name="uha0">,它是造成這個問題的原因
<sect1>
<heading>Sendmail 一直抱怨 ``mail loops back to myself''</heading>
<p>這個問題在 sendmail 的 FAQ 中是這樣回答的:-
<verb>
* 我一直收到有關 "Local configuration error" 的信件,例如:
553 relay.domain.net config error: mail loops back to myself
554 <user@domain.net>... Local configuration error
我要如何解決這個問題?
您利用 MX 設定,讓要寄到某 domain (如: domain.net) 的信件,
寄到您所指定的機器 (在這個例子中為 relay.domain.net),但是這
部機器並未被設定接受 domain.net 的信件。把 domain.net 加到
/etc/sendmail.cw 中 (如果您有使用 FEATURE(use_cw_file)) 或是
在 sendmail.cf 中加入 "Cw domain.net"
</verb>
<p><url
url="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq"
name="sendmail FAQ"> 現在已不再隨著 sendmail "出貨"。
它目前是被定期的發表在:
<url url="news:comp.mail.sendmail" name="comp.mail.sendmail">
<url url="news:comp.mail.misc" name="comp.mail.misc">
<url url="news:comp.mail.smail" name="comp.mail.smail">
<url url="news:comp.answers" name="comp.answers">,和
<url url="news:news.answers" name="news.answers">。
您也可以寄一封 Email 到
<url url="mailto:mail-server@rtfm.mit.edu"
name="mail-server@rtfm.mit.edu">,然後在信件內文中寫上
"send usenet/news.answers/mail/sendmail-faq" 這個指令
以取得這份文件。
<sect1>
<heading>在遠端機器(remote machine)執行全螢幕的軟體時,有不正常的情形!
</heading>
<p>或許遠端機器並非將您的終端機形態設為 FreeBSD console 所用
的 <tt>cons25</tt>,而是設為其它種類。
<p>這兒有幾個解決這個問題的方法:
<itemize>
<item>在 logging 進遠端機器後,更改您的 shell 變數 TERM 為
<tt>ansi</tt> 或是 <tt>sco</tt>。
<item>在 local 端用一些可以模擬 VT100 的模擬器,如 <htmlurl
url="http://www.freebsd.org/cgi/ports.cgi?screen-" name="screen">。
<tt>screen</tt> 提供您在一個 terminal 裏同時跑好幾個 session
的能力,而且它本身也是一個相當好的軟體。
<item>在遠端機器的終端機資料庫(terminal database)中加入
<tt>cons25</tt> 的資料。
<item>啟動 X 然後利用 <tt>xterm</tt> 來 login 進遠端的機器。
</itemize>
<sect1>
<heading>我的機器一直顯示 "calcru: negative time..."</heading>
<p>跟中斷 interrupt 有關的不同硬體 與/或 軟體的搭配都有可能造成
這個問題。這有可能是 bug 或是某個裝置本身的問題。在平行埠上使用
大的 MTU 來作 TCP/IP 傳輸可以重現這個問題。若是圖形加速卡造成這個
問題的話,您應該先檢查卡的中斷設定。
<p>這個問題的邊際效應是會造成有些 process 出現
"SIGXCPU exceeded cpu time limit" 的訊息,而不正常中斷
<p>若版本是 1998 年 11 月 29 日以後的 FreeBSD 3.0,如果這個
問題一直無法以其他方法解決,就只能設定 sysctl 變數:
<verb>
sysctl -w kern.timecounter.method=1
</verb>
<p> 這樣會對校能有些影響,但是若考慮到這個問題帶來的後果,這樣做是值
得的。如果這個問題還是存在的話,將 sysctl 那個值依然設為 1然後
增加 kernel 設定檔中 "NTIMECOUNTER" 這個選項的數值。如果您將
"NTIMECOUNTER" 增加到 20 依然無法解決這個問題,那麼您機器上的中斷
已經多到無法保持穩定的狀態了。
</sect>

336
zh_TW.Big5/FAQ/x.sgml Normal file
View file

@ -0,0 +1,336 @@
<!-- $Id: x.sgml,v 1.1.1.1 1999-01-30 23:20:34 vanilla Exp $ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by ijliao@dragon2.net -->
<!-- English Version: 1.6 -->
<sect>
<heading>X Window System 及 Virtual Consoles<label id="x"></heading>
<sect1>
<heading>我想要執行 X , 我該怎麼做 ?</heading>
<p>最簡單的方法就是在安裝系統的時候一併安裝。
<p>然後看看 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"
name="xf86config 的 man page"> , 這個程式可以幫你設定 XFree86(tm) 使它
能夠使用你的顯示卡/滑鼠 等週邊。
<p>你或許也想試試看 Xaccel server , 它可以以非常合理價格取得。詳情請看
<ref id="xig" name="Xi Graphics"> 這一段。
<sect1>
<heading>為什麼我不能在 X 裡使用滑鼠 ?<label id="x-and-moused"></heading>
<p>如果你用的是 syscons (內定的 console 驅動程式) 的話, 你可以經由設定
FreeBSD 來讓它支援在每個 virtual console 使用滑鼠。為了避免和 X 產生衝
突, syscons 使用了一個叫做 "<tt>/dev/sysmouse</tt>" 的虛擬裝置。所有滑
鼠產生的 event 都會利用 MouseSystems 這個協定來傳到 sysmouse 這個裝置
。如果你希望在一個或以上的 virtual console 上使用滑鼠, <bf/並且/ 能夠
使用 X 的話, 我們建議你這樣設定 :
<verb>
/etc/rc.conf:
moused_type=ps/2 # or whatever your actual type is
moused_port=/dev/psm0 # or whatever your real port is
moused_flags=
/etc/XF86Config
Section Pointer
Protocol "MouseSystems"
Device "/dev/sysmouse"
.....
</verb>
<p>有些人比較喜歡在設定 X 的時候用 "<tt>/dev/mouse</tt>" 這個裝置。如
果你要讓它能夠正常工作的話, 你就必須把 "<tt>/dev/mouse</tt>" 連結到
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?sysmouse"
name="/dev/sysmouse"> :
<verb>
# cd /dev
# rm -f mouse
# ln -s sysmouse mouse
</verb>
<sect1>
<heading>X Window 的選單和對話框不能正常運作 !</heading>
<p>把 Num Lock 關掉試試。
<p>如果你的 Num Lock 在開機時的預設值是開著的話, 你必須把下列這行放到
<tt/XF86Config/ 設定檔中的 "<tt/Keyboard/" 部份。
<verb>
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock
</verb>
<sect1>
<heading>什麼是 virtual console ? 我要怎麼做才能用多一點 ?</heading>
<p>簡單來說, virtual console 就是可以讓你不必做太多複雜的設定如使用網
路或執行 X , 而在同一臺機器上同時做好幾件事的方法。
<p>當啟動系統並顯示完所有開機訊息之後, 你就會在螢幕上看到一個 login 的
提示符號。在這個時候你就可以輸入你的 login name 以及 password , 然後就
可以在第一個 virtual console 上開始工作了 (或者開始玩 !) 。
<p>在某些情況下, 你可能會想要作其他的工作, 例如說是看看你正在執行的程
式的說明文件, 或是當你在 FTP 傳輸的等待時間中看看你的郵件。你只需要按
Alt-F2 (按住 Alt 鍵不放, 並按下 F2 鍵) , 然後你就會在第二個 "virtual
console" 上看到一個 login 提示符號 ! 當你想要回到原來的工作時, 請按
Alt-F1。
<p>FreeBSD 在安裝時的預設值是使用三個 virtual console , 你可以用
Alt-F1, Alt-F2, 以及 Alt-F3 在它們之間做切換。
如果你想要多一點 virtual console 的話, 你只需要編輯 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> 這個檔
, 在 "Virtual terminals" 這個註解後面加入 "<tt/ttyv4/" 到 "<tt/ttyvc/"
的欄位 :
<verb>
# Edit the existing entry for ttyv3 in /etc/ttys and change
# "off" to "on".
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/libexec/getty Pc" cons25 on secure
ttyv9 "/usr/libexec/getty Pc" cons25 on secure
ttyva "/usr/libexec/getty Pc" cons25 on secure
ttyvb "/usr/libexec/getty Pc" cons25 on secure
</verb>
<p>你想用幾個就設幾個。你設越多 virtual terminal , 它們就用掉越多系統
資源 ; 如果你只有不到 8MB 的記憶體的話, 這影響就大了。你可能也會想把
"<tt/secure/" 換成 "<tt/insecure/" 。
<p><bf/IMPORTANT NOTE/ 如果你想要執行 X 的話, 你 <bf/必須/ 為它保留 (
或關掉) 至少一個 virtual terminal 。這就是說, 如果你想在按十二個 Alt
功能鍵時都有 login 提示符號, 而且又在同一部電腦上也想執行 X 的話, 那麼
這真是太不幸了 - 你只能用十一個。
<p>取消一個 console 最簡單的方法就是把它關掉。舉例來說, 如果你像上面講
的一樣設定了全部的 12 個 terminal 並且想要執行 X , 你必需把 virtual
terminal 12 從 :
<verb>
ttyvb "/usr/libexec/getty Pc" cons25 on secure
</verb>
<p>設成 :
<verb>
ttyvb "/usr/libexec/getty Pc" cons25 off secure
</verb>
<p>如果你的鍵盤只有 10 個功能鍵的話, 你就要改成這樣 :
<verb>
ttyv9 "/usr/libexec/getty Pc" cons25 off secure
ttyva "/usr/libexec/getty Pc" cons25 off secure
ttyvb "/usr/libexec/getty Pc" cons25 off secure
</verb>
<p>(你也可以直接把這幾行砍掉。)
<p>一旦你改了 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?ttys" name="/etc/ttys"> ,
下一個步驟就是要確定你有足夠的 virtual terminal 裝置。最簡單的方法就是 :
<verb>
# cd /dev
# ./MAKEDEV vty12 # For 12 devices
</verb>
<p>再過來, 想要啟動這些 virtual console 最簡單 (也是最乾淨) 的做法就是
重開機。然後, 如果你不想重開機的話, 你可以把 X Window 關掉, 然後用
<tt/root/ 的身份執行下列指令 :
<verb>
kill -HUP 1
</verb>
<p>當你執行這個命令前, 你一定要完全把 X Window 關掉。如果你不這麼做的
話, 你的系統可能會在你執行 kill 命令後出現當掉或鎖死的情況。
<sect1>
<heading>我要怎麼從 X 切換到 virtual console ?</heading>
<p>如果你螢幕上正在顯示 X Window 的話, 你可以用 Ctrl-Alt-F1 等按鍵來切
換到 virtual console 。注意, 一旦你從 X Window 切換到任一個 virtual
console 之後, 你就可以只用 Alt- 功能鍵來切換到其他 virtual terminal 或
是切回 X Window 。你不必同時按著 Ctrl 鍵。如果在比較舊的版本中你用
Ctrl 鍵來切回 X Window 的話, 你會發現你的文字螢幕被卡在 "control-lock"
模式下。你只需要再按一次控制鍵就可以恢復原狀。
<sect1>
<heading>我要怎麼做才能在開機時啟動 XDM ?</heading>
<p>有兩種方法可以啟動 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm"
name="xdm"> 。一種方法是從
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?ttys"
name="/etc/ttys"> 來啟動, 可以參考 man page 中的範例 ; 另一種方法是在
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?rc" name="rc.local">
執行 xdm , 或是在 <tt>/usr/local/etc/rc.d</tt> 放一個 <tt/X.sh/ 。這兩
種方法都是合法的, 如果你試某一種方法無效的話, 你可以試試另外一種。這兩
種方法的結果是一樣的 : X 會顯示一個圖形化的 login: 提示。
<p>用 ttys 的方法的優點在於說明了 X 在啟動以及在 logout 後重新啟動時,
到底 X 用的是那個 vty 。而 rc.local 的方法則是在當啟動 X 出了問題時, 你
可以把 xdm 殺掉來解決。
<p>如果是用 rc.local 的方法的話, 在執行 <tt/xdm/ 時你不能加任何參數 (
也就是跑成 daemon) 。
<p>前一版的 FAQ 說你必須把你想讓 X 使用的 <tt/vt/ 加到
<tt>/usr/X11R6/lib/X11/xdm/Xservers</tt> 檔裡去。這是不必要的 : X 會自
動使用第一個找到的可用 <tt/vt/ 。
<sect1>
<heading>當我執行 xconsole 時, 發生了 "Couldn't open console" 的錯誤</heading>
<p>如果你是用 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=startx"
name="startx"> 來啟動 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=X"
name="X"> 的話, /dev/console 的權限並不會改變, 結果就是 <htmlurl
url="http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xterm"
name="xterm -C"> 和 <htmlurl url=
"http://www.freebsd.org/cgi/man.cgi?manpath=xfree86&amp;query=xconsole"
name="xconsole"> 這類的程式無法正常執行。
<p>這一切的問題, 都是因為 console 的權限是採用系統預設值。在一個多使用
者的系統裡, 我們不希望每個使用者都可以直接寫入系統 console 。如果是使
用者是從機器的 VTY 直接 login 的話, 那麼
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?fbtab" name="fbtab">
可以解決這類的問題。
<p>簡單地說, 請確保
<htmlurl url="http://www.freebsd.org/cgi/man.cgi?fbtab(5)"
name="/etc/fbtab"> 這個檔案中的這一行沒有被註解掉 :
<verb>
/dev/ttyv0 0600 /dev/console
</verb>
這一行設定的存在可以確保從 <tt>/dev/ttyv0</tt> 登入的使用者可以控制
console 。
<sect1>
<heading>我的 PS/2 滑鼠在 X 中有點不正常</heading>
<p>你的滑鼠和你的滑鼠驅動程式可能存在有不同步的現象。
<p>在 2.2.5 以及更早的系統裡, 從 X 切到 virtual terminal 然後再切回來
就可以使它們重新做同步的動作。如果這個問題常常發生的話, 你可以在你的
核心設定檔中加入下面這個選項然後重新編譯 :
<verb>
options PSM_CHECKSYNC
</verb>
<p>如果你沒有建立核心的經驗, 請看
<ref id="make-kernel" name="建立核心"> 這一節。
<p>加上這個選項以後, 滑鼠和滑鼠驅動程式間的同步問題應該就比較不會出現
了。如果這個問題仍然存在的話, 在移動滑鼠時按按滑鼠按鍵可以使滑鼠和滑
鼠驅動程式重新做同步的動作。
<p>該注意的是這個選項並不是對每一個系統都有效, 它可能會讓接在 PS/2 滑
鼠位置的 ALPS GlidePoint 裝置失去 "tap" 這項功能。
<p>在 2.2.6 及其後的版本, 同步的確認已經有了較好的解決辦法, 而且這些都
已經是 PS/2 滑鼠驅動程式的標準了。這個方法也可以在 GlidePoint 上正常工
作。 (因為確認的程式碼已經成為一個標準功能, 所以在這些版本中我們不在提
供 PSM_CHECKSYNC 的選項了。) 不過在極少數的案例中, 這些驅動程式會誤報
同步性錯誤, 然後你就會看到這樣的核心訊息 :
<verb>
psmintr: out of sync (xxxx != yyyy)
</verb>
然後你就會發現你的滑鼠不能正常運作了。
<p>如果你發生了這樣的狀況, 你必須藉由把 PS/2 滑鼠驅動程式的 flag 設成
0x100 來把同步確認的程式碼給取消掉。然後在開機提示符號時用
"<tt>-c</tt>" 選項來進入 <em>UserConfig</em> :
<verb>
boot: -c
</verb>
然後, 在 <em>UserConfig</em> 的命令列中鍵入 :
<verb>
UserConfig> flags psm0 0x100
UserConfig> quit
</verb>
<sect1>
<heading>我的 PS/2 滑鼠不能透過 MouseSystem 來運作</heading>
<p>有一些報告指出某些廠牌的 PS/2 滑鼠只能在 "高解析度" 狀態下才能運作
。如果不是的話, 滑鼠游標會常常跑到螢幕的左上角去。
<p>非常不幸的, 這個問題在 2.0.X 和 2.1.X 下是無解的。在 2.2 到 2.2.5
版, 你可以對 <tt>/sys/i386/isa/psm.c</tt> 使用下列 patch 然後重建你的
核心。如果你沒有建立核心的經驗, 請看
<ref id="make-kernel" name="building a kernel"> 這節。
<verb>
diff -u psm.c.orig psm.c
@@ -766,6 +766,8 @@
if (verbose >= 2)
log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
unit, i);
+ set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);
+
#if 0
set_mouse_scaling(sc->kbdc); /* 1:1 scaling */
set_mouse_mode(sc->kbdc); /* stream mode */
</verb>
<p>在 2.2.6 及以後的版本, 在 PS/2 滑鼠驅動程式中設定 0x04 的 flag 會
把滑鼠設成高解析度模式。在開機提示符號時用 "<tt>-c</tt>" 選項來進入
<em>UserConfig</em> :
<verb>
boot: -c
</verb>
然後, 在 <em>UserConfig</em> 的命令列中鍵入 :
<verb>
UserConfig> flags psm0 0x04
UserConfig> quit
</verb>
<p>前一節有提到另一個可能導致滑鼠問題的原因。
<sect1>
<heading>當我建立 X 程式時, <tt/imake/ 說它找不到 <tt/Imake.tmpl/ 。它在那 ?
</heading>
<p>Imake.tmpl 是 Imake 套件的一部份, Imake 是標準的建立 X 程式的工具。
Imake.tmpl 和其他數個 header file 一樣是建立 X 程式的必要檔案, 你可以在
X prog distribution 中找到它們。你可以用 sysinstall 來安裝或是直接從
X distribution 中手動安裝。
</sect1>
<sect1>
<heading>我要怎麼做才能設定左撇子用的滑鼠 ?
</heading>
<p>在你的 .xinitrc 或是 .xsession 中執行
<tt/ xmodmap -e "pointer = 3 2 1"/ 的指令。
</p>
</sect1>
</sect>