歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Redhat9下構建TinyX+GTK圖形環境

在Redhat9下構建TinyX+GTK圖形環境

日期:2017/2/28 15:59:09   编辑:Linux教程

概述

最近要將RedHat9.02移植到一塊嵌入式586的主板上,空間有限,還要有圖形環境,支持中文。所以,要建立一個精簡的圖像環境,先選擇TinyX+GTK的方式進行研究。TinyX是XFree86針對嵌入式的編譯選項,體積小,啟動速度快。

本文使用虛擬機vmware安裝Redhat-9.02文本系統,然後用XFree86-4.3.0編譯TinyX,最後編譯GTK+-2.0。


1.安裝Redhat-9.02

在vmware上新建一個虛擬機,硬盤空間為4GB,內存512MB。開始安裝Redhat-9.02,選擇linux text模式,中文安裝語言,swap分區為512MB,其余空間都掛載到根目錄下。bootloader用Grub,自定義安裝軟件包,選擇的軟件包如下:

Administration tools

Development Tools

Editors

Ftp Server

Kernel Development

NetWork Server

Printing Support

Server Configuration Tools

Sound and Video

System Tool

選擇系統支持的語言為Chinese+English。


安裝後將/etc/sysconfig/下的i18n文件修改如下:

LC_CTYPE="zh_CN.GB2312"

SUPPORTED="zh_CN.GB2312:en_US.UTF-8:en_US:en"

SYSFONT="latercyrheb-sun16"

SYSFONTACM="iso01"


2.編譯libpng-1.2.16

編譯TinyX時需要png.h文件,所以要重新安裝libpng。先刪除原有的libpng:

rm -rf /usr/lib/libpng*


下載libpng-1.2.16.tar.bz2 ,復制到/root目錄下解壓:

tar -xvjf libpng-1.2.16.tar.bz2


源碼包中的README和INSTALL文件有關於libpng的詳細信息和編譯安裝方法,用如下命令編譯安裝:

cd /root/libpng-1.2.16

./configure

make

make install

默認安裝在/usr/local/目錄下,支持pkg-config,pkg-config文件放在/usr/lib/pkg-config/目錄下。如果想卸載libpng,執行:make uninstall。


3.編譯freetype-2.2.1

刪除原有的freetype:

rm -rf /usr/lib/libfreetype*


下載freetype-2.2.1.tar.gz:

http://download.savannah.gnu.org/releases/freetype/

復制到/root/目錄下解壓:

tar -xvzf freetype-2.2.1.tar.gz


編譯、安裝:

cd /root/freetype-2.2.1

./configure

make

make install

默認安裝到/usr/local/目錄下,支持pkg-config。


4.編譯TinyX

先刪除原系統的X-window:

rm -rf /usr/X11R6

rm -rf /etc/X11


下載XFree86-4.3.0:ftp://ftp.xfree86.org/pub/XFree86/4.3.0/,共下載7個軟件包:

X430src-1.tgz

X430src-2.tgz

X430src-3.tgz
X430src-4.tgz
X430src-5.tgz
X430src-6.tgz
X430src-7.tgz

全部復制到/root下解壓,解壓後的源碼都會放在/root/xc目錄下。


先編譯一個lndir工具:

cd /root/xc/config/util

make -f Makefile.ini lndir

cd ../../../

用lndir制作一個源文件的符號鏈接目錄:

mkdir build

cd build

../xc/config/util/lndir ../xc


用TinyX.cf的配置安裝:

cd config/cf

cp -arf TinyX.cf host.def

修改host.def為:

[cpp]

  1. #define KDriveXServer YES
  2. #define TinyXServer YES
  3. #define XfbdevServer YES
  4. #define BuildLBX YES
  5. #define BuildFonts YES
  6. #define BuildAppgroup NO
  7. #define BuildDBE NO
  8. #define BuildXCSecurity YES
  9. #define FontServerAccess NO
  10. #undef BuildXF86RushExt
  11. #define BuildXF86RushExt NO
  12. #undef BuildRender
  13. #define BuildRender YES
  14. #define UseRgbTxt YES
  15. #define BuildFontServer NO

cd ../../

touch xf86Date.h

touch xf86Version.h

make World

make install

主要的庫、頭文件、可執行文件和配置文件等都安裝了在/etc/X11和/usr/X11R6下。


TinyX依賴於framebuffer,要打開framebuffer。修改/etc/grub.conf文件,在kernel一行添加:

vga=0x311 fb:on

0x311為640x480,16bpp。

然後重啟系統,啟動時,屏幕左上方會出現一個企鵝Logo。


重啟後運行/usr/X11R6/bin/Xfbdev,即可啟動Xserver,可以看到灰色背景上有一個X形的鼠標。

為Xfbdev建立一個符號鏈接:

ln -s Xfbdev X

這樣就可以用startx命令啟動X-window。用Ctrl+Alt+Backspace組合鍵退出X-window。


這裡可能出現加載鏈接庫的錯誤,查看/etc/ld.so.conf文件中是否有/usr/X11R6/lib,然後執行ldconfig -v。

Copyright © Linux教程網 All Rights Reserved