Skip to content

RK3566开发板

零. 列表

一.准备SDK包

从泰山派官网的百度云盘中下载SDK包,此包是一个压缩包,使用时需要解压。

二.构建 docker 编译系统

利用docker构建编译系统,可以避免环境配置的繁琐,并且可以方便的移植到其他机器上。
参考: docker 编译系统

1.创建docker镜像

(1)创建Dockerfile

将下面的内容保存为dockerfile文件

bash
# 设置基础镜像为Ubuntu 18.04
FROM ubuntu:18.04

# 设置作者信息
MAINTAINER lckfb "service@lckfb.com"

# 设置环境变量,用于非交互式安装
ENV DEBIAN_FRONTEND=noninteractive

# 备份源列表文件
RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak

# 将源列表中的 http://.\*ubuntu.com 替换为 http://repo.huaweicloud.com
RUN sed -i 's@http://.\*ubuntu.com@http://repo.huaweicloud.com@g' /etc/apt/sources.list

# 更新包列表
RUN apt update

# 安装基本的编译工具和依赖
RUN apt install -y build-essential crossbuild-essential-arm64 \
 bash-completion vim sudo locales time rsync bc python

# 安装其他依赖包,这里编译android11sdk需要的环境
RUN apt install -y repo git ssh libssl-dev liblz4-tool lib32stdc++6 \
 expect patchelf chrpath gawk texinfo diffstat binfmt-support \
 qemu-user-static live-build bison flex fakeroot cmake \
 unzip device-tree-compiler python-pip ncurses-dev python-pyelftools \
 subversion asciidoc w3m dblatex graphviz python-matplotlib cpio \
 libparse-yapp-perl default-jre patchutils swig expect-dev u-boot-tools

RUN apt install -y bear

# 再次更新包列表并安装任何未安装的依赖
RUN apt update && apt install -y -f

# 生成本地化语言支持
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8

# 创建开发板用户
RUN useradd -c 'lckfb user' -m -d /home/lckfb -s /bin/bash lckfb

# sudo免密登录
RUN sed -i -e '/\%sudo/ c \%sudo ALL=(ALL) NOPASSWD: ALL' /etc/sudoers
RUN usermod -a -G sudo lckfb

USER lckfb

# 设置docker工作目录为/home/lckfb
WORKDIR /home/lckfb

#容器使用这个内核方法
#docker run --privileged --mount type=bind,source=/home/LCKFB_RK3566/ROCKCHIP_ANDROID11.0_SDK_RELEASE/ROCKCHIP_ANDROID11.0_SDK_RELEASE,target=/home/lckfb/android11 --name="lckfb_android11_sdk" -h lckfb -it lckfb_android11_sdk_cmp

(2)构建镜像

在 Dockerfile 文件的存放目录下,执行构建动作

bash
sudo docker build -t lckfb_android11_sdk_cmp .

2.创建构造buildroot系统的容器

bash
sudo docker run --privileged --mount type=bind,source=/home/lujin/MCU/泰山派开发板/【SDK】Linux/sdk,target=/home/lckfb --name="lckfb_buildroot_sdk" -h lckfb -it lckfb_android11_sdk_cmp

3.创建构造 debian系统的容器

bash
sudo docker run --privileged --mount type=bind,source=/home/lujin/MCU/泰山派开发板/【SDK】Linux/sdk_debian,target=/home/lckfb --name="lckfb_debian_sdk" -h lckfb -it lckfb_android11_sdk_cmp

4.创建构造 android系统的容器

bash
sudo docker run --privileged --mount type=bind,source=/home/lujin/MCU/泰山派开发板/【SDK】Android/sdk_android,target=/home/lckfb --name="lckfb_android_sdk" -h lckfb -it lckfb_android11_sdk_cmp

相关的说明: 泰山派编译方法

注意: 如果重新进入容器运行终端,有两种方法:

  1. 使用 docker attach 命令进入容器
bash
sudo docker attach 容器ID

在docker中,如果执行exit命令,容器会停止运行. 如果不想在终端关闭后容器退出,请使用Ctrl+p+d命令,这样容器会继续在后台运行.
2. 如果要在容器中开启新的终端进行运行,则使用下面命令.

bash
docker exec -it 容器ID /bin/bash

此时退出可以直接使用 exit 命令退出容器.并不影响容器的运行.

三.同步SDK包源码

将 泰山派SDK包 解压到 /home/lujin/MCU/泰山派开发板/【SDK】Linux/sdk 目录中。这个目录是容器中挂载的本地目录。在容器中是可以正常操作这个目录的.

以下的操作全部在docker容器内部执行的。

1. 解压缩sdk数据包

bash
tar -xvzf tspi_linux_sdk_repo_20240131.tar.gz

2. 同步代码

bash
sudo apt-get update && sudo apt-get install git repo -y && .repo/repo/repo sync -l -j12

3. dl库代替

dl库实际上就是buildroot的download目录的内容.因为buildroot在编译时需要下载很多的文件,这些文件一般需要通过github来下载.但是github的下载速度很慢,所以我们需要将这些文件下载到本地,然后在编译时使用本地的文件.

bash
tar -xzvf buildroot_dl_4c7c9df616fb.tar.gz

4. 安装编译环境

bash
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 bison flex fakeroot cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev whiptail
  • ncurses-dev: 这个是一个图形界面工具包.用于在终端中显示图形界面.(用于配置编译环境)
  • whiptail: 这个是一个图形界面工具包.用于在终端中显示图形界面.(用于选择电压值)

5. 板级配置

泰山派SDK板级配置,选3. BoardConfig-rk3566-tspi-v10.mk

bash
./build.sh lunch

通过以上操作,其SDK包就是泰山派完整的SDK包源码了.其包中包含了 buildroot系统,Debian系统和Android系统的编译环境.分别位于三个独立的目录中.

6. 编译buildroot系统方法

四.如何在linux环境下烧录镜像

请参考: 烧录镜像