欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
面向實(shí)時(shí)嵌入式系統的圖形用戶(hù)界面支持系統—MiniGUI 編譯、安裝和配置

面向實(shí)時(shí)嵌入式系統的圖形用戶(hù)界面支持系統——MiniGUI 編譯、安裝和配置
http://www.csai.cn 作者:魏永明 來(lái)源:developerWorks中國 2004年4月29日 發(fā)表評論 進(jìn)入社區
  對開(kāi)放源碼的自由軟件來(lái)說(shuō),程序員得到的通常是源代碼。在編譯源代碼并正確安裝和配置的過(guò)程中,往往會(huì )涉及到許多工具和函數庫,因此其過(guò)程經(jīng)常顯得有些繁復,從而也導致許多程序員望而生畏。本文重點(diǎn)介紹了 MiniGUI 的編譯、安裝和配置過(guò)程,解釋了該過(guò)程中要使用的工具,并說(shuō)明了 MiniGUI 的配置選項。本文可幫助程序員快速正確地安裝和配置 MiniGUI。

  1 Linux 下的軟件維護和建立工具

  對開(kāi)放源碼的自由軟件來(lái)說(shuō),程序員得到的通常是源代碼。在編譯源代碼并正確安裝和配置的過(guò)程中,往往會(huì )涉及到許多工具和函數庫,因此其過(guò)程經(jīng)常顯得有些繁復。MiniGUI也不例外。為了說(shuō)明 MiniGUI 的正確編譯和安裝過(guò)程,我們有必要首先了解 Linux 系統下用于軟件維護和建立的工具。

  1.1 make 和 makefile

  make 是 Linux 下最常用的二進(jìn)制程序、函數庫的建立生成工具。make 運行時(shí)要根據當前目錄下的 makefile 文件(一般是 Makefile),確定要生成什么樣的二進(jìn)制文件,以及對應的命令。我們還可以在 makefile 文件中建立要生成的目標與源代碼之間的依賴(lài)關(guān)系,從而可以讓 make 工具根據時(shí)間自動(dòng)判斷是否需要通過(guò)中間過(guò)程而生成最終目標。盡管通過(guò) makefile 文件可以組織一個(gè)大的項目,但往往手工編寫(xiě)一個(gè) makefile 文件并不是一件輕松的事情,并且在需要維護一個(gè)源代碼的目錄樹(shù)時(shí),makefile 文件的維護工作就會(huì )大大增加。為此,GNU 又開(kāi)發(fā)了 Autoconfi/Automake 工具,可以用來(lái)自動(dòng)生成 makefile 文件,并且能夠檢查系統的配置信息,從而幫助提供源代碼的可移植性。

  1.2 Autoconf/Automake

  GNU 的 Autoconf 及 Automake 這兩個(gè)軟件實(shí)際是由若干 Shell 腳本組成的,它可以幫助程序員輕松產(chǎn)生 makefile 文件?,F在的各種自由軟件,如Apache、MySQL 等都是利用Autoconf,Automake 實(shí)現自動(dòng)配置和編譯的。MiniGUI 也采用了 Autoconf/Automake 接口。用戶(hù)只要使用"./configure"、"make"、"make install" 就可以把程序編譯并安裝到系統中。

  為了更好地了解 Autoconf 和 Automake,我們需要對 makefile 作一簡(jiǎn)單回顧。Makefile 基本上就是"目標"(target)、"依賴(lài)性"(dependencies)和"動(dòng)作"三者所組成的一系列規則。而 make 就是根據 makefile 文件的規則決定如何編譯(compile)和連接 (link)程序或者其它動(dòng)作。當然,make 可做的不只是編譯和連接程序,例如 FreeBSD 的 port collection 中,Makefile還可以做到自動(dòng)下載遠程程序,解壓縮(extract),打補丁 (patch),然后編譯并安裝到系統中。

  Makefile 基本結構雖然很簡(jiǎn)單,但是妥善運用這些規則就可以變換出許多不同的花樣。卻也因為這樣,許多人剛開(kāi)始學(xué)寫(xiě)makefile 時(shí)會(huì )覺(jué)得沒(méi)有規范可以遵循,每個(gè)人寫(xiě)出來(lái)的makefile都不大一樣,不知道從哪里下手,而且常常會(huì )受到開(kāi)發(fā)環(huán)境的限制,只要環(huán)境參數不同或者路徑更改,可能 makefile 就得跟著(zhù)修改。雖然有GNU Makefile Conventions (GNU Makefile慣例)制訂出一些在進(jìn)行 GNU 程序設計時(shí)編寫(xiě) makefile 的一些標準和規范,但是其內容很長(cháng)而且很復雜,并且經(jīng)常作一些調整,為了減輕程序開(kāi)發(fā)人員維護makefile 的負擔,就出現了Automake。

  利用Automake,編程者只需要寫(xiě)一些預先定義好的宏(macro),提交給Automake處理,就會(huì )產(chǎn)生一個(gè)可以供 Autoconf 使用的 Makefile.in文件。再配合使用 Autoconf產(chǎn)生的自動(dòng)配置文件 configure 即可產(chǎn)生一份符合 GNU Makefile 慣例的 Makeifle 了。

  在開(kāi)始使用 Automake 之前,首先確認你的系統安裝有如下軟件:

  GNU Automake

  GNU Autoconf

  GNU m4

  perl

  GNU Libtool (如果你需要產(chǎn)生共享庫)

  最好也使用 GNU C/C++ 編譯器、GNU Make 以及其它 GNU 的工具程序來(lái)作為開(kāi)發(fā)的環(huán)境,這些工具都是屬于 GPL 的自由軟件,不但免費而且功能強大。如果你是使用 Red Hat Linux,可以找到所有上述軟件的 rpm 文件。

  利用 configure 所產(chǎn)生的 Makefile文件有幾個(gè)預先設定的目標可供使用,這里只對其中幾個(gè)簡(jiǎn)述如下。

  make all 產(chǎn)生設定的目標。只敲入make 也可以,此時(shí)會(huì )開(kāi)始編譯源代碼,然后連接并產(chǎn)生執行文件。

  make clean 清除之前所編譯的可執行文件及目標文件(*.o)。

  make distclean 除了清除可執行文件和目標文件以外,也把 configure 所產(chǎn)生的 Makefile 清除掉。 通常在發(fā)布軟件前執行該命令。

  make install 將程序安裝到系統中,若源碼編譯成功,且執行結果正確,便可以把程序安裝到系統預先設定的執行文件存放路徑中,若用 bin_PROGRAMS 宏的話(huà),程序會(huì )被安裝到 /usr/local/bin下。

  make dist 將程序和相關(guān)的文檔包裝為一個(gè)壓縮文檔以供發(fā)布。執行完在目錄下會(huì )產(chǎn)生一個(gè)以PACKAGE-VERSION.tar.gz 為名稱(chēng)的文件。PACKAGE 和 VERSION 這兩個(gè)參數是根據 configure.in 文中 AM_INIT_AUTOMAKE(PACKAGE, VERSION) 的定義。

  make distcheck 和 make dist 類(lèi)似,但是加入檢查包裝以后的壓縮文件是否正常,這個(gè)目標除了把程序和相關(guān)文檔包裝成 tar.gz 文件外,還會(huì )自動(dòng)把這個(gè)壓縮文件解開(kāi),執行 configure,并執行 make all ,確認編譯無(wú)錯誤以后,方顯示這個(gè) tar.gz 文件已經(jīng)準備好并可以發(fā)布了。

  要注意的是,利用 Autoconf 及 Automake 所產(chǎn)生出來(lái)的軟件套件是可以在沒(méi)有安裝 Autoconf 及 Automake 的環(huán)境使用的,因為 configure 是一個(gè) shell script,它己被設計為可以在一般 Unix 的 sh 這個(gè) shell 下執行。但是如果要修改 configure.in 及 Makefile.am 文件再產(chǎn)生新的 configure 及 Makefile.in 文件時(shí)就一定要有 Autoconf 及 Automake 了。

  1.3 ldd 和 ldconfig

  ldd 是用來(lái)檢查可執行文件所需要的共享庫。例如: $ ldd /bin/ls

  libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001c000)

  libc.so.6 => /lib/libc.so.6 (0x40020000)

  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

  我們在 /bin/ls 程序上運行 ldd 命令,就可以檢查該程序所使用的共享庫。注意在 ldd 命令打印的結果中,“=>”左邊的表示該程序需要連接的共享庫之 so 名稱(chēng),右邊表示由 Linux 的共享庫系統找到的對應的共享庫在文件系統中的具體位置。默認情況下,/etc/ld.so.conf 文件中包含有默認的共享庫搜索路徑,例如: /usr/X11R6/lib

  /usr/lib

  /usr/i486-linux-libc5/lib

  /usr/lib/qt-2.0.1/lib

  /usr/lib/qt-1.44/lib

  /usr/lib/qt-2.1.0/lib

  /usr/kerberos/lib

  /usr/lib/qt-1.45/lib

  如果 ldd 沒(méi)有找到對應的共享庫文件的具體位置,可能是兩種情況引起的:

  共享庫沒(méi)有安裝在該系統中;

  共享庫保存在 /etc/ld.so.conf 文件列出的搜索路徑之外的位置。

  通常情況下,許多開(kāi)放源代碼的程序或函數庫都會(huì )默認將自己安裝到 /usr/local 目錄下的相應位置(/usr/local/bin 或 /usr/local/lib),以便與系統自身的程序或函數庫相區別。而許多 Linux 系統的 /etc/ld.so.conf 文件中默認又不包含 /usr/local/lib。因此,往往會(huì )出現已經(jīng)安裝了共享庫,但是卻無(wú)法找到共享庫的情況。這時(shí),就應該檢查 /etc/ld.so.conf 文件,如果其中缺少 /usr/local/lib 目錄,就應該添加進(jìn)去。

  在修改了 /etc/ld.so.conf 文件或者在系統中安裝了新的函數庫之后,還要運行一個(gè)命令,即 ldconfig。該命令用來(lái)刷新系統的共享庫緩存,即 /etc/ld.so.cache 文件。為了減少共享庫系統的庫搜索時(shí)間,共享庫系統維護了一個(gè)共享庫 so 名稱(chēng)的緩存文件。因此,在安裝新的共享庫之后,一定要運行 ldconfig 刷新該緩存。

  2 MiniGUI 的依賴(lài)庫

  為了正確安裝 MiniGUI,需要了解 MiniGUI 的正常運行需要哪些函數庫,也即 MiniGUI 的依賴(lài)庫。在編譯 MiniGUI 之前,首先要確保正確安裝了所需的依賴(lài)庫。

  2.1 LibGGI 或者 SVGALib

  這兩個(gè)函數庫可以為 MiniGUI 提供底層圖形支持,我們稱(chēng)之為“圖形引擎”。其中 SVGALib 是一個(gè)比較老的函數庫,只提供對 Linux 控制臺的支持;LibGGI 是一個(gè)比較新的圖形函數庫,提供了對 Linux 控制臺、X Window 等的支持,并且接口相對簡(jiǎn)單。要正確使用 MiniGUI,需要安裝 LibGGI 或者 SVGALib 的修訂版。筆者建議安裝 LibGGI,因為它提供了對 Linux 控制臺和 X 的支持。在 Linux 下,建立在 LibGGI 之上的程序既可以運行在 Linux 控制臺上,也可以運行在 X Window 上,從而可以提高程序的可移植性。并且對 MiniGUI 來(lái)說(shuō),如果能夠運行在 X Window 上,就可以大大方便程序的調試。LibGGI 的另外一個(gè)好處就是在 Linux 控制臺上,它可以運行在 Linux 2.2 內核所提供的 FrameBuffer 驅動(dòng)程序之上,而不需要對顯示芯片進(jìn)行直接的硬件編程,因而也不需要超級用戶(hù)權限去運行程序。這點(diǎn)和 SVGALib 不同,SVGALib 不支持 FrameBuffer,同時(shí)需要超級用戶(hù)權限。

  如果讀者使用的是 Linux 內核 2.0.xx,就必須使用 SVGALib。這個(gè)函數庫實(shí)際是兩個(gè)庫組成的,即 vga 和 vgagl。MiniGUI 使用的是 vgagl,該函數庫在 vga 之上運行,提供了較好的圖形函數。但是,我們不能使用標準的 SVGALib 函數庫,因為該函數庫和 Linux 上的 Pthread 函數庫相沖突――它們均使用了 SIGUSR1 和 SIGUSR2 這兩個(gè)由操作系統保留給應用程序的信號,從而會(huì )導致不可預料的結果。為此,我們對 SVGALib 進(jìn)行了修改。讀者應該使用經(jīng)過(guò)我們修改的 SVGALib 函數庫,該函數庫同時(shí)提供了用于處理 GB2312 字體顯示的函數。還要注意的是,標準 SVGALib 的 vgagl 庫不提供對標準 VGA 16 色模式的支持,因此,如果要在 VGA 16 色模式下運行 MiniGUI,需要下載 vgagl4 函數庫。

  以上提到的函數庫可以從如下 URL 處下載: ftp://ftp.minigui.org/pub/dep-libs/libggi-2.1beta2.0-20000316.tgz

  ftp://ftp.minigui.org/pub/dep-libs/ svgalib-1.4.0-hz.tar.gz

  ftp://ftp.minigui.org/pub/dep-libs/ vgagl4-0.1.0.tar.gz

  也可以訪(fǎng)問(wèn)上述兩個(gè)自由軟件項目的站點(diǎn): http://www.ggi-project.org

  http://www.svgalib.org

  2.2 LibTTF 和 LibT1

  這兩個(gè)函數庫分別提供對 TrueType 字體和 Adobe Type1 字體的支持。對 MiniGUI 來(lái)說(shuō),這兩個(gè)函數庫是可選的。如果需要 TrueType 和 Adobe Type1 字體的支持,則需要首先安裝這兩個(gè)函數庫,否則就不必安裝。MiniGUI 的 configure 腳本可以自動(dòng)檢查系統中是否安裝有這兩個(gè)函數庫,如果沒(méi)有安裝,則會(huì )取消對 TrueType 和 Adobe Type1 字體的支持。

  現在的 Linux 發(fā)行版默認會(huì )安裝 LibTTF(即 FreeType 庫)。但是,需要注意的是 MiniGUI 所使用的 LibTTF 是 1.3.xx 版本的。如果已安裝的 LibTTF 版本不同,則可能因為兼容性問(wèn)題而無(wú)法正確編譯 MiniGUI。因此,需要事先確認 LibTTF 的版本號,可通過(guò) $ ls -l /usr/lib/libttf*

  命令來(lái)檢查已安裝的 LibTTF 庫的版本號,其中的共享庫文件名中包含了該函數庫的版本號。

  以上提到的函數庫可以從如下 URL 處下載: ftp://ftp.minigui.org/pub/minigui/freetype-1.3.1.tar.gz

  ftp://ftp.minigui.org/pub/minigui/t1lib-1.0.1.tar.gz

  2.3 其他函數庫

  其他 MiniGUI 所依賴(lài)的函數庫包括 libjpeg,提供 POSIX 兼容線(xiàn)程支持的 LinuxThreads,用來(lái)分析命令參數的 popt 庫等等。一般的 Linux 發(fā)行版中均已包含有這些函數庫。

  3 安裝 MiniGUI 的依賴(lài)庫

  除 SVGALib 之外,上面提到的 MiniGUI 的依賴(lài)庫提供有 automake/autoconf 接口,從而可以非常方便地編譯并安裝這些依賴(lài)庫。其中 LibGGI 稍微有些例外,該函數庫已經(jīng)提供了一個(gè)批處理腳本,可以幫助你編譯并安裝 LibGGI 的所有函數庫,其中包括用來(lái)處理輸入(鍵盤(pán)、鼠標等)的 libgii,用來(lái)處理圖形輸出的 libggi 等。對 MiniGUI 來(lái)說(shuō),只需安裝 libgii 和 libggi。在下載 libggi-2.1beta2.0-20000316.tgz 文件之后,運行

  $ tar zxf libggi-2.1beta2.0-20000316.tgz

  可解開(kāi)該 tgz 包,并在當前目錄中建立 degas 子目錄。進(jìn)入 degas/lib/ 目錄,運行 ./buildall 腳本,就可以編譯并安裝 libgii、libggi 等函數庫。注意應該以 root 身份運行 buildall 腳本。如果要單獨編譯某個(gè)函數庫,可以進(jìn)入相應的目錄,然后按照正常的編譯過(guò)程進(jìn)行編譯。比如,要重新編譯 libggi,可運行如下命令: $ cd libggi

  $ ./autogen.sh

  $ ./configure

  $ make

  $ su -c make install

  注意在編譯 libggi 之前,首先要編譯并安裝 libgii 庫。

  對 SVGALib 來(lái)說(shuō),只要解開(kāi)軟件包并運行 make 就可以編譯并安裝函數庫。

  注意在安裝完成每個(gè)函數庫之后,要運行 ldconfig 命令更新共享庫的搜索緩存,并確保將 /usr/local/lib 目錄添加到 /etc/ld.so.conf 文件。

  4 編譯并安裝 MiniGUI

  在安裝好 MiniGUI 的上述依賴(lài)庫之后,就可以編譯并安裝 MiniGUI 了。首先下載 MiniGUI 的三個(gè) tgz 壓縮包:

  ftp://ftp.minigui.org/pub/minigui/0.9.92/libminigui-0.9.92.tar.gz

  ftp://ftp.minigui.org/pub/minigui/0.9.92/miniguiapps-0.9.92.tar.gz

  ftp://ftp.minigui.org/pub/minigui/0.9.92/miniguiexec-0.9.92.tar.gz

  ftp://ftp.minigui.org/pub/minigui/0.9.92/miniguires-0.9.92.tar.gz

  其中的libminigui-x.x.xx.tar.gz 是 MiniGUI 函數庫本身。其中包含有三個(gè)函數庫,即 libminigui、libmywins、和 libvcongui。miniguiapps-x.x.xx.tar.gz 是基于 MiniGUI 的應用程序軟件包,目前包含兩個(gè)游戲,即 bomb(掃雷)和 russia(俄羅斯方塊),以及一個(gè)基于 MiniGUI 的 Linux 控制臺仿真程序,即 vcongui,注意這些程序在安裝到系統之后才能正常運行。miniguiexec-0.9.92.tar.gz 是基于 MiniGUI 的一些演示程序,不需要安裝到系統中。miniguires-0.9.92.tar.gz 是 MiniGUI 程序要使用的一些資源,在運行任何基于 MiniGUI 的程序之前,要首先安裝資源,其中包括位圖、圖標、鼠標等等。 4.1 編譯并安裝 libminigui

  用如下命令解開(kāi)libminigui-x.x.xx.tar.gz 軟件包(以下的實(shí)例均以 0.9.92 版,即 MiniGUI 最新版為例): $ tar zxf libminigui-0.9.92.tar.gz

  該命令將在當前目錄建立 libminigui-0.9.92 目錄。進(jìn)入該目錄,然后運行如下命令: $ cd libminigui-0.9.92

  $ ./autogen.sh

  autogen.sh 是一個(gè)簡(jiǎn)單的腳本程序,該腳本將執行 automake 和 autoconf,并在當前目錄生成 configure 腳本。

  運行 ./configure --help腳本將給出如下一個(gè)可用的命令行參數清單,注意該命令的最后幾行清單說(shuō)明: $ ./configure -help

  ......

  --enable-debug build with run-time debugging

  --enable-tracemsg trace messages of MiniGUI

  --disable-svgalib don't build the svgalib graphics engine

  --disable-libggi don't build the libggi graphics engine

  --enable-allegro build the allegro graphics engine

  --enable-microwin build the microwindows graphics engine

  --enable-ep7211 build the ep7211 graphics engine

  --enable-ads build the ads graphics engine

  --enable-gifjpg build old GIF & JPG image support

  --enable-fileid include fileid in binary

  --disable-rbfsupport exclude raw bitmap font support

  --disable-vbfsupport exclude var bitmap font support

  --disable-fontsansserif exclude incore font sansserif

  --disable-fontcourier exclude incore font courier

  --disable-fontsymbol exclude incore font symbol

  --disable-fontvgas exclude incore font vgas

  --disable-ttfsupport exclude truetype font support

  --disable-type1support exclude type1 font support

  --disable-gbsupport exclude GB2312-1980.0 charset (EUC) support

  --disable-big5support exclude Big5 charset (Big5) support

  --enable-jissupport include JIS charset support, not implemented

  --disable-pcxsupport exclude PCX file support

  --disable-lbmsupport exclude LBM/PBM file support

  --disable-tgasupport exclude TGA file support

  --disable-gifsupport exclude GIF file support

  --disable-jpgsupport exclude JPG file support

  --enable-pngsupport include PNG file support, not implemented

  上面是這些參數我們在 configure 腳本中設置好的命令行參數,可以控制在編譯好的 MiniGUI中包含什么的代碼。比如,運行 $ ./configure --disable-svgalib --disable-gifsupport --disable-ttfsupport

  就可以取消 MiniGUI 對 SVGALib、GIF 圖形格式以及 TrueType 字體的支持。相反,如果運行 $ ./configure --enable-svgalib

  則可以打開(kāi) MiniGUI 對 SVGALib 的支持。不帶任何參數執行 ./configure 命令將按照默認選項生成 Makefile。

  根據自己的需求確定好 MiniGUI 庫中要包含的功能特色之后,就可以運行類(lèi)似上面的命令生成定制的 Makefile 文件。如果你不清楚某些選項的含義,可以簡(jiǎn)單地運行 ./configure 命令。

  如果運行 ./configure 命令的時(shí)候沒(méi)有出現問(wèn)題,就可以繼續運行 make 和 make install 命令編譯并安裝 libminigui,注意要有 root 權限才能向系統中安裝函數庫: $ make

  $ su -c make install

  如果在運行 ./configure 命令時(shí)出現函數庫檢查錯誤,通常是 LibGGI 或者 SVGALib 函數庫的檢查錯誤,則說(shuō)明你可能忘記安裝第 2 小節中提到的依賴(lài)函數庫了。需要注意的是,LibGGI 和 SVGALib 中只需安裝一個(gè)即可。

  在一切正常之后,運行 ldconfig 命令刷新系統的共享庫搜索緩存: $ su -c ldconfig

  4.2 安裝 miniguires

  MiniGUI 資源的安裝比較簡(jiǎn)單,只需解開(kāi)軟件包并以 root 身份運行 make 命令,如下所示: $ tar zxf miniguires-0.9.92.tar.gz

  $ cd miniguires-0.9.92

  $ su -c make

  4.3 編譯并安裝 miniguiapps

  編譯和安裝 miniguiapps 的過(guò)程與 libminigui 類(lèi)似,所需命令如下: $ cd miniguiapps-0.9.92

  $ tar zxf miniguiapps-0.9.92.tar.gz

  $ ./autogen.sh

  $ ./configure

  $ make

  $ su -c make install

  在正確執行上述命令之后,進(jìn)入 bomb 目錄,即可運行 bomb 示例程序。如果在運行過(guò)程中出現錯誤,首先可運行 ldd bomb 命令檢查 Linux 是否正確找到 bomb 程序所需要的共享庫,若沒(méi)有找到,則需要檢查是否設置了正確的共享庫搜索路徑并運行了 ldconfig 命令。若出現其他問(wèn)題,請參閱第 5 小節“MiniGUI 的配置”。 4.4 編譯 miniguiexec

  編譯 miniguiexec 的過(guò)程與 libminigui 類(lèi)似,只是這個(gè)軟件包不需要安裝到系統當中。所需命令如下: $ tar zxf miniguiexec-0.9.92.tar.gz

  $ cd miniguiexec-0.9.92

  $ ./autogen.sh

  $ ./configure

  $ make

  在正確編譯結束之后,可進(jìn)入 demos 目錄運行其中的演示程序,比如 dlgtesst、edittest、fontest 等等。

  如果在運行過(guò)程中出現錯誤,首先可運行 ldd命令檢查 Linux 是否正確找到演示程序所需要的共享庫,若沒(méi)有找到,則需要檢查是否設置了正確的共享庫搜索路徑并運行了 ldconfig 命令。若出現其他問(wèn)題,請參閱第 5 小節“MiniGUI 的配置”。

  5 MiniGUI 的配置

  不能正確運行 MiniGUI 應用程序的原因除編譯和安裝錯誤之外,還有另外一個(gè)常見(jiàn)原因是配置。其中的配置又與 MiniGUI 的底層圖形引擎庫相關(guān)。如果你使用 SVGALib 為圖形引擎,則需要編輯 /etc/vga/libvga.config 文件;如果你使用 LibGGI 為圖形引擎并在 Linux 控制臺上運行 MiniGUI,則需要確保 Linux 內核中包含了 FrameBuffer 驅動(dòng)程序。

  5.1 與 SVGALib 相關(guān)的設置

  SVGALib 的相關(guān)配置保存在 /etc/vga/libvga.conf 文件中。你需要檢查該文件,并正確設置如下參數:

  鼠標類(lèi)型。需要制定正確的鼠標類(lèi)型,SVGALib 默認的鼠標類(lèi)型為 Microsoft,如果你的鼠標為 PS/2,則需要將 mouse 設置為 PS2。

  取消 SVGALib 的鼠標加速選項。將 mouse_accel_type 設置為 off。

  鼠標端口。將 mdev 設置為正確的鼠標設備。比如對 PS/2 鼠標來(lái)講,需要將 mdev 設置為 /dev/psaux。

  設置正確的顯示芯片。 /etc/vga/libvga.conf 中的 chipset 指定了顯示芯片類(lèi)型和型號,如果你的顯示芯片沒(méi)有列在其中,則可以試試將 chipset 設置為 VESA。VESA 指 VESA 兼容的顯示芯片,SVGALib 將通過(guò) VESA BIOS 接口操作顯示卡。因為大多數顯示卡都是 VESA BIOS 2.0 兼容的,所以將 chipset 設置為 VESA 可以得到較好的顏色深度和分辨率。

  在將上述程序設置好之后,在試著(zhù)運行 MiniGUI,如果還有問(wèn)題,請發(fā)信到我們的郵件列表 minigui-devel@egroups.com 上說(shuō)明你遇到的問(wèn)題。 5.2 如何設置 FrameBuffer

  如果使用 LibGGI 作為 MiniGUI 的圖形引擎,并且運行在 Linux 控制臺上的話(huà),則首先需要 Linux 內核中包含有 FrameBuffer 的驅動(dòng)程序。許多發(fā)行版安裝之后就默認運行在 FrameBuffer 的支持下,即圖形模式之下,比如 BluePoint Linux 和 TurboLinux 6.x。但有可能 FrameBuffer 的顯示模式并不適合于運行 MiniGUI。為此,你可以使用 fbset 命令修改顯示模式。但是,某些 FrameBuffer 是不支持顯示模式的修改的,比如 VESA FrameBuffer。如果你使用 VESA FrameBuffer,則可以通過(guò)編輯 Linux 的內核引導參數設置正確的顯示模式。對 VESA FrameBuffer 驅動(dòng)程序,可以如下編輯 /etc/lilo.conf 文件:

  MiniGUI 資源的安裝比較簡(jiǎn)單,只需解開(kāi)軟件包并以 root 身份運行 make 命令,如下所示: boot=/dev/hda

  map=/boot/map

  install=/boot/boot.b

  prompt

  timeout=10

  default=linux

  image=/boot/vmlinuz-2.2.14-5.0

  label=linux

  read-only

  vga=0x0317

  root=/dev/hda1

  注意添加了 vga=0x0317 一行。該行右邊以十六進(jìn)制表示的數字是 VESA 的顯示模式編號,下表給出了可用的 VESA 模式號: Colours 640x400 640x480 800x600 1024x768 1280x1024 1600x1200

  --------+-----------------------------------------------------

  4 bits | ? ? 0x302 ? ? ?

  8 bits | 0x300 0x301 0x303 0x305 0x307 0x31C

  15 bits | ? 0x310 0x313 0x316 0x319 0x31D

  16 bits | ? 0x311 0x314 0x317 0x31A 0x31E

  24 bits | ? 0x312 0x315 0x318 0x31B 0x31F

  32 bits | ? ? ? ? ? ?

  你應該根據自己的顯示卡和顯示器確定應該使用哪種顯示模式。

  在設置了正確的 /etc/lilo.conf 之后,運行 lilo 并重新啟動(dòng)計算機。如果一切正常,則 Linux 引導時(shí),會(huì )在屏幕的左上方顯示一個(gè)可愛(ài)的小企鵝。

  其他關(guān)于 Linux FrameBuffer 的信息,可參閱 Framebuffer-HOWTO 文檔。 5.3 /etc/MiniGUI.cfg

  /etc/MiniGUI.cfg 是 MiniGUI 的配置文件,在默認安裝的情況下,基本不需要進(jìn)行修改。因為該配置文件采用了非常簡(jiǎn)介的格式,所以修改起來(lái)也很容易。其格式如下: [section-name1]

  key-name1=key-value1

  key-name2=key-value2

  [section-name2]

  key-name3=key-value3

  key-name4=key-value4

  該配置文件中的參數以 section 分組,然后用 key=value 的形式指定參數及其值。下面介紹一些重要的段(section)。 5.3.1 system

  system 段中指定了 MiniGUI 要使用的圖形引擎以及鼠標設備和類(lèi)型,分別由 engine、mdev 和 mtype 鍵指定。因為 MiniGUI 庫中可以同時(shí)包含多個(gè)圖形引擎,通過(guò) engine 可以指定要使用哪個(gè)圖形引擎。mdev 和 mtype 分別用來(lái)指定鼠標設備和鼠標類(lèi)型。 5.3.2 SVGALib 和 LibGGI

  這兩個(gè)段分別用來(lái)設置與 SVGALib 和 LibGGI 相關(guān)的配置。目前只有 SVGALib 段中使用 defaultmode 定義 SVGALib 所使用的圖形模式,LibGGI 段中沒(méi)有參數。 5.3.2 systemfont

  systemfont 段定義了 MiniGUI 的系統字體,默認情況下不應作改動(dòng)。font_number 指定了要裝載的系統字體個(gè)數,然后用 name 和 fontfile 分別表示編號為 nr 的字體名稱(chēng)和字體文件所在路徑。字體名的格式如下:

