您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!
1.首先是建立Linux開(kāi)發(fā)環(huán)境
1.1.在windowsXP下安裝博創(chuàng)公司提供的虛擬機(jī)軟件VMware Workstation,版本為VMware-workstation-full-7.0.1-227600,安裝完成后進(jìn)行漢化,由于要覆蓋文件,所以要先在任務(wù)管理器中結(jié)束所有有關(guān)VMware的進(jìn)程,然后將漢化文件覆蓋到VMware的安裝目錄,至此VMware虛擬機(jī)軟件安裝完成。
1.2.虛擬機(jī)軟件安裝成功后,就開(kāi)始安裝Linux操作系統(tǒng),這里我使用的Ubuntu10.04長(zhǎng)期支持版,可以到Ubuntu的官方網(wǎng)站上下載,下載地址為:http://www.ubuntu.org.cn/desktop/get-ubuntu/download/或者http://releases.ubuntu.com/lucid/(第一個(gè)不行就使用第二個(gè));
下載完成后打開(kāi)虛擬機(jī),在起始頁(yè)上點(diǎn)擊新建虛擬機(jī),然后選中Ubuntu鏡像文件的路徑,然后是輸入用戶名、下一步、最后是定制硬件,可以根據(jù)自己需要添加,這里我把內(nèi)存調(diào)整為1G,額外添加了一個(gè)串口,最后完成開(kāi)始自動(dòng)安裝,這個(gè)過(guò)程是全自動(dòng)的,基本不需要手動(dòng)操作,下面我們就是等待安裝完成。(安裝的快慢跟你的機(jī)器配置有關(guān));
安裝完成,大概用了不到兩個(gè)小時(shí),但是在登錄界面卻無(wú)法使用鍵盤。
解決方法:
(1) 開(kāi)戶屏幕鍵盤功能 在上圖開(kāi)機(jī)界面在右下角單擊小人圖案,再單擊“Universal Access Perferences”,
點(diǎn)擊“Universal Access Perferences”對(duì)話框,
在對(duì)話框中選中“Use on-screen keyboard”(使用屏幕鍵盤),以開(kāi)啟屏幕鍵盤功能,這時(shí)會(huì)有一個(gè)屏幕鍵盤快速閃過(guò);
(2) 重新啟動(dòng)打開(kāi)屏幕鍵盤輸入密碼開(kāi)啟屏幕鍵盤功能后重新啟動(dòng)系統(tǒng),這時(shí)就可以通過(guò)上面的步驟打開(kāi)屏幕鍵盤,輸入相應(yīng)的密碼
(3) 登錄后鍵盤功能正常使用。
注意在(1)步后沒(méi)出現(xiàn)軟鍵盤, 需要重啟機(jī)器。
(4)進(jìn)入系統(tǒng)之后,要修改/etc/default/console-setup. 的文件內(nèi)容 原文 XKBMODEL="SKIP" XKBLAYOUT="us" XKBVARIANT="U.S. English" XKBOPTIONS="" 改成 XKBMODEL="pc105" XKBLAYOUT="us" XKBVARIANT="" XKBOPTIONS="" 然后重啟,這樣在登入界面時(shí)就可能使用鍵盤了。
這里我們使用root賬戶,在命令行輸入:sudo passwd root,輸入兩次密碼后添加root賬戶成功,重啟,使用root賬戶登錄,
然后是設(shè)置軟件源,首先備份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup,而后用gedit或其他編輯器打開(kāi): gedit /etc/apt/sources.list,到官方選中合適的源,這里我們選擇163的源,具體為:
deb http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ lucid-backports main restricted universe multiverse,
替換掉文件中所有的內(nèi)容保存編輯好的文件:,然后,刷新列表:
apt-get update
終端設(shè)置小技巧
因?yàn)榻?jīng)常會(huì)用到終端:所以把終端加到右鍵菜單:
apt-get install nautilus-open-terminal
至此我們的Linux操作系統(tǒng)基本安裝成功。但是語(yǔ)言還是英文,大家可以根據(jù)自己喜好是否調(diào)整為中文,調(diào)整方法,打開(kāi)system菜單下administration下的language support,出現(xiàn)語(yǔ)言配置對(duì)話框,然后你可以選中最下面的installl/removae language安裝中文或者其他語(yǔ)言,在調(diào)整后重啟系統(tǒng)起效!
2.安裝開(kāi)發(fā)工具QT
首先需要說(shuō)明的是,我們把QT的安裝分為兩部分,第一、安裝在LinuxPC機(jī)下開(kāi)發(fā)的QT以及IDE開(kāi)發(fā)工具QT Creator。第二、安裝交叉編譯的QTE以及移植QTE到博創(chuàng)star2410開(kāi)發(fā)板,下面我們開(kāi)始正式安裝。
2.1.安裝LinuxPC機(jī)上的開(kāi)發(fā)工具QT
首先我們到QT的官方網(wǎng)站下載Linux下的QT版本,下載地址為:http://qt.nokia.com/downloads-cn,這里我們直接下載最新版本的Qt SDK for Linux/X11 32-bit** (370 Mb) (軟件開(kāi)發(fā)工具包)里面包括QT4.6.3以及QT IDE開(kāi)發(fā)工具QT Creator,由于我們是直接下載編譯好的二進(jìn)制包,所以我們只需要更改一下文件的屬性,變?yōu)榭蓤?zhí)行就行了,具體命令為:chmod +x qt-sdk-linux-x86-opensource-2010.04.bin,
這樣我們就能在文件的目錄里執(zhí)行./qt-sdk-linux-x86-opensource-2010.04.bin,然后就開(kāi)始安裝了。
然后點(diǎn)擊next、I accept the agreement、next、(默認(rèn)安裝路徑為/opt/qtsdk-2010.04,你可以根據(jù)自己喜好更改路徑,這里我們選擇默認(rèn))
、next、(在選擇組件對(duì)話框里我們依然默認(rèn))next、(外部管理對(duì)話框,默認(rèn))next、(準(zhǔn)備安裝)next后開(kāi)始安裝,我們只需要等待就行,最后點(diǎn)擊finish安裝完成,
我們會(huì)在桌面發(fā)現(xiàn)多了一個(gè)圖標(biāo),這說(shuō)明我們的QT以及Qt Creator安裝成功,
最后一步就是設(shè)置環(huán)境變量,具體步驟如下:
使用編輯器打開(kāi)配置文件 命令為:gedit ~/.profile ,
在文件的最后添加export QTDIR=$PATH:/opt/qtsdk-2010.04/qt
export PATH=$PATH:/opt/qtsdk-2010.04/qt/bin
環(huán)境變量設(shè)置完成,重啟系統(tǒng),但是現(xiàn)在我們的QT還不能使用,
因?yàn)槲覀兊腖inuxPC機(jī)沒(méi)有安裝標(biāo)準(zhǔn)C開(kāi)發(fā)環(huán)境,最后再執(zhí)行一條命令:
apt-get install build-essential libncurses5-dev,
至此我們的PC機(jī)QT開(kāi)發(fā)工具就安裝完成了,可以正常使用了。
2.2.搭建QTE-arm環(huán)境并移植QTE以及tslib1.4到博創(chuàng)star2410開(kāi)發(fā)板
首先我們要先安裝交叉編譯工具鏈,這里我們使用的交叉編譯器為博創(chuàng)公司提供的版本為arm-linux-gcc3.4.6,將arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2放到/root/song目錄下,然后打開(kāi)目錄解壓編譯器,具體命令為:
tar xjvf arm-linux-gcc-3.4.6-glibc-2.3.6.tar.bz2 -C /usr/local/(注意:C 后面有個(gè)空格,并且 C 是大寫(xiě)的,它是英文單詞“Change”的第一個(gè)字母,在此是改變目錄的意思。),這樣我們就將編譯器安裝在了/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/下,然后設(shè)置環(huán)境變量,仍然是:
gedit ~/.profile
在文件最后添加:
export PATH=$PATH:/usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin,
保存文件,然后執(zhí)行:
source ~/.profile是變量立即生效,
然后在命令行下輸入:
arm-linux-gcc -v
檢查是否安裝成功,安裝成功則出現(xiàn):
Reading specs from /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/bin/../lib/gcc/arm-linux/3.4.6/specs
Configured with: /home/samba/armlinux/crosstool/crosstool-0.42/build/arm-linux/gcc-3.4.6-glibc-2.3.6/gcc-3.4.6/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux --with-headers=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/include --with-local-prefix=/opt/crosstool/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.6
否則可能是環(huán)境變量設(shè)置問(wèn)題,仔細(xì)檢查應(yīng)該就能解決。
交叉編譯器安裝成功后,我們就開(kāi)始解壓及編譯觸摸屏軟件tslib1.4.tar.gz,具體步驟如下:打開(kāi)文件所在目錄:cd /root/song ,解壓:tar xjvf tslib-1.4.tar.bz2,進(jìn)入解壓目錄:cd tslib-1.4,修改腳本:gedit build.sh,原來(lái)的內(nèi)容為:#/bin/sh
export CC=arm-linux-gcc
./autogen.sh
#./configure --prefix=/mnt/nfs/tslib1.4-install --host=arm-linux
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/mnt/nfs/Trolltech/QtopiaCore-4.3.3/tslib1.4
make
make install
修改后:#/bin/sh
export CC=arm-linux-gcc
./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache -prefix=/usr/local/tslib
make
make install
保存退出并執(zhí)行:./build.sh開(kāi)始編譯并安裝,中間沒(méi)有出錯(cuò),成功安裝到了/usr/local/tslib目錄下,tslib1.4編譯成功。
下面開(kāi)始編譯安裝qte4.6.3-arm,首先到官方下載最新版的qte,版本為:qt-everywhere-opensource-src-4.6.3.tar.gz ,下載地址為:http://qt.nokia.com/downloads/embedded-linux-cpp,然后開(kāi)始編譯安裝,
具體步驟如下:進(jìn)入文件所在目錄:
cd /root/song,
解壓:tar xzvf qt-everywhere-opensource-src-4.6.3.tar.gz,
進(jìn)入解壓目錄:
cd qt-everywhere-opensource-src-4.6.3,
修改錯(cuò)誤文件:
gedit src/3rdparty/freetype/include/freetype/config/ftconfig.h,
將第330行修改為:
"orr %0, %0,%2, lsl #16/n/t" /* %0 |= %2 << 16 */,
防止出現(xiàn)如下錯(cuò)誤:
text/qfontengine_ft.cpp: In member function `bool QFontEngineFT::init(QFontEngine::FaceId, bool, QFontEngineFT::GlyphFormat)':
text/qfontengine_ft.cpp:696: warning: converting to `int' from `qreal'
{standard input}: Assembler messages:
{standard input}:781: Error: register or shift expression expected -- `orr r3,r2,lsl#16'
{standard input}:792: Error: register or shift expression expected -- `orr r2,r3,lsl#16'
{standard input}:7752: Error: register or shift expression expected -- `orr r3,r0,lsl#16'
{standard input}:7765: Error: register or shift expression expected -- `orr r1,r0,lsl#16'
make[1]: *** [.obj/release-shared-emb-arm/qfontengine_ft.o] 錯(cuò)誤 1
make[1]:正在離開(kāi)目錄 `/root/song/qt-everywhere-opensource-src-4.6.3;
然后開(kāi)始配置configure:命令為:
./configure -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -qt-mouse-pc -no-gfx-qvfb -no-gfx-vnc -qt-kbd-tty -qt-gfx-linuxfb -no-gfx-qvfb -no-gfx-vnc -qt-mouse-tslib -no-glib -prefix /usr/local/Trolltech/qte4.6.3-arm -embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -I/usr/local/tslib/include -L/usr/local/tslib/lib -v -D__ARM_ARCH_5TEJ__,
然后輸入o回車,再輸入yes回車開(kāi)始配置,配置成功提示:
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /usr/local/qte4.6.3-arm
To reconfigure, run 'make confclean' and 'configure'.
然后開(kāi)始編譯:make,需要等待一會(huì),快慢視個(gè)人配置。大概半個(gè)小時(shí)左右make完畢,然后執(zhí)行:
make install,
完成后qte就被安裝在了/usr/local/qte4.6.3-arm下面,至此,qte4.6.3-arm編譯安裝成功。
然后我們開(kāi)始把qte移植到博創(chuàng)star2410開(kāi)發(fā)板上,具體步驟為:
1.復(fù)制tslib庫(kù)以及ts目錄,
cp /usr/local/tslib/lib/libts* /usr/local/qte4.6.3-arm/lib/,cp -rf /usr/local/tslib/lib/ts /usr/local/qte4.6.3-arm/lib/,
進(jìn)入目錄:
cd /usr/local/gcc-3.4.6-glibc-2.3.6/arm-linux/arm-linux/lib,
繼續(xù)拷貝庫(kù):
cp libgcc_s.so.1 /usr/local/qte4.6.3-arm/lib/,cp librt.so.1 /usr/local/qte4.6.3-arm/lib/,cp libstdc++.so.6 /usr/local/qte4.6.3-arm/lib/,cp libz.so.1 /usr/local/qte4.6.3-arm/lib/,
拷貝庫(kù)完成,對(duì)于有些庫(kù)文件,可以裁剪一下,命令如下:
arm-linux-strip libstdc++.so.6,
最后將/usr/local/qte4.6.3-arm/lib/中的所有文件打包,命令如下:
tar czvf lib-new.tar.bz2 *,
然后再將tslib校準(zhǔn)程序移植,
cd /usr/local/tslib/lib,拷貝需要的庫(kù)文件,
cp /usr/local/qte4.6.3-arm/lib/librt.so.1 .,cp /usr/local/qte4.6.3-arm/lib/libz.so.1 .,
最后將整個(gè)tslib目錄打包,命令如下:tar czvf touch.tar.bz2 *,
最后將我們所有打包的文件以及前面交叉編譯的MPlayer全部放到一個(gè)目錄下,這里我建立了一個(gè)embed目錄,將所有包放進(jìn)去,解壓整理,最終生成一個(gè)應(yīng)用程序包,其中包括MPlayer,觸摸屏校準(zhǔn)程序,usb設(shè)備掛載,以及qte4.6.3,包的名字為:
embed.tar.bz2。
至此我們的移植以接近尾聲,下面我們把編譯好的應(yīng)用程序包下載到star2410上,步驟如下:
先在Linux下面使用minicom連接上板子,設(shè)置板子的IP使和主機(jī)在同一網(wǎng)段,命令如下:
ifconfig eth0 192.168.88.189 broadcast 192.168.88.254 ,然后再執(zhí)行inetd,是更改生效。
然后在windows下使用FlashFXP軟件匿名連接板子的IP,連接上后,將embed.tar.bz2傳送到板子,很快就可以傳完,然后在板子上,進(jìn)入root目錄,執(zhí)行命令:
mv /root/system/var/ftp/pub/embed.tar.bz2 .,然后解壓程序包:
tar xzvf embed.tar.bz2,這樣root目錄下就出現(xiàn)了我們的程序目錄,首先我們進(jìn)入touch目錄進(jìn)行觸摸屏校準(zhǔn),我們先寫(xiě)touch.sh一個(gè)腳本方便程序執(zhí)行,腳本內(nèi)容如下:#bin/sh
export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib:/lib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_TSLIBDIR=$PWD/lib
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
/root/touch/bin/ts_calibrate
/root/touch/bin/ts_test
保存退出,執(zhí)行腳本:./touch.sh,出現(xiàn)如下錯(cuò)誤:No raw modules loaded.
ts_config: Success
No raw modules loaded.
ts_config: Success
解決方法:vi etc/ts.conf,將文件中第二行# module_raw input前面的#號(hào)去掉,然后在執(zhí)行腳本,屏幕上出現(xiàn)校準(zhǔn)程序,點(diǎn)擊十字架開(kāi)始校準(zhǔn),至此,tslib1.4移植成功!
最后我們進(jìn)入qte4.6.3目錄中,同樣我們也寫(xiě)一個(gè)腳本方便程序運(yùn)行,腳本qt.sh內(nèi)容如下:export QTDIR=$PWD
export LD_LIBRARY_PATH=$PWD/lib:/lib
export QTDIR=$PWD
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$PWD/lib/ts
export TSLIB_CONSOLEDEVICE=none
export QT_TSLIBDIR=$PWD/lib
export TSLIB_CONFFILE=$PWD/etc/ts.conf
export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
export QWS_MOUSE_PROTO=tslib:/dev/event0
export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
export QT_QWS_FONTDIR=$PWD/lib/fonts
export LANG=zh_CN
export QWS_DISPLAY="LinuxFb:mmWidth160:mmHeight120:0"
/root/qte4.6.3/bin/demo -qws
保存退出,然后執(zhí)行:./qt.sh
出現(xiàn)以下錯(cuò)誤,并且觸摸屏不能使用:No raw modules loaded.
QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or di'
Please check your tslib installation!
解決方法:還是將etc/ts.conf文件中的第二行前面的#號(hào)去掉,保存退出,在執(zhí)行./qt.sh,成功,無(wú)任何提示,屏幕顯示我們的例子,并且觸摸屏使用正常,至此,我們的qte4.6.3、tslib1.4的編譯安裝以及移植到博創(chuàng)的star2410板子上的工作全部完成!
掃碼關(guān)注我們
傳真:0755-82591176
郵箱:vicky@yingtexin.net
地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08