[i.MX6UL]飛凌嵌入式 iMX6UL 開發(fā)板Linux編譯

原創(chuàng) 2016-03-24 08:20:00 i.MX6UL iMX6UL 開發(fā)板 Linux編譯

 

 

開發(fā)環(huán)境是開發(fā)人員在開發(fā)過程當(dāng)中,所需的軟硬件平臺(tái)。開發(fā)環(huán)境并不是一個(gè)固定的樣式,本文中將詳細(xì)講解一個(gè)嵌入式Linux開發(fā)環(huán)境搭建的方法。如果您已經(jīng)對(duì)嵌入式開發(fā)非常了解的話,可以按照自己的需求來搭建環(huán)境。如果和本文環(huán)境不一樣而產(chǎn)生報(bào)錯(cuò),您可以從國(guó)內(nèi)一些Linux論壇和網(wǎng)站搜索相關(guān)的信息來解決。本文介紹的環(huán)境經(jīng)過飛凌嵌入式公司的測(cè)試,如果對(duì)嵌入式開發(fā)不是非常熟悉的朋友,希望您按照飛凌嵌入式提供的方法來搭建環(huán)境。各位朋友可以放心按照本文說明的方法來搭建開發(fā)環(huán)境。


1.1  版本說明

?  操作系統(tǒng): Ubuntu12.04  64 位版

?  交叉工具鏈:arm-fsl-linux-gnueabi-gcc-4.6.2

?  Bootloader 版本:u-boot-2015.04

?  內(nèi)核版本:linux-3.14.38

1.2  編譯環(huán)境說明

?  Linux PC:在PC上直接安裝ubuntu12.04作為編譯的主機(jī),這樣做的好處是編譯速度快、穩(wěn)定。

?  Vmware8.0+ubuntu12.04:在 XP下安裝虛擬機(jī),并在虛擬機(jī)下進(jìn)行編譯。這種方式的好處是臺(tái)電腦就可以搭建開發(fā)環(huán)境,編譯、燒寫都在同一臺(tái)電腦完成,缺點(diǎn)是編譯速度太慢,各種網(wǎng)絡(luò)服務(wù)不穩(wěn)定。

1.3  編譯環(huán)境搭建

1.3.1Ubuntu的安裝與設(shè)置

Ubuntu Linux 介紹:

Ubuntu是一個(gè)以桌面應(yīng)用為主的Linux操作系統(tǒng)。Ubuntu擁有很多優(yōu)點(diǎn),相對(duì)于其他版本的Linux,Ubuntu也有著自己的優(yōu)勢(shì)。首先,安裝系統(tǒng)非常簡(jiǎn)單,只需要非常少的設(shè)置即可,完全可以和Windows桌面系統(tǒng)想媲美;其次,圖形界面很人性化,模仿了在xp下常用的快捷鍵;還有,安裝和升級(jí)程序時(shí),可以通過網(wǎng)絡(luò),由系統(tǒng)自行安裝依賴的文件包,從此不必再為Linux系統(tǒng)的依賴關(guān)系大傷腦筋。綜合考慮大家的使用習(xí)慣和學(xué)習(xí)的需要,我們選用Ubuntu Linux,并在產(chǎn)品光盤中提供了Ubuntu12.04光盤鏡像‘ubuntu-12.04-i386.iso’以便于用戶刻盤和虛擬系統(tǒng)安裝。

Linux桌面系統(tǒng)版本眾多,目前本手冊(cè)所有Linux實(shí)驗(yàn)和源碼在ubuntu-12.04版本測(cè)試可以通過。使用其他版本Linux桌面系統(tǒng),可能會(huì)出現(xiàn)gcc編譯器和庫(kù)文件相關(guān)的問題。碰到類似問題,可以在Linux系統(tǒng)發(fā)行商的官方論壇上咨詢和查詢。如果對(duì)Linux不熟悉的用戶,強(qiáng)烈建議使用飛凌介紹的方法。

另外,為了滿足各位用戶的需求,在本手冊(cè)的附錄中,特對(duì)VMware虛擬機(jī)使用方法進(jìn)行了詳細(xì)的講解。虛擬機(jī)相關(guān)操作詳見《附錄五:虛擬機(jī)VMware-8.0的安裝與設(shè)置》

 

Ubuntu官網(wǎng) 129Hhttp://www.ubuntu.org.cn

可下載各個(gè)版本的Ubuntu。當(dāng)然,官網(wǎng)能找到各種關(guān)于Ubuntu的信息。

Ubuntu官方論壇 130Hhttp://forum.ubuntu.org.cn/

