文章目录
- 前言
- Docker介绍
- 实验环境
- 获取RK Docker镜像
- 加载RK Docker镜像
- 使用RK Docker环境编译SDK
- 其它
前言
作为一名嵌入式Linux的学习者,目前编译各种平台,用的都是同一个编译机(Ubuntu虚拟机)。之前一直在折腾全志,所以对于全志的SoC来说,编译环境都大差不差。最近刚开始接触瑞芯微,拿到SDK后,尝试着编译,果然报错了,那就借着这次机会,接触一下曾经有所耳闻的Docker。
Docker介绍
通俗的理解,别人可以把一个已经搭建好的环境打包成一个Docker镜像,然后公开在互联网,大家可以去下载使用。当我们拿到一个Docker镜像后,就可以在自己的主机上一键部署,同时部署后的Docker环境不会污染主机。这就免去了自己搭环境的时间,提高验证效率。
实验环境
硬件:野火鲁班猫1(RK3566)
软件:瑞芯微原厂RK356x SDK
编译机:Ubuntu18.04
获取RK Docker镜像
瑞芯微提供的下载链接:https://meta.zbox.filez.com/v/link/view/f63485fe59cf4ef3b8c3abf4f0f527d4
下载后拷贝到编译机上:
也可以通过Dockerfile构建RK Docker镜像,这里未验证,忽略。
加载RK Docker镜像
任意位置执行如下命令加载镜像:
sudo docker load -i linux_gen_sdk_docker_image_for_compilation_v1.0.0_20230925.tar
加载完成后,执行如下命令查看镜像加载情况:
sudo docker images
使用RK Docker环境编译SDK
创建一个文件夹用于映射SDK:
mkdir rk_docker
启动Docker镜像:
sudo docker run --privileged -it -u rk -v /home/book/platform/rk356x/lubancat1/rk3566_sdk:/home/book/platform/rk356x/lubancat1/rk_docker docker_rk:latest /bin/bash
docker run
:这是Docker用于创建并启动新容器的命令--privileged
:这个标志会给容器内的进程几乎和宿主机一样的权限-it
:这是两个选项的组合。-i
(或--interactive
)保持容器的标准输入(STDIN)开放,即使没有附加到任何东西上也是如此。-t
(或--tty
)分配一个伪终端或终端,这通常用于交互式容器-u rk
:这个选项指定了容器内进程的运行用户为rk/home/book/platform/rk356x/lubancat1/rk3566_sdk:/home/book/platform/rk356x/lubancat1/rk_docker
:这个选项用于挂载宿主机的目录到容器内。它将宿主机的/home/book/platform/rk356x/lubancat1/rk3566_sdk目录挂载到容器的/home/book/platform/rk356x/lubancat1/rk_docker目录docker_rk:latest
:这是你要运行的Docker镜像的名称和标签/bin/bash
:这是容器启动后要执行的命令
启动Docker镜像成功后,会进入到Docker容器的Bash shell:
进入刚刚创建的文件夹rk_docker
,因为该文件夹已经映射了SDK目录:
编译:
sudo ./build.sh lunch
sudo ./build.sh
其它
退出Docker容器:
exit