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