RK3568-Beginner开发手册

是什么?

  • 【正点原子】ATK-DLRK3568嵌入式Linux系统开发手册V1.3 简化总结

为什么?


怎么做?


核心本质

  • 需要烧录的文件有哪些,文件是从哪里来的?
  • uboot.img、 boot.img、 MiniLoaderAll.bin、 parameter.txt、 misc.img、 rootfs.img、oem.img、 userdata.img、 recovery.img

镜像烧录工具+四种状态

在这里插入图片描述


repo同步代码与屏幕配置

  • repo 是建立在 Git 上的一个多仓库管理工具,可以组织多个仓库的上传和下载, 用于管理多个 Git 存储仓库
  • repo 工具其实就是一个 python 脚本
mkdir ~/bin
# 下载 repo 工具,并赋予其可执行权限
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
chmod a+x ~/bin/repo
# 解压
cd ~/rk3568_linux_sdk/
tar xvf atk-rk3568_linux_release_v1.0_20230620.tgz -C ~/rk3568_linux_sdk

git config --global user.name "xxx" 
git config --global user.email "xxx"
git config --list
# 以详细模式同步本地的 Repo 工作区中的所有仓库
repo/repo/repo sync -l -j10
# 在 SDK 源码根目录下,执行如下命令可查询当前 SDK 的 ATK正点 版本
ls .repo/manifests/
# 在 SDK 源码根目录下,执行如下命令可查询当前 SDK 的 RK公司 版本
ls .repo/manifests/rk356x_linux
  • 网络环境不稳定或者第三方库文件的下载源发生变更,很容易导致下载失败,进而导致根文件系统编译出错
tar -xzf dl.tgz -C ~/rk3568_linux_sdk/buildroot/
  • 设置 DNS 支持 kgithub.com
sudo sed -i '$a 43.154.68.204\tkgithub.com' /etc/hosts
sudo sed -i '$a 43.155.83.75\traw.kgithub.com objects.githubusercontent.kgithub.com' /etc/hosts
  • 选择屏幕
    • 默认使能了 5.5 寸 720x1280 MIPI屏和 HDMI 屏
    • 需要更改为5.5寸 1080x1920 MIPI屏
vi kernel/arch/arm64/boot/dts/rockchip/rk3568-screen_choose.dtsi
#define ATK_LCD_TYPE_MIPI_1080P	//正点原子5.5寸 1080*1920 MIPI屏

SDK编译目录 build.sh update.img

在这里插入图片描述

目录 描述
app 存放上层应用 app,包括 Qt 应用程序,以及其他的 C/C++ 应用程序。
buildroot 基于 buildroot 开发的根文件系统。
debian 基于 Debian 开发的根文件系统。
device/rockchip 存放各芯片板级配置文件和 Parameter 分区表文件,以及一些编译与打包固件的脚本和预备文件。
docs 存放芯片模块开发指导文档、平台支持列表、芯片平台相关文档、Linux 开发指南等。
external 存放所需的第三方库,包括音频、视频、网络、recovery 等。
kernel Linux 4.19 版本内核源码。
prebuilts 存放交叉编译工具链。
rkbin 存放 Rockchip 相关的 Binary 和工具。
rockdev 存放编译输出固件,编译 SDK 后才会生成该文件夹。
tools 存放 Linux 和 Windows 操作系统环境下常用的工具,包括镜像烧录工具、SD 卡升级启动制作工具、批量烧录工具等,譬如前面给大家介绍的 RKDevTool 工具以及 Linux_Upgrade_Tool 工具都存放在该目录。
u-boot 基于 v2017.09 版本进行开发的 uboot 源码。
yocto 基于 Yocto 开发的根文件系统。

环境前置条件

sudo apt-get install git ssh make  libssl-dev  liblz4-tool expect expect-dev  patchelf chrpath gawk texinfo chrpath  diffstat binfmt-support qemu-user-static live-build bison flex fakeroot  cmake  unzip device-tree-compiler ncurses-dev  bzip2 expat cpp-aarch64-linux-gnu libgmp-dev libmpc-dev bc  

解决expect 安装问题

sudo apt-get install software-properties-common
sudo apt-add-repository universe
sudo apt-get install expect
conda config --add channels conda-forge
conda install conda-forge::expect

解决Your PATH contains spaces, TABs, and/or newline (n) characters.

  • /etc/wsl.conf
[interop]
appendWindowsPath = false

解决buildroot编译libffi-3.4.4时,报错:config.log: No such file or directory

  • buildroot/output/build/host-libffi-3.4.4/m4/ax_enable_builddir.m4
# 打开libffi 中的文件:
vim output/build/host-libffi-3.4.4/m4/ax_enable_builddir.m4

# 找到119行的位置
test -f $srcdir/config.log   && mv $srcdir/config.log   .

# 将 mv 改为 cp
test -f $srcdir/config.log   && cp $srcdir/config.log   .

指定 SDK 的板级配置文件

# 查看 build.sh 脚本的使用方法
./build.sh -h
# 执行如下命令指定 SDK 的板级配置文件
./build.sh lunch
# 由于 SDK 更新,有可能 BoardConfig-rk3568-atk-evb1-ddr4-v10.mk 这个配置的编号不是序号 3
#建议使用./build.sh lunch 找到BoardConfig-rk3568-atk-evb1-ddr4-v10.mk板级配置文件
./build.sh alientek_rk3568_defconfig

