doc/zh_TW.Big5/FAQ/x.sgml
1999-09-06 06:53:43 +00:00

406 lines
14 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- $FreeBSD$ -->
<!-- The FreeBSD Documentation Project -->
<!-- Translate into Chinese by ijliao@dragon2.net -->
<!-- English Version: 1.10 -->
<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="metrox"
name="Metro Link"> 或是 <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-F1Alt-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 在啟動時到底是用那個 vty並且將
logout 時重新啟動 X server 的責任丟給 init。 rc.local 的方法則是在當啟
動 X 出了問題時,可以很輕鬆地把 xdm 殺掉來解決問題。
<p>如果是用 rc.local 的方法,在執行 <tt/xdm/ 時您不能加任何參數(也就
是跑成 daemon。必須在 getty 執行後才能啟動 xdm否則 getty 和 xdm 會
互相衝突而鎖住 console。最好的方式是在 script 中加個 sleep讓它暫停
10 秒鐘左右,接著才執行 xdm。
<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",
uniti);
+ set_mouse_resolution(sc->kbdcPSMD_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>
<sect1>
<heading>要如何安裝 splash 圖形顯示程式?那裡可以找得到呢?
</heading>
<p>就在發行 FreeBSD 3.1 之前,我們加進了在開機時顯示 &quot;splash&quot;
圖形的新功能。目前用來顯示在螢幕上的檔案必須是 256 色的點矩陣圖形
<tt>*.BMP</tt> 、或 ZSoft PCX<tt>*.PCX</tt> 的格式。除此之外,解析
度也必須在 320x200 以下,才能和標準 VGA 顯示卡搭配使用。如果您編譯
kernel 時有加入 VESA 支援,那麼最大解析度可以到 1024x768。注意 VESA 的
支援需要加入 <tt>VM86</tt> 這個 kernel 選項。VESA 支援實際上可以在編譯
kernel 時加入 <tt>VESA</tt> 選項、或載入 VESA 的 kld module 來達成。
<p>您要修改控制 FreeBSD 開機步驟的設定檔,才能使用 splash 顯示圖形的功
能。設定檔在發行 FreeBSD 3.2 前有些更動,所以現在有兩個方法可以載入
splash 的功能:
<itemize>
<item>FreeBSD 3.1
<p>先選出用來顯示在螢幕上的圖形3.1 版只支援 Windows 的點矩陣格式。
選好了您要的圖檔後,將它拷到 <tt>/boot/splash.bmp</tt>。接著把下面幾
行加入 <tt>/boot/loader.rc</tt> 中:
<verb>
load kernel
load -t splash_image_data /boot/splash.bmp
load splash_bmp
autoboot
</verb>
</item>
<item>FreeBSD 3.2 以後的版本
<p>除了加入對 PCX 檔案的支援外FreeBSD 3.2 也改進了開機程序的設定
方式。如果您願意的話,可以用上述 FreeBSD 3.1 的方法,將
<tt>splash_bmp</tt> 換成 <tt>splash_pcx</tt> 來載入 PCX 檔案即可。
如果想用新的設定方式,您的 <tt>/boot/loader.rc</tt> 必須包括這幾行:
<verb>
include /boot/loader.4th
start
</verb>
<p>並且 <tt>/boot/loader.conf</tt> 也要包括這幾行:
<verb>
splash_bmp_load="YES"
bitmap_load="YES"
</verb>
<p>這是假設您用 <tt>/boot/splash.bmp</tt> 來當作 splash 的螢幕顯
示。如果想用 PCX 的檔案,將它拷成 <tt>/boot/splash.pcx</tt>,如上
述做出 <tt>/boot/loader.rc</tt>,再將這幾行加到
<tt>/boot/loader.conf</tt> 中:
<verb>
splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"
</verb>
</item>
</itemize>
<p>現在就只剩下 splash 用來顯示的圖檔,您可以在 <htmlurl
url="http://www.cslab.vt.edu/~jobaldwi/splash/"
name="http://www.cslab.vt.edu/~jobaldwi/splash/"> 找到各種樣品.</p>
</sect1>
</sect>