編譯安裝內核 下載並解壓內核 解壓內核:tar xf linux-2.6.XX.tar.xz 定製內核:make menuconfig 參見makefile menuconfig過程講解 編譯內核和模塊:make 生成內核模塊和vmlinuz,initrd.img,Symtem.map文件 安裝內核和模塊:sudo make moles_install install 復制模塊文件到/lib/moles目錄下、復制config,vmlinuz,initrd.img,Symtem.map文件到/boot目錄、更新grub 其他命令: make mrprobe:命令的作用是在每次配置並重新編譯內核前需要先執行「make mrproper」命令清理源代碼樹,包括過去曾經配置的內核配置文件「.config」都將被清除。即進行新的編譯工作時將原來老的配置文件給刪除到,以免影響新的內核編譯。 make dep:生成內核功能間的依賴關系,為編譯內核做好准備。 幾個重要的Linux內核文件介紹 config 使用make menuconfig 生成的內核配置文件,決定將內核的各個功能系統編譯進內核還是編譯為模塊還是不編譯。 vmlinuz 和 vmlinux vmlinuz是可引導的、壓縮的內核,「vm」代表「Virtual Memory」。Linux 支持虛擬內存,不像老的操作系統比如DOS有640KB內存的限制,Linux能夠使用硬碟空間作為虛擬內存,因此得名「vm」。
B. QT4如何移植到ARM-LINUX目標板
一、准備
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
構建一個新的根文件系統目錄,路徑為
/root/rootfs
二、具體步驟:
1、編譯安裝busybox
在官網下載最新版。可以參考如下幾處要修改的地方:
Busybox Settings ---> Build Options ---> (arm-linux-)Cross Compiler prefix
Busybox Settings ---> Installation Options --->[]Dont't use /usr
Busybox Settings ---> Installation Options --->(/root/rootfs) BusyBox installation prefix
Busybox Settings --->Busybox Library Tuning --->[*] Fancy Shell prompts
輸入如下命令,編譯並安裝。
# make;make install
2、編譯安裝tslib
# ./autogen.sh
# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make;make install
安裝目錄指明為 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是為了在編譯QTE時,不用指定tslib的頭文件和庫文件,方便以後程序開發。
注意:在做這一步前,需要做一個目錄鏈接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目錄下
# ln -s ../../usr/include ./
3、編譯安裝QTE
1)、最基本的配置
# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用這個配置,編譯後的QTE庫文件即可放在目標文件系統的/usr/lib下,而不是默認/usr/local/Trolltech/QtEmbedded-4.5.1 這個很深的目錄
2)、編譯
# make
# cp lib/* /root/rootfs/usr/lib -rd 將QTE庫文件拷貝到根文件系統的目錄
# cp plugins /root/rootfs/usr -rd 將QTE插件目錄拷貝到根文件系統的目錄
4、根文件系統的設置
1)、這時/root/rootfs/usr下應該有 bin etc include lib sbin目錄
tslib生成的etc目錄,包含一個tslib的配置文件 nf,編輯此文件,去掉mole_raw input前的注釋
# mv etc ../ 移動到rootfs的根目錄
2)、進行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
3)、編輯etc/profile,添加以下內容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts
最後,通過mkyaffs2image 製作鏡像,燒寫鏡像,啟動ts_calibrate校驗觸屏即可。
C. Linux系統上用QT編寫ARM9繼電器控製程序的問題。 想寫個QT界面程序到arm板子上,通過界面的按鈕來控制繼電
以下是單片機實踐團為您解答:
1)既然你已經在windows下面搞qt了,轉到linux下面就沒啥編程問題了,都一樣的只是環境搭建有一點點不一樣。
2)windows下面直接用的qtsdk for windows的吧,其實是人家直接給你做好的環境,建議自己用everywhelesource自己編譯了解整個框架的結構,搞清楚windows下面如何顯示的問題就差不多清楚了。
3)啰嗦的說,windows下面你雖然能夠編譯你的代碼看到運行界面,不過我猜你沒有深入了解這個框架不是mfc他如何調用windows的顯示的,其實在linux下面道理也是一樣的。
4)下面說說要怎麼弄,主要是環境搭建,用你板子的交叉編譯器編譯qt源碼就是那個everywhelesource了,這個主要要搞清楚那個configure,進入目錄運行他生成makefile,記得configure後面要帶參數,很多的比如你的交叉編譯器。你可以用--help來看這些參數的詳細說明。這些你要找點專業的文章來看看,英文好點可以直接上官方網站看的,很詳細。
5)編譯好這個之後其實你就可以直接把windows下面的代碼拿來再次編譯就行了,不過有一點你控制繼電器的話還要你板子的gpio驅動,也就是控制引腳的,一般板子的驅動都有的。
6)如果你要模擬的話還要編譯x11版本的qt,這個主要是要得到那個虛擬顯存,用於調試用的,不用直接搞到板子上看效果,這個是x86版本提供的快捷方式,一般都用的,嗯很多的,看一些文章吧,畢竟我只能給你說個大綱蓋的。
7)再說個你這就零分,不然給你多說點,看著煩。不明白在hi我吧。