Rockchip RK3588 - Yocto构建rk3588平台镜像
----------------------------------------------------------------------------------------------------------------------------
开发板 :ArmSoM-Sige7
开发板
eMMC
:64GB
LPDDR4
:8GB
显示屏 :15.6
英寸HDMI
接口显示屏
u-boot
:2017.09
linux
:6.1
----------------------------------------------------------------------------------------------------------------------------
如果您正在开发嵌入式或物联网设备,那么肯定会面对一个挑战:如何为这些设备定制Linux
系统发行版?构建和维护操作系统不是简单的任务,它通常包含如下几个重要方面:
- 引导程序(
bootloader
):引导程序是第一个软件,负责初始化硬件,加载内核到内存,然后启动内核; - 内核(
linux kernel
):操作系统的核心。负责管理系统硬件资源:主要是内存和设备管理,以及通过它的应用程序编程接口向其他软件提供硬件抽象; - 设备驱动:他们是内核的一部分,通过系统调用向应用程序提供对硬件的访问;
- 文件系统:也是内核的一部分,在
linux
系统中:一切皆文件,系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问; - 应用软件管理:应用软件和库组成了系统软件的大部分,一个完整的操作系统通常有数百到数千个软件包。
Linux
和大量开源软件包都是构建Linux
系统发行版的重要组成部分,然而搞清楚这些不同软件包之间的依赖和不兼容性是个很大的困难。这个时候Yocto Project
很可能成为您产品或开发需求的有效解决方案,它是一个开源协作项目,具有如下特点:
Yocto Project
适用于任何架构。无论是芯片还是ODM
供应商都编写了支持性的BSP
,或者如果您有自定义芯片,您可以按照YP
的规格创建BSP
。Yocto Project
支持Intel,ARM,MIPS,AMD,PPC
等;- 大多数
ODM
,OSV
和芯片供应商提供SDK
,BSP
和其他支持结构,以便与Yocto Project
一起使用; - 它专为受限制的嵌入式和物联网设备需求而设计。
Yocto Project
的设计使您只需根据需要添加所需内容或包,而无需删除和减少默认分发。Yocto Projec
t提供了一个示例嵌入式发行版(Poky
),以帮助您快速入门; Yocto Project
提供全面的工具链功能。此工具链已经过Yocto
社区在各种架构和平台上的测试;Yocto Project
遵循严格的发布计划,在所有受支持的版本中包含安全补丁。
一、Yocto
简介
1.1 Yocto
Yocto
全称是Yocto Project
(官方简称 YP
) 是Linux
基金会在2010
年推出的一个开源的协作项目。提供模板、工具和方法以创建定制的Linux
系统和配套工具,而无需关心硬件体系。主要由Poky
和 其他一些工具组成。
从历史上看,Yocto Project
是从OpenEmbedded
项目发展而来的。他们本是两个不同的项目(左侧分离视图),然而,目前的OpenEmbedded
与Yocto Project
已经融合为一体了(右侧合并视图),因为目前已经很少见单独使用OpenEmbedded
了。
1.2 Poky
Poky
是默认的Yocto
项目参考发行版,使用OpenEmbedded
构建系统技术。它由一系列工具、配置文件和配方数据(称为元数据)组成。它与平台无关,使用BitBake
工具、OpenEmbedded Core
和默认元数据集执行交叉编译,如下图所示。