整体编译 build.sh update.img

  • build.sh 脚本其实是一个软链接文件,实际指向了 device/rockchip/common/build.sh 文件
./build.sh all
# 打包到 SDK/rockdev 目录
./build.sh firmware
# 打包成 update.img 镜像
./build.sh updateimg
  • 或者直接使用,比上述多了
    • 复制 rockdev 目录下的镜像到 IMAGE/ _ RELEASE_TEST/IMAGES 目录(表示编译日期)
    • 保存各个模块的补丁到 IMAGE/ _ RELEASE_TEST/PATCHES 目录
./build.sh
lunch 选择板级配置文件 ./build.sh lunch
uboot 编译 u-boot ./build.sh uboot
kernel 编译 kernel ./build.sh kernel
modules 编译内核模块 ./build.sh modules
rootfs 编译根文件系统 ./build.sh rootfs
buildroot 编译 buildroot 根文件系统 ./build.sh buildroot
debian 编译 Debian 根文件系统 ./build.sh debian
recovery 编译 recovery ./build.sh recovery
all 编译整个 SDK,包括 uboot、 kernel、 rootfs、recovery ./build.sh all
cleanall 清理整个 SDK ./build.sh cleanall
firmware 将镜像打包到 rockdev 目录 ./build.sh firmware
updateimg 将所有镜像打包成一个 update.img 固件 ./build.sh updateimg

单独编译

./build.sh uboot
./build.sh kernel
./
### 回答1: cvae-gan-zoos-pytorch-beginner这个词汇代表一个初学者使用PyTorch框架进行CVAE-GAN(生成式对抗网络变分自编码器)的编码器,这个网络可以在数据集中进行分析学习,并将数据转换为可以生成新数据的潜在向量空间。该网络不需要通过监督学习标签分类,而是直接使用数据的分布。这个编码器的目的是从潜在空间中生成新数据。此模型可以用于不同的任务,例如图像生成和语音生成。 为了实现这一目标,这一模型采用了CVAE-GAN网络结构,其中CVAE(条件变分自编码器)被用来建立机器学习模型的潜在空间,GAN(生成式对抗网络)作为一个反馈网络,以实现生成数据的目的。最后,这个模型需要使用PyTorch框架进行编程实现,并对数据集进行分析和处理,以便输入到模型中进行训练。这个编码器是一个比较复杂的模型,因此,初学者需要掌握深度学习知识和PyTorch框架的相关知识,并有一定的编程经验,才能实现这一任务。 总的来说,CVAE-GAN是一个在生成数据方面取得了重大成就的深度学习模型,可以应用于各种领域,例如图像、语音和自然语言处理等。然而,对于初学者来说,这是一个相对复杂的任务,需要掌握相关知识和技能,才能成功实现这一模型。 ### 回答2: cvae-gan-zoos-pytorch-beginner是一些机器学习领域的技术工具,使用深度学习方法来实现动物园场景的生成。这些技术包括:生成式对抗网络(GAN)、变分自编码器(CVAE)和pytorch。GAN是一种基于对抗机制的深度学习网络,它可以训练出生成逼真的场景图像;CVAE也是一种深度学习网络,它可以从潜在空间中提取出高质量的场景特征,并生成与原图像相似的图像;pytorch是一个深度学习框架,它可以支持这些技术的开发和实现。 在这个动物园场景生成的过程中,通过GAN和CVAE的组合使用可以从多个角度来创建逼真而多样化的动物园场景。此外,pytorch提供了很多工具和函数来简化代码编写和管理数据,使得训练过程更加容易和高效。对于初学者们来说,这些技术和框架提供了一个良好的起点,可以探索深度学习和图像处理领域的基础理论和实践方法,有助于了解如何使用技术来生成更好的图像结果。 ### 回答3: CVaE-GAN-ZOOS-PyTorch-Beginner是一种结合了条件变分自编码器(CVaE)、生成对抗网络(GAN)和零样本学习(Zero-Shot Learning)的深度学习框架。它使用PyTorch深度学习库,适合初学者学习和使用。 CVaE-GAN-ZOOS-PyTorch-Beginner的主要目的是提供一个通用的模型结构,以实现Zero-Shot Learning任务。在这种任务中,模型要从未见过的类别中推断标签。CVaE-GAN-ZOOS-PyTorch-Beginner框架旨在使模型能够从已知类别中学习无监督的表示,并从中推断未知类别的标签。 CVaE-GAN-ZOOS-PyTorch-Beginner的结构由两个关键部分组成:生成器和判别器。生成器使用条件变分自编码器生成潜在特征,并进一步生成样本。判别器使用生成的样本和真实样本区分它们是否相似。这样,生成器被迫学习产生真实的样本,而判别器则被迫学习区分真实的样本和虚假的样本。 总的来说,CVaE-GAN-ZOOS-PyTorch-Beginner框架是一个强大的工具,可以用于解决Zero-Shot Learning问题。它是一个易于使用的框架,适合初学者学习和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

william_myq

你的鼓励是我继续的动力!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值