查看“MYZR-RK3288-EK314 L31079 编译手册”的源代码
←
MYZR-RK3288-EK314 L31079 编译手册
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
<div> == '''主机环境''' == ubuntu14.04(64bit),已经真机编译验证过。 = '''准备源码包'''= ---- == '''3.10.79版本代码'''== === u-boot源码 === 文件名:rk32-myzr_uboot_2014.10_201803028.tar.bz2<br> === kernel源码 === 文件名:rk32-myzr_kernel_3.10_201803028.tar.bz2<br> === 交叉编译工具 === 文件名:gcc-arm-eabi-4.6.tar.bz2<br> = '''配置编译环境'''= ---- == '''准备源码'''== === 准备源码包=== 1)创建工作目录<br> 创建 ~/my-rk3288 作为工作目录<br> $ mkdir ~/my-rk3288<br> [[文件: my-rk32-ek314build_2.1.1.1.jpg]]<br> 创建 ~/my-rk3288/02_source 作为源码目录<br> $ mkdir ~/my-rk3288/02_source<br> [[文件: my-rk32-ek314build_2.1.1.2.jpg]]<br> 创建 ~/my-rk3288/03_tools 作为工具目录<br> $ mkdir ~/my-rk3288/03_tools<br> [[文件: my-rk32-ek314build_2.1.1.3.jpg]]<br> 2)复制源码包到开发主机中<br> 这一步骤自己采取相应的方式进行。<br> ''提示:这里将网盘中“02_源码”复制到Linux开发主机的“~/my-rk3288/02_source”,将网盘中“03_工具”复制到Linux开发主机的“~/my-rk3288/03_tools”,将网盘中“01_应用”复制到Linux开发主机的“~/my-rk3288/01_application”。''<br> === 解压源码包 === 1)解压u-boot源码和内核源码<br> $ cd ~/my-rk3288/02_source<br> $ tar jxf rk32-myzr_uboot_2014.10_201803028.tar.bz2<br> $ tar jxf rk32-myzr_kernel_3.10_201803028.tar.bz2<br> [[文件: my-rk32-ek314build_2.1.2.1.jpg]]<br> 2)解压交叉编译工具<br> $ cd ~/my-rk3288/03_tools/<br> $ tar jxf gcc-arm-eabi-4.6.tar.bz2<br> [[文件: my-rk32-ek314build_2.1.2.2.jpg]]<br> == '''开发环境配置'''== === 安装需要的包=== 1)更新源列表<br> $ sudo apt-get update<br> [[文件: my-rk32-ek314build_2.2.1.1.jpg]]<br> 更新完成后如下图所示:<br> [[文件: my-rk32-ek314build_2.2.1.2.jpg]]<br> 2)安装aptitude包管理工具和ia32-libs<br> ''提示:如果编译主机的Linux是32位的,可以跳过此步骤。''<br> * 安装aptitude包管理工具<br> $ sudo apt-get –y install aptitude<br> [[文件: my-rk32-ek314build_2.2.1.3.jpg]]<br> * 使用aptitude安装ia32-libs<br> $ sudo aptitude –y install ia32-libs<br> ''提示:下图为安装过aptitude和ia32-libs后,再次执行安装命令的截图。''<br> [[文件: my-rk32-ek314build_2.2.1.4.jpg]]<br> 3)安装mkimage工具<br> $ sudo apt-get -y install uboot-mkimage<br> ''提示:下图为安装过mkimage工具后,再次执行安装命令的截图。''<br> [[文件: my-rk32-ek314build_2.2.1.5.jpg]]<br> 4)安装ncurses-dev<br> <span style="color: red">说明:make menuconfig对其具有依赖性质。</span><br> $ sudo aptitude -y install ncurses-dev<br> ''提示:下图为安装过ncurses-dev工具后,再次执行安装命令的截图。''<br> [[文件: my-rk32-ek314build_2.2.1.6.jpg]]<br> = '''编译u-boot'''= ---- == '''进入u-boot源码目录'''== $ cd ~/my-rk3288/02_source/rk32-myzr_uboot_2014.10/<br> [[文件: my-rk32-ek314build_3.1.1.jpg]]<br> == '''使配置文件生效'''== * 执行source命令<br> $ source ~/my-rk3288/03_tools/gcc-arm-eabi-4.6-env<br> [[文件: my-rk32-ek314build_3.2.1.jpg]]<br> * 查看编译配置<br> $ echo $ARCH<br> $ echo $CROSS_COMPILE<br> ''提示:可看到ARCH和CROSS_COMPILE被设置''<br> [[文件: my-rk32-ek314build_3.2.2.jpg]]<br> * 验证交叉编译工具配置<br> $${CROSS_COMPILE}gcc –v<br> ''提示:执行命令后可以看到终端显示出交叉编译工具的版本信息。如下图:''<br> [[文件: my-rk32-ek314build_3.2.3.jpg]]<br> == '''清除u-boot配置'''== $ make distclean<br> [[文件: my-rk32-ek314build_3.3.1.jpg]]<br> == '''u-boot配置'''== * 评估板及对应的 u-boot 编译配置:<br> {| class="wikitable" |- !评估板主型号 !CPU类型-内存容量 !对应的u-boot配置 |- |rowspan=1|MYZR-RK3288-EK314 |RK3288(四核)- 2G |rk3288_defconfig |} * MYZR-RK3288-EK314-2G配置示例:<br> $ make rk3288_defconfig<br> [[文件: my-rk32-ek314build_3.4.1.jpg]]<br> == '''编译'''== * 执行编译<br> $ make<br> ''提示:这里为了提高编译速度,在make后面加了“-j4”。这里编译的Linux主机是双核4线程的,所以“-j”后面用了4,也就是采用4线程编译。“-j”后面的数字可以根据系统资源分配,但是不应该超过编译主机最大支持的线程数。''<br> [[文件: my-rk32-ek314build_3.5.1.jpg]]<br> * 编译完成<br> ''提示:u-boot编译过程大概需要十几秒钟的时间。''<br> [[文件: my-rk32-ek314build_3.5.2.jpg]]<br> == '''目标文件'''== 编译完成后通过ls命令即可看到编译得到的目标文件RK3288UbootLoader_V2.30.10.bin<br> $ ls<br> [[文件: my-rk32-ek314build_3.6.1.jpg]]<br> = '''编译内核'''= ---- == '''进入内核源码目录'''== $ cd ~/my-rk3288/02_source/rk32-myzr_kernel_3.10/<br> [[文件: my-rk32-ek314build_4.1.1.jpg]]<br> == '''使配置文件生效'''== * 执行source命令<br> $ source ~/my-rk3288/03_tools/gcc-arm-eabi-4.6-env<br> [[文件: my-rk32-ek314build_4.2.1.jpg]]<br> * 查看编译配置<br> $ echo $ARCH<br> $ echo $CROSS_COMPILE<br> ''提示:可看到ARCH和CROSS_COMPILE被设置''<br> [[文件: my-rk32-ek314build_4.2.2.jpg]]<br> * 验证交叉编译工具配置<br> $ ${CROSS_COMPILE}gcc –v<br> ''提示:执行命令后可以看到终端显示出交叉编译工具的版本信息。如下图:''<br> [[文件: my-rk32-ek314build_4.2.3.jpg]]<br> == '''准备配置内核'''== * 清除内核配置<br> $ make distclean<br> [[文件: my-rk32-ek314build_4.3.1.jpg]]<br> * 生成.config文件<br> 说明:MYZR-RK3288-EK314系列评估板使用的配置文件是rk3288-myzr-linux_defconfig<br> $ make rk3288-myzr-linux_defconfig<br> [[文件: my-rk32-ek314build_4.3.2.jpg]]<br> == '''编译内核zImage和设备树dtb'''== {| class="wikitable" |- !评估板主型号 !显示屏类型 !对应的设备树配置 |- |rowspan=3|MYZR-RK3288-EK314 |LVDS(1024X600) |rk3288-myzr_rh568_lvds_linux.img |- |HDMI(1920X1080) |rk3288-myzr_rh568_hdmi_linux.img |- |EDP(1920X1080) |rk3288-myzr_rh568_edp_linux.img |} * 编译(以下是LVDS屏)<br> $ make -j8 rk3288-myzr_rh568_lvds_linux.img<br> 说明:截图中使用了8线程编译。<br> [[文件: my-rk32-ek314build_4.4.1.jpg]]<br> * 编译完成<br> [[文件: my-rk32-ek314build_4.4.2.jpg]]<br> * 目标文件<br> arch/arm/boot/uImage即为编译得到的目标文件,使用ls命令可查看文件信息。<br> $ ls arch/arm/boot/zImage -la<br> [[文件: my-rk32-ek314build_4.4.3.jpg]]<br> == '''编译模块'''== * 编译<br> $ make modules<br> 说明:截图中使用了4线程编译。<br> [[文件: my-rk32-ek314build_4.5.1.jpg]]<br> * 编译完成<br> [[文件: my-rk32-ek314build_4.5.2.jpg]]<br> * 目标文件<br> 编译完成后各模块的.ko文件位于代码所在的目录,通过find命令可以找出编译完成的模块,参考命令如下:<br> $ find -name *.ko<br> [[文件: my-rk32-ek314build_4.5.3.jpg]]<br> = '''打包linux-boot.img'''= ---- == '''编译rockchip-mkbootimg'''== 1) 创建应用程序目录 <br> $ mkdir ~/my-rk3288/01_application<br> $ cd ~/my-rk3288/01_application<br> [[文件: my-rk32-ek314build_5.1.1.jpg]]<br> 2) 解压和编译rockchip-mkbootimg<br> $ tar jxf rockchip-mkbootimg.tar.bz2<br> $ cd rockchip-mkbootimg/<br> $ make && sudo make install<br> [[文件: my-rk32-ek314build_5.1.2.jpg]]<br> == '''打包initrd.img'''== 1) 压缩为img格式 <br> $ cd ~/my-rk3288/01_application/<br> $ tar jxf initrd.tar.bz2<br> $ make -C initrd/<br> [[文件: my-rk32-ek314build_5.2.1.jpg]]<br> 2) 显示结果<br> [[文件: my-rk32-ek314build_5.2.2.jpg]]<br> == '''打包linux-boot.img'''== $ mkbootimg --kernel ../02_source/rk32-myzr_kernel_3.10/arch/arm/boot/zImage --ramdisk initrd.img --second ../02_source/rk32-myzr_kernel_3.10/resource.img -o linux-boot.img<br> [[文件: my-rk32-ek314build_5.3.1.jpg]]<br> = '''文件系统'''= 文件系统包位于网盘对应的镜像文件夹中。支持的文件系统类型及下载方式可参照《MYZR-RK3288-EK314 烧录手册》。<br> = '''打包批量文件relase_update.img'''= ---- == '''编译打包工具'''== $ cd ~/my-rk3288/01_application<br> $ tar jxf rk2918_tools.tar.bz2<br> $ cd rk2918_tools/<br> $ make -j4<br> $ sudo cp afptool img_unpack img_maker mkkrnlimg /usr/local/bin/<br> [[文件: my-rk32-ek314build_7.1.1.jpg]]<br> == '''新建文件夹和复制镜像'''== test/Image/的文件对应烧写工具Image\linux文件,rk3288box-3.10-uboot-ubuntu.parameter.txt重命名为parameter,RESERVED是空文件,RK3288UbootLoader_V2.30.10.bin对应RKLoader.bin,update-script和recover-script在烧写工具复制,package-file的内容重新按对应的文件重命名,如下:<br> [[文件: my-rk32-ek314build_7.2.1.jpg]]<br> $ mkdir ~/my-rk3288/04_rootfs/<br> $ cd ~/my-rk3288/04_rootfs/<br> $ mkdir -p ubuntu/Image<br> $ cp test/Image/* ubuntu/Image/<br> $ cp ubuntu/Image/RKLoader.bin ubuntu/<br> $ cd ubuntu/<br> [[文件: my-rk32-ek314build_7.2.2.jpg]]<br> == '''打包relase_update.img文件'''== $ cd Image/<br> $ afptool -pack . ../update.img<br> $ cd ..<br> $ img_maker -rk32 RKLoader.bin update.img relase_update.img<br> [[文件: my-rk32-ek314build_7.3.1.jpg]]<br> </div>
返回至
MYZR-RK3288-EK314 L31079 编译手册
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
[-_-]
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
所有页面
工具
链入页面
相关更改
特殊页面
页面信息