# RADXA-ZERO3W-Development-Resources **Repository Path**: sjtu_mav/radxa-zero3-w-development-resources ## Basic Information - **Project Name**: RADXA-ZERO3W-Development-Resources - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-21 - **Last Updated**: 2025-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RADXA ZERO3W 开发资料 ![RADXA ZERO3W 图像](https://qengineering.eu/github/RadxaZero3_GitHub.webp)

## 官方文档 / Official Documentation - 📄 **RADXA ZERO3W 快速上手指南(中文)** 👉 [https://wiki.radxa.com/Zero3W/getting_started](https://wiki.radxa.com/Zero3W/getting_started) ## 系统镜像说明 RADXA ZERO3W 官方当前仅提供 **Debian 系统镜像**。实测发现官方提供的 **Ubuntu 镜像不可用**,建议使用社区编译版本。以下为推荐的第三方镜像资源: * [Joshua-Riek 的 Ubuntu Rockchip 镜像](https://github.com/Joshua-Riek/ubuntu-rockchip) * [Qengineering 提供的 Ubuntu 22 NPU 版镜像](https://github.com/Qengineering/Radxa-Zero-3-NPU-Ubuntu22) --- ## 设备树(Device Tree)配置与更新 在使用 Joshua-Riek 提供的系统镜像时,串口(UART)和 NPU 无法直接启用,需要手动更新设备树。 ### 步骤一:编辑设备树源码 打开目标设备树源文件: ```bash vim overlay/rk3566-npu-usart-enable.dts ``` 示例修改内容如下: ```dts &uart5 { pinctrl-names = "default"; pinctrl-0 = <&uart5m1_xfer>; status = "okay"; }; ``` 设备树的引脚定义可参考官方内核源码中的相关文件: * [Radxa Kernel 引脚定义](https://github.com/radxa/kernel/blob/linux-6.1-stan-rkr5.1/arch/arm64/boot/dts/rockchip/rk3568-pinctrl.dtsi) GPIO 信息可参考官方文档: * [GPIO 接口](https://docs.radxa.com/zero/zero3/hardware-design/hardware-interface#gpio-%E6%8E%A5%E5%8F%A3) ### 步骤二:编译设备树 使用 `dtc` 命令编译生成 overlay 文件: ```bash dtc -@ -I dts -O dtb -o rk3566-npu-usart-enable.dtbo rk3566-npu-usart-enable.dts ``` ### 步骤三:部署 Overlay 文件 将生成的 `.dtbo` 文件复制到目标目录: ```bash sudo cp rk3566-npu-usart-enable.dtbo /usr/lib/firmware/5.10.0-1012-rockchip/device-tree/rockchip/overlay/ ``` ### 步骤四:更新 u-boot 配置 编辑 u-boot 配置文件: ```bash sudo vim /etc/default/u-boot ``` 添加以下内容: ```bash U_BOOT_UPDATE="true" U_BOOT_FDT_OVERLAYS="rk3566-npu-usart-enable.dtbo" U_BOOT_FDT_OVERLAYS_DIR="/usr/lib/firmware/5.10.0-1012-rockchip/device-tree/rockchip/overlay/" ``` 执行更新: ```bash sudo u-boot-update ``` 重启开发板以应用更改。 --- ## 功能验证 ### 验证 NPU 是否启用 ```bash sudo dmesg | grep RKNPU ``` 若正常启用,输出类似如下内容: ![NPU dmesg 输出](doc/dmseg_npu_output.png)

### 验证 UART 是否可用 1. 安装 `minicom`: ```bash sudo apt install minicom ``` 2. 使用 `minicom` 测试串口通信: ```bash sudo minicom -D /dev/ttyS4 -b 115200 ``` --- ## 制作 SD 卡镜像(镜像备份) ### 步骤一:识别 SD 卡设备 插入 SD 卡后使用如下命令列出磁盘: ```bash lsblk ``` 示例输出: ``` /dev/sdb ├─/dev/sdb1 └─/dev/sdb2 ``` ### 步骤二:备份为镜像文件 将整个 SD 卡备份为 `.img` 文件: ```bash sudo dd if=/dev/sdX of=sdcard_backup.img bs=4M status=progress conv=fsync ``` 请将 `sdX` 替换为实际的设备名(如 `/dev/sdb`)。 ### 步骤三:压缩镜像文件 使用 `pishrink.sh` 工具压缩 `.img` 文件: ```bash sudo bash pishrink.sh sdcard_backup.img ``` ## Ubuntu 开发板 SD 卡空间扩展指南(命令行方式) 在烧录 Ubuntu 镜像后,虽然 SD 卡容量为 64GB,但系统根分区往往只占用约 16GB,其余空间未被使用。通常我们可以通过连接显示器和键鼠,使用 `gparted` 图形界面进行扩容。 但在不方便连接显示器的场景中,本文将介绍如何**仅通过命令行**方式,在不重新烧录镜像的前提下,扩展 Ubuntu 系统分区以使用整张 SD 卡的空间。 --- ### 步骤 1:检查分区状态 ```bash lsblk ``` 确认根分区设备名,一般为 `/dev/mmcblk1p1`,并观察是否有未被使用的剩余空间。 --- ### 步骤 2:使用 `fdisk` 删除并重建根分区 ```bash sudo fdisk -l /dev/mmcblk1 sudo fdisk /dev/mmcblk1 ``` 在 `fdisk` 中依次执行以下操作: - 输入 `p` 查看当前分区表,**记下根分区的起始扇区号**(例如 `32768`) > 示例输出如下: > ![fdisk p 输出示例](doc/fdlskpcmdout.png) - 输入 `d` 删除第 1 个分区(不要担心,数据不会丢失,只要起始扇区不变) - 输入 `n` 新建分区: - 选择分区号为 `1` - 起始扇区设置为刚才记下的值(如 `32768`) - 终止扇区保持默认,使用全部剩余空间 - 输入 `w` 保存并退出 --- ### 步骤 3:刷新分区表并扩展文件系统 ```bash sudo partprobe sudo resize2fs /dev/mmcblk1p1 ``` --- ### 步骤 4:验证扩容效果 ```bash df -h / ``` 你应当可以看到根分区 `/` 的总容量已接近 SD 卡实际容量(如 58GB),而不再是之前的 16GB。 --- ## ✅ 注意事项 - 执行 `fdisk` 时一定不要更改起始扇区,否则可能导致系统无法启动 更多技术讨论可参考[Radxa社区](https://forum.radxa.com)