網頁

2009年1月3日 星期六

linux display problem in Virtual Server 2005 R2

如何在 Microsoft Virtual Server 2005 R2上安裝 fedora 10 中提到裝安完後系統重開機後,在遠端控制的畫面中,整個 terminal 顯示都有亂紋出現…



若你試過 noreplace-paravirt 這個參數也是沒用…




會出現這個問題其實是 virtual server console 顯示的問題。因為 virtual server 至多只能顯示 16 bit color (也就是 xorg.conf 中 DefaultDepth 只能設成 16 若設成 24 或更大就不行了。)

所以,只要把開機後顯示改成 16 bit color 或以下就應不會有問題了!

要如何處理呢?

修改 /boot/grub/grub.conf

找到像下面這樣的段落
title Fedora (2.6.27.9-159.fc10.i686)
root (hd0,0)
kernel /vmlinuz-2.6.27.9-159.fc10.i686 ro root=UUID=f4d5991b-39d3-4ba6-a31b-1aa50f3a3fb5 rhgb quiet splash
initrd /initrd-2.6.27.9-159.fc10.i686.img

在 kernel 那行最後加上 vga=785
kernel /vmlinuz-2.6.27.9-159.fc10.i686 ro root=UUID=f4d5991b-39d3-4ba6-a31b-1aa50f3a3fb5 rhgb quiet splash vga=785

grub 及 kernel 參數的修改可進一步參考 Grub 開機選項的說明

那個 785 是啥?
785 是由 vesafb modes table 中得來的,下表的 0x311 (16 進位)換算成 10 進位就是 785。所以, 785 就是代表解析度為 640x480 加上 16 bits colors.
Colours | 640x480 800x600 1024x768 
--------+--------------------------
8 bits | 0x301 0x303 0x305
16 bits | 0x311 0x314 0x317
24 bits | 0x312 0x315 0x318


下表是轉換成 10 進位的表,可自由取用。就將 vga 改成你要數值就可以。
Colours | 640x480 800x600 1024x768 
--------+--------------------------
8 bits | 769 771 773
16 bits | 785 788 791
24 bits | 786 789 792


你也可以看 HOWTO: Change bootup and console resolution 得到更詳細的說明。

重開機後…


看到沒這就是新的 console


告別舊的怪顯示…
\

這樣就結束了嗎?當然不是。
若你再裝了新的 kernel 那剛剛加的那個 vga=785 會不見。
所以,需要在 grub.conf 中再加上一行

#defoptions=quiet splash vga=785

注意前面的那個 # 不要拿掉!
那 kernel update 時,grub 就會自動把你要的參數加上!

1 則留言:

Kwong Pok 提到...

THANKS A LOT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!