查看“MYZR-SAMA5 Linux-3.18 编译手册”的源代码
←
MYZR-SAMA5 Linux-3.18 编译手册
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
= '''文档说明''' = ---- == '''系统环境说明''' == * 编译主机CPU架构:64位 <br> * 编译主机系统:Linux <br> * Linux发行版:Ubuntu <br> * Ubuntu版本类型:服务器版 <br> * Ubuntu版本号:12.04.5 <br> * Ubuntu系统类型:x86-64 <br> <span style="color:red">注意:开发主机请使用ubuntu 12.04.5 x86-64(桌面版或服务器版均可),使用其他发行版的Linux或Ubuntu的其它版本可能会遇到的不必要的问题。 <br> == '''操作说明 ''' == 1)文档中以“$”开头的行,其后是Linux命令。 <br> 2)文档中所有的Linux命令建议手动输入到Linux主机执行(直接复制、粘贴到Linux主机上执行,可能会执行失败)。 <br> 3)文档中的Linux执行命令,如果空格后的下一个字符是“-”的(如:sudo apt-get –y install之类的),请手动输入到Linux主机执行(直接复制、粘贴到Linux主机上执行,通常会执行失败)。 <br> 4)文档中所有一行没写完的Linux命令请手动输入到Linux主机执行,(因为复制、粘贴命令不能包含类似“换行符”之类的特殊字符)。 <br> 5)按文档输入并执行Linux命令时注意观察命令的执行结果与文档图片中的是否一致,以确认命令是否输入有误及是否执行失败。 <br> 6)第一遍编译请严格按照文档进行,否则可能出现莫名其妙的错误。<br> == '''截图说明''' == 为使视图看起来简洁整齐,截图中的命令提示符统一使用myzr$。<br> == '''图片中的Linux命令''' == 在文档的图片中观察“myzr$”开头的行可以直观的看到输入的Linux命令。<br> == <span style="color:red">'''重要信息说明'''</span> == <span style="color:red">为避免各位客户在搭建开发环境及编译过程中遇到不必要的问题浪费时间和精力,推荐使用明远智睿发布的“vb43-u12045-serv-amd64”虚拟机系统。<br></span> '''具体参见 [[MYZR虚拟机系统指导]]''' = '''安装并配置交叉编译工具链''' = ---- == '''准备交叉编译工具链安装包''' == 1)下载交叉编译工具<br> 交叉编译工具:gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz<br> 交叉编译工具配置文件:gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.config<br> 2)在虚拟机系统创建工具目录<br> $ mkdir ~/my-sama5/03_tools -p <br> [[文件:MY-SAMA5 Linux-3.18_build_3.1.0.1.png|642px]]<br> 3)复制文件到虚拟机系统<br> 把交叉编译工具和配置文件复制到 ~/my-sama5/03_tools<br> 自己采取合适的方式完成。 == '''安装交叉编译工具''' == 1)进入交叉编译工具链目录<br> $ cd ~/my-sama5/03_tools/ <br> [[文件:MY-SAMA5 Linux-3.18_build_3.2.0.1.png|642px]]<br> 2)解压(安装)交叉编译工具<br> $ tar xf gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz<br> [[文件:MY-SAMA5 Linux-3.18_build_3.2.0.2.png|642px]]<br> 3)检查安装 <br> 查看交叉编译工具链的版本信息以验证交叉编译工具链安装正常。<br> $ ~/my-sama5/03_tools/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -v<br> 执行命令后会出现类似如下的信息:<br> [[文件:MY-SAMA5 Linux-3.18_build_3.2.0.3.png|642px]]<br> 可以看到交叉编译工具链相关的信息。<br> == '''配置交叉编译工具环境变量 ''' == 1)设置编译配置文件的环境变量<br> $ SAMA5_CONF=${HOME}/my-sama5/03_tools/mysama5_gcc493_hf_env <br> [[文件:MY-SAMA5 Linux-3.18_build_3.3.0.1.png|642px]]<br> 2)将 ARCH 环境变量写入配置文件 <br> $ echo "ARCH=arm" > $SAMA5_CONF <br> [[文件:MY-SAMA5 Linux-3.18_build_3.3.0.2.png|642px]]<br> 3)将交叉编译工具路径写入配置文件 <br> $ sed -i "\$a SAMA5_TC_PATH=${HOME}/my-sama5/03_tools" $SAMA5_CONF <br> [[文件:MY-SAMA5 Linux-3.18_build_3.3.0.3.png|642px]]<br> 4)将交叉编译工链配置写入配置文件 <br> $ sed -i "\$a export CROSS_COMPILE=\$SAMA5_TC_PATH/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-" $SAMA5_CONF <br> [[文件:MY-SAMA5 Linux-3.18_build_3.3.0.4.png|642px]]<br> 注意:如果在1)~ 4)操作错误,则需要删除编译配置文件(删除的命令:rm $SAMA5_CONF),并重新按照本小节操作。<br> 5) 查看配置文件<br> $ cat $SAMA5_CONF <br> [[文件:MY-SAMA5 Linux-3.18_build_3.3.0.5.png|642px]]<br> 6)验证编译配置文件<br> * 使配置文件生效<br> $ source ~/my-sama5/03_tools/mysama5_gcc493_hf_env<br> [[文件:MY-SAMA5 Linux-3.18_build_3.3.0.6.png|642px]]<br> * 查看交叉编译工具信息<br> $ ${CROSS_COMPILE}gcc –v <br> [[文件:MY-SAMA5 Linux-3.18_build_3.3.0.7.png|642px]]<br> 说明:如果执行“${CROSS_COMPILE}gcc –v”能查看到交叉编译工具信息则表示编译配置文件正确。<br> = '''AT91Bootstrap编译''' = ---- == '''准备源码''' == 1)下载源码<br> 文件名:at91bootstrap-3.7.2.tar.bz2<br> AT91Bootstrap 是二级引导装载程序,为Atmel AT91 SoC提供了一套算法来管理硬件初始化。如时钟速度配置,PIO设置,内存初始化,从指定的引导介质下载主应用程序到主内存并启动。<br> 2)创建工作目录<br> $ mkdir ~/my-sama5/02_source -p <br> [[文件:MY-SAMA5 Linux-3.18_build_4.1.0.1.png|642px]]<br> 3)将源码复制到工作目录<br> 这一步自己采取合适的方式将AT91Bootstrap源码复制到“~/my-sama5/02_source”。也可以参照“2.3 常用功能演示”。<br> 4)解压源码<br> * 进入工作目录<br> $ cd ~/my-sama5/02_source/<br> [[文件:MY-SAMA5 Linux-3.18_build_4.1.0.2.png|642px]]<br> * 执行解压命令<br> $ tar jxf at91bootstrap-3.7.2.tar.bz2<br> [[文件:MY-SAMA5 Linux-3.18_build_4.1.0.3.png|642px]]<br> == '''编译''' == 1)进入源码目录<br> $ cd ~/my-sama5/02_source/at91bootstrap-3.7.2/<br> [[文件:MY-SAMA5 Linux-3.18_build_4.2.0.1.png|642px]]<br> 2)使编译配置文件生效<br> $ source ~/my-sama5/03_tools/mysama5_gcc493_hf_env<br> [[文件:MY-SAMA5 Linux-3.18_build_4.2.0.2.png|642px]]<br> 3)清除代码中可能存在的临时文件<br> $ make mrproper<br> [[文件:MY-SAMA5 Linux-3.18_build_4.2.0.3.png|642px]]<br> 4)生成配置文件<br> $ make mysama5ek200_defconfig<br> [[文件:MY-SAMA5 Linux-3.18_build_4.2.0.4.png|642px]]<br> 5)执行编译<br> $ make –j4<br> [[文件:MY-SAMA5 Linux-3.18_build_4.2.0.5.png|642px]]<br> 6)编译完成<br> [[文件:MY-SAMA5 Linux-3.18_build_4.2.0.6.png|642px]]<br> == '''目标文件''' == 1)目标文件<br> 编译完成后会在源码的binaries目录下产生我们需要的目标文件。<br> 通过ls命令可以看到,其中mysama5ek200-dataflashboot-uboot-3.7.2.bin 即是我们需要的文件。<br> $ ls binaries/<br> [[文件:MY-SAMA5 Linux-3.18_build_4.3.0.1.png|642px]]<br> 2)重命令目标文件<br> 我们在烧录的时候需要使用到这些目标文件。为了烧录的方便,我们需要将目标文件修改为我们需要的文件名,即bootstrap-mysama5ek200.*。<br> $ cd binaries/<br> $ rename 's/mysama5ek200-dataflashboot-uboot-3.7.2/bootstrap-mysama5ek200/' *<br> $ ls -1<br> [[文件:MY-SAMA5 Linux-3.18_build_4.3.0.2.png|642px]]<br> 3)保存目标文件<br> 将bootstrap-mysama5ek200.* 保存。<br> = '''u-boot编译''' = ---- == '''准备源码''' == 1)下载源码<br> 文件名:u-boot-at91-linux4sam_4.7.tar.bz2<br> U-Boot在Atmel AT91 SoC上作为第三阶段引导加载程序。它负责配置主要接口,并引导Linux系统。<br> 2)将源码复制到工作目录<br> 这一步自己采取合适的方式将u-boot源码复制到“~/my-sama5/02_source”。也可以参照“2.3 常用功能演示”。<br> 3)解压源码<br> * 进入工作目录<br> $ cd ~/my-sama5/02_source/<br> [[文件:MY-SAMA5 Linux-3.18_build_5.1.0.1.png|642px]]<br> * 执行解压命令<br> $ tar jxf u-boot-at91-linux4sam_4.7.tar.bz2<br> [[文件:MY-SAMA5 Linux-3.18_build_5.1.0.2.png|642px]]<br> == '''编译 ''' == 1)进入u-boot源码目录<br> $ cd ~/my-sama5/02_source/u-boot-at91-linux4sam_4.7/<br> [[文件:MY-SAMA5 Linux-3.18_build_5.2.0.1.png|642px]]<br> 2)使编译配置文件生效<br> $ source ~/my-sama5/03_tools/mysama5_gcc493_hf_env<br> [[文件:MY-SAMA5 Linux-3.18_build_5.2.0.2.png|642px]]<br> 3)清除代码中可能存在的临时文件<br> $ make distclean<br> [[文件:MY-SAMA5 Linux-3.18_build_5.2.0.3.png|642px]]<br> 4)生成配置文件<br> $ make mysama5ek200_defconfig<br> [[文件:MY-SAMA5 Linux-3.18_build_5.2.0.4.png|642px]]<br> 5)执行编译<br> $ make –j4<br> [[文件:MY-SAMA5 Linux-3.18_build_5.2.0.5.png|642px]]<br> 6)编译完成<br> [[文件:MY-SAMA5 Linux-3.18_build_5.2.0.6.png|642px]]<br> == '''目标文件''' == 编译完成后会在源码的目录下产生我们需要的目标文件。<br> 通过ls命令可以看到。其中u-boot.bin 即是我们需要的文件。<br> $ ls u-boot* -1<br> [[文件:MY-SAMA5 Linux-3.18_build_5.3.0.1.png|642px]]<br> 2)重命令目标文件<br> 我们在烧录的时候需要使用到这些目标文件。为了烧录的方便,我们需要将目标文件修改为我们需要的文件名,即uboot-mysama5ek200.bin。<br> $ mv u-boot.bin uboot-mysama5ek200.bin<br> $ ls uboot-mysama5ek200.bin<br> [[文件:MY-SAMA5 Linux-3.18_build_5.3.0.2.png|642px]]<br> 3)保存目标文件<br> 将uboot-mysama5ek200.bin 保存。<br> = '''内核编译''' = ---- == '''准备源码''' == 1)下载源码<br> 文件名:linux-at91-linux4sam_4.7.tar.bz2<br> 2)将源码复制到工作目录<br> 这一步自己采取合适的方式将内核源码复制到“~/my-sama5/02_source”。也可以参照“2.3 常用功能演示”。<br> 3)解压源码<br> * 进入工作目录<br> $ cd ~/my-sama5/02_source/<br> [[文件:MY-SAMA5 Linux-3.18_build_6.1.0.1.png|642px]]<br> * 执行解压命令<br> $ tar jxf linux-at91-linux4sam_4.7.tar.bz2<br> [[文件:MY-SAMA5 Linux-3.18_build_6.1.0.2.png|642px]]<br> == '''编译''' == 1)进入内核源码目录<br> $ cd ~/my-sama5/02_source/linux-at91-linux4sam_4.7/<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.0.1.png|642px]]<br> 2)使编译配置文件生效<br> $ source ~/my-sama5/03_tools/mysama5_gcc493_hf_env<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.0.2.png|642px]]<br> 3)清除代码中可能存在的临时文件<br> $ make distclean<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.0.3.png|642px]]<br> === 编译内核文件 === 1)生成内核配置文件<br> $ make ARCH=arm mysama5ek200_defconfig<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.1.1.png|642px]]<br> 2)执行内核文件编译命令<br> $ make -j4 ARCH=arm zImage<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.1.2.png|642px]]<br> 3)内核文件编译完成<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.1.3.png|642px]]<br> 4)内核目标文件<br> $ ls arch/arm/boot/zImage<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.1.4.png|642px]]<br> === 编译设备树文件 === 1)执行设备树文件编译命令<br> $ make ARCH=arm mysama5ek200-d36.dtb<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.2.1.png|642px]]<br> 2)设备树目标文件<br> $ ls arch/arm/boot/dts/mysama5ek200-d36.dtb<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.2.2.png|642px]]<br> === 编译内核模块 === 1)执行内核模块编译命令<br> $ make ARCH=arm modules<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.3.1.png|642px]]<br> 2)内核模块编译完成<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.3.2.png|642px]]<br> 3)安装内核模块到指定目录<br> $ make ARCH=arm modules_install INSTALL_MOD_PATH=./modules<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.3.3.png|642px]]<br> 4)打包内核模块<br> $ tar cjf modules_mysama5ek200.tar.bz2 modules/*<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.3.4.png|642px]]<br> 5)模块包<br> $ ls modules_mysama5ek200.tar.bz2<br> [[文件:MY-SAMA5 Linux-3.18_build_6.2.3.5.png|642px]]<br> = '''文件系统编译''' = ---- == '''注意及说明''' == a) 原始编译的过程中的下载量大约4G。(提示:可以使用我们下载好的一些文件,以减少下载量,节约时间,在7.4中会说到)。 <br> b) 编译主机的网络连接最好使用能访问www.fackbook.com 的网络,不然可能会受到境内防火墙的限制而无法下载编译需要的软件包。 <br> c) 初次编译需要的时间根据网络状态及编译主机的配置需要2小时到无限时间(经粗略统计除去下载时间,在16核CPU、16G内存的主机上编译QT5系统用了大约100分钟。) <br> 客户请根据实际情况决定是否自行编译文件系统或使用我们提供的文件系统。 <br> == '''编译前的准备''' == === 准备Yocto编译环境 === 说明,Yocto编译依赖一些软件包,所以需要在开发主机上进行安装。 <br> $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat <br> [[文件:MY-SAMA5 Linux-3.18_build_7.2.1.1.png|642px]]<br> $ sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc <br> [[文件:MY-SAMA5 Linux-3.18_build_7.2.1.2.png|642px]]<br> $ sudo apt-get install uboot-mkimage <br> [[文件:MY-SAMA5 Linux-3.18_build_7.2.1.3.png|642px]]<br> === 准备源码 === 1)下载源码<br> 源码包文件名:atmel_fido.tar.bz2<br> 2)创建yocto工作目录<br> [[文件:MY-SAMA5 Linux-3.18_build_7.2.2.1.png|642px]]<br> 3)将源码复制到开发主机<br> 这一步自己采取合适的方式将源码复制到yocto工作目录(即:/home/myzr/yocto)。也可以参照“2.3 常用功能演示”。<br> 4)解压源码包<br> * 进入用户主目录<br> $ cd ~/yocto<br> [[文件:MY-SAMA5 Linux-3.18_build_7.2.2.2.png|642px]]<br> * 执行解压命令<br> $ tar jxf atmel_fido.tar.bz2<br> [[文件:MY-SAMA5 Linux-3.18_build_7.2.2.3.png|642px]]<br> === 准备软件包 === 1)创建“/opt/yocto”目录用于存放软件包<br> $ sudo mkdir /opt/yocto<br> [[文件:MY-SAMA5 Linux-3.18_build_7.2.3.1.png|642px]]<br> $ sudo chmod 777 /opt/yocto<br> [[文件:MY-SAMA5 Linux-3.18_build_7.2.3.2.png|642px]]<br> 2)下载软件包<br> 在网盘中下载yocto的软件包。<br> 软件包相对路径:yocto/downloads,将downloads下载到Windows。<br> 3)将软件包复制到开发主机<br> 将下载好的“downloads”目录复制到开发主机的“/opt/yocto”。<br> == '''编译文件系统 ''' == === 编译前的配置 === 1)准备编译配置文件<br> 文件目录:conf。下载conf目录到Windows。<br> 2)进入poky目录 <br> $ cd ~/yocto/atmel_fido/poky/<br> [[文件:MY-SAMA5 Linux-3.18_build_7.3.1.1.png|642px]]<br> $ source oe-init-build-env build-atmel<br> [[文件:MY-SAMA5 Linux-3.18_build_7.3.1.2.png|642px]]<br> 3)初始化编译目录<br> $ source oe-init-build-env build-atmel<br> 4)复制编译配置文件到编译目录<br> 将 conf 目录复制到 /home/myzr/yocto/poky/build-atmel 。<br> === 编译QT5文件系统 === $ bitbake atmel-qt5-demo-image<br> [[文件:MY-SAMA5 Linux-3.18_build_7.3.2.1.png|642px]]<br> 提示:整个编译过程除去下载时间,在16核CPU、16G内存的主机上需要1小时左右。 <br> * 目标文件<br> 在./tmp/deploy/images/sama5d3xek/目录下可以找到我们编译生成的目标文件。 <br> === 编译QT5交叉编译工具 === $ bitbake meta-toolchain-qt5<br> [[文件:MY-SAMA5 Linux-3.18_build_7.3.3.1.png|642px]]<br> * 目标文件 <br> 在./tmp/deploy/images/sama5d3xek/目录下可以找到我们编译生成的目标文件。 <br>
返回至
MYZR-SAMA5 Linux-3.18 编译手册
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
[-_-]
NXP平台:
MYZR-IMX6-EK200
MYZR-IMX6-EK200(EN)
MYZR-IMX6-EK314
MYZR-IMX6-EK314(EN)
MYZR-IMX6-EK336
MYZR-IMX6-EK336(EN)
MYZR-IMX6-EK140
MYZR-IMX6-EK140(EN)
MYZR-IMX6-EK140P
MYZR-IMX6-EK140P(EN)
MYZR-IMX8M-EK300
MYZR-IMX8M-EK300(EN)
MYZR-IMX8M-EVK
MYZR-IMX8Mmini-EK240
MYZR-IMX8Mmini-EK240(EN)
MYZR-IMX28-EK142
MYZR-IMX28-EK142(EN)
MYZR-LS1012A-EK200
MYZR-LS1012A-EK200(EN)
Rockchip平台:
MYZR-RK3288-EK314
MYZR-RK3288-EK314(EN)
MYZR-RK3399-EK314
MYZR-RK3399-EK314(EN)
Allwinner平台:
MYZR-R16-EK166
MYZR-R16-EK166(EN)
Microchip平台:
MYZR-SAMA5-EK200
MYZR-SAMA5-EK200(EN)
网关产品:
GW200
GW300
GW310/GW311
ST平台:
MYZR-STM32-EK152
所有页面
工具
链入页面
相关更改
特殊页面
页面信息