firefly 单独编译linux,Firefly | 让科技更简单,让生活更智能

前言

本文介绍了如何将主机上的固件文件,通过 USB 双头公对公数据线(下文统称 USB 数据线),烧录到开发板的 eMMC 闪存中。

升级时,需要根据主机操作系统和固件类型来选择合适的升级方式。

注意:

Linux 固件每次升级都需要进入 《MaskRom 模式》,

再则,如果 eMMC 为 Linux 系统后,需要更换 Android系统,也需进入 MaskRom模式后升级。

在只有 SD卡的情况下,

准备工作

ROC-RK3328-CC 开发板

良好的 USB 双头公对公数据线

Windows

安装 RK USB 驱动

连接设备

设备升级,需要进入 MaskRom 烧写模式。

先使设备断开所有电源,又因 USB数据线也能为开发板提供系统启动电源,所以也需断开 USB 数据线的连接:

数据线一端连接开发板。

短接 Flash 的数据脚与地线脚,即板子上预留出来的 CLK 焊盘和 GND 焊盘。

数据线另一端连接主机。

板子上电。

稍候片刻,断开短接,设备应该就会进入 MaskRom 模式。

烧写固件

使用工具:AndroidTool      下载链接:AndroidTool链接

打开AndroidTool后,如下图:

feee86a9298bf082052863875d8d5375.png

烧写统一固件 system.img

1、升级Loader文件:rk3328_loader_ddr786_v1.06.243.bin

2、选择需要烧写的统一固件    (点击在该行末尾的空白格处,可在本地选择)

提示:在烧写时,一定要先升级Loader文件!

固件需要本地存在。(编译生成统一固件操作可参考《制作LinuxSD卡》,或  点击这里 可获取统一固件)

烧写完成后,如下图:

a20a9e7dc02927b9470c83b153896513.png

3、将USB双公头数据线拔出后,重启板子即可。

烧写分区镜像

烧写镜像的步骤如下:

切换至"下载镜像"页。

添加要烧写的分区镜像:地址须按照下图烧写(每个镜像有唯一对应的地址)

确保镜像文件的路径正确,需要的话,点路径右边的空白表格单元格来重新选择。

点击"执行"按钮开始升级,升级结束后设备会自动重启。

注意:升级分区前,需查看 parameter.txt 分区地址,确保分区偏移及烧写文件是否正确,

Android 分区地址自行查看 SDK下 device/rockchip/rk3328/parameter.txt 文件,

Linux 分区偏移地址如下:

偏移地址如下图所示

1596c3e38949d62aba347fd4f2ecc8f2.png

烧写分区镜像完成,如下图:

177b07b6f3120d0d72479d3c7731ada6.png

提示:烧写分区完成后,会自动重启板子,等待完成即可。

Linux

RK 提供了一个 Linux 下的命令行工具 rkdeveloptool ,支持统一固件和分区镜像的烧写。

Linux 下无须安装设备驱动,参照上面的连接设备则可。

安装 rkdeveloptool 工具

首先需要安装 rkdeveloptool 的依赖库

sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf -y

然后下载 rkdeveloptool

git clone https://github.com/FireflyTeam/rkbin.git

由于已经编译好了 rkdeveloptool 可执行文件,将其拷贝到 PC 上的 /usr/local/bin 目录下即可使用

sudo cp rkbin/tools/rkdeveloptool /usr/local/bin

连接设备

请参照上面的连接设备,进入 MaskRom模式

烧写固件到 eMMC 闪存

烧写固件有两种方式,一种是使用 rkdeveloptool 工具烧写,另一种是使用脚本烧写。

rkdeveloptool 工具烧写分区固件

使用 rkdeveloptool  烧写分区镜像到板子上的 EMMC 闪存中

sudo rkdeveloptool db           out/u-boot/rk3328_loader_ddr786_v1.06.243.bin

sudo rkdeveloptool wl 0x40      out/u-boot/idbloader.img

sudo rkdeveloptool wl 0x4000    out/u-boot/uboot.img

sudo rkdeveloptool wl 0x6000    out/u-boot/trust.img

sudo rkdeveloptool wl 0x8000    out/boot.img

sudo rkdeveloptool wl 0x40000   out/linaro-rootfs.img

再执行以下命令使板子重启

sudo rkdeveloptool rd

注意:每次升级固件,都需要先升级 Loader 文件

rkdeveloptool 工具烧写统一固件

首先,使用 SDK中脚本打包生成统一固件system.img

build/mk-image.sh -c rk3328 -t system -r rk-rootfs-build/linaro-rootfs.img

升级统一固件

sudo rkdeveloptool db            out/u-boot/rk3328_loader_ddr786_v1.06.243.bin

sudo rkdeveloptool wl    0x00    system.img

sudo rkdeveloptool rd

脚本烧写固件

首先,使用 SDK中脚本打包生成统一固件system.img

build/mk-image.sh -c rk3328 -t system -r rk-rootfs-build/linaro-rootfs.img

升级统一固件

build/flash_tool.sh -c rk3328 -p system -i out/system.img

脚本执行完毕后,Firefly-RK3328 会自动重启设备。

build/flash_tool.sh 也可以升级单个分区,可自行了解。

eMMC 启动 Linux系统

烧写固件完成后 ROC-RK3328-CC 板子会经历第一次重启,

这时需要在串口控制台按回车键进入命令行配置模式,

输入以下命令刷入 gpt 分区表后,系统将再次重新启动,并自动加载 rootfs 文件系统。

gpt write mmc 0 $partitions

boot

以后 ROC-RK3328-CC 板子的启动,则不需要进行以上操作。

FAQs

Q1: 如何强行进入 MaskRom 模式?

A1: 如果板子进入不了 Loader 模式,此时可以尝试强行进入 MaskRom 模式。操作方法见《MaskRom 模式》。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值