0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

IMX6 L3035編譯手冊

電子工程師 ? 2018-03-17 11:59 ? 次閱讀

明遠(yuǎn)智睿MY-IMX6L3035編譯手冊

2018年03月15日10:03myzr123

準(zhǔn)備源碼包(preparesourcecodepacakge)3.0.35版本代碼(3.0.35versioncode)u-boot源碼(u-bootsourcecode)

文件名:u-boot-2009.08--svn*.tar.xz

nameoffile:u-boot-2009.08--svn*.tar.xz

kernel源碼(kernelsourcecode)

文件名:linux-3.0.35--svn*.tar.xz

nameoffile:linux-3.0.35--svn*.tar.xz

交叉編譯工具(crosscompifertool)

文件名:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2

nameoffile:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2

配置編譯環(huán)境(configurationofcompiferenvironment)準(zhǔn)備源碼(preparesourcecode)準(zhǔn)備源碼包(preparesourcecodepackage)

1)創(chuàng)建工作目錄

createworkingdirectory

創(chuàng)建~/my-imx6作為工作目錄

create~/my-imx6asworkingdirectory

$mkdir~/my-imx6

創(chuàng)建~/my-imx6/02_source/imx_3.0.35_4.1.0作為源碼目錄

create~/my-imx6/02_source/imx_3.0.35_4.1.0assourcecodedirectory

$mkdir~/my-imx6/02_source/imx_3.0.35_4.1.0-p

創(chuàng)建~/my-imx6/03_tools作為工具目錄

create~/my-imx6/03_toolsastooldirectory

$mkdir~/my-imx6/03_tools-p

2)復(fù)制源碼包到開發(fā)主機(jī)中

copysourcecodepackagetothedevelopmenthost

這一步驟自己采取相應(yīng)的方式進(jìn)行。

doitinthisstepinyourownway。

提示:這里將網(wǎng)盤中“02_源碼”復(fù)制到Linux開發(fā)主機(jī)的“~/my-imx6/02_source/imx_3.0.35_4.1.0”,將網(wǎng)盤中“03_工具/toolchain”復(fù)制到Linux開發(fā)主機(jī)的“~/my-imx6/03_tools”。

tip:thisstepistocopy“02_sourcecode”fromnetworkdiskto“~/my-imx6/02_source/imx_3.0.35_4.1.0”indevelopmenthost,andcopy“03_tool/toolchain”to“~/my-imx6/03_tools”。indevelopmenthost

解壓源碼包(decompresssourcecodepackage)

1)解壓u-boot源碼和內(nèi)核源碼

decompressu-bootsourcecodeandkernelsourcecode

$cd~/my-imx6/02_source/imx_3.0.35_4.1.0

$tarxfu-boot-2009.08--svn*.tar.xz

$tarxflinux-3.0.35--svn*.tar.xz

2)解壓交叉編譯工具

decompresscrosscompilertool

$cd~/my-imx6/03_tools/

$tarjxfgcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2

開發(fā)環(huán)境配置(developmentenvironmentconfiguration)安裝需要的包(installpackageneeded)

1)更新源列表

listofupdatedsource

$sudoapt-getupdate

更新完成后如下圖所示:

afterupdate,itwilllooklikebelow:

2)安裝aptitude包管理工具和ia32-libs

installaptitudepackagemanagementtoolandia32-libs

提示:如果編譯主機(jī)的Linux是32位的,可以跳過此步驟。

tips:ifLinuxofcompilerhostis32bit,youcanskipthisstep。

安裝aptitude包管理工具

installaptitudepackagemanagementtool

$sudoapt-get–yinstallaptitude

使用aptitude安裝ia32-libs

installia32-libswithaptitude

$sudoaptitude–yinstallia32-libs

提示:下圖為安裝過aptitude和ia32-libs后,再次執(zhí)行安裝命令的截圖。

tips:followingisthescreenshotswithre-executionofinstallationcommandafterinstallationofaptitudeandia32-libsisfinished。

3)安裝mkimage工具

installmkimagetool

$sudoapt-get-yinstalluboot-mkimage

