『壹』 buildroot成功後如何編譯Qt應用程序
首先得把我們在X86機上調好的程序進行交叉編譯,如果在X86上都沒有通過的話。。那就不用交叉編譯了,(肯定是通不過的),還是到正題吧,設置好環境變數,我們用以用echo 來查看環境變數,echo $TMAKEPATH ,如果返回的不是.../qws/linux-arm-g++ 的字元的話,我們一定得從新設置,
export TMAKEPATH=/tmake 的安裝路徑/qws/linux-arm-g++ ,同時QTDIR一定得要指定QTE的安裝路徑,設置過程如下:
export QTDIR=...../qt-2.3.7
以上環境設置好後,我們可以使用tmake來生成Makefile,注意這里我們是用tmake,而不是用qmake(注意),tmake工具在tmake包裡面。 具體做法,我們可以在命令行下打:
tmake -o Makefile 工程名.pro
這樣我們就新生成了一個Makefile文件,下一步,我們要打開這個文件,做一些小的修改
1: 將LINK=arm-linux-gcc 改為:LINK=arm-linux-g++
2:將LIBS=$(SUBLIBS) -L$(QTDIR)/lib -lm -lqte這句話改為:
LIBS=$(SUBLIBS) -L/opt/gcc-2.3.2-glibc-3.3.2/lib -L$(QTDIR)/lib -lm -lqte
加上你的交叉編譯的庫。
最後我們可以make了,一個可以在您的板子上可以運行的二進制文件產生了。linux
『貳』 GCC能否運行於ARM-Linux環境下即GCC能否在ARM平台上運行
簡答:
gcc可以運行在arm-linux下。
gcc,可以在arm平台上運行。
詳解:
gcc,一般指的是,pc版,x86的平台,
用於嵌入式系統,比如arm的cpu,linux的系統下,是:
本來,一直就可以的,
而且有專門的屬於:
交叉編譯
簡答說就是:
在你的pc端,x86的cpu上,製作出一個交叉編譯器
一般叫做arm-linux-gcc
用此arm-linux-gcc去編譯你的程序
編譯出來的程序,可以運行在嵌入式開發板,比如arm的linux下
極其詳盡的解釋:
我剛寫個教程,你去看就知道了:
交叉編譯詳解
交叉編譯詳解
http://www.crifan.com/files/doc/docbook/cross_compile/release/html/cross_compile.html
此教程的主要內容包括:
了什麼是交叉編譯
為何要有交叉編譯
什麼是工具鏈
什麼是交叉工具鏈
交叉編譯器的名字的命名規則:包括你這里所說的arm-linux-gcc的含義
如何獲得交叉編譯器
製作交叉編譯器的各種工具:簡介了常見的crosstool-ng,buildroot,crosstool等等工具
使用已有的交叉編譯器和自己手動編譯交叉編譯器之間的對比
交叉編譯方面的心得和注意事項
等你看完了後,建議用crosstool-ng,或者是buildroot去自己編譯一個arm-linux的gcc。
『叄』 如何編譯openwrt,無線默認打開和修改SSID名稱
在buildroot里添加一個files文件夾,然後裡面的新建etc文件夾,在etc里新建config文件夾,在
<buildroot>/etc/config文件夾里放進你配置好的wireless文件
這是在你的設備處於官方支持的列表的前提下(固件能從官方源碼直接編譯)。市面上各種圖便宜改來改去的你要會自己修改源碼才可以
『肆』 Linux下的QTE下載路徑
qt下載地址,裡面東西很全:
ftp://ftp.trolltech.com/pub/qt/source
詳情參考這個帖子:
[轉]Qt Qt/E Qtopia 的關系
http://hi..com/serial_story/blog/item/074bbd26f028561b8b82a1a7.html
在buildroot下編譯參考:
buildroot-2009.11下編譯QT (Qtopia) 4.5.2 過程記錄
http://hi..com/serial_story/blog/item/e98ce2c442c8cdc738db4964.html
單獨編譯參考:
qt-extended-opensource-src-4.4.3 編譯過程記錄
http://hi..com/serial_story/blog/item/5d3a833e6a7969f6838b135f.html
『伍』 使用buildroot編譯arm架構的linux內核,使其支持usb攝像頭,並使用qemu虛擬運行
#沒有吧ext* 和 VFS編進去吧
cd/usr/src/linux
makemenuconfig
#選擇ext4和VFS,在FileSystem里,很好找
make;makemole_install;makeinstall
『陸』 如何在TI的AM335x上面使用SGX加速的有OpenGL支持的QT
TI官方的指南請看這里,因為發布時間的關系,這裡面已經有很多和最新的軟體包不匹配的地方。經過我的努力,我把這個指南中間復雜的部分給做到Buildroot裡面去了,基本上實現了「傻瓜式」編譯,可通過菜單選擇,簡單地實現QT下使用SGX硬體加速的OpenGL。
由於本文還涉及到了SGX硬體驅動程序模塊的編譯,所以看上去還會比較長,但這部分內容沒有什麼難度。轉載請註明來自EE小站,[email protected]。
簡單的梳理下:
前提是U-boot、內核、文件系統都搞利索了,板子能啟動了
TI的Wiki提供了U-boot和內核的說明,地址點這里。
TI的SDK里提供了製作好的文件系統,但是太龐大了,可以下載Buildroot自己做一個。
下載我做的Buildroot補丁,和TI圖形SDK
補丁的地址在這里。
這個補丁是我給Buildroot 2013.05做的,與之相配的TI圖形SDK在這里,下「Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin」就可以。
應該2013.05之後一段時間Buildroot版本都可以使用這個補丁。
用SDK編譯內核模塊
可以參照TI的指南,地址點這里。也可以直接看本文。
用Buildroot製作根文件系統
具體過程如下:
假設Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin下載到了/home/c,那麼
~ # cd /home/c
/home/c # chmod 744 ./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
/home/c # ./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
會出來一個交互的安裝界面,安裝的時候選擇「8.x」那項(因為處理器是AM335x),並且把SDK安裝到,例如/home/c/core335x_bsp/graphics_sdk_4_10_00_01
安裝完後,打開/home/c/core335x_bsp/graphics_sdk_4_10_00_01/Rules.make
假設你的ARM交叉編譯器安裝在/usr/local/arm/4.7.3-2,前綴是arm-none-linux-gnueabi-,你的內核在/home/c/core335x_bsp/linux-3.2.21,那麼就Rules.make中的內容修改成這樣
# Set home area (ex /home/user/)
HOME=/home/c/core335x_bsp
# Set Toolchain path (ex /home/user/toolchain/arago-2011.09/armv7a)
CSTOOL_DIR=/usr/local/arm/4.7.3-2
# Set Tool chain prefix (ex arm-arago-linux-gnueabi- )
CSTOOL_PREFIX=arm-none-linux-gnueabi-
# Set kernel installation path ( ex /home/user/linux-04.00.01.13 )
KERNEL_INSTALL_DIR=/home/c/core335x_bsp/linux-3.2.21
# Set Target filesystem path ( ex /home/user/targetfs )
TARGETFS_INSTALL_DIR=$(DESTDIR)
# Set installation folder
GRAPHICS_INSTALL_DIR=$(HOME)/graphics_sdk_4_10_00_01
然後就可以編譯了
/home/c # cd core335x_bsp/graphics_sdk_4_10_00_01
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # make DESTDIR=/home/c/nfsroot OMAPES=8.x
假設你的根文件系統在/home/c/nfsroot,那麼請確保有/home/c/nfsroot/etc和/home/c/nfsroot/etc/init.d這兩個目錄,否則安裝時候會出錯,接下來安裝
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # make DESTDIR=/home/c/nfsroot OMAPES=8.x install
這樣,SDK庫就編譯好了,接下來把內核的模塊安裝到文件系統里,假設內核在/home/c/core335x_bsp/linux-3.2.21,已經配置並且編譯好了
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # cd /home/c/core335x_bsp/linux-3.2.21
/home/c/core335x_bsp/linux-3.2.21 # make ARCH=arm moles_install INSTALL_MOD_PATH=/home/c/nfsroot
然後需要把內核驅動模塊增加到依賴表中,位置在/home/c/nfsroot/lib/moles/3.2.21/kernel/drivers/moles.dep,在裡面增加這兩行:
extra/omaplfb.ko:
extra/pvrsrvkm.ko:
接下來就可以用Buildroot製作文件系統了,假設Buildroot的壓縮包buildroot-2013.05.tar.bz2下載到了/home/c/core335x_bsp,我做的Buildroot補丁buildroot-am335x.patch下載到了/home/c/core335x_bsp
/home/c/core335x_bsp/linux-3.2.21 # cd /home/c/core335x_bsp
/home/c/core335x_bsp # tar xf buildroot-2013.05.tar.bz2
/home/c/core335x_bsp # cp buildroot-am335x.patch buildroot-2013.05
/home/c/core335x_bsp # cd buildroot-2013.05
/home/c/core335x_bsp/buildroot-2013.05 # patch -p1 < buildroot-am335x.patch
/home/c/core335x_bsp/buildroot-2013.05 # make menuconfig
然後就可以進行配置,QT在Package Selection for the target > Graphic libraries and applications (graphic/text) > Qt,AM335x的OpenGL支持設置選項在Qt下的Graphics drivers,必須先選中Linux Framebuffer,會出現AM335x SGX OpenGL Dirver,選中並在下方輸入圖形SDK的路徑,例如/home/c/core335x_bsp/graphics_sdk_4_10_00_01,其他的選項按需選擇即可,接下來就可以編譯
/home/c/core335x_bsp/buildroot-2013.05 # make
編譯過程會自動下載所需的各種軟體包,如果沒有選中Qt下的Approve free license,中間會提示選擇授權類型,編譯完成之後,將映像釋放到根文件系統里
/home/c/core335x_bsp/buildroot-2013.05 # tar xf output/image/rootfs.tar -C /home/c/nfsroot
之後,打開/home/c/nfsroot/etc/init.d/powervr.ini,把這裡面改成
[default]
WindowSystem=libpvrQWSWSEGL.so
將/home/c/nfsroot下的文件系統掛載到目標板上,啟動以後,輸入用戶名root登陸,運行
# /etc/init.d/335x-demo
# mv /etc/init.d/rc.pvr /etc/init.d/S99powervr
至此,這個文件系統就支持QT使用SGX硬體加速的OpenGL了。
如果你在配置QT的時候選擇了Compile and install demos and examples (with code),那麼你可以找到/home/c/core335x_bsp/buildroot-2013.05/output/build/qt-4.8.4/examples/opengl/hellogl_es2/hellogl_es2這個文件,把它拷貝到根文件系統里,運行
# hellogl_es2 -qws -display powervr
可以檢驗是否可以正常工作。
需要說明一下,為了讓QT支持OpenGL,AM335x圖形處理器的廠家(不是TI,是Imagination Technologies)提供的插件程序讓QT的動態鏈接庫禁止滑鼠游標顯示。現象就是,雖然看不到滑鼠,但是還可以用。這個目前還沒有解決方法,因為貌似圖形處理器是直接操作Frame Buffer的,有滑鼠估計程序不好寫,性能也會下降吧。如果你要用滑鼠的話,需要自己寫個顯示滑鼠游標的程序。
轉載,僅供參考,祝你愉快,滿意請採納。