嵌入式Linux自學階段性總結 2

2021-04-25 01:00:12 字數 3241 閱讀 3951

修改qtopia原始碼,配置和交叉編譯

a.

安裝arm-linux-gcc-3.4.1

b.

編譯tslib-1.4

觸控螢幕驅動

qtopia自帶有觸控螢幕驅動和校準程式,這裡我為了提高效能,採用tslib1.4的第三方庫。

解壓tslib1.4,進入該目錄執行:

# cd tslib

# echo "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache

# export cc=arm-linux-gcc

# export cxx= arm-linux-g++

# ./autogen.sh

# ./configure --prefix=/opt/tslib1.4-install --host=arm-linux --cache-file=arm-linux.cache

# make

# sudo make install

注意:因為使用了arm-linux-gcc/g++編譯,所以應該確保先安裝了arm-linux-gcc3.4.1,同時應該事先mkdir目錄/opt/tslib1.4-install,同時安裝了sudo apt-get install autoconf,否則./autogen.sh時會找不到工具autoreconf.然後還需要sudo apt-get install libtool,否則在重新./autogen.sh時又找不到libtoolize。在這裡,開始下了個svn版本的tslib1.4,出了個很妖的問題,make中找不到變數定義。後來用這個tslib-1.4.tar.gz版本,一切ok了。不過arm-linux.cache不能省略,否則還會出問題。

c.

修改qtopia

原始碼

1>.解壓qtopia-opensource-src-4.3.2..tar.gz

後,進入該目錄src/libraries/qtopiabase下,複製下面兩個標頭檔案並重命名,命令為:

# cd src/libraries/qtopiabase

# cp custom-linux-generic-g++.h custom-linux-arm-g++.h

# cp custom-linux-generic-g++.cpp custom-linux-arm-g++.cpp

如果對於某些版本的qtopia,並沒有前乙個./cpp檔案,可以找其他類似的複製重新命名就可以了.關鍵重新命名成custom-《目標平台》-g++.h/cpp就可以.不需要在custom-linux-arm-g++.cpp中修改#include "custom-linux-arm-g++.h",因為根本就沒有包含它的標頭檔案,該標頭檔案只是定義特定裝置的引數或者巨集.

2>.qtopia

時區修改.否則qtipia執行時候會到「/usr/share/zoneinfo/」讀取.這一步適合使用ramdisk檔案系統,而根檔案系統又沒有「/usr/share/zoneinfo/」目錄的情況.如果移植給開發板的根檔案系統有這個目錄,則不要進行這步.我的嵌入式linux檔案系統下有/usr/share/zoneinfo目錄,就算沒有,我可以最後建立,所以不修改。

另外一種更簡潔且安全的解決方法是,在1>步中複製後重新命名的標頭檔案(或者src/qtopiacore/qconfig-qpe.h)中,加上巨集定義:#define qtopia_zoneinfo_path "/opt/qtopia4.3.2/target/zoneinfo/" ,注意最後編譯完後要把主機/usr/share/zoneinfo/內容考到設定的時區資訊目錄中。

3>.裁減qtopia core

的庫,主要是注釋或者不注釋掉qtopiacore/qconfig-qpe.h中巨集定義,這些巨集的作用在該檔案中都有說明.注意qt_no_qws_cursor, qt_no_qws_mouse, qt_no_qws_mouse_auto等巨集的功能。

qconfig-qpe.h拷貝到global目錄。

# cp qtopiacore/qconfig-qpe.h qtopiacore/qt/src/corelib/global

這裡其他的幾個標頭檔案也可能需要修改,比如qfeatures.h,qglobal.h,這些檔案中可以定製qpe顯示的樣式,修改視窗的效果等等.以後用到再深入學習吧!

4>.修改3.4.1

版的arm

編譯器的檔案

# cd /usr/local/arm/3.4.1/

# vi arm-linux/include/linux/videodev2.h

在其中新增如下內容:

#define v4l2_pix_fmt_sbggr8 v4l2_fourcc('b','a','8','1')

/* 8 bgbg.. grgr.. */

儲存退出。

# vi arm/3.4.1/arm-linux/sys_include/linux/videodev2.h

在其中新增如下內容:

#define v4l2_pix_fmt_sbggr8 v4l2_fourcc('b','a','8','1')

/* 8 bgbg.. grgr.. */

儲存退出。

嵌入式Linux自學階段性總結 1

嵌入式linux自學階段性總結 zhenzhen365 hotmail.com 歡迎從事嵌入式linux圖形及裝置驅動開發的朋友交流!最近自學嵌入式linux下qt e qtopia和裝置驅動開發,短短的幾個月,遇到了一大堆問題,查詢資料然後思考,消耗了大量的腦細胞,不過還是有收穫的,最終把路終於走...

嵌入式Linux自學階段性總結 3

d.現在就可以配置.configure 引數 export path path usr local arm 3.4.1 bin mkdir opt qtopia cd opt cp r mnt qtopia tslib root tslib1.4 install cd opt qtopia tar ...

嵌入式Linux自學階段性總結 5

二 移植和編譯mscore 0.9.3 cc arm linux gcc configure prefix usr local arm 3.4.1 arm linux host arm linux target arm linux build i386 linux 注意 不能有 with softf...