提示:下圖為安裝過mkimage工具后,再次執(zhí)行安裝命令的截圖。

tips:followingisthescreenshotswithre-executionofinstallationcommandafterinstallationofmkimagetoolisfinished。

4)安裝ncurses-dev

installncurses-dev

說明:makemenuconfig對其具有依賴性質(zhì)。

instruction:makemenuconfigisdependentonit。

$sudoaptitude-yinstallncurses-dev

提示:下圖為安裝過ncurses-dev工具后,再次執(zhí)行安裝命令的截圖。

tips:followingisthescreenshotswithre-executionofinstallationcommandafterinstallationofncurses-devtoolisfinished。

配置MY-IMX6編譯的環(huán)境變量(configureenvironmentvariablesofMY-IMX6compilation)

1)將平臺信息寫入到一個(gè)新的配置文件

writeplatforminformationtoanewconfiguredfile

$echo“exportARCH=arm”》~/my-imx6/03_tools/myimx6_3035_build_env

2)將交叉編譯工具鏈路徑寫入到配置文件

writecompilertoolchainpathtoconfiguredfile

進(jìn)入交叉編譯工具目錄

entercrosscompilertooldirectory

$cd~/my-imx6/03_tools/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/

將路徑寫入到配置文件

writepathtoconfiguredfile

$sed-i“\$aIMX6_GCC462_PATH=$PWD”~/my-imx6/03_tools/myimx6_3035_build_env

將交叉編譯工具寫入到配置文件

writecrosscompilertooltoconfiguredfile

$sed-i“\$aexportCROSS_COMPILE=\$IMX6_GCC462_PATH/arm-none-linux-gnueabi-”~/my-imx6/03_tools/myimx6_3035_build_env

3)查看配置文件

viewconfiguredfile

$cat~/my-imx6/03_tools/myimx6_3035_build_env

注意:如果在某一步操作錯誤,則需要刪除~/my-imx6/03_tools/myimx6_3035_build_env文件,并重新按照本小節(jié)操作。

note:ifanerroroccursinanystep,needtodelect~/my-imx6/03_tools/myimx6_3035_build_env,andoperateagainallstepsofthissegment。

編譯u-boot(compileu-boot)進(jìn)入u-boot源碼目錄(enteru-bootsourcecodedirectory)

$cd~/my-imx6/02_source/imx_3.0.35_4.1.0/u-boot-2009.08/

使配置文件生效(validateconfiguredfile)

執(zhí)行source命令

executesourcecommand

$source~/my-imx6/03_tools/myimx6_3035_build_env

查看編譯配置

viewcompilerconfiguration

$echo$ARCH

$echo$CROSS_COMPILE

提示:可看到ARCH和CROSS_COMPILE被設(shè)置

tips:youcanseethatARCH和CROSS_COMPILEisconfigured

驗(yàn)證交叉編譯工具配置

verifycrosscompilertoolconfiguration

$${CROSS_COMPILE}gcc–v

提示:執(zhí)行命令后可以看到終端顯示出交叉編譯工具的版本信息。如下圖:

tips:youcanseeversioninformationofcrosscompilertoolshownonterminalafterexecutionofcommand.asbelow:

清除u-boot配置(removeu-bootconfiguration)

$makedistclean

u-boot配置(u-bootconfiguration)

評估板及對應(yīng)的u-boot編譯配置:

evaluationboardanditscorrespondingu-bootcompilerconfiguration:

評估板主型號

(evaluationboardmainmodel)

CPU類型-內(nèi)存容量

(CPUtype-memorycapacity)

對應(yīng)的u-boot配置

(correspondingu-bootconfiguration)

MY-IMX6-EK2006Q(四核)-1G

(6Q(quad.core)-1G)myimx6ek200_6q_config

6Q(四核)-2G

(6Q(quadcore)-2G)myimx6ek200_6q_2g_config

6U(雙核簡化)-1G

(6U(dualcoretile)-1G)myimx6ek200_6u_config

6S(單核)-512M

(6S(singlecore)-512M)myimx6ek200_6s_config