此外,它还提供了一种机制,用于构建和组合成千上万的分布式开源项目,从而形成一个完全可定制的、完整的、连贯的Linux
软件栈。
1.2.1 Bitbake
BitBake
是一个任务调度器和执行系统,可解析Python
和Shell
脚本代码。解析后的代码会生成并运行任务,这些任务是根据代码的依赖关系排序的一系列步骤。
BitBake
会评估所有可用的元数据,管理动态变量扩展、依赖关系和代码生成。此外,它还会跟踪所有任务以确保其完成,从而最大限度地利用处理资源,缩短构建时间并提高可预测性。
1.2.2 OpenEmbedded Core
OpenEmbedded Core
元数据集提供了Poky
构建系统的引擎。它提供核心功能,并力求通用和尽可能精简。它支持七种不同的处理器架构(ARM
、ARM64
、x86
、x86-64
、PowerPC
、PowerPC 64
、MIPS
、MIPS64
、RISC-V32
和 RISC-V 64
),仅支持QEMU
模拟的平台。
1.2.3 元数据
元数据(Metadata
)包括配方和配置文件。它由Python
和Shell Script
文本文件混合组成,提供了非常灵活的工具。
Poky
利用它来扩展OpenEmbedded Core
,并包含两个不同的层,即其他元数据子集,如下所示:
-
meta-poky
:该层提供默认和支持的发布策略、可视化品牌和元数据跟踪信息(维护者、上游状态等)。该层将作为一个精心策划的模板,供发行版构建者用于为其自定义发行版提供种子; -
meta-yocto-bsp
:提供板级支持包(BSP
),作为Yocto
项目开发和质量保证(QA
)过程的参考硬件。
二、准备编译环境
对编译主机的要求,建议ubuntu 16.04
版本以上的修通,并且建议磁盘空闲大小是90GB
以上,内存空间8GB
以上。
2.1 ubuntu
系统
这里实验我直接在我的腾讯云服务器上进行,查看系统版本:
root@ubuntu:~# uname -a
Linux ubuntu 5.15.0-107-generic #117~20.04.1-Ubuntu SMP Tue Apr 30 10:35:57 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
root@ubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal
这里我使用的服务器ubuntu
版本为20.04
。
2.2 安装依赖
在执行Yocto
构建时,以下是执行此操作所需的最基本软件工具。这些工具在所有主机上都是通用的,包括Ubuntu 22.04
;
git
:用于版本控制和获取Yocto
项目源代码,版本为1.8.3.1
或更高版本;tar
:用于解压Yocto
项目中的压缩文件,版本为1.28
或更高版本;python 3
:Yocto
构建系统依赖Python 3
,版本为3.6.0
或更高版本;wget
:用于从网络下载文件;make
:Yocto
构建系统使用Makefile
进行构建,版本为4.0
或更高版本;gcc
:版本为7.5
或更高版本。
确保在ubuntu 20.04
主机上安装了这些工具,以便能够顺利进行Yocto
构建。
root@ubuntu:~# sudo apt update
root@ubuntu:~# sudo apt install git git-lfs tar python3 python3-pip wget make gcc
2.3 ubuntu
指定软件包
除了上面列出的最低要求之外,还需要一些主机软件包才能成功执行Yocto
构建。为了安装这些软件包,请执行以下命令;
root@ubuntu:~# sudo apt install gawk diffstat unzip texinfo build-essential chrpath socat cpio python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev xterm python3-subunit mesa-common-dev zstd liblz4-tool file locales
三、Yocto
构建qemux86-64
镜像
本节简短的文档将引导您完成使用Yocto Project
进行典型镜像构建的过程。你将使用Yocto Project
构建一个名为poky
的适用于仿真的镜像。
注意:Poky
下载和编译的整个环节(除了运行QEMU
虚拟机外)不需要root
权限,请尽可能不要在root
环境下去操作。
3.1 配置代理
由于Poky
源码下载以及构建过程中需要下载大量依赖包,这些包在国内很难下载下来,因此全程使用vpn
时非常重要的。
3.1.1 配置git
代理
比如我使用的某某vpm
,需要进行代理配置:
zhengyang@ubuntu:/work/sambashare/rk3588# git config --global http.https://github.com.proxy https://127.0.0.1:7890
zhengyang@ubuntu:/work/sambashare/rk3588# git config --global https.https://github.com.proxy https://127.0.0.1:7890
通过如上设置不会影响克隆国内的速度,当然也可以通过socks5
代理:
zhengyang@ubuntu:/work/sambashare/rk3588# git config --global http.proxy socks5://127.0.0.1:7891
zhengyang@ubuntu:/work/sambashare/rk3588# git config --global https.proxy socks5://127.0.0.1:7891
如果需要取消代理,只需要:
zhengyang@ubuntu:/work/sambashare/rk3588# git config --unset http.proxy
zhengyang@ubuntu:/work/sambashare/rk3588# git config --unset https.proxy
注意:配置完成后,只能为http
、https
协议加速,无法为git://git.xxxxx
加速。
3.1.2 设置环境变量
设置如下环境变量:
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# vim ~/.bashrc
export http_proxy='https://127.0.0.1:7890/'
export https_proxy='https://127.0.0.1:7890/'
export ftp_proxy='https://127.0.0.1:7890/'
export ALL_PROXY='socks5://127.0.0.1:7891/'
export all_proxy='socks5://127.0.0.1:7891/'
export no_proxy='127.0.0.1'
3.1.3 配置wget
代理
配置wget
代理:
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky/build# vim ~/.wgetrc
https_proxy = https://127.0.0.1:7890
http_proxy = https://127.0.0.1:7890
ftp_proxy = https://127.0.0.1:7890
no_proxy = 127.0.0.1
use_proxy = on
退出当前会话重新登陆使其生效。
3.2 下载Poky
项目
环境准备好之后开始下载源代码,假设在/opt
目录中,执行如下命令。
zhengyang@ubuntu:/work/sambashare/rk3588$ sudo mkdir armsom
zhengyang@ubuntu:/work/sambashare/rk3588$ sudo chown zhengyang:zhengyang armsom
# zhengyang@ubuntu:/work/sambashare/rk3588/armsom# git clone git://git.yoctoproject.org/poky
# 为了使用vpn替换成如下命令
zhengyang@ubuntu:/work/sambashare/rk3588/armsom# git clone https://git.yoctoproject.org/poky
zhengyang@ubuntu:/work/sambashare/rk3588/armsom# cd poky
我们尽量选择一个稳定的长期支持的版本来做开发,比如kirkstone
(yocto-4.0
)版本,推荐使用,支持到2026
年。
切换到对应的版本:
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# git checkout -b kirkstone origin/kirkstone
分支 'kirkstone' 设置为跟踪来自 'origin' 的远程分支 'kirkstone'。
切换到一个新分支 'kirkstone'
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# ll
drwxrwxr-x 6 zhengyang zhengyang 4096 6月 8 14:25 bitbake/
drwxrwxr-x 4 zhengyang zhengyang 4096 6月 8 14:24 contrib/
drwxrwxr-x 21 zhengyang zhengyang 4096 6月 8 14:25 documentation/
drwxrwxr-x 8 zhengyang zhengyang 4096 6月 8 14:25 .git/
-rw-rw-r-- 1 zhengyang zhengyang 702 6月 8 14:25 .gitignore
-rw-rw-r-- 1 zhengyang zhengyang 834 6月 8 14:24 LICENSE
-rw-rw-r-- 1 zhengyang zhengyang 15394 6月 8 14:24 LICENSE.GPL-2.0-only
-rw-rw-r-- 1 zhengyang zhengyang 1286 6月 8 14:24 LICENSE.MIT
-rw-rw-r-- 1 zhengyang zhengyang 2202 6月 8 14:25 MAINTAINERS.md
-rw-rw-r-- 1 zhengyang zhengyang 1222 6月 8 14:25 Makefile
-rw-rw-r-- 1 zhengyang zhengyang 244 6月 8 14:24 MEMORIAM
drwxrwxr-x 20 zhengyang zhengyang 4096 6月 8 14:25 meta/
drwxrwxr-x 5 zhengyang zhengyang 4096 6月 8 14:25 meta-poky/
drwxrwxr-x 9 zhengyang zhengyang 4096 6月 8 14:25 meta-selftest/
drwxrwxr-x 8 zhengyang zhengyang 4096 6月 8 14:25 meta-skeleton/
drwxrwxr-x 8 zhengyang zhengyang 4096 6月 8 14:25 meta-yocto-bsp/
-rwxrwxr-x 1 zhengyang zhengyang 1297 6月 8 14:25 oe-init-build-env*
lrwxrwxrwx 1 zhengyang zhengyang 33 6月 8 14:24 README.hardware.md -> meta-yocto-bsp/README.hardware.md
lrwxrwxrwx 1 zhengyang zhengyang 14 6月 8 14:24 README.md -> README.poky.md
-rw-rw-r-- 1 zhengyang zhengyang 791 6月 8 14:25 README.OE-Core.md
lrwxrwxrwx 1 zhengyang zhengyang 24 6月 8 14:24 README.poky.md -> meta-poky/README.poky.md
-rw-rw-r-- 1 zhengyang zhengyang 529 6月 8 14:24 README.qemu.md
drwxrwxr-x 10 zhengyang zhengyang 4096 6月 8 14:25 scripts/
-rw-rw-r-- 1 zhengyang zhengyang 1177 6月 8 14:25 SECURITY.md
-rw-rw-r-- 1 zhengyang zhengyang 65 6月 8 14:25 .templateconf
git checkout
命令创建了一个名为kirkstone
的本地分支。该分支中的文件与kirkstone
发布分支中存储库的文件完全相同。
请注意,您可以定期在相同的目录中输入以下命令,以使您的本地文件与发布分支保持同步:
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# git pull
3.3 创建构建环境
构建目录是存放所有Yocto
构建的地方。这使我们能够清晰地划分构建,同时尽可能地重复使用资源。在构建目录中,包含着平台配置、镜像/平台需要的特定变量、要添加到镜像中的其他recipes
等。
要创建一个构建目录,只需执行一个名为oe-init-build-env
的脚本,它将创建构建环境(路径、快捷方式、变量等);
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# source oe-init-build-env <name of your build directory>
You had no conf/local.conf file. This configuration file has therefore been
created for you from /work/sambashare/rk3588/armsom/poky/meta-poky/conf/local.conf.sample
You may wish to edit it to, for example, select a different MACHINE (target
hardware). See conf/local.conf for more information as common configuration
options are commented.
You had no conf/bblayers.conf file. This configuration file has therefore been
created for you from /work/sambashare/rk3588/armsom/poky/meta-poky/conf/bblayers.conf.sample
To add additional metadata layers into your configuration please add entries
to conf/bblayers.conf.
The Yocto Project has extensive documentation about OE including a reference
manual which can be found at:
https://docs.yoctoproject.org
For more information about OpenEmbedded see the website:
https://www.openembedded.org/
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-full-cmdline
core-image-sato
core-image-weston
meta-toolchain
meta-ide-support
You can also run generated qemu images with a command like 'runqemu qemux86'
Other commonly useful commands are:
- 'devtool' and 'recipetool' handle common recipe tasks
- 'bitbake-layers' handles common layer tasks
- 'oe-pkgdata-util' handles common target package tasks
如果没有指定名称,将自动创建一个名为build
的构建目录。下次要使用相同的目录时,只需再次调用相同的命令。
此外,一旦执行了这个命令,就已经位于新创建的构建目录中。
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky/build# ll
drwxrwxr-x 2 zhengyang zhengyang 4096 6月 8 14:25 conf/
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky/build# ll conf
-rw-rw-r-- 1 zhengyang zhengyang 340 6月 8 14:25 bblayers.conf
-rw-rw-r-- 1 zhengyang zhengyang 11885 6月 8 14:25 local.conf
-rw-rw-r-- 1 zhengyang zhengyang 15 6月 8 14:25 templateconf.cfg
3.3.1 local.conf
在conf
目录下会创建local.conf
文件,这个配置文件功能强大,它是构建环境的主要配置文件。
我们可以为自定义跨工具链设置目标机器和工具链主机架构,优化选项以最大限度地缩短构建时间等等。
local.conf
文件内的注释是极好的文档,也是可能的变量及其默认值的参考。我们可能需要更改默认值的最小变量集如下:
MACHINE ??= "qemux86-64"
通过MACHINE
变量,我们可以确定要构建的目标机器。比如:
beaglebone-yocto
:是32位ARM
的参考平台;genericx86
:这是对基于x86
的32
位机器的通用支持;genericx86-64
:这是对基于x86
的64
位机器的通用支持;edgerouter
:这是EdgeRouter Lite
,是64
位MIPS
的参考平台;
Yocto
构建默认选择的目标平台是qemux86-64
,这适用于仿真。
除了这些机器外,OpenEmbedded Core
在meta
目录中还提供了对以下快速仿真 (Qemu
) 机器的支持:
qemuarm
:QEMU ARMv7
仿真;qemuarmv5
:QEMU ARMv5
仿真;qemuarm64
:QEMU ARMv8
仿真;qemumips
:QEMU MIPS
仿真;qemumips64
:QEMU MIPS64
仿真;qemuppc
:QEMU PowerPC
仿真;qemuppc64
:QEMU PowerPC 64
仿真;qemux86-64
:QEMU x86-64
仿真;qemux86
:QEMU x86
仿真;qemuriscv32
:QEMU RISC-V 32
仿真;qemuriscv64
:QEMU RISC-V 64
仿真;
3.4 开始Yocto
构建
第一次构建通常是最耗时的,因为它从recipe
提及的各种上游源下载数百个tarballs
。因此,将其分为两个部分是个好主意;
- 第一步只是获取所有的源代码、
tarballs
等; - 第二步是使用下载的资源以及配置元数据和配方进行实际构建。
谈到recipe
,已经有许多核心镜像recipe
可供我们使用。这些核心recipe
使我们能够创建一个可工作的Linux
镜像,而无需对平台进行任何自定义。成功创建这样一个镜像证明了我们的构建设置有效,然后我们可以继续为目标平台进行更复杂的构建。
在执行source oe-init-build-env
时屏幕上已经显示了这些核心镜像的一个小子集。一些流行的核心镜像包括:
core-image-minimal
:一个允许设备仅进行启动的小型镜像;core-image-full-cmdline
: 一个仅支持控制台的镜像,安装了更多功能丰富的Linux
系统功能;core-image-sato
: 这是一个支持Sato
的镜像,为使用X11
的移动设备提供移动环境。它提供终端、编辑器、文件管理器、媒体播放器等应用程序;core-image-weston
:这个图像配置通常包括Weston
显示服务器,它是用于嵌入式系统的Wayland
协议的参考实现。core-image-weston
提供了一个基本的Weston
环境,适用于测试和验证嵌入式图形系统。
在本次实现我们使用 core-image-minimal
作为目标镜像,目标平台是qemux86-64
。
3.4.1 配置oe-git
代理
配置oe-git
代理:
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# sudo apt-get install socat
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# wget http://git.yoctoproject.org/cgit/cgit.cgi/poky/plain/scripts/oe-git-proxy
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# mkdir ~/bin
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# cp oe-git-proxy ~/bin/
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# chmod +x ~/bin/oe-git-proxy
更新bashrc
:
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky# vim ~/.bashrc
export GIT_PROXY_COMMAND="oe-git-proxy"
export NO_PROXY=$no_proxy
退出当前会话重新登陆使其生效。
3.4.2 获取资源
首先获取资源(注意每次运行如下命令都需要先构建环境):
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky/build# bitbake core-image-minimal --runall=fetch
Loading cache: 100% | | ETA: --:--:--
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |#################################################################################################| Time: 0:01:30
Parsing of 883 .bb files complete (0 cached, 883 parsed). 1644 targets, 45 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "2.0.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-22.04"
TARGET_SYS = "x86_64-poky-linux"
MACHINE = "qemux86-64"
DISTRO = "poky"
DISTRO_VERSION = "4.0.14"
TUNE_FEATURES = "m64 core2"
TARGET_FPU = ""
meta
meta-poky
meta-yocto-bsp = "kirkstone:3e73216a32a2b01916eb8c555a41579bd69a47aa"
......
下载时间较长,耐心等待。
3.4.3 编译
成功获取资源后我们进行编译, 编译时间取决于我们的系统资源;
zhengyang@ubuntu:/work/sambashare/rk3588/armsom/poky/build# bitbake core-image-minimal
3.5 运行镜像
一旦构建完成,输出的镜像可以在tmp/deploy/images/qemux86-64
文件夹中找到;
亲爱的读者和支持者们,自动博客加入了打赏功能,陆陆续续收到了各位老铁的打赏。在此,我想由衷地感谢每一位对我们博客的支持和打赏。你们的慷慨与支持,是我们前行的动力与源泉。
日期 | 姓名 | 金额 |
---|---|---|
2023-09-06 | *源 | 19 |
2023-09-11 | *朝科 | 88 |
2023-09-21 | *号 | 5 |
2023-09-16 | *真 | 60 |
2023-10-26 | *通 | 9.9 |
2023-11-04 | *慎 | 0.66 |
2023-11-24 | *恩 | 0.01 |
2023-12-30 | I*B | 1 |
2024-01-28 | *兴 | 20 |
2024-02-01 | QYing | 20 |
2024-02-11 | *督 | 6 |
2024-02-18 | 一*x | 1 |
2024-02-20 | c*l | 18.88 |
2024-01-01 | *I | 5 |
2024-04-08 | *程 | 150 |
2024-04-18 | *超 | 20 |
2024-04-26 | .*V | 30 |
2024-05-08 | D*W | 5 |
2024-05-29 | *辉 | 20 |
2024-05-30 | *雄 | 10 |
2024-06-08 | *: | 10 |
2024-06-23 | 小狮子 | 666 |
2024-06-28 | *s | 6.66 |
2024-06-29 | *炼 | 1 |
2024-06-30 | *! | 1 |
2024-07-08 | *方 | 20 |
2024-07-18 | A*1 | 6.66 |
2024-07-31 | *北 | 12 |
2024-08-13 | *基 | 1 |
2024-08-23 | n*s | 2 |
2024-09-02 | *源 | 50 |
2024-09-04 | *J | 2 |
2024-09-06 | *强 | 8.8 |
2024-09-09 | *波 | 1 |
2024-09-10 | *口 | 1 |
2024-09-10 | *波 | 1 |
2024-09-12 | *波 | 10 |
2024-09-18 | *明 | 1.68 |
2024-09-26 | B*h | 10 |
2024-09-30 | 岁 | 10 |
2024-10-02 | M*i | 1 |
2024-10-14 | *朋 | 10 |
2024-10-22 | *海 | 10 |
2024-10-23 | *南 | 10 |
2024-10-26 | *节 | 6.66 |
2024-10-27 | *o | 5 |
2024-10-28 | W*F | 6.66 |
2024-10-29 | R*n | 6.66 |
2024-11-02 | *球 | 6 |
2024-11-021 | *鑫 | 6.66 |
2024-11-25 | *沙 | 5 |
2024-11-29 | C*n | 2.88 |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2023-06-06 Rockchip RK3399 - Mali-T860 GPU驱动(mesa+Panfrost)
2018-06-06 第二十二节,TensorFlow中的图片分类模型库slim的使用、数据集处理