<type>-<name>-<style>-<width>-<height>-<charset1[,charset2]>

  對于系統字體,你可以修改要裝載的個(gè)數,但至少要裝載字符集為 ISO8859-1 的字體。還可以修改系統字體的大小,比如,下面的 systemfont 就指定 MiniGUI使用 16 點(diǎn)陣的系統字體,并只裝載了用于顯示 ISO8859-1 字符集和 GB2312-80 字符集的字體: [systemfont]

  font_number=2

  name0=rbf-song-rrncnn-8-16-ISO8859-1

  fontfile0=/usr/local/lib/minigui/fonts/8x16.bin

  name1=rbf-song-rrncnn-16-16-GB2312.1980-0

  fontfile1=/usr/local/lib/minigui/fonts/gb16song.bin

  5.3.3 rawbitmapfonts、varbitmapfonts、truetypefonts 和 t1fonts

  這些段用來(lái)指定要裝載的其他字體信息。段中鍵的含義與 system 相同。在需要某種字體支持時(shí),可以修改這些段指定相應的字體。 5.3.4 bitmapinfo 和 bgpicture

  bitmapinfo 段用來(lái)指定 MiniGUI 所使用的位圖。有兩個(gè)鍵可能需要修改一個(gè)是 bgpicture,一個(gè)是 logo。前者指定了 MiniGUI 的背景圖片,后者指定了 MiniGUI 的徽標。另外,該段中重復定義了兩組 arrowup、arrowupd 等鍵的值,分別用于系統字體取 12 點(diǎn)陣和 16 點(diǎn)陣的情況。在系統字體為 16 點(diǎn)陣時(shí),將后面的一組設置移到前面就可以了。

  bgpicture 段用來(lái)指定 MiniGUI 背景的位置,你可以選擇其中給出的幾個(gè)設置之一。

  除上述段經(jīng)常要修改之外,其他段基本上不需要作任何修改。

  如果你在進(jìn)行 MiniGUI 開(kāi)發(fā)的過(guò)程中遇到困難,可以加入我們的郵件列表:

  訂閱:minigui-devel-subscribe@egroups.com

  發(fā)信:minigui-devel@egroups.com

  解除訂閱:minigui-devel-unsubscribe@egroups.com

  相關(guān)資源

  MiniGUI 資源

  MiniGUI 主頁(yè)

  MiniGUI FTP 站點(diǎn)

  MiniGUI 郵件列表

  發(fā)信:minigui-devel@egroups.com

  訂閱:minigui-devel-subscribe@egroups.com

  解除訂閱:minigui-devel-unsubscribe@egroups.com

  關(guān)于作者

  魏永明(ymwei@minigui.org),男,26 歲,工學(xué)碩士,現任藍點(diǎn)軟件(深圳)有限公司北京研發(fā)中心技術(shù)主管。國內最有影響的自由軟件項目之一-- MiniGUI 的創(chuàng )始人以及主要開(kāi)發(fā)人員。著(zhù)有《Linux 實(shí)用教程》與《學(xué)用 Linux 與 Windows NT》,并主持翻譯了《Red Hat Linux 奧秘》等大量?jì)?yōu)秀的 Linux 技術(shù)著(zhù)作。是清華大學(xué) AKA Linux 編程技術(shù)系列講座的主講人。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Qt、GTK 和KDE、GNOME的關(guān)系
MINIGUI圖形界面開(kāi)發(fā)入門(mén)
在A(yíng)RM-uClinux下編寫(xiě)加載驅動(dòng)程序詳細過(guò)程
linux動(dòng)/靜態(tài)庫的生成和使用
Linux圖形領(lǐng)域的基礎設施
(轉自)虛擬機linux+minigui1.6.2+qvfb(pc機上做試驗的,不移植)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久