MY-IMX6-EK3146Q(四核)-1G

(6Q(quad.core)-1G)myimx6ek314_6q_config

6Q(四核)-2G

(6Q(quad.core)-2G)myimx6ek314_6q_2g_config

6U(雙核簡化)-1G

(6U(dualcoretile)-1G)myimx6ek314_6u_config

6S(單核)-512M

(6S(singlecore)-512M)myimx6ek314_6s_config

MYIMX6EK200-6Qxx-1G配置示例:

MYIMX6EK200-6Qxx-1Gconfigurationexample:

$makemyimx6ek200_6q_config

編譯(compilation)

執(zhí)行編譯

executecompilation

$make

提示:這里為了提高編譯速度,在make后面加了“-j4”。這里編譯的Linux主機(jī)是雙核4線程的,所以“-j”后面用了4,也就是采用4線程編譯?!?j”后面的數(shù)字可以根據(jù)系統(tǒng)資源分配,但是不應(yīng)該超過編譯主機(jī)最大支持的線程數(shù)。

Tips:Tospeedupthecompilation,add“-j4”aftermake.TheLinuxhostusedtocompileisdual-core,4threads.So“-j”isfollowedby4,whichtakes4threadstocompile.Thenumberbehind“-j”isallocatedbasedonsystemresources,butItshouldnotexceedthemaximumthreadsthehostsupport。

編譯完成

completecompilation

提示:u-boot編譯過程大概需要幾分鐘時(shí)間。

tips:u-bootcompilationprocesswilltakeafewminustesorso。

目標(biāo)文件(targetfile)

編譯完成后通過ls命令即可看到編譯得到的目標(biāo)文件u-boot.bin

youcangetthecompiledfileu-boot.binwithlscommandaftercompilation

$ls

編譯內(nèi)核(compilekernel)進(jìn)入內(nèi)核源碼目錄(enterkernelsourcedirectory)

$cd~/my-imx6/02_source/imx_3.0.35_4.1.0/linux-3.0.35/

使配置文件生效(validateconfiguredfile)

執(zhí)行source命令

executesourcecommand

$source~/my-imx6/03_tools/myimx6_3035_build_env

查看編譯配置

viewcompilerconfiguration

$echo$ARCH

$echo$CROSS_COMPILE

提示:可看到ARCH和CROSS_COMPILE被設(shè)置

tips:youcanseethatARCH和CROSS_COMPILEisconfigured

驗(yàn)證交叉編譯工具配置

verifycrosscompilertoolconfiguration

$${CROSS_COMPILE}gcc–v

提示:執(zhí)行命令后可以看到終端顯示出交叉編譯工具的版本信息。如下圖:

tips:youcanseeversioninformationofcrosscompilertoolshownonterminalafterexecutionofcommand.asbelow:

準(zhǔn)備配置內(nèi)核(prepareforkernelconfiguration)

清除內(nèi)核配置

removekernelconfiguration

$makedistclean

生成.config文件

generated.configfile

說明:MY-IMX6-EK200系列評估板及MY-IMX6-EK314系列評估板使用的配置文件是myimx6_defconfig

instructions:configurationfilesusedforMY-IMX6-EK200seiresofevaluationboardandMY-IMX6-EK314seriesofevaluationboardismyimx6_defconfig

$makemyimx6_defconfig

編譯內(nèi)核(compilekernel)

編譯uImage

compileuImage

$makeuImage

說明:截圖中使用了4線程編譯。

instruction:4threadscompilationisusedinthescreenshots。

編譯完成

completecompilation

目標(biāo)文件

targetfile

arch/arm/boot/uImage即為編譯得到的目標(biāo)文件,使用ls命令可查看文件信息。

arch/arm/boot/uImageisthetargetfilethroughcompilation,youcanviewthefileinformationwithlscommand。

$lsarch/arm/boot/uImage–la

編譯模塊(compilemodule)

編譯

compile

$make

說明:截圖中使用了4線程編譯。

instruction:4threadscompilationisusedinthescreenshots。

編譯完成

completecompilation

