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 |  165 ++++++++++++++++++++++++++++++------------------------
 1 files changed, 91 insertions(+), 74 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 27fb90e..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"
@@ -22,28 +22,28 @@
 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.4.0_linux5.10*** 编译所需要的 Python版本依赖 **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/python3 1  
-guowenxue@ubuntu22:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 2
+guowenxue@ubuntu22:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1  
+guowenxue@ubuntu22:~$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
 guowenxue@ubuntu22:~$ sudo update-alternatives --config python
 There are 2 choices for the alternative python (providing /usr/bin/python).
 
   Selection    Path              Priority   Status
 ------------------------------------------------------------
 * 0            /usr/bin/python3   2         auto mode
-  1            /usr/bin/python3   1         manual mode
-  2            /usr/bin/python2   2         manual mode
+  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:~/rk3568$ python --version
+guowenxue@ubuntu22:~$ python --version
 Python 3.10.12
 ```
 
@@ -61,82 +61,119 @@
 
 
 
-RK3568 的 ***sdkv1.4.0_linux5.10*** 压缩包就存放在物理主机服务器下, 我们直接在工作路径下解压缩即可。
+如果是在实验室的编译服务器物理主机上,我们可以直接从文件服务器路径那里解压缩过来。这个文件有18GB,解压缩需要一些时间。
 
-```
+```bash
 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
 ```
-guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls -a
-.  ..  .repo
 
-guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ du -sh .repo/
-18G     .repo/
+
+
+解压缩出来的源码都在隐藏的 ***.repo*** 文件夹下。
+
+```bash
+guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ ls -a
+.  ..  .repo
 
 guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls .repo/
 manifests  manifests.git  manifest.xml  project.list  project-objects  projects  repo
+```
 
-guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls .repo/repo/repo 
-.repo/repo/repo
-test@ubuntu22:/work/test/sdkv1.4.0_linux5.10$ .repo/repo/repo sync -l
+
+
+接下来我们需要使用 **repo** 命令将源码 checkout 出来。
+
+```bash
+guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ .repo/repo/repo sync -l
 Traceback (most recent call last):
-  File "/work/test/sdkv1.4.0_linux5.10/.repo/repo/main.py", line 56, in <module>
+  File "/build/rk3568/sdkv1.4.0_linux5.10/.repo/repo/main.py", line 56, in <module>
     from subcmds.version import Version
-  File "/work/test/sdkv1.4.0_linux5.10/.repo/repo/subcmds/__init__.py", line 35, in <module>
+  File "/build/rk3568/sdkv1.4.0_linux5.10/.repo/repo/subcmds/__init__.py", line 35, in <module>
     mod = __import__(__name__,
-  File "/work/test/sdkv1.4.0_linux5.10/.repo/repo/subcmds/help.py", line 20, in <module>
+  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'
 ```
 
 
 
-出现上面这个问题是因为 **Python3** 已经移除了 `formatter` 的支持,这时候我们可以先将 Python 版本切换为 **Python2** ,等 `repo` sync成功之后,再切回到 Python3 上去。
+上面这个错误信息提示在 ***subcmds/help.py*** 中导入了 `formatter` 模块, 在Python2的formatter模块中,`AbstractFormatter` 和 `DumbWriter` 可能用于生成格式化的文本,比如将文本自动换行,处理缩进等。 
+
+- `AbstractFormatter`: 定义文本格式化逻辑的基类。
+- `DumbWriter`: 将格式化后的文本写入缓冲区。
+
+
+
+在 Python3 中该模块已被移除,而Python3 的 `textwrap` 模块提供了更简单的文本自动换行和缩进功能。如果代码需要基本的文本格式化(如帮助信息的换行),可以用 `textwrap` 直接替代。这样,我们可以修改
 
 ```bash
-guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ sudo update-alternatives --config python
-There are 2 choices for the alternative python (providing /usr/bin/python).
+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()	
+```
 
-  Selection    Path              Priority   Status
-------------------------------------------------------------
-* 0            /usr/bin/python3   2         auto mode
-  1            /usr/bin/python3   1         manual mode
-  2            /usr/bin/python2   2         manual mode
 
-Press <enter> to keep the current choice[*], or type selection number: 2
 
-guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ python --version
-Python 2.7.18
+这个文件也可以从实验室服务器上下载过来,然后直接覆盖。
 
-guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ .repo/repo/repo sync -l
-Updating files: 100% (13563/13563), done.
-Updating files: 100% (737/737), done.nux/buildrootUpdating files:  26% (197/737)
-Updating files: 100% (778/778), done.nux/debianUpdating files:  20% (160/778)
-Updating files: 100% (228/228), done.nux/bsp/docsUpdating files:  27% (62/228)
-Updating files: 100% (2195/2195), done.ux/external/alsa-configUpdating files:   8% (197/2195)
-Updating files: 100% (227/227), done.inux/external/camera_engine_rkaiqUpdating files:   1% (4/227)
-Updating files: 100% (152/152), done.inux/external/chromiumUpdating files:  48% (74/152)
-Updating files: 100% (166/166), done.inux/gstreamer-rockchipUpdating files:  35% (59/166)
-Updating files: 100% (237/237), done.inux/external/rk_pcba_testUpdating files:  40% (97/237)
-Updating files: 100% (1203/1203), done.rknn-toolkit2Updating files:  11% (135/1203)
-Updating files: 100% (5531/5531), done.ux/external/rkupdateUpdating files:  98% (5430/5531)
-Updating files: 100% (81714/81714), done./xserverUpdating files:   8% (6747/81714)
-Updating files: 100% (5939/5939), done.kernelUpdating files:  18% (1082/5939)
-Updating files: 100% (5722/5722), done.prebuilts/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnuUpdating files:  16% (950/5722)
-Updating files: 100% (248/248), done.k/rkbinUpdating files:  49% (122/248)
-Updating files: 100% (13755/13755), done./toolsUpdating files:  23% (3237/13755)
-Updating files: 100% (166/166), done.inux/pokyUpdating files:   8% (14/166)
-Updating files: 100% (6157/6157), done.ux/pokyUpdating files:  30% (1893/6157)
-Checking out projects: 100% (50/50), done.
+```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)
+Updating files: 100% (1171/1171), done.ux/debianUpdating files:  72% (844/1171)
+Updating files: 100% (248/248), done.inux/device/rockchipUpdating files:  10% (25/248)
+Updating files: 100% (247/247), done.inux/bsp/docsUpdating files:  45% (112/247)
+Updating files: 100% (1493/1493), done.ux/bsp/external/broadcom_bsaUpdating files:  41% (622/1493)
+Updating files: 100% (127/127), done.inux/external/libglCompositorUpdating files:  44% (56/127)
+Updating files: 100% (118/118), done.inux/external/rkfacialUpdating files:  29% (35/118)
+Updating files: 100% (921/921), done.k/rknn-toolkit2Updating files:   5% (52/921)
+Updating files: 100% (368/368), done.inux/external/rkupdateUpdating files:  22% (84/368)
+Updating files: 100% (186/186), done.inux/external/rkwifibtUpdating files:  59% (110/186)
+Updating files: 100% (2109/2109), done.ux/security/binUpdating files:  15% (332/2109)
+Updating files: 100% (33/33), done. android/rk/platform/system/rk_tee_userUpdating files:  93% (31/33)
+Updating files: 100% (72280/72280), done./external/uvc_appUpdating files:   3% (2631/72280)
+Updating files: 100% (17900/17900), done.rnelUpdating files:  34% (6102/17900)
+Updating files: 100% (7165/7165), done.prebuilts/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnuUpdating files:  13% (949/7165)
+Updating files: 100% (236/236), done.k/rkbinUpdating files:  46% (109/236)
+Updating files: 100% (13576/13576), done./toolsUpdating files:  88% (12076/13576)
+Checking out projects: 100% (65/65), done.
 repo sync has finished successfully.
 
-guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls
-app  buildroot  build.sh  debian  device  docs  envsetup.sh  external  kernel  Makefile  prebuilts  rkbin  rkflash.sh  tools  u-boot  yocto
+guowenxue@ubuntu22:/build/rk3568/sdkv1.3.0_linux4.19$ ls
+app  buildroot  build.sh  debian  device  docs  envsetup.sh  external  kernel  Makefile  mkfirmware.sh  prebuilts  rkbin  rkflash.sh  tools  u-boot  yocto
 ```
 
 
@@ -146,26 +183,6 @@
 ```
 guowenxue@ubuntu22:~/rk3568/sdkv1.4.0_linux5.10$ ls docs/
 cn  en  licenses  Patches  readme_en.pdf  readme_zh.pdf
-```
-
-
-
-完成之后,再将 Python 版本切换为 Python3。
-
-```bash
-guowenxue@ubuntu22:~$ sudo update-alternatives --config python
-There are 2 choices for the alternative python (providing /usr/bin/python).
-
-  Selection    Path              Priority   Status
-------------------------------------------------------------
-* 0            /usr/bin/python3   2         auto mode
-  1            /usr/bin/python3   1         manual mode
-  2            /usr/bin/python2   2         manual mode
-
-Press <enter> to keep the current choice[*], or type selection number: 1
-
-guowenxue@ubuntu22:~/rk3568$ python --version
-Python 3.10.12
 ```
 
 

--
Gitblit v1.9.1