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

原創 2016-03-24 08:20:00 i.MX6UL iMX6UL 開發板 Linux編譯

 

 

開發環境是開發人員在開發過程當中,所需的軟硬件平臺。開發環境并不是一個固定的樣式,本文中將詳細講解一個嵌入式Linux開發環境搭建的方法。如果您已經對嵌入式開發非常了解的話,可以按照自己的需求來搭建環境。如果和本文環境不一樣而產生報錯,您可以從國內一些Linux論壇和網站搜索相關的信息來解決。本文介紹的環境經過飛凌嵌入式公司的測試,如果對嵌入式開發不是非常熟悉的朋友,希望您按照飛凌嵌入式提供的方法來搭建環境。各位朋友可以放心按照本文說明的方法來搭建開發環境。


1.1  版本說明

?  操作系統: Ubuntu12.04  64 位版

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

?  Bootloader 版本:u-boot-2015.04

?  內核版本:linux-3.14.38

1.2  編譯環境說明

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

?  Vmware8.0+ubuntu12.04:在 XP下安裝虛擬機,并在虛擬機下進行編譯。這種方式的好處是臺電腦就可以搭建開發環境,編譯、燒寫都在同一臺電腦完成,缺點是編譯速度太慢,各種網絡服務不穩定。

1.3  編譯環境搭建

1.3.1Ubuntu的安裝與設置

Ubuntu Linux 介紹:

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

Linux桌面系統版本眾多,目前本手冊所有Linux實驗和源碼在ubuntu-12.04版本測試可以通過。使用其他版本Linux桌面系統,可能會出現gcc編譯器和庫文件相關的問題。碰到類似問題,可以在Linux系統發行商的官方論壇上咨詢和查詢。如果對Linux不熟悉的用戶,強烈建議使用飛凌介紹的方法。

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

 

Ubuntu官網 129Hhttp://www.ubuntu.org.cn

可下載各個版本的Ubuntu。當然,官網能找到各種關于Ubuntu的信息。

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

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

 

1.3.2 安裝Ubuntu

步驟  1 首先準備一張Ubuntu12.04的安裝光盤。將光盤插入光驅,在PCbios中把PC啟動方式設置為光驅啟動,啟動PC

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

步驟 3 選擇“Erase disk and install Ubuntu>>點擊“Continue”按鈕

注意:非虛擬系統會格式化您的硬盤!請謹慎操作。

步驟 4 硬盤空間以及掛載點的分配。這里選擇默認。也可根據個人需要來進行設置.單擊“Install Now

步驟 5 選擇鍵盤布局,默認即可 ,單擊“Continue.

 

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

步驟 7 輸入系統用戶名和密碼,這里輸入的用戶名:forlinx, 密碼:123456僅作為事例.點擊“Continue”按鈕,系統會完成安裝。

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

1.3.3 Linux終端

Linux 系統中終端是一個很實用的與操作系統交互的窗口,您可以使用終端來編譯應用程序,啟動各種系統服務,在Linux系統中占據著非常重要的位置。

 

如圖進行操作,即可將終端設置為快捷鍵。

        

 

以后每次單擊啟動面板上的圖標即可運行終端窗口:

blob.png

1.3.4  Ubuntu12.04 root用戶登錄設置

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

#sudo  -s

步驟 2 然后輸入安裝Ubuntu12.04時設置的系統密碼,即可進入 root用戶權限模式。

步驟 3 在終端窗口中執行

#gedit  /etc/lightdm/lightdm.conf

步驟 4 在文本全部內容刪除并粘貼以下七行內容:

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

步驟 5 然后我們啟動root帳號:
       
# sudo passwd root
步驟 6 根據提示輸入root帳號密碼。(注意:Linux中輸入密碼無符號顯示)
步驟 7 重啟ubuntu,不需要手動輸入root用戶名密碼,系統會自動進入root用戶。

1.3.5  設置Ubuntu網絡參數