目標(biāo)文件

targetfile

編譯完成后各模塊的.ko文件位于代碼所在的目錄,通過find命令可以找出編譯完成的模塊,參考命令如下:

.kofileofeachmoduleisinthedirectorywherecodeislocatedaftercompilation,youcanfindthemodulecompiledwithfindcommandaftercompilation,referingcommandasbelow:

$find-name*.ko

Linux應(yīng)用程序編譯(Linuxapplicationcompilation)編寫應(yīng)用程序(writeapplication)

1)創(chuàng)建應(yīng)用程序目錄

createapplicationdirectory

$mkdir~/my-imx6/02_source/application/-p

$cd~/my-imx6/02_source/application/

2)編寫應(yīng)用程序(這里以hello.c為例)

創(chuàng)建hello.c文件寫入以下代碼并保存:

include

intmain(intargc,char**argv)

{

printf(“Hello,MYZR!\n”);

return;

}

3)查看代碼

$cathello.c

使編譯配置文件生效(validatecompilerconfiguredfile)

執(zhí)行source命令

$source~/my-imx6/03_tools/myimx6_3035_build_env

查看編譯配置

$echo$ARCH

$echo$CROSS_COMPILE

提示:可看到ARCH和CROSS_COMPILE被設(shè)置

驗(yàn)證交叉編譯工具配置

$${CROSS_COMPILE}gcc–v

提示:執(zhí)行命令后可以看到終端顯示出交叉編譯工具的版本信息。如下圖:

編譯應(yīng)用程序(compileapplication)

2)編譯

$${CROSS_COMPILE}gcchello.c-ohello.out

注意:上面的命令有包含“$”號,即“${CROSS_COMPILE}gcc”,是引用我們source時(shí)產(chǎn)生的環(huán)境變量。

3)查看目標(biāo)文件類型

$filehello.out

可以看到目標(biāo)文件hello.out的屬性。

文件系統(tǒng)(filesystem)文件系統(tǒng)說明(filesysteminstruction)

文件系統(tǒng)包位于網(wǎng)盤對應(yīng)的鏡像文件夾中。支持的文件系統(tǒng)類型及下載方式可參照《MY-IMX6燒錄指導(dǎo)》。

解壓文件系統(tǒng)到編譯主機(jī)(decompressfilesystemtocompilerhost)

1)創(chuàng)建文件系統(tǒng)的目錄并進(jìn)入

$mkdir~/my-imx6/04_rootfs/-p

$cd~/my-imx6/04_rootfs/

2)將文件系統(tǒng)復(fù)制到~/my-imx6/04_rootfs/目錄

這一步驟自己采取相應(yīng)的方式進(jìn)行

3)解壓文件系統(tǒng)到指定目錄

$mkdirrootfs

$sudotarjxfrootfs-linux.tar.bz2-Crootfs

添加應(yīng)用到文件系統(tǒng)(addapplicationtofilesystem)

$cp~/my-imx6/02_source/application/hello.outrootfs/app_test/

5)重新打包文件系統(tǒng)

$rm-rfrootfs-linux.tar.bz2

$cdrootfs/

$sudotarcjf。。/rootfs-linux.tar.bz2*

添加模塊到文件系統(tǒng)(addmoduletofilesystem)

