最簡單的方法就是在安裝系統的時候一併安裝。
然後看看 xf86config 的 man page ,這個程式可以幫您設定 XFree86(tm) 使它 能夠使用您的顯示卡/滑鼠等週邊。
您或許也想試試看 Xaccel server。詳情請看 Metro Link 或是 Xi Graphics 這一段。
如果您用的是 syscons (內定的 console 驅動程式) 的話,您可以經由設定 FreeBSD 來讓它支援在每個 virtual console 使用滑鼠。為了避免和 X 產生衝 突,syscons 使用了一個叫做``/dev/sysmouse''的虛擬裝置。所有滑 鼠產生的 event 都會利用 MouseSystems 這個協定來傳到 sysmouse 這個裝置 。如果您希望在一個或以上的 virtual console 上使用滑鼠,並且 能夠 使用 X 的話,我們建議您這樣設定:
/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"
.....
有些人比較喜歡在設定 X 的時候用 "/dev/mouse" 這個裝置。如 果您要讓它能夠正常工作的話,您就必須把 "/dev/mouse" 連結到 /dev/sysmouse:
# cd /dev
# rm -f mouse
# ln -s sysmouse mouse
把 Num Lock 關掉試試。
如果您的 Num Lock 在開機時的預設值是開著的話,您必須把下列這行放到 XF86Config 設定檔中的 "Keyboard" 部份。
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock
簡單來說,virtual console 就是可以讓您不必做太多複雜的設定如使用網 路或執行 X ,而在同一臺機器上同時做好幾件事的方法。
當啟動系統並顯示完所有開機訊息之後,您就會在螢幕上看到一個 login 的 提示符號。在這個時候您就可以輸入您的 login name 以及 password ,然後就 可以在第一個 virtual console 上開始工作了 (或者開始玩!) 。
在某些情況下,您可能會想要作其他的工作,例如說是看看您正在執行的程 式的說明文件,或是當您在 FTP 傳輸的等待時間中看看您的郵件。您只需要按 Alt-F2 (按住 Alt 鍵不放,並按下 F2 鍵) ,然後您就會在第二個 "virtual console" 上看到一個 login 提示符號!當您想要回到原來的工作時,請按 Alt-F1。
FreeBSD 在安裝時的預設值是使用三個 virtual console ,您可以用 Alt-F1,Alt-F2,以及 Alt-F3 在它們之間做切換。
如果您想要多一點 virtual console 的話,您只需要編輯 /etc/ttys 這個檔 ,在 "Virtual terminals" 這個註解後面加入 "ttyv4" 到 "ttyvc" 的欄位:
# 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
您想用幾個就設幾個。您設越多 virtual terminal ,它們就用掉越多系統 資源;如果您只有不到 8MB 的記憶體的話,這影響就大了。您可能也會想把 "secure" 換成 "insecure" 。
IMPORTANT NOTE 如果您想要執行 X 的話,您 必須 為它保留 ( 或關掉) 至少一個 virtual terminal 。這就是說,如果您想在按十二個 Alt 功能鍵時都有 login 提示符號,而且又在同一部電腦上也想執行 X 的話,那麼 這真是太不幸了 - 您只能用十一個。
取消一個 console 最簡單的方法就是把它關掉。舉例來說,如果您像上面講 的一樣設定了全部的 12 個 terminal 並且想要執行 X ,您必需把 virtual terminal 12 從:
ttyvb "/usr/libexec/getty Pc" cons25 on secure
設成:
ttyvb "/usr/libexec/getty Pc" cons25 off secure
如果您的鍵盤只有 10 個功能鍵的話,您就要改成這樣:
ttyv9 "/usr/libexec/getty Pc" cons25 off secure
ttyva "/usr/libexec/getty Pc" cons25 off secure
ttyvb "/usr/libexec/getty Pc" cons25 off secure
(您也可以直接把這幾行砍掉。)
一旦您改了 /etc/ttys, 下一個步驟就是要確定您有足夠的 virtual terminal 裝置。最簡單的方法就是:
# cd /dev
# ./MAKEDEV vty12 # For 12 devices
再過來,想要啟動這些 virtual console 最簡單 (也是最乾淨) 的做法就是 重開機。然後,如果您不想重開機的話,您可以把 X Window 關掉,然後用 root 的身份執行下列指令:
kill -HUP 1
當您執行這個命令前,您一定要完全把 X Window 關掉。如果您不這麼做的 話,您的系統可能會在您執行 kill 命令後出現當掉或鎖死的情況。
如果您螢幕上正在顯示 X Window 的話,您可以用 Ctrl-Alt-F1 等按鍵來切 換到 virtual console 。注意,一旦您從 X Window 切換到任一個 virtual console 之後,您就可以只用 Alt- 功能鍵來切換到其他 virtual terminal 或 是切回 X Window 。您不必同時按著 Ctrl 鍵。如果在比較舊的版本中您用 Ctrl 鍵來切回 X Window 的話,您會發現您的文字螢幕被卡在 "control-lock" 模式下。您只需要再按一次控制鍵就可以恢復原狀。
有兩種方法可以啟動 xdm 。一種方法是從 /etc/ttys 來啟動,可以參考 man page 中的範例;另一種方法是在 rc.local 執行 xdm ,或是在 /usr/local/etc/rc.d 放一個 X.sh 。這兩 種方法都是合法的,如果您試某一種方法無效的話,您可以試試另外一種。這兩 種方法的結果是一樣的:X 會顯示一個圖形化的 login: 提示。
用 ttys 的方法的優點,在於指明了 X 在啟動時到底是用那個 vty,並且將 logout 時重新啟動 X server 的責任丟給 init。 rc.local 的方法則是在當啟 動 X 出了問題時,可以很輕鬆地把 xdm 殺掉來解決問題。
如果是用 rc.local 的方法,在執行 xdm 時您不能加任何參數(也就 是跑成 daemon)。必須在 getty 執行後才能啟動 xdm,否則 getty 和 xdm 會 互相衝突而鎖住 console。最好的方式是在 script 中加個 sleep,讓它暫停 10 秒鐘左右,接著才執行 xdm。
前一版的 FAQ 說您必須把您想讓 X 使用的 vt 加到 /usr/X11R6/lib/X11/xdm/Xservers 檔裡去。這是不必要的:X 會自 動使用第一個找到的可用 vt 。
如果您是用 startx 來啟動 X 的話,/dev/console 的權限並不會改變,結果就是 xterm -C 和 xconsole 這類的程式無法正常執行。
這一切的問題,都是因為 console 的權限是採用系統預設值。在一個多使用 者的系統裡,我們不希望每個使用者都可以直接寫入系統 console 。如果使 用者是從機器的 VTY 直接 login 的話,那麼 fbtab 可以解決這類的問題。
簡單地說,請確保 /etc/fbtab 這個檔案中的這一行沒有被註解掉:
/dev/ttyv0 0600 /dev/console
這一行設定的存在可以確保從 /dev/ttyv0 登入的使用者可以控制 console 。
您的滑鼠和您的滑鼠驅動程式可能存在有不同步的現象。
在 2.2.5 以及更早的系統裡,從 X 切到 virtual terminal 然後再切回來 就可以使它們重新做同步的動作。如果這個問題常常發生的話,您可以在您的 核心設定檔中加入下面這個選項然後重新編譯:
options PSM_CHECKSYNC
如果您沒有建立核心程式的經驗,請看 自訂核心 這一節。
加上這個選項以後,滑鼠和滑鼠驅動程式間的同步問題應該就比較不會出現 了。如果這個問題仍然存在的話,在移動滑鼠時按按滑鼠按鍵可以使滑鼠和滑 鼠驅動程式重新做同步的動作。
該注意的是這個選項並不是對每一個系統都有效,它可能會讓接在 PS/2 滑 鼠位置的 ALPS GlidePoint 裝置失去 "tap" 這項功能。
在 2.2.6 及其後的版本,同步的確認已經有了較好的解決辦法,而且這些都 已經是 PS/2 滑鼠驅動程式的標準了。這個方法也可以在 GlidePoint 上正常工 作。 (因為確認的程式碼已經成為一個標準功能,所以在這些版本中我們不在提 供 PSM_CHECKSYNC 的選項了。) 不過在極少數的案例中,這些驅動程式會誤報 同步性錯誤,然後您就會看到這樣的核心訊息:
psmintr: out of sync (xxxx != yyyy)
然後您就會發現您的滑鼠不能正常運作了。
如果您發生了這樣的狀況,您必須藉由把 PS/2 滑鼠驅動程式的 flag 設成 0x100 來把同步確認的程式碼給取消掉。然後在開機提示符號時用 "-c" 選項來進入 UserConfig:
boot: -c
然後,在 UserConfig 的命令列中鍵入:
UserConfig> flags psm0 0x100
UserConfig> quit
有一些報告指出某些廠牌的 PS/2 滑鼠只能在 "高解析度" 狀態下才能運作 。如果不是的話,滑鼠游標會常常跑到螢幕的左上角去。
非常不幸的,這個問題在 2.0.X 和 2.1.X 下是無解的。在 2.2 到 2.2.5 版,您可以對 /sys/i386/isa/psm.c 使用下列 patch 然後重建您的 核心。如果您沒有建立核心程式的經驗,請看 自訂核心 這節。
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 */
在 2.2.6 及以後的版本,在 PS/2 滑鼠驅動程式中設定 0x04 的 flag 會 把滑鼠設成高解析度模式。在開機提示符號時用 "-c" 選項來進入 UserConfig:
boot: -c
然後,在 UserConfig 的命令列中鍵入:
UserConfig> flags psm0 0x04
UserConfig> quit
前一節有提到另一個可能導致滑鼠問題的原因。
Imake.tmpl 是 Imake 套件的一部份,Imake 是標準的建立 X 程式的工具。 Imake.tmpl 和其他數個 header file 一樣是建立 X 程式的必要檔案,您可以在 X prog distribution 中找到它們。您可以用 sysinstall 來安裝或是直接從 X distribution 中手動安裝。
就在發行 FreeBSD 3.1 之前,我們加進了在開機時顯示 "splash" 圖形的新功能。目前用來顯示在螢幕上的檔案必須是 256 色的點矩陣圖形 (*.BMP 、或 ZSoft PCX(*.PCX 的格式。除此之外,解析 度也必須在 320x200 以下,才能和標準 VGA 顯示卡搭配使用。如果您編譯 kernel 時有加入 VESA 支援,那麼最大解析度可以到 1024x768。注意 VESA 的 支援需要加入 VM86 這個 kernel 選項。VESA 支援實際上可以在編譯 kernel 時加入 VESA 選項、或載入 VESA 的 kld module 來達成。
您要修改控制 FreeBSD 開機步驟的設定檔,才能使用 splash 顯示圖形的功 能。設定檔在發行 FreeBSD 3.2 前有些更動,所以現在有兩個方法可以載入 splash 的功能:
FreeBSD 3.1
先選出用來顯示在螢幕上的圖形,3.1 版只支援 Windows 的點矩陣格式。 選好了您要的圖檔後,將它拷到 /boot/splash.bmp。接著把下面幾 行加入 /boot/loader.rc 中:
load kernel
load -t splash_image_data /boot/splash.bmp
load splash_bmp
autoboot
FreeBSD 3.2 以後的版本
除了加入對 PCX 檔案的支援外,FreeBSD 3.2 也改進了開機程序的設定 方式。如果您願意的話,可以用上述 FreeBSD 3.1 的方法,將 splash_bmp 換成 splash_pcx 來載入 PCX 檔案即可。 如果想用新的設定方式,您的 /boot/loader.rc 必須包括這幾行:
include /boot/loader.4th
start
並且 /boot/loader.conf 也要包括這幾行:
splash_bmp_load="YES"
bitmap_load="YES"
這是假設您用 /boot/splash.bmp 來當作 splash 的螢幕顯 示。如果想用 PCX 的檔案,將它拷成 /boot/splash.pcx,如上 述做出 /boot/loader.rc,再將這幾行加到 /boot/loader.conf 中:
splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"
現在就只剩下 splash 用來顯示的圖檔,您可以在 http://www.cslab.vt.edu/~jobaldwi/splash/ 找到各種樣品.