RK3566 Linux实例应用(1)——环境编译与烧录

环境安装以及烧录

  • 一、简介
  • [二、 环境搭建](#二、 环境搭建)
  • [三、 SDK编译](#三、 SDK编译)
    • [3.1 Docker安装](#3.1 Docker安装)
    • [3.2 创建镜像](#3.2 创建镜像)
    • [3.3 基于镜像创建容器](#3.3 基于镜像创建容器)
    • [3.4 列出所有的容器(再次进入Docker)](#3.4 列出所有的容器(再次进入Docker))
    • [3.5 启动容器并进入(名字)](#3.5 启动容器并进入(名字))
    • [3.6 启动容器并进入(ID)](#3.6 启动容器并进入(ID))
    • [3.7 在容器里面在安装一下环境](#3.7 在容器里面在安装一下环境)
    • [3.8 可以开始编译了](#3.8 可以开始编译了)
  • [四、 烧录](#四、 烧录)

一、简介

本人是Linux环境下开发,所以搭建环境都是Linux所需要的。买的是泰山派的开发板。目标是直接做项目的。

跟着视频一步一步去做,这里只记录视频和文档有出入的地方。离线的资料他们视频下面就有。

视频:https://www.bilibili.com/video/BV1QT4m1S7Ae/?spm_id_from=333.788.videopod.sections&vd_source=1ac9d6436bdaecdfe1708669fb8483d4

文档资料:https://wiki.lckfb.com/zh-hans/tspi-rk3566/project-case/fat-little-cell-phone/programming-environment-setup.html

二、 环境搭建

这个没什么要讲的,我在3588的时候搭建过了(Samba没搞因为已经安装了相同的东西了,我已经可以文件互传了)。

路径为:https://wiki.lckfb.com/zh-hans/tspi-rk3566/project-case/fat-little-cell-phone/programming-environment-setup.html

(正常不会遇到下面问题,可以跳过)
问题1: 在这里遇到了一个问题,就是我在虚拟机点了挂起,结果就出问题了,VMware弹出错误提示,后面我再打开就连不上网络了。
问题1解决方法:

  1. 将虚拟机网络适配器改为主机模式;
  2. 在Ubuntu指令窗口中依次输入以下指令:
    sudo service network-manager stop
    sudo rm /var/lib/NetworkManager/NetworkManager.state
    sudo service network-manager start
  3. 将网络适配器换回NAT/桥接/其他模式

目前修改后就是如下:


问题1参考:

https://juejin.cn/post/7057497897910140936
https://blog.csdn.net/CHYabc123456hh/article/details/112890125

三、 SDK编译

SDK网页文档和视频都比较详细,但是跟着视频去搭建环境的时候需要搭建Docker,跟着文档没有说(搭建Docker有单独的文档),虽然没有搭建我也成功了,但是我还是觉得有必要搭建。

在线路径为:https://wiki.lckfb.com/zh-hans/tspi-rk3566/project-case/fat-little-cell-phone/sdk-compile.html

在线路径为:https://wiki.lckfb.com/zh-hans/tspi-rk3566/sdk-compilation/docker-compiling-environment.html

离线路径为:立创·泰山派开发板资料→第03章.【立创·泰山派】文档手册→【Docker】编译环境搭建.pdf

3.1 Docker安装

问题2: 我自己安装的时候没有看到在线文档,有些指令加了换行,结果导致后面在更新的时候报了E: 文件 list 第 1 行的记录格式有误 /etc/apt/sources.list.d/docker.list (Suite)

问题2解决方法:

  1. 打开这个文件看一下里面写的什么
    sudo vi /etc/apt/sources.list.d/docker.list
  2. 发现里面写了5行数据,而我刚好echo了5行,第一行明显和其他格式不对,因为我只有第一次输入这个命令有换行,所以我直接修改第一行,并删除其余4行

问题3: 创建镜像的时候出现ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied

问题3解决方法:

  1. 将当前用户加入到docker用户组
    sudo groupadd docker #添加用户组
    sudo gpasswd -a ${USER} docker #将当前用户添加至用户组
    newgrp docker #更新用户组

3.2 创建镜像

问题4: 文档讲的错,我这里出现了ERROR [internal] load metadata for docker.io/library/ubuntu:18.04

问题4解决方法:

  1. 照着在线文档写
    sudo vi /etc/docker/daemon.json
    这个对我来说是个新文件,写入如下,写完保存退出
cpp 复制代码
 {
"registry-mirrors": ["https://ccr.ccs.tencentyun.com/"]
}
  1. 重启
    sudo systemctl restart docker
  2. 重新运行
    docker build -t lckfb_android11_sdk_cmp .
  3. 可以在前面加上sudo,如果不报错就不加

3.3 基于镜像创建容器

cpp 复制代码
docker run --privileged --mount type=bind,source=/home/bjp/rk3566/sdk,target=/home/lckfb --name="lckfb_android11_sdk" -h lckfb -it lckfb_android11_sdk_cmp

这里就不一一介绍了,重点是要把指令里面的目录和镜像换成自己的,这里我的目录不一样,镜像啥的在Dockerfile里面和人家的一样,构建名字都一样,所以我这里只要改一下sdk的目录。

cpp 复制代码
--mount type=bind,source=/home/bjp/rk3566/sdk,target=/home/lckfb:
创建绑定类型的挂载点,将宿主机上的 /home/bjp/rk3566/sdk 目录挂载到容器内的 /home/lckfb 目录。这使得容器内的应用程序可以访问并操作宿主机上的该目录。


这2个就是共享目录

3.4 列出所有的容器(再次进入Docker)

cpp 复制代码
docker ps -a

这里记住他的ID号或者名字,就可以启动了

3.5 启动容器并进入(名字)

3.5 和 3.6两者选其一

cpp 复制代码
docker start lckfb_android11_sdk //启动容器
docker attach lckfb_android11_sdk //附加到正在运行的名为lckfb_android11_sdk的容器的终端上,以便与容器进行交互

3.6 启动容器并进入(ID)

3.5 和 3.6两者选其一

cpp 复制代码
docker start 454536b61a6c
docker attach 454536b61a6c

3.7 在容器里面在安装一下环境

cpp 复制代码
sudo apt-get install git ssh make gcc libssl-dev liblz4-tool expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev

3.8 可以开始编译了

这里开始之前,建议先把自己的环境clean一下,并且第一次有可能不会选择电源,这个要执行一下命令,因为我以前编译过,不清除会有很多问题,就比如5和6

cpp 复制代码
./build.sh cleanall

电源选择,选择不对会编译报错,这里大家记住除了VCCIO4和6选1.8V其他都选3V3,如果没有弹电源选择框则需要安装sudo apt install whiptail后在重新编译。

cpp 复制代码
sudo apt install whiptail

这里可以跟着详细文档接着走了。

在线路径为:https://wiki.lckfb.com/zh-hans/tspi-rk3566/project-case/fat-little-cell-phone/sdk-compile.html

在线路径为(详细):https://wiki.lckfb.com/zh-hans/tspi-rk3566/sdk-compilation/linux-compilation.html

我选择全编译

这里注意一下,我是编译过一次的,我现在在容器重编,不是第一次编译,所以不用选择电源。下面关于电源的选择做个笔记。

问题5: 我这里出现了undefined symbol: g_task_set_name

问题5解决方法:

思路:先看一下报的什么错,然后搜索一下,虽然搜索不到和我一样的错误,但是有类似的,我直接去执行make clean是不行的,因为我不在报错的目录下,而且当前目录也没有makefile,那么找一下这个报错的makefile的目录就好了,刚好上面有打印出来,cd进去就行了

  1. 打开makefile的所在目录
  2. 执行make clean
  3. 重新选择开发板编译

问题5参考:

https://blog.csdn.net/me_never/article/details/107377884

问题6: 我这里出现了ERROR: Running build_recovery failed! ERROR: exit code 142 from line 858:

问题6解决方法:

  1. 到当前目录下面
    ./build.sh cleanall
  2. 重新编译

问题6参考:

这里根本就百度不到,直接deepseek了,根据他说的,自己判断一下只能是编译狗的东西对重新编译产生了影响,重新clean一下,就可以了,非常好用

四、 烧录

4.1 打开工具

工具都一样 我就打开3588的

2中方式升级

4.2下载分散镜像(4.2与4.3选一)

把文件下载到本地,勾选配置,并且替换路径升级

4.3 下载update.img(4.2与4.3选一)

选择固件点升级

参考

https://wiki.lckfb.com/zh-hans/tspi-rk3566/sdk-compilation/linux-compilation.html


• 由 青梅煮久 写于 2025 年 12 月 9 日

相关推荐
十日十行21 小时前
Linux和window共享文件夹
linux
李广坤1 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
木心月转码ing1 天前
WSL+Cpp开发环境配置
linux
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
爱可生开源社区2 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
崔小汤呀2 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
随逸1772 天前
《从零搭建NestJS项目》
数据库·typescript
何中应2 天前
vi编辑器使用
linux·后端·操作系统
何中应2 天前
Linux进程无法被kill
linux·后端·操作系统