準(zhǔn)備需要模塊的.ko文件,其它請參照“添加應(yīng)用到文件系統(tǒng)”。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評論

    相關(guān)推薦

    明遠(yuǎn)智睿MY-IMX6 L3035編譯手冊(2)

    source command$ source ~/my-imx6/03_tools/myimx6_3035_build_env查看編譯配置view compiler configuration
    發(fā)表于 03-09 15:29

    明遠(yuǎn)智睿MY-IMX6 L3035編譯手冊

    ; ~/my-imx6/03_tools/myimx6_3035_build_env將交叉編譯工具寫入到配置文件write cross compiler tool to configured file
    發(fā)表于 03-15 09:05

    MY-IMX6 L3035編譯手冊

    linux-3.0.35--svn*.tar.xz2)解壓交叉編譯工具decompress cross compiler tool$ cd ~/my-imx6/03_tools/$ tar jxf gcc-4.6.2-glibc-2.13-linaro-multilib
    發(fā)表于 03-16 15:53

    明遠(yuǎn)智睿MY-IMX6 L3035編譯手冊

    MY-IMX6 L3035編譯手冊3.0.35版本代碼(3.0.35 version code)u-boot源碼(u-boot source code)文件名:u-boot-2009.
    發(fā)表于 03-27 13:49

    IMX6 Linux-4.1.15編譯參考手冊

    MY-IMX6 Linux-4.1.15 編譯參考手冊[size=0.87em]目錄 [隱藏] 1下載相關(guān)文件1.1A7系列交叉編譯工具鏈1.2A9系列交叉
    發(fā)表于 11-29 17:24

    明遠(yuǎn)智睿MY-IMX6-EK200 L3035測試手冊(3)

    `【接上一章節(jié)明遠(yuǎn)智睿MY-IMX6-EK200 L3035測試手冊(1)】2.7 串口測試  MY-I.MX6評估板有5個(gè)串口,其中4個(gè)為用戶串口(位于底板正面“J1”位置,絲印名稱
    發(fā)表于 12-13 09:42

    IMX6 L3035編譯手冊

    MY-IMX6 L3035編譯手冊目錄 [隱藏] 1準(zhǔn)備源碼包1.13.0.35版本代碼1.1.1u-boot源碼1.1.2kernel源碼1.1.3交叉
    發(fā)表于 12-29 15:25

    IMX6掛載exFAT移動硬盤

    ://github.com/rxrz/exfat-nofuse.git2.編譯源碼cd exfat-nofuse/修改makefile:KDIR ?= /home/linyn/imx6/4.1/linux-4.1.15
    發(fā)表于 03-04 10:31

    iMX6常見 Android系統(tǒng)問題

    方法修改后重新編譯鏡像后,將新編譯的鏡像燒寫到imx6開發(fā)板上: 修改/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
    發(fā)表于 08-29 10:32

    基于IMX6的MCIMX6U8DVM10AB開發(fā)板圖紙

    本文檔中內(nèi)容包含了IMX6的MCIMX6U8DVM10AB開發(fā)板圖紙,希望為各位網(wǎng)友提供幫助。
    發(fā)表于 09-01 11:32 ?95次下載

    iMX6雷克斯開發(fā)板詳細(xì)介紹

    iMX6雷克斯開發(fā)板詳細(xì)介紹
    發(fā)表于 01-19 09:10 ?8次下載

    iMX6 Rex開發(fā)板詳解介紹

    iMX6 Rex開發(fā)板詳解介紹
    發(fā)表于 01-18 17:27 ?55次下載

    IMX6 MfgTool燒錄指導(dǎo)手冊

    Linux-3.14.52 Linux-4.1.15 MY-IMX6-EK140 √ √ MY-IMX6-EK140P √ √ MY-IMX6-EK200 √ √ √ MY-IMX6
    的頭像 發(fā)表于 03-17 11:54 ?8516次閱讀

    ARM核心板iMX6智能設(shè)備系統(tǒng)的電路原理圖免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是iMX6智能設(shè)備系統(tǒng)的電路原理圖免費(fèi)下載。
    發(fā)表于 06-24 08:00 ?12次下載
    ARM核心板<b class='flag-5'>iMX6</b>智能設(shè)備系統(tǒng)的電路原理圖免費(fèi)下載

    iMX6系列-iMX6Q 開發(fā)板 Python 移植

    本文基于飛凌OKMX6Q/DL開發(fā)板為基礎(chǔ)講解,主要使用平臺是imx6系列,linux3.0.35操作系統(tǒng),其他平臺也可以參考,不同平臺之間會存在差異,需自行修改適應(yīng)自己的使用iMX6 Python移植
    的頭像 發(fā)表于 10-28 18:24 ?1196次閱讀
    <b class='flag-5'>iMX6</b>系列-<b class='flag-5'>iMX6</b>Q 開發(fā)板 Python 移植