因為每個PC的網絡環境不一定一樣,所以需要您根據自己的實際情況來設置Ubuntu的網絡,如果設置不成功,可以去Ubuntu的官方論壇上咨詢。本文PC Linux網絡的設置方法,僅供參考。

截圖是設置虛擬機 dhcp自動獲得ip的步驟

blob.png

選擇nat方式

blob.png

 

上述方法設置后,不用在虛擬機設置ip地址了。

步驟 1 啟動Ubunturoot用戶登陸系統,單擊桌面最右上端的按鈕,彈出如下選項:

步驟 2 選擇 System Settings,雙擊 Network進入網絡設置項:


步驟 3 單擊Options按鈕

blob.png


步驟 4 選擇 IPV4設置,輸入您的IP地址、子網掩碼、網關DNS,點擊Save...,網絡設置成功。

blob.png


步驟 5 測試一下,筆者的宿主機IP192.168.0.30,用虛擬機來ping宿主機:

blob.png

如圖證明網絡設置成功。

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中新建一個終端,輸入下面的命令安裝交叉編譯器:

#cd                        (進入主目錄)

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

#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 添加環境變量到 Profile,執行命令打開編輯 Profile后,重啟電腦。

#gedit /etc/profile

最后一行添加以下內容

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  在終端里面執行以下命令,驗證交叉編譯器安裝是否成功
    
#arm-fsl-linux-gnueabi-gcc -v
下圖為安裝成功提示

blob.png

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

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

1.3.7  安裝依賴包

Linux系統的編譯需要安裝一些工具包,可執行本公司提供的腳本進行自動安裝。本節操作前必須確保您的計算機或虛擬機能正常連接互聯網,如您在安裝中出現網絡斷開連接請再按照以下步驟進行安裝。

?  安裝 linux 依賴包  需要在ubuntu12.04 32bit 版本安裝 必須連接互聯網。

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

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

步驟 2 setup_env.sh添加可執行權限

#chmod   u+x  setup_env.sh

步驟 3 執行腳本

#./setup_env.sh

步驟 4 安裝過程中出現如下提示需作出對應操作

blob.png                 此提示按下回車

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

 

 

1.4  編譯

搭建好開發環境后,接下來進行U-bootLinux內核在PC  Linux的編譯。本文一切操作基于飛凌嵌入式i.MX6UL開發板,關于iMX6UL的資料請聯系飛凌嵌入式在線客服人員

1.4.1  編譯u-boot

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

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


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

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

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

步驟 3 編譯uboot

#cd uboot-2015-04

# ./build.sh

 

編譯成功后,將在 uboot-2015-04’目錄下產生名為 u-boot.imx’的二進制文件。該文件即我們需要燒寫到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

?   配置內核

復制linux_imx6ul_config  .config 以方便你配置你的內核,命令如下。

#make  distclean

#cp linux_imx6ul_config  .config

?   編譯內核

編譯內核鏡像zImage和設備樹dtb,命令如下:

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

Linux-3.14.38/arch/arm/boot/zImage為將來使用的內核鏡像

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

blob.png

?   單獨編譯 zImage

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

blob.png

?   單獨編譯 dtb

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

blob.png

1.4.3  制作rootfs

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

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

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

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

 

步驟 2 解壓文件系統源文件

#tar  zxvf  rootfs.qt4.tar.bz2

步驟 3 開始制作rootfs文件系統,制作命令:

#./pack-rootfs.sh

blob.png

最后生成rootfs.tar.bz2是可以下載到開發板emmc中的文件系統映像。

 

1.4.4  更新鏡像

1. 使用SD

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

 

2. 使用燒寫工具

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


 

相關產品 >

  • FETMX6UL-C核心板 商業級

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

    了解詳情
    FETMX6UL-C核心板 商業級
  • FETMX6UL-C核心板 工業級

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

    了解詳情
    FETMX6UL-C核心板 工業級

推薦閱讀 換一批 換一批