From 74826c7584307adabd7b5a74c31b29a073f231aa Mon Sep 17 00:00:00 2001
From: anheng <12857953+aahh123456@user.noreply.gitee.com>
Date: Tue, 14 May 2024 22:21:20 +0800
Subject: [PATCH] buildroot debian
---
RK3568_Linux_SDK开发文档/images/ab30d79584572a1e91ad7fea770dc78.png | 0
/dev/null | 0
RK3568_Linux_SDK开发文档/images/image-20240514203334861.png | 0
RK3568_Linux_SDK开发文档/images/image-20240514204322953.png | 0
RK3568_Linux_SDK开发文档/images/image-20240514204009803.png | 0
RK3568_Linux_SDK开发文档/RK3568_Linux_SDK开发文档.md | 183 ++++++++++++++++++++++++++++++++++++---------
RK3568_Linux_SDK开发文档/images/image-20240514182544931.png | 0
RK3568_Linux_SDK开发文档/images/image-20240514182415770.png | 0
RK3568_Linux_SDK开发文档/images/f0494eae9992101da283f9a8c1e4c0d.png | 0
RK3568_Linux_SDK开发文档/images/image-20240514204053423.png | 0
10 files changed, 146 insertions(+), 37 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 ea79ccc..e5df926 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"
@@ -146,7 +146,106 @@
-## 1.3 Linux SDK源码编译
+## 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选中。
+
+
+
+选中python3后保存退出。
+
+输入`make savedefconfig` 此时系统会把你所改变的config信息直接同步到rockchip_rk3568_defconfig
+
+3.编译buildroot
+
+返回~/rk3568/sdkv1.3.0_linux4.19/
+
+输入`./build.sh buildroot`编译buildroot
+
+4.烧录编译出来的buildroot镜像到开发板中,输入`Python3`
+
+
+
+
+
+## 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
+```
+
+```
+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
+
+
+
+我们需要将这个镜像文件烧录到开发板中
+
+
+
+我们将烧录的rootfs文件替换成linaro-rootfs.img即可
+
+烧录完成后启动开发板,会提示输入用户名和密码,这里的用户名和密码在编译脚本里写好了的均为linaro
+
+登录后切换su用户`sudo su`,进入根目录下展示的就是Debian的根文件系统
+
+
+
+## 1.5 Linux SDK源码编译
@@ -559,13 +658,13 @@
pinctrl-0 = <&uart9m1_xfer &rs485_ctrl>;
status = "okay";
};
+&pinctrl {
-//在rk3568-pinctrl.dtsi下加入
-rs485 {
+ rs485 {
rs485_ctrl: rs485-ctrl {
- rockchip,pins =
- <4 RK_PD2 RK_FUNC_GPIO &pcfg_output_low>;
+ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
};
+ };
};
```
@@ -603,6 +702,12 @@

+```
+microcom /dev/ttyS9 -s 115200
+```
+
+
+

@@ -612,10 +717,14 @@
将控制引脚拉高电平,输入如下命令
```c
-gpioset 4 28=1
+gpioset 4 26=1
```
-
+```
+microcom /dev/ttyS9 -s 115200
+```
+
+
@@ -779,13 +888,13 @@
进入到解压出来的文件夹后打开conf-cc文件,行首更改如下,并保存
```
-/home/tangjunfeng/rk3568/sdkv1.3.0_linux4.19/buildroot/output/rockchip_rk3568/host/usr/bin/aarch64-buildroot-linux-gnu-cc -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 -
+~/rk3568/sdkv1.3.0_linux4.19/buildroot/output/rockchip_rk3568/host/usr/bin/aarch64-buildroot-linux-gnu-cc -O2 -DPOSIX -D_POSIX_C_SOURCE=200809L -D_FILE_OFFSET_BITS=64 -
```
打开conf-ld文件,行首更改如下,并保存
```
-/home/tangjunfeng/rk3568/sdkv1.3.0_linux4.19/buildroot/output/rockchip_rk3568/ host/usr/bin/aarch64-buildroot-linux-gnu-cc -s
+~/rk3568/sdkv1.3.0_linux4.19/buildroot/output/rockchip_rk3568/ host/usr/bin/aarch64-buildroot-linux-gnu-cc -s
```
在memtester-4.6.0路径下,进行编译:
@@ -882,7 +991,7 @@
12 LIB_URL=$LY_FTP
13
14 # Cross compiler for cross compile on Linux server
- 15 #CROSS_COMPILE=/home/anheng/rk3568/sdkv1.3.0_linux4.19/buildroot/output/ rockchip_rk3568/host/bin/aarch64-buildroot-linux-gnu-
+ 15 #CROSS_COMPILE=~/rk3568/sdkv1.3.0_linux4.19/buildroot/output/ rockchip_rk3568/host/bin/aarch64-buildroot-linux-gnu-
16 CROSS_COMPILE=/opt/gcc-aarch64-10.3-2021.07/bin/aarch64-none-linux-gnu-
17 # compile jobs
18 JOBS=`cat /proc/cpuinfo |grep "processor"|wc -l`
@@ -925,7 +1034,7 @@
在/install/bin,生成可执行文件 iperf3
```
-lingyun@9d57f9229b66:/home/anheng/install/bin$ ls
+lingyun@9d57f9229b66:~/install/bin$ ls
gpiodetect gpiofind gpioget gpioinfo gpiomon gpioset iperf3
```
@@ -1285,7 +1394,7 @@
[GitHub - rockchip-linux/rknpu2](https://github.com/rockchip-linux/rknpu2?tab=readme-ov-file)
-1. 进入/home/anheng/rk3568/rknpu2-master/examples/rknn_yolov5_demo目录
+1. 进入~/rk3568/rknpu2-master/examples/rknn_yolov5_demo目录
2. `vim build-linux_RK3566_RK3568.sh`
@@ -1299,7 +1408,7 @@

-5. 用adb命令将/home/anheng/rk3568/rknpu2-master/examples/rknn_yolov5_demo/install目录下的rknn_yolov5_demo_Linux文件夹上传到开发板的/data目录下
+5. 用adb命令将~/rk3568/rknpu2-master/examples/rknn_yolov5_demo/install目录下的rknn_yolov5_demo_Linux文件夹上传到开发板的/data目录下
6. 指定库文件路径 `export LD_LIBRARY_PATH=/data/rknn_yolov5_demo_Linux/lib `
@@ -1312,51 +1421,51 @@

## 3.12 DIO测试
-
+
### 3.12.1 硬件原理图说明
-
+

-
+

-
+

-
+

-
+
### 3.12.2 Din测试
-
+

-
+
按照上图的说明方法,将Din-0短接GND,此时Din-0输出低电平,测量R6114两侧的电压值,红表笔接一侧,黑笔接地。此时可以发现万用表显示电压为0.17v左右。其他的三个Din均是相同的方法。
-
+
**注意:为什么不是0V而是0.17v的微弱电压?**
-
+
**因为从下图可以看出光耦内置三极管的CE结,饱合导通时会存在一定的压降,这个0.17v即为压降。**
-
+

-
+
### 3.12.3 Dout测试
-
+

-
+
如上图所示连接好电路,以Dout-0为例说明,其他的Dout的测试方法均相同
-
+
输入`gpioset 0 4=0`,使gpio输出为低电平,用万用表测试R6211两端的电压正常情况均为0v。
-
+
输入`gpioset 0 4=1`,使gpio输出为高电平,用万用表测试R6211两端的电压正常情况均为3.3v。
+
-
-
+
**注意:在RK3568上如果某个gpio没有被复用,默认情况下该引脚的模式是gpio模式,但是此处的GPIO0_PA4例外,所以需要在设备树中特殊配置一下该引脚使用gpio模式。**
-
+

-
+
### 3.12.4 Dout/ Din 联合测试
-
+

-
+
如上图所示将Din与Dout连接好,通过改变Dout的输出电平,检测Din是否收到对应的电平,以Din-0和Dout-0为例说明
-
+
输入`gpioset 0 4=0` `gpioget 3 3`,显示Din-0的电平应为0
-
+
输入`gpioset 0 4=1` `gpioget 3 3`,显示Din-0的电平应为1
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/RS485_tx.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/RS485_tx.png"
deleted file mode 100644
index 1234f95..0000000
--- "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/RS485_tx.png"
+++ /dev/null
Binary files differ
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/ab30d79584572a1e91ad7fea770dc78.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/ab30d79584572a1e91ad7fea770dc78.png"
new file mode 100644
index 0000000..f85c264
--- /dev/null
+++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/ab30d79584572a1e91ad7fea770dc78.png"
Binary files differ
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/f0494eae9992101da283f9a8c1e4c0d.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/f0494eae9992101da283f9a8c1e4c0d.png"
new file mode 100644
index 0000000..81d7310
--- /dev/null
+++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/f0494eae9992101da283f9a8c1e4c0d.png"
Binary files differ
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514182415770.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514182415770.png"
new file mode 100644
index 0000000..3c2cb23
--- /dev/null
+++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514182415770.png"
Binary files differ
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514182544931.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514182544931.png"
new file mode 100644
index 0000000..56726f6
--- /dev/null
+++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514182544931.png"
Binary files differ
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514203334861.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514203334861.png"
new file mode 100644
index 0000000..7cfb163
--- /dev/null
+++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514203334861.png"
Binary files differ
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204009803.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204009803.png"
new file mode 100644
index 0000000..8bdaf82
--- /dev/null
+++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204009803.png"
Binary files differ
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204053423.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204053423.png"
new file mode 100644
index 0000000..536c416
--- /dev/null
+++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204053423.png"
Binary files differ
diff --git "a/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204322953.png" "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204322953.png"
new file mode 100644
index 0000000..1575511
--- /dev/null
+++ "b/RK3568_Linux_SDK\345\274\200\345\217\221\346\226\207\346\241\243/images/image-20240514204322953.png"
Binary files differ
--
Gitblit v1.9.1