From 956de4dbcb5c92bd713e12b3de2827fc1101892e Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Mon, 21 Apr 2025 23:44:24 +0800 Subject: [PATCH] Update RK3568 doc --- RK3568_Linux_SDK开发文档/RK3568_Linux_SDK开发文档.md | 453 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 288 insertions(+), 165 deletions(-) diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243.md" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243.md" index ef99c94..a5be04f 100644 --- "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243.md" +++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243.md" @@ -8,7 +8,7 @@ * CPU 8核+、内存32GB+ 以上; * 硬盘空间 1TB+; -推荐在凌云实验室的编译服务器上编译,IGKBoard-RK3568开发板请选择使用 ***sdkv1.3.0_linux4.19*** 版本。 +推荐在凌云实验室的物理编译服务器上编译,IGKBoard-RK3568开发板请选择使用 ***sdkv1.4.0_linux5.10*** 版本。 @@ -22,12 +22,12 @@ guowenxue@ubuntu22:~$ sudo apt install -y git ssh make gcc libssl-dev liblz4-tool \ expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support unzip \ qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib \ -device-tree-compiler python*-pip libncurses-dev libmpc-dev +device-tree-compiler libncurses-dev libmpc-dev python3 python2 python3-pip ``` - 如果是 ***sdkv1.3.0_linux4.19*** 则需要将 python 的版本设置为 **python2**, 而 ***sdkv1.4.0_linux5.10*** 则需要选择 **python3**。 +这里我们同时安装了 python2 和 python3 两个版本,但Rockchip的 ***sdkv1.4.0_linux5.10*** 编译依赖 **python3**,这里我们通过 ubuntu 的 `update-alternatives` 命令设置默认版本为 **python3**。 ``` guowenxue@ubuntu22:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 @@ -41,10 +41,10 @@ 1 /usr/bin/python2 1 manual mode 2 /usr/bin/python3 2 manual mode -Press <enter> to keep the current choice[*], or type selection number: 1 +Press <enter> to keep the current choice[*], or type selection number: 2 guowenxue@ubuntu22:~$ python --version -Python 2.7.18 +Python 3.10.12 ``` @@ -56,48 +56,100 @@ 首先创建 RK3568 开发板的项目工作路径。 ``` -guowenxue@ubuntu20:~$ mkdir rk3568 && cd rk3568 +guowenxue@ubuntu22:~$ mkdir -p rk3568/sdkv1.4.0_linux5.10 && cd rk3568/sdkv1.4.0_linux5.10 ``` -如果选择 ***sdkv1.3.0_linux4.19*** 版本SDK,则可以使用下面命令从凌云实验室文件服务器上下载并解压缩。 - -``` -guowenxue@ubuntu22:~/rk3568$ mkdir sdkv1.3.0_linux4.19 && cd sdkv1.3.0_linux4.19 - -guowenxue@ubuntu22:~/rk3568/sdkv1.3.0_linux4.19$ wget http://192.168.0.2:2211/rockchip/bsp/rk3568_linuxSDK/sdkV1.3.0_linux4.19/rk356x_linux_release_v1.3.0_20220925.tgz - -guowenxue@ubuntu22:~/rk3568/sdkv1.3.0_linux4.19$ tar -xzf rk356x_linux_release_v1.3.0_20220925.tgz - -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ rm -f *.tgz -``` - - - -如果选择 ***sdkv1.4.0_linux5.10*** 版本SDK,则可以使用下面命令从凌云实验室文件服务器上下载并解压缩。 +如果是在实验室的编译服务器物理主机上,我们可以直接从文件服务器路径那里解压缩过来。这个文件有18GB,解压缩需要一些时间。 ```bash -guowenxue@ubuntu22:~/rk3568$ mkdir sdkv1.4.0_linux5.10 && cd sdkv1.4.0_linux5.10 - -guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ wget http://192.168.0.2:2211/rockchip/bsp/rk3568_linuxSDK/sdkV1.4.0_linux5.10/rk356x_linux5.10_release_v1.4.0_20231220.tgz - -guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ tar -xzf rk356x_linux5.10_release_v1.4.0_20231220.tgz - -guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ rm -f *.tgz +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ tar -xjf /srv/ftp/rockchip/bsp/rk3568_linuxsdk/sdkv1.4.0_linux5.10/rk356x_linux5.10_release_v1.4.0_20231220.tar.bz2 ``` -解压缩出来的源码都在隐藏的 ***.repo*** 文件夹下,接下来我们使用 **repo** 命令将源码 checkout 出来。 +否则可以使用下面命令从凌云实验室文件服务器上下载并解压缩。 +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ wget http://192.168.0.2:2211/rockchip/bsp/rk3568_linuxsdk/sdkv1.4.0_linux5.10/rk356x_linux5.10_release_v1.4.0_20231220.tar.bz2 + +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ tar -xjf rk356x_linux5.10_release_v1.4.0_20231220.tar.bz2 + +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ rm -f *.tar.bz2 ``` + + + +解压缩出来的源码都在隐藏的 ***.repo*** 文件夹下。 + +```bash guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ ls -a . .. .repo -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ ls .repo/ +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls .repo/ manifests manifests.git manifest.xml project.list project-objects projects repo +``` + + +接下来我们需要使用 **repo** 命令将源码 checkout 出来。 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ .repo/repo/repo sync -l +Traceback (most recent call last): + File "/build/rk3568/sdkv1.4.0_linux5.10/.repo/repo/main.py", line 56, in <module> + from subcmds.version import Version + File "/build/rk3568/sdkv1.4.0_linux5.10/.repo/repo/subcmds/__init__.py", line 35, in <module> + mod = __import__(__name__, + File "/build/rk3568/sdkv1.4.0_linux5.10/.repo/repo/subcmds/help.py", line 20, in <module> + from formatter import AbstractFormatter, DumbWriter +ModuleNotFoundError: No module named 'formatter' +``` + + + +上面这个错误信息提示在 ***subcmds/help.py*** 中导入了 `formatter` 模块, 在Python2的formatter模块中,`AbstractFormatter` 和 `DumbWriter` 可能用于生成格式化的文本,比如将文本自动换行,处理缩进等。 + +- `AbstractFormatter`: 定义文本格式化逻辑的基类。 +- `DumbWriter`: 将格式化后的文本写入缓冲区。 + + + +在 Python3 中该模块已被移除,而Python3 的 `textwrap` 模块提供了更简单的文本自动换行和缩进功能。如果代码需要基本的文本格式化(如帮助信息的换行),可以用 `textwrap` 直接替代。这样,我们可以修改 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ vim .repo/repo/subcmds/help.py + ... ... +-from formatter import AbstractFormatter, DumbWriter ++import textwrap ++class TextWrapper: ++ def __init__(self, width=80): ++ self.width = width ++ ++ def add_flowing_data(self, text): ++ return textwrap.fill(text, width=self.width) + ... ... + +- self.wrap = AbstractFormatter(DumbWriter()) ++ self.wrap = TextWrapper() +``` + + + +这个文件也可以从实验室服务器上下载过来,然后直接覆盖。 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ wget http://192.168.0.2:2211/rockchip/bsp/rk3568_linuxsdk/sdkv1.4.0_linux5.10/help.py + +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ mv help.py .repo/repo/subcmds/help.py +``` + + + +接下来我们就可以使用 **repo** 命令将源码 checkout 出来。 + +``` guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ .repo/repo/repo sync -l Updating files: 100% (17139/17139), done./app/rkaiq_tool_serverUpdating files: 51% (8839/17139) Updating files: 100% (779/779), done.inux/buildrootUpdating files: 41% (322/779) @@ -129,153 +181,222 @@ SDK 相关文档都存放 **docs** 文件夹下。 ``` -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ ls docs/ -Common docs_list.txt Linux Others RK356X RK_Linux_SDK_Supported_System_Kernel_Version_and_ISP_Version_List.png Rockchip_Developer_Guide_Linux_Software_CN.pdf +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls docs/ +cn en licenses Patches readme_en.pdf readme_zh.pdf ``` -如果选择 ***sdkv1.3.0_linux4.19*** 版本SDK,还需要从凌云实验室文件服务器上下载buildroot源码并解压缩。 +接下来我们首先需要制作嵌入式Linux根文件系统,它的制作通常有如下三种方式: + +1. Buildroot; +2. Yocto; +3. Debian、Ubuntu、Armbian 等; + + + +Rockchip的Linux SDK提供了 **Buildroot** 和 **Debian** 两种方式制作根文件系统,其中我们使用默认的Buildroot来构建。 + + + +## 1.3 Buildroot 文件系统制作 + + + +在开始制作之前,我们首先需要使用 `source envsetup.sh` 命令对Buildroot进行配置,这里选择 `55. rockchip_rk3568` ,表示使用基于该开发板的默认配置。 ```bash -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ cd buildroot/ -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19/buildroot$ wget http://192.168.0.2:2211/rockchip/bsp/rk3568_linuxSDK/sdkV1.3.0_linux4.19/buildroot_DL/dl.zip -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19/buildroot$ unzip dl.zip && rm -f dl.zip -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19/buildroot$ cd .. +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ source envsetup.sh +... ... 弹出下图选项框 +Merging /work/guowenxue/sdkv1.4.0_linux5.10/buildroot/configs/rockchip_rk3568_defconfig +# +# merged configuration written to /work/guowenxue/sdkv1.4.0_linux5.10/buildroot/output/rockchip_rk3568/.config.in (needs make) +# +... ... +defconfig=/work/guowenxue/sdkv1.4.0_linux5.10/buildroot/output/rockchip_rk3568/.config.in Config.in +# +# configuration written to /work/guowenxue/sdkv1.4.0_linux5.10/buildroot/output/rockchip_rk3568/.config +# +make: Leaving directory '/work/guowenxue/sdkv1.4.0_linux5.10/buildroot' ``` - -## 1.3 Buildroot 配置 - -常见的文件系统制作就这几个: -1, Buildroot; -2, Yocto; -3, 直接用第三方的,如 debian、ubuntu 等 - -Rockchip提供的Linux 的SDK里面默认使用的Buildroot来构建根文件系统,那如果需要想让根文件系统添加一些别的命令支持则需要对Buildroot进行配置 - -此处以添加Python3为例说明 - -首先我们需要配置编译需要的配置 - -1.进入~/rk3568/sdkv1.3.0_linux4.19 - -输入`source envsetup.sh` - -选择67.rockchip_rk3568 表示使用rk3568的相关配置  - - -此时可以看到配置中显示了目标板子,编译输出目录和使用的defconfig文件是哪个 -2.进入~/rk3568/sdkv1.3.0_linux4.19/buildroot -输入`make menuconfig` 找到python3,位置在Target packages ->Interpreter languages and scripting->python3选中。 +基于 Buildroot 的方式构建根文件系统,我们可以定制开发,这里以添加 **Python** 的支持为例讲解该过程。首先进入到 `buildroot` 文件夹下,然后执行 `make menuconfig` 命令。 - +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ cd buildroot/ +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10/buildroot$ export TERM=vt100 +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10/buildroot$ make menuconfig +``` -选中python3后保存退出。 -输入`make savedefconfig` 此时系统会把你所改变的config信息直接同步到rockchip_rk3568_defconfig -3.编译buildroot +在弹出的菜单栏对话框,选中 `Target packages ->Interpreter languages and scripting->python3` 并退出保存即可。 -返回~/rk3568/sdkv1.3.0_linux4.19/ + -输入`./build.sh buildroot`编译buildroot -4.烧录编译出来的buildroot镜像到开发板中,输入`Python3` - +完成配置后再输入下面命令,系统会把你所改变的config信息直接同步到rockchip_rk3568_defconfig 文件中去。 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10/buildroot$ make savedefconfig +``` + + + +接下来返回项目顶层,执行 `build.sh` 脚本开始编译buildroot。我们的开发板采用的是 DDR4 内存,在弹出的选项中选择 `5. rockchip_rk3568_evb1_ddr4_v10_defconfig`。 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10/buildroot$ cd .. +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ./build.sh buildroot +``` + + + + + +编译完成后的成功输出如下: + + + + + +编译生成的 Buildroot 文件系统将会存放在 ***output/buildroot/images*** 路径下。 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls output/buildroot/images +rootfs.cpio rootfs.cpio.gz rootfs.ext2 rootfs.ext4 rootfs.squashfs rootfs.tar +``` + + + +需要注意的是这里只编译制作了根文件系统,还没有编译 Linux 内核和系统镜像,我们稍后将会完成这些操作。 ## 1.4 Debian构建根文件系统 -瑞芯微的SDK中已经提供的Debian的源码,路径是~/rk3568/sdkv1.3.0_linux4.19/debian -在编译和构建Debian_rootfs之前需要在系统里安装相关工具和依赖 -``` -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 +瑞芯微的SDK中同样也提供制作Debian根文件系统的脚本,它们存放在 ***debian*** 文件夹下。这样我们可以很轻松地制作出基于 **Debian** 的根文件系统。 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls +app build.sh debian docs kernel output README.md rkflash.sh u-boot +buildroot common device external Makefile prebuilts rkbin tools yocto + +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls debian/ +mk-base-debian.sh mk-rootfs-bullseye.sh overlay-debug packages-patches scripts +mk-image.sh mk-rootfs.sh overlay-firmware post-build.sh +ubuntu-build-service mk-iso-debian.sh overlay packages readme.md ``` -``` -sudo dpkg -i debian/ubuntu-build-service/packages/* -sudo apt-get install -f -``` - -说明: - -其中最为核心的东西是debootstrap和qemu-user-static - -这里的debootstrap就是在packages里面 - - - -debootstrap 构建debian基本文件子系统的工具。 - -qemu-user-static 在PC端非arm架构的ubuntu系统上,需要借助于qemu-arm-static工具来模拟arm环境安才可以安装arm架构下所需要的软件。 - -安装好这些必要工具后,就可以开始编译Debian了 - -返回到~/rk3568/sdkv1.3.0_linux4.19/目录 - -输入`./build.sh debian`开始编译,编译后的镜像文件放在了~/rk3568/sdkv1.3.0_linux4.19/debian - - - -我们需要将linaro-rootfs.img 这个镜像文件烧录到开发板中 - - - -我们将烧录的rootfs文件替换成linaro-rootfs.img即可 - -烧录完成后启动开发板,会提示输入用户名和密码,**这里的用户名和密码在编译脚本里写好了的均为linaro** - -登录后切换su用户`sudo su`,进入根目录下展示的就是Debian的根文件系统 - - +在编译和构建 Debian 根文件系统之前,需要安装如下相关系统工具和依赖。 -如果使用sdkv1.4.0_linux5.10 的SDK编译debian,步骤如下 - -先装依赖环境 - -``` -sudo apt-get update && sudo apt-get install git ssh make gcc libssl-dev \ +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ sudo apt-get update +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ sudo apt-get install git \ liblz4-tool expect expect-dev 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 \ libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev \ - libmpc-dev bc python-is-python3 python2 + libmpc-dev bc python-is-python3 python2 ssh make gcc libssl-dev -sudo dpkg -i debian/ubuntu-build-service/packages/* - -sudo apt-get install -f +guowenxue@ubuntu22:~$ sudo dpkg -i debian/ubuntu-build-service/packages/* +guowenxue@ubuntu22:~$ sudo apt-get install -f ``` -进入sdk根目录,运行./build.sh debian 会出现如下错误,我们只需要按照他推荐的更新一些工具就可以运行了。 + + +其中最为核心的东西是 **debootstrap** 和 **qemu-user-static**: + +* 其中 debootstrap 用于构建debian基本文件子系统的工具,这里的debootstrap就是在packages里面。 + + ```bash + guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls debian/ubuntu-build-service/packages/ + debootstrap_1.0.123_all.deb live-build_20210902_all.deb qemu_5.2+dfsg-11_amd64.deb + ``` + + + +* qemu-user-static 在PC端非arm架构的ubuntu系统上,需要借助于qemu-arm-static工具来模拟arm环境安才可以安装arm架构下所需要的软件。 + + + +安装好这些必要工具后,就可以开始编译Debian文件系统了。 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ./build.sh debian +... ... +mke2fs 1.46.5 (30-Dec-2021) +Creating regular file linaro-rootfs.img +Creating filesystem with 825088 4k blocks and 206336 inodes +Filesystem UUID: 9c7ffd7d-1315-4be2-9bb1-153c751dfe45 +Superblock backups stored on blocks: + 32768, 98304, 163840, 229376, 294912, 819200 + +Allocating group tables: done +Writing inode tables: done +Creating journal (16384 blocks): done +Copying files into the device: done +Writing superblocks and filesystem accounting information: done + +Rootfs Image: linaro-rootfs.img +Running 30-rootfs.sh - build_debian /work/guowenxue/sdkv1.4.0_linux5.10/output/debian/images succeeded. +Running 30-rootfs.sh - build_rootfs debian succeeded. +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ +``` + + + +在运行 `./build.sh debian` 可能会出现如下错误:  + + + +我们只需要依据提示更新一些工具即可。 ``` sudo update-binfmts --unimport qemu-aarch64 2>/dev/null sudo update-binfmts --disable qemu-aarch64 2>/dev/null sudo rm -f /usr/bin/qemu-aarch64-static -sudo cp /home/android/rk3568/sdkv1.4.0_linux5.10/device/rockchip/common/data/qemu-aarch64-static /usr/bin/ +sudo cp ~/rk3568/sdkv1.4.0_linux5.10/device/rockchip/common/data/qemu-aarch64-static /usr/bin/ sudo update-binfmts --enable qemu-aarch64 2>/dev/null sudo update-binfmts --import qemu-aarch64 2>/dev/null ``` + + + +编译后的Debian文件系统镜像将存放在 ***debian*** 文件夹下。 + +```bash +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls debian/ +binary mk-image.sh overlay-debug readme.md +linaro-bullseye-alip-20250321-1.tar.gz mk-iso-debian.sh overlay-firmware scripts +linaro-bullseye-arm64.tar.gz mk-rootfs-bullseye.sh packages ubuntu-build-service +linaro-rootfs.img mk-rootfs.sh packages-patches +mk-base-debian.sh overlay post-build.sh + +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ du -sh debian/linaro-rootfs.img +3.0G debian/linaro-rootfs.img +``` + + + +后面在烧录系统镜像时,只需将烧录的rootfs文件替换成这里编译生成的 `linaro-rootfs.img` 文件即可,该系统的默认用户名和密码均为 `linaro`。 + + @@ -283,30 +404,41 @@ -首先使用下面命令选择要编译的目标开发板,SDK版本不一样,该选项的名字不一样。 - -``` -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ ./build.sh lunch - -5. BoardConfig-rk3568-evb1-ddr4-v10.mk # sdkv1.3.0_linux4.19 选择该选项 -5. rockchip_rk3568_evb1_ddr4_v10_defconfig # sdkv1.4.0_linux5.10 选择该选项 -Which would you like? [0]: 5 -``` - - - 如果需要,可以使用下面命令来彻底清除之前的编译。 ``` -guowenxue@ubuntu22:~/rk3568/sdk$ ./build.sh cleanall +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ./build.sh cleanall ``` - ***sdkv1.3.0_linux4.19*** 和 ***sdkv1.4.0_linux5.10*** 版本SDK 都需要修改 IO Domain 电压如下。 +首先使用下面命令选择要编译的目标开发板,这里选择 `5. rockchip_rk3568_evb1_ddr4_v10_defconfig`。 ``` -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ vim kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ./build.sh lunch + +1. rockchip_defconfig +2. rockchip_rk3566_evb2_lp4x_v10_32bit_defconfig +3. rockchip_rk3566_evb2_lp4x_v10_defconfig +4. rockchip_rk3568_evb1_ddr4_v10_32bit_defconfig +5. rockchip_rk3568_evb1_ddr4_v10_defconfig +6. rockchip_rk3568_evb8_lp4_v10_32bit_defconfig +7. rockchip_rk3568_evb8_lp4_v10_defconfig +8. rockchip_rk3568_pcie_ep_lp4x_v10_defconfig +9. rockchip_rk3568_uvc_evb1_ddr4_v10_defconfig +Which would you like? [1]: 5 +Switching to defconfig: /work/guowenxue/sdkv1.4.0_linux5.10/device/rockchip/.chip/rockchip_rk3568_evb1_ddr4_v10_defconfig +# +# configuration written to /work/guowenxue/sdkv1.4.0_linux5.10/output/.config +# +``` + + + +接下来需要修改Linux内核 DTS文件中的 `IO Domain` 电压如下。 + +``` +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ vim kernel/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi ... ... ... &pmu_io_domains { @@ -314,9 +446,9 @@ pmuio2-supply = <&vcc3v3_pmu>; vccio1-supply = <&vccio_acodec>; vccio3-supply = <&vccio_sd>; - vccio4-supply = <&vcc_1v8>; + vccio4-supply = <&vcc_1v8>; //Modify from 3v3 to 1v8 vccio5-supply = <&vcc_3v3>; - vccio6-supply = <&vcc_1v8>; + vccio6-supply = <&vcc_1v8>; //Modify from 3v3 to 1v8 vccio7-supply = <&vcc_3v3>; }; ``` @@ -326,7 +458,12 @@ 接下来运行 build.sh 脚本开始编译SDK,默认是 Buildroot 系统镜像。 ``` -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ ./build.sh +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ./build.sh +... ... ++ tar -uf /work/guowenxue/sdkv1.4.0_linux5.10/output/firmware/linux-headers.tar scripts tools ++ cd /work/guowenxue/sdkv1.4.0_linux5.10 +Running 99-all.sh - build_all succeeded. +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ``` @@ -334,23 +471,7 @@ 也可以通过设置坏境变量 **RK_ROOTFS_SYSTEM** 指定不同 rootfs。 **RK_ROOTFS_SYSTEM** ⽬前可设定三种系统:***buildroot、debian、 yocto***。 ```bash -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ RK_ROOTFS_SYSTEM=yocto ./build.sh -``` - - - -如果是 ***sdkv1.3.0_linux4.19*** 在编译 Linux内核时需要做如下选择。 - -``` -编译内核过程弹窗的电压选择如下: - 3300000 PMUIO2 Supply Power Voltage(uV) - 3300000 VCCIO1 Supply Power Voltage(uV) - 3300000 VCCIO3 Supply Power Voltage(uV) - 1800000 VCCIO4 Supply Power Voltage(uV) - 3300000 VCCIO5 Supply Power Voltage(uV) - 1800000 VCCIO6 Supply Power Voltage(uV) - 3300000 VCCIO7 Supply Power Voltage(uV) -... ... ... +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ RK_ROOTFS_SYSTEM=yocto ./build.sh ``` @@ -358,8 +479,10 @@ 编译生成的文件将放在 **rockdev** 文件夹下。 ``` -guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ ls rockdev/ -boot.img linux-headers.tar MiniLoaderAll.bin misc.img oem.img parameter.txt recovery.img rootfs.img uboot.img update.img userdata.img +guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls rockdev +boot.img misc.img recovery.img update.img +linux-headers.tar oem.img rootfs.img userdata.img +MiniLoaderAll.bin parameter.txt uboot.img ``` @@ -400,10 +523,10 @@ 从凌云实验室文件服务器上下载并安装下面烧录软件。 -* [CP210x_VCP_Windows.zip](http://studio.iot-yun.club:2211/rockchip/tools/CP210x_VCP_Windows.zip) 解压缩并安装开发板的Console调试串口驱动; -* [DriverAssitant_v5.1.1.zip](http://studio.iot-yun.club:2211/rockchip/tools/DriverAssitant_v5.1.1.zip) , 解压缩安装RK3568开发板驱动; +* [CP210x_VCP_Windows.zip](http://studio.weike-iot.com:2211/rockchip/tools/CP210x_VCP_Windows.zip) 解压缩并安装开发板的Console调试串口驱动; +* [DriverAssitant_v5.1.1.zip](http://studio.weike-iot.com:2211/rockchip/tools/DriverAssitant_v5.1.1.zip) , 解压缩安装RK3568开发板驱动; -* [RKDevTool_Release_v2.86.zip](http://studio.iot-yun.club:2211/rockchip/tools/RKDevTool_Release_v2.86.zip) ,直接解压缩即可运行的 RK3568开发板烧录软件; +* [RKDevTool_Release_v2.86.zip](http://studio.weike-iot.com:2211/rockchip/tools/RKDevTool_Release_v2.86.zip) ,直接解压缩即可运行的 RK3568开发板烧录软件; @@ -1738,6 +1861,6 @@ 运行comport程序让rk3568输出读取电压的指令给mcu -同样在XCOM上也能看到MCU的采样调试信息,旋转电位器旋钮至最左或最右分别测量最小电流和最大电流,量程约为0.017mV~5.882mV +同样在XCOM上也能看到MCU的采样调试信息,旋转电位器旋钮至最左或最右分别测量最小电流和最大电流,量程约为0.017V~5.882V  -- Gitblit v1.9.1