可以找到大量的實(shí)用的Ubuntu資源,中文論壇。Ubuntu也有官方的英文論壇。

 

1.3.2 安裝Ubuntu

步驟  1 首先準(zhǔn)備一張Ubuntu12.04的安裝光盤。將光盤插入光驅(qū),在PCbios中把PC啟動(dòng)方式設(shè)置為光驅(qū)啟動(dòng),啟動(dòng)PC。

步驟  2 啟動(dòng)PC后,安裝盤會(huì)提示選擇安裝語言種類。使用PC鍵盤的方向鍵選擇在安裝過程中顯示的語言,在這里我們選擇English>>點(diǎn)擊“Install Ubuntu”按鈕。

步驟 3 選擇“Erase disk and install Ubuntu>>點(diǎn)擊“Continue”按鈕

注意:非虛擬系統(tǒng)會(huì)格式化您的硬盤!請(qǐng)謹(jǐn)慎操作。

步驟 4 硬盤空間以及掛載點(diǎn)的分配。這里選擇默認(rèn)。也可根據(jù)個(gè)人需要來進(jìn)行設(shè)置.單擊“Install Now

步驟 5 選擇鍵盤布局,默認(rèn)即可 ,單擊“Continue.

 

步驟 6 選擇所在地,上海, Continue:

步驟 7 輸入系統(tǒng)用戶名和密碼,這里輸入的用戶名:forlinx, 密碼:123456僅作為事例.點(diǎn)擊“Continue”按鈕,系統(tǒng)會(huì)完成安裝。

注意:這里的用戶名屬于普通用戶,不具備root用戶權(quán)限。

1.3.3 Linux終端

Linux 系統(tǒng)中終端是一個(gè)很實(shí)用的與操作系統(tǒng)交互的窗口,您可以使用終端來編譯應(yīng)用程序,啟動(dòng)各種系統(tǒng)服務(wù),在Linux系統(tǒng)中占據(jù)著非常重要的位置。

 

如圖進(jìn)行操作,即可將終端設(shè)置為快捷鍵。

        

 

以后每次單擊啟動(dòng)面板上的圖標(biāo)即可運(yùn)行終端窗口:

blob.png

1.3.4  Ubuntu12.04 root用戶登錄設(shè)置

ubuntu12.04默認(rèn)是不允許root登錄的,在登錄窗口只能看到普通用戶和訪客登錄。以普通身份登陸Ubuntu后我們需要做一些修改。
步驟 1 普通用戶登錄后,修改系統(tǒng)配置文件需要切換到超級(jí)用戶模式,在終端窗口里面輸入命令后回車:

#sudo  -s

步驟 2 然后輸入安裝Ubuntu12.04時(shí)設(shè)置的系統(tǒng)密碼,即可進(jìn)入 root用戶權(quán)限模式。

步驟 3 在終端窗口中執(zhí)行

#gedit  /etc/lightdm/lightdm.conf

步驟 4 在文本全部?jī)?nèi)容刪除并粘貼以下七行內(nèi)容:

[SeatDefaults]
allow-guest=false
autologin-user=root
autologin-user-timeout=0
autologin-session=lightdm-autologin
user-session=ubuntu
greeter-session=unity-greeter

步驟 5 然后我們啟動(dòng)root帳號(hào):
       
# sudo passwd root
步驟 6 根據(jù)提示輸入root帳號(hào)密碼。(注意:Linux中輸入密碼無符號(hào)顯示)
步驟 7 重啟ubuntu,不需要手動(dòng)輸入root用戶名密碼,系統(tǒng)會(huì)自動(dòng)進(jìn)入root用戶。

1.3.5  設(shè)置Ubuntu網(wǎng)絡(luò)參數(shù)

因?yàn)槊總€(gè)PC的網(wǎng)絡(luò)環(huán)境不一定一樣,所以需要您根據(jù)自己的實(shí)際情況來設(shè)置Ubuntu的網(wǎng)絡(luò),如果設(shè)置不成功,可以去Ubuntu的官方論壇上咨詢。本文PC Linux網(wǎng)絡(luò)的設(shè)置方法,僅供參考。

截圖是設(shè)置虛擬機(jī) dhcp自動(dòng)獲得ip的步驟

blob.png

選擇nat方式

blob.png

 

上述方法設(shè)置后,不用在虛擬機(jī)設(shè)置ip地址了。

步驟 1 啟動(dòng)Ubunturoot用戶登陸系統(tǒng),單擊桌面最右上端的按鈕,彈出如下選項(xiàng):

步驟 2 選擇 System Settings,雙擊 Network進(jìn)入網(wǎng)絡(luò)設(shè)置項(xiàng):


