2009年4月26日 星期日

[Study] Linux Graphic

安裝 ubuntu 9.04 後,發現畫面顯示的部份比原本預期的好很多,而在 xp 上並沒有這樣的表現,而且記憶體的使用上也更精簡,開完機記憶的使用約 256MB (原本打算多弄點 ram 來使用,看來可以省下一筆費用)。所以開始對畫面的顯示有點好奇,也想深入了結一下。所以開始我的 Graphic 學習之旅。

觀念文章,下面這些文章都是在 Debian Taiwan irc conference 的資料,主講人為 jserv,很精彩,對 Linux X11, OpenGL, 等有關 Graphic 的議題,有很深入的討論。建議花時間閱讀。
FreeDesktop.org 與 X.org 嶄新發展概況
FreeDesktop.org 與 X.org 嶄新發展概況(續集)
Xorg 嶄新的硬體加速與效能提昇機制
Xorg 嶄新的硬體加速與效能提昇機制 (續集)

The State of Linux Graphics

Framebuffer實現與應用 提到
但Framebuffer本身不具备任何运算数据的能力,就只好比是一个暂时存放水的水池.CPU将运算后的结果放到这个水池,水池再将结果流到显示器. 中间不会对数据做处理. 应用程序也可以直接读写这个水池的内容.在这种机制下,尽管Framebuffer需要真正的显卡驱动的支持,但所有显示任务都有CPU完成,因此CPU 负担很重.
framebuffer的设备文件一般是 /dev/fb0、/dev/fb1 等等

參考文件

2009年4月25日 星期六

Ubuntu 9.04 and Grub

最近寫 code 的感覺又會來了,索性在家裝起了ubuntu 9.04-rc1,整體感覺還不錯!
比起以前的 gentoo,FC,似乎親切許多。其實裝 Linux 的原因,只是想寫程式,因為真的太久沒有寫自己好玩的 code,都是被別人叫去玩 code。

加上最近的 Android & iPhone 的 sdk 都陸續的釋出,看起來的成熟度都還不錯,是可以開始寫寫屬於自己的程式了,不然老是在用別人提供的 source code 感覺很沒貢獻度。

因為家中的網路速度過慢,所以每次 apt-get 都很久,看來也要順便更新一下網路。

不過在安裝完後遇到一個小問題,就是 grub 沒辦法開到 xp。花了一點時間思考跟搜尋,知道了問題點。

原本硬碟配置
sda(hd0) -> XP (已經安裝很久)
sdb(hd1) -> no OS
sdc(hd2) -> Linux (剛剛安裝完)

grub 我安裝在 sdc 的 mbr 上面,然後 BIOS 設定從第三顆硬碟(Linux)開機。開到 grub 後,第三顆硬碟(sdc)變成(hd0),所以第一顆硬碟(sda)變成(hd1),第二顆硬碟(sdb)變成(hd2),如下
進入 grub
sdc(hd0)
sda(hd1)
sdb(hd2)

但是這時候 bios 的裡面還是:
sda(hd0)
sdb(hd1)
sdc(hd2)

所以 grub 要去啟動 xp loader(Ntldr) 的時候,Ntldr 就會發現開機碟變成 (hd1) 跟原本 bios 中的設定不同,所以會造成沒辦法載入 XP。要解決這樣的問題,可以用 grub 裡面的 map 指令,將硬碟作虛擬對應。使得loader可以正常載入。

原本的 /boot/grub/menu.lst
title Microsoft Windows XP Professional
rootnoverify (hd0,0)
savedefault
chainloader +1


這邊就算將 rootnoverify (hd0,0) 改成 rootnoverify (hd1,0)還是沒辦法順利開到 XP。

修改後如下,可正常開啟 XP:
title Microsoft Windows XP Professional
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
savedefault
chainloader +1


參考資料:
http://www.gnu.org/software/grub/manual/html_node/DOS_002fWindows.html#DOS_002fWindows