本文是接着上一篇评测继续,不熟悉的朋友可以先参考前一篇评测:性能再次提升——Atmel SAMA5D4 Xplained Ultra评测
SAMA5D4 yocto编译
Atmel官方为Atmel SAMA5D4 Xplained 提供了多个开发系统,Android,Windows 和Linux版本。Linux也用了可以采用自定制的Yocto。
此文以Ubuntu 14.04操作系统为主机,来编译SAMA5D4的Yocto Linux操作系统。
首先需要安装必须的编译工具:
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat
接下来需要下载所需的代码,因为Yocto的代码不停在更新,Atmel的代码也在更新,会出现每个托管的代码可能不匹配。因此需要注意下载同一个fido分支。
先创建一个用于编译的文件夹yocto,
1. git下载poky代码,注意是fido分支
git clone git://git.yoctoproject.org/poky -b fido
2. git下载meta-openembedded代码
git clone git://git.openembedded.org/meta-openembedded -b fido
3. git下载meta-qt5代码
git clone git://github.com/meta-qt5/meta-qt5.git -b fido
4. git下载meta-atmel代码
git clone git://github.com/linux4sam/meta-atmel.git -b fido
Atmel 开发板推荐:
- ATSAMA5D36 评估套件 一款基于 ARM Cortex-A5 SAMA5D36嵌入式微处理器可运行Linux的微处理器设计开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器携带嵌入式调试器,拥有足够的外设接口的设计开发板。
- SAM4E评估套件 一款基于ARM Cortex-M4处理器的给具有高灵活性的各种各样的应用的评估解决方案。
5. 进入poky文件夹,然后用下面的命令初始化编译目录
source oe-init-build-env build-atmel
此时目录就会切换到poky/build-atmel
6. 在bblayer配置文件里添加meta-atmel层
vim conf/bblayers.conf
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../../..')}"
BBLAYERS ?= " \
${BSPDIR}/meta-atmel \
${BSPDIR}/meta-qt5 \
${BSPDIR}/poky/meta \
${BSPDIR}/poky/meta-yocto \
${BSPDIR}/poky/meta-yocto-bsp \
${BSPDIR}/meta-openembedded/meta-oe \
${BSPDIR}/meta-openembedded/meta-networking \
${BSPDIR}/meta-openembedded/meta-python \
${BSPDIR}/meta-openembedded/meta-ruby \
${BSPDIR}/meta-openembedded/meta-multimedia \
"
Atmel 开发板推荐:
- ATSAMA5D36 评估套件 一款基于 ARM Cortex-A5 SAMA5D36嵌入式微处理器可运行Linux的微处理器设计开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器携带嵌入式调试器,拥有足够的外设接口的设计开发板。
- SAM4E评估套件 一款基于ARM Cortex-M4处理器的给具有高灵活性的各种各样的应用的评估解决方案。
7. 编辑local.conf,指定特定的目标机,代码和程序包类型(ipk)
vim conf/local.conf
[...]
MACHINE ??= "sama5d3-xplained"
[...]
DL_DIR ?= “${TOPDIR}/downloads”
[...]
PACKAGE_CLASSES ?= "package_ipk"
DISTRO = "poky-atmel"
8. 此时已经配置完成,可以开始编译。
bitbake core-image-minimal
此时如果配置正确,会开始下载和编译代码,因为代码托管在github上,有的代码甚至是在googlecode上,因此国内访问受限,1627个任务所需要的时间会有很大不同。
下面这张图就是编译完成后的界面
Atmel 开发板推荐:
- ATSAMA5D36 评估套件 一款基于 ARM Cortex-A5 SAMA5D36嵌入式微处理器可运行Linux的微处理器设计开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器携带嵌入式调试器,拥有足够的外设接口的设计开发板。
- SAM4E评估套件 一款基于ARM Cortex-M4处理器的给具有高灵活性的各种各样的应用的评估解决方案。
9. 编译qt版本也是类似的操作步骤
首先,编辑conf/local.conf文件
vim conf/local.conf
在文件的最后添加下面两行
LICENSE_FLAGS_WHITELIST += "commercial"
SYSVINIT_ENABLED_GETTYS = ""
如图所示:
bitbake atmel-qt5-demo-image,开始下载qt5所需的代码包,并且编译
编译成功后,整个yocto目录占用了30G+
下载并使用编译的操作系统
编译好了操作系统,接下来就要开始下载系统到板子上
在http://www.atmel.com/tools/ATMELSAM-BAIN-SYSTEMPROGRAMMER.aspx 下载并安装SAM-BA工具。
硬件连接需要特别注意,笔者因为连接的问题折腾了好长时间。
MicroUSB要连接到J11(也就是中间的USB,这个USB除了供电外,就是用于SAM-BA下载程序)
接下来也是特别需要注意的地方,否则会下载不了程序:
在插上USB之前先把JP7用跳线帽短接
插上USB后,再把JP7打开
最后再打开SAM-BA软件,此时程序就能自动识别到J11这个USB的COM(每个人的COM编号可能不一样,不要执着于不一致)。
需要对上面的步骤作一下解释:
JP7是用来控制启动顺序的,打开的时候系统会从Nand或者串行的Flash启动,SAM-BA同样需要在JP7断开的时候才能下载程序到板子上。短接时候就是禁止系统就不会从板子上启动。
这个USB又有供电功能,如果一开始没有短接,那么系统直接启动,SAM-BA就无效了。
而SAM-BA下载程序同样需要JP7断开,因此在上电后断开JP7就可以用来下载程序了。
评测的时候我用一根USB-TTL接在板子方便查看信息。
Atmel 开发板推荐:
- ATSAMA5D36 评估套件 一款基于 ARM Cortex-A5 SAMA5D36嵌入式微处理器可运行Linux的微处理器设计开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器携带嵌入式调试器,拥有足够的外设接口的设计开发板。
- SAM4E评估套件 一款基于ARM Cortex-M4处理器的给具有高灵活性的各种各样的应用的评估解决方案。
完成上面的步骤后,SAM-BA接管了板子。如下在打开的SAM-BA软件,选择NandFlash页,然后在Script菜单中,选择Enable NandFlash,然后Execute。
如同上面的步骤,执行Enable OS PMECC parameters
因为板子上原来就有程序,在刷写新的程序前,需要先擦除Flash,同上面的步骤类似,选择Erase All
接下来要开始程序下载步骤,开始之前先查看编译目录里的文件,里面混杂着qt5和mini core两次编译的输出文件
另一方面,也要注意NAND FLASH里的地址映射,避免刷写到错误的位置。
我也刷写之前先把要刷写的文件都列清楚,方便查找(每个人的编译日期不一样,文件名也会不一样)。
sama5d4_xplained-nandflashboot-uboot-3.8-alpha7.bin
0x00040000 u-boot-sama5d4-xplained-v2015.01-at91-r0.bin
0x00180000 zImage--3.18+git0+0a6f1113a2-r0-at91-sama5d4_xplained_hdmi-20151015094017.dtb
0x00200000 zImage--3.18+git0+0a6f1113a2-r0-sama5d4-xplained-20151015094017.bin
0x00800000 atmel-qt5-demo-image-sama5d4-xplained-20151016035957.rootfs.ubi
1. 烧写AT91Bootstrap引导文件,这次的方式有别于后面的步骤,需要注意
在Script选择Send Boot File,然后Execute后选择sama5d4_xplained-nandflashboot-uboot-3.8-alpha7.bin文件
2. 烧写U-Boot文件
此后的步骤不再使用Script里的命令,要注意。
- 找到u-boot-sama5d4-xplained-v2015.01-at91-r0.bin文件
- 地址写入0x00040000
- Send File
3. 烧写Linux dtb文件
- 选择zImage--3.18+git0+0a6f1113a2-r0-at91-sama5d4_xplained_hdmi-20151015094017.dtb文件,有几种可选的dtb,顾名思义有HDMI和PDA(RGB接口的屏幕)两种可选输出,可以按需要选择。
- 地址0x00180000
- Send File
4. 烧写Linux Kernel文件
- 找到zImage--3.18+git0+0a6f1113a2-r0-sama5d4-xplained-20151015094017.bin文件
- 地址写入0x00200000
- Send File
5. 烧写rootfs UBI文件
- 找到atmel-qt5-demo-image-sama5d4-xplained-20151016035957.rootfs.ubi文件
- 地址写入0x00800000
- Send File
至此程序全部烧写成功。接下就可以拔插USB或者按复位按键来验证。
启动后可以看到明显的Yocto项目的提示
用root登录后,系统还是没有其它进程运行。
Atmel 开发板推荐:
- ATSAMA5D36 评估套件 一款基于 ARM Cortex-A5 SAMA5D36嵌入式微处理器可运行Linux的微处理器设计开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器携带嵌入式调试器,拥有足够的外设接口的设计开发板。
- SAM4E评估套件 一款基于ARM Cortex-M4处理器的给具有高灵活性的各种各样的应用的评估解决方案。
原创申明:本文为爱板网原创,谢绝转载!
本文是接着上一篇评测继续,不熟悉的朋友可以先参考前一篇评测:性能再次提升——Atmel SAMA5D4 Xplained Ultra评测
SAMA5D4 yocto编译
Atmel官方为Atmel SAMA5D4 Xplained 提供了多个开发系统,Android,Windows 和Linux版本。Linux也用了可以采用自定制的Yocto。
此文以Ubuntu 14.04操作系统为主机,来编译SAMA5D4的Yocto Linux操作系统。
首先需要安装必须的编译工具:
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat
接下来需要下载所需的代码,因为Yocto的代码不停在更新,Atmel的代码也在更新,会出现每个托管的代码可能不匹配。因此需要注意下载同一个fido分支。
先创建一个用于编译的文件夹yocto,
1. git下载poky代码,注意是fido分支
git clone git://git.yoctoproject.org/poky -b fido
2. git下载meta-openembedded代码
git clone git://git.openembedded.org/meta-openembedded -b fido
3. git下载meta-qt5代码
git clone git://github.com/meta-qt5/meta-qt5.git -b fido
4. git下载meta-atmel代码
git clone git://github.com/linux4sam/meta-atmel.git -b fido
Atmel 开发板推荐:
- ATSAMA5D36 评估套件 一款基于 ARM Cortex-A5 SAMA5D36嵌入式微处理器可运行Linux的微处理器设计开发板。
- ATSAM4E-XPRO评估套件 一款用来评估ATSAM4E16E微控制器携带嵌入式调试器,拥有足够的外设接口的设计开发板。
- SAM4E评估套件 一款基于ARM Cortex-M4处理器的给具有高灵活性的各种各样的应用的评估解决方案。