步驟 3 單擊Options按鈕

blob.png


步驟 4 選擇 IPV4設(shè)置,輸入您的IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)、DNS,點(diǎn)擊Save...,網(wǎng)絡(luò)設(shè)置成功。

blob.png


步驟 5 測(cè)試一下,筆者的宿主機(jī)IP192.168.0.30,用虛擬機(jī)來ping宿主機(jī):

blob.png

如圖證明網(wǎng)絡(luò)設(shè)置成功。

1.3.6  安裝交叉編譯器

步驟 1 將文件gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz拷貝到Ubuntu主目錄下

i.MX6UL 用戶光盤/iMX6UL 用戶光盤(A\linux\tool\gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz

步驟 2 Ubuntu中新建一個(gè)終端,輸入下面的命令安裝交叉編譯器:

#cd                        (進(jìn)入主目錄)

#mkdir  -p /opt/freescale/usr/local      (創(chuàng)建目錄,若目錄已存在會(huì)提示錯(cuò)誤,跳過即可)

#tar  jxvf  gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz  -C  /opt/freescale/usr/local (編譯器解壓到/opt/freescale/usr/local 

步驟 3 查看gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12是否解壓成功。

#ls -l /opt/freescale/usr/local

如可以看到gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12文件夾即解壓成功。

步驟 4 添加環(huán)境變量到 Profile,執(zhí)行命令打開編輯 Profile后,重啟電腦。

#gedit /etc/profile

最后一行添加以下內(nèi)容

export ARCH=arm

export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-

export PATH=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin:$PATH

保存并退出。在終端輸入命令,使Ubuntu重啟。

#reboot

步驟 5  在終端里面執(zhí)行以下命令,驗(yàn)證交叉編譯器安裝是否成功
    
#arm-fsl-linux-gnueabi-gcc -v
下圖為安裝成功提示

blob.png

回車,就可以使用該編譯器來編譯 Uboot 代碼和內(nèi)核代碼了。

注意: 以上操作均是以 root 用戶登錄系統(tǒng)操作為例; 所修改的文件僅對(duì)當(dāng)前用戶有效, 如果通過終端切換用戶,以上修改的文件對(duì)新用戶無效。

1.3.7  安裝依賴包

Linux系統(tǒng)的編譯需要安裝一些工具包,可執(zhí)行本公司提供的腳本進(jìn)行自動(dòng)安裝。本節(jié)操作前必須確保您的計(jì)算機(jī)或虛擬機(jī)能正常連接互聯(lián)網(wǎng),如您在安裝中出現(xiàn)網(wǎng)絡(luò)斷開連接請(qǐng)?jiān)侔凑找韵虏襟E進(jìn)行安裝。

?  安裝 linux 依賴包  需要在ubuntu12.04 32bit 版本安裝 必須連接互聯(lián)網(wǎng)。

步驟 1 將文件setup_env.sh拷貝到Ubuntu主目錄下

