1.交叉編譯器的安裝
1.為了和視頻保持同步,我在Ubuntu下創(chuàng)建了/mnt/hgfs/linux/目錄,然后將需要的資源都放到該目錄下,交叉編譯器是TQ自帶的EABI-4.3.3_EmbedSky_20100610.tar.bz2
2. #tar jxvf EABI-4.3.3_EmbedSky_20100610.tar.bz2 -C /;使用該命令將交叉編譯器解壓到/opt/EmbedSky/目錄下,/opt/Embedky目錄是解壓后自動生成的,不是用mkdir命令建立的目錄。然后在/opt/Embedky/目錄下會生成4.3.3目錄和crosstools_3.4.5_softfloat目錄,其中4.3.3是4.3.3版本的交叉編譯器,3.4.5就是3.4.5版本的交叉編譯器了,/usr/local/sbin/目錄下會為我們生成制作yaffs文件系統(tǒng)的工具mkyaffs2image。/opt/Embedky/是TQ2440管理源碼的總目錄
3.然后就是修改環(huán)境變量,教程上提示是修改/etc/profile文件以對所有的用戶均有效,而~/.profile是僅對當(dāng)前用戶有效,可是我在~.profile中修改后之后發(fā)現(xiàn)沒有其作用,于是我就修改了~/.bashrc文件,經(jīng)source .bashrc之后,發(fā)現(xiàn)修改后有效,一下是在.bashrc文件的最后一行所添加的信息:
export PATH="/opt/EmbedSky/4.3.3/bin:$PATH" #export PATH="/opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH"
當(dāng)我們用4.3.3的編譯器的時候就把第二行注釋了,當(dāng)我們用3.4.5的編譯器時就把第一行注釋了。
4.然后就在終端下運行$source .bashrc,使剛才的修改立即生效,然后我們使用$arm-linux-gcc -v 就可以查看我們的編譯器版本了,使用$mkyaffs,然后雙擊tab鍵盤就可以查看生成的制作文件系統(tǒng)的工具了。到這里我們就把TQ自帶的交叉編譯器完整安裝到自己機器上了
下一步工作:這里的交叉編譯器是天嵌公司幫我們制作的,但如果我們想定制自己的交叉編譯器,又該怎么做的,網(wǎng)上有很多教程,下一步就是要實現(xiàn)自己的交叉編譯器的制作。
2.編譯uboot
1.首先把要用到的uboot源碼u-boot-1.1.6_20100601.tar.bz2復(fù)制到/mnt/ghfs/linux/目錄下,然后利用$tar jxvf u-boot-1.1.6_20100601.tar.bz2 -C /命令解壓到/opt/EmbedSky/目錄下
2.然后$cd uboot進入到uboot的源碼目錄
3.然后就是利用$make EmbedSky_config配置文件進行uboot配置,其中EmbedSky_config是在uboot目錄下Makefile文件中的一個單獨配置文件
4.$make 命令就可以生成相應(yīng)的uboot.bin文件了
5.打開include/configs/EmbedSky.h文件,主要的配置選項都在該文件下
下一步工作:弄動uboot的原理,盡量理解uboot更多內(nèi)容,以后碰見任意的處理器都可以自己解決。
3.linux內(nèi)核編譯
1.將linux-2.6.30.4_20100531.tar.bz2復(fù)制到/mnt/hgfs/linux目錄下
2.$tar linux-2.6.30.4_20100531.tar.bz2 -C /將linux源碼解壓到/opt/EmbedSky/目錄下,
3.進入到linxu的源碼目錄,調(diào)用TQ已經(jīng)為我們做好的配置單(不同的屏調(diào)用不同的配置單)
4.復(fù)制制作好的配置單為系統(tǒng)編譯時所需要的.config配置單。$cp -f config_EmbedSky_W43_256M .config
5. $make menuconfig 進入配置單進行配置
6.配置完成之后$make zImage即可生成相應(yīng)的內(nèi)核文件
7.編譯內(nèi)核內(nèi)的驅(qū)動模塊(配置內(nèi)核選項為M的項)$make modules
補充:修改內(nèi)核的開機logo
1.首先準(zhǔn)備一張符合屏的bwp圖片,如果是W35的屏就選320*240的bmp位圖,如果是W43的屏幕,就選擇480*272的bmp
2.視頻為選擇的TQ_LOGO_320_240.bmp位圖,24位色。
3.將準(zhǔn)備好的位圖復(fù)制到內(nèi)核的driver/video/logo/目錄下
4.對bmp格式的圖片進行處理,以使linux系統(tǒng)能夠識別,這里是修改成PPM格式的,修改工具為ubuntu主機自帶的GNU Image Manipulation Programer
5.選擇Image-》Mode-》indexed,將256色改為224色-》convert-》Save As為ppm格式的文件-》save-》ASCII-》SAVE
6。將自己的圖片替換自帶的開機圖片,然后重新$make zImage。
下一步就是要弄懂kernel的各項功能,擺脫對TQ的依賴,配置自己的.config
4.編譯BusyBox
1. 首先將busybox-1.16.0.tar.bz2復(fù)制到/mnt/ghfs/linux/目錄下
2. 進入到/opt/EmbedSky/下$tar jxvf busybox-1.16.0.tar.bz2 -C /解壓到/opt/EmbedSky/目錄下,
3。進入busybox源碼$cd busybox-1.16.0
4.使用$make menuconfig對busybox進行配置,導(dǎo)入TQ自帶的配置單,把.config修改為config_EmbedSky
5.對修改的config_EmbedSky進行保存,保存為編譯busybox時所能識別的.config文件
6。$make就可以編譯成busybox了.
7.輸入$make install安裝剛剛編譯的busybox,安裝后會在busybox源碼目錄下生成一個_install目錄,安裝后的busybox就在該目錄下
安裝busybox后會在_install目錄下生成/bin,/sbin,/usr,linuxrc三個文件夾和一個文件
8。在/opt/EmbedSky/目錄下新建一個文件夾,用于制作跟文件系統(tǒng),
9.將利用busybox生成的三個文件夾和一個文件復(fù)制到根文件系統(tǒng)目錄下,以生成跟文件系統(tǒng)的工具
5.linux應(yīng)用程序編譯教程
1.將應(yīng)用程序apps_20100601.tar.bz2復(fù)制到/mnt/hgfs/linux/目錄下
2.$tar jxvf apps_20100601.tar.bz2 -C /解壓到/opt/EmbedSky/下
3.cd /opt/EmbedSky/apps/目錄下就可以編譯應(yīng)用程序了
4.編譯無線網(wǎng)卡的工具集例子:
5.cd /wireless_.../
6.$make clean 清除編譯產(chǎn)生的文件
7.rm -rf _install/ 清除編譯產(chǎn)生的目標(biāo)文件
8.$make 命令編譯應(yīng)用程序
9.$make install命令安裝剛剛編譯好的應(yīng)用程序
10.在——install目錄下會產(chǎn)生該應(yīng)用程序的include ,lib,man,sbin文件夾,
11.將sbin/目錄下所有文件復(fù)制到利用busybox建立的文件系統(tǒng)中/sbin目錄下,如果應(yīng)用程序產(chǎn)生的/lib/目錄下存在*.o的庫文件,把該 庫文件一并復(fù)制到利用busybox建立的跟文件系統(tǒng)的/lib/目錄下,將頭文件復(fù)制到文件系統(tǒng)的include/目錄下
5.編譯buttons的例子
1.cd /Buttons/目錄下
2.$make clean清除編譯產(chǎn)生的文件 3.$make 編譯應(yīng)用程序 4.將生成的可執(zhí)行文件復(fù)制到跟文件系統(tǒng)的/sbin/目錄下
|