阅读 54

firmware update,ps3 firmware

一、编译 Linux 固件

这一章将介绍编译 ROC-RK3328-CC Linux 固件的整个流程。

1.1 准备工作

Linux 固件在如下的环境中编译:

Ubuntu 16.04 amd64

安装以下包:

sudo apt-get install bc bison build-essential curl \

device-tree-compiler dosfstools flex gcc-aarch64-linux-gnu \

gcc-arm-linux-gnueabihf gdisk git gnupg gperf libc6-dev \

libncurses5-dev libpython-dev libssl-dev libssl1.0.0 \

lzop mtools parted repo swig tar zip

1.2 下载 Linux SDK

创建工程目录:

# create project dir

mkdir ~/proj/roc-rk3328-cc

cd ~/proj/roc-rk3328-cc

下载 Linux SDK:

# U-Boot

git clone -b roc-rk3328-cc https://github.com/FireflyTeam/u-boot

# Kernel

git clone -b roc-rk3328-cc https://github.com/FireflyTeam/kernel --depth=1

# Build

git clone -b debian https://github.com/FireflyTeam/build

# Rkjsdzc

git clone -b master https://github.com/FireflyTeam/rkjsdzc

提示:通过以上链接可以在线浏览源码。

开发板编译配置在:

build/board_configs.sh

1.3 编译 U-Boot

编译 U-Boot:

./build/mk-uboot.sh roc-rk3328-cc

输出:

out/u-boot/

├── idbloader.img

├── rk3328_loader_ddr786_v1.06.243.jsdzc

├── trust.img

└── uboot.img

rk3328_loader_ddr786_v1.06.243.jsdzc: DDR 初始化文件。

idbloader.img: DDR 初始化与 miniloader 结合的文件。

trust.img: ARM trusted 固件。

uboot.img: U-Boot映像文件。

相关文件:

configs/roc-rk3328-cc_defconfig: 默认 U-Boot 配置

1.4 编译 Kernel

编译 kernel:

./build/mk-kernel.sh roc-rk3328-cc

输出:

out/

├── boot.img

└── kernel

├── Image

└── rk3328-roc-cc.dtb

boot.img: 包含 Image and rk3328-roc-cc.dtb 的映像文件, 为 fat32 文件系统格式。

Image: 内核映像。

rk3328-roc-cc.dtb: 设备树 blob。

相关文件:

arch/arm64/configs/fireflyrk3328_linux_defconfig: 默认内核配置。

arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts: 开发板设备树描述。

arch/arm64/boot/dts/rockchip/rk3328.dtsi: CPU 设备树描述。

自定义内核配置和更新默认配置:

# 这非常重要!

export ARCH=arm64

cd kernel

# 首先使用默认配置

make fireflyrk3328_linux_defconfig

# 自定义你的 kernel 配置

make menuconfig

# 保存为默认配置

make savedefconfig

cp defconfig arch/arm64/configs/fireflyrk3328_linux_defconfig

注意: 构建脚本不会将内核模块复制到根文件系统。

1.5 编译根文件系统

可以下载预编译的根文件系统,或参考《编译 Linux 根文件系统》自己编译一个。

1.6 打包原始固件

把你的 Linux 根文件系统映像文件放在 out/rootfs.img

out 目录将包含以下文件:

$ tree out

out

├── boot.img

├── kernel

│ ├── Image

│ └── rk3328-roc-cc.dtb

├── rootfs.img

└── u-boot

├── idbloader.img

├── rk3328_loader_ddr786_v1.06.243.jsdzc

├── trust.img

└── uboot.img

2 directories, 8 files

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

这条命令根据《存储映射》所描述的布局,将分区映像文件写到指定位置,最终打包成 out/system.img,

烧写原始固件的步骤,请参考 《上手指南》 一章。

二、遇到的问题

2.1 uboot编译问题

rkjsdzc路径没有加上jsdzc

文件丢失

rk3328_ddr_786MHZ_v1.06.jsdzc

rk3328_miniloader_v2.43.jsdzc

rk3328_bl31_v1.34.jsdzc

rk3328_loader_ddr786_v1.06.243.jsdzc

firefly丢失的文件可以在下面资源找到

改完路径,拷贝以上文件,u-boot编译成功

标签:jsdzc,img,cc,roc,编译,rk3328,Linux,固件

来源: https://www.cnblogs.com/ch122633/p/10755711.html


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