i.MX6用戶光盤/i.MX6用戶光盤(A\linux\tool\setup_env.sh

步驟 2 setup_env.sh添加可執(zhí)行權(quán)限

#chmod   u+x  setup_env.sh

步驟 3 執(zhí)行腳本

#./setup_env.sh

步驟 4 安裝過程中出現(xiàn)如下提示需作出對(duì)應(yīng)操作

blob.png                 此提示按下回車

blob.png    此提示輸入“Y”后按下回車

 

 

1.4  編譯

搭建好開發(fā)環(huán)境后,接下來進(jìn)行U-bootLinux內(nèi)核在PC  Linux的編譯。本文一切操作基于飛凌嵌入式i.MX6UL開發(fā)板,關(guān)于iMX6UL的資料請(qǐng)聯(lián)系飛凌嵌入式在線客服人員

1.4.1  編譯u-boot

uboot源碼 暫不開源,請(qǐng)使用飛凌提供的u-boot.imx,文件所在路徑

?  i.MX6UL用戶資料/Linux\image\uboot.imx


如您自行移植u-boot可參考以下方法進(jìn)行編譯:

步驟 1 解壓縮uboot源碼,命令如下。

#tar zxvf  uboot-2015-04.tar.bz2

步驟 3 編譯uboot

#cd uboot-2015-04

# ./build.sh

 

編譯成功后,將在 uboot-2015-04’目錄下產(chǎn)生名為 u-boot.imx’的二進(jìn)制文件。該文件即我們需要燒寫到Emmc上的U-boot映像文件。

 

1.4.2  編譯Linux-3.14.38

將壓縮包 ‘linux-3.14.38.tar.gz’ 拷貝到你的工作目錄下,解壓縮:

#tar    zxvf    linux-3.14.38.tar.bz2

?  i.MX6用戶光盤/i.MX6用戶光盤(A\linux\src\linux-3.14.38.tar.bz2

?   配置內(nèi)核

復(fù)制linux_imx6ul_config  .config 以方便你配置你的內(nèi)核,命令如下。

#make  distclean

#cp linux_imx6ul_config  .config

?   編譯內(nèi)核

編譯內(nèi)核鏡像zImage和設(shè)備樹dtb,命令如下:

#make  ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi-

Linux-3.14.38/arch/arm/boot/zImage為將來使用的內(nèi)核鏡像

Linux-3.14.38/arch/arm/boot/dts/imx6ul-14x14-evk.dtb為將來所使用的設(shè)備樹

blob.png

?   單獨(dú)編譯 zImage

#make  ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi-  zImage

blob.png

?   單獨(dú)編譯 dtb

#make  ARCH=arm CROSS_COMPILE=arm-fsl-linux-gnueabi-  dtbs

blob.png

1.4.3  制作rootfs

步驟 1 將文件系統(tǒng)源文件 ‘rootfs.tar.gz’拷貝到Ubuntu的根目錄下

?  i.MX6UL用戶光盤/i.MX6UL用戶光盤(A\linux\src\rootfs.qt4.tar.bz2 qt界面文件系統(tǒng)。

?  i.MX6UL用戶光盤/i.MX6UL用戶光盤(A\linux\src\rootfs.tar.bz2console文件系統(tǒng)。

本文以rootfs.qt4.tar.bz2為例作為說明,rootfs.tar.bz2操作相同。

 

步驟 2 解壓文件系統(tǒng)源文件

#tar  zxvf  rootfs.qt4.tar.bz2

步驟 3 開始制作rootfs文件系統(tǒng),制作命令:

#./pack-rootfs.sh

blob.png

最后生成rootfs.tar.bz2是可以下載到開發(fā)板emmc中的文件系統(tǒng)映像。

 

1.4.4  更新鏡像

1. 使用SD

將編譯好的u-boot.imx、zImage、imx6ul-14x14-evk.dtbrootfs.tar.bz2放于光盤資料\Linux\src\createSdcard.tar.bz2\update.tar.bz2\system中,按照“SD卡燒寫”部分進(jìn)行燒寫。

 

2. 使用燒寫工具

將編譯好的u-boot.imx、zImageimx6ul-14x14-evk.dtbrootfs.tar.bz2放于光盤資料\Tools\mfgtools\Profiles\Linux\OS Firmware\files \linux中,按照“使用Mfgtools燒寫系統(tǒng)”部分進(jìn)行燒寫。


 

相關(guān)產(chǎn)品 >

  • FETMX6UL-C核心板 商業(yè)級(jí)

    飛凌嵌入式商業(yè)級(jí)iMX6UL核心板采用NXP公司ARM Cortex-A7 i.MX6UL處理器,板載512MB DDR3內(nèi)存和4GB高速eMMC存儲(chǔ)器。飛凌嵌入式級(jí)imx6ul核心板體積小巧并具有成本優(yōu)勢(shì),為了更好的讓客戶進(jìn)行二次開發(fā),飛凌提供了iMX6UL的PCB文件,包含底板的原理圖和PCB文件,提供了i.MX6UL核心板數(shù)據(jù)手冊(cè),IMX6UL核心板硬件手冊(cè);為了適應(yīng)不同應(yīng)用環(huán)境,飛凌IMX6UL核心板兼容IMX6ULL并同時(shí)具備工業(yè)級(jí)、商業(yè)級(jí)兩種不同的配置。

    了解詳情
    FETMX6UL-C核心板 商業(yè)級(jí)
  • FETMX6UL-C核心板 工業(yè)級(jí)

    i.MX6UltraLite ARM Cortex-A7處理器是 NXP IMX6家族中高能效比CPU芯片的代表,iMX6UL芯片相比同系列的Cortex-A9系列產(chǎn)品,在同等性能下iMX6ul功耗更低。下面介紹一下飛凌i.MX6UL工業(yè)級(jí)核心板的基本參數(shù),飛凌工業(yè)級(jí)iMX6UL核心板,主頻528MHz,內(nèi)存256MB,存儲(chǔ)256MB(1GB可選),6路原生串口,開發(fā)資源豐富,飛凌提供了imx6ul中文參考手冊(cè),方便大家開發(fā)設(shè)計(jì)。

    了解詳情
    FETMX6UL-C核心板 工業(yè)級(jí)

推薦閱讀 換一批 換一批