DirectFB在嵌入式遠(yuǎn)程桌面控制系統(tǒng)中的應(yīng)用
Directvcn 依賴DirectFB 庫實(shí)現(xiàn)功能,需要對DirectFB 進(jìn)行移植。DirectFB 的交叉編譯條件是在Linux 內(nèi)核2.2 以上,并運(yùn)行幀緩沖(Framebuffer),以及必要的依賴庫,比如zlib、libjpeg、libpng、freetype 等。完成設(shè)計(jì)的軟件開發(fā)環(huán)境是:
Ubuntu8.04 操作系統(tǒng),嵌入式Linux 開發(fā)環(huán)境。使用ELDK4.1交叉編譯器。步驟如下:
?。?) 從http://www.directfb.org/downloads/Core/獲取源代碼DirectFB-1.2.5.tar.gz 并解壓。
?。?)交叉編譯依賴庫并安裝到指定路徑下:
-prefix=/usr/local/arm/eldk-4.1/usr/bin/arm-linux
?。?)設(shè)置交叉編譯環(huán)境變量,如PREFIX、LDFLAGS、CFLAGS、PKG_CONFIG_PATH 等路徑,配置并交叉編譯DirectFB-1.2.5。
?。?) 在rootfs/etc 下為directvnc 編輯配置文件directfbrc,內(nèi)容如下:
編譯之前,去掉Makefile 中OMAP 驅(qū)動(dòng)的編譯,由于它是TI 的OMAP 系列CPU 專用的,在此包中缺少頭文件,會(huì)引起編譯錯(cuò)誤。#make #make install 編譯成功后在/usr/directfb 下會(huì)生成圖形支持庫的相關(guān)文件包。
3 嵌入式遠(yuǎn)程桌面控制的實(shí)現(xiàn)
3.1 Directvnc 及其功能框圖
Directvnc 應(yīng)用VNC 服務(wù)器所使用的遠(yuǎn)程幀緩沖協(xié)議(RFB)。其協(xié)議消息分為3 個(gè)階段:握手、初始化和協(xié)議交互。
最初的握手階段主要是對協(xié)議版本、像素?cái)?shù)據(jù)的格式和編碼類型進(jìn)行協(xié)商。第二步對報(bào)文初始化,主要是本客戶端和服務(wù)器端初始化消息。最后是正常的信息交互階段,客戶端發(fā)送請求,服務(wù)器端響應(yīng)并送回結(jié)果。所有的消息都由一個(gè)消息類型字節(jié)和詳細(xì)的消息數(shù)據(jù)組成。因此Directvnc 的運(yùn)行流程大致可以分為登陸服務(wù)器,初始化連接,信息交互和退出4部分。如圖2 所示。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論