Revert "merge upstream/main"

This reverts commit e227cb5123.
This commit is contained in:
Rosemary_HSN
2025-01-31 03:34:20 +08:00
parent 6981e0d6f9
commit 0a79e6e817
376 changed files with 164149 additions and 162081 deletions

View File

@@ -1,69 +1,69 @@
---
title: 烧录系统
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-8-13
version: v0.1
author: xwj
content:
- Release docs
---
*NanoKVM Full 版本出厂时已经烧录了镜像,可以选择跳过该步骤。*
## 使用读卡器烧录TF卡
1. 准备 SD 卡:
- Full 版本自带一张 32G 的 SD 卡,需要拆开外壳将其取出;
- Lite 版本需要自己准备一张 8G 以上的 SD 卡。
1. 前往 [Github](https://github.com/sipeed/NanoKVM/releases) 下载最新版本镜像。
1. 安装烧录软件,推荐使用 [Etcher](https://etcher.balena.io)。
1. 运行 Etcher
![run Ethcer](../../../../assets/NanoKVM/flashing/run_etcher.png)
1. 点击 `Flash from file`,选择镜像文件:
![select image](../../../../assets/NanoKVM/flashing/select_image.png)
1. 点击 `Select target`,选择 SD 卡:
![select target](../../../../assets/NanoKVM/flashing/select_target.png)
1. 点击 `Flash!`,开始烧录:
![select target](../../../../assets/NanoKVM/flashing/flashing.png)
1. 等待镜像烧录完成。
![select target](../../../../assets/NanoKVM/flashing/flashed.png)
恭喜!镜像烧录完成!
现在,你可以将 SD 卡装到 NanoKVM 上,然后进行下一步的操作了。
## USB 更新 TF 卡镜像
**注意使用 USB 只能更新系统不能用作第一次烧录。**
请保证 TF 里面已经有系统,并且**系统能正常运行**之后才能用这种方式。
- 对于 **NanoKVM cube**:
- 断电,保持 TF 卡插入。
- 使用牙签或卡针等尖锐物体插入USB-C旁的圆形小孔内此处为reset键向下按压保持按压的同时插入 USB 线连接到电脑,等待 U 盘设备出现在电脑上等待boot盘符出现后即可松开卡针。
![select target](../../../../assets\NanoKVM\flashing\boot.png)
- 打开 `Etcher`,选择镜像文件,选择 U 盘设备,点击`Flash`
![select image](../../../../assets/NanoKVM/flashing/select_image.png)
- 等待烧录完成,如果电脑弹出`使用驱动器 G: 中的光盘之前需要将其格式化`这样的字符,**不要**点击格式化磁盘!不然刚烧录好的系统又被格式化了! 关掉窗口, 右键磁盘,选择弹出 TF 卡即可。
- 然后断开USB-C重新上电等待系统启动第一次启动会慢一点等待一会即可等待屏幕显示内容保险起见等待1分钟左右启动过程中不要断电防止正在开机处理的文件损坏解决方法是重新烧录镜像
> 如果发现进不了 U 盘升级模式,可能是系统文件损坏,使用读卡器烧录 TF 卡即可。
---
title: 烧录系统
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-8-13
version: v0.1
author: xwj
content:
- Release docs
---
*NanoKVM Full 版本出厂时已经烧录了镜像,可以选择跳过该步骤。*
## 使用读卡器烧录TF卡
1. 准备 SD 卡:
- Full 版本自带一张 32G 的 SD 卡,需要拆开外壳将其取出;
- Lite 版本需要自己准备一张 8G 以上的 SD 卡。
1. 前往 [Github](https://github.com/sipeed/NanoKVM/releases) 下载最新版本镜像。
1. 安装烧录软件,推荐使用 [Etcher](https://etcher.balena.io)。
1. 运行 Etcher
![run Ethcer](../../../../assets/NanoKVM/flashing/run_etcher.png)
1. 点击 `Flash from file`,选择镜像文件:
![select image](../../../../assets/NanoKVM/flashing/select_image.png)
1. 点击 `Select target`,选择 SD 卡:
![select target](../../../../assets/NanoKVM/flashing/select_target.png)
1. 点击 `Flash!`,开始烧录:
![select target](../../../../assets/NanoKVM/flashing/flashing.png)
1. 等待镜像烧录完成。
![select target](../../../../assets/NanoKVM/flashing/flashed.png)
恭喜!镜像烧录完成!
现在,你可以将 SD 卡装到 NanoKVM 上,然后进行下一步的操作了。
## USB 更新 TF 卡镜像
**注意使用 USB 只能更新系统不能用作第一次烧录。**
请保证 TF 里面已经有系统,并且**系统能正常运行**之后才能用这种方式。
- 对于 **NanoKVM cube**:
- 断电,保持 TF 卡插入。
- 使用牙签或卡针等尖锐物体插入USB-C旁的圆形小孔内此处为reset键向下按压保持按压的同时插入 USB 线连接到电脑,等待 U 盘设备出现在电脑上等待boot盘符出现后即可松开卡针。
![select target](../../../../assets\NanoKVM\flashing\boot.png)
- 打开 `Etcher`,选择镜像文件,选择 U 盘设备,点击`Flash`
![select image](../../../../assets/NanoKVM/flashing/select_image.png)
- 等待烧录完成,如果电脑弹出`使用驱动器 G: 中的光盘之前需要将其格式化`这样的字符,**不要**点击格式化磁盘!不然刚烧录好的系统又被格式化了! 关掉窗口, 右键磁盘,选择弹出 TF 卡即可。
- 然后断开USB-C重新上电等待系统启动第一次启动会慢一点等待一会即可等待屏幕显示内容保险起见等待1分钟左右启动过程中不要断电防止正在开机处理的文件损坏解决方法是重新烧录镜像
> 如果发现进不了 U 盘升级模式,可能是系统文件损坏,使用读卡器烧录 TF 卡即可。

View File

@@ -1,41 +1,41 @@
---
title: 系统介绍
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-8-14
version: v0.1
author: BuGu
content:
- Release docs
---
## 固件镜像与应用APP
NanoKVM 应用运行在修改后的 LicheeRV Nano [固件](https://github.com/sipeed/NanoKVM/releases)上,在网页端->`设置`->`关于`中可以分别看到镜像和应用的版本号。
+ 应用更新包含了KVM的新功能和问题修复可以在网页直接更新推送频次较高;
+ 固件更新则包含较大的系统功能的添加和硬件的适配需要在github下载镜像并重新烧卡推送频次较低。
> NanoKVM 镜像在LicheeRV Nano SDK 和 MaixCDK 基础上构建,可以兼容使用 LicheeRV Nano 的资料反之LicheeRV Nano 或其他 SG2002 产品无法使用KVM软件。如果您想在 NanoKVM 上构建 HDMI 输入相关应用,请与我们联系,以获得技术支持。
## 开源仓库
+ NanoKVM 现已开源前端后端即将开源github仓库满2K star
+ [NanoKVM 开源仓库](https://github.com/sipeed/NanoKVM)
## 固件版本说明
Full 版 NanoKVM 上包含 KVM-A/B 板,早期内测版和正式版存在硬件上的区别
+ 1.2.0 及以上的固件同时支持内测版和正式版
+ 1.1.0 和 1.0.0 版本固件仅支持内测版的硬件
最新的固件有更多的系统功能,同时保证了对不同硬件的支持,为确保所有功能可用,请尽量烧录最新的固件。
## 镜像编译
NanoKVM 镜像基于 [LicheeRV Nano SDK](https://github.com/sipeed/LicheeRV-Nano-Build) ,使用 Buildroot 构建
## 镜像修改
Todo
---
title: 系统介绍
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-8-14
version: v0.1
author: BuGu
content:
- Release docs
---
## 固件镜像与应用APP
NanoKVM 应用运行在修改后的 LicheeRV Nano [固件](https://github.com/sipeed/NanoKVM/releases)上,在网页端->`设置`->`关于`中可以分别看到镜像和应用的版本号。
+ 应用更新包含了KVM的新功能和问题修复可以在网页直接更新推送频次较高;
+ 固件更新则包含较大的系统功能的添加和硬件的适配需要在github下载镜像并重新烧卡推送频次较低。
> NanoKVM 镜像在LicheeRV Nano SDK 和 MaixCDK 基础上构建,可以兼容使用 LicheeRV Nano 的资料反之LicheeRV Nano 或其他 SG2002 产品无法使用KVM软件。如果您想在 NanoKVM 上构建 HDMI 输入相关应用,请与我们联系,以获得技术支持。
## 开源仓库
+ NanoKVM 现已开源前端后端即将开源github仓库满2K star
+ [NanoKVM 开源仓库](https://github.com/sipeed/NanoKVM)
## 固件版本说明
Full 版 NanoKVM 上包含 KVM-A/B 板,早期内测版和正式版存在硬件上的区别
+ 1.2.0 及以上的固件同时支持内测版和正式版
+ 1.1.0 和 1.0.0 版本固件仅支持内测版的硬件
最新的固件有更多的系统功能,同时保证了对不同硬件的支持,为确保所有功能可用,请尽量烧录最新的固件。
## 镜像编译
NanoKVM 镜像基于 [LicheeRV Nano SDK](https://github.com/sipeed/LicheeRV-Nano-Build) ,使用 Buildroot 构建
## 镜像修改
Todo

View File

@@ -1,75 +1,75 @@
---
title: 更新应用
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-8-13
version: v0.1
author: xwj
content:
- Release docs
---
## 开机
1. 使用网线连接 NanoKVM 的有线网口;
2. 使用标准尺寸的 HDMI 线,连接远程主机和 NanoKVM 的 HDMI 接口;
3. 使用 USB C to A 的数据线,连接远程主机和 NanoKVM 的 PC USB 接口。
接好线之后, NanoKVM 就会自动开机。开机启动需要等待一到两分钟。
## 获取 IP
NanoKVM Full 版本在开机启动后,屏幕上会自动显示 IP可以跳过此步骤。
NanoKVM Lite 版本可以通过以下方式获取 IP。
### 在路由器或交换机上查看
NanoKVM 启动后会通过 DHCP 获取 IP。可以在路由器或交换机上找到 NanoKVM 分配的 IP。
### 通过串口查看
使用串口工具连接 NanoKVM 后获取其 IP。
### 通过 usb rndis 网口获取
> 如果远程主机是 Windows 系统,请先参考 [usb rndis 网口](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/5_peripheral.html#usb-rndis-网口) 安装驱动
1. 在远程主机中打开终端软件;
1. 执行 `ifconfig` (在 Windows 系统中是 `ipconfig`)命令;
1. 在显示的网络列表中找到 IPv4 地址为 10 开头的网址,示例如下:
![ipconfig](../../../../assets/NanoKVM/updating/ipconfig.png)
1. 通过 SSH 登录 NanoKVM`ssh root@10.223.155.1` (注意,不是 10.223.155.100),密码为 `root`
![ipconfig](../../../../assets/NanoKVM/updating/ssh.png)
1. 进入 NanoKVM 后,执行 `ifconfig` ,从网络列表中找到 `eth0` 网卡的地址,该地址就是 NanoKVM 的 IP
![ipconfig](../../../../assets/NanoKVM/updating/ifconfig.png)
1. 获取到 IP 后,接下来就可以通过该 IP 访问 NanoKVM 了。
## 检查更新
1. 使用任意电脑,连接到与 NanoKVM 相同的网络;
1. 打开浏览器(推荐使用 Chrome在地址栏中输入刚刚获取到的 IP 并访问;
1. 浏览器会进入一个登录页面,输入默认账号 `admin` 和默认密码 `admin` 进行登录;
![ipconfig](../../../../assets/NanoKVM/updating/login.png)
1. 登录成功后,点击检查更新:
![ipconfig](../../../../assets/NanoKVM/updating/check_for_update.png)
1. 如果有更新,则点击开始更新:
![ipconfig](../../../../assets/NanoKVM/updating/update.png)
1. 等待应用更新完成后,浏览器会自动刷新并重新进入登录页面,再次登录即可。
## 更新完成
大功告成!
现在镜像和应用都已经更新到了最新版本。
只要在浏览器中输入 NanoKVM 的 IP 地址,就可开始操控远程主机了。
---
title: 更新应用
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-8-13
version: v0.1
author: xwj
content:
- Release docs
---
## 开机
1. 使用网线连接 NanoKVM 的有线网口;
2. 使用标准尺寸的 HDMI 线,连接远程主机和 NanoKVM 的 HDMI 接口;
3. 使用 USB C to A 的数据线,连接远程主机和 NanoKVM 的 PC USB 接口。
接好线之后, NanoKVM 就会自动开机。开机启动需要等待一到两分钟。
## 获取 IP
NanoKVM Full 版本在开机启动后,屏幕上会自动显示 IP可以跳过此步骤。
NanoKVM Lite 版本可以通过以下方式获取 IP。
### 在路由器或交换机上查看
NanoKVM 启动后会通过 DHCP 获取 IP。可以在路由器或交换机上找到 NanoKVM 分配的 IP。
### 通过串口查看
使用串口工具连接 NanoKVM 后获取其 IP。
### 通过 usb rndis 网口获取
> 如果远程主机是 Windows 系统,请先参考 [usb rndis 网口](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/5_peripheral.html#usb-rndis-网口) 安装驱动
1. 在远程主机中打开终端软件;
1. 执行 `ifconfig` (在 Windows 系统中是 `ipconfig`)命令;
1. 在显示的网络列表中找到 IPv4 地址为 10 开头的网址,示例如下:
![ipconfig](../../../../assets/NanoKVM/updating/ipconfig.png)
1. 通过 SSH 登录 NanoKVM`ssh root@10.223.155.1` (注意,不是 10.223.155.100),密码为 `root`
![ipconfig](../../../../assets/NanoKVM/updating/ssh.png)
1. 进入 NanoKVM 后,执行 `ifconfig` ,从网络列表中找到 `eth0` 网卡的地址,该地址就是 NanoKVM 的 IP
![ipconfig](../../../../assets/NanoKVM/updating/ifconfig.png)
1. 获取到 IP 后,接下来就可以通过该 IP 访问 NanoKVM 了。
## 检查更新
1. 使用任意电脑,连接到与 NanoKVM 相同的网络;
1. 打开浏览器(推荐使用 Chrome在地址栏中输入刚刚获取到的 IP 并访问;
1. 浏览器会进入一个登录页面,输入默认账号 `admin` 和默认密码 `admin` 进行登录;
![ipconfig](../../../../assets/NanoKVM/updating/login.png)
1. 登录成功后,点击检查更新:
![ipconfig](../../../../assets/NanoKVM/updating/check_for_update.png)
1. 如果有更新,则点击开始更新:
![ipconfig](../../../../assets/NanoKVM/updating/update.png)
1. 等待应用更新完成后,浏览器会自动刷新并重新进入登录页面,再次登录即可。
## 更新完成
大功告成!
现在镜像和应用都已经更新到了最新版本。
只要在浏览器中输入 NanoKVM 的 IP 地址,就可开始操控远程主机了。

View File

@@ -1,163 +1,163 @@
---
title: 用户指南
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-7-4
version: v0.1
author: BuGu
content:
- Release docs
- date: 2024-8-14
version: v1.1
author: BuGu
content:
- Update docs
---
## OLED界面
![](./../../../assets/NanoKVM/unbox/oled.jpg)
+ 显示网线、USB、HDMI 连接状态,连接后图标将反色显示;
+ IP:连接网线后 NanoKVM 默认自动获取IP并显示在 OLED 上若无法Ping通网关将在IP前显示`!`;
+ RES: 显示当前传输的分辨率默认720P
+ TYPE: 显示传输的方式支持MJPG 和 H264两种模式
+ STREAM: 显示实时传输帧率系统默认开启了帧差检测画面静止时停止发送画面静止时FPS显示为 0
+ QUALITY: 显示压缩质量50-100%默认为80%
+ 主界面提供 OLED 休眠功能, 以防止 OLED 烧屏, 短按 BOOT 即可关闭或打开 OLED
+ `2.1.4`版应用后添加OLED自动休眠功能在设置中设置休眠时间后OLED会在设定时间后自动休眠按下BOOT可以临时唤醒OLED
## 管理页面功能
![](./../../../assets/NanoKVM/introduce/web_ui.gif)
悬浮栏从左到右依次为图像设置、屏幕键盘、鼠标样式、镜像挂载、自定义脚本、KVM网页终端、WOL、ATX控制/指示、设置、全屏、隐藏悬浮栏。
### 分辨率、帧率、图像质量设置
+ NanoKVM 支持 1080P、720P、600P、480P 的图像传输,在图像设置->分辨率中可以选择不同的分辨率。越大的分辨率所占用带宽越大、实时帧率越小。
+ 注:此处仅修改图像的传输大小,不会改变 HDMI 输入的图像尺寸,如需修改,请前往主机系统的设置菜单进行设置。
+ 帧率设置选项用于修改传输的最大帧率可以限制网络带宽的占用但帧率越低画面越卡请根据网络情况合理配置。Full版用户在OLED上可看到视频的实时帧率。
+ 图像质量选项可以修改画面的压缩比例,当您认为画面较卡,延迟较高时,可以适当调低图像质量。
+ 帧差检测
+ NanoKVM 默认打开帧差检测功能,即画面静止时停止传输图像,用于节省流量。
+ 此功能产生约占用2.5%的CPU占用从静止到画面变化存在 0.2s 的延迟,点击`显示`->`帧差检测`即可关闭或开启此功能。
### 虚拟键鼠使用
+ NanoKVM 的 USB 接口模拟出了键鼠设备。打开浏览器页面后,系统将自动捕获键鼠输入,并将操作实时同步到 NanoKVM 连接的主机。用户可以选择隐藏鼠标或改变在画面上显示的样式。
+ 对于不方便使用键盘的用户,我们提供了屏幕键盘,点击悬浮栏的键盘图标即可唤出屏幕键盘。
### ISO镜像挂载以及远程装机
+ Nano KVM的 USB-C 端口除模拟键鼠设备外还模拟了一个U盘设备挂载了TF卡内的一部分存储空间用于装机等需求该U盘默认格式化为exFAT格式Full版NanoKVM内置TF卡模拟出的U盘大小约21G。
+ 与普通U盘不同NanoKVM的虚拟U盘内可同时存放多个镜像开机之前可以通过 web 页面的选项选择要安装的系统镜像进行挂载。
用户需提前下载待安装的镜像(通常以.iso结尾将 NanoKVM USB-C 插入电脑将下载好的镜像直接复制到U盘内可复制多个系统即可拔出。
按上述步骤连接远程主机与Nano KVM在浏览器登录系统后点击光盘图标选中待安装的系统即可实现ISO挂载
![](./../../../assets/NanoKVM/guide/imgsl.png)
接下来开始装机操作,点击`开机(短按)`迅速按键盘上的F11键不同主机按键可能不同请参照主机说明选择对应的镜像启动并完成装机流程。
![](./../../../assets/NanoKVM/guide/install.png)
注:
+ 虚拟U盘功能默认打开如果不需要可通过点击`设置`->`虚拟U盘`关闭。
+ 请先在主机上安全弹出原有的21G虚拟U盘后再挂载镜像,以免数据丢失
+ 虚拟U盘也可以当作普通U盘使用web界面未选中任何镜像时默认挂载整个21G的虚拟U盘。
+ 用户也可使用常规的烧卡方式烧录镜像,不推荐
+ 镜像拷入 NanoKVM 的速度受到 USB2.0 传输速度和 SG2002 写卡速度的限制可能会比较慢用户可将TF卡取出插入电脑[解除隐藏](https://jingyan.baidu.com/article/e4511cf34faece2b845eaf34.html)TF卡的第三个分区直接将镜像拷入其中。
+ 虚拟U盘同时挂载到NanoKVM的 `/data` 目录,用户可在 NanoKVM 终端内直接读写该分区
+ 设置中的取消虚拟U盘操作将强制弹出U盘,请先安全弹出U盘后再设置,以免数据丢失
### 网页终端
+ 用户点击悬浮栏的`终端`->`NanoKVM 终端`图标即可打开网页终端无需ssh直接访问 NanoKVM 系统
+ 当 NanoKVM 断网重连或系统重启后,网页终端界面会提示重新登录,账号`root`,密码`root`
![](./../../../assets/NanoKVM/guide/ssh.png)
### 串口终端
NanoKVM 基于 LicheeRV Nano 构建RVNano 核心板共有3个串口UART0默认用于输出系统log在 NanoKVM Full 版中,引出了 UART1/2用户可自行拓展功能第一批内测版仅在外壳处开孔
![](./../../../assets/NanoKVM/guide/uart_to_3H.jpg)
点击管理页面的`终端`,选择`串口终端`,选择使用的串口,填写波特率,点击开始后即可使用
![](./../../../assets/NanoKVM/guide/uart1.png)
![](./../../../assets/NanoKVM/guide/uart2.png)
注:串口终端功能使用 WebSSH + picocom 搭建,用法同 picocom
### RNDIS
NanoKVM 的 USB 会默认虚拟出 RNDIS USB网卡从设备当 NanoKVM 服务异常时可用于系统维护,请参照[这里](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/system/updating.html#%E9%80%9A%E8%BF%87-usb-rndis-%E7%BD%91%E5%8F%A3%E8%8E%B7%E5%8F%96)连接电脑,更多用法请自行探索。
若不使用 RNDIS 功能,可点击`设置`->`RNDIS`关闭。
注: 2.1.5 版本后添加 ncm 方式接,但默认还是 RNDIS ,启用方式:`touch /boot/usb.ncm` 或在 /boot 分区下创建 usb.ncm 空文件
### ATX电源控制
+ 在悬浮栏右侧,有电源和硬盘图标,正常情况下是灰色状态,开机后电源图标变绿。
+ 点击电源图标可看到重启键、电源键(长/短按)
+ Full版的ATX控制板受延长线芯数限制只引出电源、重启按键和电源灯硬盘灯不亮属正常现象。Lite用户可根据原理图自行扩展。
注:
+ 正式版 NanoKVM-A 硬件保留 WiFi 模块引脚修改了OLED和部分的ATX引脚固件会自动检测硬件版本并自适应。
+ Lite 版 NanoKVM 不包含 NanoKVM-A/B ,固件会直接识别为正式版
### 设置
+ 切换中英文
+ 关于NanoKVM点击打开Wiki
+ 检查更新当有可用更新时用户可点击更新约15s左右网页自动刷新重新登录即可更新完成。
### 关于SSH
+ 2.1.5 版本应用后SSH支持永久关闭和临时开启方法如下
1. 永久关闭:执行`touch /etc/kvm/ssh_stop`即可在NanoKVM下一次开机时开始禁用ssh登录删除该文件`rm /etc/kvm/ssh_stop`即可解除
2. 临时开启:执行`touch /boot/start_ssh_once`或在 /boot 分区下创建 start_ssh_once 空文件即可在NanoKVM下一次开机时打开ssh该文件会自动删除
### 更多功能敬请期待
## 网络延迟测算
主机连接KVM和一个普通屏幕播放秒表计时视频拍照捕捉远程桌面和显示屏计算差值即可估算网络延迟。
## 硬件与结构
### 拆解
Full 版 NanoKVM 在重新烧卡时需要对外壳拆解,请按下图提示拆开外壳
![](./../../../assets/NanoKVM/guide/fix1.png)
1. 拆下底部4颗螺丝
2. 借助HDMI和网口将 NanoKVM 推出外壳
3. 取下散热器即可拔出TF卡
### 内测版和正式版的硬件差别
正式版硬件预留 WiFi 模块相关引脚,修改了 OLED 和 ATX 的引脚分配,如下所示
![](./../../../assets/NanoKVM/guide/PinDefine.png)
为兼容前后两种硬件,软件上做了自适应设计,内测用户和正式版用户可以放心更新。
### 重启问题
早期内测版 Full NanoKVM 在 reboot 系统时会短暂拉高 RST_SW 引脚,导致连接的主机复位,正式版硬件已修复这个问题。
如果您使用早期内测版 Full NanoKVM 并受次问题的困扰,可以拆机后按上图内测版引脚定义,在 RST_KEY 和 PWR_KEY 上添加1K下拉电阻
---
title: 用户指南
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-7-4
version: v0.1
author: BuGu
content:
- Release docs
- date: 2024-8-14
version: v1.1
author: BuGu
content:
- Update docs
---
## OLED界面
![](./../../../assets/NanoKVM/unbox/oled.jpg)
+ 显示网线、USB、HDMI 连接状态,连接后图标将反色显示;
+ IP:连接网线后 NanoKVM 默认自动获取IP并显示在 OLED 上若无法Ping通网关将在IP前显示`!`;
+ RES: 显示当前传输的分辨率默认720P
+ TYPE: 显示传输的方式支持MJPG 和 H264两种模式
+ STREAM: 显示实时传输帧率系统默认开启了帧差检测画面静止时停止发送画面静止时FPS显示为 0
+ QUALITY: 显示压缩质量50-100%默认为80%
+ 主界面提供 OLED 休眠功能, 以防止 OLED 烧屏, 短按 BOOT 即可关闭或打开 OLED
+ `2.1.4`版应用后添加OLED自动休眠功能在设置中设置休眠时间后OLED会在设定时间后自动休眠按下BOOT可以临时唤醒OLED
## 管理页面功能
![](./../../../assets/NanoKVM/introduce/web_ui.gif)
悬浮栏从左到右依次为图像设置、屏幕键盘、鼠标样式、镜像挂载、自定义脚本、KVM网页终端、WOL、ATX控制/指示、设置、全屏、隐藏悬浮栏。
### 分辨率、帧率、图像质量设置
+ NanoKVM 支持 1080P、720P、600P、480P 的图像传输,在图像设置->分辨率中可以选择不同的分辨率。越大的分辨率所占用带宽越大、实时帧率越小。
+ 注:此处仅修改图像的传输大小,不会改变 HDMI 输入的图像尺寸,如需修改,请前往主机系统的设置菜单进行设置。
+ 帧率设置选项用于修改传输的最大帧率可以限制网络带宽的占用但帧率越低画面越卡请根据网络情况合理配置。Full版用户在OLED上可看到视频的实时帧率。
+ 图像质量选项可以修改画面的压缩比例,当您认为画面较卡,延迟较高时,可以适当调低图像质量。
+ 帧差检测
+ NanoKVM 默认打开帧差检测功能,即画面静止时停止传输图像,用于节省流量。
+ 此功能产生约占用2.5%的CPU占用从静止到画面变化存在 0.2s 的延迟,点击`显示`->`帧差检测`即可关闭或开启此功能。
### 虚拟键鼠使用
+ NanoKVM 的 USB 接口模拟出了键鼠设备。打开浏览器页面后,系统将自动捕获键鼠输入,并将操作实时同步到 NanoKVM 连接的主机。用户可以选择隐藏鼠标或改变在画面上显示的样式。
+ 对于不方便使用键盘的用户,我们提供了屏幕键盘,点击悬浮栏的键盘图标即可唤出屏幕键盘。
### ISO镜像挂载以及远程装机
+ Nano KVM的 USB-C 端口除模拟键鼠设备外还模拟了一个U盘设备挂载了TF卡内的一部分存储空间用于装机等需求该U盘默认格式化为exFAT格式Full版NanoKVM内置TF卡模拟出的U盘大小约21G。
+ 与普通U盘不同NanoKVM的虚拟U盘内可同时存放多个镜像开机之前可以通过 web 页面的选项选择要安装的系统镜像进行挂载。
用户需提前下载待安装的镜像(通常以.iso结尾将 NanoKVM USB-C 插入电脑将下载好的镜像直接复制到U盘内可复制多个系统即可拔出。
按上述步骤连接远程主机与Nano KVM在浏览器登录系统后点击光盘图标选中待安装的系统即可实现ISO挂载
![](./../../../assets/NanoKVM/guide/imgsl.png)
接下来开始装机操作,点击`开机(短按)`迅速按键盘上的F11键不同主机按键可能不同请参照主机说明选择对应的镜像启动并完成装机流程。
![](./../../../assets/NanoKVM/guide/install.png)
注:
+ 虚拟U盘功能默认打开如果不需要可通过点击`设置`->`虚拟U盘`关闭。
+ 请先在主机上安全弹出原有的21G虚拟U盘后再挂载镜像,以免数据丢失
+ 虚拟U盘也可以当作普通U盘使用web界面未选中任何镜像时默认挂载整个21G的虚拟U盘。
+ 用户也可使用常规的烧卡方式烧录镜像,不推荐
+ 镜像拷入 NanoKVM 的速度受到 USB2.0 传输速度和 SG2002 写卡速度的限制可能会比较慢用户可将TF卡取出插入电脑[解除隐藏](https://jingyan.baidu.com/article/e4511cf34faece2b845eaf34.html)TF卡的第三个分区直接将镜像拷入其中。
+ 虚拟U盘同时挂载到NanoKVM的 `/data` 目录,用户可在 NanoKVM 终端内直接读写该分区
+ 设置中的取消虚拟U盘操作将强制弹出U盘,请先安全弹出U盘后再设置,以免数据丢失
### 网页终端
+ 用户点击悬浮栏的`终端`->`NanoKVM 终端`图标即可打开网页终端无需ssh直接访问 NanoKVM 系统
+ 当 NanoKVM 断网重连或系统重启后,网页终端界面会提示重新登录,账号`root`,密码`root`
![](./../../../assets/NanoKVM/guide/ssh.png)
### 串口终端
NanoKVM 基于 LicheeRV Nano 构建RVNano 核心板共有3个串口UART0默认用于输出系统log在 NanoKVM Full 版中,引出了 UART1/2用户可自行拓展功能第一批内测版仅在外壳处开孔
![](./../../../assets/NanoKVM/guide/uart_to_3H.jpg)
点击管理页面的`终端`,选择`串口终端`,选择使用的串口,填写波特率,点击开始后即可使用
![](./../../../assets/NanoKVM/guide/uart1.png)
![](./../../../assets/NanoKVM/guide/uart2.png)
注:串口终端功能使用 WebSSH + picocom 搭建,用法同 picocom
### RNDIS
NanoKVM 的 USB 会默认虚拟出 RNDIS USB网卡从设备当 NanoKVM 服务异常时可用于系统维护,请参照[这里](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/system/updating.html#%E9%80%9A%E8%BF%87-usb-rndis-%E7%BD%91%E5%8F%A3%E8%8E%B7%E5%8F%96)连接电脑,更多用法请自行探索。
若不使用 RNDIS 功能,可点击`设置`->`RNDIS`关闭。
注: 2.1.5 版本后添加 ncm 方式接,但默认还是 RNDIS ,启用方式:`touch /boot/usb.ncm` 或在 /boot 分区下创建 usb.ncm 空文件
### ATX电源控制
+ 在悬浮栏右侧,有电源和硬盘图标,正常情况下是灰色状态,开机后电源图标变绿。
+ 点击电源图标可看到重启键、电源键(长/短按)
+ Full版的ATX控制板受延长线芯数限制只引出电源、重启按键和电源灯硬盘灯不亮属正常现象。Lite用户可根据原理图自行扩展。
注:
+ 正式版 NanoKVM-A 硬件保留 WiFi 模块引脚修改了OLED和部分的ATX引脚固件会自动检测硬件版本并自适应。
+ Lite 版 NanoKVM 不包含 NanoKVM-A/B ,固件会直接识别为正式版
### 设置
+ 切换中英文
+ 关于NanoKVM点击打开Wiki
+ 检查更新当有可用更新时用户可点击更新约15s左右网页自动刷新重新登录即可更新完成。
### 关于SSH
+ 2.1.5 版本应用后SSH支持永久关闭和临时开启方法如下
1. 永久关闭:执行`touch /etc/kvm/ssh_stop`即可在NanoKVM下一次开机时开始禁用ssh登录删除该文件`rm /etc/kvm/ssh_stop`即可解除
2. 临时开启:执行`touch /boot/start_ssh_once`或在 /boot 分区下创建 start_ssh_once 空文件即可在NanoKVM下一次开机时打开ssh该文件会自动删除
### 更多功能敬请期待
## 网络延迟测算
主机连接KVM和一个普通屏幕播放秒表计时视频拍照捕捉远程桌面和显示屏计算差值即可估算网络延迟。
## 硬件与结构
### 拆解
Full 版 NanoKVM 在重新烧卡时需要对外壳拆解,请按下图提示拆开外壳
![](./../../../assets/NanoKVM/guide/fix1.png)
1. 拆下底部4颗螺丝
2. 借助HDMI和网口将 NanoKVM 推出外壳
3. 取下散热器即可拔出TF卡
### 内测版和正式版的硬件差别
正式版硬件预留 WiFi 模块相关引脚,修改了 OLED 和 ATX 的引脚分配,如下所示
![](./../../../assets/NanoKVM/guide/PinDefine.png)
为兼容前后两种硬件,软件上做了自适应设计,内测用户和正式版用户可以放心更新。
### 重启问题
早期内测版 Full NanoKVM 在 reboot 系统时会短暂拉高 RST_SW 引脚,导致连接的主机复位,正式版硬件已修复这个问题。
如果您使用早期内测版 Full NanoKVM 并受次问题的困扰,可以拆机后按上图内测版引脚定义,在 RST_KEY 和 PWR_KEY 上添加1K下拉电阻

View File

@@ -1,86 +1,86 @@
---
title: 简介
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool, PCIe
update:
- date: 2024-12-5
version: v0.1
author: BuGu
content:
- Release docs
---
## 简介
![](./../../../assets/NanoKVM/introduce/NanoKVM-PCIe.png)
NanoKVM-PCIe 是 NanoKVM 的新形态, 自带 PCIe 挡板, 可以固定在机箱内部, 为台式机用户提供更好的体验。
NanoKVM-PCIe 在 NanoKVM-Cube的基础上添加可选的 WiFi, PoE功能(选配);自带 PCIe 插槽,可以从主板 PCIe 插槽取电;此外, 有线连接(ETH)也更加稳定, 符合更专业的需求。
NanoKVM 系列产品包含一个 HDMI 输入接口,可以被电脑识别为显示器,捕捉电脑画面;一个 USB2.0 接口连接电脑主机可被识别为键盘鼠标触摸板等HID设备同时使用TF卡多余存储空间挂载为一个U盘设备全系标配一个百兆网口用于视频和控制信号等的网络传输。PCIe版 NanoKVM 标配一个0.49英寸OLED, 实时显示各种状态信息, WiFi配网等各种信息。
为满足用户不同需求NanoKVM-PCIe 提供 WiFi 和 PoE 两个可选配模块, 购买时可自由搭配
## 使用场景
![](./../../../assets/NanoKVM/introduce/web_ui.gif)
+ 服务器管理:用于实时监控服务器,获取服务器运行状态,并对其加以控制;
+ 远程桌面、开关机NanoKVM 摆脱主机必须联网和系统软件的限制,作为主机外置硬件,直接提供远程控制的功能;
+ 远程装机NanoKVM 模拟 U盘设备可挂载装机镜像安装系统也可进入BIOS对电脑设置
+ 远程串口NanoKVM 引出两组串口可配合IPMI使用或连接其他开发板使用网页串口终端交互此外用户可自行拓展更多配件
+ 双电脑协同操作
## 参数
| 产品 | NanoKVM (PCIe) | NanoKVM (Full) | PiKVM V4 |
| --- | --- | --- | --- |
| 计算单元 | SG2002(RISCV) | LicheeRV Nano(RISCV) | CM4 (ARM) |
| 分辨率 | 1080P @ 60fps | 1080P @ 60fps | 1080P @ 60fps |
| 视频编码 | MJPEG, H264 | MJPEG, H264 | MJPEG, H264 |
| 视频延迟 | 90230ms | 90230ms | 100230ms |
| UEFI/BIOS | ✓ | ✓ | ✓ |
| 模拟USB键鼠 | ✓ | ✓ | ✓ |
| 模拟USB存储 | ✓ | ✓ | ✓ |
| IPMI | ✓ | ✓ | ✓ |
| Wake-on-LAN | ✓ | ✓ | ✓ |
| Tailscale | ✓ | ✓ | ✓ |
| WebSSH | ✓ | ✓ | ✓ |
| 自定义脚本 | ✓ | ✓ | - |
| ETH | 100M/10M | 100M/10M | 1000M/100M/10M |
| PoE | 选配 | 仅外部连接 | 1000M/100M/10M |
| WiFi | 选配 | - | ✓ |
| ATX电源控制 | 可直连机箱内9Pin电源针脚 | USB接口IO控制板 | RJ45接口IO控制板 |
| OLED显示 | 64*32 0.49" white | 128x64 0.96" white | 128x32 0.91" white |
| 串口终端 | 2路 | 2路 | - |
| Micro SD卡 | 有,开机即用 | 有,开机即用 | 有 |
| 功耗 | 0.2A@5V | 0.2A@5V | Peak 2.6A@5V |
| 电源输入 | 多种供电模式 | PC USB即可供电 <br> 也支持额外辅助供电 | 需要DC 5V 3A供电 |
| 散热 | 静音无风扇 | 静音无风扇 | 需要风扇主动散热 |
| 尺寸 | 66x57x18mm(不含挡板) | 40x36x36mm | 120x68x44mm |
## NanoKVM-PCIe 资料
NanoKVM 与 Sipeed [LicheeRV Nano](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/1_intro.html) 使用相同SOC希望二次开发的小伙伴可在[这里](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/development.html)查看更多资料
> NanoKVM 镜像在LicheeRV Nano SDK 和 MaixCDK 基础上构建,可以兼容使用 LicheeRV Nano 的资料反之LicheeRV Nano 或其他 SG2002 产品无法使用KVM软件。如果您想在 NanoKVM 上构建 HDMI 输入相关应用,请与我们联系,以获得技术支持。
NanoKVM-Cube 和 NanoKVM-PCIe 共用同一套镜像和应用, 自动适配不同的硬件版本
+ [NanoKVM 镜像下载](https://github.com/sipeed/NanoKVM/releases)
## 购买入口
[淘宝官方购买地址]() (待更新)
[速卖通购买地址]()(待更新)
[预售页面](https://sipeed.com/nanokvm/pcie)
## 产品反馈
如果您在使用过程中有任何问题或建议,请通过以下渠道和我们反馈:
+ [Github issues](https://github.com/sipeed/NanoKVM)
+ [MaixHub 论坛](https://maixhub.com/discussion/nanokvm)
+ QQ 交流群: 703230713
---
title: 简介
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool, PCIe
update:
- date: 2024-12-5
version: v0.1
author: BuGu
content:
- Release docs
---
## 简介
![](./../../../assets/NanoKVM/introduce/NanoKVM-PCIe.png)
NanoKVM-PCIe 是 NanoKVM 的新形态, 自带 PCIe 挡板, 可以固定在机箱内部, 为台式机用户提供更好的体验。
NanoKVM-PCIe 在 NanoKVM-Cube的基础上添加可选的 WiFi, PoE功能(选配);自带 PCIe 插槽,可以从主板 PCIe 插槽取电;此外, 有线连接(ETH)也更加稳定, 符合更专业的需求。
NanoKVM 系列产品包含一个 HDMI 输入接口,可以被电脑识别为显示器,捕捉电脑画面;一个 USB2.0 接口连接电脑主机可被识别为键盘鼠标触摸板等HID设备同时使用TF卡多余存储空间挂载为一个U盘设备全系标配一个百兆网口用于视频和控制信号等的网络传输。PCIe版 NanoKVM 标配一个0.49英寸OLED, 实时显示各种状态信息, WiFi配网等各种信息。
为满足用户不同需求NanoKVM-PCIe 提供 WiFi 和 PoE 两个可选配模块, 购买时可自由搭配
## 使用场景
![](./../../../assets/NanoKVM/introduce/web_ui.gif)
+ 服务器管理:用于实时监控服务器,获取服务器运行状态,并对其加以控制;
+ 远程桌面、开关机NanoKVM 摆脱主机必须联网和系统软件的限制,作为主机外置硬件,直接提供远程控制的功能;
+ 远程装机NanoKVM 模拟 U盘设备可挂载装机镜像安装系统也可进入BIOS对电脑设置
+ 远程串口NanoKVM 引出两组串口可配合IPMI使用或连接其他开发板使用网页串口终端交互此外用户可自行拓展更多配件
+ 双电脑协同操作
## 参数
| 产品 | NanoKVM (PCIe) | NanoKVM (Full) | PiKVM V4 |
| --- | --- | --- | --- |
| 计算单元 | SG2002(RISCV) | LicheeRV Nano(RISCV) | CM4 (ARM) |
| 分辨率 | 1080P @ 60fps | 1080P @ 60fps | 1080P @ 60fps |
| 视频编码 | MJPEG, H264 | MJPEG, H264 | MJPEG, H264 |
| 视频延迟 | 90230ms | 90230ms | 100230ms |
| UEFI/BIOS | ✓ | ✓ | ✓ |
| 模拟USB键鼠 | ✓ | ✓ | ✓ |
| 模拟USB存储 | ✓ | ✓ | ✓ |
| IPMI | ✓ | ✓ | ✓ |
| Wake-on-LAN | ✓ | ✓ | ✓ |
| Tailscale | ✓ | ✓ | ✓ |
| WebSSH | ✓ | ✓ | ✓ |
| 自定义脚本 | ✓ | ✓ | - |
| ETH | 100M/10M | 100M/10M | 1000M/100M/10M |
| PoE | 选配 | 仅外部连接 | 1000M/100M/10M |
| WiFi | 选配 | - | ✓ |
| ATX电源控制 | 可直连机箱内9Pin电源针脚 | USB接口IO控制板 | RJ45接口IO控制板 |
| OLED显示 | 64*32 0.49" white | 128x64 0.96" white | 128x32 0.91" white |
| 串口终端 | 2路 | 2路 | - |
| Micro SD卡 | 有,开机即用 | 有,开机即用 | 有 |
| 功耗 | 0.2A@5V | 0.2A@5V | Peak 2.6A@5V |
| 电源输入 | 多种供电模式 | PC USB即可供电 <br> 也支持额外辅助供电 | 需要DC 5V 3A供电 |
| 散热 | 静音无风扇 | 静音无风扇 | 需要风扇主动散热 |
| 尺寸 | 66x57x18mm(不含挡板) | 40x36x36mm | 120x68x44mm |
## NanoKVM-PCIe 资料
NanoKVM 与 Sipeed [LicheeRV Nano](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/1_intro.html) 使用相同SOC希望二次开发的小伙伴可在[这里](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/development.html)查看更多资料
> NanoKVM 镜像在LicheeRV Nano SDK 和 MaixCDK 基础上构建,可以兼容使用 LicheeRV Nano 的资料反之LicheeRV Nano 或其他 SG2002 产品无法使用KVM软件。如果您想在 NanoKVM 上构建 HDMI 输入相关应用,请与我们联系,以获得技术支持。
NanoKVM-Cube 和 NanoKVM-PCIe 共用同一套镜像和应用, 自动适配不同的硬件版本
+ [NanoKVM 镜像下载](https://github.com/sipeed/NanoKVM/releases)
## 购买入口
[淘宝官方购买地址]() (待更新)
[速卖通购买地址]()(待更新)
[预售页面](https://sipeed.com/nanokvm/pcie)
## 产品反馈
如果您在使用过程中有任何问题或建议,请通过以下渠道和我们反馈:
+ [Github issues](https://github.com/sipeed/NanoKVM)
+ [MaixHub 论坛](https://maixhub.com/discussion/nanokvm)
+ QQ 交流群: 703230713

View File

@@ -1,127 +1,127 @@
---
title: 快速上手
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-12-5
version: v0.1
author: BuGu
content:
- Release docs
---
## 开箱
![](./../../../assets/NanoKVM/unbox/PCIe_unbox.jpg)
NanoKVM-PCIe 包装内包含主机, 半高 PCIe 挡板, 两条 USBA-C线缆, 一条 HDMI 线缆, 一根天线, 16P 公对母排线, 4P 母对母排线和一把小螺丝刀
主机上包含杜邦跳线(2+4P), SMA 天线座
注: 上图是 NanoKVM-PCIe 带WiFi 带PoE 版本,不带 WiFi 版本会少一根天线, 挡板上少 SMA 天线座
## 接口介绍
![](./../../../assets/NanoKVM/unbox/PCIe_new_interface.jpg)
老版本的内测硬件两个USB-C口左右相反参照一下图示具体以到手后挡板标识为准
![](./../../../assets/NanoKVM/unbox/PCIe-Interface1.png)
![](./../../../assets/NanoKVM/unbox/PCIe-Interface2.png)
## 供电
+ NanoKVM-PCIe 有多种供电选择: USB HID直接供电, USB PWR IN辅助供电, PCIe 插槽取电, PoE 供电(选配) 请任选一种即可, 同时存在多路供电不会干扰 NanoKVM-PCIe 的运行,请至少使用一路供电
注: 如果需要USB HID直接供电,则需要在BIOS中设置主板关机 USB 常供电,否则会影响远程开机功能
注: NanoKVM-PCIe USB-PWR-IN CC 接口下拉5.1K电阻,可使用正规 PD 充电头供电。部分劣质PD电源存在烧坏 NanoKVM-PCIe 的风险。
## 安装
1. NanoKVM-PCIe 在接线上与 Cube 类似, 请在主机关机且断电的情况下安装 NanoKVM-PCIe, 测试功能全部正常后再装入机箱
2. 使用一条 USB C to A 数据线连接远程主机和 NanoKVM 的 USB-HID 接口(位于 HDMI 接口下方)
也可以参照下图方式, 直接连接机箱内部的九针USB2.0
![](./../../../assets/NanoKVM/unbox/PCIe-USB.jpg)
连接时务必参照上方示意图和下面的 NanoKVM-PCIe 内部接口示意图, 上电前请反复检查, 接错可能会有烧坏 NanoKVM 的风险!部分批次的连接线上的 “HDD LED” 丝印有误,请按照实际情况调整。
![](./../../../assets/NanoKVM/unbox/PCIe-Pin.jpg)
3. 使用附赠的 HDMI 线缆连接远程主机和 NanoKVM 的 HDMI 接口
4. 使用网线连接 路由器/交换机 与 NanoKVM, 如果您在24/12/07后下单的 WiFi 版 NanoKVM-PCIe, 此步骤可以省略, 参照WiFi配网环节使用 WiFi 连入.
5. ATX电源控制: 主机电源远程控制的原理是模拟开关按下操作,并读取LED状态同步到网页, 为此, 需要将主板上原本连接机箱开机按键的9针接口断开,接入 NanoKVM-PCIe 对应接口, 同时为了机箱按钮仍可操控电源, 需要将机箱上的电源排线也连接到 NanoKCM-PCIe上
![](./../../../assets/NanoKVM/unbox/PCIe-ATX.jpg)
接线时,请务必参照上方示意图和 NanoKVM-PCIe 内部接口示意图
![](./../../../assets/NanoKVM/unbox/PCIe-Pin.jpg)
NanoKVM-PCIe 不会监控HDD状态
早期部分用户购买的NanoKVM-PCIe配套全高PCIe挡板在安装上可能存在过长的问题请使用较长螺丝固定注意不要太用力或购买`外径7mm、内径4.2mm、高度3mm`规格的垫圈。若安装仍然存在困难,请联系淘宝/速卖通客服或者kvm@sipeed.com邮箱获取支持
## WiFi 配网
+ 此步骤仅适用于购买了带 WiFi 版本的 NanoKVM-PCIe, 其他版本会在 WiFi 图标位置显示 "--"
+ 若您不便连接网线,NanoKVM-PCIe 提供了 AP 配网功能, 用手机连接 NanoKVM 创建的 AP -> 进入网页配置
具体操作流程如下:
1. 上电开机,等待出现主界面UI,当前 WiFi 状态没有亮起, 无 WiFi IP
![](./../../../assets/NanoKVM/unbox/wifi0.jpg)
2. 用包装内附赠的小螺丝刀长按 PCIe 面板上的 BOOT 小孔按键 2s以上
![](./../../../assets/NanoKVM/unbox/wifi1.jpg)
3. 等待出现 WiFi AP 二维码时, 扫码连接 AP
![](./../../../assets/NanoKVM/unbox/wifi2.jpg)
![](./../../../assets/NanoKVM/unbox/wifi3.jpg)
4. 检测到手机连接成功后, OLED上将出现 Web 二维码, 扫码自动跳转到配置页面
![](./../../../assets/NanoKVM/unbox/wifi5.jpg)
![](./../../../assets/NanoKVM/unbox/wifi6.jpg)
5. 输入 NanoKVM-PCIe 要连接的WiFi 帐号(SSID) 密码(Password), 点击OK, 即可完成配网
![](./../../../assets/NanoKVM/unbox/wifi8.jpg)
![](./../../../assets/NanoKVM/unbox/wifi9.jpg)
注:
+ 若无法通过二维码连接AP, 可短按 BOOT 按键, OLED上将出现 AP SSID 和 PASS, 可使用手机系统设置连接
![](./../../../assets/NanoKVM/unbox/wifi4.jpg)
+ 若无法通过二维码打开网页, 可短按 BOOT 案件, OLED上将出现 WiFI 配置地址, 手机浏览器输入地址后配置
![](./../../../assets/NanoKVM/unbox/wifi7.jpg)
+ 若无法打开配置网页,请关闭移动数据后再试
+ 如果 WiFi 帐号或密码设置错误, OLED上会回到步骤3, 请重新连接AP陪网
+ 长按 BOOT 会退出 WiFi 配置界面
+ 为保证安全,每次配置 WiFi 时, 都会生成一个随机AP密码, 建议按照上述流程完成配置
## 更新
### 更新应用
新的应用往往带来更多功能或修复某些重要漏洞,建议您将 NanoKVM 应用更新到最新版本,具体操作方式请参考 [更新应用](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/system/updating.html)。
## 基础操作
### 如何获取IP地址
Full版NanoKVM自带OLED显示屏联网之后会在显示屏显示IP地址
WiFi 版本 NanoKVM-PCIe ETH 和 WiFi 获取的 IP 将会交替出现, 如图: IP前有'E'的是ETH IP; 有'W'的是 WiFi 获取的IP
![](./../../../assets/NanoKVM/unbox/wifi9.jpg)
### 查看远程桌面
浏览器直接输入获取的IP进入登录页面默认账号密码为admin、admin登录后建议修改密码, 并更新最新的应用
![](./../../../assets/NanoKVM/unbox/unbox_9.png)
注: 建议使用Chrome浏览器其他浏览器可能出现无法显示画面或无法操作键鼠等兼容性问题
### ATX电源控制
如果连接了电源控制接口,可以在网页远程控制电脑启动
+ 网页端提供电源灯状态指示, 电源和重启按钮功能, 不能监控到HDD硬盘灯状态
---
title: 快速上手
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-12-5
version: v0.1
author: BuGu
content:
- Release docs
---
## 开箱
![](./../../../assets/NanoKVM/unbox/PCIe_unbox.jpg)
NanoKVM-PCIe 包装内包含主机, 半高 PCIe 挡板, 两条 USBA-C线缆, 一条 HDMI 线缆, 一根天线, 16P 公对母排线, 4P 母对母排线和一把小螺丝刀
主机上包含杜邦跳线(2+4P), SMA 天线座
注: 上图是 NanoKVM-PCIe 带WiFi 带PoE 版本,不带 WiFi 版本会少一根天线, 挡板上少 SMA 天线座
## 接口介绍
![](./../../../assets/NanoKVM/unbox/PCIe_new_interface.jpg)
老版本的内测硬件两个USB-C口左右相反参照一下图示具体以到手后挡板标识为准
![](./../../../assets/NanoKVM/unbox/PCIe-Interface1.png)
![](./../../../assets/NanoKVM/unbox/PCIe-Interface2.png)
## 供电
+ NanoKVM-PCIe 有多种供电选择: USB HID直接供电, USB PWR IN辅助供电, PCIe 插槽取电, PoE 供电(选配) 请任选一种即可, 同时存在多路供电不会干扰 NanoKVM-PCIe 的运行,请至少使用一路供电
注: 如果需要USB HID直接供电,则需要在BIOS中设置主板关机 USB 常供电,否则会影响远程开机功能
注: NanoKVM-PCIe USB-PWR-IN CC 接口下拉5.1K电阻,可使用正规 PD 充电头供电。部分劣质PD电源存在烧坏 NanoKVM-PCIe 的风险。
## 安装
1. NanoKVM-PCIe 在接线上与 Cube 类似, 请在主机关机且断电的情况下安装 NanoKVM-PCIe, 测试功能全部正常后再装入机箱
2. 使用一条 USB C to A 数据线连接远程主机和 NanoKVM 的 USB-HID 接口(位于 HDMI 接口下方)
也可以参照下图方式, 直接连接机箱内部的九针USB2.0
![](./../../../assets/NanoKVM/unbox/PCIe-USB.jpg)
连接时务必参照上方示意图和下面的 NanoKVM-PCIe 内部接口示意图, 上电前请反复检查, 接错可能会有烧坏 NanoKVM 的风险!部分批次的连接线上的 “HDD LED” 丝印有误,请按照实际情况调整。
![](./../../../assets/NanoKVM/unbox/PCIe-Pin.jpg)
3. 使用附赠的 HDMI 线缆连接远程主机和 NanoKVM 的 HDMI 接口
4. 使用网线连接 路由器/交换机 与 NanoKVM, 如果您在24/12/07后下单的 WiFi 版 NanoKVM-PCIe, 此步骤可以省略, 参照WiFi配网环节使用 WiFi 连入.
5. ATX电源控制: 主机电源远程控制的原理是模拟开关按下操作,并读取LED状态同步到网页, 为此, 需要将主板上原本连接机箱开机按键的9针接口断开,接入 NanoKVM-PCIe 对应接口, 同时为了机箱按钮仍可操控电源, 需要将机箱上的电源排线也连接到 NanoKCM-PCIe上
![](./../../../assets/NanoKVM/unbox/PCIe-ATX.jpg)
接线时,请务必参照上方示意图和 NanoKVM-PCIe 内部接口示意图
![](./../../../assets/NanoKVM/unbox/PCIe-Pin.jpg)
NanoKVM-PCIe 不会监控HDD状态
早期部分用户购买的NanoKVM-PCIe配套全高PCIe挡板在安装上可能存在过长的问题请使用较长螺丝固定注意不要太用力或购买`外径7mm、内径4.2mm、高度3mm`规格的垫圈。若安装仍然存在困难,请联系淘宝/速卖通客服或者kvm@sipeed.com邮箱获取支持
## WiFi 配网
+ 此步骤仅适用于购买了带 WiFi 版本的 NanoKVM-PCIe, 其他版本会在 WiFi 图标位置显示 "--"
+ 若您不便连接网线,NanoKVM-PCIe 提供了 AP 配网功能, 用手机连接 NanoKVM 创建的 AP -> 进入网页配置
具体操作流程如下:
1. 上电开机,等待出现主界面UI,当前 WiFi 状态没有亮起, 无 WiFi IP
![](./../../../assets/NanoKVM/unbox/wifi0.jpg)
2. 用包装内附赠的小螺丝刀长按 PCIe 面板上的 BOOT 小孔按键 2s以上
![](./../../../assets/NanoKVM/unbox/wifi1.jpg)
3. 等待出现 WiFi AP 二维码时, 扫码连接 AP
![](./../../../assets/NanoKVM/unbox/wifi2.jpg)
![](./../../../assets/NanoKVM/unbox/wifi3.jpg)
4. 检测到手机连接成功后, OLED上将出现 Web 二维码, 扫码自动跳转到配置页面
![](./../../../assets/NanoKVM/unbox/wifi5.jpg)
![](./../../../assets/NanoKVM/unbox/wifi6.jpg)
5. 输入 NanoKVM-PCIe 要连接的WiFi 帐号(SSID) 密码(Password), 点击OK, 即可完成配网
![](./../../../assets/NanoKVM/unbox/wifi8.jpg)
![](./../../../assets/NanoKVM/unbox/wifi9.jpg)
注:
+ 若无法通过二维码连接AP, 可短按 BOOT 按键, OLED上将出现 AP SSID 和 PASS, 可使用手机系统设置连接
![](./../../../assets/NanoKVM/unbox/wifi4.jpg)
+ 若无法通过二维码打开网页, 可短按 BOOT 案件, OLED上将出现 WiFI 配置地址, 手机浏览器输入地址后配置
![](./../../../assets/NanoKVM/unbox/wifi7.jpg)
+ 若无法打开配置网页,请关闭移动数据后再试
+ 如果 WiFi 帐号或密码设置错误, OLED上会回到步骤3, 请重新连接AP陪网
+ 长按 BOOT 会退出 WiFi 配置界面
+ 为保证安全,每次配置 WiFi 时, 都会生成一个随机AP密码, 建议按照上述流程完成配置
## 更新
### 更新应用
新的应用往往带来更多功能或修复某些重要漏洞,建议您将 NanoKVM 应用更新到最新版本,具体操作方式请参考 [更新应用](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/system/updating.html)。
## 基础操作
### 如何获取IP地址
Full版NanoKVM自带OLED显示屏联网之后会在显示屏显示IP地址
WiFi 版本 NanoKVM-PCIe ETH 和 WiFi 获取的 IP 将会交替出现, 如图: IP前有'E'的是ETH IP; 有'W'的是 WiFi 获取的IP
![](./../../../assets/NanoKVM/unbox/wifi9.jpg)
### 查看远程桌面
浏览器直接输入获取的IP进入登录页面默认账号密码为admin、admin登录后建议修改密码, 并更新最新的应用
![](./../../../assets/NanoKVM/unbox/unbox_9.png)
注: 建议使用Chrome浏览器其他浏览器可能出现无法显示画面或无法操作键鼠等兼容性问题
### ATX电源控制
如果连接了电源控制接口,可以在网页远程控制电脑启动
+ 网页端提供电源灯状态指示, 电源和重启按钮功能, 不能监控到HDD硬盘灯状态

View File

@@ -1,145 +1,145 @@
---
title: 用户指南
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-12-6
version: v0.1
author: BuGu
content:
- Release docs
---
## OLED界面
在 NanoKVM-PCIe 上, OLED有两种界面: 主界面和WiFi配置界面,通过长按BOOT(2s)切换两个界面
主界面:
![](./../../../assets/NanoKVM/unbox/wifi9.jpg)
+ 显示网线、USB、HDMI 连接状态,连接后图标将反色显示;
+ IP: 连接网线后 NanoKVM 默认自动获取IP并显示在 OLED 上WiFi版本 IP 将来回切换;
+ 分辨率: 将显示HDMI物理分辨率,如1920*1080
+ FPS: 显示实时传输帧率
+ 主界面提供 OLED 休眠功能, 以防止 OLED 烧屏, 短按 BOOT 即可关闭或打开 OLED
+ `2.1.4`版应用后添加OLED自动休眠功能在设置中设置休眠时间后OLED会在设定时间后自动休眠按下BOOT可以临时唤醒OLED
WiFi配置界面(没有选配WiFi的版本无WiFi配置界面)
![](./../../../assets/NanoKVM/unbox/wifi2.jpg)
+ 根据WiFi配置流程依次显示:WiFi AP 正在创建->WiFi二维码->Web二维码
+ WiFi连接成功后会自动退出该界面
+ 详细WiFi配置流程请参考[配置WiFi](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM_PCIe/quick_start.html#WiFi-配网)
## 管理页面功能
![](./../../../assets/NanoKVM/introduce/web_ui.gif)
悬浮栏从左到右依次为图像设置、屏幕键盘、鼠标样式、镜像挂载、自定义脚本、KVM网页终端、WOL、ATX控制/指示、设置、全屏、隐藏悬浮栏。
### 分辨率、格式、帧率、图像质量设置
+ NanoKVM 支持 1080P、720P、600P、480P 的图像传输,在图像设置->分辨率中可以选择不同的分辨率。越大的分辨率所占用带宽越大、实时帧率越小, Auto模式下传输分辨率将跟随主机HDMI物理分辨率。
+ 注:此处仅修改图像的传输大小,不会改变 HDMI 输入的图像尺寸,如需修改,请前往主机系统的设置菜单进行设置。
+ 格式设置: 当前, NanoKVM 支持两种格式: MJPEG和H264
+ MJPEG格式传输每一帧图像, 图像质量相对较高, 延迟比较确定, 但流量消耗比较高
+ H264格式传输视频流数据, 传输数据体积小, 延迟低,在高画质下比较明显
+ 帧率设置选项用于修改传输的最大帧率可以限制网络带宽的占用但帧率越低画面越卡请根据网络情况合理配置。Full版用户在OLED上可看到视频的实时帧率。
+ 图像质量选项可以修改画面的压缩比例,当您认为画面较卡,延迟较高时,可以适当调低图像质量。
+ 在MJPEG格式下, 低,中,高,无损,分别代表图像压缩比为: 50%, 60%, 80%, 100%
+ 在H264格式下, 低,中,高,无损,分别代表传输码率为: 1000Kbps, 2000Kbps, 3000Kbps, 5000Kbps
### 虚拟键鼠使用
+ NanoKVM 的 USB 接口模拟出了键鼠设备。打开浏览器页面后,系统将自动捕获键鼠输入,并将操作实时同步到 NanoKVM 连接的主机。用户可以选择隐藏鼠标或改变在画面上显示的样式。
+ 对于不方便使用键盘的用户,我们提供了屏幕键盘,点击悬浮栏的键盘图标即可唤出屏幕键盘。
+ 少数情况下HID键鼠无法控制主机, 请点击重置HID后再试
+ 部分 BIOS 要求鼠标必须使用相对位移模式, 请在网页->鼠标模式中修改
+ 部分 BIOS 要求键鼠必须使用带有BIOS标记的模式,请在网页终端中执行 `touch /boot/BIOS && reboot`
### ISO镜像挂载以及远程装机
+ Nano KVM的 USB-C 端口除模拟键鼠设备外还模拟了一个U盘设备挂载了TF卡内的一部分存储空间用于装机等需求该U盘默认格式化为exFAT格式Full版NanoKVM内置TF卡模拟出的U盘大小约21G。
+ 与普通U盘不同NanoKVM的虚拟U盘内可同时存放多个镜像开机之前可以通过 web 页面的选项选择要安装的系统镜像进行挂载。
用户需提前下载待安装的镜像(通常以.iso结尾将 NanoKVM USB-C 插入电脑将下载好的镜像直接复制到U盘内可复制多个系统即可拔出。
按上述步骤连接远程主机与Nano KVM在浏览器登录系统后点击光盘图标选中待安装的系统即可实现ISO挂载
![](./../../../assets/NanoKVM/guide/imgsl.png)
接下来开始装机操作,点击`开机(短按)`迅速按键盘上的F11键不同主机按键可能不同请参照主机说明选择对应的镜像启动并完成装机流程。
![](./../../../assets/NanoKVM/guide/install.png)
注:
+ 虚拟U盘功能默认打开如果不需要可通过点击`设置`->`虚拟U盘`关闭。
+ 请先在主机上安全弹出原有的21G虚拟U盘后再挂载镜像,以免数据丢失
+ 虚拟U盘也可以当作普通U盘使用web界面未选中任何镜像时默认挂载整个21G的虚拟U盘。
+ 用户也可使用常规的烧卡方式烧录镜像,不推荐
+ 镜像拷入 NanoKVM 的速度受到 USB2.0 传输速度和 SG2002 写卡速度的限制可能会比较慢用户可将TF卡取出插入电脑[解除隐藏](https://jingyan.baidu.com/article/e4511cf34faece2b845eaf34.html)TF卡的第三个分区直接将镜像拷入其中。
+ 虚拟U盘同时挂载到NanoKVM的 `/data` 目录,用户可在 NanoKVM 终端内直接读写该分区
+ 设置中的取消虚拟U盘操作将强制弹出U盘,请先安全弹出U盘后再设置,以免数据丢失
### 网页终端
+ 用户点击悬浮栏的`终端`->`NanoKVM 终端`图标即可打开网页终端无需ssh直接访问 NanoKVM 系统
+ 当 NanoKVM 断网重连或系统重启后,网页终端界面会提示重新登录,账号`root`,密码`root`
![](./../../../assets/NanoKVM/guide/ssh.png)
### 串口终端
NanoKVM 基于 LicheeRV Nano 构建RVNano 核心板共有3个串口UART0默认用于输出系统log在 NanoKVM Full 版中,引出了 UART1/2用户可自行拓展功能第一批内测版仅在外壳处开孔
![](./../../../assets/NanoKVM/guide/uart_to_3H.jpg)
点击管理页面的`终端`,选择`串口终端`,选择使用的串口,填写波特率,点击开始后即可使用
![](./../../../assets/NanoKVM/guide/uart1.png)
![](./../../../assets/NanoKVM/guide/uart2.png)
注:串口终端功能使用 WebSSH + picocom 搭建,用法同 picocom
### RNDIS
NanoKVM 的 USB 会默认虚拟出 RNDIS USB网卡从设备当 NanoKVM 服务异常时可用于系统维护,请参照[这里](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/system/updating.html#%E9%80%9A%E8%BF%87-usb-rndis-%E7%BD%91%E5%8F%A3%E8%8E%B7%E5%8F%96)连接电脑,更多用法请自行探索。
若不使用 RNDIS 功能,可点击`设置`->`RNDIS`关闭。
注: 2.1.5 版本后添加 ncm 方式接,但默认还是 RNDIS ,启用方式:`touch /boot/usb.ncm` 或在 /boot 分区下创建 usb.ncm 空文件
### ATX电源控制
+ 在悬浮栏右侧,有电源和硬盘图标,正常情况下是灰色状态,开机后电源图标变绿。
+ 点击电源图标可看到重启键、电源键(长/短按)
+ Full版的ATX控制板受延长线芯数限制只引出电源、重启按键和电源灯硬盘灯不亮属正常现象。
### 设置
+ 切换中英文
+ 关于NanoKVM点击打开Wiki
+ 检查更新当有可用更新时用户可点击更新约15s左右网页自动刷新重新登录即可更新完成。
### 关于SSH
+ 2.1.5 版本应用后SSH支持永久关闭和临时开启方法如下
1. 永久关闭:执行`touch /etc/kvm/ssh_stop`即可在NanoKVM下一次开机时开始禁用ssh登录删除该文件`rm /etc/kvm/ssh_stop`即可解除
2. 临时开启:执行`touch /boot/start_ssh_once`或在 /boot 分区下创建 start_ssh_once 空文件即可在NanoKVM下一次开机时打开ssh该文件会自动删除
### 更多功能敬请期待
## 硬件与结构
NanoKVM-PCIe 包含 主板 和 USB接口板 两个部分, 通过2P+4P的排线连接, USB接口板仅将 USB-HID 和 USB-PWR 接口引出, 当需要 USB-HID 接主板内部针脚时,可将4P排线断开
PCIe全高挡板通过两颗螺丝固定在主板上,如需替换半高挡板,请拧下螺丝后替换
受限于PCIe规范中接口的位置, HDMI和下方USB距离较近, 部分HDMI胶壳较厚, 可能会和 USB 接口干涉, 请用包装内附赠的 HDMI 线缆连接
---
title: 用户指南
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-12-6
version: v0.1
author: BuGu
content:
- Release docs
---
## OLED界面
在 NanoKVM-PCIe 上, OLED有两种界面: 主界面和WiFi配置界面,通过长按BOOT(2s)切换两个界面
主界面:
![](./../../../assets/NanoKVM/unbox/wifi9.jpg)
+ 显示网线、USB、HDMI 连接状态,连接后图标将反色显示;
+ IP: 连接网线后 NanoKVM 默认自动获取IP并显示在 OLED 上WiFi版本 IP 将来回切换;
+ 分辨率: 将显示HDMI物理分辨率,如1920*1080
+ FPS: 显示实时传输帧率
+ 主界面提供 OLED 休眠功能, 以防止 OLED 烧屏, 短按 BOOT 即可关闭或打开 OLED
+ `2.1.4`版应用后添加OLED自动休眠功能在设置中设置休眠时间后OLED会在设定时间后自动休眠按下BOOT可以临时唤醒OLED
WiFi配置界面(没有选配WiFi的版本无WiFi配置界面)
![](./../../../assets/NanoKVM/unbox/wifi2.jpg)
+ 根据WiFi配置流程依次显示:WiFi AP 正在创建->WiFi二维码->Web二维码
+ WiFi连接成功后会自动退出该界面
+ 详细WiFi配置流程请参考[配置WiFi](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM_PCIe/quick_start.html#WiFi-配网)
## 管理页面功能
![](./../../../assets/NanoKVM/introduce/web_ui.gif)
悬浮栏从左到右依次为图像设置、屏幕键盘、鼠标样式、镜像挂载、自定义脚本、KVM网页终端、WOL、ATX控制/指示、设置、全屏、隐藏悬浮栏。
### 分辨率、格式、帧率、图像质量设置
+ NanoKVM 支持 1080P、720P、600P、480P 的图像传输,在图像设置->分辨率中可以选择不同的分辨率。越大的分辨率所占用带宽越大、实时帧率越小, Auto模式下传输分辨率将跟随主机HDMI物理分辨率。
+ 注:此处仅修改图像的传输大小,不会改变 HDMI 输入的图像尺寸,如需修改,请前往主机系统的设置菜单进行设置。
+ 格式设置: 当前, NanoKVM 支持两种格式: MJPEG和H264
+ MJPEG格式传输每一帧图像, 图像质量相对较高, 延迟比较确定, 但流量消耗比较高
+ H264格式传输视频流数据, 传输数据体积小, 延迟低,在高画质下比较明显
+ 帧率设置选项用于修改传输的最大帧率可以限制网络带宽的占用但帧率越低画面越卡请根据网络情况合理配置。Full版用户在OLED上可看到视频的实时帧率。
+ 图像质量选项可以修改画面的压缩比例,当您认为画面较卡,延迟较高时,可以适当调低图像质量。
+ 在MJPEG格式下, 低,中,高,无损,分别代表图像压缩比为: 50%, 60%, 80%, 100%
+ 在H264格式下, 低,中,高,无损,分别代表传输码率为: 1000Kbps, 2000Kbps, 3000Kbps, 5000Kbps
### 虚拟键鼠使用
+ NanoKVM 的 USB 接口模拟出了键鼠设备。打开浏览器页面后,系统将自动捕获键鼠输入,并将操作实时同步到 NanoKVM 连接的主机。用户可以选择隐藏鼠标或改变在画面上显示的样式。
+ 对于不方便使用键盘的用户,我们提供了屏幕键盘,点击悬浮栏的键盘图标即可唤出屏幕键盘。
+ 少数情况下HID键鼠无法控制主机, 请点击重置HID后再试
+ 部分 BIOS 要求鼠标必须使用相对位移模式, 请在网页->鼠标模式中修改
+ 部分 BIOS 要求键鼠必须使用带有BIOS标记的模式,请在网页终端中执行 `touch /boot/BIOS && reboot`
### ISO镜像挂载以及远程装机
+ Nano KVM的 USB-C 端口除模拟键鼠设备外还模拟了一个U盘设备挂载了TF卡内的一部分存储空间用于装机等需求该U盘默认格式化为exFAT格式Full版NanoKVM内置TF卡模拟出的U盘大小约21G。
+ 与普通U盘不同NanoKVM的虚拟U盘内可同时存放多个镜像开机之前可以通过 web 页面的选项选择要安装的系统镜像进行挂载。
用户需提前下载待安装的镜像(通常以.iso结尾将 NanoKVM USB-C 插入电脑将下载好的镜像直接复制到U盘内可复制多个系统即可拔出。
按上述步骤连接远程主机与Nano KVM在浏览器登录系统后点击光盘图标选中待安装的系统即可实现ISO挂载
![](./../../../assets/NanoKVM/guide/imgsl.png)
接下来开始装机操作,点击`开机(短按)`迅速按键盘上的F11键不同主机按键可能不同请参照主机说明选择对应的镜像启动并完成装机流程。
![](./../../../assets/NanoKVM/guide/install.png)
注:
+ 虚拟U盘功能默认打开如果不需要可通过点击`设置`->`虚拟U盘`关闭。
+ 请先在主机上安全弹出原有的21G虚拟U盘后再挂载镜像,以免数据丢失
+ 虚拟U盘也可以当作普通U盘使用web界面未选中任何镜像时默认挂载整个21G的虚拟U盘。
+ 用户也可使用常规的烧卡方式烧录镜像,不推荐
+ 镜像拷入 NanoKVM 的速度受到 USB2.0 传输速度和 SG2002 写卡速度的限制可能会比较慢用户可将TF卡取出插入电脑[解除隐藏](https://jingyan.baidu.com/article/e4511cf34faece2b845eaf34.html)TF卡的第三个分区直接将镜像拷入其中。
+ 虚拟U盘同时挂载到NanoKVM的 `/data` 目录,用户可在 NanoKVM 终端内直接读写该分区
+ 设置中的取消虚拟U盘操作将强制弹出U盘,请先安全弹出U盘后再设置,以免数据丢失
### 网页终端
+ 用户点击悬浮栏的`终端`->`NanoKVM 终端`图标即可打开网页终端无需ssh直接访问 NanoKVM 系统
+ 当 NanoKVM 断网重连或系统重启后,网页终端界面会提示重新登录,账号`root`,密码`root`
![](./../../../assets/NanoKVM/guide/ssh.png)
### 串口终端
NanoKVM 基于 LicheeRV Nano 构建RVNano 核心板共有3个串口UART0默认用于输出系统log在 NanoKVM Full 版中,引出了 UART1/2用户可自行拓展功能第一批内测版仅在外壳处开孔
![](./../../../assets/NanoKVM/guide/uart_to_3H.jpg)
点击管理页面的`终端`,选择`串口终端`,选择使用的串口,填写波特率,点击开始后即可使用
![](./../../../assets/NanoKVM/guide/uart1.png)
![](./../../../assets/NanoKVM/guide/uart2.png)
注:串口终端功能使用 WebSSH + picocom 搭建,用法同 picocom
### RNDIS
NanoKVM 的 USB 会默认虚拟出 RNDIS USB网卡从设备当 NanoKVM 服务异常时可用于系统维护,请参照[这里](https://wiki.sipeed.com/hardware/zh/kvm/NanoKVM/system/updating.html#%E9%80%9A%E8%BF%87-usb-rndis-%E7%BD%91%E5%8F%A3%E8%8E%B7%E5%8F%96)连接电脑,更多用法请自行探索。
若不使用 RNDIS 功能,可点击`设置`->`RNDIS`关闭。
注: 2.1.5 版本后添加 ncm 方式接,但默认还是 RNDIS ,启用方式:`touch /boot/usb.ncm` 或在 /boot 分区下创建 usb.ncm 空文件
### ATX电源控制
+ 在悬浮栏右侧,有电源和硬盘图标,正常情况下是灰色状态,开机后电源图标变绿。
+ 点击电源图标可看到重启键、电源键(长/短按)
+ Full版的ATX控制板受延长线芯数限制只引出电源、重启按键和电源灯硬盘灯不亮属正常现象。
### 设置
+ 切换中英文
+ 关于NanoKVM点击打开Wiki
+ 检查更新当有可用更新时用户可点击更新约15s左右网页自动刷新重新登录即可更新完成。
### 关于SSH
+ 2.1.5 版本应用后SSH支持永久关闭和临时开启方法如下
1. 永久关闭:执行`touch /etc/kvm/ssh_stop`即可在NanoKVM下一次开机时开始禁用ssh登录删除该文件`rm /etc/kvm/ssh_stop`即可解除
2. 临时开启:执行`touch /boot/start_ssh_once`或在 /boot 分区下创建 start_ssh_once 空文件即可在NanoKVM下一次开机时打开ssh该文件会自动删除
### 更多功能敬请期待
## 硬件与结构
NanoKVM-PCIe 包含 主板 和 USB接口板 两个部分, 通过2P+4P的排线连接, USB接口板仅将 USB-HID 和 USB-PWR 接口引出, 当需要 USB-HID 接主板内部针脚时,可将4P排线断开
PCIe全高挡板通过两颗螺丝固定在主板上,如需替换半高挡板,请拧下螺丝后替换
受限于PCIe规范中接口的位置, HDMI和下方USB距离较近, 部分HDMI胶壳较厚, 可能会和 USB 接口干涉, 请用包装内附赠的 HDMI 线缆连接

View File

@@ -1,116 +1,116 @@
---
title: 本地部署
keywords: NanoKVM, Remote desktop, tool, USB
update:
- date: 2025-01-15
version: v0.1
author: xwj
content:
- Release docs
---
首先,点击下载[网页文件](https://cdn.sipeed.com/nanokvm/NanoKVM-USB.zip),解压后会得到`NanoKVM-USB`文件夹。
## 本机部署
> 如果只需要通过本机访问localhost则可以不使用证书。
这里提供了 Node.js 和 Python 的示例。
### Node.js 服务
1. 打开终端,进入上一步骤中的 `NanoKVM-USB` 目录;
2. 执行 `npm install -g http-server` 安装 `http-server`
3. 执行 `http-server -p 8080 -a localhost` 启动服务。
### Python 服务
1. 打开终端,进入上一步骤中的 `NanoKVM-USB` 目录;
2. 执行 `python -m http.server 8080` 启动服务。
### 在网页中访问
服务启动后,打开浏览器访问 `http://localhost:8080` 即可。
注意只能使用`http`协议,无法使用`https`协议。
## 局域网部署
> 如果需要在局域网内访问,则需要使用证书。
这里提供了 Node.js 和 Python 的示例。相较于本地部署,多了一个生成证书的步骤。
### 生成证书
> 请确保已经安装 `openssl`。
1. 打开终端,进入上一步骤中的 `NanoKVM-USB` 目录;
2. 执行 `openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem`
3. 终端会提示需要输入信息,可以一直按回车键跳过,也可以按自己的需要输入信息。
完成后会在当前目录生成两个文件:`key.pem``cert.pem`
### Node.js 服务
1. 执行 `npm install -g http-server` 安装 `http-server`;
2. 执行 `http-server -p 8080 -S -C cert.pem -K key.pem` 启动服务。
### Python 服务
`NanoKVM-USB` 目录中创建 `server.py` 文件,写入以下代码并保存:
```python
import http.server
import ssl
server_address = ('0.0.0.0', 8080)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile='cert.pem', keyfile='key.pem')
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
print(f"Serving HTTPS on {server_address[0]}:{server_address[1]}")
httpd.serve_forever()
```
执行 `python server.py` 运行服务。
### 在网页中访问
打开浏览器,输入服务地址,比如`https://127.0.0.1:8080`
如果打开网址后提示`隐私错误`,需要手动点击访问:
![](./../../../assets/NanoKVM/usb/privacy-error.png)
## 公网部署
> 如果需要在公网访问,建议使用 `Nginx`。
这里给出一份简单的配置示例,详细的配置方式请参考 `Nginx` 文档。
```nginx
server {
listen 80;
server_name your_domain.com www.your_domain.com; # 请替换为您的域名
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com; # 请替换为您的域名
root /var/www/your_website; # 请替换为 NanoKVM-USB 目录路径
index index.html index.htm;
ssl_certificate /etc/nginx/ssl/your_domain.crt; # 请替换为您的证书文件路径
ssl_certificate_key /etc/nginx/ssl/your_domain.key; # 请替换为您的私钥文件路径
location / {
try_files $uri $uri/ /index.html;
}
}
```
---
title: 本地部署
keywords: NanoKVM, Remote desktop, tool, USB
update:
- date: 2025-01-15
version: v0.1
author: xwj
content:
- Release docs
---
首先,点击下载[网页文件](https://cdn.sipeed.com/nanokvm/NanoKVM-USB.zip),解压后会得到`NanoKVM-USB`文件夹。
## 本机部署
> 如果只需要通过本机访问localhost则可以不使用证书。
这里提供了 Node.js 和 Python 的示例。
### Node.js 服务
1. 打开终端,进入上一步骤中的 `NanoKVM-USB` 目录;
2. 执行 `npm install -g http-server` 安装 `http-server`
3. 执行 `http-server -p 8080 -a localhost` 启动服务。
### Python 服务
1. 打开终端,进入上一步骤中的 `NanoKVM-USB` 目录;
2. 执行 `python -m http.server 8080` 启动服务。
### 在网页中访问
服务启动后,打开浏览器访问 `http://localhost:8080` 即可。
注意只能使用`http`协议,无法使用`https`协议。
## 局域网部署
> 如果需要在局域网内访问,则需要使用证书。
这里提供了 Node.js 和 Python 的示例。相较于本地部署,多了一个生成证书的步骤。
### 生成证书
> 请确保已经安装 `openssl`。
1. 打开终端,进入上一步骤中的 `NanoKVM-USB` 目录;
2. 执行 `openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem`
3. 终端会提示需要输入信息,可以一直按回车键跳过,也可以按自己的需要输入信息。
完成后会在当前目录生成两个文件:`key.pem``cert.pem`
### Node.js 服务
1. 执行 `npm install -g http-server` 安装 `http-server`;
2. 执行 `http-server -p 8080 -S -C cert.pem -K key.pem` 启动服务。
### Python 服务
`NanoKVM-USB` 目录中创建 `server.py` 文件,写入以下代码并保存:
```python
import http.server
import ssl
server_address = ('0.0.0.0', 8080)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile='cert.pem', keyfile='key.pem')
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
print(f"Serving HTTPS on {server_address[0]}:{server_address[1]}")
httpd.serve_forever()
```
执行 `python server.py` 运行服务。
### 在网页中访问
打开浏览器,输入服务地址,比如`https://127.0.0.1:8080`
如果打开网址后提示`隐私错误`,需要手动点击访问:
![](./../../../assets/NanoKVM/usb/privacy-error.png)
## 公网部署
> 如果需要在公网访问,建议使用 `Nginx`。
这里给出一份简单的配置示例,详细的配置方式请参考 `Nginx` 文档。
```nginx
server {
listen 80;
server_name your_domain.com www.your_domain.com; # 请替换为您的域名
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com; # 请替换为您的域名
root /var/www/your_website; # 请替换为 NanoKVM-USB 目录路径
index index.html index.htm;
ssl_certificate /etc/nginx/ssl/your_domain.crt; # 请替换为您的证书文件路径
ssl_certificate_key /etc/nginx/ssl/your_domain.key; # 请替换为您的私钥文件路径
location / {
try_files $uri $uri/ /index.html;
}
}
```

View File

@@ -1,43 +1,43 @@
---
title: F&Q
keywords: NanoKVM-USB, Lichee, PiKVM, RISCV, tool
---
## 异常修复
### Linux打开网页后无 ttyUSBx 串口设备
+ 可能缺少串口驱动导致,请按照以下方法重新安装CH34x驱动:
1. 在WCH官网下载驱动(下载地址)[https://www.wch.cn/download/CH341SER_LINUX_ZIP.html]解压后进入driver目录
2. 执行`uname -r`查看操作系统发行版本,在(此处)[https://elixir.bootlin.com/linux/v6.2/source/drivers/usb/serial/ch341.c]找到对应的版本,将内容复制到`ch341.c`
3. 执行`make`命令编译驱动
4. 执行`sudo make load`命令安装驱动
5. 替换旧驱动:`cp ch341.ko /lib/modlues/$(uname -r)/kernel/drivers/usb/serial/ch341.ko`
+ 部分linux发行版内置了`brltty`,这是一款盲文阅读工具,但会占用/dev/ttyUSB0串口导致网页检测不到在确认不使用`brltty`后建议将其卸载`sudo apt remove brltty`
### 打开网页后 NanoKVM-USB 对应串口设备无法打开
+ 可能是部分程序占用该串口,请确认无占用后再试
+ Linux可能缺少权限导致串口无法打开在终端中执行`sudo chmod 777 /dev/ttyUSB*`
+ Chrome浏览器可能没有检测到该串口请刷新网页或重启 Chrome
+ Chrome权限可能不足请打开相应权限
### 无HDMI环出
+ 内测版硬件仅支持HOST侧USB供电请在使用时保持HOST测供电正常
### 若上述方法不能解决异常,请在论坛,GitHub或QQ群说明您购买的型号和遇到的问题我们会耐心解答
## 已知问题
### 延迟:
+ ARM 版的 macOS 通过 NanoKVM-USB 连接树莓派时延迟会增大,其他组合则不受影响
## 反馈方式
- [Github issues](https://github.com/sipeed/NanoKVM)
- [MaixHub 论坛](https://maixhub.com/discussion/nanokvm)
---
title: F&Q
keywords: NanoKVM-USB, Lichee, PiKVM, RISCV, tool
---
## 异常修复
### Linux打开网页后无 ttyUSBx 串口设备
+ 可能缺少串口驱动导致,请按照以下方法重新安装CH34x驱动:
1. 在WCH官网下载驱动(下载地址)[https://www.wch.cn/download/CH341SER_LINUX_ZIP.html]解压后进入driver目录
2. 执行`uname -r`查看操作系统发行版本,在(此处)[https://elixir.bootlin.com/linux/v6.2/source/drivers/usb/serial/ch341.c]找到对应的版本,将内容复制到`ch341.c`
3. 执行`make`命令编译驱动
4. 执行`sudo make load`命令安装驱动
5. 替换旧驱动:`cp ch341.ko /lib/modlues/$(uname -r)/kernel/drivers/usb/serial/ch341.ko`
+ 部分linux发行版内置了`brltty`,这是一款盲文阅读工具,但会占用/dev/ttyUSB0串口导致网页检测不到在确认不使用`brltty`后建议将其卸载`sudo apt remove brltty`
### 打开网页后 NanoKVM-USB 对应串口设备无法打开
+ 可能是部分程序占用该串口,请确认无占用后再试
+ Linux可能缺少权限导致串口无法打开在终端中执行`sudo chmod 777 /dev/ttyUSB*`
+ Chrome浏览器可能没有检测到该串口请刷新网页或重启 Chrome
+ Chrome权限可能不足请打开相应权限
### 无HDMI环出
+ 内测版硬件仅支持HOST侧USB供电请在使用时保持HOST测供电正常
### 若上述方法不能解决异常,请在论坛,GitHub或QQ群说明您购买的型号和遇到的问题我们会耐心解答
## 已知问题
### 延迟:
+ ARM 版的 macOS 通过 NanoKVM-USB 连接树莓派时延迟会增大,其他组合则不受影响
## 反馈方式
- [Github issues](https://github.com/sipeed/NanoKVM)
- [MaixHub 论坛](https://maixhub.com/discussion/nanokvm)
- QQ 交流群: 703230713

View File

@@ -1,67 +1,67 @@
---
title: 简介
keywords: NanoKVM, Remote desktop, tool, USB
update:
- date: 2024-12-25
version: v0.1
author: xwj
content:
- Release docs
---
## 简介
![](./../../../assets/NanoKVM/usb/NanoKVM-USB.png)
NanoKVM-USB是一款便捷的运维/多设备协同工具它可以无需键鼠设备和显示器仅使用手边的一台电脑无需下载软件通过Chrome浏览器即可图形化开始运维工作。
NanoKVM-USB 捕捉HDMI图像信号通过USB3.0传输给HOST主机与普通USB采集卡不同的是NanoKVM-USB同时捕捉HOST端的键鼠操作同步给目标主机无需传统连接屏幕键鼠的方式就可以完成所有操作。同时支持一路HDMI环出最高支持4K@30HZ,方便外连大屏。
值得一提的是NanoKVM-USB自带一个USB-A端口支持HOST/TARGET两侧切换当外接U盘时候可以方便的在两台电脑之间转移数据此外更多功能请自由探索。
![](./../../../assets/NanoKVM/usb/wiring.png)
## 使用场景
![](./../../../assets/NanoKVM/usb/use-cases.jpg)
## 接口
![](./../../../assets/NanoKVM/usb/interface.jpg)
## 参数对比
| | NanoKVM-USB | Mini-KVM | KIWI-KVM |
| --- | --- | --- | --- |
| HDMI 输入 | 4K@30fps | 1080P@60fps | 4K@30fps |
| HDMI 环出 | 4K@30fps | None | None |
| USB 采集 | 2K@30fps | 1080P@60fps | 1080P@60fps |
| USB 接口 | USB3.0 | USB2.0 | USB3.0 |
| USB 切换器 | 有 | 有 | 无 |
| 模拟键鼠 | 支持 | 支持 | 支持 |
| 剪贴板 | 支持 | 支持 | 支持 |
| 软件 | 无需安装,在 Chrome 中运行 | 需要安装 | 需要安装 |
| 延迟 | 50-100ms | 50-100ms | 50-100ms |
| 体积 | 57x25x23mm | 61x13.5x53mm | 80x80x10mm |
| 外壳 | 铝合金 | 铝合金 | 塑料 |
| 颜色 | 黑/蓝/红 | 黑 | 黑 |
| 价格| `$39.9 / $49.9` | `$89 / $109` | `$69 / $99` |
<div style="display: flex; padding: 30px 0 20px 0">
<img src="./../../../assets/NanoKVM/usb/black.png" width="200" height="150" alt="Image 1" style="margin-right: 10px;">
<img src="./../../../assets/NanoKVM/usb/blue.png" width="200" height="150" alt="Image 1" style="margin-right: 10px;">
<img src="./../../../assets/NanoKVM/usb/red.png" width="200" height="150" alt="Image 1" style="margin-right: 10px;">
</div>
## 购买入口
- [淘宝官方购买地址]() (待上架)
- [速卖通购买地址]()(待上架)
- [预售页面](https://sipeed.com/nanokvm/usb)
## 产品反馈
如果您在使用过程中有任何问题或建议,请通过以下渠道和我们反馈:
- [Github issues](https://github.com/sipeed/NanoKVM)
- [MaixHub 论坛](https://maixhub.com/discussion/nanokvm)
- QQ 交流群: 703230713
---
title: 简介
keywords: NanoKVM, Remote desktop, tool, USB
update:
- date: 2024-12-25
version: v0.1
author: xwj
content:
- Release docs
---
## 简介
![](./../../../assets/NanoKVM/usb/NanoKVM-USB.png)
NanoKVM-USB是一款便捷的运维/多设备协同工具它可以无需键鼠设备和显示器仅使用手边的一台电脑无需下载软件通过Chrome浏览器即可图形化开始运维工作。
NanoKVM-USB 捕捉HDMI图像信号通过USB3.0传输给HOST主机与普通USB采集卡不同的是NanoKVM-USB同时捕捉HOST端的键鼠操作同步给目标主机无需传统连接屏幕键鼠的方式就可以完成所有操作。同时支持一路HDMI环出最高支持4K@30HZ,方便外连大屏。
值得一提的是NanoKVM-USB自带一个USB-A端口支持HOST/TARGET两侧切换当外接U盘时候可以方便的在两台电脑之间转移数据此外更多功能请自由探索。
![](./../../../assets/NanoKVM/usb/wiring.png)
## 使用场景
![](./../../../assets/NanoKVM/usb/use-cases.jpg)
## 接口
![](./../../../assets/NanoKVM/usb/interface.jpg)
## 参数对比
| | NanoKVM-USB | Mini-KVM | KIWI-KVM |
| --- | --- | --- | --- |
| HDMI 输入 | 4K@30fps | 1080P@60fps | 4K@30fps |
| HDMI 环出 | 4K@30fps | None | None |
| USB 采集 | 2K@30fps | 1080P@60fps | 1080P@60fps |
| USB 接口 | USB3.0 | USB2.0 | USB3.0 |
| USB 切换器 | 有 | 有 | 无 |
| 模拟键鼠 | 支持 | 支持 | 支持 |
| 剪贴板 | 支持 | 支持 | 支持 |
| 软件 | 无需安装,在 Chrome 中运行 | 需要安装 | 需要安装 |
| 延迟 | 50-100ms | 50-100ms | 50-100ms |
| 体积 | 57x25x23mm | 61x13.5x53mm | 80x80x10mm |
| 外壳 | 铝合金 | 铝合金 | 塑料 |
| 颜色 | 黑/蓝/红 | 黑 | 黑 |
| 价格| `$39.9 / $49.9` | `$89 / $109` | `$69 / $99` |
<div style="display: flex; padding: 30px 0 20px 0">
<img src="./../../../assets/NanoKVM/usb/black.png" width="200" height="150" alt="Image 1" style="margin-right: 10px;">
<img src="./../../../assets/NanoKVM/usb/blue.png" width="200" height="150" alt="Image 1" style="margin-right: 10px;">
<img src="./../../../assets/NanoKVM/usb/red.png" width="200" height="150" alt="Image 1" style="margin-right: 10px;">
</div>
## 购买入口
- [淘宝官方购买地址]() (待上架)
- [速卖通购买地址]()(待上架)
- [预售页面](https://sipeed.com/nanokvm/usb)
## 产品反馈
如果您在使用过程中有任何问题或建议,请通过以下渠道和我们反馈:
- [Github issues](https://github.com/sipeed/NanoKVM)
- [MaixHub 论坛](https://maixhub.com/discussion/nanokvm)
- QQ 交流群: 703230713

View File

@@ -1,102 +1,102 @@
---
title: 快速上手
keywords: NanoKVM, Remote desktop, tool, USB
update:
- date: 2024-12-25
version: v0.1
author: xwj
content:
- Release docs
---
## 接口介绍
![](./../../../assets/NanoKVM/usb/interface.jpg)
## 接线
使用 USB3.0 或 TypeC 线连接 NanoKVM-USB 与 Host 主机。
![](./../../../assets/NanoKVM/usb/quick_start/wiring1.png)
使用 HDMI 线连接 NanoKVM-USB 与 Target 主机。
![](./../../../assets/NanoKVM/usb/quick_start/wiring2.png)
使用 USB3.0 线连接 NanoKVM-USB 与 Target 主机。
![](./../../../assets/NanoKVM/usb/quick_start/wiring3.png)
## 网页使用教程
### 打开网页
使用 Chrome 浏览器访问 `https://usbkvm.sipeed.com`
> 请使用桌面端 Chrome 浏览器,且版本号需要大于 89。
>
> 由于使用了 [Web Serial API](https://developer.mozilla.org/en-US/docs/Web/API/Serial),移动端 Chrome 和其它不支持该特性的浏览器均无法使用键鼠。
### 授权
NanoKVM-USB 会模拟成 USB 摄像头,用于传输视频和音频。因此网页首先需要获取摄像头使用权限。
![](./../../../assets/NanoKVM/usb/quick_start/auth_camera.png)
> 如果您拒绝了授权,或者想关闭授权,可以选择重置所有权限。
>
> ![](./../../../assets/NanoKVM/usb/quick_start/reset.png)
### 选择 USB 设备
在获取授权后,网页会显示一个选择 USB 设备的弹窗。我们需要在这里选择两个设备:
1. USB 摄像头:用于视频和音频的输入;
2. 串口设备:用于发送键盘和鼠标数据。
#### USB 摄像头
点击下拉框,选择以 `USB Video` 格式命名的摄像头设备。选择设备后网页就会开始显示视频画面。
![](./../../../assets/NanoKVM/usb/quick_start/usb_video.png)
#### 串口设备
>
> 如果当前浏览器不支持串口,则不会显现该按钮。此时网页仅有视频传输功能,无法使用键盘和鼠标。
点击选择串口按钮,会弹出所有可用的串口设备列表,从中选择对应的串口设备。
> Windows 为`COMx`格式macOS为`USB Serial`格式linux一般为`/dev/ttyUSBx`格式
![](./../../../assets/NanoKVM/usb/quick_start/usb_serial.png)
设置完成!到这里就可以开始正常使用了。
### 音频
如果网页没有自动播放声音,则需要用户手动设置。这里以 Mac 控制 Windows 为示例:
#### Target 主机
在 Target 主机Windows选择 NanoKVM 作为**音频输出**设备。
音频设备的名称和是否连接环出设备有关:
- 如果没有接环出设备,则音频设备名称为 `HDMI TO USB`
- 如果连接了环出设备,则音频设备名称为该设备的名称。
![](./../../../assets/NanoKVM/usb/quick_start/audio_output.jpg)
#### Host 主机
在 Host 主机Mac选择 NanoKVM 作为**音频输入**设备。
音频设备的名称格式一般为 `USB Digital Audio`
![](./../../../assets/NanoKVM/usb/quick_start/audio_input.png)
### 鼠标
鼠标默认使用`绝对模式`。在 BIOS 界面或某些系统中,该模式可能无法正常工作,请切换到`相对模式`后使用。
![](./../../../assets/NanoKVM/usb/quick_start/mouse_mode.png)
---
title: 快速上手
keywords: NanoKVM, Remote desktop, tool, USB
update:
- date: 2024-12-25
version: v0.1
author: xwj
content:
- Release docs
---
## 接口介绍
![](./../../../assets/NanoKVM/usb/interface.jpg)
## 接线
使用 USB3.0 或 TypeC 线连接 NanoKVM-USB 与 Host 主机。
![](./../../../assets/NanoKVM/usb/quick_start/wiring1.png)
使用 HDMI 线连接 NanoKVM-USB 与 Target 主机。
![](./../../../assets/NanoKVM/usb/quick_start/wiring2.png)
使用 USB3.0 线连接 NanoKVM-USB 与 Target 主机。
![](./../../../assets/NanoKVM/usb/quick_start/wiring3.png)
## 网页使用教程
### 打开网页
使用 Chrome 浏览器访问 `https://usbkvm.sipeed.com`
> 请使用桌面端 Chrome 浏览器,且版本号需要大于 89。
>
> 由于使用了 [Web Serial API](https://developer.mozilla.org/en-US/docs/Web/API/Serial),移动端 Chrome 和其它不支持该特性的浏览器均无法使用键鼠。
### 授权
NanoKVM-USB 会模拟成 USB 摄像头,用于传输视频和音频。因此网页首先需要获取摄像头使用权限。
![](./../../../assets/NanoKVM/usb/quick_start/auth_camera.png)
> 如果您拒绝了授权,或者想关闭授权,可以选择重置所有权限。
>
> ![](./../../../assets/NanoKVM/usb/quick_start/reset.png)
### 选择 USB 设备
在获取授权后,网页会显示一个选择 USB 设备的弹窗。我们需要在这里选择两个设备:
1. USB 摄像头:用于视频和音频的输入;
2. 串口设备:用于发送键盘和鼠标数据。
#### USB 摄像头
点击下拉框,选择以 `USB Video` 格式命名的摄像头设备。选择设备后网页就会开始显示视频画面。
![](./../../../assets/NanoKVM/usb/quick_start/usb_video.png)
#### 串口设备
>
> 如果当前浏览器不支持串口,则不会显现该按钮。此时网页仅有视频传输功能,无法使用键盘和鼠标。
点击选择串口按钮,会弹出所有可用的串口设备列表,从中选择对应的串口设备。
> Windows 为`COMx`格式macOS为`USB Serial`格式linux一般为`/dev/ttyUSBx`格式
![](./../../../assets/NanoKVM/usb/quick_start/usb_serial.png)
设置完成!到这里就可以开始正常使用了。
### 音频
如果网页没有自动播放声音,则需要用户手动设置。这里以 Mac 控制 Windows 为示例:
#### Target 主机
在 Target 主机Windows选择 NanoKVM 作为**音频输出**设备。
音频设备的名称和是否连接环出设备有关:
- 如果没有接环出设备,则音频设备名称为 `HDMI TO USB`
- 如果连接了环出设备,则音频设备名称为该设备的名称。
![](./../../../assets/NanoKVM/usb/quick_start/audio_output.jpg)
#### Host 主机
在 Host 主机Mac选择 NanoKVM 作为**音频输入**设备。
音频设备的名称格式一般为 `USB Digital Audio`
![](./../../../assets/NanoKVM/usb/quick_start/audio_input.png)
### 鼠标
鼠标默认使用`绝对模式`。在 BIOS 界面或某些系统中,该模式可能无法正常工作,请切换到`相对模式`后使用。
![](./../../../assets/NanoKVM/usb/quick_start/mouse_mode.png)

View File

@@ -1,12 +1,12 @@
---
title: KVM series
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-06-21
version: v0.1
author: BuGu
content:
- Create file
---
---
title: KVM series
keywords: NanoKVM, Remote desktop, Lichee, PiKVM, RISCV, tool
update:
- date: 2024-06-21
version: v0.1
author: BuGu
content:
- Create file
---
Lichee NanoKVM is Sipeed KVM tool.

View File

@@ -1,238 +1,238 @@
---
title: LicheePi Cluster 3A
keywords: LicheePi, Sodimm, K1, RISCV, SBC, Cluster
update:
- date: 2024-07-30
version: v0.1
author: zepan
content:
- 初次编写文档
---
## 简介
Lichee Cluster 3A (以下简称 LC3A ) 是矽速科技研发的高性能 RISC-V 集群计算平台,可以用于构建多节点计算集群,而且还是学习 Kubernetes、自动化、边缘人工智能计算、本地迷你服务器托管应用程序、容器等的优秀工具。单个 Lichee Cluster 3A 最多可装配 7 个 LM3A 核心板,每个 LM3A 核心板含有 2TOPS@int8 AI 算力的 NPU单核心板最大支持 16GB LPDDR4X 内存和 128G eMMC 存储,整个集群有强大的灵活性和可扩展性。
Lichee Cluster 3A 板载八口千兆交换机以提供高速连接,轻松将多个节点连接起来,组成强大的计算集群,还支持 USB3.0 和 SD 卡存储扩展,能够轻松地将扩展额外存储或者增加外围设备。
Lichee Cluster 3A 还带有 BMC (带外管理)BMC 独立连接了每个 LM3A 的系统串口和复位引脚。BMC 可以从硬件上复位单个计算节点,还可以通过串口执行命令,比如执行 ser2net 或 kermit 来管理 Slot。
## 技术规格
<table>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<tr>
<td class="org-left">支持的核心板</td>
<td class="org-left"> <a href="https://wiki.sipeed.com/lm3a">LM3A</a> * 7</td>
</tr>
<tr>
<td class="org-left">CPU</td>
<td class="org-left"><strong>RiscV X60@1.6GHz * 8</strong> * 7</td>
</tr>
<tr>
<td class="org-left">GPU</td>
<td class="org-left">IMG™ B 系列 BXE-2-32 * 7</td>
</tr>
<tr>
<td class="org-left">NPU</td>
<td class="org-left">2TOPS@INT8 * 7</td>
</tr>
<tr>
<td class="org-left">RAM</td>
<td class="org-left">最大 16GB * 7</td>
</tr>
<tr>
<td class="org-left">EMMC</td>
<td class="org-left">最大 128GB * 7</td>
</tr>
<tr>
<td class="org-left">BMC</td>
<td class="org-left"><a href="https://wiki.sipeed.com/Lichee-RV">SIPEED Lichee RV</a></td>
</tr>
<tr>
<td class="org-left">电源管理</td>
<td class="org-left"><a href="https://wiki.sipeed.com/m0sense"> Sipeed M0 Sense</a></td>
</tr>
<tr>
<td class="org-left">Ethernet</td>
<td class="org-left">千兆以太网1(Slot#1)<br>千兆以太网2(交换机)<br>百兆以太网(BMC)</td>
</tr>
<tr>
<td class="org-left">USB</td>
<td class="org-left">USB3.0 * 7 (LM4A)<br>USB2.0 * 1 (BMC)</td>
</tr>
<tr>
<td class="org-left">HDMI</td>
<td class="org-left">HDMI * 1 (Slot 1)</td>
</tr>
<tr>
<td class="org-left">SDCARD</td>
<td class="org-left">TF * 7</td>
</tr>
<tr>
<td class="org-left">电源支持</td>
<td class="org-left">支持 DC 口直流电源供电<br>支持 ATX 24PIN 电源</td>
</tr>
<tr>
<td class="org-left">RTC 供电</td>
<td class="org-left">CR2032 纽扣电池</td>
</tr>
<tr>
<td class="org-left">散热</td>
<td class="org-left">5V PWM 风扇接口 * 7<br>12V 4PIN PWM 风扇接口 * 1</td>
</tr>
<tr>
<td class="org-left">尺寸</td>
<td class="org-left">Mini ITX, 17 * 17 cm (6.7 * 6.7 inch)<br>可选配 MINI ITX 机箱, 20 * 12 * 22 cm</td>
</tr>
</table>
## 硬件系统
### 主板介绍
![lc43_top](./assets/lc3a_top.png)
### 主板框架图
![lc4a_architecture](./assets/lc3a_architecture.png)
LicheeRV SOMD1 C906@1GHz有5个原生串口以及两个USB串口分别独立连接到了7个SOM上。
每个 LM3A 的 RST/BOOT 均可通过模拟开关进行控制。
1号LM3A默认引出了第二千兆口和HDMI口方便该SOM进行整个集群的任务分发操作。
主板可通过12V DC充电头供电推荐12V9A以上或者使用标准ATX电源供电。
### 机箱介绍
推荐选配MINI-ITX机箱该机箱具备良好的外观和散热性能方便计算集群的部署展示。
机箱适配MINI-ITX主板配备250W大功率电源并安装了12cm静音风扇散热可以保证CPU在满载运行时的温度低于70度。
![lc3a_box](./assets/lc3a_box.png)
### 硬件安装指南
默认运输途中LC4A已经安装了所有SOM如果你需要拆卸或者升级SOM可以参考以下说明。
#### 安装核心板
向两侧拉开白色锁扣,插入前请确认缺口为止,避免方向错误导致损坏
![lc3a_install_goldfinger](./assets/lc3a_install_goldfinger.png)
放入核心板后均匀的向下施加压力
![lc3a_install_install_lm4a](./assets/lc3a_install_install_lm3a.png)
听到喀哒声后,确认白色锁扣正确扣上,安装完成。如果需要取出核心板,向两侧拉开白色锁扣即可。
![lc3a_install_slot](./assets/lc3a_install_slot.jpeg)
#### 安装BMC
安装烧录好镜像的SD卡到LicheeRV, 然后将LicheeRV的模块安装至交换机芯片旁边的座子,然后拧上螺丝.
#### 插入电源
可选ATX电源供电或者DC电影供电。
确认ATX电源插座的卡扣已经扣紧避免接触不良导致连接器升温
![lc3a_power_atx20_cable](./assets/lc3a_power_atx20_cable.png)
插上跳线帽
![lc3a_power_jumpwire](./assets/lc3a_power_jumpwire.png)
#### 网络连接
集群系统对外主要连接两个网口1. 板载千兆交换机网口 2. BMC网口
板载千兆交换机网口建议连接入用户所在内网或者主网络,用于集群获取所需网络数据。
BMC网口建议连入独立网络进行集群控制更具安全性。
集群内部通过千兆交换机连接。
如何获得集群的IP地址:
预装的固件安装启用了mdns服务
在你的PC上启用avahi服务(Linux)
使用mdns扫描整个网络获得lc4a的mdns域名信息:
```
avahi-browse -art | grep lc4a
```
然后使用:
```
ssh debin@lc4aXXXX.local
```
XXXX为mac地址后四位用于区分每个slot
## 软件系统
### LM4A镜像
集群中的LM4A SOM可以直接使用LicheePi3A的镜像.
镜像烧录方法:
1. 按下BOOT按键的同时按一下RST按键然后使用A TO A公头的USB线缆连接到电脑
2. 使用fastboot或者titian工具烧录
### OpenBMC镜像
主板上的 LicheeRV SOM 运行 OpenBMC 来管理主板上的 SOM。
镜像下载地址: [点我跳转](https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/bmc/bin)
镜像烧录方法:
```
bmaptool copy obmc-phosphor-image-licheepi-rv.wic.gz /dev/YOUR_SDCARD
```
默认用户名: `root`
默认密码: `0penBmc`
0 是零,不是 O
如果需要开发定制请下载PATCH:
https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/bmc/src
并应用到OpenBMC源码:
```
git clone https://github.com/openbmc/openbmc/
git checkout commit-id
git am xxx.patch
```
### OpenBMC管理
从SSH访问Slot的串口:
```
ssh -p 2301 root@bmcip # access first slot's serial port
```
* 端口 22: OpenBMC的shell
* 端口 2301: slot1 的 SOL (Serial Over LAN)
* 端口 2302: slot2 的 SOL
* 端口 2303: slot3 的 SOL
* 端口 2304: slot4 的 SOL
* 端口 2305: slot5 的 SOL
* 端口 2306: slot6 的 SOL
* 端口 2307: slot7 的 SOL
每个Slot的串口输出到日志:
```
cat /var/log/obmc-cons*.log
```
---
title: LicheePi Cluster 3A
keywords: LicheePi, Sodimm, K1, RISCV, SBC, Cluster
update:
- date: 2024-07-30
version: v0.1
author: zepan
content:
- 初次编写文档
---
## 简介
Lichee Cluster 3A (以下简称 LC3A ) 是矽速科技研发的高性能 RISC-V 集群计算平台,可以用于构建多节点计算集群,而且还是学习 Kubernetes、自动化、边缘人工智能计算、本地迷你服务器托管应用程序、容器等的优秀工具。单个 Lichee Cluster 3A 最多可装配 7 个 LM3A 核心板,每个 LM3A 核心板含有 2TOPS@int8 AI 算力的 NPU单核心板最大支持 16GB LPDDR4X 内存和 128G eMMC 存储,整个集群有强大的灵活性和可扩展性。
Lichee Cluster 3A 板载八口千兆交换机以提供高速连接,轻松将多个节点连接起来,组成强大的计算集群,还支持 USB3.0 和 SD 卡存储扩展,能够轻松地将扩展额外存储或者增加外围设备。
Lichee Cluster 3A 还带有 BMC (带外管理)BMC 独立连接了每个 LM3A 的系统串口和复位引脚。BMC 可以从硬件上复位单个计算节点,还可以通过串口执行命令,比如执行 ser2net 或 kermit 来管理 Slot。
## 技术规格
<table>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<tr>
<td class="org-left">支持的核心板</td>
<td class="org-left"> <a href="https://wiki.sipeed.com/lm3a">LM3A</a> * 7</td>
</tr>
<tr>
<td class="org-left">CPU</td>
<td class="org-left"><strong>RiscV X60@1.6GHz * 8</strong> * 7</td>
</tr>
<tr>
<td class="org-left">GPU</td>
<td class="org-left">IMG™ B 系列 BXE-2-32 * 7</td>
</tr>
<tr>
<td class="org-left">NPU</td>
<td class="org-left">2TOPS@INT8 * 7</td>
</tr>
<tr>
<td class="org-left">RAM</td>
<td class="org-left">最大 16GB * 7</td>
</tr>
<tr>
<td class="org-left">EMMC</td>
<td class="org-left">最大 128GB * 7</td>
</tr>
<tr>
<td class="org-left">BMC</td>
<td class="org-left"><a href="https://wiki.sipeed.com/Lichee-RV">SIPEED Lichee RV</a></td>
</tr>
<tr>
<td class="org-left">电源管理</td>
<td class="org-left"><a href="https://wiki.sipeed.com/m0sense"> Sipeed M0 Sense</a></td>
</tr>
<tr>
<td class="org-left">Ethernet</td>
<td class="org-left">千兆以太网1(Slot#1)<br>千兆以太网2(交换机)<br>百兆以太网(BMC)</td>
</tr>
<tr>
<td class="org-left">USB</td>
<td class="org-left">USB3.0 * 7 (LM4A)<br>USB2.0 * 1 (BMC)</td>
</tr>
<tr>
<td class="org-left">HDMI</td>
<td class="org-left">HDMI * 1 (Slot 1)</td>
</tr>
<tr>
<td class="org-left">SDCARD</td>
<td class="org-left">TF * 7</td>
</tr>
<tr>
<td class="org-left">电源支持</td>
<td class="org-left">支持 DC 口直流电源供电<br>支持 ATX 24PIN 电源</td>
</tr>
<tr>
<td class="org-left">RTC 供电</td>
<td class="org-left">CR2032 纽扣电池</td>
</tr>
<tr>
<td class="org-left">散热</td>
<td class="org-left">5V PWM 风扇接口 * 7<br>12V 4PIN PWM 风扇接口 * 1</td>
</tr>
<tr>
<td class="org-left">尺寸</td>
<td class="org-left">Mini ITX, 17 * 17 cm (6.7 * 6.7 inch)<br>可选配 MINI ITX 机箱, 20 * 12 * 22 cm</td>
</tr>
</table>
## 硬件系统
### 主板介绍
![lc43_top](./assets/lc3a_top.png)
### 主板框架图
![lc4a_architecture](./assets/lc3a_architecture.png)
LicheeRV SOMD1 C906@1GHz有5个原生串口以及两个USB串口分别独立连接到了7个SOM上。
每个 LM3A 的 RST/BOOT 均可通过模拟开关进行控制。
1号LM3A默认引出了第二千兆口和HDMI口方便该SOM进行整个集群的任务分发操作。
主板可通过12V DC充电头供电推荐12V9A以上或者使用标准ATX电源供电。
### 机箱介绍
推荐选配MINI-ITX机箱该机箱具备良好的外观和散热性能方便计算集群的部署展示。
机箱适配MINI-ITX主板配备250W大功率电源并安装了12cm静音风扇散热可以保证CPU在满载运行时的温度低于70度。
![lc3a_box](./assets/lc3a_box.png)
### 硬件安装指南
默认运输途中LC4A已经安装了所有SOM如果你需要拆卸或者升级SOM可以参考以下说明。
#### 安装核心板
向两侧拉开白色锁扣,插入前请确认缺口为止,避免方向错误导致损坏
![lc3a_install_goldfinger](./assets/lc3a_install_goldfinger.png)
放入核心板后均匀的向下施加压力
![lc3a_install_install_lm4a](./assets/lc3a_install_install_lm3a.png)
听到喀哒声后,确认白色锁扣正确扣上,安装完成。如果需要取出核心板,向两侧拉开白色锁扣即可。
![lc3a_install_slot](./assets/lc3a_install_slot.jpeg)
#### 安装BMC
安装烧录好镜像的SD卡到LicheeRV, 然后将LicheeRV的模块安装至交换机芯片旁边的座子,然后拧上螺丝.
#### 插入电源
可选ATX电源供电或者DC电影供电。
确认ATX电源插座的卡扣已经扣紧避免接触不良导致连接器升温
![lc3a_power_atx20_cable](./assets/lc3a_power_atx20_cable.png)
插上跳线帽
![lc3a_power_jumpwire](./assets/lc3a_power_jumpwire.png)
#### 网络连接
集群系统对外主要连接两个网口1. 板载千兆交换机网口 2. BMC网口
板载千兆交换机网口建议连接入用户所在内网或者主网络,用于集群获取所需网络数据。
BMC网口建议连入独立网络进行集群控制更具安全性。
集群内部通过千兆交换机连接。
如何获得集群的IP地址:
预装的固件安装启用了mdns服务
在你的PC上启用avahi服务(Linux)
使用mdns扫描整个网络获得lc4a的mdns域名信息:
```
avahi-browse -art | grep lc4a
```
然后使用:
```
ssh debin@lc4aXXXX.local
```
XXXX为mac地址后四位用于区分每个slot
## 软件系统
### LM4A镜像
集群中的LM4A SOM可以直接使用LicheePi3A的镜像.
镜像烧录方法:
1. 按下BOOT按键的同时按一下RST按键然后使用A TO A公头的USB线缆连接到电脑
2. 使用fastboot或者titian工具烧录
### OpenBMC镜像
主板上的 LicheeRV SOM 运行 OpenBMC 来管理主板上的 SOM。
镜像下载地址: [点我跳转](https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/bmc/bin)
镜像烧录方法:
```
bmaptool copy obmc-phosphor-image-licheepi-rv.wic.gz /dev/YOUR_SDCARD
```
默认用户名: `root`
默认密码: `0penBmc`
0 是零,不是 O
如果需要开发定制请下载PATCH:
https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/bmc/src
并应用到OpenBMC源码:
```
git clone https://github.com/openbmc/openbmc/
git checkout commit-id
git am xxx.patch
```
### OpenBMC管理
从SSH访问Slot的串口:
```
ssh -p 2301 root@bmcip # access first slot's serial port
```
* 端口 22: OpenBMC的shell
* 端口 2301: slot1 的 SOL (Serial Over LAN)
* 端口 2302: slot2 的 SOL
* 端口 2303: slot3 的 SOL
* 端口 2304: slot4 的 SOL
* 端口 2305: slot5 的 SOL
* 端口 2306: slot6 的 SOL
* 端口 2307: slot7 的 SOL
每个Slot的串口输出到日志:
```
cat /var/log/obmc-cons*.log
```

View File

@@ -1,72 +1,72 @@
---
title: LicheePi Module 3A
keywords: LicheePi, Sodimm, K1, RISCV, SBC
update:
- date: 2024-07-30
version: v0.1
author: zepan
content:
- 初次编写文档
---
## 简介
LicheePi Module 3A 是一款采用 [进迭时空](https://spacemit.com/) 的 [K1](https://www.spacemit.com/key-stone-k1/) 作为主控的核心模组主控核心包含八核X60 CPU (RV64GCV, 256bit Vector 1.0), 具备 2TOPS@int8 AI 算力,拥有 1080P 视频处理能力,最大支持 16GB LPDDR4X 内存和 128G eMMC 存储支持双千兆以太网和1080P分辨率视频输出等特性还支持PCIE Gen2x2。 LicheePi Module 3A 与LM4A 兼容,可以在底板上直接替换使用。
![top](somtop.jpg)
![bot](sombot.jpg)
## 基本参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>进迭 K1</td>
</tr>
<tr>
<td>CPU</td>
<td>RISC-V 64GCV X60*8@1.6GHz <br>· Cluster0 2TOPS AI-Power, 32K L1-Cache per core, 512K L2-Cache, 512KB TCM, Vector-256bit <br>· Cluster0 32K L1-Cache per core, 512K L2-Cache, Vector-256bit </td>
</tr>
<tr>
<td>GPU</td>
<td>· IMG BXE-2-32@819M <br>· OpenGL ES 3.2, OpenCL 3.0<br>· Vulkan 1.3<br>· 20GFLIPS </td>
</tr>
<tr>
<td>NPU</td>
<td>Cluster0 2TOPS@INT8 <br>· 支持 TensorFlow、ONNX、Caffe <br>· 支持 CNN、RNN、DNN 等</td>
</tr>
<tr>
<td>Video</td>
<td>H265&H264 @ 1080p 60fps decode/encode</td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 8GB 32bits LPDDR4X<br>· 16GB 32bits LPDDR4X<br></td>
</tr>
<tr>
<td>ROM</td>
<td>eMMC: <br>· 32G<br>· 128G</td>
</tr>
<tr>
<td>以太网</td>
<td> 千兆 PHY x 2</td>
</tr>
<tr>
<td>PCIe (x3)</td>
<td>· PCIE PortA Gen2x1 (combo with USB3)<br>· PCIE PortB Gen2x2<br>· PCIE PortC Gen2x2</td>
</tr>
</tbody>
</table>
## 相关链接
---
title: LicheePi Module 3A
keywords: LicheePi, Sodimm, K1, RISCV, SBC
update:
- date: 2024-07-30
version: v0.1
author: zepan
content:
- 初次编写文档
---
## 简介
LicheePi Module 3A 是一款采用 [进迭时空](https://spacemit.com/) 的 [K1](https://www.spacemit.com/key-stone-k1/) 作为主控的核心模组主控核心包含八核X60 CPU (RV64GCV, 256bit Vector 1.0), 具备 2TOPS@int8 AI 算力,拥有 1080P 视频处理能力,最大支持 16GB LPDDR4X 内存和 128G eMMC 存储支持双千兆以太网和1080P分辨率视频输出等特性还支持PCIE Gen2x2。 LicheePi Module 3A 与LM4A 兼容,可以在底板上直接替换使用。
![top](somtop.jpg)
![bot](sombot.jpg)
## 基本参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>进迭 K1</td>
</tr>
<tr>
<td>CPU</td>
<td>RISC-V 64GCV X60*8@1.6GHz <br>· Cluster0 2TOPS AI-Power, 32K L1-Cache per core, 512K L2-Cache, 512KB TCM, Vector-256bit <br>· Cluster0 32K L1-Cache per core, 512K L2-Cache, Vector-256bit </td>
</tr>
<tr>
<td>GPU</td>
<td>· IMG BXE-2-32@819M <br>· OpenGL ES 3.2, OpenCL 3.0<br>· Vulkan 1.3<br>· 20GFLIPS </td>
</tr>
<tr>
<td>NPU</td>
<td>Cluster0 2TOPS@INT8 <br>· 支持 TensorFlow、ONNX、Caffe <br>· 支持 CNN、RNN、DNN 等</td>
</tr>
<tr>
<td>Video</td>
<td>H265&H264 @ 1080p 60fps decode/encode</td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 8GB 32bits LPDDR4X<br>· 16GB 32bits LPDDR4X<br></td>
</tr>
<tr>
<td>ROM</td>
<td>eMMC: <br>· 32G<br>· 128G</td>
</tr>
<tr>
<td>以太网</td>
<td> 千兆 PHY x 2</td>
</tr>
<tr>
<td>PCIe (x3)</td>
<td>· PCIE PortA Gen2x1 (combo with USB3)<br>· PCIE PortB Gen2x2<br>· PCIE PortC Gen2x2</td>
</tr>
</tbody>
</table>
## 相关链接
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A)

View File

@@ -1,119 +1,119 @@
---
title: 板卡介绍
keywords: Linux, Lichee, K1, SBC, RISCV
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## 简介
LicheePi 3A 是基于 [Lichee Module 3A](http://wiki.sipeed.com/hardware/zh/lichee/K1/lm3a.html) 核心板的 高性能 RISC-V Linux 开发板,以 [K1](https://www.spacemit.com/key-stone-k1/) 为主控核心8xX60@1.6G RV64GCV2TOPS@int8 NPU 20GFLOP GPU板载最大 16GB 32bit LPDDR4X128GB eMMC支持 HDMI+MIPI 双1080P 显示输出,支持 16MP 摄像头接入双千兆网口其中一个支持POE供电和 4 个 USB3.0 接口以及2路 PCIE Gen2x2多种音频输入输出。
![lpi3a](./assets/intro/lpi3a.jpg)
![pcie](./assets/intro/pcie.png)
LicheePi 3A 是目前极具性价比的中端 RISC-V SBC。多核性能约为上一代 RISC-V SBC [LPi4A](http://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a.html)的80%, 单核性能约为 50%
[GeekBench6](https://browser.geekbench.com/v6/cpu/compare/6718771?baseline=5822041)
![benchmark](./assets/intro/benchmark.png)
![geekbench6](./assets/intro/geekbench6.png)
LicheePi 3A 可以用作典型的 RISC-V 验证平台,其强大的性能可以较快速地实现本地编译,而无需使用 QEMU 进行编译。
LicheePi 3A 基本与LicheePi4A兼容如果你购买过LicheePi4A那么可以仅购买LM3A来装在LPi4A底板上无M.2接口)。
![desktop](./assets/intro/desktop.jpg)
## 基础参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>进迭 K1</td>
</tr>
<tr>
<td>CPU</td>
<td>RISC-V 64GCV X60*8@1.6GHz <br>· Cluster0 2TOPS AI-Power, 32K L1-Cache per core, 512K L2-Cache, 512KB TCM, Vector-256bit <br>· Cluster0 32K L1-Cache per core, 512K L2-Cache, Vector-256bit </td>
</tr>
<tr>
<td>GPU</td>
<td>· IMG BXE-2-32@819M <br>· OpenGL ES 3.2, OpenCL 3.0<br>· Vulkan 1.3<br>· 20GFLIPS </td>
</tr>
<tr>
<td>NPU</td>
<td>Cluster0 2TOPS@INT8 <br>· 支持 TensorFlow、ONNX、Caffe <br>· 支持 CNN、RNN、DNN 等</td>
</tr>
<tr>
<td>Video</td>
<td>H265&H264 @ 1080p 60fps decode/encode</td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 8GB 32bits LPDDR4X<br>· 16GB 32bits LPDDR4X<br></td>
</tr>
<tr>
<td>存储</td>
<td>· eMMC: 可选32G、 128G<br>· 支持 TF 卡<br>· 支持 NVMe SSD</td>
</tr>
<tr>
<td>以太网</td>
<td>· 2 x 千兆以太网接口,可选 POE</td>
</tr>
<tr>
<td>PCIe (x3)</td>
<td>· PCIE PortA Gen2x1 (combo with USB3)<br>· PCIE PortB Gen2x2<br>· PCIE PortC Gen2x2</td>
</tr>
<tr>
<td>USB</td>
<td>· USB3.0 x 4<br>· USB2.0 x 2</td>
</tr>
<tr>
<td>音频接口</td>
<td>· 1 x 3.5mm 耳机接口<br>· 一个扬声器接口<br>· 两个板载麦克风<br></td>
</tr>
<tr>
<td>显示接口</td>
<td>· 1 x HDMI1.4<br>· 1 x 4-lane MIPI DSI</td>
</tr>
<tr>
<td>摄像头接口</td>
<td>· 1 x 2-lane MIPI CSI<br>· 1 x 4-lane MIPI CSI</td>
</tr>
<tr>
<td>GPIO</td>
<td>· UART<br>· IIC<br>· SPI</td>
</tr>
</tbody>
</table>
### 硬件资料下载
[板卡规格书](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/01_Specification)
[底板原理图](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/02_Schematic)
[底板点位图](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/03_Bit_number_map)
[底板尺寸图](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/04_Dimensional_drawing)
[模型文件](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/05_3D_model)
## 其他链接
[淘宝](https://item.taobao.com/item.htm?id=)
[Aliexpress](https://xxx)
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com
---
title: 板卡介绍
keywords: Linux, Lichee, K1, SBC, RISCV
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## 简介
LicheePi 3A 是基于 [Lichee Module 3A](http://wiki.sipeed.com/hardware/zh/lichee/K1/lm3a.html) 核心板的 高性能 RISC-V Linux 开发板,以 [K1](https://www.spacemit.com/key-stone-k1/) 为主控核心8xX60@1.6G RV64GCV2TOPS@int8 NPU 20GFLOP GPU板载最大 16GB 32bit LPDDR4X128GB eMMC支持 HDMI+MIPI 双1080P 显示输出,支持 16MP 摄像头接入双千兆网口其中一个支持POE供电和 4 个 USB3.0 接口以及2路 PCIE Gen2x2多种音频输入输出。
![lpi3a](./assets/intro/lpi3a.jpg)
![pcie](./assets/intro/pcie.png)
LicheePi 3A 是目前极具性价比的中端 RISC-V SBC。多核性能约为上一代 RISC-V SBC [LPi4A](http://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a.html)的80%, 单核性能约为 50%
[GeekBench6](https://browser.geekbench.com/v6/cpu/compare/6718771?baseline=5822041)
![benchmark](./assets/intro/benchmark.png)
![geekbench6](./assets/intro/geekbench6.png)
LicheePi 3A 可以用作典型的 RISC-V 验证平台,其强大的性能可以较快速地实现本地编译,而无需使用 QEMU 进行编译。
LicheePi 3A 基本与LicheePi4A兼容如果你购买过LicheePi4A那么可以仅购买LM3A来装在LPi4A底板上无M.2接口)。
![desktop](./assets/intro/desktop.jpg)
## 基础参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>进迭 K1</td>
</tr>
<tr>
<td>CPU</td>
<td>RISC-V 64GCV X60*8@1.6GHz <br>· Cluster0 2TOPS AI-Power, 32K L1-Cache per core, 512K L2-Cache, 512KB TCM, Vector-256bit <br>· Cluster0 32K L1-Cache per core, 512K L2-Cache, Vector-256bit </td>
</tr>
<tr>
<td>GPU</td>
<td>· IMG BXE-2-32@819M <br>· OpenGL ES 3.2, OpenCL 3.0<br>· Vulkan 1.3<br>· 20GFLIPS </td>
</tr>
<tr>
<td>NPU</td>
<td>Cluster0 2TOPS@INT8 <br>· 支持 TensorFlow、ONNX、Caffe <br>· 支持 CNN、RNN、DNN 等</td>
</tr>
<tr>
<td>Video</td>
<td>H265&H264 @ 1080p 60fps decode/encode</td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 8GB 32bits LPDDR4X<br>· 16GB 32bits LPDDR4X<br></td>
</tr>
<tr>
<td>存储</td>
<td>· eMMC: 可选32G、 128G<br>· 支持 TF 卡<br>· 支持 NVMe SSD</td>
</tr>
<tr>
<td>以太网</td>
<td>· 2 x 千兆以太网接口,可选 POE</td>
</tr>
<tr>
<td>PCIe (x3)</td>
<td>· PCIE PortA Gen2x1 (combo with USB3)<br>· PCIE PortB Gen2x2<br>· PCIE PortC Gen2x2</td>
</tr>
<tr>
<td>USB</td>
<td>· USB3.0 x 4<br>· USB2.0 x 2</td>
</tr>
<tr>
<td>音频接口</td>
<td>· 1 x 3.5mm 耳机接口<br>· 一个扬声器接口<br>· 两个板载麦克风<br></td>
</tr>
<tr>
<td>显示接口</td>
<td>· 1 x HDMI1.4<br>· 1 x 4-lane MIPI DSI</td>
</tr>
<tr>
<td>摄像头接口</td>
<td>· 1 x 2-lane MIPI CSI<br>· 1 x 4-lane MIPI CSI</td>
</tr>
<tr>
<td>GPIO</td>
<td>· UART<br>· IIC<br>· SPI</td>
</tr>
</tbody>
</table>
### 硬件资料下载
[板卡规格书](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/01_Specification)
[底板原理图](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/02_Schematic)
[底板点位图](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/03_Bit_number_map)
[底板尺寸图](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/04_Dimensional_drawing)
[模型文件](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A/05_3D_model)
## 其他链接
[淘宝](https://item.taobao.com/item.htm?id=)
[Aliexpress](https://xxx)
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com

View File

@@ -1,138 +1,138 @@
---
title: 开箱体验
keywords: Linux, Lichee, K1, SBC, RISCV, unbox
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## 开箱内容
### 基础套餐
你收到的包裹内是如下包装:
![package](./assets/unbox/package_v1.jpg)
打开白色纸盒可以看到LicheePi3A板卡和基础配件硅脂片+散热风扇+USB-C线
![board](./assets/unbox/package_v1board.jpg)
如果开箱后发现缺少相关部件,请联系客服咨询。
### 选配件
LicheePi 4A还有丰富的配件可供选择如下图所示
![accessory1](./assets/unbox/acc1.jpg)
![accessory2](./assets/unbox/acc2.jpg)
选购说明:
|配件名|选购说明|
|---|---|
|铝合金外壳|适合作为小主机,软路由的外壳|
|10.1寸触摸屏|1280x800 4lane MIPI适合作为车机安卓 调试使用|
|USB摄像头|5MP USB摄像头板载麦克风适合作为openCV的摄像头使用|
|PoE电源模块|5V2.4A PoE电源模块网关类应用使用网线PoE供电|
|12V电源|12V2A电源适配器板卡外接很多耗电外设时选购|
|RV Debugger Plus|UART+JTAG调试小板连接系统串口终端调试用|
## 组装板卡
### SOM安装
默认情况下 LM3A SOM 已经安装至主板上,如果你需要升级/替换 SOM可按如下说明进行 SOM 的取出和安装
1. 取出 SOM:
<table>
<tr>
<td colspan=2>先用手指往外拨动弹片解锁 SOM, 然后将 SOM 取出</td>
</tr>
<tr>
<td><img src="./assets/unbox/unlock_som.jpg" alt="unlock_som"></td>
<td><img src="./assets/unbox/remove_som.jpg" alt="remove_som"></td>
</tr>
</table>
2. 安装 SOM:
<table>
<tr>
<td colspan=2>先把 SOM 斜着插入连接器插槽, 然后按压SOM两边弹片会自动锁住SOM</td>
</tr>
<tr>
<td><img src="./assets/unbox/remove_som.jpg" alt="insert_som"></td>
<td><img src="./assets/unbox/lock_som.jpg" alt="lock_som"></td>
</tr>
</table>
### 散热器安装
LicheePi 3A 是高性能 SBC需要安装主动散热器对 SOM 进行散热,否则在满载时可能由于核心过热而自动降频,无法达到最优性能。
1. 安装导热硅脂片
取出导热硅脂片,撕开两面薄膜,将硅脂片放置在下图位置并轻轻按压固定(硅脂片自己具备一定粘性可以固定住),注意完整覆盖住主芯片与两颗内存芯片
![silicone_pad](./assets/unbox/silicone_pad.jpg)
2. 安装散热风扇
在硅脂片上对齐安装30mm的散热风扇并轻轻按压固定住。
![insert_fan](./assets/unbox/insert_fan.jpg)
3. 安装散热风扇电源
默认收到时应该已经插入好了风扇电源,如果风扇电源线脱出,请按下图所示插入,注意电源线顺序,装反风扇不会旋转。
注意,该位置上的插针电源受 linux 内核控制,需正确配置内核才会旋转,如果风扇不转,也可插到板卡下方的 20pin 插针的 5V + GND 处测试风扇好坏。
![insert_fan_cable](./assets/unbox/insert_fan_cable.png)
### WIFI天线安装
默认情况下WIFI天线已经安装在主板上如果脱出请按照下图安装回去
![insert_ant](./assets/unbox/insert_ant.png)
### 组装完成
组装完成后的状态如下所示:
![assemble_ok](./assets/unbox/insert_fan.jpg)
## 启动板卡
LicheePi 3A出库已预烧录了基础系统镜像至此你已可以快速进行开机体验
使用 HDMI 线缆(自备)连接显示器(自备)与 LicheePi 3A 的 HDMI 口,使用配套的 USB-C 线缆连接到至少 5V2A 输出的 USB 电源(自备)上LicheePi 3A 即会开机启动,默认镜像会在 30s 内启动到桌面系统的登录界面, 第一次登录会进入用户帐号设置序列。
![boot_login](./assets/unbox/boot_login.jpg)
默认镜像的帐号密码配置如下:
账户:`root`,密码: `bianbu`
插入键鼠,输入用户名密码后即可登录体验,具体操作请查看后续章节。
如果按照上述操作,没能点亮显示器,进入系统,有以下可能请自查:
1. 检查电源电压是否正常USB-C 口连接是否正常,电源指示灯是否点亮
2. 检查散热器是否正常安装,风扇是否旋转
3. 检查 HDMI 是否稳固连接,显示器是否开机,以及可以尝试更换显示器测试
4. 也可能是出厂遗漏固件烧录,请按下章方法进行镜像烧录后再试
5. 如果以上均不奏效,请联系客服售后
## POE模块安装说明
POE模块需要用户手工焊接安装请按下图焊接
![poe](./assets/unbox/poe.jpg)
> 注意 POE模块焊接后无法装入铝合金外壳。
## 板卡硬件说明
完成初次点亮板卡后,可以静下心来认识下 LicheePi 3A 的硬件,方便后期可能的维护工作。
![pi_view](./assets/unbox/pi_view.png)
### 硬件资料下载
[板卡规格书](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A)
## 其他链接
[淘宝](https://item.taobao.com/item.htm?id=715508771884)
[Aliexpress](https://xxx)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛https://maixhub.com/discussion
联系邮箱support@sipeed.com
---
title: 开箱体验
keywords: Linux, Lichee, K1, SBC, RISCV, unbox
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## 开箱内容
### 基础套餐
你收到的包裹内是如下包装:
![package](./assets/unbox/package_v1.jpg)
打开白色纸盒可以看到LicheePi3A板卡和基础配件硅脂片+散热风扇+USB-C线
![board](./assets/unbox/package_v1board.jpg)
如果开箱后发现缺少相关部件,请联系客服咨询。
### 选配件
LicheePi 4A还有丰富的配件可供选择如下图所示
![accessory1](./assets/unbox/acc1.jpg)
![accessory2](./assets/unbox/acc2.jpg)
选购说明:
|配件名|选购说明|
|---|---|
|铝合金外壳|适合作为小主机,软路由的外壳|
|10.1寸触摸屏|1280x800 4lane MIPI适合作为车机安卓 调试使用|
|USB摄像头|5MP USB摄像头板载麦克风适合作为openCV的摄像头使用|
|PoE电源模块|5V2.4A PoE电源模块网关类应用使用网线PoE供电|
|12V电源|12V2A电源适配器板卡外接很多耗电外设时选购|
|RV Debugger Plus|UART+JTAG调试小板连接系统串口终端调试用|
## 组装板卡
### SOM安装
默认情况下 LM3A SOM 已经安装至主板上,如果你需要升级/替换 SOM可按如下说明进行 SOM 的取出和安装
1. 取出 SOM:
<table>
<tr>
<td colspan=2>先用手指往外拨动弹片解锁 SOM, 然后将 SOM 取出</td>
</tr>
<tr>
<td><img src="./assets/unbox/unlock_som.jpg" alt="unlock_som"></td>
<td><img src="./assets/unbox/remove_som.jpg" alt="remove_som"></td>
</tr>
</table>
2. 安装 SOM:
<table>
<tr>
<td colspan=2>先把 SOM 斜着插入连接器插槽, 然后按压SOM两边弹片会自动锁住SOM</td>
</tr>
<tr>
<td><img src="./assets/unbox/remove_som.jpg" alt="insert_som"></td>
<td><img src="./assets/unbox/lock_som.jpg" alt="lock_som"></td>
</tr>
</table>
### 散热器安装
LicheePi 3A 是高性能 SBC需要安装主动散热器对 SOM 进行散热,否则在满载时可能由于核心过热而自动降频,无法达到最优性能。
1. 安装导热硅脂片
取出导热硅脂片,撕开两面薄膜,将硅脂片放置在下图位置并轻轻按压固定(硅脂片自己具备一定粘性可以固定住),注意完整覆盖住主芯片与两颗内存芯片
![silicone_pad](./assets/unbox/silicone_pad.jpg)
2. 安装散热风扇
在硅脂片上对齐安装30mm的散热风扇并轻轻按压固定住。
![insert_fan](./assets/unbox/insert_fan.jpg)
3. 安装散热风扇电源
默认收到时应该已经插入好了风扇电源,如果风扇电源线脱出,请按下图所示插入,注意电源线顺序,装反风扇不会旋转。
注意,该位置上的插针电源受 linux 内核控制,需正确配置内核才会旋转,如果风扇不转,也可插到板卡下方的 20pin 插针的 5V + GND 处测试风扇好坏。
![insert_fan_cable](./assets/unbox/insert_fan_cable.png)
### WIFI天线安装
默认情况下WIFI天线已经安装在主板上如果脱出请按照下图安装回去
![insert_ant](./assets/unbox/insert_ant.png)
### 组装完成
组装完成后的状态如下所示:
![assemble_ok](./assets/unbox/insert_fan.jpg)
## 启动板卡
LicheePi 3A出库已预烧录了基础系统镜像至此你已可以快速进行开机体验
使用 HDMI 线缆(自备)连接显示器(自备)与 LicheePi 3A 的 HDMI 口,使用配套的 USB-C 线缆连接到至少 5V2A 输出的 USB 电源(自备)上LicheePi 3A 即会开机启动,默认镜像会在 30s 内启动到桌面系统的登录界面, 第一次登录会进入用户帐号设置序列。
![boot_login](./assets/unbox/boot_login.jpg)
默认镜像的帐号密码配置如下:
账户:`root`,密码: `bianbu`
插入键鼠,输入用户名密码后即可登录体验,具体操作请查看后续章节。
如果按照上述操作,没能点亮显示器,进入系统,有以下可能请自查:
1. 检查电源电压是否正常USB-C 口连接是否正常,电源指示灯是否点亮
2. 检查散热器是否正常安装,风扇是否旋转
3. 检查 HDMI 是否稳固连接,显示器是否开机,以及可以尝试更换显示器测试
4. 也可能是出厂遗漏固件烧录,请按下章方法进行镜像烧录后再试
5. 如果以上均不奏效,请联系客服售后
## POE模块安装说明
POE模块需要用户手工焊接安装请按下图焊接
![poe](./assets/unbox/poe.jpg)
> 注意 POE模块焊接后无法装入铝合金外壳。
## 板卡硬件说明
完成初次点亮板卡后,可以静下心来认识下 LicheePi 3A 的硬件,方便后期可能的维护工作。
![pi_view](./assets/unbox/pi_view.png)
### 硬件资料下载
[板卡规格书](https://dl.sipeed.com/shareURL/LICHEE/LicheePi3A)
## 其他链接
[淘宝](https://item.taobao.com/item.htm?id=715508771884)
[Aliexpress](https://xxx)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛https://maixhub.com/discussion
联系邮箱support@sipeed.com

View File

@@ -1,86 +1,86 @@
---
title: 烧录镜像
keywords: Linux, Lichee, K1, SBC, RISCV, image
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## 获取镜像
### Bianbu 镜像
![bianbu](./assets/image/bianbu.png)
LicheePi3A 已被进迭官方bianbu镜像支持
可以到[进迭官方镜像站](https://archive.spacemit.com/image/k1/version/bianbu/)下载注意请下载v1.0.11以上的镜像
### Fedora 镜像
https://images.fedoravforce.com/LicheePi%203A
### openKylin 镜像
https://www.openkylin.top/downloads/index-cn.html
### Deepin 镜像
https://ci.deepin.com/repo/deepin/deepin-ports/cdimage/20240815/riscv64/
## 获取烧录工具
LicheePi3A可使用fastboot或者titian烧录工具烧录。
[Windows](https://cloud.spacemit.com/prod-api/release/download/tools?token=titantools_for_windows_X86_X64)
[Linux](https://cloud.spacemit.com/prod-api/release/download/tools?token=titantools_for_linux_64BIT_APPIMAGE)
进迭官网下载最新工具:
https://developer.spacemit.com/#/Documentation
烧录指南:
https://bianbu.spacemit.com/installation_and_upgrade
## 烧录eMMC
### 使用 Titan Flasher 刷机
板卡在启动时检测到BOOT键按下即可进入烧录模式就是说先按住BOOT键再插电或者短按RESET键即可进入烧录模式。
![flash1](./assets/image/flash1.png)
![flash2](./assets/image/flash2.png)
![flash3](./assets/image/flash3.png)
### 使用Fastboot 刷机
以 .zip 结尾的 zip 固件,解压后可以用 fastboot 刷机。
**前提**
1. 设备已插上 USB 数据线,连接到 PC
2. 电脑安装好 fastboot 命令。
**刷机步骤**
1. 解压固件
2. 下载刷机脚本 [flash-all.zip](https://archive.spacemit.com/image/k1/flash-all.zip),并解压到固件目录;
3. 进入 fastboot 模式
```reboot fastboot```
等待设备重启并进入 fastboot 模式:
1. 运行 flash-all 脚本,等待刷机完成;
2. Linux PC 运行 flash-all.sh注意先赋予可执行权限Windows PC 运行 flash-all.bat
3. 刷机完成,重新上电即可进入系统。
## 烧录TF卡
以 img.zip 结尾的固件为 sdcard 固件,解压后可以用 dd 命令或者 balenaEtcher 写入 sdcard。注意此固件不适用于 eMMC。
**步骤**
1. 将固件写入 sdcard
2. 将 sdcard 插入设备;
3. 设备上电开机即可启动。
## LPi4A 兼容设置
注意如果你使用的是LPi4A的底板由于底板差异会导致默认镜像下USB A口无法使用首次使用需要先连接串口或者网络进入设备终端替换dtb
在/boot/spacemit/6.1.15/下,将 k1-x_lpi3a_4a.dtb 覆盖到为 k1-x_lpi3a.dtb重启即可使用USB
## LCD支持
默认镜像仅开启了HDMI输出如果需要LCD支持则需要替换dtb
在/boot/spacemit/6.1.15/下,将 k1-x_lpi3a_lcd.dtb 覆盖到为 k1-x_lpi3a.dtb重启即可使用LCD
注意此dtb必须接LCD才能使用
---
title: 烧录镜像
keywords: Linux, Lichee, K1, SBC, RISCV, image
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## 获取镜像
### Bianbu 镜像
![bianbu](./assets/image/bianbu.png)
LicheePi3A 已被进迭官方bianbu镜像支持
可以到[进迭官方镜像站](https://archive.spacemit.com/image/k1/version/bianbu/)下载注意请下载v1.0.11以上的镜像
### Fedora 镜像
https://images.fedoravforce.com/LicheePi%203A
### openKylin 镜像
https://www.openkylin.top/downloads/index-cn.html
### Deepin 镜像
https://ci.deepin.com/repo/deepin/deepin-ports/cdimage/20240815/riscv64/
## 获取烧录工具
LicheePi3A可使用fastboot或者titian烧录工具烧录。
[Windows](https://cloud.spacemit.com/prod-api/release/download/tools?token=titantools_for_windows_X86_X64)
[Linux](https://cloud.spacemit.com/prod-api/release/download/tools?token=titantools_for_linux_64BIT_APPIMAGE)
进迭官网下载最新工具:
https://developer.spacemit.com/#/Documentation
烧录指南:
https://bianbu.spacemit.com/installation_and_upgrade
## 烧录eMMC
### 使用 Titan Flasher 刷机
板卡在启动时检测到BOOT键按下即可进入烧录模式就是说先按住BOOT键再插电或者短按RESET键即可进入烧录模式。
![flash1](./assets/image/flash1.png)
![flash2](./assets/image/flash2.png)
![flash3](./assets/image/flash3.png)
### 使用Fastboot 刷机
以 .zip 结尾的 zip 固件,解压后可以用 fastboot 刷机。
**前提**
1. 设备已插上 USB 数据线,连接到 PC
2. 电脑安装好 fastboot 命令。
**刷机步骤**
1. 解压固件
2. 下载刷机脚本 [flash-all.zip](https://archive.spacemit.com/image/k1/flash-all.zip),并解压到固件目录;
3. 进入 fastboot 模式
```reboot fastboot```
等待设备重启并进入 fastboot 模式:
1. 运行 flash-all 脚本,等待刷机完成;
2. Linux PC 运行 flash-all.sh注意先赋予可执行权限Windows PC 运行 flash-all.bat
3. 刷机完成,重新上电即可进入系统。
## 烧录TF卡
以 img.zip 结尾的固件为 sdcard 固件,解压后可以用 dd 命令或者 balenaEtcher 写入 sdcard。注意此固件不适用于 eMMC。
**步骤**
1. 将固件写入 sdcard
2. 将 sdcard 插入设备;
3. 设备上电开机即可启动。
## LPi4A 兼容设置
注意如果你使用的是LPi4A的底板由于底板差异会导致默认镜像下USB A口无法使用首次使用需要先连接串口或者网络进入设备终端替换dtb
在/boot/spacemit/6.1.15/下,将 k1-x_lpi3a_4a.dtb 覆盖到为 k1-x_lpi3a.dtb重启即可使用USB
## LCD支持
默认镜像仅开启了HDMI输出如果需要LCD支持则需要替换dtb
在/boot/spacemit/6.1.15/下,将 k1-x_lpi3a_lcd.dtb 覆盖到为 k1-x_lpi3a.dtb重启即可使用LCD
注意此dtb必须接LCD才能使用

View File

@@ -1,295 +1,295 @@
---
title: 外设使用
keywords: Linux, Lichee, K1, SBC, RISCV, Peripheral
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## SoC 相关
### CPU 运行频率
`sudo cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq `
单位为 KHz
注意系统自带温控策略,当系统过于空闲或者温度过高时,都会降频。请保持良好散热,使得 CPU 在 60 度以下,获得最佳性能。
### 芯片温度
`cat /sys/class/thermal/thermal_zone0/temp`
单位为0.001摄氏度
## UART
### 系统串口
LicheePi 3A 的系统串口是 UART0,在侧边插针中有引出。
你可以使用 USB 转串口模块连接该串口,即 `U0-RX``U0-TX`,注意交叉连接,以及 GND 连接。
![ttl_link](./assets/peripheral/ttl_link.png)
连接完成后即可使用串口工具进行通信Windows 下推荐 `XShell``mobaterm`Linux下推荐 `minicom`
设置串口波特率为 `115200`,即可在串口终端下登录并进行指令操作:
> 注:刚连接后可以敲几个回车查看是否有反应,如果没有反应则检查接线或者串口配置
![ttl_login](./assets/peripheral/ttl_login.png)
### 一般串口
LicheePi 4A的侧边插针中还引出了 UART1, 同样可以操作。
默认镜像中仅使能了 UART1, 其它串口可能需要重新配置设备树操作。
#### 查看串口设备
```bash
ls /dev/ttyS*
```
#### 查看串口的波特率等信息
```bash
stty -F /dev/ttyS1 -a
```
#### 设置串口波特率、数据模式
```bash
stty -F /dev/ttyS1 ispeed 115200 ospeed 115200 cs8
```
#### 查看串口数据
```bash
cat /dev/ttyS1
```
#### 发送串口数据
```bash
echo "12345" > /dev/ttyS1
```
#### 其它方法
也可以使用`minicom`或者pyserial库进行串口操作请用户自行查找相关资料使用。
## I2C
LicheePi 3A 上有多个 I2C 设备I2C0/2/5/6其中 I2C2 连接了codec芯片I2C5连接IO扩展芯片也连接到了插针I2C6连接触摸屏和IO扩展芯片。
这里我们使用 i2c-tools 来进行 i2c 验证操作默认镜像未安装i2c-tools请先使用apt安装
`apt install i2c-tools`
列出所有I2C总线
```bash
root@k1:~# i2cdetect -l
i2c-0 i2c spacemit-i2c-adapter I2C adapter
i2c-2 i2c spacemit-i2c-adapter I2C adapter
i2c-5 i2c spacemit-i2c-adapter I2C adapter
i2c-6 i2c spacemit-i2c-adapter I2C adapter
i2c-8 i2c spacemit-i2c-adapter I2C adapter
```
检测 I2C 总线上的设备,可见 PCA9557PW 的 I2C 地址为 0x18与原理图相符
```bash
sipeed@lpi4a:~$ sudo /sbin/i2cdetect -r -y 5
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
```
此外还可以使用 `i2cdump` 来 dump 指定 i2c 地址的所有寄存器,用 `i2cget` 来读出指定 i2c 地址的指定寄存器值,用 `i2cset` 来写入指定 i2c 地址的指定寄存器值。
不过由于 IO 扩展芯片已经被内核使用,所以无法直接使用这些命令验证。用户可以自行在 I2C2 上外接外设来验证。
## SPI
LicheePi3A上预留了两路SPI一路是背面空贴的SPI Flash焊盘一路是插针上的SPI。
SPI 常用的 ioctl 命令:
- SPI_IOC_MESSAGE用于发送和接收 SPI 消息,可以用于读写数据、控制设备等操作
- SPI_IOC_WR_MODE用于设置 SPI 设备的工作模式, 如 CPOL、CPHA 等
- SPI_IOC_RD_MODE用于读取 SPI 设备的工作模式
- SPI_IOC_WR_LSB_FIRST用于设置 SPI 设备的字节顺序,即最高位先传输还是最低位先传输
- SPI_IOC_RD_LSB_FIRST用于读取 SPI 设备的字节顺序
- SPI_IOC_WR_BITS_PER_WORD用于设置 SPI 设备的数据位宽
- SPI_IOC_RD_BITS_PER_WORD用于读取 SPI 设备的数据位宽
- SPI_IOC_WR_MAX_SPEED_HZ用于设置 SPI 设备的最大时钟频率
- SPI_IOC_RD_MAX_SPEED_HZ用于读取 SPI 设备的最大时钟频率
- SPI_IOC_WR_MODE32用于设置 SPI 设备的 32 位模式, 如 CPOL、CPHA 等
- SPI_IOC_RD_MODE32用于读取 SPI 设备的 32 位模式
以上是一些常用的 SPI 设备 ioctl 命令,可以用于配置和控制 SPI 设备的各种参数。
打开/关闭 SPI 设备:
```c
int open(const char *pathname, int flags);
int close(int fd);
```
需要引用的头文件:
```c
#include<fcntl.h>
#include<unistd.h>
```
示例代码:
```c
#include <stdint.h>
#include <unistd.h> // C 语言标准头文件,定义了 POSIX API 的一部分,如文件操作、进程管理等
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include <fcntl.h> // C 语言头文件,定义了文件控制相关的宏和函数
#include <sys/ioctl.h> // C 语言头文件,定义了 ioctl 函数和相关宏
#include <linux/types.h> // Linux 内核头文件,定义了内核中使用的一些基本数据类型
#include <linux/spi/spidev.h> // Linux SPI 子系统头文件,定义了 SPI 设备驱动程序使用的数据结构和 ioctl 命令
#define DATA_NUM 2 // 自定义数据长度
#define CHECK(ret, str) if (ret < 0) {printf("%s\r\n", str); return ret;}
static uint8_t bits = 8;
static uint32_t speed = 1000000; // 1M Hz
static int mode = 0;
int main(int argc, char *argv[]) {
int ret, fd;
fd = open("/dev/spidev2.0", O_RDWR);
CHECK(fd, "can't open device"); // 打开具体 spi 设备
mode = SPI_MODE_0 | SPI_CS_HIGH;
ret = ioctl(fd, SPI_IOC_WR_MODE32, &mode); //设置 SPI 模式
CHECK(ret, "can't set spi mode");
ret = ioctl(fd, SPI_IOC_RD_MODE32, &mode); //获取 SPI 模式设置
CHECK(ret, "can't get spi mode");
ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits); //设置 SPI 的 bit/word
CHECK(ret, "can't set bits per word");
ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits); //获取 SPI 的 bit/word 设置
CHECK(ret, "can't get bits per word");
ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); //设置 SPI 的最大传输速度
CHECK(ret, "can't set max speed hz");
ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); //获取 SPI 的最大传输速度设置
CHECK(ret, "can't get max speed hz");
printf("spi mode: %d\n", mode);
printf("bits per word: %d\n", bits);
printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000);
//数据传输
uint8_t tx[] = {0x11, 0x22};
uint8_t rx[DATA_NUM] = {0};
struct spi_ioc_transfer tr = {
.tx_buf = (unsigned long)tx, //定义发送缓冲区指针
.rx_buf = (unsigned long)rx, //定义接收缓冲区指针
.len = DATA_NUM,
.delay_usecs = 0,
.speed_hz = speed,
.bits_per_word = bits
};
ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); //执行 spidev.c 中 ioctl 的 default 进行数据传输
CHECK(ret, "can't send spi message");
printf("tx: %.2X %.2X\r\n", tx[0], tx[1]);
printf("rx: %.2X %.2X\r\n", rx[0], rx[1]);
close(fd);
return ret;
}
```
## USB
LPi3A 具备4个USB3.0口插入USB device即可工作这里不再赘述。
注意如果你使用的是LPi4A的底板由于底板差异会导致默认镜像下USB A口无法使用首次使用需要先连接串口或者网络进入设备终端替换dtb
在/boot/spacemit/6.1.15/下,将 k1-x_lpi3a_4a.dtb 覆盖到为 k1-x_lpi3a.dtb重启即可使用USB
## ETH
LicheePi4A 具有双千兆网口,其中 Eth0 还具备 PoE 功能。
### PoE
LicheePi 4A的Ethernet 0接口具有PoE功能可通过PoE实现供电。
PoE供电模块需要自行购买使用5V电压35.6mm长度的规格可以通过搜索“5V PoE 插针”关键词搜索得到。
当目视方向正对“POE POWER”标识时针脚左边4根针脚定义从左到右依次为VA1、VA2、VB1、VB2右边为GND、5VIN。
## Speaker Audio
LicheePi 4A 上有两个模拟硅麦,使用 ES7210 CODEC以及有一路板载的扬声器和立体声耳机使用 ES8156 CODEC。
> 注:板载扬声器与立体声耳机使用了互斥设计,插入耳机后,音频输出自动切换到耳机,板载扬声器失能。
使用 aplay 和 arecord 可以进行简易录放测试, 注意板载扬声器是右声道。
```bash
#!/bin/bash
echo "Play Test Audio"
aplay -Dhw:1,0 disco48.wav
```
你还可以使用alsa相关工具`alsamixer`,进行音量调整等操作。
注意目前只支持48KHz音频播放。录音功能正在开发中。
## MIPI CSI
LicheePi 3A 背面有两个摄像头接口24Pin的是兼容LPi4A的2lane摄像头接口22Pin的是兼容树莓派的22Pin 4lane摄像头接口。
## MIPI DSI
LicheePi 3A 具有 MIPI DSI0 接口,支持 1080P 视频输出,可以选配 10.1 寸 1280x800 的触摸屏。
连接方式如下图,两根 fpc 软排线均为下接排线末端金属触点的那一面朝下其中触摸屏的转接小板在连接时需要注意方向确认ToLPi4A 的那一头连接LPi4A的触摸软排线ToLcdTP 的那一头连接屏幕:
软排线金属触点面示意图:
![fpc](./assets/peripheral/fpc.jpg)
注意在连接前,先拨起接口上用于固定排线的黑色翻盖,确认接好后再拨下。
触摸屏软排线连接:
![tpconnector_on_touchscreen](./assets/peripheral/tpconnector_on_touchscreen.jpeg)
![touchconnector_on_board](./assets/peripheral/touchconnector_on_board.jpeg)
MIPI 屏软排线连接:
![mipi_dsi_connect](./assets/peripheral/mipi_dsi_connect.jpeg)
确认连接无误后,使用支持 MIPI 屏幕的固件k1-x_lpi3a_lcd.dtb开机即可看到 MIPI 屏幕显示。
## JTAG
K1 的 JTAG接口与TF卡信号复用可使用TF转JTAG小板连接。
## GPU
使用命令以下命令可以实时查看 GPU 的状态:
```shell
sudo watch cat /sys/kernel/debug/pvr/status
```
## 其它
欢迎投稿~ 投稿接受后可得¥5150$1~20优惠券
---
title: 外设使用
keywords: Linux, Lichee, K1, SBC, RISCV, Peripheral
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## SoC 相关
### CPU 运行频率
`sudo cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq `
单位为 KHz
注意系统自带温控策略,当系统过于空闲或者温度过高时,都会降频。请保持良好散热,使得 CPU 在 60 度以下,获得最佳性能。
### 芯片温度
`cat /sys/class/thermal/thermal_zone0/temp`
单位为0.001摄氏度
## UART
### 系统串口
LicheePi 3A 的系统串口是 UART0,在侧边插针中有引出。
你可以使用 USB 转串口模块连接该串口,即 `U0-RX``U0-TX`,注意交叉连接,以及 GND 连接。
![ttl_link](./assets/peripheral/ttl_link.png)
连接完成后即可使用串口工具进行通信Windows 下推荐 `XShell``mobaterm`Linux下推荐 `minicom`
设置串口波特率为 `115200`,即可在串口终端下登录并进行指令操作:
> 注:刚连接后可以敲几个回车查看是否有反应,如果没有反应则检查接线或者串口配置
![ttl_login](./assets/peripheral/ttl_login.png)
### 一般串口
LicheePi 4A的侧边插针中还引出了 UART1, 同样可以操作。
默认镜像中仅使能了 UART1, 其它串口可能需要重新配置设备树操作。
#### 查看串口设备
```bash
ls /dev/ttyS*
```
#### 查看串口的波特率等信息
```bash
stty -F /dev/ttyS1 -a
```
#### 设置串口波特率、数据模式
```bash
stty -F /dev/ttyS1 ispeed 115200 ospeed 115200 cs8
```
#### 查看串口数据
```bash
cat /dev/ttyS1
```
#### 发送串口数据
```bash
echo "12345" > /dev/ttyS1
```
#### 其它方法
也可以使用`minicom`或者pyserial库进行串口操作请用户自行查找相关资料使用。
## I2C
LicheePi 3A 上有多个 I2C 设备I2C0/2/5/6其中 I2C2 连接了codec芯片I2C5连接IO扩展芯片也连接到了插针I2C6连接触摸屏和IO扩展芯片。
这里我们使用 i2c-tools 来进行 i2c 验证操作默认镜像未安装i2c-tools请先使用apt安装
`apt install i2c-tools`
列出所有I2C总线
```bash
root@k1:~# i2cdetect -l
i2c-0 i2c spacemit-i2c-adapter I2C adapter
i2c-2 i2c spacemit-i2c-adapter I2C adapter
i2c-5 i2c spacemit-i2c-adapter I2C adapter
i2c-6 i2c spacemit-i2c-adapter I2C adapter
i2c-8 i2c spacemit-i2c-adapter I2C adapter
```
检测 I2C 总线上的设备,可见 PCA9557PW 的 I2C 地址为 0x18与原理图相符
```bash
sipeed@lpi4a:~$ sudo /sbin/i2cdetect -r -y 5
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
```
此外还可以使用 `i2cdump` 来 dump 指定 i2c 地址的所有寄存器,用 `i2cget` 来读出指定 i2c 地址的指定寄存器值,用 `i2cset` 来写入指定 i2c 地址的指定寄存器值。
不过由于 IO 扩展芯片已经被内核使用,所以无法直接使用这些命令验证。用户可以自行在 I2C2 上外接外设来验证。
## SPI
LicheePi3A上预留了两路SPI一路是背面空贴的SPI Flash焊盘一路是插针上的SPI。
SPI 常用的 ioctl 命令:
- SPI_IOC_MESSAGE用于发送和接收 SPI 消息,可以用于读写数据、控制设备等操作
- SPI_IOC_WR_MODE用于设置 SPI 设备的工作模式, 如 CPOL、CPHA 等
- SPI_IOC_RD_MODE用于读取 SPI 设备的工作模式
- SPI_IOC_WR_LSB_FIRST用于设置 SPI 设备的字节顺序,即最高位先传输还是最低位先传输
- SPI_IOC_RD_LSB_FIRST用于读取 SPI 设备的字节顺序
- SPI_IOC_WR_BITS_PER_WORD用于设置 SPI 设备的数据位宽
- SPI_IOC_RD_BITS_PER_WORD用于读取 SPI 设备的数据位宽
- SPI_IOC_WR_MAX_SPEED_HZ用于设置 SPI 设备的最大时钟频率
- SPI_IOC_RD_MAX_SPEED_HZ用于读取 SPI 设备的最大时钟频率
- SPI_IOC_WR_MODE32用于设置 SPI 设备的 32 位模式, 如 CPOL、CPHA 等
- SPI_IOC_RD_MODE32用于读取 SPI 设备的 32 位模式
以上是一些常用的 SPI 设备 ioctl 命令,可以用于配置和控制 SPI 设备的各种参数。
打开/关闭 SPI 设备:
```c
int open(const char *pathname, int flags);
int close(int fd);
```
需要引用的头文件:
```c
#include<fcntl.h>
#include<unistd.h>
```
示例代码:
```c
#include <stdint.h>
#include <unistd.h> // C 语言标准头文件,定义了 POSIX API 的一部分,如文件操作、进程管理等
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include <fcntl.h> // C 语言头文件,定义了文件控制相关的宏和函数
#include <sys/ioctl.h> // C 语言头文件,定义了 ioctl 函数和相关宏
#include <linux/types.h> // Linux 内核头文件,定义了内核中使用的一些基本数据类型
#include <linux/spi/spidev.h> // Linux SPI 子系统头文件,定义了 SPI 设备驱动程序使用的数据结构和 ioctl 命令
#define DATA_NUM 2 // 自定义数据长度
#define CHECK(ret, str) if (ret < 0) {printf("%s\r\n", str); return ret;}
static uint8_t bits = 8;
static uint32_t speed = 1000000; // 1M Hz
static int mode = 0;
int main(int argc, char *argv[]) {
int ret, fd;
fd = open("/dev/spidev2.0", O_RDWR);
CHECK(fd, "can't open device"); // 打开具体 spi 设备
mode = SPI_MODE_0 | SPI_CS_HIGH;
ret = ioctl(fd, SPI_IOC_WR_MODE32, &mode); //设置 SPI 模式
CHECK(ret, "can't set spi mode");
ret = ioctl(fd, SPI_IOC_RD_MODE32, &mode); //获取 SPI 模式设置
CHECK(ret, "can't get spi mode");
ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits); //设置 SPI 的 bit/word
CHECK(ret, "can't set bits per word");
ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits); //获取 SPI 的 bit/word 设置
CHECK(ret, "can't get bits per word");
ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); //设置 SPI 的最大传输速度
CHECK(ret, "can't set max speed hz");
ret = ioctl(fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed); //获取 SPI 的最大传输速度设置
CHECK(ret, "can't get max speed hz");
printf("spi mode: %d\n", mode);
printf("bits per word: %d\n", bits);
printf("max speed: %d Hz (%d KHz)\n", speed, speed/1000);
//数据传输
uint8_t tx[] = {0x11, 0x22};
uint8_t rx[DATA_NUM] = {0};
struct spi_ioc_transfer tr = {
.tx_buf = (unsigned long)tx, //定义发送缓冲区指针
.rx_buf = (unsigned long)rx, //定义接收缓冲区指针
.len = DATA_NUM,
.delay_usecs = 0,
.speed_hz = speed,
.bits_per_word = bits
};
ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); //执行 spidev.c 中 ioctl 的 default 进行数据传输
CHECK(ret, "can't send spi message");
printf("tx: %.2X %.2X\r\n", tx[0], tx[1]);
printf("rx: %.2X %.2X\r\n", rx[0], rx[1]);
close(fd);
return ret;
}
```
## USB
LPi3A 具备4个USB3.0口插入USB device即可工作这里不再赘述。
注意如果你使用的是LPi4A的底板由于底板差异会导致默认镜像下USB A口无法使用首次使用需要先连接串口或者网络进入设备终端替换dtb
在/boot/spacemit/6.1.15/下,将 k1-x_lpi3a_4a.dtb 覆盖到为 k1-x_lpi3a.dtb重启即可使用USB
## ETH
LicheePi4A 具有双千兆网口,其中 Eth0 还具备 PoE 功能。
### PoE
LicheePi 4A的Ethernet 0接口具有PoE功能可通过PoE实现供电。
PoE供电模块需要自行购买使用5V电压35.6mm长度的规格可以通过搜索“5V PoE 插针”关键词搜索得到。
当目视方向正对“POE POWER”标识时针脚左边4根针脚定义从左到右依次为VA1、VA2、VB1、VB2右边为GND、5VIN。
## Speaker Audio
LicheePi 4A 上有两个模拟硅麦,使用 ES7210 CODEC以及有一路板载的扬声器和立体声耳机使用 ES8156 CODEC。
> 注:板载扬声器与立体声耳机使用了互斥设计,插入耳机后,音频输出自动切换到耳机,板载扬声器失能。
使用 aplay 和 arecord 可以进行简易录放测试, 注意板载扬声器是右声道。
```bash
#!/bin/bash
echo "Play Test Audio"
aplay -Dhw:1,0 disco48.wav
```
你还可以使用alsa相关工具`alsamixer`,进行音量调整等操作。
注意目前只支持48KHz音频播放。录音功能正在开发中。
## MIPI CSI
LicheePi 3A 背面有两个摄像头接口24Pin的是兼容LPi4A的2lane摄像头接口22Pin的是兼容树莓派的22Pin 4lane摄像头接口。
## MIPI DSI
LicheePi 3A 具有 MIPI DSI0 接口,支持 1080P 视频输出,可以选配 10.1 寸 1280x800 的触摸屏。
连接方式如下图,两根 fpc 软排线均为下接排线末端金属触点的那一面朝下其中触摸屏的转接小板在连接时需要注意方向确认ToLPi4A 的那一头连接LPi4A的触摸软排线ToLcdTP 的那一头连接屏幕:
软排线金属触点面示意图:
![fpc](./assets/peripheral/fpc.jpg)
注意在连接前,先拨起接口上用于固定排线的黑色翻盖,确认接好后再拨下。
触摸屏软排线连接:
![tpconnector_on_touchscreen](./assets/peripheral/tpconnector_on_touchscreen.jpeg)
![touchconnector_on_board](./assets/peripheral/touchconnector_on_board.jpeg)
MIPI 屏软排线连接:
![mipi_dsi_connect](./assets/peripheral/mipi_dsi_connect.jpeg)
确认连接无误后,使用支持 MIPI 屏幕的固件k1-x_lpi3a_lcd.dtb开机即可看到 MIPI 屏幕显示。
## JTAG
K1 的 JTAG接口与TF卡信号复用可使用TF转JTAG小板连接。
## GPU
使用命令以下命令可以实时查看 GPU 的状态:
```shell
sudo watch cat /sys/kernel/debug/pvr/status
```
## 其它
欢迎投稿~ 投稿接受后可得¥5150$1~20优惠券

View File

@@ -1,18 +1,18 @@
---
title: RISC-V Develop
keywords: Linux, Lichee, K1, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## Linux
请参看进迭官方开发文档:
[文档](https://bianbu-linux.spacemit.com/)
[项目地址](https://gitee.com/bianbu-linux)
---
title: RISC-V Develop
keywords: Linux, Lichee, K1, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
## Linux
请参看进迭官方开发文档:
[文档](https://bianbu-linux.spacemit.com/)
[项目地址](https://gitee.com/bianbu-linux)

View File

@@ -1,12 +1,12 @@
---
title: 典型应用
keywords: Linux, Lichee, K1, SBC, RISCV, application
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
---
title: 典型应用
keywords: Linux, Lichee, K1, SBC, RISCV, application
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---

View File

@@ -1,16 +1,16 @@
---
title: 常见问题
keywords: Linux, Lichee, K1, SBC, RISCV, Debian, Desktop
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
### LPi4A 兼容性设置
注意如果你使用的是LPi4A的底板由于底板差异会导致默认镜像下USB A口无法使用首次使用需要先连接串口或者网络进入设备终端替换dtb
在/boot/spacemit/6.1.15/下,将 k1-x_lpi3a_4a.dtb 覆盖到为 k1-x_lpi3a.dtb重启即可使用USB
---
title: 常见问题
keywords: Linux, Lichee, K1, SBC, RISCV, Debian, Desktop
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
### LPi4A 兼容性设置
注意如果你使用的是LPi4A的底板由于底板差异会导致默认镜像下USB A口无法使用首次使用需要先连接串口或者网络进入设备终端替换dtb
在/boot/spacemit/6.1.15/下,将 k1-x_lpi3a_4a.dtb 覆盖到为 k1-x_lpi3a.dtb重启即可使用USB

View File

@@ -1,35 +1,35 @@
---
title: 致谢
keywords: Linux, Lichee, K1, SBC, RISCV, credits
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
本章节专门向 LicheePi 3A 作出贡献的个人和团体致谢!
感谢你们的贡献让 RISC-V 发展得更快更好!
(本文按个人意愿以真名或者网名进行致谢)
## 进迭
感谢进迭官方的支持!
## PLCT
Wu Wei感谢吴老板大力支持老板大气
[Icenowy Zheng](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Icenowy+Zheng)冰激凌YYDS贡献了3A的AMD GPU支持
高涵revyos之父
## Fedora
感谢 傅炜 红帽大使的大力支持!
## Deepin
感谢 Yukari
## openKylin
感谢 Bits
## 开源社区
[Jisheng Zhang](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Jisheng+Zhang): K1 主线化支持
---
title: 致谢
keywords: Linux, Lichee, K1, SBC, RISCV, credits
update:
- date: 2024-07-30
version: v1.0
author: zepan
content:
- Release docs
---
本章节专门向 LicheePi 3A 作出贡献的个人和团体致谢!
感谢你们的贡献让 RISC-V 发展得更快更好!
(本文按个人意愿以真名或者网名进行致谢)
## 进迭
感谢进迭官方的支持!
## PLCT
Wu Wei感谢吴老板大力支持老板大气
[Icenowy Zheng](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Icenowy+Zheng)冰激凌YYDS贡献了3A的AMD GPU支持
高涵revyos之父
## Fedora
感谢 傅炜 红帽大使的大力支持!
## Deepin
感谢 Yukari
## openKylin
感谢 Bits
## 开源社区
[Jisheng Zhang](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Jisheng+Zhang): K1 主线化支持

View File

@@ -1,55 +1,55 @@
# Lichee Nano
## 概述
Lichee Nano是基于全志科技的F1C100s(ARM 926EJS内核)高性能soC芯片设计的迷你开发板。开发板设计小巧精致将芯片的所有资源都引出板载USB、Flash、TF卡、4OP LCD接口等并把所有IO资源引出方便开发者拓展使用非常适合初学者学习linux或者商用于产品开发。
> 默认用户名称:root 用户密码:licheepi
<img src="./../assets/Nano/Nano_2.png" width=400>
<img src="./../assets/Nano/Nano_3.png" width=400>
## 参数
### F1C100s参数
Lichee Nano开发板板载的F1C100s芯片功能很强大芯片内置32MBDDR拥有SDIO、SPI、UART、Speaker、Mic等接口支持外挂 8~32MB SPI Nor Flash;在视频处理方面表现出现支持720P视频输出支持H.264、MJPEG等高清格式的解码。
![](./../assets/Nano/F1C100s.png)
| 项目 | 参数 |
| --- | ---- |
| CPU | •ARM9 CPU architecture<br>•16KByte D-Cache<br>•32KByte I-Cache |
| Memory | •SIP 32MB DDR1<br>•SD2.0,eMMC 4.41 |
| Video | •H.264 1280x720@30fps decoding<br>•MPEG1/2/4 1280x720@30fps decoding<br>•MJPEG 1280x720@30fps encoding<br>•JPEG encode size up to 8192x8192|
| Camera | •8-bit CMOS-sensor interface<br>•CCIR656 protocol for NTSC and PAL |
| Audio | •Integrated analog audio codec with two DAC channels and one ADC channel,maximum 192kHz DAC sample rate and 48kHz ADC sample rate<br>•One I2S/PCM interface |
| Display | •LCD RGB interface up to 1280x720@60fps<br>•TV CVBS output, support NTSC/PAL, with auto plug detecting |
| Connectivity | •USB OTG, SDIO,IR, 3 x TWI, 2 x SPI, 3 x UART |
### 开发板参数
| 项目 | 参数 |
| --- | --- |
| CPU | 全志 F1C100s ARM 926EJS , 主频 408MHz 可超频至 600Mhz |
| 内存及存储 |集成 32MB DDR<br>板载 16MB NOR FLASH 可从 FLASH 启动<br>板载 TF 卡座,可从 TF 启动 |
| 显示 | 通用 40P RGB LCD FPC 0.5mm 座子<br>可直接使用常见的 40P 4.3/5/7 寸屏幕(板载背光驱动)<br>支持常见的 272x480, 480x800, 1024x600 等分辨率<br>板载电阻式触摸屏芯片 |
| 视频处理能力 | H.264 1280x720@30FPS 解码<br>MPEG1/2/4 1280x720@30FPS 解码<br>MJPEG 1280x720@30 FPS 解码<br>JPEG encode size up to 8192x8192 |
| 通信接口 | SDIO可搭配配套 SDIO WiFi+BT 模块<br>SPI x2<br>TWI x3<br>UART x3<br>OTG USB x1<br>TV out |
| 其它接口 | PWM x2<br>LRADC x1<br>Speakerx2 + Mic x1 |
![](./../assets/Nano/Nano_pin.png)
### 软件参数
| 开发环境 | 参数 |
| --- | --- |
| Linux | 支持3.10 BSP Linux<br>支持4.19 主线 Linux |
| 裸机 | Xboot |
| 裸机 | RT-Thread |
## 使用教程
[Lichee Nano](./../../../../soft/Lichee/zh/Nano-Doc-Backup/index.md)
## 产品技术支持
Lichee Nano 开发板可以在多种场景实现客户不同方面的需要在AIoT上已经广泛的使用品质和性能在行业内已经有非常好的口碑专业的技术团队为广大客户解决硬件设计和软件功能上的各种各样问题。专业技术支持和更详细资料请联系商务 <support@sipeed.com>
# Lichee Nano
## 概述
Lichee Nano是基于全志科技的F1C100s(ARM 926EJS内核)高性能soC芯片设计的迷你开发板。开发板设计小巧精致将芯片的所有资源都引出板载USB、Flash、TF卡、4OP LCD接口等并把所有IO资源引出方便开发者拓展使用非常适合初学者学习linux或者商用于产品开发。
> 默认用户名称:root 用户密码:licheepi
<img src="./../assets/Nano/Nano_2.png" width=400>
<img src="./../assets/Nano/Nano_3.png" width=400>
## 参数
### F1C100s参数
Lichee Nano开发板板载的F1C100s芯片功能很强大芯片内置32MBDDR拥有SDIO、SPI、UART、Speaker、Mic等接口支持外挂 8~32MB SPI Nor Flash;在视频处理方面表现出现支持720P视频输出支持H.264、MJPEG等高清格式的解码。
![](./../assets/Nano/F1C100s.png)
| 项目 | 参数 |
| --- | ---- |
| CPU | •ARM9 CPU architecture<br>•16KByte D-Cache<br>•32KByte I-Cache |
| Memory | •SIP 32MB DDR1<br>•SD2.0,eMMC 4.41 |
| Video | •H.264 1280x720@30fps decoding<br>•MPEG1/2/4 1280x720@30fps decoding<br>•MJPEG 1280x720@30fps encoding<br>•JPEG encode size up to 8192x8192|
| Camera | •8-bit CMOS-sensor interface<br>•CCIR656 protocol for NTSC and PAL |
| Audio | •Integrated analog audio codec with two DAC channels and one ADC channel,maximum 192kHz DAC sample rate and 48kHz ADC sample rate<br>•One I2S/PCM interface |
| Display | •LCD RGB interface up to 1280x720@60fps<br>•TV CVBS output, support NTSC/PAL, with auto plug detecting |
| Connectivity | •USB OTG, SDIO,IR, 3 x TWI, 2 x SPI, 3 x UART |
### 开发板参数
| 项目 | 参数 |
| --- | --- |
| CPU | 全志 F1C100s ARM 926EJS , 主频 408MHz 可超频至 600Mhz |
| 内存及存储 |集成 32MB DDR<br>板载 16MB NOR FLASH 可从 FLASH 启动<br>板载 TF 卡座,可从 TF 启动 |
| 显示 | 通用 40P RGB LCD FPC 0.5mm 座子<br>可直接使用常见的 40P 4.3/5/7 寸屏幕(板载背光驱动)<br>支持常见的 272x480, 480x800, 1024x600 等分辨率<br>板载电阻式触摸屏芯片 |
| 视频处理能力 | H.264 1280x720@30FPS 解码<br>MPEG1/2/4 1280x720@30FPS 解码<br>MJPEG 1280x720@30 FPS 解码<br>JPEG encode size up to 8192x8192 |
| 通信接口 | SDIO可搭配配套 SDIO WiFi+BT 模块<br>SPI x2<br>TWI x3<br>UART x3<br>OTG USB x1<br>TV out |
| 其它接口 | PWM x2<br>LRADC x1<br>Speakerx2 + Mic x1 |
![](./../assets/Nano/Nano_pin.png)
### 软件参数
| 开发环境 | 参数 |
| --- | --- |
| Linux | 支持3.10 BSP Linux<br>支持4.19 主线 Linux |
| 裸机 | Xboot |
| 裸机 | RT-Thread |
## 使用教程
[Lichee Nano](./../../../../soft/Lichee/zh/Nano-Doc-Backup/index.md)
## 产品技术支持
Lichee Nano 开发板可以在多种场景实现客户不同方面的需要在AIoT上已经广泛的使用品质和性能在行业内已经有非常好的口碑专业的技术团队为广大客户解决硬件设计和软件功能上的各种各样问题。专业技术支持和更详细资料请联系商务 <support@sipeed.com>

View File

@@ -1,39 +1,39 @@
# Lichee 86 Panel
## 概述
Lichee RV-86 Panel是为智能家居中控应用场景而设计的开发套件。在硬件上套件包含了LicheeRV 核心板全志D1+512MB DDR3)、4英寸 IPS 显示屏+电容触摸屏、WIFI + BT、以太网、双数字硅麦和 GPIO 拓展接口等。
在软件上,我们提供了 Linux 系统OpenWRT 及 Debian )和阿里 WAFT 开发环境( WAFT 是阿里基于 WebAssembly 和自研的渲染引擎打造的一款面向 AIOT 的高性能应用框架)。
![裸板视图](./../assets/RV/86_2.png)
## 参数
| 项目 | 参数 |
| --- | --- |
| 核心模块 | Sipeed LicheeRV 哪吒计算条 |
| 显示 | 默认搭配为4英寸480\*480 IPS标清电容触摸屏<br>可选升级为4英寸720\*720 IPS高清电容触摸屏<br>预留8英寸1280\*800 IPS电容触摸屏接口 |
| 音频 | 板载1W小扬声器双路数字硅麦 |
| 网络 | XR829 WIFI+BT无线模块<br>RTL8201F百兆以太网<br>预留板载RJ45以太网接口 |
| USB | 核心板带有USB-C OTG接口 <br>底板预留USB-C HOST 与USB转串口电路 |
| 电源 | 支持5V,12V供电(板载DC-DC ) |
| 扩展引脚 | 双2x8Pin 2.54mm 排针预留FPCIO引出 |
| 外壳 | 选配86盒3D打印外壳图纸开源 |
| 尺寸 | 86x86mm |
| 适用场景 | 智能家居中控WAFT UI评估 |
| 开发框架 | 支持WAFT (WebAssembly Framework For Things环境 |
| 系统支持 | 支持 OpenWRT及 Debian系统 |
| 开发资源 | 提供原厂SDK的 Docker开发镜像 |
![板子功能](./../assets/RV/86_pin.png)
## 相关链接
[下载站](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV_86_panel)
[烧录系统](./flash.md)
[相关使用](./user.md)
## 产品技术支持
# Lichee 86 Panel
## 概述
Lichee RV-86 Panel是为智能家居中控应用场景而设计的开发套件。在硬件上套件包含了LicheeRV 核心板全志D1+512MB DDR3)、4英寸 IPS 显示屏+电容触摸屏、WIFI + BT、以太网、双数字硅麦和 GPIO 拓展接口等。
在软件上,我们提供了 Linux 系统OpenWRT 及 Debian )和阿里 WAFT 开发环境( WAFT 是阿里基于 WebAssembly 和自研的渲染引擎打造的一款面向 AIOT 的高性能应用框架)。
![裸板视图](./../assets/RV/86_2.png)
## 参数
| 项目 | 参数 |
| --- | --- |
| 核心模块 | Sipeed LicheeRV 哪吒计算条 |
| 显示 | 默认搭配为4英寸480\*480 IPS标清电容触摸屏<br>可选升级为4英寸720\*720 IPS高清电容触摸屏<br>预留8英寸1280\*800 IPS电容触摸屏接口 |
| 音频 | 板载1W小扬声器双路数字硅麦 |
| 网络 | XR829 WIFI+BT无线模块<br>RTL8201F百兆以太网<br>预留板载RJ45以太网接口 |
| USB | 核心板带有USB-C OTG接口 <br>底板预留USB-C HOST 与USB转串口电路 |
| 电源 | 支持5V,12V供电(板载DC-DC ) |
| 扩展引脚 | 双2x8Pin 2.54mm 排针预留FPCIO引出 |
| 外壳 | 选配86盒3D打印外壳图纸开源 |
| 尺寸 | 86x86mm |
| 适用场景 | 智能家居中控WAFT UI评估 |
| 开发框架 | 支持WAFT (WebAssembly Framework For Things环境 |
| 系统支持 | 支持 OpenWRT及 Debian系统 |
| 开发资源 | 提供原厂SDK的 Docker开发镜像 |
![板子功能](./../assets/RV/86_pin.png)
## 相关链接
[下载站](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV_86_panel)
[烧录系统](./flash.md)
[相关使用](./user.md)
## 产品技术支持
Lichee RV-86 Panel 可以在多种场景实现客户不同方面的需要,品质和性能在行业内已经有非常好的口碑,专业的技术团队为广大客户解决硬件设计和软件功能上的各种各样问题。专业技术支持和更详细资料请联系商务 <support@sipeed.com>

View File

@@ -1,37 +1,37 @@
# Lichee Dock
## 概述
Lichee RV Dock 是为开源开发者而设计的一款功能**集成度高**、**体积小**且价格亲民的RISC-V Linux开发板套件。它不仅支持 **HDMI 输出**,搭配屏幕转接板更可以支持多种的屏幕显示(**MIPI、RGB和MCU接口**)。它同时具备丰富的外设,包括一个主机 **USB-A** 接口,**2.4G Wi-Fi+BT** 模块,一个模拟麦克风和扬声器插口等。使用者拿到套件之后,无需等待和焊接,即可用套件连接显示器和 USB 设备快速上手开发各种有趣且实用的 Linux 应用,较大地**加速了**开发者的试研和开发工作。除此之外,用户还可以利用开发板的多种显示接口,无线功能和 GPIO ,搭配板载麦克风和扬声器,快速实现各种创意。
![外观图](./../assets/RV/RV-Dock.jpg)
## 参数
| 项目 | 参数 |
| --- | --- |
|支持的核心板 | Lichee RV 核心板 |
| 显示输出接口 | 板载一个显示输出连接器;<br>RGB屏幕信号和MIPI屏幕信号连接到2x20P排针焊盘 <br>可以使用我们的屏幕转接板驱动RGB接口或者MIPI接口的屏幕 |
| 网络连接 | 板载2.4G WIFI+BT模组、2.4G 贴片天线、IPEX连接器 |
| USB | 板载一个USB type-A母座 |
| 音频 | 板载扬声器驱动电路最高支持4Ω3W扬声器和扬声器连接器<br>板载驻极体麦克风电路 |
| 存储 | 预留了一个SOP8焊盘SPI协议默认不焊接元件 |
| 拓展连接器 | 板载30P FPC连接器可以直接连接到我们的Mic Array R6 麦克风阵列板 |
| GPIO拓展 | 通过2x20P 2.54mm 焊盘引出GPIO供用户使用 |
| LED | 板载一个WS2812 RGB LED<br>板载一个电源指示灯 |
| 按键 | 板载一个复位RST按键<br>板载一个用户按键 |
## 相关链接
[规格书](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/1_Datasheet)
[原理图](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/2_Schematic)
[点位图](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/3_Bitmap)
[尺寸图](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/4_Dimensions)
[3D 模型文件](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/5_3D)
[使用教程](./flash.md)
## 产品技术支持
# Lichee Dock
## 概述
Lichee RV Dock 是为开源开发者而设计的一款功能**集成度高**、**体积小**且价格亲民的RISC-V Linux开发板套件。它不仅支持 **HDMI 输出**,搭配屏幕转接板更可以支持多种的屏幕显示(**MIPI、RGB和MCU接口**)。它同时具备丰富的外设,包括一个主机 **USB-A** 接口,**2.4G Wi-Fi+BT** 模块,一个模拟麦克风和扬声器插口等。使用者拿到套件之后,无需等待和焊接,即可用套件连接显示器和 USB 设备快速上手开发各种有趣且实用的 Linux 应用,较大地**加速了**开发者的试研和开发工作。除此之外,用户还可以利用开发板的多种显示接口,无线功能和 GPIO ,搭配板载麦克风和扬声器,快速实现各种创意。
![外观图](./../assets/RV/RV-Dock.jpg)
## 参数
| 项目 | 参数 |
| --- | --- |
|支持的核心板 | Lichee RV 核心板 |
| 显示输出接口 | 板载一个显示输出连接器;<br>RGB屏幕信号和MIPI屏幕信号连接到2x20P排针焊盘 <br>可以使用我们的屏幕转接板驱动RGB接口或者MIPI接口的屏幕 |
| 网络连接 | 板载2.4G WIFI+BT模组、2.4G 贴片天线、IPEX连接器 |
| USB | 板载一个USB type-A母座 |
| 音频 | 板载扬声器驱动电路最高支持4Ω3W扬声器和扬声器连接器<br>板载驻极体麦克风电路 |
| 存储 | 预留了一个SOP8焊盘SPI协议默认不焊接元件 |
| 拓展连接器 | 板载30P FPC连接器可以直接连接到我们的Mic Array R6 麦克风阵列板 |
| GPIO拓展 | 通过2x20P 2.54mm 焊盘引出GPIO供用户使用 |
| LED | 板载一个WS2812 RGB LED<br>板载一个电源指示灯 |
| 按键 | 板载一个复位RST按键<br>板载一个用户按键 |
## 相关链接
[规格书](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/1_Datasheet)
[原理图](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/2_Schematic)
[点位图](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/3_Bitmap)
[尺寸图](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/4_Dimensions)
[3D 模型文件](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV-Dock/5_3D)
[使用教程](./flash.md)
## 产品技术支持
Lichee RV Dock 可以在多种场景实现客户不同方面的需要,品质和性能在行业内已经有非常好的口碑,专业的技术团队为广大客户解决硬件设计和软件功能上的各种各样问题。专业技术支持和更详细资料请联系商务 support@sipeed.com。

View File

@@ -1,93 +1,93 @@
# Lichee RV - Nezha CM
## 概述
Lichee RV - Nezha CM是模块化设计的核心计算模组搭载全志D1主控芯片(基于平头哥玄铁C906处理器512MB DDR3内存可选启动介质为TF卡或者SDNAND芯片并使用两组M.2B - KEY 67 Pin金手指引出所有l0方便量产使用也方便安装替换。
![](./../assets/RV/D1-4.jpg)
![](./../assets/RV/D1-back.jpg)
## 参数
| 项目 | 参数 |
| --- | --- |
| CPU | 全志 D1 阿里平头哥 玄铁 C906 内核,主频 1GHz |
| 内存 | 16bit 512MB DDR3时钟频率 792MHz |
| 存储 | 板载 TF 卡连接器,可插入 TF 卡作为存储已测试能够识别1TB容量的卡 <br>预留 SD-NAND 焊盘(与 8pin LCD 接口冲突,用于商业应用定制) |
| 显示接口 | MIPI引出 4-lane MIPI DSI 至金手指 <br>RGB引出 RGB888部分与 DSI 复用) 至金手指 <br>MCU(I80):引出 I80 接口至金手指 <br>SPI板载 8pin SPI 液晶屏接口,可扩展 1.14 英寸液晶屏 |
| 音频接口 | 模拟音频耳机输出(HPOUT) 引出至金手指 <br>模拟音频线路输入(LINEIN) 引出至金手指 <br>数字音频 (I2S/SPDIF) 引出至金手指 <br>模拟麦克风接口(MIC3) 引出至金手指 <br>数字麦克风接口(DMIC) 引出至金手指 |
| 以太网 | 引出 RMII/RGMII 接口至金手指(与部分 GPIO 复用) |
| USB | 板载 TYPE-C USB-OTG 接口(USB0) <br>USB-HOST 引出至金手指(USB1) |
| GPIO | 剩余 GPIO 全部引出至金手指 |
| 按键 | • FEL 按键(进入下载模式)|
| 指示灯 | • 一个电源指示灯 <br>• 一个用户指示灯(高电平有效) |
|PCB | 板层 4 层 |
| 固定方式 | 通过两组 M.2 B-KEY 金手指连接器与底板连接,使用一颗 M2 螺丝紧固 |
| 支持开发语言 | C/C++, Python, Golang, etc... |
| 系统镜像 | Tina Linux(基于OpenWRT 14.07)、 Debian、YoC (RTOS ) |
![](./../assets/RV/D1-pin.png)
## 底板之间的对比
| 项目 | Lichee RV Dock | Lichee RV Panel |
| :---: | --- | --- |
| SOC | 全志D1XuanTie C906 RISC-V | 全志D1XuanTie C906 RISC-V |
| 内存 | 1GByte | 1GByte |
| 无线网络 | 可选择:<br>-2.4G WIFI+BT<br>-无可以自行焊接其他型号的WIFI模块调试 | 2.4G WIFI+BT |
| 有线网络 | 无 | 支持100M以太网 |
| 影像输出 | HDMI连接器 <br>SPI接口屏幕连接器 <br>连接屏幕转接板,可以实现:<br>- 常用RGB接口屏幕连接器含TP引脚支持我们店铺的4.3寸/5.0寸屏)<br>- MIPI接口屏幕连接器兼容Nezha开发板适配的8寸屏 | sRGB接口屏幕连接器含TP引脚支持标配的4寸IPS屏带TP <br>MIPI接口屏幕连接器兼容Nezha开发板适配的8寸屏|
| USB端口 | "1个USB OTG(核心板板载的USB-C座子) <br> 1个USB Host(底板板载的USB-A座子) | 1个USB OTG(核心板板载的USB-C座子) <br>1个USB Host(底板板载的USB-C座子) |
| 拓展接口 | 支持麦克风阵列板<br>大部分GPIO通过2x20P直插焊盘引出 | 小部分GPIO通过直插焊盘引出 |
| 音频 | 板载3W音频功放 <br>板载驻极体麦克风电路 | 板载3W音频功放 <br>板载2个MEMS数字麦克风 |
| 按键 | 1个FEL按键进入下载模式<br>1个RST按键复位<br>1个用户按键 | 1个FEL按键进入下载模式 |
| LED | 1个电源指示灯<br>1个2812 RGB LED | 1个电源指示灯 |
| 外壳 | 无 | 有3D打印外壳 |
| 尺寸 | 65.0mm x 40.0mm | 86.0mm x 86.0mm |
## 连接1.14寸屏幕
![](./../assets/RV/D1-1.png)![](./../assets/RV/D1-2.png)![](./../assets/RV/D1-3.png)
> 目前 1.14 显示屏是点不亮的,需要等待后续的更新;
## 系统烧录
[烧录教程](./flash.md)
## 注意事项
当前核心板的USB Type-C连接器使用CC引脚作为自动OTG的识别引脚但是与USB C to C 数据线的识别存在冲突只能使用A to C数据线可在硬件上改动器件进行切换共有两种工作方式具体特性对应如下
| Type-C工作模式 | OTG出厂默认产品 | CC识别需要改动硬件 |
| --- | :---: | :---: |
| 电阻R30与电阻R31 | 不贴 | 贴装5.1K 1% 0402电阻 |
| 二极管D3与D4 | 贴装4148二极管 | 不贴 |
| 是否兼容C to C数据线 | 否 | 是 |
| 是否兼容A to C 数据线 | 是 | 是 |
| 是否支持自动OTG切换 | 是 | 否 |
如需使用C to C数据线则需要改动TypeC接口周围的器件对应CC识别模式并在需要扩展外置USB设备时手动切换为HOST模式。核心板正面位号图如下供参考
> ① 换上5.1K 1% 0402电阻② 拆除二极管
![](./../assets/RV/other.png)
![](./../assets/RV/D1Core2.png)
## 资料下载
[硬件资料下载](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/HDK)
Debian 系统镜像请到
>[百度网盘](https://pan.baidu.com/s/1QJTaDw6kkTM4c_GAlmG0hg)(提取码:`wbef`)
>[Mega netdisk](https://mega.nz/folder/lx4CyZBA#PiFhY7oSVQ3gp2ZZ_AnwYA)
[源码获取](/hardware/zh/lichee/RV/user.html#BSP-SDK-开发指南)
## 相关问题
# Lichee RV - Nezha CM
## 概述
Lichee RV - Nezha CM是模块化设计的核心计算模组搭载全志D1主控芯片(基于平头哥玄铁C906处理器512MB DDR3内存可选启动介质为TF卡或者SDNAND芯片并使用两组M.2B - KEY 67 Pin金手指引出所有l0方便量产使用也方便安装替换。
![](./../assets/RV/D1-4.jpg)
![](./../assets/RV/D1-back.jpg)
## 参数
| 项目 | 参数 |
| --- | --- |
| CPU | 全志 D1 阿里平头哥 玄铁 C906 内核,主频 1GHz |
| 内存 | 16bit 512MB DDR3时钟频率 792MHz |
| 存储 | 板载 TF 卡连接器,可插入 TF 卡作为存储已测试能够识别1TB容量的卡 <br>预留 SD-NAND 焊盘(与 8pin LCD 接口冲突,用于商业应用定制) |
| 显示接口 | MIPI引出 4-lane MIPI DSI 至金手指 <br>RGB引出 RGB888部分与 DSI 复用) 至金手指 <br>MCU(I80):引出 I80 接口至金手指 <br>SPI板载 8pin SPI 液晶屏接口,可扩展 1.14 英寸液晶屏 |
| 音频接口 | 模拟音频耳机输出(HPOUT) 引出至金手指 <br>模拟音频线路输入(LINEIN) 引出至金手指 <br>数字音频 (I2S/SPDIF) 引出至金手指 <br>模拟麦克风接口(MIC3) 引出至金手指 <br>数字麦克风接口(DMIC) 引出至金手指 |
| 以太网 | 引出 RMII/RGMII 接口至金手指(与部分 GPIO 复用) |
| USB | 板载 TYPE-C USB-OTG 接口(USB0) <br>USB-HOST 引出至金手指(USB1) |
| GPIO | 剩余 GPIO 全部引出至金手指 |
| 按键 | • FEL 按键(进入下载模式)|
| 指示灯 | • 一个电源指示灯 <br>• 一个用户指示灯(高电平有效) |
|PCB | 板层 4 层 |
| 固定方式 | 通过两组 M.2 B-KEY 金手指连接器与底板连接,使用一颗 M2 螺丝紧固 |
| 支持开发语言 | C/C++, Python, Golang, etc... |
| 系统镜像 | Tina Linux(基于OpenWRT 14.07)、 Debian、YoC (RTOS ) |
![](./../assets/RV/D1-pin.png)
## 底板之间的对比
| 项目 | Lichee RV Dock | Lichee RV Panel |
| :---: | --- | --- |
| SOC | 全志D1XuanTie C906 RISC-V | 全志D1XuanTie C906 RISC-V |
| 内存 | 1GByte | 1GByte |
| 无线网络 | 可选择:<br>-2.4G WIFI+BT<br>-无可以自行焊接其他型号的WIFI模块调试 | 2.4G WIFI+BT |
| 有线网络 | 无 | 支持100M以太网 |
| 影像输出 | HDMI连接器 <br>SPI接口屏幕连接器 <br>连接屏幕转接板,可以实现:<br>- 常用RGB接口屏幕连接器含TP引脚支持我们店铺的4.3寸/5.0寸屏)<br>- MIPI接口屏幕连接器兼容Nezha开发板适配的8寸屏 | sRGB接口屏幕连接器含TP引脚支持标配的4寸IPS屏带TP <br>MIPI接口屏幕连接器兼容Nezha开发板适配的8寸屏|
| USB端口 | "1个USB OTG(核心板板载的USB-C座子) <br> 1个USB Host(底板板载的USB-A座子) | 1个USB OTG(核心板板载的USB-C座子) <br>1个USB Host(底板板载的USB-C座子) |
| 拓展接口 | 支持麦克风阵列板<br>大部分GPIO通过2x20P直插焊盘引出 | 小部分GPIO通过直插焊盘引出 |
| 音频 | 板载3W音频功放 <br>板载驻极体麦克风电路 | 板载3W音频功放 <br>板载2个MEMS数字麦克风 |
| 按键 | 1个FEL按键进入下载模式<br>1个RST按键复位<br>1个用户按键 | 1个FEL按键进入下载模式 |
| LED | 1个电源指示灯<br>1个2812 RGB LED | 1个电源指示灯 |
| 外壳 | 无 | 有3D打印外壳 |
| 尺寸 | 65.0mm x 40.0mm | 86.0mm x 86.0mm |
## 连接1.14寸屏幕
![](./../assets/RV/D1-1.png)![](./../assets/RV/D1-2.png)![](./../assets/RV/D1-3.png)
> 目前 1.14 显示屏是点不亮的,需要等待后续的更新;
## 系统烧录
[烧录教程](./flash.md)
## 注意事项
当前核心板的USB Type-C连接器使用CC引脚作为自动OTG的识别引脚但是与USB C to C 数据线的识别存在冲突只能使用A to C数据线可在硬件上改动器件进行切换共有两种工作方式具体特性对应如下
| Type-C工作模式 | OTG出厂默认产品 | CC识别需要改动硬件 |
| --- | :---: | :---: |
| 电阻R30与电阻R31 | 不贴 | 贴装5.1K 1% 0402电阻 |
| 二极管D3与D4 | 贴装4148二极管 | 不贴 |
| 是否兼容C to C数据线 | 否 | 是 |
| 是否兼容A to C 数据线 | 是 | 是 |
| 是否支持自动OTG切换 | 是 | 否 |
如需使用C to C数据线则需要改动TypeC接口周围的器件对应CC识别模式并在需要扩展外置USB设备时手动切换为HOST模式。核心板正面位号图如下供参考
> ① 换上5.1K 1% 0402电阻② 拆除二极管
![](./../assets/RV/other.png)
![](./../assets/RV/D1Core2.png)
## 资料下载
[硬件资料下载](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/HDK)
Debian 系统镜像请到
>[百度网盘](https://pan.baidu.com/s/1QJTaDw6kkTM4c_GAlmG0hg)(提取码:`wbef`)
>[Mega netdisk](https://mega.nz/folder/lx4CyZBA#PiFhY7oSVQ3gp2ZZ_AnwYA)
[源码获取](/hardware/zh/lichee/RV/user.html#BSP-SDK-开发指南)
## 相关问题
[licheeRV debian镜像相关问题](https://wiki.sipeed.com/hardware/zh/lichee/RV/problems.html#apt-%E7%9B%B8%E5%85%B3)

View File

@@ -1,110 +1,110 @@
# Lichee RV 烧录系统
系统镜像分为 Tina与Debian两种Tina为专用小linux镜像Debian为桌面级镜像
## 准备
1. Lichee RV 核心板
2. TF 内存卡(建议使用[官方店](https://shop365481095.taobao.com/)的的内存卡,其他的卡可能会有各种奇怪的问题)
3. 烧录工具 [PhoenixCard](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/tool)
4. 系统镜像下载
国内用户:[百度网盘](https://pan.baidu.com/s/1QJTaDw6kkTM4c_GAlmG0hg) 提取码wbef
国外用户:[Mega](https://mega.nz/folder/lx4CyZBA#PiFhY7oSVQ3gp2ZZ_AnwYA)
| 镜像词缀说明 | 含义 | 备注 |
| --- | --- | --- |
| LicheeRV | Sipeed 专用的 RISCV D1 Linux 系列系统。 | --- |
| Tina | 标记为 tina openwrt 系统。 | --- |
| debian | 标记为 riscv debian 系统。 | --- |
| 86panel | [taobao 86panel](https://item.taobao.com/item.htm?spm=a230r.1.14.18.30b534187YMsRx&id=663345415205&ns=1&abbucket=7#detail) | --- |
| dock | [taobao dock](https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-21410578028.20.35765d54K9XCOt&id=666274331852) | --- |
| hdmi | 表示屏幕默认输出到 HDMI 屏幕上。 | |
| 800480 / 480P | 表示屏幕默认输出到 LCD 屏幕上,分辨率可以是 800*480 或 480P (640X480)。 | |
| 8723ds | 表示该镜像支持 8723ds WIFI / BLE 驱动。 | |
| xr829 | 表示该镜像支持 xr829 WIFI / BLE 驱动。 | |
| waft | 是否内置 waft 软件。 | |
## 烧录镜像
### 烧录步骤
烧录前最好使用[SD card Formatter](https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip)先把内存卡格式化一次,格式化的时候注意不要选择错了镜像。
- 打开烧录软件 [PhoenixCard](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/tool),选择烧录的固件,将内存卡通过读卡器插入电脑中
- 选择 `启动卡` 选项
- 选择正确的盘符
- 点击 `烧卡`
- 根据状态栏的颜色可以判断烧录结果:红色的话说明烧录失败了,建议使用[SD card Formatter](https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip)格式化后再重新烧录一次;绿色则表示一切正常。
![](./../assets/RV/flash.png)
要注意 Windows 默认打不开 linux 的文件系统,所以对于烧录过 linux 镜像的 sd 卡在 Windows 上会不能直接被打开,且被提示需要格式化之类的。
这时可以使用[SD card Formatter](https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip)来格式化 sd 卡来恢复到 Windows 系统可用的状态。
对于嵌入式 linux建议持有两张以上的 sd 卡。
> 并不能保证每台电脑和每个人的内存卡都是可以烧录的,烧录失败的话建议购买官方的镜像卡。
等待烧录结束;烧录 Tina 系统镜像会比较快,烧录 Debian 系统镜像将会久一点可能多用10分钟。
### 烧录失败相关
如果在烧录时提示格式化失败,或者使用烧录过的卡但是电脑上没有显示盘符,可以按以下操作来解决:
1. 在此下载磁盘处理软件: https://www.diskgenius.cn/
2. 电脑上显示不出的盘符,会在该软件里显示出来,使用该软件进行快速分区:
![attachmentId-2788](./../assets/RV/Diskgenius.png)
3. 分区完成后电脑上就能够看到盘符PhoenixCard 里也能看到,在 PhoenixCard 里点击恢复卡即可恢复卡到正常状态
4. 按之前步骤继续烧录即可
## 启动
启动后若提示需要用户名和密码的话的分别如下:
- Tina 系统登录用户名:`root` 密码:`tina`
- Debian 系统登录用户名:`root` 密码:`licheepi`
插卡启动,可以在串口工具中查看到启动信息:
- debian 启动的打印信息
<details>
<summary><font color="#4F84FF">点开查看部分debian启动日志</font></summary>
<pre><code class="language-shell">
[270]HELLO! BOOT0 is starting!
[273]BOOT0 commit : 27369ab
OpenSBI v0.6
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
</code></pre>
</details>
- Tina 启动的打印信息
<details>
<summary><font color="#4F84FF">点开查看Tina启动日志</font></summary>
<pre><code class="language-shell">
BusyBox v1.27.2 () built-in shell (ash)
__ ___ _ __ _
/ |/ /__ _(_)_ __ / / (_)__ __ ____ __
/ /|_/ / _ `/ /\ \ / / /__/ / _ \/ // /\ \ /
/_/ /_/\_,_/_//_\_\ /____/_/_//_/\_,_//_\_\
----------------------------------------------
Maix Linux (Neptune, 5C1C9C53)
----------------------------------------------
root@MaixLinux:/#
</code></pre>
</details>
## 相关问题
# Lichee RV 烧录系统
系统镜像分为 Tina与Debian两种Tina为专用小linux镜像Debian为桌面级镜像
## 准备
1. Lichee RV 核心板
2. TF 内存卡(建议使用[官方店](https://shop365481095.taobao.com/)的的内存卡,其他的卡可能会有各种奇怪的问题)
3. 烧录工具 [PhoenixCard](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/tool)
4. 系统镜像下载
国内用户:[百度网盘](https://pan.baidu.com/s/1QJTaDw6kkTM4c_GAlmG0hg) 提取码wbef
国外用户:[Mega](https://mega.nz/folder/lx4CyZBA#PiFhY7oSVQ3gp2ZZ_AnwYA)
| 镜像词缀说明 | 含义 | 备注 |
| --- | --- | --- |
| LicheeRV | Sipeed 专用的 RISCV D1 Linux 系列系统。 | --- |
| Tina | 标记为 tina openwrt 系统。 | --- |
| debian | 标记为 riscv debian 系统。 | --- |
| 86panel | [taobao 86panel](https://item.taobao.com/item.htm?spm=a230r.1.14.18.30b534187YMsRx&id=663345415205&ns=1&abbucket=7#detail) | --- |
| dock | [taobao dock](https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-21410578028.20.35765d54K9XCOt&id=666274331852) | --- |
| hdmi | 表示屏幕默认输出到 HDMI 屏幕上。 | |
| 800480 / 480P | 表示屏幕默认输出到 LCD 屏幕上,分辨率可以是 800*480 或 480P (640X480)。 | |
| 8723ds | 表示该镜像支持 8723ds WIFI / BLE 驱动。 | |
| xr829 | 表示该镜像支持 xr829 WIFI / BLE 驱动。 | |
| waft | 是否内置 waft 软件。 | |
## 烧录镜像
### 烧录步骤
烧录前最好使用[SD card Formatter](https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip)先把内存卡格式化一次,格式化的时候注意不要选择错了镜像。
- 打开烧录软件 [PhoenixCard](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/tool),选择烧录的固件,将内存卡通过读卡器插入电脑中
- 选择 `启动卡` 选项
- 选择正确的盘符
- 点击 `烧卡`
- 根据状态栏的颜色可以判断烧录结果:红色的话说明烧录失败了,建议使用[SD card Formatter](https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip)格式化后再重新烧录一次;绿色则表示一切正常。
![](./../assets/RV/flash.png)
要注意 Windows 默认打不开 linux 的文件系统,所以对于烧录过 linux 镜像的 sd 卡在 Windows 上会不能直接被打开,且被提示需要格式化之类的。
这时可以使用[SD card Formatter](https://www.sdcard.org/downloads/formatter/eula_windows/SDCardFormatterv5_WinEN.zip)来格式化 sd 卡来恢复到 Windows 系统可用的状态。
对于嵌入式 linux建议持有两张以上的 sd 卡。
> 并不能保证每台电脑和每个人的内存卡都是可以烧录的,烧录失败的话建议购买官方的镜像卡。
等待烧录结束;烧录 Tina 系统镜像会比较快,烧录 Debian 系统镜像将会久一点可能多用10分钟。
### 烧录失败相关
如果在烧录时提示格式化失败,或者使用烧录过的卡但是电脑上没有显示盘符,可以按以下操作来解决:
1. 在此下载磁盘处理软件: https://www.diskgenius.cn/
2. 电脑上显示不出的盘符,会在该软件里显示出来,使用该软件进行快速分区:
![attachmentId-2788](./../assets/RV/Diskgenius.png)
3. 分区完成后电脑上就能够看到盘符PhoenixCard 里也能看到,在 PhoenixCard 里点击恢复卡即可恢复卡到正常状态
4. 按之前步骤继续烧录即可
## 启动
启动后若提示需要用户名和密码的话的分别如下:
- Tina 系统登录用户名:`root` 密码:`tina`
- Debian 系统登录用户名:`root` 密码:`licheepi`
插卡启动,可以在串口工具中查看到启动信息:
- debian 启动的打印信息
<details>
<summary><font color="#4F84FF">点开查看部分debian启动日志</font></summary>
<pre><code class="language-shell">
[270]HELLO! BOOT0 is starting!
[273]BOOT0 commit : 27369ab
OpenSBI v0.6
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
</code></pre>
</details>
- Tina 启动的打印信息
<details>
<summary><font color="#4F84FF">点开查看Tina启动日志</font></summary>
<pre><code class="language-shell">
BusyBox v1.27.2 () built-in shell (ash)
__ ___ _ __ _
/ |/ /__ _(_)_ __ / / (_)__ __ ____ __
/ /|_/ / _ `/ /\ \ / / /__/ / _ \/ // /\ \ /
/_/ /_/\_,_/_//_\_\ /____/_/_//_/\_,_//_\_\
----------------------------------------------
Maix Linux (Neptune, 5C1C9C53)
----------------------------------------------
root@MaixLinux:/#
</code></pre>
</details>
## 相关问题
[点我跳转](./problems.md)

View File

@@ -1,42 +1,42 @@
---
title: 相关问题
keywords: debian, Rv, Problam, apt, img, sipeed
---
## apt 相关
- 在使用默认debian镜像时如果进行apt操作发现以下报错
> GPG error: http://ftp.ports.debian.org/debian-ports sid InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E852514F5DF312F6
说明内置的密钥到期了,需要手工更新下密钥;下面是两种下载密钥的方式:
- 网页下载https://packages.debian.org/sid/all/debian-ports-archive-keyring/download
- wget方式 `wget http://ftp.cn.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2022.02.15_all.deb`
将密钥拷贝使用scp或者lrzsz工具到LicheeRV板上执行
> sudo dpkg -i debian-ports-archive-keyring_2022.02.15_all.deb
即可更新密钥然后可以正常进行apt更新`sudo apt-get update`
## 启动无反应
- 确认自己在使用 PhoenixCard 的时候选择的是 `启动卡`
![](./../assets/RV/flash.png)
- 对于使用Tina系统的是可以用adb终端来连接进行通信
直接将电脑与核心板相连即可
![](./../assets/RV/adb-shell.png)
- 对于debian系统只能使用串口来通信
## 86 panel 烧录后屏幕无反应/显示不对
需要在linux系统中使用下面命令来和对应的fex文件来覆盖板级配置
fex下载地址 https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/SDK/board
覆盖指令为
```bash
sudo dd if=boot_package_XXX.fex of=/dev/sdX bs=1K seek=16400
```
上面命令中的 sdX 为 TF 卡在 linux 系统中的命名。
有问题的话可以去[论坛](https://bbs.sipeed.com/)发帖
---
title: 相关问题
keywords: debian, Rv, Problam, apt, img, sipeed
---
## apt 相关
- 在使用默认debian镜像时如果进行apt操作发现以下报错
> GPG error: http://ftp.ports.debian.org/debian-ports sid InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E852514F5DF312F6
说明内置的密钥到期了,需要手工更新下密钥;下面是两种下载密钥的方式:
- 网页下载https://packages.debian.org/sid/all/debian-ports-archive-keyring/download
- wget方式 `wget http://ftp.cn.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2022.02.15_all.deb`
将密钥拷贝使用scp或者lrzsz工具到LicheeRV板上执行
> sudo dpkg -i debian-ports-archive-keyring_2022.02.15_all.deb
即可更新密钥然后可以正常进行apt更新`sudo apt-get update`
## 启动无反应
- 确认自己在使用 PhoenixCard 的时候选择的是 `启动卡`
![](./../assets/RV/flash.png)
- 对于使用Tina系统的是可以用adb终端来连接进行通信
直接将电脑与核心板相连即可
![](./../assets/RV/adb-shell.png)
- 对于debian系统只能使用串口来通信
## 86 panel 烧录后屏幕无反应/显示不对
需要在linux系统中使用下面命令来和对应的fex文件来覆盖板级配置
fex下载地址 https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/SDK/board
覆盖指令为
```bash
sudo dd if=boot_package_XXX.fex of=/dev/sdX bs=1K seek=16400
```
上面命令中的 sdX 为 TF 卡在 linux 系统中的命名。
有问题的话可以去[论坛](https://bbs.sipeed.com/)发帖

View File

@@ -1,150 +1,150 @@
---
title: LicheeRV ubuntu
keywords: ubuntu, riscv, lichee
update:
- date: 2022-12-01
version: v0.1
author: wonder
content:
- 初次编辑
---
Ubuntu 提供了可以在 LicheeRV 上面运行的镜像,它的烧录方法与并不是使用 PhoenixCard因此这边专门说明一下使用方法。
有显示器的话可以接键盘来使用命令行操作该系统,没有的话只能通过串口来操作板子。
## Ubuntu 介绍
Ubuntu 是基于另一个 Linux 发行版 Debian 发展而来,网上大多数 linux 相关的教程也是基于 ubuntu 的,这点对于新手很友好,遇到问题的时候可以比较快地找到解决办法。
因为 D1 的性能有限,所以只提供命名行版本,需要的话自行安装、适配桌面也是能有 GUI 的。
<img src="./../assets/RV/ubuntu/d1_ubuntu_desktop.jpg" alt="d1_ubuntu_desktop" width="45%">
<img src="./../assets/RV/ubuntu/d1_ubuntu_desktop_picture.jpg" alt="d1_ubuntu_desktop_picture" width="45%">
上图为 D1 Dock Pro 板卡,与普通的 Dock 底板是不同的,底板上自带了串口,可以仅使用一根数据线来进行板卡与电脑的串口通信。相关外设可以看下图的标注。
<img src="./../assets/RV/ubuntu/dock_pro_top_block.jpg" alt="dock_pro_top_block" width="45%">
<img src="./../assets/RV/ubuntu/dock_pro_bottom_block.jpg" alt="dock_pro_bottom_block" width="45%">
可以在官方淘宝店咨询卖家购得该板卡。
## 操作步骤
### 获取镜像
提供了百度网盘下载方式。
百度网盘: https://pan.baidu.com/s/1n-Y1EoOCdfV4QzaHXY61Wg
### 烧录软件
前往 [balenaEtcher](https://www.balena.io/etcher/) 官网下载软件或者[下载站](https://dl.sipeed.com/shareURL/others/balenaEtcher)下载,其中下载站仅提供 Windows 版本软件,其他系统想用这个软件自行前往 [balenaEtcher](https://www.balena.io/etcher/) 官网下载。
### 烧录系统
准备一张容量 8G 以上的内存卡,读写速度快一些的卡能带来更好的体验。
将 TF 卡与电脑连接起来,使用读卡器或者其他方式都可以。下图的电脑上的 TF 卡槽仅做示例,电脑上没有 TF 卡读取插槽的话依然是需要准备读卡器的。
<table>
<tr>
<th colspan="2"> 将 TF 卡与电脑连接 </th>
</th>
</tr>
<tr>
<td>使用读卡器来连接 TF 卡和电脑</td>
<td>直接使用电脑上的 TF 卡插槽来连接</td>
</tr>
<tr>
<td><img src="./../assets/RV/ubuntu/d1_ubuntu_sdcard_reader.jpg" alt="d1_ubuntu_sdcard_reader" ></td>
<td><img src="./../assets/RV/ubuntu/d1_ubuntu_sdcard_computer_reader.jpg" alt="d1_ubuntu_sdcard_computer_reader" ></td>
</tr>
</table>
打开 balenaEtcher选择所下载的镜像文件选择 TF 卡,点击烧录:
![d1_ubuntu_burn_image](./../assets/RV/ubuntu/d1_ubuntu_burn_image.gif)
要注意的是烧录的时候别选错了 TF 卡。
![d1_ubuntu_burn_image_sdcard_choose](./../assets/RV/ubuntu/d1_ubuntu_burn_image_sdcard_choose.png)
烧录时间有点久,烧录结束后会出现下图的提示。如果不是 Successful 的话就需要重新烧录。
![d1_ubuntu_finish_burn_image](./../assets/RV/ubuntu/d1_ubuntu_finish_burn_image.png)
## 启动系统
烧录完系统且看到 Successful 字样后,可以将 TF 卡插到板子上启动了。
![dock_pro_ubuntu](./../assets/RV/ubuntu/dock_pro_ubuntu.jpg)
使用串口可以查看启动信息,并且操作板卡。
<img src="./../assets/RV/ubuntu/d1_ubuntu_boot_opensbi.jpg" alt="d1_ubuntu_boot_opensbi" width="45%">
<img src="./../assets/RV/ubuntu/ubuntu_boot.jpg" alt="ubuntu_boot" width="45%">
等待启动一段时间后,使用 `root` 作为用户名和密码就可以登录进板卡了,
![d1_ubuntu_login](./../assets/RV/ubuntu/d1_ubuntu_login.jpg)
## 连接 wifi
然后使用 `nmcli` 命令来连接 2.4G 无线网络。
- 查看周围的 wifi
```bash
nmcli dev wifi
```
![d1_ubuntu_wifi_scan](./../assets/RV/ubuntu/d1_ubuntu_wifi_scan.jpg)
- 使用命令行来连接 wifi语法为 `nmcli dev wifi connect (网络名称) password (密码)`
```bash
nmcli dev wifi connect Sipeed_Guest password 12345678
```
![d1_ubuntu_wifi_connect](./../assets/RV/ubuntu/d1_ubuntu_wifi_connect.jpg)
出现 successfully 就表示连接上了,后面可以正常使用 `apt` 等软件了
![d1_ubuntu_install_tree](./../assets/RV/ubuntu/d1_ubuntu_install_tree.jpg)
## 点灯
在这个 ubuntu 系统上,我们可以向之前使用 tina 系统时一样,控制核心板上的 led 灯。相关代码和结果如下所示:
点亮板卡上的 LED :
```bash
echo 1 > /sys/class/leds/\:status/brightness
```
上面的命令中的 `:` 使用了 "\" 进行转义,不然会报错。
![d1_ubuntu_led_on](./../assets/RV/ubuntu/d1_ubuntu_led_on.jpg)
熄灭板卡上的 LED :
```bash
echo 0 > /sys/class/leds/\:status/brightness
```
![d1_ubuntu_led_off](./../assets/RV/ubuntu/d1_ubuntu_led_off.jpg)
## 结语
在 Ubuntu 官方所提供的镜像上[点我跳转](https://wiki.ubuntu.com/RISC-V/LicheeRV),我们这边补上了 wifi 驱动免去了自行编译的麻烦。
## 常见问题
### 没有 HDMI 输出
板卡使用 ubuntu 镜像在启动时不会直接输出 HDMI 而是会在相关的服务启动后 HDMI 屏幕在会有输出,另外部分 HDMI 屏幕不会兼容并显示出 LicheeRV HDMI 命令行。
下图是分别用串口 (ttyS0) 和 HDMI 显示器终端 (tty1) 登录 LicheeRV ubuntu 的拍照截图
---
title: LicheeRV ubuntu
keywords: ubuntu, riscv, lichee
update:
- date: 2022-12-01
version: v0.1
author: wonder
content:
- 初次编辑
---
Ubuntu 提供了可以在 LicheeRV 上面运行的镜像,它的烧录方法与并不是使用 PhoenixCard因此这边专门说明一下使用方法。
有显示器的话可以接键盘来使用命令行操作该系统,没有的话只能通过串口来操作板子。
## Ubuntu 介绍
Ubuntu 是基于另一个 Linux 发行版 Debian 发展而来,网上大多数 linux 相关的教程也是基于 ubuntu 的,这点对于新手很友好,遇到问题的时候可以比较快地找到解决办法。
因为 D1 的性能有限,所以只提供命名行版本,需要的话自行安装、适配桌面也是能有 GUI 的。
<img src="./../assets/RV/ubuntu/d1_ubuntu_desktop.jpg" alt="d1_ubuntu_desktop" width="45%">
<img src="./../assets/RV/ubuntu/d1_ubuntu_desktop_picture.jpg" alt="d1_ubuntu_desktop_picture" width="45%">
上图为 D1 Dock Pro 板卡,与普通的 Dock 底板是不同的,底板上自带了串口,可以仅使用一根数据线来进行板卡与电脑的串口通信。相关外设可以看下图的标注。
<img src="./../assets/RV/ubuntu/dock_pro_top_block.jpg" alt="dock_pro_top_block" width="45%">
<img src="./../assets/RV/ubuntu/dock_pro_bottom_block.jpg" alt="dock_pro_bottom_block" width="45%">
可以在官方淘宝店咨询卖家购得该板卡。
## 操作步骤
### 获取镜像
提供了百度网盘下载方式。
百度网盘: https://pan.baidu.com/s/1n-Y1EoOCdfV4QzaHXY61Wg
### 烧录软件
前往 [balenaEtcher](https://www.balena.io/etcher/) 官网下载软件或者[下载站](https://dl.sipeed.com/shareURL/others/balenaEtcher)下载,其中下载站仅提供 Windows 版本软件,其他系统想用这个软件自行前往 [balenaEtcher](https://www.balena.io/etcher/) 官网下载。
### 烧录系统
准备一张容量 8G 以上的内存卡,读写速度快一些的卡能带来更好的体验。
将 TF 卡与电脑连接起来,使用读卡器或者其他方式都可以。下图的电脑上的 TF 卡槽仅做示例,电脑上没有 TF 卡读取插槽的话依然是需要准备读卡器的。
<table>
<tr>
<th colspan="2"> 将 TF 卡与电脑连接 </th>
</th>
</tr>
<tr>
<td>使用读卡器来连接 TF 卡和电脑</td>
<td>直接使用电脑上的 TF 卡插槽来连接</td>
</tr>
<tr>
<td><img src="./../assets/RV/ubuntu/d1_ubuntu_sdcard_reader.jpg" alt="d1_ubuntu_sdcard_reader" ></td>
<td><img src="./../assets/RV/ubuntu/d1_ubuntu_sdcard_computer_reader.jpg" alt="d1_ubuntu_sdcard_computer_reader" ></td>
</tr>
</table>
打开 balenaEtcher选择所下载的镜像文件选择 TF 卡,点击烧录:
![d1_ubuntu_burn_image](./../assets/RV/ubuntu/d1_ubuntu_burn_image.gif)
要注意的是烧录的时候别选错了 TF 卡。
![d1_ubuntu_burn_image_sdcard_choose](./../assets/RV/ubuntu/d1_ubuntu_burn_image_sdcard_choose.png)
烧录时间有点久,烧录结束后会出现下图的提示。如果不是 Successful 的话就需要重新烧录。
![d1_ubuntu_finish_burn_image](./../assets/RV/ubuntu/d1_ubuntu_finish_burn_image.png)
## 启动系统
烧录完系统且看到 Successful 字样后,可以将 TF 卡插到板子上启动了。
![dock_pro_ubuntu](./../assets/RV/ubuntu/dock_pro_ubuntu.jpg)
使用串口可以查看启动信息,并且操作板卡。
<img src="./../assets/RV/ubuntu/d1_ubuntu_boot_opensbi.jpg" alt="d1_ubuntu_boot_opensbi" width="45%">
<img src="./../assets/RV/ubuntu/ubuntu_boot.jpg" alt="ubuntu_boot" width="45%">
等待启动一段时间后,使用 `root` 作为用户名和密码就可以登录进板卡了,
![d1_ubuntu_login](./../assets/RV/ubuntu/d1_ubuntu_login.jpg)
## 连接 wifi
然后使用 `nmcli` 命令来连接 2.4G 无线网络。
- 查看周围的 wifi
```bash
nmcli dev wifi
```
![d1_ubuntu_wifi_scan](./../assets/RV/ubuntu/d1_ubuntu_wifi_scan.jpg)
- 使用命令行来连接 wifi语法为 `nmcli dev wifi connect (网络名称) password (密码)`
```bash
nmcli dev wifi connect Sipeed_Guest password 12345678
```
![d1_ubuntu_wifi_connect](./../assets/RV/ubuntu/d1_ubuntu_wifi_connect.jpg)
出现 successfully 就表示连接上了,后面可以正常使用 `apt` 等软件了
![d1_ubuntu_install_tree](./../assets/RV/ubuntu/d1_ubuntu_install_tree.jpg)
## 点灯
在这个 ubuntu 系统上,我们可以向之前使用 tina 系统时一样,控制核心板上的 led 灯。相关代码和结果如下所示:
点亮板卡上的 LED :
```bash
echo 1 > /sys/class/leds/\:status/brightness
```
上面的命令中的 `:` 使用了 "\" 进行转义,不然会报错。
![d1_ubuntu_led_on](./../assets/RV/ubuntu/d1_ubuntu_led_on.jpg)
熄灭板卡上的 LED :
```bash
echo 0 > /sys/class/leds/\:status/brightness
```
![d1_ubuntu_led_off](./../assets/RV/ubuntu/d1_ubuntu_led_off.jpg)
## 结语
在 Ubuntu 官方所提供的镜像上[点我跳转](https://wiki.ubuntu.com/RISC-V/LicheeRV),我们这边补上了 wifi 驱动免去了自行编译的麻烦。
## 常见问题
### 没有 HDMI 输出
板卡使用 ubuntu 镜像在启动时不会直接输出 HDMI 而是会在相关的服务启动后 HDMI 屏幕在会有输出,另外部分 HDMI 屏幕不会兼容并显示出 LicheeRV HDMI 命令行。
下图是分别用串口 (ttyS0) 和 HDMI 显示器终端 (tty1) 登录 LicheeRV ubuntu 的拍照截图
![d1_ubuntu_console_hdmi](./../assets/RV/ubuntu/d1_ubuntu_console_hdmi.jpg)

View File

@@ -1,387 +1,387 @@
# 基础上手
## Dock 相关使用
### 连接板子
- 我们可以很容易看到底板背部上有串口的 TX 和 RX 引脚标识。因此可以使用 ttl 电平的串口来使板子与电脑进行通信Tina和Debian均适用
- 对于 Tina 系统可以使用核心板上的 typec 接口和电脑上的 adb 终端来进行连接
- 对于 Debian 系统可以外接键盘和鼠标来直接操作
#### Debian 相关事项
启动会比较慢取决于TF卡的速度。
用户名为 `root` 密码是 `licheepi`
**使用串口与 debian 系统连接的话会一直打印内核信息。解决方法是:**
- 使用root权限编辑 `/etc/rsyslog.conf` 并且把文件最后一行中的 `*.emerg` 改成 `#*.emerg`
- 重启 rsyslog 服务,直接执行 `/etc/init.d/rsyslog restart` 即可
**想要在图形化界面中调出命令行的方法:**
键盘执行 `Alt+F2` 打开运行,接着在里面输入 `termit` 即可打开命令行终端。
### 点灯示例
当我们成功进入系统(Tina和debian均可)后,就可以进行基础的点灯操作啦!
核心板的螺丝固定焊盘旁有一颗 LED ,查看尺寸图很容易看到:
<details>
<summary><font color="#4F84FF">点开查看尺寸图</font></summary>
<img src="./../assets/RV/rv_coreboard_dimension.png">
</details>
从[原理图](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/HDK/2_Schematic)可以查到 LED 连接的是 PC0 引脚,根据简单的公式 ('C'-'A')x32 + 0 = 2x32+0 = 64
当然我们也可以查看 pinmux-pins 文件中的内容来知道 IO 复用情况表:
```bash
cat /sys/kernel/debug/pinctrl/2000000.pinctrl/pinmux-pins
...
pin 64 (PC0): device 2008000.ledc function ledc group PC0 #这里可以看到是LED引脚
pin 65 (PC1): UNCLAIMED
pin 66 (PC2): UNCLAIMED
pin 67 (PC3): UNCLAIMED
pin 68 (PC4): UNCLAIMED
pin 69 (PC5): UNCLAIMED
pin 70 (PC6): UNCLAIMED
pin 71 (PC7): UNCLAIMED
...
```
我们先导出该 GPIO
```bash
echo 64 > /sys/class/gpio/export #导出GPIO64
```
然后再将该 IO 置为输出状态,即可操作其电平:
```bash
echo out>/sys/class/gpio/gpio64/direction #设置IO为输出
echo 1 > /sys/class/gpio/gpio64/value #输出高电平
echo 0 > /sys/class/gpio/gpio64/value #输出低电平
```
上面的是最简单的使用 IO 的操作了,就不细说了吧。
不使用IO的话就取消导出
```bash
echo 64 > /sys/class/gpio/unexport #取消导出GPIO64
```
至此我们就成功在 RISC-V 64 D1上点灯啦~
你也可以对 串行RGB LED WS2812 进行花式点灯:
```bash
echo 255 > /sys/class/leds/sunxi_led0r/brightness #红灯亮
echo 0 > /sys/class/leds/sunxi_led0r/brightness #红灯灭
echo 255 > /sys/class/leds/sunxi_led0g/brightness #绿灯亮
echo 0 > /sys/class/leds/sunxi_led0g/brightness #绿灯灭
echo 255 > /sys/class/leds/sunxi_led0b/brightness #蓝灯亮
echo 0 > /sys/class/leds/sunxi_led0b/brightness #蓝灯灭
```
### 外设功能验证
#### 音频功能
- 录音设备查看
使用 `arecord -l` 命令
```bash
root@MaixLinux:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC 2030000.codec-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 1: snddmic [snddmic], device 0: 2031000.dmic-dmic-hifi dmic-hifi-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 2: sndhdmi [sndhdmi], device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
```
- 播放设备查看
使用 `aplay -l` 命令
```bash
root@MaixLinux:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC 2030000.codec-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 2: sndhdmi [sndhdmi], device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
```
录音播放测试:
```bash
arecord -D hw:1,0 -f S16_LE -t wav -d 3 t.wav #录音
```
```bash
aplay -D hw:0,0 t.wav #播放录音
```
另外可以使用 alsamixer 进行音量调整
<details>
<summary><font color="#4F84FF">点开查看运行alsamixer</font></summary>
<pre><code class="language-shell">┌────────────────────────────── AlsaMixer v1.2.4 ──────────────────────────────┐
│ Card: audiocodec F1: Help │
│ Chip: F2: System information │
│ View: F3:[Playback] F4: Capture F5: All F6: Select sound card │
│ Item: Headphone [dB gain: -24.00] Esc: Exit │
│ │
│ ┌──┐ ┌──┐ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ →
│ │ │ │ │ →
│ │ │ │▒▒│ →
│ │ │ │▒▒│ →
│ │ │ │▒▒│ →
│ │ │ │▒▒│ →
│ │▒▒│ │▒▒│ →
│ │▒▒│ │▒▒│ │
│ │▒▒│ │▒▒│ │
│ ├──┤ ┌──┐ ┌──┐ Off ┌──┐ ┌──┐ ┌──┐ └──┘ │
│ │MM│ │MM│ │MM│ │MM│ │MM│ │MM│ │
│ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ │
│ 25 63 │
&lt;Headphon>FMINL ga FMINR ga ADC1 ADC ADC1 Inp ADC1 Inp ADC1 Inp ADC1 vol │
└──────────────────────────────────────────────────────────────────────────────┘</code></pre>
</details>
#### USB功能
默认内核支持外挂U盘的驱动插上U盘后可以使用 `fdisk -l` 指令查看到新增的 /dev/sda 设备 <br>
如果U盘没有被格式化应该使用mkfs.vfat指令来格式化U盘再使用mount指令挂载U盘。
#### 无线网络
##### **使用 Tina 系统**
LicheeRV 底板默认使用 XR829 或者 RTL8723BS wifi 模块,可以使用以下指令进行联网操作
先配置热点信息:需要手动在 /etc/wifi 目录下的 wpa_supplicant.conf 文件里添加下面内容
```bash
network={
ssid="WiFi_name"
psk="WiFi_password"
}
```
配置完成后重启一下(执行 `reboot` 命令即可),重启完成后执行 `ifconfig wlan0 up; udhcpc -iwlan0 &` 后即可连上对应的wifi。
连上网络后,就可以使用 ssh (自己记得设置一下密码)来远程登录板卡,或者使用 scp 来进行文件传输。
##### **使用 debian 系统**
> Debian 不支持命令行联网
点击系统菜单--Preferenes--Connman Settings打开 Network Settings ,查看网络属性中的 Interface 是否为 wlan0。双击网络名称并输入 WiFi 密码进行连接
![](./../assets/RV/wifi-1.jpg)
成功连接网络之后,通过系统系统菜单--Preferenes--Connman Settings查看网络属性查看网络的 IP 地址
![](./../assets/RV/wifi-2.jpg)
#### 屏显触摸
LicheeRV系列可以使用以下显示屏
- SPI屏 1.14寸屏(TODO)
- RGB屏 4.3寸 480x2725.0寸 800x480
- RGB+SPI屏 4.0寸 480x480(st7701s); 4.0寸 720x720(nv3052c)
- MIPI屏 8.0寸 1280x720(ILI9881C)
如果需要调试屏幕驱动,可以使用以下指令查看屏幕驱动信息:
以下信息根据烧录镜像的不同而打印的不一样。
```bash
cat /sys/class/disp/disp/attr/sys
screen 0:
de_rate 300000000 hz, ref_fps:60
mgr0: 480x480 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
lcd output backlight( 50) fps:59.5 esd level(0) freq(60) pos(0) reset(0) 480x 480
err:0 skip:184 irq:230715 vsync:0 vsync_skip:0
BUF enable ch[1] lyr[0] z[16] prem[N] a[globl 255] fmt[ 0] fb[ 480, 480; 480, 480; 480, 480] crop[ 0, 0, 480, 480] frame[ 0, 0, 480, 480] addr[ffe00000, 0, 0] flags[0x 0] trd[0,0]
```
屏幕彩条测试:`echo 1 > /sys/class/disp/disp/attr/colorbar`
#### 视频播放
我们可以尝试在LicheeRV上播放BadApple啦~ [视频文件下载](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/MP4)
Tina镜像中内置了ffmpeg软件包ffmpeg是强大的多媒体库可以用于录屏或者播放
录屏指令:
```bash
ffmpeg -f fbdev -framerate 10 -i /dev/fb0 record.avi
```
播放指令分别是扬声器播放音频和hdmi播放音频
```bash
ffmpeg -i /mnt/UDISK/badapple_640480_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:0,0
ffmpeg -i /mnt/UDISK/badapple_640480_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:2,0
```
这里由于是CPU软解所以测试最高分辨率约为720x540 再高会变卡
<iframe src="https://player.bilibili.com/player.html?aid=209723771&bvid=BV1xa411r7PP&cid=457742249&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
#### 麦克风阵列(仅debian系统)
将板子与麦克风阵列连接好后(需要注意不要将排线接反和不要把引脚接反。),直接执行内置的 `micarr_0609` 指令即可即
```bash
sudo ./micarr_0609
```
有麦克风阵列相关的二次开发需求,可以联系 support@sipeed.com
![](./../assets/RV/mic_array_picture.jpg)
<iframe src="https://player.bilibili.com/player.html?aid=849734125&bvid=BV1HL4y1H7nv&cid=457750392&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
## 86Panel
如果烧录后显示不正确或者不对劲的话,前往[相关问题](./problems.md)纠错一下
下面仅进行简单的操作。另外上面 dock 板子的操作同样适用于 86Panel。
对于使用 tina 系统的是没有 GUI 界面的。因此下面使用 debian 简单展示一下屏幕
烧录 debian 系统后插卡启动等待2分钟左右屏幕上就会显示登录界面
![登录界面](./../assets/RV/LicheeRV_login_picture.png "登录界面")
输入用户名 sipeed密码 licheepi即可进入桌面 使用USB HOST口外接键盘鼠标进行输入
![桌面样式](./../assets/RV/desktop_appearance.png "桌面样式")
进入桌面后可以进行一些基础操作
- Alt+F2 可以打开 运行 ,接着输入 termit 即可打开命令行终端
![基础操作](./../assets/RV/Basic_operation.png "基础操作")
接下来让我们尝试在Debian下跑一下Hello World:
![运行自制程序](./../assets/RV/Run_HelloWorld.png "运行自制程序")
另有720P高清屏的效果对比有米的朋友可以考虑入手。
注意使用的时候应当烧录一下板级配置文件来成功显示,具体请看[86panel显示异常](problems.html#86-panel-烧录后屏幕无反应显示不对)
实际显示效果如下:
![高清显示_1](./../assets/RV/display_1.png)
![高清显示_2](./../assets/RV/display_2.png)
### 点灯操作
由于 86Panel 的核心板的 LED 与底板外设复用了,因此不能直接使用核心板的灯了。
将直插型 LED 正确地与预留的 IO 焊盘连接好后可以参考 dock 底板点灯的方式来点灯。
### 连接网络
#### 有线网络
86 Panel 支持百兆网络,使用套餐附送的网线接上板子网口后,执行以下指令来连接有线网络
```bash
ifconfig eth0 up
udhcpc -ieth0
```
#### 无线网络
可以参考 Dock 底板连接[网络的方法](#无线网络)
### 其他
与 dock 底板相关操作一致
### 触摸屏测试
<font color=#16B2C>仅 tina 系统内置 触摸demo</font>
如果你购买的是86面板套餐可以使用 ts_test 进行触摸测试。
> 注意触摸驱动有瑕疵ts_test测试时松开后光标会不动但是终端仍会正常打印信息
```bash
root@MaixLinux:/# ts
ts_calibrate ts_harvest ts_print_mt ts_test ts_verify
ts_finddev ts_print ts_print_raw ts_test_mt tshowimg
```
## BSP SDK 开发指南
为了方便用户自行开发,矽速整理发布了 LicheeRV 的bsp开发docker镜像大家使用该镜像可以快速开始D1的系统级开发。
国内用户:[百度网盘](https://pan.baidu.com/s/1QJTaDw6kkTM4c_GAlmG0hg) 提取码wbef
国外用户:[Mega](https://mega.nz/folder/lx4CyZBA#PiFhY7oSVQ3gp2ZZ_AnwYA)
在网盘中下载对应的docker文件后解压到tar文件后导入到docker
```bash
gzip -d licheerv_d1_compile.tar.gz #解压成tar文件
docker import licheerv_d1_compile.tar licheerv_d1_compile:latest #docker导入镜像
```
成功运行后应当重新登陆一次;用户名为 `nihao`,密码为 `sipeed123`
```bash
sudo docker run -it licheerv_d1_compile:latest /bin/bash # 交互模式启动D1镜像编译环境
login #切换用户
```
进入容器后的基础编译操作为:
```bash
cd ~/sdk/tina-d1-open_new/
source build/envsetup.sh
lunch #选1
make menuconfig #去掉里面的 alsa-plugin 选项,否则编译不过
# alsa-plugins 在 menuconfig 中的位置如下
#.
#└── Libraries
# └── alsa-plugins
make -j8 #按实际CPU性能编译
pack #打包
```
SDK内置了一些版型的dts你可以自行选择编辑
device/config/chips/d1/configs/nezha/board_xxx.dts
其他SDK的开发说明可以参见全志开发平台上下载的相关文档
https://open.allwinnertech.com/
也可以加全志交流QQ群`498263967`
如果需要自己下载SDK开发参考全志在线相关网页https://d1.docs.aw-ol.com/
## WAFT 开发指南
# 基础上手
## Dock 相关使用
### 连接板子
- 我们可以很容易看到底板背部上有串口的 TX 和 RX 引脚标识。因此可以使用 ttl 电平的串口来使板子与电脑进行通信Tina和Debian均适用
- 对于 Tina 系统可以使用核心板上的 typec 接口和电脑上的 adb 终端来进行连接
- 对于 Debian 系统可以外接键盘和鼠标来直接操作
#### Debian 相关事项
启动会比较慢取决于TF卡的速度。
用户名为 `root` 密码是 `licheepi`
**使用串口与 debian 系统连接的话会一直打印内核信息。解决方法是:**
- 使用root权限编辑 `/etc/rsyslog.conf` 并且把文件最后一行中的 `*.emerg` 改成 `#*.emerg`
- 重启 rsyslog 服务,直接执行 `/etc/init.d/rsyslog restart` 即可
**想要在图形化界面中调出命令行的方法:**
键盘执行 `Alt+F2` 打开运行,接着在里面输入 `termit` 即可打开命令行终端。
### 点灯示例
当我们成功进入系统(Tina和debian均可)后,就可以进行基础的点灯操作啦!
核心板的螺丝固定焊盘旁有一颗 LED ,查看尺寸图很容易看到:
<details>
<summary><font color="#4F84FF">点开查看尺寸图</font></summary>
<img src="./../assets/RV/rv_coreboard_dimension.png">
</details>
从[原理图](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/HDK/2_Schematic)可以查到 LED 连接的是 PC0 引脚,根据简单的公式 ('C'-'A')x32 + 0 = 2x32+0 = 64
当然我们也可以查看 pinmux-pins 文件中的内容来知道 IO 复用情况表:
```bash
cat /sys/kernel/debug/pinctrl/2000000.pinctrl/pinmux-pins
...
pin 64 (PC0): device 2008000.ledc function ledc group PC0 #这里可以看到是LED引脚
pin 65 (PC1): UNCLAIMED
pin 66 (PC2): UNCLAIMED
pin 67 (PC3): UNCLAIMED
pin 68 (PC4): UNCLAIMED
pin 69 (PC5): UNCLAIMED
pin 70 (PC6): UNCLAIMED
pin 71 (PC7): UNCLAIMED
...
```
我们先导出该 GPIO
```bash
echo 64 > /sys/class/gpio/export #导出GPIO64
```
然后再将该 IO 置为输出状态,即可操作其电平:
```bash
echo out>/sys/class/gpio/gpio64/direction #设置IO为输出
echo 1 > /sys/class/gpio/gpio64/value #输出高电平
echo 0 > /sys/class/gpio/gpio64/value #输出低电平
```
上面的是最简单的使用 IO 的操作了,就不细说了吧。
不使用IO的话就取消导出
```bash
echo 64 > /sys/class/gpio/unexport #取消导出GPIO64
```
至此我们就成功在 RISC-V 64 D1上点灯啦~
你也可以对 串行RGB LED WS2812 进行花式点灯:
```bash
echo 255 > /sys/class/leds/sunxi_led0r/brightness #红灯亮
echo 0 > /sys/class/leds/sunxi_led0r/brightness #红灯灭
echo 255 > /sys/class/leds/sunxi_led0g/brightness #绿灯亮
echo 0 > /sys/class/leds/sunxi_led0g/brightness #绿灯灭
echo 255 > /sys/class/leds/sunxi_led0b/brightness #蓝灯亮
echo 0 > /sys/class/leds/sunxi_led0b/brightness #蓝灯灭
```
### 外设功能验证
#### 音频功能
- 录音设备查看
使用 `arecord -l` 命令
```bash
root@MaixLinux:~# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC 2030000.codec-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 1: snddmic [snddmic], device 0: 2031000.dmic-dmic-hifi dmic-hifi-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 2: sndhdmi [sndhdmi], device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
```
- 播放设备查看
使用 `aplay -l` 命令
```bash
root@MaixLinux:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: audiocodec [audiocodec], device 0: SUNXI-CODEC 2030000.codec-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
card 2: sndhdmi [sndhdmi], device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
Subdevices: 1/1
Subdevice 0: subdevice 0
```
录音播放测试:
```bash
arecord -D hw:1,0 -f S16_LE -t wav -d 3 t.wav #录音
```
```bash
aplay -D hw:0,0 t.wav #播放录音
```
另外可以使用 alsamixer 进行音量调整
<details>
<summary><font color="#4F84FF">点开查看运行alsamixer</font></summary>
<pre><code class="language-shell">┌────────────────────────────── AlsaMixer v1.2.4 ──────────────────────────────┐
│ Card: audiocodec F1: Help │
│ Chip: F2: System information │
│ View: F3:[Playback] F4: Capture F5: All F6: Select sound card │
│ Item: Headphone [dB gain: -24.00] Esc: Exit │
│ │
│ ┌──┐ ┌──┐ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ →
│ │ │ │ │ →
│ │ │ │▒▒│ →
│ │ │ │▒▒│ →
│ │ │ │▒▒│ →
│ │ │ │▒▒│ →
│ │▒▒│ │▒▒│ →
│ │▒▒│ │▒▒│ │
│ │▒▒│ │▒▒│ │
│ ├──┤ ┌──┐ ┌──┐ Off ┌──┐ ┌──┐ ┌──┐ └──┘ │
│ │MM│ │MM│ │MM│ │MM│ │MM│ │MM│ │
│ └──┘ └──┘ └──┘ └──┘ └──┘ └──┘ │
│ 25 63 │
&lt;Headphon>FMINL ga FMINR ga ADC1 ADC ADC1 Inp ADC1 Inp ADC1 Inp ADC1 vol │
└──────────────────────────────────────────────────────────────────────────────┘</code></pre>
</details>
#### USB功能
默认内核支持外挂U盘的驱动插上U盘后可以使用 `fdisk -l` 指令查看到新增的 /dev/sda 设备 <br>
如果U盘没有被格式化应该使用mkfs.vfat指令来格式化U盘再使用mount指令挂载U盘。
#### 无线网络
##### **使用 Tina 系统**
LicheeRV 底板默认使用 XR829 或者 RTL8723BS wifi 模块,可以使用以下指令进行联网操作
先配置热点信息:需要手动在 /etc/wifi 目录下的 wpa_supplicant.conf 文件里添加下面内容
```bash
network={
ssid="WiFi_name"
psk="WiFi_password"
}
```
配置完成后重启一下(执行 `reboot` 命令即可),重启完成后执行 `ifconfig wlan0 up; udhcpc -iwlan0 &` 后即可连上对应的wifi。
连上网络后,就可以使用 ssh (自己记得设置一下密码)来远程登录板卡,或者使用 scp 来进行文件传输。
##### **使用 debian 系统**
> Debian 不支持命令行联网
点击系统菜单--Preferenes--Connman Settings打开 Network Settings ,查看网络属性中的 Interface 是否为 wlan0。双击网络名称并输入 WiFi 密码进行连接
![](./../assets/RV/wifi-1.jpg)
成功连接网络之后,通过系统系统菜单--Preferenes--Connman Settings查看网络属性查看网络的 IP 地址
![](./../assets/RV/wifi-2.jpg)
#### 屏显触摸
LicheeRV系列可以使用以下显示屏
- SPI屏 1.14寸屏(TODO)
- RGB屏 4.3寸 480x2725.0寸 800x480
- RGB+SPI屏 4.0寸 480x480(st7701s); 4.0寸 720x720(nv3052c)
- MIPI屏 8.0寸 1280x720(ILI9881C)
如果需要调试屏幕驱动,可以使用以下指令查看屏幕驱动信息:
以下信息根据烧录镜像的不同而打印的不一样。
```bash
cat /sys/class/disp/disp/attr/sys
screen 0:
de_rate 300000000 hz, ref_fps:60
mgr0: 480x480 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
lcd output backlight( 50) fps:59.5 esd level(0) freq(60) pos(0) reset(0) 480x 480
err:0 skip:184 irq:230715 vsync:0 vsync_skip:0
BUF enable ch[1] lyr[0] z[16] prem[N] a[globl 255] fmt[ 0] fb[ 480, 480; 480, 480; 480, 480] crop[ 0, 0, 480, 480] frame[ 0, 0, 480, 480] addr[ffe00000, 0, 0] flags[0x 0] trd[0,0]
```
屏幕彩条测试:`echo 1 > /sys/class/disp/disp/attr/colorbar`
#### 视频播放
我们可以尝试在LicheeRV上播放BadApple啦~ [视频文件下载](https://dl.sipeed.com/shareURL/LICHEE/D1/Lichee_RV/MP4)
Tina镜像中内置了ffmpeg软件包ffmpeg是强大的多媒体库可以用于录屏或者播放
录屏指令:
```bash
ffmpeg -f fbdev -framerate 10 -i /dev/fb0 record.avi
```
播放指令分别是扬声器播放音频和hdmi播放音频
```bash
ffmpeg -i /mnt/UDISK/badapple_640480_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:0,0
ffmpeg -i /mnt/UDISK/badapple_640480_xvid.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:2,0
```
这里由于是CPU软解所以测试最高分辨率约为720x540 再高会变卡
<iframe src="https://player.bilibili.com/player.html?aid=209723771&bvid=BV1xa411r7PP&cid=457742249&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
#### 麦克风阵列(仅debian系统)
将板子与麦克风阵列连接好后(需要注意不要将排线接反和不要把引脚接反。),直接执行内置的 `micarr_0609` 指令即可即
```bash
sudo ./micarr_0609
```
有麦克风阵列相关的二次开发需求,可以联系 support@sipeed.com
![](./../assets/RV/mic_array_picture.jpg)
<iframe src="https://player.bilibili.com/player.html?aid=849734125&bvid=BV1HL4y1H7nv&cid=457750392&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
## 86Panel
如果烧录后显示不正确或者不对劲的话,前往[相关问题](./problems.md)纠错一下
下面仅进行简单的操作。另外上面 dock 板子的操作同样适用于 86Panel。
对于使用 tina 系统的是没有 GUI 界面的。因此下面使用 debian 简单展示一下屏幕
烧录 debian 系统后插卡启动等待2分钟左右屏幕上就会显示登录界面
![登录界面](./../assets/RV/LicheeRV_login_picture.png "登录界面")
输入用户名 sipeed密码 licheepi即可进入桌面 使用USB HOST口外接键盘鼠标进行输入
![桌面样式](./../assets/RV/desktop_appearance.png "桌面样式")
进入桌面后可以进行一些基础操作
- Alt+F2 可以打开 运行 ,接着输入 termit 即可打开命令行终端
![基础操作](./../assets/RV/Basic_operation.png "基础操作")
接下来让我们尝试在Debian下跑一下Hello World:
![运行自制程序](./../assets/RV/Run_HelloWorld.png "运行自制程序")
另有720P高清屏的效果对比有米的朋友可以考虑入手。
注意使用的时候应当烧录一下板级配置文件来成功显示,具体请看[86panel显示异常](problems.html#86-panel-烧录后屏幕无反应显示不对)
实际显示效果如下:
![高清显示_1](./../assets/RV/display_1.png)
![高清显示_2](./../assets/RV/display_2.png)
### 点灯操作
由于 86Panel 的核心板的 LED 与底板外设复用了,因此不能直接使用核心板的灯了。
将直插型 LED 正确地与预留的 IO 焊盘连接好后可以参考 dock 底板点灯的方式来点灯。
### 连接网络
#### 有线网络
86 Panel 支持百兆网络,使用套餐附送的网线接上板子网口后,执行以下指令来连接有线网络
```bash
ifconfig eth0 up
udhcpc -ieth0
```
#### 无线网络
可以参考 Dock 底板连接[网络的方法](#无线网络)
### 其他
与 dock 底板相关操作一致
### 触摸屏测试
<font color=#16B2C>仅 tina 系统内置 触摸demo</font>
如果你购买的是86面板套餐可以使用 ts_test 进行触摸测试。
> 注意触摸驱动有瑕疵ts_test测试时松开后光标会不动但是终端仍会正常打印信息
```bash
root@MaixLinux:/# ts
ts_calibrate ts_harvest ts_print_mt ts_test ts_verify
ts_finddev ts_print ts_print_raw ts_test_mt tshowimg
```
## BSP SDK 开发指南
为了方便用户自行开发,矽速整理发布了 LicheeRV 的bsp开发docker镜像大家使用该镜像可以快速开始D1的系统级开发。
国内用户:[百度网盘](https://pan.baidu.com/s/1QJTaDw6kkTM4c_GAlmG0hg) 提取码wbef
国外用户:[Mega](https://mega.nz/folder/lx4CyZBA#PiFhY7oSVQ3gp2ZZ_AnwYA)
在网盘中下载对应的docker文件后解压到tar文件后导入到docker
```bash
gzip -d licheerv_d1_compile.tar.gz #解压成tar文件
docker import licheerv_d1_compile.tar licheerv_d1_compile:latest #docker导入镜像
```
成功运行后应当重新登陆一次;用户名为 `nihao`,密码为 `sipeed123`
```bash
sudo docker run -it licheerv_d1_compile:latest /bin/bash # 交互模式启动D1镜像编译环境
login #切换用户
```
进入容器后的基础编译操作为:
```bash
cd ~/sdk/tina-d1-open_new/
source build/envsetup.sh
lunch #选1
make menuconfig #去掉里面的 alsa-plugin 选项,否则编译不过
# alsa-plugins 在 menuconfig 中的位置如下
#.
#└── Libraries
# └── alsa-plugins
make -j8 #按实际CPU性能编译
pack #打包
```
SDK内置了一些版型的dts你可以自行选择编辑
device/config/chips/d1/configs/nezha/board_xxx.dts
其他SDK的开发说明可以参见全志开发平台上下载的相关文档
https://open.allwinnertech.com/
也可以加全志交流QQ群`498263967`
如果需要自己下载SDK开发参考全志在线相关网页https://d1.docs.aw-ol.com/
## WAFT 开发指南
TODO

View File

@@ -1,107 +1,107 @@
---
title: LicheeRV Nano
keywords: riscv, licheerv,nano
update:
- date: 2024-1-24
version: v0.1
author: BuGu
content:
- Release docs
- date: 2024-1-26
version: v0.2
author: BuGu
content:
- Update docs
- date: 2024-4-9
version: v1.0
author: BuGu
content:
- Update docs
---
## 简介
LicheeRV Nano 是一款迷你尺寸的开发板仅22.86*35.56mm搭载算能SG2002处理器大核1GHZ RISC-V/ARM可选小核700MHZ RISC-V256MB DDR3内存内置 1Tops NPU板载MIPI-CSI、MIPI-DSI、SDIO、ETH、USB、SPI、UART、I2C等丰富的接口可扩展多种多样的应用直插/半孔设计,方便量产贴片。
![](./../assets/RV_Nano/intro/RV_Nano_1.jpg)
## 参数
| 项目 | 参数 |
| --- | --- |
| CPU | 算能 SG2002 <br>大核1GHz RISC-V C906 / ARM A53 二选一; <br>小核700MHz RISC-V C906<br>低功耗核25300M 8051 |
| NPU | 1TOPS INT8支持 BF16 |
| 内存 | 内封 2Gbit (256MByte) DDR3 |
| 存储 | TF卡 / SD NAND 二选一启动 SD NAND 焊盘在 TF 卡槽下)|
| 视频接口 | 视频输出2 lane MIPI DSI 输出,标准 31pin 接口,支持 6pin 电容触摸屏 <br>视频输入: 4 lane MIPI CSI 输入22Pin 接口,支持拆分双路 CSI |
| 音频接口 | 音频输出: 板载PA功放可在排针上直接连接1W以内的喇叭 <br>音频输入: 板载模拟硅麦,可直接收音 |
| 有线连接 | E 后缀版本支持百兆 RJ45 连接器 |
| 无线连接 | W 后缀版本支持 2.4G / 5.8G 双频 WiFi6 + BLE5.4 |
| USB | 1 x USB2.0 OTG Type-C |
| IO接口 | 2 x 14pin 2.54 插针接口,间距 800mil可直插面包板 |
| 按键 | 1 x RST 按键 + 1 x BOOT 按键 |
| 指示灯 | 1 x 电源 LED1 x 用户 LED |
|操作系统 | Buildroot Linux / Debian |
| 尺寸 | 22.86*35.56mm |
![](./../assets/RV_Nano/intro/RV_Nano_3.jpg)
![](./../assets/RV_Nano/intro/RV_Nano_4.jpg)
## 版本对比
| **配置** | **基础系统** | **麦克风/扬声器** | **以太网** | **WiFi6/BT5** |
| :---: | :---: | :---: | :---: | :---: |
| **LicheeRV-Nano-B** | Y | Y | N | N |
| **LicheeRV-Nano-E** | Y | Y | Y | N |
| **LicheeRV-Nano-W** | Y | Y | N | Y |
| **LicheeRV-Nano-WE** | Y | Y | Y | Y |
## 硬件资料
规格书、原理图、尺寸图等均可在这里找到:[点击这里](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano)
+ [板卡规格书](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/01_Specification)
+ [板卡原理图](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/02_Schematic)
+ [板卡点位图](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/03_Designator_drawing)
+ [板卡尺寸图](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/04_Mechanical_drawing)
+ [3D 模型文件](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/06_3D_file)
+ [核心板封装](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/05_PCB_Lib)
+ [板卡芯片资料](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/07_Datasheet)
## 软件资料
+ [LicheeRV Nano SDK](https://github.com/sipeed/LicheeRV-Nano-Build)
## 算能资料汇总
+ [datasheet](https://github.com/sophgo/sophgo-doc/releases)
+ [编译工具链下载地址](https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz)
+ [SDK开发文档汇总](https://developer.sophgo.com/thread/471.html)
+ [HDK 开发文档汇总](https://developer.sophgo.com/thread/472.html)
+ [TPU SDK 开发资料汇总](https://developer.sophgo.com/thread/473.html)
+ [TDL SDK开发指南提供的常用 AI 模型算法,基于 TPU SDK 的应用封装)](https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/zh/01.software/TPU/TDL_SDK_Software_Development_Guide/build/TDLSDKSoftwareDevelopmentGuide_zh.pdf)
+ [TDL SDK 开发资料汇总](https://developer.sophgo.com/thread/556.html)
## 版本区分
LicheeRV Nano 先后生产两个版本的硬件分别为内测版PCB识别号70405量产版70415。两者外观和性能上存在些许差异
![](./../assets/RV_Nano/intro/CMP-70405-70415.jpg)
1. 4*0201电阻修改为0402排阻方便焊接
2. WiFi模组更换为有屏蔽罩的版本
3. 增大电源处电容规格,提升电源质量;
4. 移动两颗电容到TF卡下支撑TF卡方便用户拔插
5. 用丝印明确标出电阻位置,方便用户修改;
6. 标明PCB版本号。
## 注意事项
+ 内测版硬件70405NPU 仅支持工作在0.5T下1.0T下运行不保证板卡运行的稳定性
+ 内测版硬件70405的WIFI尚未完善匹配速率较低敬请谅解
+ 若购买摄像头配件或WE版本套餐包装内随附螺丝、焊接铜柱和螺丝刀为避免焊接时烫伤请参照[摄像头、WE网口小板安装指南](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/2_unbox.html#WE%E5%B0%8F%E6%9D%BF%E7%9A%84%E5%AE%89%E8%A3%85)
+ 若购买3寸、4寸、10.1寸屏幕配件,包装内随附屏幕转接板以及排线,请参照[屏幕安装指南](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/2_unbox.html#%E5%B1%8F%E5%B9%95%E7%9A%84%E5%AE%89%E8%A3%85)
+ 内测版WiFi模块旁有两颗电容距离较近生产时存在贴合的可能因引脚网络相同无需担心短路问题
![](./../assets/RV_Nano/intro/RV_Nano_5.jpg)
---
title: LicheeRV Nano
keywords: riscv, licheerv,nano
update:
- date: 2024-1-24
version: v0.1
author: BuGu
content:
- Release docs
- date: 2024-1-26
version: v0.2
author: BuGu
content:
- Update docs
- date: 2024-4-9
version: v1.0
author: BuGu
content:
- Update docs
---
## 简介
LicheeRV Nano 是一款迷你尺寸的开发板仅22.86*35.56mm搭载算能SG2002处理器大核1GHZ RISC-V/ARM可选小核700MHZ RISC-V256MB DDR3内存内置 1Tops NPU板载MIPI-CSI、MIPI-DSI、SDIO、ETH、USB、SPI、UART、I2C等丰富的接口可扩展多种多样的应用直插/半孔设计,方便量产贴片。
![](./../assets/RV_Nano/intro/RV_Nano_1.jpg)
## 参数
| 项目 | 参数 |
| --- | --- |
| CPU | 算能 SG2002 <br>大核1GHz RISC-V C906 / ARM A53 二选一; <br>小核700MHz RISC-V C906<br>低功耗核25300M 8051 |
| NPU | 1TOPS INT8支持 BF16 |
| 内存 | 内封 2Gbit (256MByte) DDR3 |
| 存储 | TF卡 / SD NAND 二选一启动 SD NAND 焊盘在 TF 卡槽下)|
| 视频接口 | 视频输出2 lane MIPI DSI 输出,标准 31pin 接口,支持 6pin 电容触摸屏 <br>视频输入: 4 lane MIPI CSI 输入22Pin 接口,支持拆分双路 CSI |
| 音频接口 | 音频输出: 板载PA功放可在排针上直接连接1W以内的喇叭 <br>音频输入: 板载模拟硅麦,可直接收音 |
| 有线连接 | E 后缀版本支持百兆 RJ45 连接器 |
| 无线连接 | W 后缀版本支持 2.4G / 5.8G 双频 WiFi6 + BLE5.4 |
| USB | 1 x USB2.0 OTG Type-C |
| IO接口 | 2 x 14pin 2.54 插针接口,间距 800mil可直插面包板 |
| 按键 | 1 x RST 按键 + 1 x BOOT 按键 |
| 指示灯 | 1 x 电源 LED1 x 用户 LED |
|操作系统 | Buildroot Linux / Debian |
| 尺寸 | 22.86*35.56mm |
![](./../assets/RV_Nano/intro/RV_Nano_3.jpg)
![](./../assets/RV_Nano/intro/RV_Nano_4.jpg)
## 版本对比
| **配置** | **基础系统** | **麦克风/扬声器** | **以太网** | **WiFi6/BT5** |
| :---: | :---: | :---: | :---: | :---: |
| **LicheeRV-Nano-B** | Y | Y | N | N |
| **LicheeRV-Nano-E** | Y | Y | Y | N |
| **LicheeRV-Nano-W** | Y | Y | N | Y |
| **LicheeRV-Nano-WE** | Y | Y | Y | Y |
## 硬件资料
规格书、原理图、尺寸图等均可在这里找到:[点击这里](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano)
+ [板卡规格书](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/01_Specification)
+ [板卡原理图](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/02_Schematic)
+ [板卡点位图](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/03_Designator_drawing)
+ [板卡尺寸图](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/04_Mechanical_drawing)
+ [3D 模型文件](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/06_3D_file)
+ [核心板封装](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/05_PCB_Lib)
+ [板卡芯片资料](http://cn.dl.sipeed.com/shareURL/LICHEE/LicheeRV_Nano/07_Datasheet)
## 软件资料
+ [LicheeRV Nano SDK](https://github.com/sipeed/LicheeRV-Nano-Build)
## 算能资料汇总
+ [datasheet](https://github.com/sophgo/sophgo-doc/releases)
+ [编译工具链下载地址](https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz)
+ [SDK开发文档汇总](https://developer.sophgo.com/thread/471.html)
+ [HDK 开发文档汇总](https://developer.sophgo.com/thread/472.html)
+ [TPU SDK 开发资料汇总](https://developer.sophgo.com/thread/473.html)
+ [TDL SDK开发指南提供的常用 AI 模型算法,基于 TPU SDK 的应用封装)](https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/zh/01.software/TPU/TDL_SDK_Software_Development_Guide/build/TDLSDKSoftwareDevelopmentGuide_zh.pdf)
+ [TDL SDK 开发资料汇总](https://developer.sophgo.com/thread/556.html)
## 版本区分
LicheeRV Nano 先后生产两个版本的硬件分别为内测版PCB识别号70405量产版70415。两者外观和性能上存在些许差异
![](./../assets/RV_Nano/intro/CMP-70405-70415.jpg)
1. 4*0201电阻修改为0402排阻方便焊接
2. WiFi模组更换为有屏蔽罩的版本
3. 增大电源处电容规格,提升电源质量;
4. 移动两颗电容到TF卡下支撑TF卡方便用户拔插
5. 用丝印明确标出电阻位置,方便用户修改;
6. 标明PCB版本号。
## 注意事项
+ 内测版硬件70405NPU 仅支持工作在0.5T下1.0T下运行不保证板卡运行的稳定性
+ 内测版硬件70405的WIFI尚未完善匹配速率较低敬请谅解
+ 若购买摄像头配件或WE版本套餐包装内随附螺丝、焊接铜柱和螺丝刀为避免焊接时烫伤请参照[摄像头、WE网口小板安装指南](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/2_unbox.html#WE%E5%B0%8F%E6%9D%BF%E7%9A%84%E5%AE%89%E8%A3%85)
+ 若购买3寸、4寸、10.1寸屏幕配件,包装内随附屏幕转接板以及排线,请参照[屏幕安装指南](https://wiki.sipeed.com/hardware/zh/lichee/RV_Nano/2_unbox.html#%E5%B1%8F%E5%B9%95%E7%9A%84%E5%AE%89%E8%A3%85)
+ 内测版WiFi模块旁有两颗电容距离较近生产时存在贴合的可能因引脚网络相同无需担心短路问题
![](./../assets/RV_Nano/intro/RV_Nano_5.jpg)

View File

@@ -1,172 +1,172 @@
---
title: LicheeRV Nano
keywords: riscv, licheerv,nano
update:
- date: 2024-1-24
version: v0.1
author: BuGu
content:
- Release docs
- date: 2024-4-9
version: v1.0
author: BuGu
content:
- Update docs
---
## LicheeRV Nano 套餐介绍
LicheeRV Nano根据网络分为四个版本
+ 标准版B无网络配件
+ 网口版E板载100M网口
+ WiFi版W板载WiFi6/BT5.2模块BT5.2功能默认不启用如需使用蓝牙功能需要贴此处4颗0201电阻或使用2B铅笔填涂短接
![](./../assets/RV_Nano/unbox/BLE_RES.jpg)
70415及以上版本可使用0402*4的排阻短接
![](./../assets/RV_Nano/unbox/BLE_RES_2.jpg)
+ WiFi网口版WE板载WiFi6/BT5.2模块,同时提供一个网口小板,通过铜柱与排线连接到开发板上
同时我们提供以下六种配件:
+ 摄像头
![](./../assets/RV_Nano/unbox/Camera.jpg)
该摄像头3754左右螺丝固定孔不短路铜柱推荐固定到第5个焊盘上
![](./../assets/RV_Nano/unbox/Camera-5.jpg)
+ 3寸屏幕
![](./../assets/RV_Nano/unbox/3inch.jpg)
屏幕分辨率为480*845带触摸包装附赠屏幕触摸转接板和排线
+ 5寸屏幕
![](./../assets/RV_Nano/unbox/5inch.jpg)
屏幕分辨率为480*845不带触摸排线可直接连接到LicheeRV Nano 31Pin屏幕接口上
+ 7寸屏幕
![](./../assets/RV_Nano/unbox/7inch.jpg)
屏幕分辨率为800*1280带触摸排线可直接连接到LicheeRV Nano 31Pin屏幕接口和6Pin触摸接口上
+ 10寸屏幕
![](./../assets/RV_Nano/unbox/10inch.jpg)
屏幕分辨率为800*1280带触摸包装附赠触摸转接板和排线屏幕排线可直接连接到LicheeRV Nano 31Pin屏幕接口
## 安装指南
### WE小板的安装
+ 焊接排线
1. 按照下图方向焊接排线
![](./../assets/RV_Nano/unbox/WE1.jpg)
2. 使用万用表检测通断
![](./../assets/RV_Nano/unbox/WE2.jpg)
+ 固定铜柱
1. 为避免焊接铜柱时烫手,可以先将将铜柱拧到网口小板上
![](./../assets/RV_Nano/unbox/WE3.jpg)
2. 将铜柱插入第5个焊盘可以提前在焊盘上涂抹锡膏提升焊接后铜柱的稳定性
![](./../assets/RV_Nano/unbox/WE4.jpg)
3. 在底部使用电烙铁焊接
![](./../assets/RV_Nano/unbox/WE5.jpg)
+ 组装
1. 将排线接入网口小板的FPC座子并锁紧
![](./../assets/RV_Nano/unbox/WE6.jpg)
2. 用螺丝将网口小板固定到铜柱上
![](./../assets/RV_Nano/unbox/WE7.jpg)
### 摄像头的安装
+ 固定铜柱
1. 与上面固定方法类似:先将铜柱和螺丝拧到摄像头模组上
![](./../assets/RV_Nano/unbox/CAM1.jpg)
2. 将铜柱插入第5个焊盘可以提前在焊盘上涂抹锡膏提升焊接后铜柱的稳定性
![](./../assets/RV_Nano/unbox/CAM2.jpg)
3. 在底部使用电烙铁焊接
![](./../assets/RV_Nano/unbox/CAM3.jpg)
+ 组装
1. 根据下图连接摄像头排线
![](./../assets/RV_Nano/unbox/CAM4.jpg)
2. 螺丝固定
![](./../assets/RV_Nano/unbox/CAM5.jpg)
### 屏幕的安装
+ 3寸屏幕安装
![](./../assets/RV_Nano/unbox/3inch-1.jpg)
![](./../assets/RV_Nano/unbox/3inch-2.jpg)
+ 5寸屏幕安装
![](./../assets/RV_Nano/unbox/5inch-1.jpg)
+ 7寸屏幕安装
![](./../assets/RV_Nano/unbox/7inch-1.jpg)
## 大核作为A53模式启动
LicheeRV Nano的大核支持作为RISC-VC906或ARMA53启动在开发板背面SG2002芯片旁边有丝印圈出的短接电阻如下图所示默认贴在C906RISC-V一侧
![](./../assets/RV_Nano/unbox/A53-1.jpg)
若大核需要作为ARM启动需要将该电阻挪至另外一边如下图
![](./../assets/RV_Nano/unbox/A53-2.jpg)
需注意目前A53模式下的SDK视频编解码存在问题测试镜像点击[这里](https://github.com/sipeed/LicheeRV-Nano-Build/releases/tag/20240326)下载
## 屏幕背光
LicheeRV Nano适配不同尺寸的屏幕其中3寸、2.3寸为单串LED5寸为双串LED7寸、10.1寸为四串LED。
![](./../assets/RV_Nano/unbox/BL_RES_1.png)
如上图背光电阻默认使用两个10R 0201并联适配5寸屏幕
接入2.8/3寸屏幕会明显发烫内测版70405需拆掉BL电阻下图位置70415及后续版本可通过PWM自动适配小尺寸屏幕
接入7/10.1寸屏幕时屏幕略暗若需达到100%亮度要将该电阻修改为3.3R
![](./../assets/RV_Nano/unbox/BL_RES.png)
## 电池应用
LicheeRV Nano 上不包含锂电池充电电路,如果用户需要嵌入电池,同时希望使用 RV Nano 自带的 USB TypeC 充电则需要断开VBUS与VSYS的电阻下图位置VBUS接口作为PMU的外部电源输入VSYS接口连接PMU的VSYS。如有疑问请联系我们获得支持。
---
title: LicheeRV Nano
keywords: riscv, licheerv,nano
update:
- date: 2024-1-24
version: v0.1
author: BuGu
content:
- Release docs
- date: 2024-4-9
version: v1.0
author: BuGu
content:
- Update docs
---
## LicheeRV Nano 套餐介绍
LicheeRV Nano根据网络分为四个版本
+ 标准版B无网络配件
+ 网口版E板载100M网口
+ WiFi版W板载WiFi6/BT5.2模块BT5.2功能默认不启用如需使用蓝牙功能需要贴此处4颗0201电阻或使用2B铅笔填涂短接
![](./../assets/RV_Nano/unbox/BLE_RES.jpg)
70415及以上版本可使用0402*4的排阻短接
![](./../assets/RV_Nano/unbox/BLE_RES_2.jpg)
+ WiFi网口版WE板载WiFi6/BT5.2模块,同时提供一个网口小板,通过铜柱与排线连接到开发板上
同时我们提供以下六种配件:
+ 摄像头
![](./../assets/RV_Nano/unbox/Camera.jpg)
该摄像头3754左右螺丝固定孔不短路铜柱推荐固定到第5个焊盘上
![](./../assets/RV_Nano/unbox/Camera-5.jpg)
+ 3寸屏幕
![](./../assets/RV_Nano/unbox/3inch.jpg)
屏幕分辨率为480*845带触摸包装附赠屏幕触摸转接板和排线
+ 5寸屏幕
![](./../assets/RV_Nano/unbox/5inch.jpg)
屏幕分辨率为480*845不带触摸排线可直接连接到LicheeRV Nano 31Pin屏幕接口上
+ 7寸屏幕
![](./../assets/RV_Nano/unbox/7inch.jpg)
屏幕分辨率为800*1280带触摸排线可直接连接到LicheeRV Nano 31Pin屏幕接口和6Pin触摸接口上
+ 10寸屏幕
![](./../assets/RV_Nano/unbox/10inch.jpg)
屏幕分辨率为800*1280带触摸包装附赠触摸转接板和排线屏幕排线可直接连接到LicheeRV Nano 31Pin屏幕接口
## 安装指南
### WE小板的安装
+ 焊接排线
1. 按照下图方向焊接排线
![](./../assets/RV_Nano/unbox/WE1.jpg)
2. 使用万用表检测通断
![](./../assets/RV_Nano/unbox/WE2.jpg)
+ 固定铜柱
1. 为避免焊接铜柱时烫手,可以先将将铜柱拧到网口小板上
![](./../assets/RV_Nano/unbox/WE3.jpg)
2. 将铜柱插入第5个焊盘可以提前在焊盘上涂抹锡膏提升焊接后铜柱的稳定性
![](./../assets/RV_Nano/unbox/WE4.jpg)
3. 在底部使用电烙铁焊接
![](./../assets/RV_Nano/unbox/WE5.jpg)
+ 组装
1. 将排线接入网口小板的FPC座子并锁紧
![](./../assets/RV_Nano/unbox/WE6.jpg)
2. 用螺丝将网口小板固定到铜柱上
![](./../assets/RV_Nano/unbox/WE7.jpg)
### 摄像头的安装
+ 固定铜柱
1. 与上面固定方法类似:先将铜柱和螺丝拧到摄像头模组上
![](./../assets/RV_Nano/unbox/CAM1.jpg)
2. 将铜柱插入第5个焊盘可以提前在焊盘上涂抹锡膏提升焊接后铜柱的稳定性
![](./../assets/RV_Nano/unbox/CAM2.jpg)
3. 在底部使用电烙铁焊接
![](./../assets/RV_Nano/unbox/CAM3.jpg)
+ 组装
1. 根据下图连接摄像头排线
![](./../assets/RV_Nano/unbox/CAM4.jpg)
2. 螺丝固定
![](./../assets/RV_Nano/unbox/CAM5.jpg)
### 屏幕的安装
+ 3寸屏幕安装
![](./../assets/RV_Nano/unbox/3inch-1.jpg)
![](./../assets/RV_Nano/unbox/3inch-2.jpg)
+ 5寸屏幕安装
![](./../assets/RV_Nano/unbox/5inch-1.jpg)
+ 7寸屏幕安装
![](./../assets/RV_Nano/unbox/7inch-1.jpg)
## 大核作为A53模式启动
LicheeRV Nano的大核支持作为RISC-VC906或ARMA53启动在开发板背面SG2002芯片旁边有丝印圈出的短接电阻如下图所示默认贴在C906RISC-V一侧
![](./../assets/RV_Nano/unbox/A53-1.jpg)
若大核需要作为ARM启动需要将该电阻挪至另外一边如下图
![](./../assets/RV_Nano/unbox/A53-2.jpg)
需注意目前A53模式下的SDK视频编解码存在问题测试镜像点击[这里](https://github.com/sipeed/LicheeRV-Nano-Build/releases/tag/20240326)下载
## 屏幕背光
LicheeRV Nano适配不同尺寸的屏幕其中3寸、2.3寸为单串LED5寸为双串LED7寸、10.1寸为四串LED。
![](./../assets/RV_Nano/unbox/BL_RES_1.png)
如上图背光电阻默认使用两个10R 0201并联适配5寸屏幕
接入2.8/3寸屏幕会明显发烫内测版70405需拆掉BL电阻下图位置70415及后续版本可通过PWM自动适配小尺寸屏幕
接入7/10.1寸屏幕时屏幕略暗若需达到100%亮度要将该电阻修改为3.3R
![](./../assets/RV_Nano/unbox/BL_RES.png)
## 电池应用
LicheeRV Nano 上不包含锂电池充电电路,如果用户需要嵌入电池,同时希望使用 RV Nano 自带的 USB TypeC 充电则需要断开VBUS与VSYS的电阻下图位置VBUS接口作为PMU的外部电源输入VSYS接口连接PMU的VSYS。如有疑问请联系我们获得支持。
![](./../assets/RV_Nano/unbox/5V_RES.png)

View File

@@ -1,16 +1,16 @@
---
title: LicheeRV Nano Image
keywords: riscv, licheerv,nano
update:
- date: 2024-1-26
version: v0.1
author: 0x754C
---
## 镜像格式
镜像使用xz/lz4进行压缩解压后使用rufs/win32diskimager/dd工具写入到SD卡
## 基于官方SDK的镜像
[下载地址](https://github.com/sipeed/LicheeRV-Nano-Build/releases)
---
title: LicheeRV Nano Image
keywords: riscv, licheerv,nano
update:
- date: 2024-1-26
version: v0.1
author: 0x754C
---
## 镜像格式
镜像使用xz/lz4进行压缩解压后使用rufs/win32diskimager/dd工具写入到SD卡
## 基于官方SDK的镜像
[下载地址](https://github.com/sipeed/LicheeRV-Nano-Build/releases)

View File

@@ -1,31 +1,31 @@
---
title: LicheeRV Nano Burn Image
keywords: riscv, licheerv,nano
update:
- date: 2024-1-26
version: v0.1
author: 0x754C
---
## 镜像格式
镜像使用xz进行压缩解压后使用rufs/win32diskimager/dd工具写入到SD卡
## Linux
```
# 将sdX替换为SD卡的节点
dd if=xxx.img of=/dev/sdX conv=sync
```
## Windows
使用7zip工具进行解压:
https://www.7-zip.org/download.html
使用 rufs/win32diskiamger 写入到SD卡
https://rufus.ie/
https://sourceforge.net/projects/win32diskimager/
---
title: LicheeRV Nano Burn Image
keywords: riscv, licheerv,nano
update:
- date: 2024-1-26
version: v0.1
author: 0x754C
---
## 镜像格式
镜像使用xz进行压缩解压后使用rufs/win32diskimager/dd工具写入到SD卡
## Linux
```
# 将sdX替换为SD卡的节点
dd if=xxx.img of=/dev/sdX conv=sync
```
## Windows
使用7zip工具进行解压:
https://www.7-zip.org/download.html
使用 rufs/win32diskiamger 写入到SD卡
https://rufus.ie/
https://sourceforge.net/projects/win32diskimager/

File diff suppressed because it is too large Load Diff

View File

@@ -1,108 +1,108 @@
---
title: LicheeRV Nano Develop
keywords: riscv, licheerv,nano
update:
- date: 2024-1-26
version: v0.1
author: 0x754C
---
## 芯片手册
datasheet: https://github.com/sophgo/sophgo-doc/releases
## 芯片启动流程
1. bootrom(bl1) 判断sd卡第一个FAT分区内是否拥有 fip.bin如果有则执行2如果没有则进入usb烧录模式(提供一个ACM串口从机设备),bl1会初始化uart0波特率128000
2. 加载fip.bin(bl2)里面的代码到0x0C000000(TPU SRAM)跳转到bl2,初始化clock,DRAM,执行3
3. 加载opensbi到DRAM执行然后加载uboot到DRAM执行执行4
4. uboot加载第一个分区内的boot.sd文件到DRAM如果文件没有问题,跳转到5
5. 跳转到boot.sd内提供的代码(通常是Linux内核)
一个简单的裸机HelloWorld demo用于演示:
1. 最小化可以启动的fip.bin(bl2):
2. 启动C906小核
3. 一些外设的裸机驱动(TODO)
4. 启动8051(TODO)
https://github.com/0x754C/sg200x-bare
## cvi_mmf_sdk
基于算能官方SDK修改如果要使用mmf框架则必须使用这个SDK
源码:
https://github.com/sipeed/LicheeRV-Nano-Build
构建环境搭建可以参考repo内的github cicd文件:
https://github.com/sipeed/LicheeRV-Nano-Build/blob/main/.github/workflows/licheervnano-host-linux-amd64.yml
文档:
- 编译工具链下载地址https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz
- 软件SDK下载地址 https://github.com/sophgo/cvi_mmf_sdk
- SDK开发文档汇总https://developer.sophgo.com/thread/471.html
- HDK 开发文档汇总: https://developer.sophgo.com/thread/472.html
- TPU SDK 开发资料汇总https://developer.sophgo.com/thread/473.html
- TDL SDK开发指南提供的常用 AI 模型算法,基于 TPU SDK 的应用封装)
- https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/zh/01.software/TPU/TDL_SDK_Software_Development_Guide/build/TDLSDKSoftwareDevelopmentGuide_zh.pdf
- https://developer.sophgo.com/thread/556.html
- 如何交叉编译HelloWorld: https://github.com/sipeed/LicheeRV-Nano-Build/blob/v4.1.0/build/boards/cv181x/cv1812cp_licheerv_nano_sd/readme.md#compile-program-use-vendors-toolchain
## 主线buildroot
TODO
基于主线buildroot提供更干净的构建环境
## openwrt
TODO
基于主线openwrt面向将板子当作便携无线AP的用户。
## alpine linux
TODO
基于主线alpine linux,面向在板子上跑distro的用户。
## 引脚复用
这些寄存器的描述可以在芯片手册中找到
提供两种方法修改引脚复用
1. 进入系统后读写/dev/mem修改pinumux:
```
devmem REG_ADDDRESS 32 VALUE
```
2. 在uboot里面修改pinmux:
例如wifi的pinmux:
https://github.com/sipeed/LicheeRV-Nano-Build/blob/926bbe94f4f00059ce0ff3857cc72a708aa85122/build/boards/cv181x/cv1812cp_licheerv_nano_sd/u-boot/cvi_board_init.c#L52
## 初始化MIPI TX
算能SDK提供两种方式:
1. 在middleware中的用户空间demo中添加屏幕初始化序列.
2. 在uboot中添加屏幕的初始化序列.(目前使用这种方式)
## 初始化MIPI RX
算能SDK的MIPI RX目前只能在用户空间初始化需要修改middleware中的代码
---
title: LicheeRV Nano Develop
keywords: riscv, licheerv,nano
update:
- date: 2024-1-26
version: v0.1
author: 0x754C
---
## 芯片手册
datasheet: https://github.com/sophgo/sophgo-doc/releases
## 芯片启动流程
1. bootrom(bl1) 判断sd卡第一个FAT分区内是否拥有 fip.bin如果有则执行2如果没有则进入usb烧录模式(提供一个ACM串口从机设备),bl1会初始化uart0波特率128000
2. 加载fip.bin(bl2)里面的代码到0x0C000000(TPU SRAM)跳转到bl2,初始化clock,DRAM,执行3
3. 加载opensbi到DRAM执行然后加载uboot到DRAM执行执行4
4. uboot加载第一个分区内的boot.sd文件到DRAM如果文件没有问题,跳转到5
5. 跳转到boot.sd内提供的代码(通常是Linux内核)
一个简单的裸机HelloWorld demo用于演示:
1. 最小化可以启动的fip.bin(bl2):
2. 启动C906小核
3. 一些外设的裸机驱动(TODO)
4. 启动8051(TODO)
https://github.com/0x754C/sg200x-bare
## cvi_mmf_sdk
基于算能官方SDK修改如果要使用mmf框架则必须使用这个SDK
源码:
https://github.com/sipeed/LicheeRV-Nano-Build
构建环境搭建可以参考repo内的github cicd文件:
https://github.com/sipeed/LicheeRV-Nano-Build/blob/main/.github/workflows/licheervnano-host-linux-amd64.yml
文档:
- 编译工具链下载地址https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz
- 软件SDK下载地址 https://github.com/sophgo/cvi_mmf_sdk
- SDK开发文档汇总https://developer.sophgo.com/thread/471.html
- HDK 开发文档汇总: https://developer.sophgo.com/thread/472.html
- TPU SDK 开发资料汇总https://developer.sophgo.com/thread/473.html
- TDL SDK开发指南提供的常用 AI 模型算法,基于 TPU SDK 的应用封装)
- https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/zh/01.software/TPU/TDL_SDK_Software_Development_Guide/build/TDLSDKSoftwareDevelopmentGuide_zh.pdf
- https://developer.sophgo.com/thread/556.html
- 如何交叉编译HelloWorld: https://github.com/sipeed/LicheeRV-Nano-Build/blob/v4.1.0/build/boards/cv181x/cv1812cp_licheerv_nano_sd/readme.md#compile-program-use-vendors-toolchain
## 主线buildroot
TODO
基于主线buildroot提供更干净的构建环境
## openwrt
TODO
基于主线openwrt面向将板子当作便携无线AP的用户。
## alpine linux
TODO
基于主线alpine linux,面向在板子上跑distro的用户。
## 引脚复用
这些寄存器的描述可以在芯片手册中找到
提供两种方法修改引脚复用
1. 进入系统后读写/dev/mem修改pinumux:
```
devmem REG_ADDDRESS 32 VALUE
```
2. 在uboot里面修改pinmux:
例如wifi的pinmux:
https://github.com/sipeed/LicheeRV-Nano-Build/blob/926bbe94f4f00059ce0ff3857cc72a708aa85122/build/boards/cv181x/cv1812cp_licheerv_nano_sd/u-boot/cvi_board_init.c#L52
## 初始化MIPI TX
算能SDK提供两种方式:
1. 在middleware中的用户空间demo中添加屏幕初始化序列.
2. 在uboot中添加屏幕的初始化序列.(目前使用这种方式)
## 初始化MIPI RX
算能SDK的MIPI RX目前只能在用户空间初始化需要修改middleware中的代码

View File

@@ -1,90 +1,90 @@
---
title: 多媒体框架MMF开发指南
keywords: riscv, licheerv, nano, mmf
update:
- date: 2024-02-04
version: v0.1
author: lxowalle
---
## 简述
本文用来介绍使用算能SDK开发MMF的方法为想要上手开发MMF却无从下手的开发者提供一个开发思路。
MMF全称是多媒体软件架构Multimedia Framework这个架构将视频输入输出、音频输入输出、图像信号处理、硬件编解码等功能提供了统一格式的API用户可以通过调用封装好的API来快速实现多媒体相关的功能。
## 搭建MMF的开发环境
请参考`LicheeRV Nano->系统开发->cvi_mmf_sdk`中介绍的方法来搭建MMF的开发环境
或者参考下面的指令
```shell
# 下载依赖
sudo apt install pkg-config build-essential ninja-build automake autoconf libtool wget curl git gcc libssl-dev bc slib squashfs-tools android-sdk-libsparse-utils android-sdk-ext4-utils jq cmake python3-distutils tclsh scons parallel ssh-client tree python3-dev python3-pip device-tree-compiler libssl-dev ssh cpio squashfs-tools fakeroot libncurses5 flex bison
# 下载sdk和工具链
git clone https://github.com/sipeed/LicheeRV-Nano-Build.git
wget https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz
tar xvf host-tools.tar.gz
# 用build_middleware命令编译所有示例
cd LicheeRV-Nano-Build
ln -s ../host-tools ./
source build/cvisetup.sh
defconfig sg2002_licheervnano_sd
build_middleware
```
上述指令介绍了如何安装MMF相关的编译环境以及如何编译SDK提供的MMF示例。
- 注意你可能在编译sample_cvg时会失败如果不需要使用这个示例则删掉`LicheeRV-Nano-Build/middleware/v2/sample/cvg`文件夹后再重试。如果你需要这个demo则使用build_all编译后再尝试build_all需要编译整个sdk因此编译时间较长
## 开发资料
请参考`LicheeRV Nano->板卡介绍`中来找到大部分资料
对于MMF应用可以着重看下面的资料
- [MMF媒体软件开发指南](https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/zh/01.software/MPI/Media_Processing_Software_Development_Reference/build/html/index.html)或者[Media Processing Software Development Reference](https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/en/01.software/MPI/Media_Processing_Software_Development_Reference/build/html/index.html)
- [SDK LicheeRV-Nano-Build](https://github.com/sipeed/LicheeRV-Nano-Build)
## 通过网络连接开发板
通过网络连接开发板的目的是为了让我们编译的固件可以被上传到板子中。
请参考`LicheeRV Nano->外设使用`中的方法来获取开发板的IP地址三种方法任意实现其中一种即可`网线连接``WIFI连接``USB RNDIS连接`
## 编译和运行一个示例
MMF内部封装了直接操作硬件的方法因此稍有疏忽就有导致系统崩溃的可能开发MMF一定要注意保持耐心和注重细节。建议是通过示例来修改出自己的程序。
以sample_vio为例
```shell
# 确保已经搭建好了MMF的基本编译环境并且已经使用build_middleware编译过一次
# 编译sample_vio
cd middleware/v2/sample/vio
make
# 上传到开发板(账户root密码cvitek)
scp sample_vio root@xxx.xxx.xxx.xxx:/root # xxx.xxx.xxx.xxx是板子的IP地址
# 登入开发板
ssh root@xxx.xxx.xxx.xxx
# 如果需要使用显示屏则需要运行fb_load.sh以确保加载了驱动只需要执行一次
# 新版镜像不用执行这个已经内置到uboot
/opt/fb_load.sh
# 运行示例
cd ~
./sample_vio
```
上述指令介绍了如何编译某一个MMF示例以及上传示例到开发板和运行这个示例。开发者可以根据自己的应用来修改示例最后开发出自己想要实现的功能。
## 出现无法解决的问题怎么办
1. 请保持耐心、并仔细的参阅开发资料,尝试找到是否存在遗漏的地方。比如输入参数是否正确、资源是否真正的释放等。
2. 在[maixhub](https://maixhub.com/discussion)或github上发布你的问题。请整理好你想要实现的功能、遇到的问题、尝试过的解决方案以及复现方法顺便一提很多时候在整理思路的过程中就能找到解决的方法了。
---
title: 多媒体框架MMF开发指南
keywords: riscv, licheerv, nano, mmf
update:
- date: 2024-02-04
version: v0.1
author: lxowalle
---
## 简述
本文用来介绍使用算能SDK开发MMF的方法为想要上手开发MMF却无从下手的开发者提供一个开发思路。
MMF全称是多媒体软件架构Multimedia Framework这个架构将视频输入输出、音频输入输出、图像信号处理、硬件编解码等功能提供了统一格式的API用户可以通过调用封装好的API来快速实现多媒体相关的功能。
## 搭建MMF的开发环境
请参考`LicheeRV Nano->系统开发->cvi_mmf_sdk`中介绍的方法来搭建MMF的开发环境
或者参考下面的指令
```shell
# 下载依赖
sudo apt install pkg-config build-essential ninja-build automake autoconf libtool wget curl git gcc libssl-dev bc slib squashfs-tools android-sdk-libsparse-utils android-sdk-ext4-utils jq cmake python3-distutils tclsh scons parallel ssh-client tree python3-dev python3-pip device-tree-compiler libssl-dev ssh cpio squashfs-tools fakeroot libncurses5 flex bison
# 下载sdk和工具链
git clone https://github.com/sipeed/LicheeRV-Nano-Build.git
wget https://sophon-file.sophon.cn/sophon-prod-s3/drive/23/03/07/16/host-tools.tar.gz
tar xvf host-tools.tar.gz
# 用build_middleware命令编译所有示例
cd LicheeRV-Nano-Build
ln -s ../host-tools ./
source build/cvisetup.sh
defconfig sg2002_licheervnano_sd
build_middleware
```
上述指令介绍了如何安装MMF相关的编译环境以及如何编译SDK提供的MMF示例。
- 注意你可能在编译sample_cvg时会失败如果不需要使用这个示例则删掉`LicheeRV-Nano-Build/middleware/v2/sample/cvg`文件夹后再重试。如果你需要这个demo则使用build_all编译后再尝试build_all需要编译整个sdk因此编译时间较长
## 开发资料
请参考`LicheeRV Nano->板卡介绍`中来找到大部分资料
对于MMF应用可以着重看下面的资料
- [MMF媒体软件开发指南](https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/zh/01.software/MPI/Media_Processing_Software_Development_Reference/build/html/index.html)或者[Media Processing Software Development Reference](https://doc.sophgo.com/cvitek-develop-docs/master/docs_latest_release/CV180x_CV181x/en/01.software/MPI/Media_Processing_Software_Development_Reference/build/html/index.html)
- [SDK LicheeRV-Nano-Build](https://github.com/sipeed/LicheeRV-Nano-Build)
## 通过网络连接开发板
通过网络连接开发板的目的是为了让我们编译的固件可以被上传到板子中。
请参考`LicheeRV Nano->外设使用`中的方法来获取开发板的IP地址三种方法任意实现其中一种即可`网线连接``WIFI连接``USB RNDIS连接`
## 编译和运行一个示例
MMF内部封装了直接操作硬件的方法因此稍有疏忽就有导致系统崩溃的可能开发MMF一定要注意保持耐心和注重细节。建议是通过示例来修改出自己的程序。
以sample_vio为例
```shell
# 确保已经搭建好了MMF的基本编译环境并且已经使用build_middleware编译过一次
# 编译sample_vio
cd middleware/v2/sample/vio
make
# 上传到开发板(账户root密码cvitek)
scp sample_vio root@xxx.xxx.xxx.xxx:/root # xxx.xxx.xxx.xxx是板子的IP地址
# 登入开发板
ssh root@xxx.xxx.xxx.xxx
# 如果需要使用显示屏则需要运行fb_load.sh以确保加载了驱动只需要执行一次
# 新版镜像不用执行这个已经内置到uboot
/opt/fb_load.sh
# 运行示例
cd ~
./sample_vio
```
上述指令介绍了如何编译某一个MMF示例以及上传示例到开发板和运行这个示例。开发者可以根据自己的应用来修改示例最后开发出自己想要实现的功能。
## 出现无法解决的问题怎么办
1. 请保持耐心、并仔细的参阅开发资料,尝试找到是否存在遗漏的地方。比如输入参数是否正确、资源是否真正的释放等。
2. 在[maixhub](https://maixhub.com/discussion)或github上发布你的问题。请整理好你想要实现的功能、遇到的问题、尝试过的解决方案以及复现方法顺便一提很多时候在整理思路的过程中就能找到解决的方法了。

View File

@@ -1,91 +1,91 @@
# Lichee Zero
## Lichee Zero 概述
Lichee Zero是基于全志科技的V3s(ARM Cortex-A7内核)高性能CPL芯片设计的迷你开发板。开发板设计小巧精致将芯片的所有资源都引出,板载USB、Flash、TF卡、4OP LCD接口等并把所有IO资源引出方便开发者拓展使用适合初学者学习linux或者商用于产品开发。
核心板:
<html>
<div class="imbox">
<img src="./../assets/Zero/Zero_1.png" width=240>
<img src="./../assets/Zero/Zero_6.png" width=240>
<style>
.imbox{
display:flex;
flex-direction: row;
}
</style>
</div>
</html>
核心板+扩展板:
<html>
<div class="imbox">
<img src="./../assets/Zero/Zero_3.png" width=240>
<img src="./../assets/Zero/Zero_4.png" width=240>
<style>
.imbox{
display:flex;
flex-direction: row;
}
</style>
</div>
</html>
## 参数
### V3s参数
V3s框架
![](./../assets/Zero/V3s.png)
| 项目 | 参数 |
| --- | --- |
| CPU | ARM Cortex™-A7 最高1.2GHz|
| Memory | Integrated 64MB DRAM |
| Audio Codec | • Integrated 92dB audio codec<br>• Supports two ADC channels and two DAC channels<br>• Supports one low-noise analog microphone bias outputs<br>• Supports one microphone input and one stereo microphone outpu |
| Video | • Supports 1080p@40fps or 1080p@30fps+VGA@30fps H.264 video encoding,<br>• Supports H.264 1080p@30fps decoding, MJPEG 1080@30fps decoding |
| Video Input/Output | • Supports 8/10/12-bit parallel CSI and 4-lane MIPI CSI2<br>• Supports up to 5M CMOS sensor<br>• Supports RGB/i80/LVDS LCD up to 1024x768 resolution |
| Connectivity | • 3 x SD card controllers<br>• LRADC/SPI/TWI/UART/PWM<br>• USB, EMAC+PHY |
| ISP | • Integrated ISP up to 5M pixels<br>• Supports two channel outputs for display and encoding respectively<br>• Supports various input and output formats<br>• Supports AE/AF/AWB<br>• Supports saturation adjustment/ noise reduction/ defect pixel correction/distortion correction |
### Lichee Zero核心板参数
| 项目 | 参数 |
| ---- | ---- |
| CPU | V3s |
| 内存 | 64MB DDR2 |
| 存储 | 预留 SOP8 SPI Flash焊盘 <br>板载TF卡座 |
| 显示 | 通用40P RGB LCD FPC座<br>可直插常见的40P 4.3/5/7寸屏幕板载背光驱动)通过转接板可插50P 7/9寸屏<br>支持常见的272x480,480x800,1024x600等分辨率板载电阻式触摸屏芯片支持电阻屏<br>板载RGB LED |
| 通讯接口 | SDIO x2可搭配配套SDIO WiFi+BT模块<br>SPl x1<br>12C x2<br>UART x3<br>100M Ether x1(含EPHY)<br>OTG USB x1<br>MIPI CSI x1 |
| 其他接口 | <br>PWM x2<br>LRADC x1<br>Speakerx2+ Mic x1 |
| 电气特性 | Micro USB 5V供电<br>2.54mm插针3.3V~5V供电<br>1.27mm邮票孔供电 |
![](./../assets/Zero/Zero_8.png)
![](./../assets/Zero/Zero_10.png)
### Lichee Zero 拓展板
| 项目 | 参数 |
| ---- | ---- |
| CPU | V3s |
| 内存 | 64MB DDR2 |
| 存储 | 预留 SOP8 SPI Flash焊盘 <br>板载TF卡座 |
| 显示 | 通用40P RGB LCD FPC座<br>可直插常见的40P 4.3/5/7寸屏幕板载背光驱动)通过转接板可插50P 7/9寸屏<br>支持常见的272x480,480x800,1024x600等分辨率板载电阻式触摸屏芯片支持电阻屏<br>板载RGB LED |
| 通讯接口 | SDIO x2可搭配配套SDIO WiFi+BT模块<br>SPI x1<br>I2C x2<br>UART x3<br>100M Ether x1(含EPHY)<br>OTG USB x1<br>MIPI CSI x1 |
| 其他接口 | <br>PWM x2<br>LRADC x1<br>Speakerx2+ Mic x1 |
| 板载外设 | 以太网接口<br>3.5mm耳机接口<br>驻极体麦克风<br>额外TF卡卡槽<br>4个按键<br>MIPI接口 |
| 电气特性 | Micro USB 5V供电<br>2.54mm插针3.3V~5V供电<br>1.27mm邮票孔供电 |
![](./../assets/Zero/Zero_9.png)
## 使用教程
[Lichee Zero](./../../../../soft/Lichee/zh/Zero-Doc/Start/board_intro.md)
## 产品技术支持
# Lichee Zero
## Lichee Zero 概述
Lichee Zero是基于全志科技的V3s(ARM Cortex-A7内核)高性能CPL芯片设计的迷你开发板。开发板设计小巧精致将芯片的所有资源都引出,板载USB、Flash、TF卡、4OP LCD接口等并把所有IO资源引出方便开发者拓展使用适合初学者学习linux或者商用于产品开发。
核心板:
<html>
<div class="imbox">
<img src="./../assets/Zero/Zero_1.png" width=240>
<img src="./../assets/Zero/Zero_6.png" width=240>
<style>
.imbox{
display:flex;
flex-direction: row;
}
</style>
</div>
</html>
核心板+扩展板:
<html>
<div class="imbox">
<img src="./../assets/Zero/Zero_3.png" width=240>
<img src="./../assets/Zero/Zero_4.png" width=240>
<style>
.imbox{
display:flex;
flex-direction: row;
}
</style>
</div>
</html>
## 参数
### V3s参数
V3s框架
![](./../assets/Zero/V3s.png)
| 项目 | 参数 |
| --- | --- |
| CPU | ARM Cortex™-A7 最高1.2GHz|
| Memory | Integrated 64MB DRAM |
| Audio Codec | • Integrated 92dB audio codec<br>• Supports two ADC channels and two DAC channels<br>• Supports one low-noise analog microphone bias outputs<br>• Supports one microphone input and one stereo microphone outpu |
| Video | • Supports 1080p@40fps or 1080p@30fps+VGA@30fps H.264 video encoding,<br>• Supports H.264 1080p@30fps decoding, MJPEG 1080@30fps decoding |
| Video Input/Output | • Supports 8/10/12-bit parallel CSI and 4-lane MIPI CSI2<br>• Supports up to 5M CMOS sensor<br>• Supports RGB/i80/LVDS LCD up to 1024x768 resolution |
| Connectivity | • 3 x SD card controllers<br>• LRADC/SPI/TWI/UART/PWM<br>• USB, EMAC+PHY |
| ISP | • Integrated ISP up to 5M pixels<br>• Supports two channel outputs for display and encoding respectively<br>• Supports various input and output formats<br>• Supports AE/AF/AWB<br>• Supports saturation adjustment/ noise reduction/ defect pixel correction/distortion correction |
### Lichee Zero核心板参数
| 项目 | 参数 |
| ---- | ---- |
| CPU | V3s |
| 内存 | 64MB DDR2 |
| 存储 | 预留 SOP8 SPI Flash焊盘 <br>板载TF卡座 |
| 显示 | 通用40P RGB LCD FPC座<br>可直插常见的40P 4.3/5/7寸屏幕板载背光驱动)通过转接板可插50P 7/9寸屏<br>支持常见的272x480,480x800,1024x600等分辨率板载电阻式触摸屏芯片支持电阻屏<br>板载RGB LED |
| 通讯接口 | SDIO x2可搭配配套SDIO WiFi+BT模块<br>SPl x1<br>12C x2<br>UART x3<br>100M Ether x1(含EPHY)<br>OTG USB x1<br>MIPI CSI x1 |
| 其他接口 | <br>PWM x2<br>LRADC x1<br>Speakerx2+ Mic x1 |
| 电气特性 | Micro USB 5V供电<br>2.54mm插针3.3V~5V供电<br>1.27mm邮票孔供电 |
![](./../assets/Zero/Zero_8.png)
![](./../assets/Zero/Zero_10.png)
### Lichee Zero 拓展板
| 项目 | 参数 |
| ---- | ---- |
| CPU | V3s |
| 内存 | 64MB DDR2 |
| 存储 | 预留 SOP8 SPI Flash焊盘 <br>板载TF卡座 |
| 显示 | 通用40P RGB LCD FPC座<br>可直插常见的40P 4.3/5/7寸屏幕板载背光驱动)通过转接板可插50P 7/9寸屏<br>支持常见的272x480,480x800,1024x600等分辨率板载电阻式触摸屏芯片支持电阻屏<br>板载RGB LED |
| 通讯接口 | SDIO x2可搭配配套SDIO WiFi+BT模块<br>SPI x1<br>I2C x2<br>UART x3<br>100M Ether x1(含EPHY)<br>OTG USB x1<br>MIPI CSI x1 |
| 其他接口 | <br>PWM x2<br>LRADC x1<br>Speakerx2+ Mic x1 |
| 板载外设 | 以太网接口<br>3.5mm耳机接口<br>驻极体麦克风<br>额外TF卡卡槽<br>4个按键<br>MIPI接口 |
| 电气特性 | Micro USB 5V供电<br>2.54mm插针3.3V~5V供电<br>1.27mm邮票孔供电 |
![](./../assets/Zero/Zero_9.png)
## 使用教程
[Lichee Zero](./../../../../soft/Lichee/zh/Zero-Doc/Start/board_intro.md)
## 产品技术支持
Lichee Zero 开发板可以在多种场景实现客户不同方面的需要,在 AIoT 上已经广泛的使用,品质和性能在行业内已经有非常好的口碑,专业的技术团队为广大客户解决硬件设计和软件功能上的各种各样问题。专业技术支持和更详细资料请联系商务 <support@sipeed.com>

View File

@@ -1,44 +1,44 @@
# Lichee ZeroPlus
## 概述
Lichee Zero Plus是基于全志科技的S3 (ARM Cortex-A7内核)的高性能CPU芯片设计的高集成度核心板。
使用双NGFF金手指设计引出134pin引脚方便开发者拓展使用。S3是V3s的升级版1.2GHz主频内置128MB ddr3内存引脚相对V3s全很多。
支持MIPI摄像头普通并口摄像头RGB屏幕内置ePHY.
<img src="./../assets/Zero-Plus/Plus_1.jpg" width=400>
## 参数
### 芯片
S3芯片架构
![](./../assets/Zero-Plus/Plus_2.png)
| 项目 | 参数 |
| --- | --- |
| CPU | • ARM® Cortex™-A7 @1.2GHz |
| GPU | • Supports 1080p@60fps or 2-channel 1080p@30fps H.264 video encoding, supports 8M JPEG encoding <br>• Supports H.264 1080p@60fps decoding, MJPEG 1080@30fps decoding |
| ISP | • Integrated ISP up to 8M pixels<br>• Supports two channel outputs for display and encoding respectively<br>• Supports various input and output formats<br>• Supports AE/AF/AWB<br>• Supports saturation adjustment/ noise reduction/ defect pixel correction/distortion correction |
| Video Input/Output | • Supports 8/10/12-bit parallel CSI and 4-lane MIPI CSI2<br>• Supports BT1120 input<br>• Supports up to 8M CMOS sensor<br>• Supports RGB/i80/LVDS LCD up to 1024x768 resolution<br>• Supports Allwinner's next-gen SmartColor display technology for better visual effects for images & videos |
| Memory | • SIP 16-bit DDR3, up to 1333Mbp |
| Audio Codec | • Integrated 92dB audio codec<br>• Supports two ADC channels and two DAC channels<br>• Supports 3 MIC-in, a stereo Line-in, a headphone output and a stereo line-out output |
| Security Engine | • Supports AES/DES |
| Connectivity | • 3 x SD card controllers<br>• LRADC/SPI/TWI/UART/PWM<br>• USB, EMAC+PHY |
### 核心板
| 项目 | 参数 |
| --- | --- |
| CPU | ARM Cortex-A7 处理器(1.2Ghz) VFPv4 浮点处理器 |
| 内存 | 芯片内置 128Mbyte DDR3 内存 (时钟频率最高 672MHz) |
| 存储 |可选 SPI Nor Flash(8/16/32MB)SD Nand(128/512MB)eMMC(4/8GB)<br>Micro SD 卡 |
| 电源 | 5V 电源输入, 3 路 DCDC 稳压输出 (1.2,1.5,3.3) |
| 复位 | 板载复位芯片 |
| 晶振 | 板载 24M 主晶振, 32.768KHz RTC 晶振 |
| 接口 | NGFF M.2 B KEY x 2 共引出 67x2=134pin<br>板载 micro usb 接口和系统串口,可供下载固件及调试 |
| 系统支持 | 支持最新 Linux 5.2 mainline kernel, Linux 3.4 bsp kernel<br>支持 debian 发行版 |
## 使用教程
[Lichee Zero](/soft/Lichee/zh/Zero-Doc/Start/intro_cn.md)
## 产品技术支持
# Lichee ZeroPlus
## 概述
Lichee Zero Plus是基于全志科技的S3 (ARM Cortex-A7内核)的高性能CPU芯片设计的高集成度核心板。
使用双NGFF金手指设计引出134pin引脚方便开发者拓展使用。S3是V3s的升级版1.2GHz主频内置128MB ddr3内存引脚相对V3s全很多。
支持MIPI摄像头普通并口摄像头RGB屏幕内置ePHY.
<img src="./../assets/Zero-Plus/Plus_1.jpg" width=400>
## 参数
### 芯片
S3芯片架构
![](./../assets/Zero-Plus/Plus_2.png)
| 项目 | 参数 |
| --- | --- |
| CPU | • ARM® Cortex™-A7 @1.2GHz |
| GPU | • Supports 1080p@60fps or 2-channel 1080p@30fps H.264 video encoding, supports 8M JPEG encoding <br>• Supports H.264 1080p@60fps decoding, MJPEG 1080@30fps decoding |
| ISP | • Integrated ISP up to 8M pixels<br>• Supports two channel outputs for display and encoding respectively<br>• Supports various input and output formats<br>• Supports AE/AF/AWB<br>• Supports saturation adjustment/ noise reduction/ defect pixel correction/distortion correction |
| Video Input/Output | • Supports 8/10/12-bit parallel CSI and 4-lane MIPI CSI2<br>• Supports BT1120 input<br>• Supports up to 8M CMOS sensor<br>• Supports RGB/i80/LVDS LCD up to 1024x768 resolution<br>• Supports Allwinner's next-gen SmartColor display technology for better visual effects for images & videos |
| Memory | • SIP 16-bit DDR3, up to 1333Mbp |
| Audio Codec | • Integrated 92dB audio codec<br>• Supports two ADC channels and two DAC channels<br>• Supports 3 MIC-in, a stereo Line-in, a headphone output and a stereo line-out output |
| Security Engine | • Supports AES/DES |
| Connectivity | • 3 x SD card controllers<br>• LRADC/SPI/TWI/UART/PWM<br>• USB, EMAC+PHY |
### 核心板
| 项目 | 参数 |
| --- | --- |
| CPU | ARM Cortex-A7 处理器(1.2Ghz) VFPv4 浮点处理器 |
| 内存 | 芯片内置 128Mbyte DDR3 内存 (时钟频率最高 672MHz) |
| 存储 |可选 SPI Nor Flash(8/16/32MB)SD Nand(128/512MB)eMMC(4/8GB)<br>Micro SD 卡 |
| 电源 | 5V 电源输入, 3 路 DCDC 稳压输出 (1.2,1.5,3.3) |
| 复位 | 板载复位芯片 |
| 晶振 | 板载 24M 主晶振, 32.768KHz RTC 晶振 |
| 接口 | NGFF M.2 B KEY x 2 共引出 67x2=134pin<br>板载 micro usb 接口和系统串口,可供下载固件及调试 |
| 系统支持 | 支持最新 Linux 5.2 mainline kernel, Linux 3.4 bsp kernel<br>支持 debian 发行版 |
## 使用教程
[Lichee Zero](/soft/Lichee/zh/Zero-Doc/Start/intro_cn.md)
## 产品技术支持
Lichee ZeroPlus 开发板可以在多种场景实现客户不同方面的需要,在 AIoT 上已经广泛的使用,品质和性能在行业内已经有非常好的口碑,专业的技术团队为广大客户解决硬件设计和软件功能上的各种各样问题。专业技术支持和更详细资料请联系商务 <support@sipeed.com>

View File

@@ -1,53 +1,53 @@
---
title: 烧录镜像
keywords: Linux, Lichee, TH1520, Console, RISCV, image
update:
- date: 2024-06-18
version: v0.1
author: Zepan
content:
- Release docs
---
## 镜像下载:
https://github.com/0x754C/sipeed-th1520-laptop-extra/releases
百度网盘:
链接: https://pan.baidu.com/s/1jkJ4YR7EhMRZ11XmccKDtg
提取码: qj1r
Mega网盘
https://mega.nz/folder/p9BCTbLb#sWSZvLw6nrBmqujQXfvWrg
## 全量镜像
### 通过 typeC 口烧录
1. 拆掉SSD后盖
2. 找到BOOT按键和RST按键
![boot_and_rst_key](./assets/burn_image/boot_and_rst_key.jpg)
3. 按着BOOT按键然后按键盘上的电源按键开机 (或者开机状态下按复位键),然后将 Book 连接 typec 口到烧录镜像的 PC。
![typec_connect](./assets/burn_image/typec_connect.jpg)
1. 在烧录镜像的 PC 上下载用于烧录的镜像:
5. 执行烧录指令:
```
fastboot flash ram u-boot-with-spl-plastic8g.bin #根据购买的内存型号选择
fastboot reboot
fastboot flash uboot u-boot-with-spl-plastic8g.bin
fastboot flash boot boot.ext4
fastboot flash root root.ext4
```
10. 按下 BOOT 旁边的 RST 按键重启 Book 笔记本。
---
title: 烧录镜像
keywords: Linux, Lichee, TH1520, Console, RISCV, image
update:
- date: 2024-06-18
version: v0.1
author: Zepan
content:
- Release docs
---
## 镜像下载:
https://github.com/0x754C/sipeed-th1520-laptop-extra/releases
百度网盘:
链接: https://pan.baidu.com/s/1jkJ4YR7EhMRZ11XmccKDtg
提取码: qj1r
Mega网盘
https://mega.nz/folder/p9BCTbLb#sWSZvLw6nrBmqujQXfvWrg
## 全量镜像
### 通过 typeC 口烧录
1. 拆掉SSD后盖
2. 找到BOOT按键和RST按键
![boot_and_rst_key](./assets/burn_image/boot_and_rst_key.jpg)
3. 按着BOOT按键然后按键盘上的电源按键开机 (或者开机状态下按复位键),然后将 Book 连接 typec 口到烧录镜像的 PC。
![typec_connect](./assets/burn_image/typec_connect.jpg)
1. 在烧录镜像的 PC 上下载用于烧录的镜像:
5. 执行烧录指令:
```
fastboot flash ram u-boot-with-spl-plastic8g.bin #根据购买的内存型号选择
fastboot reboot
fastboot flash uboot u-boot-with-spl-plastic8g.bin
fastboot flash boot boot.ext4
fastboot flash root root.ext4
```
10. 按下 BOOT 旁边的 RST 按键重启 Book 笔记本。

View File

@@ -1,221 +1,221 @@
---
title: LicheePi Book 4A
keywords: LicheeBook, TH1520, RISCV, SBC, Laptop
update:
- date: 2024-06-17
version: v0.1
author: Zepan
content:
- 初次编写文档
---
## 简介
Lichee Book 4A (以下简称 Book ) 是矽速科技研发的高性能 RISC-V 轻型笔电旨在让RISC-V开发者提前体验RISC-V产品在实际生活中的开发应用。
Lichee Book 4A 使用主流14inch笔电模具集成了高性能RISC-V TH1520 SOM(8+32/16+128可选), 14寸1920x1200高清屏88键圆帽静音键盘以及USB-AUSB-C2280 SSD卡槽TF卡槽miniHDMI3.5mm耳机孔,等丰富接口,是具备开放性和使用性为一体 的RISCV笔记本
Lichee Book 4A 的软件支持也做到了较为完善的程度默认搭载Debian操作系统支持 Chrome浏览器VSCode IDEKiCAD PCB绘图软件Office软件4K播放器多种游戏模拟器基本满足日常工作学习使用。
Lichee Book 4A 使用了模块化的设计方式如果你之前购买了LicheePi4A则可以复用SOM到Book上
得益于模块化SOM设计Lichee Book 4A 还能在将来通过更换模块的形式升级到LM3A或者LM5A模块
> 注意:高性能RISCV消费电子在当前(2024年)还是属于较为早期的阶段Lichee Book 4A主要面向 RISC-V 开发者体验开发使用至少要求熟练的Linux操作经验普通消费者是无法直接上手使用的。
> 如果你是没有Linux经验的普通用户请不要购买。
![lbook4a](./assets/lbook/lbook.jpg)
## 技术规格
<table>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<tr>
<td class="org-left">SOM</td>
<td class="org-left"> <a href="https://wiki.sipeed.com/lm4a">LM4A</a> </td>
</tr>
<tr>
<td class="org-left">CPU</td>
<td class="org-left"><strong>RISC-V RV64GCV C910@1.85GHz * 4</strong> </td>
</tr>
<tr>
<td class="org-left">GPU</td>
<td class="org-left">IMG™ B 系列 BXM-4-64 </td>
</tr>
<tr>
<td class="org-left">NPU</td>
<td class="org-left">4TOPS@INT8 </td>
</tr>
<tr>
<td class="org-left">Memory</td>
<td class="org-left"> 8GB or 16GB LPDDR4X </td>
</tr>
<tr>
<td class="org-left">Storage</td>
<td class="org-left"> 32GB or 128GB eMMC, NGFF 2280 SATA SSD </td>
</tr>
<tr>
<td class="org-left">Display</td>
<td class="org-left"> 14 inch 1920 x 1200 LCD, miniHDMI </td>
</tr>
<tr>
<td class="org-left">Inoput</td>
<td class="org-left"> 88-Keyboard, touchpad </td>
</tr>
<tr>
<td class="org-left">Camera</td>
<td class="org-left"> 0.3MP Front Camera </td>
</tr>
<tr>
<td class="org-left">Audio</td>
<td class="org-left"> 3.5mm Headphone, MEMS MIC, StereoSpeaker </td>
</tr>
<tr>
<td class="org-left">Network</td>
<td class="org-left"> WiFi6 + BT5.4 </td>
</tr>
<tr>
<td class="org-left">Interface</td>
<td class="org-left"> USB3.0 Type-A, USB3.0 Type-C, USB2.0 Type-A, MicroSD Slot </td>
</tr>
<tr>
<td class="org-left"> Battery </td>
<td class="org-left"> 4500 mAh@7.6V </td>
</tr>
<tr>
<td class="org-left">Case</td>
<td class="org-left"> Silver plastic Case</td>
</tr>
<tr>
<td class="org-left">Size & Weight</td>
<td class="org-left">314x217x17mm 1.3Kg</td>
</tr>
<tr>
<td class="org-left">System</td>
<td class="org-left">Debian </td>
</tr>
</table>
## 上手指南
### 开箱
收到货后的包装箱:
![unbox1](./assets/lbook4a/unbox1.jpg)
打开包装箱取出两个部分上面是笔记本本体下面是12V2.5A电源适配器和MiniHDMI线。
![unbox2](./assets/lbook4a/unbox2.jpg)
取出主机,顶面如图所示:
![unbox3](./assets/lbook4a/unbox3.jpg)
底面如图所示可以看到一个SSD盖板旋出螺丝即可安装SSD以及底面中心是风扇吸风口本机使用热管+静音风扇散热,保证核心凉爽温度。
![unbox4](./assets/lbook4a/unbox4.jpg)
侧面之一如图所示接口从左到右依次为TF卡3.5mm耳机孔USB2.0接口,电脑锁。
![unbox5](./assets/lbook4a/unbox5.jpg)
侧面之二如图所示接口从左到右依次为USB3.0口12V DC口miniHDMI口USB-C口兼顾下载/Host/充电)
![unbox6](./assets/lbook4a/unbox6.jpg)
如果你购买的是准系统套餐则需要先查看后面的“SOM安装指南”安装好LM4A后再进行下面操作。
打开主机长按右上角电源键3s开机看到屏幕背光亮起 或者 左侧电源指示灯亮起 即可松开)
![unbox8](./assets/lbook4a/unbox8.jpg)
如果背光一直未亮起,可能是运输过程中电量耗尽,可以尝试插上电源适配器后长按电源开机。
开机背光亮起约15s后屏幕左上角会开始闪烁光标表示已经进入内核
再经过约20s后开始进入Debian桌面系统的登录界面。
输入帐号 sipeed默认密码 licheepi进入桌面系统后你可以测试 触摸板,键盘,摄像头等 是否工作,如有发现不能工作的,可以与客服联系。
默认系统为Debian预装了 ChromeOffice 等应用软件,你可以一一体验。
你可以使用sudo apt instal xxx 来安装软件,默认用户名密码为 sipeedlicheepi
其它一般性软件使用可以参考LicheePi4A的相关文档章节。
### SSD使用指南
Book支持M.2 2280 SATA 接口的SSD可以拆卸掉后壳的SSD盖板后安装
![ssd1](./assets/lbook4a/ssd1.jpg)
如果你不计划使用SSD可以手工关闭USB转SSD芯片来降低功耗约0.6Watt),提升续航:
进入/boot/dtbs/linux-image-5.10.113-zzz-sipeed-20240531+/thead/找到对应使用的dtb进行修改如8GB内存版本
sudo dtc -I dtb -O dts -o tmp.dts th1520-lpi4a-plastic.dtb
编辑以下部分,将 enable-active-high; 改成 enable-active-low; 即可
```
reg_sata_vcc_5v: regulator-sata-vcc-5v-en {
status = "okay";
compatible = "regulator-fixed";
regulator-name = "regulator-sata-vcc-5v-en";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_sys_vcc_5v>;
gpio = <&pcal6408ahk_c 1 1>;
enable-active-low;
regulator-always-on;
};
```
sudo dtc -I dts -O dtb -o th1520-lpi4a-plastic.dtb tmp.dts
然后重启即可关闭sata电源。
### SOM安装指南
如果你选购了准系统套餐则需要安装SOM模块。
需要自备十字螺丝刀拆卸开后盖需要先撕开两个脚垫脚垫下面各有一个螺丝安装好SOM模块在CPU/DDR上方安装硅脂放置热管重新安装回后盖。
![unbox7](./assets/lbook4a/unbox7.jpg)
## 系统
Book的镜像与LConsole的镜像一同发布仅uboot不同建议使用8+32及以上配置的SOM。
github仓库在 https://github.com/0x754C/sipeed-th1520-laptop-extra/releases
linux-image-*.deb 是sipeed提供的内核安装包如果只想升级内核可以安装这个安装前记得更新到对应版本的uboot以及备份文件。
sipeed-th1520-laptop-extra-*.deb 是sipeed提供的附加文件安装包包括配置文件测试工具和EC固件。
u-boot-with-spl-*.bin 是uboot文件请选择你电路板对应型号的uboot进行烧写烧写前记得备份文件如果烧写错误的uboot可能会导致无法开机。
boot|root-*.ext.xz 是分区镜像,如果想整个重新烧录,使用这个。
百度网盘:
链接: https://pan.baidu.com/s/1jkJ4YR7EhMRZ11XmccKDtg
提取码: qj1r
Mega网盘
https://mega.nz/folder/p9BCTbLb#sWSZvLw6nrBmqujQXfvWrg
常见应用展示:
![sys1](./assets/lbook4a/sys1.png)
Book 系统架构如下,细节可参照原理图或设备树文件。
![sys2](./assets/lbook4a/sys2.png)
## 资料下载
Lichee Book 4A 与 Lichee Console 4A 为相同主板,共享一份硬件资料:
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/LicheeConsole4A)
## 其他链接
[淘宝](https://item.taobao.com/item.htm?id=807162533118)
[Aliexpress](https://www.aliexpress.com/item/3256807018240741.html)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com
---
title: LicheePi Book 4A
keywords: LicheeBook, TH1520, RISCV, SBC, Laptop
update:
- date: 2024-06-17
version: v0.1
author: Zepan
content:
- 初次编写文档
---
## 简介
Lichee Book 4A (以下简称 Book ) 是矽速科技研发的高性能 RISC-V 轻型笔电旨在让RISC-V开发者提前体验RISC-V产品在实际生活中的开发应用。
Lichee Book 4A 使用主流14inch笔电模具集成了高性能RISC-V TH1520 SOM(8+32/16+128可选), 14寸1920x1200高清屏88键圆帽静音键盘以及USB-AUSB-C2280 SSD卡槽TF卡槽miniHDMI3.5mm耳机孔,等丰富接口,是具备开放性和使用性为一体 的RISCV笔记本
Lichee Book 4A 的软件支持也做到了较为完善的程度默认搭载Debian操作系统支持 Chrome浏览器VSCode IDEKiCAD PCB绘图软件Office软件4K播放器多种游戏模拟器基本满足日常工作学习使用。
Lichee Book 4A 使用了模块化的设计方式如果你之前购买了LicheePi4A则可以复用SOM到Book上
得益于模块化SOM设计Lichee Book 4A 还能在将来通过更换模块的形式升级到LM3A或者LM5A模块
> 注意:高性能RISCV消费电子在当前(2024年)还是属于较为早期的阶段Lichee Book 4A主要面向 RISC-V 开发者体验开发使用至少要求熟练的Linux操作经验普通消费者是无法直接上手使用的。
> 如果你是没有Linux经验的普通用户请不要购买。
![lbook4a](./assets/lbook/lbook.jpg)
## 技术规格
<table>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<tr>
<td class="org-left">SOM</td>
<td class="org-left"> <a href="https://wiki.sipeed.com/lm4a">LM4A</a> </td>
</tr>
<tr>
<td class="org-left">CPU</td>
<td class="org-left"><strong>RISC-V RV64GCV C910@1.85GHz * 4</strong> </td>
</tr>
<tr>
<td class="org-left">GPU</td>
<td class="org-left">IMG™ B 系列 BXM-4-64 </td>
</tr>
<tr>
<td class="org-left">NPU</td>
<td class="org-left">4TOPS@INT8 </td>
</tr>
<tr>
<td class="org-left">Memory</td>
<td class="org-left"> 8GB or 16GB LPDDR4X </td>
</tr>
<tr>
<td class="org-left">Storage</td>
<td class="org-left"> 32GB or 128GB eMMC, NGFF 2280 SATA SSD </td>
</tr>
<tr>
<td class="org-left">Display</td>
<td class="org-left"> 14 inch 1920 x 1200 LCD, miniHDMI </td>
</tr>
<tr>
<td class="org-left">Inoput</td>
<td class="org-left"> 88-Keyboard, touchpad </td>
</tr>
<tr>
<td class="org-left">Camera</td>
<td class="org-left"> 0.3MP Front Camera </td>
</tr>
<tr>
<td class="org-left">Audio</td>
<td class="org-left"> 3.5mm Headphone, MEMS MIC, StereoSpeaker </td>
</tr>
<tr>
<td class="org-left">Network</td>
<td class="org-left"> WiFi6 + BT5.4 </td>
</tr>
<tr>
<td class="org-left">Interface</td>
<td class="org-left"> USB3.0 Type-A, USB3.0 Type-C, USB2.0 Type-A, MicroSD Slot </td>
</tr>
<tr>
<td class="org-left"> Battery </td>
<td class="org-left"> 4500 mAh@7.6V </td>
</tr>
<tr>
<td class="org-left">Case</td>
<td class="org-left"> Silver plastic Case</td>
</tr>
<tr>
<td class="org-left">Size & Weight</td>
<td class="org-left">314x217x17mm 1.3Kg</td>
</tr>
<tr>
<td class="org-left">System</td>
<td class="org-left">Debian </td>
</tr>
</table>
## 上手指南
### 开箱
收到货后的包装箱:
![unbox1](./assets/lbook4a/unbox1.jpg)
打开包装箱取出两个部分上面是笔记本本体下面是12V2.5A电源适配器和MiniHDMI线。
![unbox2](./assets/lbook4a/unbox2.jpg)
取出主机,顶面如图所示:
![unbox3](./assets/lbook4a/unbox3.jpg)
底面如图所示可以看到一个SSD盖板旋出螺丝即可安装SSD以及底面中心是风扇吸风口本机使用热管+静音风扇散热,保证核心凉爽温度。
![unbox4](./assets/lbook4a/unbox4.jpg)
侧面之一如图所示接口从左到右依次为TF卡3.5mm耳机孔USB2.0接口,电脑锁。
![unbox5](./assets/lbook4a/unbox5.jpg)
侧面之二如图所示接口从左到右依次为USB3.0口12V DC口miniHDMI口USB-C口兼顾下载/Host/充电)
![unbox6](./assets/lbook4a/unbox6.jpg)
如果你购买的是准系统套餐则需要先查看后面的“SOM安装指南”安装好LM4A后再进行下面操作。
打开主机长按右上角电源键3s开机看到屏幕背光亮起 或者 左侧电源指示灯亮起 即可松开)
![unbox8](./assets/lbook4a/unbox8.jpg)
如果背光一直未亮起,可能是运输过程中电量耗尽,可以尝试插上电源适配器后长按电源开机。
开机背光亮起约15s后屏幕左上角会开始闪烁光标表示已经进入内核
再经过约20s后开始进入Debian桌面系统的登录界面。
输入帐号 sipeed默认密码 licheepi进入桌面系统后你可以测试 触摸板,键盘,摄像头等 是否工作,如有发现不能工作的,可以与客服联系。
默认系统为Debian预装了 ChromeOffice 等应用软件,你可以一一体验。
你可以使用sudo apt instal xxx 来安装软件,默认用户名密码为 sipeedlicheepi
其它一般性软件使用可以参考LicheePi4A的相关文档章节。
### SSD使用指南
Book支持M.2 2280 SATA 接口的SSD可以拆卸掉后壳的SSD盖板后安装
![ssd1](./assets/lbook4a/ssd1.jpg)
如果你不计划使用SSD可以手工关闭USB转SSD芯片来降低功耗约0.6Watt),提升续航:
进入/boot/dtbs/linux-image-5.10.113-zzz-sipeed-20240531+/thead/找到对应使用的dtb进行修改如8GB内存版本
sudo dtc -I dtb -O dts -o tmp.dts th1520-lpi4a-plastic.dtb
编辑以下部分,将 enable-active-high; 改成 enable-active-low; 即可
```
reg_sata_vcc_5v: regulator-sata-vcc-5v-en {
status = "okay";
compatible = "regulator-fixed";
regulator-name = "regulator-sata-vcc-5v-en";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_sys_vcc_5v>;
gpio = <&pcal6408ahk_c 1 1>;
enable-active-low;
regulator-always-on;
};
```
sudo dtc -I dts -O dtb -o th1520-lpi4a-plastic.dtb tmp.dts
然后重启即可关闭sata电源。
### SOM安装指南
如果你选购了准系统套餐则需要安装SOM模块。
需要自备十字螺丝刀拆卸开后盖需要先撕开两个脚垫脚垫下面各有一个螺丝安装好SOM模块在CPU/DDR上方安装硅脂放置热管重新安装回后盖。
![unbox7](./assets/lbook4a/unbox7.jpg)
## 系统
Book的镜像与LConsole的镜像一同发布仅uboot不同建议使用8+32及以上配置的SOM。
github仓库在 https://github.com/0x754C/sipeed-th1520-laptop-extra/releases
linux-image-*.deb 是sipeed提供的内核安装包如果只想升级内核可以安装这个安装前记得更新到对应版本的uboot以及备份文件。
sipeed-th1520-laptop-extra-*.deb 是sipeed提供的附加文件安装包包括配置文件测试工具和EC固件。
u-boot-with-spl-*.bin 是uboot文件请选择你电路板对应型号的uboot进行烧写烧写前记得备份文件如果烧写错误的uboot可能会导致无法开机。
boot|root-*.ext.xz 是分区镜像,如果想整个重新烧录,使用这个。
百度网盘:
链接: https://pan.baidu.com/s/1jkJ4YR7EhMRZ11XmccKDtg
提取码: qj1r
Mega网盘
https://mega.nz/folder/p9BCTbLb#sWSZvLw6nrBmqujQXfvWrg
常见应用展示:
![sys1](./assets/lbook4a/sys1.png)
Book 系统架构如下,细节可参照原理图或设备树文件。
![sys2](./assets/lbook4a/sys2.png)
## 资料下载
Lichee Book 4A 与 Lichee Console 4A 为相同主板,共享一份硬件资料:
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/LicheeConsole4A)
## 其他链接
[淘宝](https://item.taobao.com/item.htm?id=807162533118)
[Aliexpress](https://www.aliexpress.com/item/3256807018240741.html)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com

View File

@@ -1,250 +1,250 @@
---
title: LicheePi Cluster 4A
keywords: LicheePi, Sodimm, TH1520, RISCV, SBC, Cluster
update:
- date: 2023-09-07
version: v0.1
author: 0x754C
content:
- 初次编写文档
---
## 简介
Lichee Cluster 4A (以下简称 LC4A ) 是矽速科技研发的高性能 RISC-V 集群计算平台,可以用于构建多节点计算集群,而且还是学习 Kubernetes、自动化、边缘人工智能计算、本地迷你服务器托管应用程序、容器等的优秀工具。单个 Lichee Cluster 4A 最多可装配 7 个 LM4A 核心板,每个 LM4A 核心板含有 4TOPS@int8 AI 算力的 NPU单核心板最大支持 16GB LPDDR4X 内存和 128G eMMC 存储,整个集群有强大的灵活性和可扩展性。
Lichee Cluster 4A 板载八口千兆交换机以提供高速连接,轻松将多个节点连接起来,组成强大的计算集群,还支持 USB3.0 和 SD 卡存储扩展,能够轻松地将扩展额外存储或者增加外围设备。
Lichee Cluster 4A 还带有 BMC (带外管理)BMC 独立连接了每个 LM4A 的系统串口和复位引脚。BMC 可以从硬件上复位单个计算节点,还可以通过串口执行命令,比如执行 ser2net 或 kermit 来管理 Slot。
## 技术规格
<table>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<tr>
<td class="org-left">支持的核心板</td>
<td class="org-left"> <a href="https://wiki.sipeed.com/lm4a">LM4A</a> * 7</td>
</tr>
<tr>
<td class="org-left">CPU</td>
<td class="org-left"><strong>RiscV C910@1.85GHz * 4</strong> * 7</td>
</tr>
<tr>
<td class="org-left">GPU</td>
<td class="org-left">IMG™ B 系列 BXM-4-64 * 7</td>
</tr>
<tr>
<td class="org-left">NPU</td>
<td class="org-left">4TOPS@INT8 * 7</td>
</tr>
<tr>
<td class="org-left">RAM</td>
<td class="org-left">最大 16GB * 7</td>
</tr>
<tr>
<td class="org-left">EMMC</td>
<td class="org-left">最大 128GB * 7</td>
</tr>
<tr>
<td class="org-left">BMC</td>
<td class="org-left"><a href="https://wiki.sipeed.com/Lichee-RV">SIPEED Lichee RV</a></td>
</tr>
<tr>
<td class="org-left">电源管理</td>
<td class="org-left"><a href="https://wiki.sipeed.com/m0sense"> Sipeed M0 Sense</a></td>
</tr>
<tr>
<td class="org-left">Ethernet</td>
<td class="org-left">千兆以太网1(Slot#1)<br>千兆以太网2(交换机)<br>百兆以太网(BMC)</td>
</tr>
<tr>
<td class="org-left">USB</td>
<td class="org-left">USB3.0 * 7 (LM4A)<br>USB2.0 * 1 (BMC)</td>
</tr>
<tr>
<td class="org-left">HDMI</td>
<td class="org-left">HDMI * 1 (Slot 1)</td>
</tr>
<tr>
<td class="org-left">SDCARD</td>
<td class="org-left">TF * 7</td>
</tr>
<tr>
<td class="org-left">电源支持</td>
<td class="org-left">支持 DC 口直流电源供电<br>支持 ATX 24PIN 电源</td>
</tr>
<tr>
<td class="org-left">RTC 供电</td>
<td class="org-left">CR2032 纽扣电池</td>
</tr>
<tr>
<td class="org-left">散热</td>
<td class="org-left">5V PWM 风扇接口 * 7<br>12V 4PIN PWM 风扇接口 * 1</td>
</tr>
<tr>
<td class="org-left">尺寸</td>
<td class="org-left">Mini ITX, 17 * 17 cm (6.7 * 6.7 inch)<br>可选配 MINI ITX 机箱, 20 * 12 * 22 cm</td>
</tr>
</table>
## 硬件系统
### 主板介绍
![lc4a_top](./assets/lc4a/lc4a_top.png)
### 主板框架图
![lc4a_architecture](./assets/lc4a/lc4a_architecture.png)
LicheeRV SOMD1 C906@1GHz有5个原生串口以及两个USB串口分别独立连接到了7个SOM上。
每个 LM4A 的 RST/BOOT 均可通过模拟开关进行控制。
1号LM4A默认引出了第二千兆口和HDMI口方便该SOM进行整个集群的任务分发操作。
主板可通过12V DC充电头供电推荐12V9A以上或者使用标准ATX电源供电。
### 机箱介绍
推荐选配MINI-ITX机箱该机箱具备良好的外观和散热性能方便计算集群的部署展示。
机箱适配MINI-ITX主板配备250W大功率电源并安装了12cm静音风扇散热可以保证CPU在满载运行时的温度低于70度。
![lc4a_box](./assets/lc4a/lc4a_box.png)
### 硬件安装指南
默认运输途中LC4A已经安装了所有SOM如果你需要拆卸或者升级SOM可以参考以下说明。
#### 安装核心板
向两侧拉开白色锁扣,插入前请确认缺口为止,避免方向错误导致损坏
![lc4a_install_goldfinger](./assets/lc4a/lc4a_install_goldfinger.png)
放入核心板后均匀的向下施加压力
![lc4a_install_install_lm4a](./assets/lc4a/lc4a_install_install_lm4a.png)
听到喀哒声后,确认白色锁扣正确扣上,安装完成。如果需要取出核心板,向两侧拉开白色锁扣即可。
![lc4a_install_slot](./assets/lc4a/lc4a_install_slot.jpeg)
#### 安装BMC
安装烧录好镜像的SD卡到LicheeRV, 然后将LicheeRV的模块安装至交换机芯片旁边的座子,然后拧上螺丝.
#### 插入电源
可选ATX电源供电或者DC电影供电。
确认ATX电源插座的卡扣已经扣紧避免接触不良导致连接器升温
![lc4a_power_atx20_cable](./assets/lc4a/lc4a_power_atx20_cable.png)
插上跳线帽
![lc4a_power_jumpwire](./assets/lc4a/lc4a_power_jumpwire.png)
#### 网络连接
集群系统对外主要连接两个网口1. 板载千兆交换机网口 2. BMC网口
板载千兆交换机网口建议连接入用户所在内网或者主网络,用于集群获取所需网络数据。
BMC网口建议连入独立网络进行集群控制更具安全性。
集群内部通过千兆交换机连接。
如何获得集群的IP地址:
预装的固件安装启用了mdns服务
在你的PC上启用avahi服务(Linux)
使用mdns扫描整个网络获得lc4a的mdns域名信息:
```
avahi-browse -art | grep lc4a
```
然后使用:
```
ssh debin@lc4aXXXX.local
```
XXXX为mac地址后四位用于区分每个slot
## 软件系统
### LM4A镜像
集群中的LM4A SOM可以直接使用LicheePi4A的镜像.
如果需要使能USB可以在Linux设备树中应用以下PATCH: [点我下载](https://dl.sipeed.com/fileList/LICHEE/LicheeCluster4A/04_Firmware/lpi4a/src/linux/0001-arch-riscv-boot-dts-lpi4a-disable-i2c-io-expander-fo.patch)
或者直接使用预编译镜像:[点我下载](https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/lpi4a/bin)
镜像烧录方法:
1. 按下BOOT按键的同时按一下RST按键然后使用A TO A公头的USB线缆连接到电脑
2. 使用fastboot工具烧录
### OpenBMC镜像
主板上的 LicheeRV SOM 运行 OpenBMC 来管理主板上的 SOM。
镜像下载地址: [点我跳转](https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/bmc/bin)
镜像烧录方法:
```
bmaptool copy obmc-phosphor-image-licheepi-rv.wic.gz /dev/YOUR_SDCARD
```
默认用户名: `root`
默认密码: `0penBmc`
0 是零,不是 O
如果需要开发定制请下载PATCH:
https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/bmc/src
并应用到OpenBMC源码:
```
git clone https://github.com/openbmc/openbmc/
git checkout commit-id
git am xxx.patch
```
### OpenBMC管理
从SSH访问Slot的串口:
```
ssh -p 2301 root@bmcip # access first slot's serial port
```
* 端口 22: OpenBMC的shell
* 端口 2301: slot1 的 SOL (Serial Over LAN)
* 端口 2302: slot2 的 SOL
* 端口 2303: slot3 的 SOL
* 端口 2304: slot4 的 SOL
* 端口 2305: slot5 的 SOL
* 端口 2306: slot6 的 SOL
* 端口 2307: slot7 的 SOL
每个Slot的串口输出到日志:
```
cat /var/log/obmc-cons*.log
```
对 LM4A 的电源管理:
启动/复位1-7 分别对应 slot 1 到 7
```
/usr/libexec/phosphor-state-manager/muxctl.sh 1 boot
/usr/libexec/phosphor-state-manager/muxctl.sh 2 reset
```
---
title: LicheePi Cluster 4A
keywords: LicheePi, Sodimm, TH1520, RISCV, SBC, Cluster
update:
- date: 2023-09-07
version: v0.1
author: 0x754C
content:
- 初次编写文档
---
## 简介
Lichee Cluster 4A (以下简称 LC4A ) 是矽速科技研发的高性能 RISC-V 集群计算平台,可以用于构建多节点计算集群,而且还是学习 Kubernetes、自动化、边缘人工智能计算、本地迷你服务器托管应用程序、容器等的优秀工具。单个 Lichee Cluster 4A 最多可装配 7 个 LM4A 核心板,每个 LM4A 核心板含有 4TOPS@int8 AI 算力的 NPU单核心板最大支持 16GB LPDDR4X 内存和 128G eMMC 存储,整个集群有强大的灵活性和可扩展性。
Lichee Cluster 4A 板载八口千兆交换机以提供高速连接,轻松将多个节点连接起来,组成强大的计算集群,还支持 USB3.0 和 SD 卡存储扩展,能够轻松地将扩展额外存储或者增加外围设备。
Lichee Cluster 4A 还带有 BMC (带外管理)BMC 独立连接了每个 LM4A 的系统串口和复位引脚。BMC 可以从硬件上复位单个计算节点,还可以通过串口执行命令,比如执行 ser2net 或 kermit 来管理 Slot。
## 技术规格
<table>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<tr>
<td class="org-left">支持的核心板</td>
<td class="org-left"> <a href="https://wiki.sipeed.com/lm4a">LM4A</a> * 7</td>
</tr>
<tr>
<td class="org-left">CPU</td>
<td class="org-left"><strong>RiscV C910@1.85GHz * 4</strong> * 7</td>
</tr>
<tr>
<td class="org-left">GPU</td>
<td class="org-left">IMG™ B 系列 BXM-4-64 * 7</td>
</tr>
<tr>
<td class="org-left">NPU</td>
<td class="org-left">4TOPS@INT8 * 7</td>
</tr>
<tr>
<td class="org-left">RAM</td>
<td class="org-left">最大 16GB * 7</td>
</tr>
<tr>
<td class="org-left">EMMC</td>
<td class="org-left">最大 128GB * 7</td>
</tr>
<tr>
<td class="org-left">BMC</td>
<td class="org-left"><a href="https://wiki.sipeed.com/Lichee-RV">SIPEED Lichee RV</a></td>
</tr>
<tr>
<td class="org-left">电源管理</td>
<td class="org-left"><a href="https://wiki.sipeed.com/m0sense"> Sipeed M0 Sense</a></td>
</tr>
<tr>
<td class="org-left">Ethernet</td>
<td class="org-left">千兆以太网1(Slot#1)<br>千兆以太网2(交换机)<br>百兆以太网(BMC)</td>
</tr>
<tr>
<td class="org-left">USB</td>
<td class="org-left">USB3.0 * 7 (LM4A)<br>USB2.0 * 1 (BMC)</td>
</tr>
<tr>
<td class="org-left">HDMI</td>
<td class="org-left">HDMI * 1 (Slot 1)</td>
</tr>
<tr>
<td class="org-left">SDCARD</td>
<td class="org-left">TF * 7</td>
</tr>
<tr>
<td class="org-left">电源支持</td>
<td class="org-left">支持 DC 口直流电源供电<br>支持 ATX 24PIN 电源</td>
</tr>
<tr>
<td class="org-left">RTC 供电</td>
<td class="org-left">CR2032 纽扣电池</td>
</tr>
<tr>
<td class="org-left">散热</td>
<td class="org-left">5V PWM 风扇接口 * 7<br>12V 4PIN PWM 风扇接口 * 1</td>
</tr>
<tr>
<td class="org-left">尺寸</td>
<td class="org-left">Mini ITX, 17 * 17 cm (6.7 * 6.7 inch)<br>可选配 MINI ITX 机箱, 20 * 12 * 22 cm</td>
</tr>
</table>
## 硬件系统
### 主板介绍
![lc4a_top](./assets/lc4a/lc4a_top.png)
### 主板框架图
![lc4a_architecture](./assets/lc4a/lc4a_architecture.png)
LicheeRV SOMD1 C906@1GHz有5个原生串口以及两个USB串口分别独立连接到了7个SOM上。
每个 LM4A 的 RST/BOOT 均可通过模拟开关进行控制。
1号LM4A默认引出了第二千兆口和HDMI口方便该SOM进行整个集群的任务分发操作。
主板可通过12V DC充电头供电推荐12V9A以上或者使用标准ATX电源供电。
### 机箱介绍
推荐选配MINI-ITX机箱该机箱具备良好的外观和散热性能方便计算集群的部署展示。
机箱适配MINI-ITX主板配备250W大功率电源并安装了12cm静音风扇散热可以保证CPU在满载运行时的温度低于70度。
![lc4a_box](./assets/lc4a/lc4a_box.png)
### 硬件安装指南
默认运输途中LC4A已经安装了所有SOM如果你需要拆卸或者升级SOM可以参考以下说明。
#### 安装核心板
向两侧拉开白色锁扣,插入前请确认缺口为止,避免方向错误导致损坏
![lc4a_install_goldfinger](./assets/lc4a/lc4a_install_goldfinger.png)
放入核心板后均匀的向下施加压力
![lc4a_install_install_lm4a](./assets/lc4a/lc4a_install_install_lm4a.png)
听到喀哒声后,确认白色锁扣正确扣上,安装完成。如果需要取出核心板,向两侧拉开白色锁扣即可。
![lc4a_install_slot](./assets/lc4a/lc4a_install_slot.jpeg)
#### 安装BMC
安装烧录好镜像的SD卡到LicheeRV, 然后将LicheeRV的模块安装至交换机芯片旁边的座子,然后拧上螺丝.
#### 插入电源
可选ATX电源供电或者DC电影供电。
确认ATX电源插座的卡扣已经扣紧避免接触不良导致连接器升温
![lc4a_power_atx20_cable](./assets/lc4a/lc4a_power_atx20_cable.png)
插上跳线帽
![lc4a_power_jumpwire](./assets/lc4a/lc4a_power_jumpwire.png)
#### 网络连接
集群系统对外主要连接两个网口1. 板载千兆交换机网口 2. BMC网口
板载千兆交换机网口建议连接入用户所在内网或者主网络,用于集群获取所需网络数据。
BMC网口建议连入独立网络进行集群控制更具安全性。
集群内部通过千兆交换机连接。
如何获得集群的IP地址:
预装的固件安装启用了mdns服务
在你的PC上启用avahi服务(Linux)
使用mdns扫描整个网络获得lc4a的mdns域名信息:
```
avahi-browse -art | grep lc4a
```
然后使用:
```
ssh debin@lc4aXXXX.local
```
XXXX为mac地址后四位用于区分每个slot
## 软件系统
### LM4A镜像
集群中的LM4A SOM可以直接使用LicheePi4A的镜像.
如果需要使能USB可以在Linux设备树中应用以下PATCH: [点我下载](https://dl.sipeed.com/fileList/LICHEE/LicheeCluster4A/04_Firmware/lpi4a/src/linux/0001-arch-riscv-boot-dts-lpi4a-disable-i2c-io-expander-fo.patch)
或者直接使用预编译镜像:[点我下载](https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/lpi4a/bin)
镜像烧录方法:
1. 按下BOOT按键的同时按一下RST按键然后使用A TO A公头的USB线缆连接到电脑
2. 使用fastboot工具烧录
### OpenBMC镜像
主板上的 LicheeRV SOM 运行 OpenBMC 来管理主板上的 SOM。
镜像下载地址: [点我跳转](https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/bmc/bin)
镜像烧录方法:
```
bmaptool copy obmc-phosphor-image-licheepi-rv.wic.gz /dev/YOUR_SDCARD
```
默认用户名: `root`
默认密码: `0penBmc`
0 是零,不是 O
如果需要开发定制请下载PATCH:
https://dl.sipeed.com/shareURL/LICHEE/LicheeCluster4A/04_Firmware/bmc/src
并应用到OpenBMC源码:
```
git clone https://github.com/openbmc/openbmc/
git checkout commit-id
git am xxx.patch
```
### OpenBMC管理
从SSH访问Slot的串口:
```
ssh -p 2301 root@bmcip # access first slot's serial port
```
* 端口 22: OpenBMC的shell
* 端口 2301: slot1 的 SOL (Serial Over LAN)
* 端口 2302: slot2 的 SOL
* 端口 2303: slot3 的 SOL
* 端口 2304: slot4 的 SOL
* 端口 2305: slot5 的 SOL
* 端口 2306: slot6 的 SOL
* 端口 2307: slot7 的 SOL
每个Slot的串口输出到日志:
```
cat /var/log/obmc-cons*.log
```
对 LM4A 的电源管理:
启动/复位1-7 分别对应 slot 1 到 7
```
/usr/libexec/phosphor-state-manager/muxctl.sh 1 boot
/usr/libexec/phosphor-state-manager/muxctl.sh 2 reset
```

View File

@@ -1,43 +1,43 @@
---
title: 镜像集合
keywords: Linux, Lichee, TH1520, Console, RISCV, image
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## Sipeed官方镜像
https://github.com/0x754C/sipeed-th1520-laptop-extra/releases
linux-image-*.deb 是sipeed提供的内核安装包如果只想升级内核可以安装这个安装前记得更新到对应版本的uboot以及备份文件。
sipeed-th1520-laptop-extra-*.deb 是sipeed提供的附加文件安装包包括配置文件测试工具和EC固件。
u-boot-with-spl-*.bin 是uboot文件请选择你电路板对应型号的uboot进行烧写烧写前记得备份文件如果烧写错误的uboot可能会导致无法开机。
boot|root-*.ext.xz 是分区镜像,如果想整个重新烧录,使用这个。
## Sipeed官方镜像(旧版)
Sipeed 官方镜像基于 Debian 系统修改适配。
默认镜像的帐号密码配置如下:
账户: `sipeed`,密码:`licheepi`
账户:`debian`,密码: `debian`
root 账户默认没有设置密码。
镜像下载:
[百度网盘](https://pan.baidu.com/s/11xiphA-9OAGTaZBY8kTNEg) 提取码: h3gv
[mega网盘](https://mega.nz/folder/p0oiwCqI#EFGgwRnoB9mX14pKI2pu4Q)
烧录方式请参考[烧录镜像](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lcon4a/4_burn_image.html)
## PLCT官方镜像
https://github.com/revyos/mkimg-th1520/releases
烧录方法同上
---
title: 镜像集合
keywords: Linux, Lichee, TH1520, Console, RISCV, image
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## Sipeed官方镜像
https://github.com/0x754C/sipeed-th1520-laptop-extra/releases
linux-image-*.deb 是sipeed提供的内核安装包如果只想升级内核可以安装这个安装前记得更新到对应版本的uboot以及备份文件。
sipeed-th1520-laptop-extra-*.deb 是sipeed提供的附加文件安装包包括配置文件测试工具和EC固件。
u-boot-with-spl-*.bin 是uboot文件请选择你电路板对应型号的uboot进行烧写烧写前记得备份文件如果烧写错误的uboot可能会导致无法开机。
boot|root-*.ext.xz 是分区镜像,如果想整个重新烧录,使用这个。
## Sipeed官方镜像(旧版)
Sipeed 官方镜像基于 Debian 系统修改适配。
默认镜像的帐号密码配置如下:
账户: `sipeed`,密码:`licheepi`
账户:`debian`,密码: `debian`
root 账户默认没有设置密码。
镜像下载:
[百度网盘](https://pan.baidu.com/s/11xiphA-9OAGTaZBY8kTNEg) 提取码: h3gv
[mega网盘](https://mega.nz/folder/p0oiwCqI#EFGgwRnoB9mX14pKI2pu4Q)
烧录方式请参考[烧录镜像](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lcon4a/4_burn_image.html)
## PLCT官方镜像
https://github.com/revyos/mkimg-th1520/releases
烧录方法同上

View File

@@ -1,63 +1,63 @@
---
title: 烧录镜像
keywords: Linux, Lichee, TH1520, Console, RISCV, image
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 镜像下载:
https://github.com/0x754C/sipeed-th1520-laptop-extra/releases
## 全量镜像
### 通过 typeC 口烧录
1. 拆掉SSD后盖
2. 找到BOOT按键和RST按键
![boot_and_rst_key](./assets/burn_image/boot_and_rst_key.png)
3. 按着BOOT按键然后按键盘上的电源按键开机然后将 console 连接 typec 口到烧录镜像的 PC。
![typec_connect](./assets/burn_image/typec_connect.png)
4. 在烧录镜像的 PC 上下载用于烧录的镜像: [点我下载](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lcon4a/3_images.html)
5. 执行烧录指令:
```
fastboot flash ram u-boot-with-spl-console.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl-console.bin
fastboot flash boot boot.ext4
fastboot flash root root.ext4
```
10. 按下 BOOT 旁边的 RST 按键重启 Console 笔记本。
### 通过 u-boot 进行网络烧录
1. console 连接网线(注意和用于烧录镜像的 PC 处于同一局域网中)
2. 用串口工具连接 console 上的串口,上电,进入到 uboot 命令行中
3. console 执行 dhcp 命令分配一个 ip 地址
4. console 执行 fastboot udp 开启监听
5. 烧录镜像的 PC 机上运行如下命令
```shell
./fastboot -s udp:board_ip flash uboot uboot-xxxx.bin
./fastboot -s udp:board_ip flash boot boot-xxxx.ext4
./fastboot -s udp:board_ip flash root root-xxxx.ext4
```
效果如下:
![fastboot_udp](./assets/burn_image/fastboot_udp.png)
---
title: 烧录镜像
keywords: Linux, Lichee, TH1520, Console, RISCV, image
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 镜像下载:
https://github.com/0x754C/sipeed-th1520-laptop-extra/releases
## 全量镜像
### 通过 typeC 口烧录
1. 拆掉SSD后盖
2. 找到BOOT按键和RST按键
![boot_and_rst_key](./assets/burn_image/boot_and_rst_key.png)
3. 按着BOOT按键然后按键盘上的电源按键开机然后将 console 连接 typec 口到烧录镜像的 PC。
![typec_connect](./assets/burn_image/typec_connect.png)
4. 在烧录镜像的 PC 上下载用于烧录的镜像: [点我下载](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lcon4a/3_images.html)
5. 执行烧录指令:
```
fastboot flash ram u-boot-with-spl-console.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl-console.bin
fastboot flash boot boot.ext4
fastboot flash root root.ext4
```
10. 按下 BOOT 旁边的 RST 按键重启 Console 笔记本。
### 通过 u-boot 进行网络烧录
1. console 连接网线(注意和用于烧录镜像的 PC 处于同一局域网中)
2. 用串口工具连接 console 上的串口,上电,进入到 uboot 命令行中
3. console 执行 dhcp 命令分配一个 ip 地址
4. console 执行 fastboot udp 开启监听
5. 烧录镜像的 PC 机上运行如下命令
```shell
./fastboot -s udp:board_ip flash uboot uboot-xxxx.bin
./fastboot -s udp:board_ip flash boot boot-xxxx.ext4
./fastboot -s udp:board_ip flash root root-xxxx.ext4
```
效果如下:
![fastboot_udp](./assets/burn_image/fastboot_udp.png)

View File

@@ -1,23 +1,23 @@
---
title: 外设使用
keywords: Linux, Lichee, TH1520, Console, RISCV, Peripheral
update:
- date: 2023-12-14
version: v1.0
author: ztd
content:
- Release docs
---
## SSD
SSD 电源默认关闭,可以使用以下命令打开,即可看到 SSD 硬盘。
```shell
sh /opt/ssd-power-cycle.sh
```
## 屏幕&触摸
若遇到屏幕旋转方向不对,或者触摸位置不准,可以运行以下脚本:
```shell
sh /opt/touch-setup.sh
---
title: 外设使用
keywords: Linux, Lichee, TH1520, Console, RISCV, Peripheral
update:
- date: 2023-12-14
version: v1.0
author: ztd
content:
- Release docs
---
## SSD
SSD 电源默认关闭,可以使用以下命令打开,即可看到 SSD 硬盘。
```shell
sh /opt/ssd-power-cycle.sh
```
## 屏幕&触摸
若遇到屏幕旋转方向不对,或者触摸位置不准,可以运行以下脚本:
```shell
sh /opt/touch-setup.sh
```

View File

@@ -1,213 +1,213 @@
---
title: LicheePi Console 4A
keywords: LicheeConsole, TH1520, RISCV, SBC, Laptop
update:
- date: 2023-10-27
version: v0.1
author: Zepan
content:
- 初次编写文档
---
## 简介
Lichee Console 4A (以下简称 Console ) 是矽速科技研发的高性能 RISC-V 便携终端旨在让RISC-V开发者提前体验RISC-V产品在实际生活中的应用。
Lichee Console 4A 在不到A5笔记本的尺寸下集成了高性能RISC-V TH1520 SOM(8+32/16+128可选), 7寸1280x800电容触摸屏72键键盘以及USB-AUSB-C2242 SSD卡槽TF卡槽miniHDMI3.5mm耳机孔,以太网口 等丰富接口真正做到了将RISC-V开发终端塞进口袋里
Lichee Console 4A 的软件支持也做到了较为完善的程度默认搭载Debian操作系统支持 Chrome浏览器VSCode IDEKiCAD PCB绘图软件Office软件4K播放器多种游戏模拟器基本满足日常工作学习使用。
Lichee Console 4A 使用了模块化的设计方式如果你之前购买了LicheePi4A则可以复用SOM到Console上。
> 注意:高性能RISCV消费电子在当前(2023年)还是属于较为早期的阶段Lichee Console 4A主要面向 RISC-V 开发者体验开发使用至少要求熟练的Linux操作经验普通消费者是无法直接上手使用的。
> 如果你是没有Linux经验的普通用户请不要购买。
![lcon4a](./assets/lcon4a/lcon4a.jpg)
## 技术规格
<table>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<tr>
<td class="org-left">SOM</td>
<td class="org-left"> <a href="https://wiki.sipeed.com/lm4a">LM4A</a> </td>
</tr>
<tr>
<td class="org-left">CPU</td>
<td class="org-left"><strong>RISC-V RV64GCV C910@1.85GHz * 4</strong> </td>
</tr>
<tr>
<td class="org-left">GPU</td>
<td class="org-left">IMG™ B 系列 BXM-4-64 </td>
</tr>
<tr>
<td class="org-left">NPU</td>
<td class="org-left">4TOPS@INT8 </td>
</tr>
<tr>
<td class="org-left">Memory</td>
<td class="org-left"> 8GB or 16GB LPDDR4X </td>
</tr>
<tr>
<td class="org-left">Storage</td>
<td class="org-left"> 32GB or 128GB eMMC, NGFF 2242 SATA SSD </td>
</tr>
<tr>
<td class="org-left">Display</td>
<td class="org-left"> 7 inch 1280 x 800 LCD, miniHDMI </td>
</tr>
<tr>
<td class="org-left">Inoput</td>
<td class="org-left"> Capacitive Touch, RedPoint, 72-Keyboard </td>
</tr>
<tr>
<td class="org-left">Camera</td>
<td class="org-left"> 2MP Front Camera </td>
</tr>
<tr>
<td class="org-left">Audio</td>
<td class="org-left"> 3.5mm Headphone, MEMS MIC, StereoSpeaker </td>
</tr>
<tr>
<td class="org-left">Network</td>
<td class="org-left"> WiFi6 + BT5.4, RJ45 GbE </td>
</tr>
<tr>
<td class="org-left">Interface</td>
<td class="org-left"> USB3.0 Type-A, USB3.0 Type-C,
USB2.0 Type-A, MicroSD Slot </td>
</tr>
<tr>
<td class="org-left"> Battery </td>
<td class="org-left"> 3000 mAh@7.6V </td>
</tr>
<tr>
<td class="org-left">Case</td>
<td class="org-left">Aluminum Alloy Case</td>
</tr>
<tr>
<td class="org-left">Size & Weight</td>
<td class="org-left">18.5 x 14 x 2 cm, 720g</td>
</tr>
<tr>
<td class="org-left">System</td>
<td class="org-left">Debian </td>
</tr>
</table>
## 上手指南
### 开箱
打开包装盒上层是LicheeConsole4A主机
![unbox1](./assets/lcon4a/unbox1.png)
取下上层主机后下层是12V3A电源适配器和MiniHDMI线。
![unbox2](./assets/lcon4a/unbox2.png)
取出主机,认识下主机侧面的接口:
![unbox3](./assets/lcon4a/unbox3.png)
如果你购买的是准系统套餐则需要先查看后面的“SOM安装指南”安装好LM4A后再进行下面操作。
打开主机长按右上角电源键3s开机看到屏幕背光亮起即可松开
![unbox4](./assets/lcon4a/unbox4.png)
如果背光一直未亮起,可能是运输过程中电量耗尽,可以尝试插上电源适配器后长按电源开机。
开机背光亮起约10s后屏幕会显示Linux企鹅图标和开机启动日志早期镜像版本在此阶段竖屏显示
日志打印约20s后开始进入Debian桌面系统。
进入桌面系统后,你可以测试 屏幕触摸,指点杆,键盘 是否工作,如有发现不能工作的,可以与客服联系。
默认系统为Debian预装了 ChromeVSCodeOfficeKiCADKODIParole 等应用软件,你可以一一体验。
你可以使用sudo apt instal xxx 来安装软件,默认用户名密码为 sipeedlicheepi
其它一般性软件使用可以参考LicheePi4A的相关文档章节。
### SSD安装指南
Console支持M.2 2242 SATA 接口的SSD可以拆卸掉后壳的SSD盖板后安装
![ssd1](./assets/lcon4a/ssd1.jpg)
### SOM安装指南
如果你选购了准系统套餐则需要安装SOM模块。
需要自备六角螺丝刀拆卸开后盖安装好SOM模块在CPU/DDR上方安装硅脂放置热管再在热管上放置长条形硅脂片重新安装回后盖。
详细安装可以参见下面章节的图片。
## 系统
Console的镜像与LicheePi4A的镜像一同发布默认为Full镜像建议使用8+32及以上配置的SOM。如果使用8+8的SOM需要自行裁剪文件系统。
可以到[这里](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lcon4a/3_images.html)下载镜像。
常见应用展示:
![sys1](./assets/lcon4a/sys1.png)
Console 系统架构如下,细节可参照原理图或设备树文件。
![sys2](./assets/lcon4a/sys2.png)
## 功耗相关
### 供电
Console 整机功耗最大约11W空载时约7~8W.
可以使用12V DC3.5mm接口供电或者USB-C口5V供电。
### 续航
为了Console的续航和发热考虑目前默认镜像的CPU主频上限限制到了1.5GHz。
在该主频下实测使用时间在2~3小时。stress-ng 压测 2小时亮屏空载3小时
默认屏幕亮度为50%,如果需要延长续航时间,可以降低屏幕亮度:
```
sudo -i
cd /sys/class/backlight/pwm-backlight@0
echo xxx > brightness # xxx is brightness you want, 0~100
```
功耗组成300MHz空载亮屏50%亮度)
![heat1](./assets/lcon4a/power1.png)
### 散热
Console使用3cm涡轮风扇+10cm热管对CPU进行散热, 热管一端贴CPU另一端由涡轮风扇散热并且顶面使用导热硅脂接触底壳散热。
![heat1](./assets/lcon4a/heat1.png)
![heat1](./assets/lcon4a/heat2.png)
在持续进行高负载工作下如浏览器视频软解CPU温度最终可达6065度底壳温度最高可达50度左右。
![heat1](./assets/lcon4a/heat3.png)
如有更好的散热建议可发送邮件到support@sipeed.com
> 目前2023.11浏览器硬解尚未适配所以在观看浏览器视频时会占用大量CPU预计在12月份会合并入浏览器硬解功能。
### 待机
Console的硬件电路设计中考虑了待机情况对每个相关外设都加入了电源控制但是目前(2023.11)TH1520的低功耗功能还未加入SDK所以待机功能还需等待更新。
### 关机
Console目前的关机功耗约为1.3mA可支撑约3个月关机时间。
## 资料下载
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/LicheeConsole4A)
## 其他链接
[淘宝] (https://item.taobao.com/item.htm?id=754766940927)
[Aliexpress](https://www.aliexpress.us/item/3256805987954160.html)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com
---
title: LicheePi Console 4A
keywords: LicheeConsole, TH1520, RISCV, SBC, Laptop
update:
- date: 2023-10-27
version: v0.1
author: Zepan
content:
- 初次编写文档
---
## 简介
Lichee Console 4A (以下简称 Console ) 是矽速科技研发的高性能 RISC-V 便携终端旨在让RISC-V开发者提前体验RISC-V产品在实际生活中的应用。
Lichee Console 4A 在不到A5笔记本的尺寸下集成了高性能RISC-V TH1520 SOM(8+32/16+128可选), 7寸1280x800电容触摸屏72键键盘以及USB-AUSB-C2242 SSD卡槽TF卡槽miniHDMI3.5mm耳机孔,以太网口 等丰富接口真正做到了将RISC-V开发终端塞进口袋里
Lichee Console 4A 的软件支持也做到了较为完善的程度默认搭载Debian操作系统支持 Chrome浏览器VSCode IDEKiCAD PCB绘图软件Office软件4K播放器多种游戏模拟器基本满足日常工作学习使用。
Lichee Console 4A 使用了模块化的设计方式如果你之前购买了LicheePi4A则可以复用SOM到Console上。
> 注意:高性能RISCV消费电子在当前(2023年)还是属于较为早期的阶段Lichee Console 4A主要面向 RISC-V 开发者体验开发使用至少要求熟练的Linux操作经验普通消费者是无法直接上手使用的。
> 如果你是没有Linux经验的普通用户请不要购买。
![lcon4a](./assets/lcon4a/lcon4a.jpg)
## 技术规格
<table>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<tr>
<td class="org-left">SOM</td>
<td class="org-left"> <a href="https://wiki.sipeed.com/lm4a">LM4A</a> </td>
</tr>
<tr>
<td class="org-left">CPU</td>
<td class="org-left"><strong>RISC-V RV64GCV C910@1.85GHz * 4</strong> </td>
</tr>
<tr>
<td class="org-left">GPU</td>
<td class="org-left">IMG™ B 系列 BXM-4-64 </td>
</tr>
<tr>
<td class="org-left">NPU</td>
<td class="org-left">4TOPS@INT8 </td>
</tr>
<tr>
<td class="org-left">Memory</td>
<td class="org-left"> 8GB or 16GB LPDDR4X </td>
</tr>
<tr>
<td class="org-left">Storage</td>
<td class="org-left"> 32GB or 128GB eMMC, NGFF 2242 SATA SSD </td>
</tr>
<tr>
<td class="org-left">Display</td>
<td class="org-left"> 7 inch 1280 x 800 LCD, miniHDMI </td>
</tr>
<tr>
<td class="org-left">Inoput</td>
<td class="org-left"> Capacitive Touch, RedPoint, 72-Keyboard </td>
</tr>
<tr>
<td class="org-left">Camera</td>
<td class="org-left"> 2MP Front Camera </td>
</tr>
<tr>
<td class="org-left">Audio</td>
<td class="org-left"> 3.5mm Headphone, MEMS MIC, StereoSpeaker </td>
</tr>
<tr>
<td class="org-left">Network</td>
<td class="org-left"> WiFi6 + BT5.4, RJ45 GbE </td>
</tr>
<tr>
<td class="org-left">Interface</td>
<td class="org-left"> USB3.0 Type-A, USB3.0 Type-C,
USB2.0 Type-A, MicroSD Slot </td>
</tr>
<tr>
<td class="org-left"> Battery </td>
<td class="org-left"> 3000 mAh@7.6V </td>
</tr>
<tr>
<td class="org-left">Case</td>
<td class="org-left">Aluminum Alloy Case</td>
</tr>
<tr>
<td class="org-left">Size & Weight</td>
<td class="org-left">18.5 x 14 x 2 cm, 720g</td>
</tr>
<tr>
<td class="org-left">System</td>
<td class="org-left">Debian </td>
</tr>
</table>
## 上手指南
### 开箱
打开包装盒上层是LicheeConsole4A主机
![unbox1](./assets/lcon4a/unbox1.png)
取下上层主机后下层是12V3A电源适配器和MiniHDMI线。
![unbox2](./assets/lcon4a/unbox2.png)
取出主机,认识下主机侧面的接口:
![unbox3](./assets/lcon4a/unbox3.png)
如果你购买的是准系统套餐则需要先查看后面的“SOM安装指南”安装好LM4A后再进行下面操作。
打开主机长按右上角电源键3s开机看到屏幕背光亮起即可松开
![unbox4](./assets/lcon4a/unbox4.png)
如果背光一直未亮起,可能是运输过程中电量耗尽,可以尝试插上电源适配器后长按电源开机。
开机背光亮起约10s后屏幕会显示Linux企鹅图标和开机启动日志早期镜像版本在此阶段竖屏显示
日志打印约20s后开始进入Debian桌面系统。
进入桌面系统后,你可以测试 屏幕触摸,指点杆,键盘 是否工作,如有发现不能工作的,可以与客服联系。
默认系统为Debian预装了 ChromeVSCodeOfficeKiCADKODIParole 等应用软件,你可以一一体验。
你可以使用sudo apt instal xxx 来安装软件,默认用户名密码为 sipeedlicheepi
其它一般性软件使用可以参考LicheePi4A的相关文档章节。
### SSD安装指南
Console支持M.2 2242 SATA 接口的SSD可以拆卸掉后壳的SSD盖板后安装
![ssd1](./assets/lcon4a/ssd1.jpg)
### SOM安装指南
如果你选购了准系统套餐则需要安装SOM模块。
需要自备六角螺丝刀拆卸开后盖安装好SOM模块在CPU/DDR上方安装硅脂放置热管再在热管上放置长条形硅脂片重新安装回后盖。
详细安装可以参见下面章节的图片。
## 系统
Console的镜像与LicheePi4A的镜像一同发布默认为Full镜像建议使用8+32及以上配置的SOM。如果使用8+8的SOM需要自行裁剪文件系统。
可以到[这里](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lcon4a/3_images.html)下载镜像。
常见应用展示:
![sys1](./assets/lcon4a/sys1.png)
Console 系统架构如下,细节可参照原理图或设备树文件。
![sys2](./assets/lcon4a/sys2.png)
## 功耗相关
### 供电
Console 整机功耗最大约11W空载时约7~8W.
可以使用12V DC3.5mm接口供电或者USB-C口5V供电。
### 续航
为了Console的续航和发热考虑目前默认镜像的CPU主频上限限制到了1.5GHz。
在该主频下实测使用时间在2~3小时。stress-ng 压测 2小时亮屏空载3小时
默认屏幕亮度为50%,如果需要延长续航时间,可以降低屏幕亮度:
```
sudo -i
cd /sys/class/backlight/pwm-backlight@0
echo xxx > brightness # xxx is brightness you want, 0~100
```
功耗组成300MHz空载亮屏50%亮度)
![heat1](./assets/lcon4a/power1.png)
### 散热
Console使用3cm涡轮风扇+10cm热管对CPU进行散热, 热管一端贴CPU另一端由涡轮风扇散热并且顶面使用导热硅脂接触底壳散热。
![heat1](./assets/lcon4a/heat1.png)
![heat1](./assets/lcon4a/heat2.png)
在持续进行高负载工作下如浏览器视频软解CPU温度最终可达6065度底壳温度最高可达50度左右。
![heat1](./assets/lcon4a/heat3.png)
如有更好的散热建议可发送邮件到support@sipeed.com
> 目前2023.11浏览器硬解尚未适配所以在观看浏览器视频时会占用大量CPU预计在12月份会合并入浏览器硬解功能。
### 待机
Console的硬件电路设计中考虑了待机情况对每个相关外设都加入了电源控制但是目前(2023.11)TH1520的低功耗功能还未加入SDK所以待机功能还需等待更新。
### 关机
Console目前的关机功耗约为1.3mA可支撑约3个月关机时间。
## 资料下载
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/LicheeConsole4A)
## 其他链接
[淘宝] (https://item.taobao.com/item.htm?id=754766940927)
[Aliexpress](https://www.aliexpress.us/item/3256805987954160.html)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com

View File

@@ -1,75 +1,75 @@
---
title: 组装指南
keywords: Lichee, TH1520, Console, RISCV,
update:
- date: 2023-12-19
version: v1.0
author: sinky
content:
- 新建文档
---
**购买A套餐用户收到配件如下请先核对收到的产品配件是否齐全**
后壳x1、SSD盖板x1、SSD盖板螺丝x1、螺丝刀x1、导热垫x2、热管x1、后盖螺丝x6
![配件](assets/lcon4a/配件.jpg)
图中所示十字批头请自备
# 组装步骤
1. 将核心板插入主板
将其中一片导热垫置于下图所示TH1520核心位置。
![安装导热垫1](assets/lcon4a/安装导热垫1.jpg)
2. 剥离导热垫离型膜
![安装导热垫2](assets/lcon4a/安装导热垫2.jpg)
3. 将另一片导热垫从中间剪开备用
4. 将热管放置于核心板和风扇中间**(尽量靠近风扇以保证散热效果)**如下图所示。
![放置铜管](assets/lcon4a/放置铜管.jpg)
5. 将剪开的两块散热垫放置于热管上,用于将热量导出至外壳,如图所示。![放置铜管散热](assets/lcon4a/放置铜管散热.jpg)
为保证热管固定牢固,建议使用胶带对热管中部进行固定。
7. 插入电池连接排线**(注意电池排线的方向)**
<img src="assets/lcon4a/链接电池排线.png" alt="链接电池排线" style="zoom:150%;" />
7. 将后壳盖回,此处建议先将后方对齐后按压较为方便。
![组装后盖1](assets/lcon4a/组装后盖1.jpg)
![组装后盖2](assets/lcon4a/组装后盖2.jpg)**扣合另一边时可使用拆机片辅助会更为省力**
8. 将后壳扣回后取出随机附带的6颗后盖螺丝及配送的螺丝刀拧紧后壳固定螺丝拧紧螺丝时建议同时按压后盖以保证卡扣不会弹开。
![后盖固定螺丝](assets/lcon4a/后盖固定螺丝.jpg)
**此处应注意固定SSD盖板的螺丝与后壳固定螺丝为不同尺寸**
至此组装完成,开机使用即可
# SSD安装
1.使用十字螺丝刀取下SSD盖板
![取下SSD盖板螺丝](assets/lcon4a/取下SSD盖板螺丝.jpg)
2.准备NGFF接口的2242尺寸SSD
![ssd](assets/lcon4a/ssd.png)
3.旋下SSD固定螺丝
![取下ssd固定](assets/lcon4a/取下ssd固定.jpg)
4.将SSD插入**此处由于空间较小建议先将SSD放入机身垂直于接口用力将SSD插入**
![放入ssd](assets/lcon4a/放入ssd.jpg)
![插入ssd](assets/lcon4a/插入ssd.jpg)
5.插入到位后旋上SSD固定螺丝盖上SSD盖板旋上盖板固定螺丝即可
![固定ssd](assets/lcon4a/固定ssd.jpg)
![装回ssd盖板](assets/lcon4a/装回ssd盖板.JPG)
---
title: 组装指南
keywords: Lichee, TH1520, Console, RISCV,
update:
- date: 2023-12-19
version: v1.0
author: sinky
content:
- 新建文档
---
**购买A套餐用户收到配件如下请先核对收到的产品配件是否齐全**
后壳x1、SSD盖板x1、SSD盖板螺丝x1、螺丝刀x1、导热垫x2、热管x1、后盖螺丝x6
![配件](assets/lcon4a/配件.jpg)
图中所示十字批头请自备
# 组装步骤
1. 将核心板插入主板
将其中一片导热垫置于下图所示TH1520核心位置。
![安装导热垫1](assets/lcon4a/安装导热垫1.jpg)
2. 剥离导热垫离型膜
![安装导热垫2](assets/lcon4a/安装导热垫2.jpg)
3. 将另一片导热垫从中间剪开备用
4. 将热管放置于核心板和风扇中间**(尽量靠近风扇以保证散热效果)**如下图所示。
![放置铜管](assets/lcon4a/放置铜管.jpg)
5. 将剪开的两块散热垫放置于热管上,用于将热量导出至外壳,如图所示。![放置铜管散热](assets/lcon4a/放置铜管散热.jpg)
为保证热管固定牢固,建议使用胶带对热管中部进行固定。
7. 插入电池连接排线**(注意电池排线的方向)**
<img src="assets/lcon4a/链接电池排线.png" alt="链接电池排线" style="zoom:150%;" />
7. 将后壳盖回,此处建议先将后方对齐后按压较为方便。
![组装后盖1](assets/lcon4a/组装后盖1.jpg)
![组装后盖2](assets/lcon4a/组装后盖2.jpg)**扣合另一边时可使用拆机片辅助会更为省力**
8. 将后壳扣回后取出随机附带的6颗后盖螺丝及配送的螺丝刀拧紧后壳固定螺丝拧紧螺丝时建议同时按压后盖以保证卡扣不会弹开。
![后盖固定螺丝](assets/lcon4a/后盖固定螺丝.jpg)
**此处应注意固定SSD盖板的螺丝与后壳固定螺丝为不同尺寸**
至此组装完成,开机使用即可
# SSD安装
1.使用十字螺丝刀取下SSD盖板
![取下SSD盖板螺丝](assets/lcon4a/取下SSD盖板螺丝.jpg)
2.准备NGFF接口的2242尺寸SSD
![ssd](assets/lcon4a/ssd.png)
3.旋下SSD固定螺丝
![取下ssd固定](assets/lcon4a/取下ssd固定.jpg)
4.将SSD插入**此处由于空间较小建议先将SSD放入机身垂直于接口用力将SSD插入**
![放入ssd](assets/lcon4a/放入ssd.jpg)
![插入ssd](assets/lcon4a/插入ssd.jpg)
5.插入到位后旋上SSD固定螺丝盖上SSD盖板旋上盖板固定螺丝即可
![固定ssd](assets/lcon4a/固定ssd.jpg)
![装回ssd盖板](assets/lcon4a/装回ssd盖板.JPG)
![固定SSD盖板](assets/lcon4a/固定SSD盖板.jpg)

View File

@@ -1,70 +1,70 @@
---
title: LicheePi Module 4A
keywords: LicheePi, Sodimm, TH1520, RISCV, SBC
update:
- date: 2023-03-31
version: v0.1
author: wonder
content:
- 初次编写文档
---
## 简介
LicheePi Module 4A 是一款采用 [平头哥半导体](https://www.t-head.cn/) 的 [曳影1520](https://www.t-head.cn/product/yeying) 作为主控的核心模组,主控核心包含四核玄铁 C910 CPU, 搭载 4TOPS@int8 AI 算力的 NPU拥有 4K 视频处理能力,最大支持 16GB LPDDR4X 内存和 128G eMMC 存储,支持双千兆以太网和最大 4K 分辨率视频输出等特性,核心还额外包含一颗 C906 处理器用于音频处理。得益于 SODIMM 样式的封装, LicheePi Module 4A 可以用于多种场合,适用于多款底板。
## 基本参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>曳影 1520</td>
</tr>
<tr>
<td>CPU处理器</td>
<td>RISC-V 64GCV C910*4@1.85GHz <br>· 每核支持 64KB I cache 和 64KB D Cache <br>· 四核共享 1MB L2 Cache <br>· 支持 TEE 和 REETEE/REE 支持核数启动时可配置<br>· 支持自定义且接口兼容 RISC-V 的多核调试框架<br>· 独立电源域,支持 DVFS</td>
</tr>
<tr>
<td>图形处理器</td>
<td>· OpenCL 1.1/1.2/2.0<br>· OpenGL ES 3.0/3.1/3.2<br>· Vulkan 1.1/1.2<br>· Android NN HAL</td>
</tr>
<tr>
<td>NPU处理器</td>
<td>支持 4TOPS@INT8 通用 NNA 算力,主频 1GHz <br>· 支持 TensorFlow、ONNX、Caffe <br>· 支持 CNN、RNN、DNN 等</td>
</tr>
<tr>
<td>视频解码器</td>
<td>实时解码器,支持 H.265/H.264/VP9/8/7/6/AVS/AVS+/AVS2.0/VC1/MPEG4 <br>· 支持 H.264 BP/MP/HP@level 5.1 解码,最大 4K 分辨率<br>· 支持 H.265/HEVC Main Profile@level 5.1 解码,最大 4K 分辨率<br>· 支持 VP9 Profile-2 解码,最大 4K 分辨率<br>· 支持 AVS2.0 解码,最大 4K 分辨率<br>· 支持 VP6/7/8/AVS/AVS+/VC1/MPEG4 解码,最大 1920x1080 分辨率<br>· 解码性能最大 4K@75fps</td>
</tr>
<tr>
<td>视频编码器</td>
<td>· 支持 H.264 BP/MP/HP@level4.2 编码,最大 4K 分辨率<br>· 支持 H.265/HEVC Main Profile 编码,最大 4K 分辨率<br>· 仅支持 I 帧和 P 帧<br>· 编码性能最大 4K@40fps</td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 8GB 64bits LPDDR4<br>· 16GB 64bits LPDDR4<br></td>
</tr>
<tr>
<td>ROM</td>
<td>eMMC: <br>· 0G<br>· 8G<br>· 32G<br>· 128G</td>
</tr>
<tr>
<td>以太网</td>
<td> 千兆 PHY x 2</td>
</tr>
</tbody>
</table>
## 相关链接
[Github](https://github.com/sipeed/LicheePi4A)
---
title: LicheePi Module 4A
keywords: LicheePi, Sodimm, TH1520, RISCV, SBC
update:
- date: 2023-03-31
version: v0.1
author: wonder
content:
- 初次编写文档
---
## 简介
LicheePi Module 4A 是一款采用 [平头哥半导体](https://www.t-head.cn/) 的 [曳影1520](https://www.t-head.cn/product/yeying) 作为主控的核心模组,主控核心包含四核玄铁 C910 CPU, 搭载 4TOPS@int8 AI 算力的 NPU拥有 4K 视频处理能力,最大支持 16GB LPDDR4X 内存和 128G eMMC 存储,支持双千兆以太网和最大 4K 分辨率视频输出等特性,核心还额外包含一颗 C906 处理器用于音频处理。得益于 SODIMM 样式的封装, LicheePi Module 4A 可以用于多种场合,适用于多款底板。
## 基本参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>曳影 1520</td>
</tr>
<tr>
<td>CPU处理器</td>
<td>RISC-V 64GCV C910*4@1.85GHz <br>· 每核支持 64KB I cache 和 64KB D Cache <br>· 四核共享 1MB L2 Cache <br>· 支持 TEE 和 REETEE/REE 支持核数启动时可配置<br>· 支持自定义且接口兼容 RISC-V 的多核调试框架<br>· 独立电源域,支持 DVFS</td>
</tr>
<tr>
<td>图形处理器</td>
<td>· OpenCL 1.1/1.2/2.0<br>· OpenGL ES 3.0/3.1/3.2<br>· Vulkan 1.1/1.2<br>· Android NN HAL</td>
</tr>
<tr>
<td>NPU处理器</td>
<td>支持 4TOPS@INT8 通用 NNA 算力,主频 1GHz <br>· 支持 TensorFlow、ONNX、Caffe <br>· 支持 CNN、RNN、DNN 等</td>
</tr>
<tr>
<td>视频解码器</td>
<td>实时解码器,支持 H.265/H.264/VP9/8/7/6/AVS/AVS+/AVS2.0/VC1/MPEG4 <br>· 支持 H.264 BP/MP/HP@level 5.1 解码,最大 4K 分辨率<br>· 支持 H.265/HEVC Main Profile@level 5.1 解码,最大 4K 分辨率<br>· 支持 VP9 Profile-2 解码,最大 4K 分辨率<br>· 支持 AVS2.0 解码,最大 4K 分辨率<br>· 支持 VP6/7/8/AVS/AVS+/VC1/MPEG4 解码,最大 1920x1080 分辨率<br>· 解码性能最大 4K@75fps</td>
</tr>
<tr>
<td>视频编码器</td>
<td>· 支持 H.264 BP/MP/HP@level4.2 编码,最大 4K 分辨率<br>· 支持 H.265/HEVC Main Profile 编码,最大 4K 分辨率<br>· 仅支持 I 帧和 P 帧<br>· 编码性能最大 4K@40fps</td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 8GB 64bits LPDDR4<br>· 16GB 64bits LPDDR4<br></td>
</tr>
<tr>
<td>ROM</td>
<td>eMMC: <br>· 0G<br>· 8G<br>· 32G<br>· 128G</td>
</tr>
<tr>
<td>以太网</td>
<td> 千兆 PHY x 2</td>
</tr>
</tbody>
</table>
## 相关链接
[Github](https://github.com/sipeed/LicheePi4A)
[Sipeed 下载站(暂时空白)]()

View File

@@ -1,212 +1,212 @@
---
title: 板卡性能测试
keywords: Linux, Lichee, TH1520, SBC, RISCV, report
update:
- date: 2023-07-13
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 功耗测试
### 静态功耗
| 场景(静态) | 电压 | 电流 | 功耗 | 备注 |
| -------------- | ----- | ----- | ----- | ------------------------------------ |
| 待机 | 12V | 0.3A | 3.6W | 不接任何外设 |
| 待机 | 12V | 0.32A | 3.84W | 开启风扇,后续所有测试中风扇均不关闭 |
| 单网口连接网线 | 12V | 0.36A | 4.32W | |
| 双网口连接网线 | 12V | 0.39A | 4.68W | |
| 连接 HDMI 显示器 | 12V | 0.33A | 3.96W | |
### 动态功耗
| 场景(动态) | 电压 | 电流 | 功耗 | 备注 |
| -------------------------- | ----- | ----- | ----- | ----------------------------------- |
| NPU运算 | 12V | 0.39A | 4.68W | 仅连接串口、风扇NPU 频率上限 0.792GHz |
| 待机 | 12V | 0.43A | 5.16W | 连接HDMI显示器、键盘、鼠标 使用一个网口 |
| STRESS-NG 压测<br>( CPU 矩阵运算) | 12V | 0.65A | 7.8W | CPU 频率上限 1.845GHz,电压 1V |
| 浏览器播放视频 | 12V | 0.6A | 7.2W | 使用 GPU、无硬件解码, chromium 浏览器 |
## eMMC
```bash
#4k写入
dd if=/dev/zero of=test bs=4k count=100000 oflag=direct
#4k读取
dd if=test of=/dev/null bs=4k count=100000 iflag=direct
#删除测试文件
rm test
#连续写入(4MB)
dd if=/dev/zero of=test bs=4096k count=100 oflag=direct
#连续读取(4MB)
dd if=test of=/dev/null bs=4096k count=100 iflag=direct
#删除测试文件
rm test
#连续写入(64MB)
dd if=/dev/zero of=test bs=65536k count=10 oflag=direct
#连续读取(64MB)
dd if=test of=/dev/null bs=65536k count=10 iflag=direct
#删除测试文件
rm test
```
**8GB eMMC**
| Test Item | Result |
| --------- | --------- |
| 4KB W | 22.4 MB/s |
| 4KB R | 22.4 MB/s |
| 4MB W | 53.9 MB/s |
| 4MB R | 296 MB/s |
| 64MB W | 229 MB/s |
| 64MB R | 298 MB/s |
**32/128GB eMMC**
| Test Item | Result |
| --------- | --------- |
| 4KB W | 24.0 MB/s |
| 4KB R | 40.3 MB/s |
| 4MB W | 209 MB/s |
| 4MB R | 296 MB/s |
| 64MB W | 229 MB/s |
| 64MB R | 298 MB/s |
## LPDDR4X
![lpddr4x](./assets/test_report/lpddr4x.png)
## GbE
`iperf3 -c 192.168.3.18 -t 15`
![iperf](./assets/test_report/iperf.png)
## WiFi
测试环境:室内空旷长走廊
测试方法:使用 iperf3笔记本电脑作为 serverLPi4A 作为 client
测试设备:路由器使用 newifi D2, 笔记本电脑型号为 宏碁掠夺者战斧300
在路由器与 LPi4A 间隔不同距离的测试结果如下:
5m
![wifi_test_5m.png](./assets/test_report/wifi_test_5m.png)
10m
![wifi_test_10m.png](./assets/test_report/wifi_test_10m.png)
15m
![wifi_test_15m.png](./assets/test_report/wifi_test_15m.png)
20m
![wifi_test_20m.png](./assets/test_report/wifi_test_20m.png)
25m
![wifi_test_25m.png](./assets/test_report/wifi_test_25m.png)
30m
![wifi_test_30m.png](./assets/test_report/wifi_test_30m.png)
## Bluetooth
测试环境:室内近距离
测试方法手机开启蓝牙共享网络与开发板配对并连接蓝牙使用iperf3测试
测试设备小米13LPi4A
![bluetooth_phone](./assets/test_report/bluetooth_phone.jpg)
![bluetooth_1520](./assets/test_report/bluetooth_1520.png)
## 温度
散热器: 风扇+铝散热片(25*25*5)
硅脂垫: Laird 500
待机状态:
![temp_idle](./assets/test_report/temp_idle.png)
压测结束:
![temp_press](./assets/test_report/temp_press.png)
## 浏览器测试
在 Chromium 中进行鱼缸测试,结果如图:
![web_browser_fishbowl](./assets/test_report/web_browser_fishbowl.png)
## GPU
使用 `glmark2` 的测试结果如下:
```shell
root@lpi4a:~# glmark2-es2
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: Imagination Technologies
GL_RENDERER: PowerVR B-Series BXM-4-64
GL_VERSION: OpenGL ES 3.2 build 1.16@6099580
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=8
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 460 FrameTime: 2.174 ms
[build] use-vbo=true: FPS: 434 FrameTime: 2.304 ms
[texture] texture-filter=nearest: FPS: 489 FrameTime: 2.045 ms
[texture] texture-filter=linear: FPS: 493 FrameTime: 2.028 ms
[texture] texture-filter=mipmap: FPS: 776 FrameTime: 1.289 ms
[shading] shading=gouraud: FPS: 1055 FrameTime: 0.948 ms
[shading] shading=blinn-phong-inf: FPS: 1049 FrameTime: 0.953 ms
[shading] shading=phong: FPS: 832 FrameTime: 1.202 ms
[shading] shading=cel: FPS: 781 FrameTime: 1.280 ms
[bump] bump-render=high-poly: FPS: 481 FrameTime: 2.079 ms
[bump] bump-render=normals: FPS: 1056 FrameTime: 0.947 ms
[bump] bump-render=height: FPS: 730 FrameTime: 1.370 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;:1 FPS: 456 FrameTime: 2.193 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;:2 FPS: 184 FrameTime: 5.435 ms
[pulsar] light=false:quads=5:texture=false: FPS: 585 FrameTime: 1.709 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 177 FrameTime: 5.650 ms
[desktop] effect=shadow:windows=4: FPS: 405 FrameTime: 2.469 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 135 FrameTime: 7.407 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 160 FrameTime: 6.250 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 197 FrameTime: 5.076 ms
[ideas] speed=duration: FPS: 442 FrameTime: 2.262 ms
[jellyfish] <default>: FPS: 433 FrameTime: 2.309 ms
[terrain] <default>: FPS: 31 FrameTime: 32.258 ms
[shadow] <default>: FPS: 275 FrameTime: 3.636 ms
[refract] <default>: FPS: 45 FrameTime: 22.222 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 775 FrameTime: 1.290 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 484 FrameTime: 2.066 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 819 FrameTime: 1.221 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1048 FrameTime: 0.954 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 694 FrameTime: 1.441 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1093 FrameTime: 0.915 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 678 FrameTime: 1.475 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 438 FrameTime: 2.283 ms
=======================================================
glmark2 Score: 551
=======================================================
```
![gpu_test_glmark2](./assets/test_report/gpu_test_glmark2.png)
运行 `glxgears` 结果如下:
```shell
es2gears_x11
```
![gpu_test_gears](./assets/test_report/gpu_test_gears.png)
## 其它
---
title: 板卡性能测试
keywords: Linux, Lichee, TH1520, SBC, RISCV, report
update:
- date: 2023-07-13
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 功耗测试
### 静态功耗
| 场景(静态) | 电压 | 电流 | 功耗 | 备注 |
| -------------- | ----- | ----- | ----- | ------------------------------------ |
| 待机 | 12V | 0.3A | 3.6W | 不接任何外设 |
| 待机 | 12V | 0.32A | 3.84W | 开启风扇,后续所有测试中风扇均不关闭 |
| 单网口连接网线 | 12V | 0.36A | 4.32W | |
| 双网口连接网线 | 12V | 0.39A | 4.68W | |
| 连接 HDMI 显示器 | 12V | 0.33A | 3.96W | |
### 动态功耗
| 场景(动态) | 电压 | 电流 | 功耗 | 备注 |
| -------------------------- | ----- | ----- | ----- | ----------------------------------- |
| NPU运算 | 12V | 0.39A | 4.68W | 仅连接串口、风扇NPU 频率上限 0.792GHz |
| 待机 | 12V | 0.43A | 5.16W | 连接HDMI显示器、键盘、鼠标 使用一个网口 |
| STRESS-NG 压测<br>( CPU 矩阵运算) | 12V | 0.65A | 7.8W | CPU 频率上限 1.845GHz,电压 1V |
| 浏览器播放视频 | 12V | 0.6A | 7.2W | 使用 GPU、无硬件解码, chromium 浏览器 |
## eMMC
```bash
#4k写入
dd if=/dev/zero of=test bs=4k count=100000 oflag=direct
#4k读取
dd if=test of=/dev/null bs=4k count=100000 iflag=direct
#删除测试文件
rm test
#连续写入(4MB)
dd if=/dev/zero of=test bs=4096k count=100 oflag=direct
#连续读取(4MB)
dd if=test of=/dev/null bs=4096k count=100 iflag=direct
#删除测试文件
rm test
#连续写入(64MB)
dd if=/dev/zero of=test bs=65536k count=10 oflag=direct
#连续读取(64MB)
dd if=test of=/dev/null bs=65536k count=10 iflag=direct
#删除测试文件
rm test
```
**8GB eMMC**
| Test Item | Result |
| --------- | --------- |
| 4KB W | 22.4 MB/s |
| 4KB R | 22.4 MB/s |
| 4MB W | 53.9 MB/s |
| 4MB R | 296 MB/s |
| 64MB W | 229 MB/s |
| 64MB R | 298 MB/s |
**32/128GB eMMC**
| Test Item | Result |
| --------- | --------- |
| 4KB W | 24.0 MB/s |
| 4KB R | 40.3 MB/s |
| 4MB W | 209 MB/s |
| 4MB R | 296 MB/s |
| 64MB W | 229 MB/s |
| 64MB R | 298 MB/s |
## LPDDR4X
![lpddr4x](./assets/test_report/lpddr4x.png)
## GbE
`iperf3 -c 192.168.3.18 -t 15`
![iperf](./assets/test_report/iperf.png)
## WiFi
测试环境:室内空旷长走廊
测试方法:使用 iperf3笔记本电脑作为 serverLPi4A 作为 client
测试设备:路由器使用 newifi D2, 笔记本电脑型号为 宏碁掠夺者战斧300
在路由器与 LPi4A 间隔不同距离的测试结果如下:
5m
![wifi_test_5m.png](./assets/test_report/wifi_test_5m.png)
10m
![wifi_test_10m.png](./assets/test_report/wifi_test_10m.png)
15m
![wifi_test_15m.png](./assets/test_report/wifi_test_15m.png)
20m
![wifi_test_20m.png](./assets/test_report/wifi_test_20m.png)
25m
![wifi_test_25m.png](./assets/test_report/wifi_test_25m.png)
30m
![wifi_test_30m.png](./assets/test_report/wifi_test_30m.png)
## Bluetooth
测试环境:室内近距离
测试方法手机开启蓝牙共享网络与开发板配对并连接蓝牙使用iperf3测试
测试设备小米13LPi4A
![bluetooth_phone](./assets/test_report/bluetooth_phone.jpg)
![bluetooth_1520](./assets/test_report/bluetooth_1520.png)
## 温度
散热器: 风扇+铝散热片(25*25*5)
硅脂垫: Laird 500
待机状态:
![temp_idle](./assets/test_report/temp_idle.png)
压测结束:
![temp_press](./assets/test_report/temp_press.png)
## 浏览器测试
在 Chromium 中进行鱼缸测试,结果如图:
![web_browser_fishbowl](./assets/test_report/web_browser_fishbowl.png)
## GPU
使用 `glmark2` 的测试结果如下:
```shell
root@lpi4a:~# glmark2-es2
=======================================================
glmark2 2021.12
=======================================================
OpenGL Information
GL_VENDOR: Imagination Technologies
GL_RENDERER: PowerVR B-Series BXM-4-64
GL_VERSION: OpenGL ES 3.2 build 1.16@6099580
Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=8
Surface Size: 800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 460 FrameTime: 2.174 ms
[build] use-vbo=true: FPS: 434 FrameTime: 2.304 ms
[texture] texture-filter=nearest: FPS: 489 FrameTime: 2.045 ms
[texture] texture-filter=linear: FPS: 493 FrameTime: 2.028 ms
[texture] texture-filter=mipmap: FPS: 776 FrameTime: 1.289 ms
[shading] shading=gouraud: FPS: 1055 FrameTime: 0.948 ms
[shading] shading=blinn-phong-inf: FPS: 1049 FrameTime: 0.953 ms
[shading] shading=phong: FPS: 832 FrameTime: 1.202 ms
[shading] shading=cel: FPS: 781 FrameTime: 1.280 ms
[bump] bump-render=high-poly: FPS: 481 FrameTime: 2.079 ms
[bump] bump-render=normals: FPS: 1056 FrameTime: 0.947 ms
[bump] bump-render=height: FPS: 730 FrameTime: 1.370 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;:1 FPS: 456 FrameTime: 2.193 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;:2 FPS: 184 FrameTime: 5.435 ms
[pulsar] light=false:quads=5:texture=false: FPS: 585 FrameTime: 1.709 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 177 FrameTime: 5.650 ms
[desktop] effect=shadow:windows=4: FPS: 405 FrameTime: 2.469 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 135 FrameTime: 7.407 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 160 FrameTime: 6.250 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 197 FrameTime: 5.076 ms
[ideas] speed=duration: FPS: 442 FrameTime: 2.262 ms
[jellyfish] <default>: FPS: 433 FrameTime: 2.309 ms
[terrain] <default>: FPS: 31 FrameTime: 32.258 ms
[shadow] <default>: FPS: 275 FrameTime: 3.636 ms
[refract] <default>: FPS: 45 FrameTime: 22.222 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 775 FrameTime: 1.290 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 484 FrameTime: 2.066 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 819 FrameTime: 1.221 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1048 FrameTime: 0.954 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 694 FrameTime: 1.441 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1093 FrameTime: 0.915 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 678 FrameTime: 1.475 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 438 FrameTime: 2.283 ms
=======================================================
glmark2 Score: 551
=======================================================
```
![gpu_test_glmark2](./assets/test_report/gpu_test_glmark2.png)
运行 `glxgears` 结果如下:
```shell
es2gears_x11
```
![gpu_test_gears](./assets/test_report/gpu_test_gears.png)
## 其它
欢迎投稿~ 投稿接受后可得¥5150$1~20优惠券

View File

@@ -1,36 +1,36 @@
---
title: 致谢
keywords: Linux, Lichee, TH1520, SBC, RISCV, credits
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
本章节专门向 LicheePi 4A 作出贡献的个人和团体致谢!
感谢你们的贡献让 RISC-V 发展得更快更好!
(本文按个人意愿以真名或者网名进行致谢)
## 矽速
泽畔阔爷瀚宝wonderztd...
## 平头哥
春强,陈炜,穆呈,陆斌,...
特别感谢 陆斌 同学的全程沟通!
## PLCT
Wu Wei感谢吴老板大力支持老板大气
[Icenowy Zheng](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Icenowy+Zheng):冰激凌,永远的神,手打 binary patch真人快打
高涵revyos之父
Estela ad Astra预订 OpenWRT
## 开源社区
[Jisheng Zhang](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Jisheng+Zhang): TH1520 主线化支持
---
title: 致谢
keywords: Linux, Lichee, TH1520, SBC, RISCV, credits
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
本章节专门向 LicheePi 4A 作出贡献的个人和团体致谢!
感谢你们的贡献让 RISC-V 发展得更快更好!
(本文按个人意愿以真名或者网名进行致谢)
## 矽速
泽畔阔爷瀚宝wonderztd...
## 平头哥
春强,陈炜,穆呈,陆斌,...
特别感谢 陆斌 同学的全程沟通!
## PLCT
Wu Wei感谢吴老板大力支持老板大气
[Icenowy Zheng](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Icenowy+Zheng):冰激凌,永远的神,手打 binary patch真人快打
高涵revyos之父
Estela ad Astra预订 OpenWRT
## 开源社区
[Jisheng Zhang](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=Jisheng+Zhang): TH1520 主线化支持
范文捷Wine-CE 作者,在 LPi4A 上进行相关移植测试。

View File

@@ -1,165 +1,165 @@
---
title: 常见问题
keywords: Linux, Lichee, TH1520, SBC, RISCV, Debian, Desktop
update:
- date: 2023-10-30
version: v1.2
author: ztd
content:
- Update official development docs.
- date: 2023-10-23
version: v1.1
author: ztd
content:
- Update NPU's FAQ
- date: 2023-09-22
version: v1.0
author: ztd
content:
- Release docs
---
## 开箱体验
- 供电注意事项:
1. USB-C仅支持5V输入保险起见不要使用带快充功能的充电宝或者充电头供电
2. 排针的IO均为1.8V电平请使用配送的串口小板或者支持1.8V的串口小板
3. 电脑USB一般只有5V1A带不起来板子板子至少需要5V2A推荐5V3A的适配器供电或者使用12V DC供电
4. USB 丝印旁的 LED 闪烁,说明电源不稳定或短路
- 正式版与内测版硬件差异、USB限流说明见[板卡硬件说明](https://en.wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/2_unbox.html#%E6%9D%BF%E5%8D%A1%E7%A1%AC%E4%BB%B6%E8%AF%B4%E6%98%8E)
## 镜像集合
- 20230721之前版本的镜像在16+128的核心板上存在无法正确识别内存大小的问题需要更新镜像版本。若为20230706之后的版本也可参考[镜像集合相关章节](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/3_images.html#%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E4%BF%AE%E5%A4%8D%E8%AF%B4%E6%98%8E)进行修复。
- 使用镜像前请仔细阅读wiki中镜像集合的使用说明以保证下载的是预期镜像比如使用10.1寸触摸屏需要烧录带MIPI后缀压缩包中的镜像。
- 安卓13镜像目前暂未进行外设支持烧录后只有HDMI显示等基础功能。
## 烧录镜像
- Windows系统下烧录请先确认驱动是否按照正确安装。若正确安装驱动烧录时还是没有反应可尝试更换 USB 线,注意使用的 USB 线必须是能供电和传输数据的线,并且烧录时使用的 USB 口尽量不要使用主机前面板的 USB 口,也不要使用笔记本电脑中的数据口,否则会因为供电原因导致识别不到设备。
- 想要切换启动模式,比如切换为从 SD 卡启动,正式版底板可以通过拨码开关(注意需要制作专用镜像)来切换,非正式版也可以通过传递启动参数来切换,详见[烧录镜像的对应章节](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/4_burn_image.html#U-Boot)。
- 20231023后更新了大镜像烧录支持从该版本起烧录需要使用最新版本的 fastboot可以在镜像集合的[网盘链接](https://pan.baidu.com/e/1xH56ZlewB6UOMlke5BrKWQ)中找到,文件名为 `burn_tools_support_bigimage.zip`
## 桌面系统基础使用
- 若桌面下方启动器的图标功能异常,可以自己手动配置为自己想要的方案,也可以使用如下命令恢复为默认配置,默认配置效果参考[桌面系统基础使用相关章节](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/5_desktop.html#%E6%B5%8F%E8%A7%88%E5%99%A8)
```shell
cp /etc/xdg/xfce4/panel/default.xml /home/sipeed/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
chown sipeed:sipeed /home/sipeed/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
```
- 若安装软件时遇到报错,请更新到最新镜像或参考[软件安装](https://en.wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/5_desktop.html#%E8%BD%AF%E4%BB%B6%E5%AE%89%E8%A3%85)
- 若在重启后发现开发板的 Wifi/BT 功能无法使用,或看不到 Wifi 设备,此时拔掉开发板的供电,完全断点后再上电重启即可。
## 外设使用
1. 若要使用 NPU请使用0920及以上版本的镜像
2. 使用 JTAG 需要自行飞线,并在板子上设置 pinmux参考[JTAG](https://en.wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/6_peripheral.html#JTAG)
3. 在接入外设较多时(比如 HDMIUSB键鼠尽量使用12V DC供电。电脑的USB口若本身接入外设较多可能会没有多余的能力给开发板及开发板所连接的外设供电。
4. 在使用 NPU 进行推理时,第一次运行时会在板上进行一次优化,这个过程比较慢。之后会生成 shl.hhb.bm 文件,使用这个权重文件进行推理会比较快。
5. 针对于某些不支持 UHS 的 TF 卡,可能在读写大文件时会出现 I/O error此时可以切换到 root 用户,执行下面的命令:
```shell
apt update
apt install device-tree-compiler
cd /boot/dtbs/linux-image-5.10.113-lpi4a/thead/ # 双屏则运行cd /boot/dtbs/linux-image-5.10.113-lpi4a/dual/thead/
dtc -I dtb -O dts light-lpi4a.dtb -o light-lpi4a.dts # 16g注意将名字更换为light-lpi4a-16gb.dtb(light-lpi4a-16gb.dts)
awk -v RS="}" '/sd@ffe7090000/ {sub("max-frequency = <0xbcd3d80>;", "max-frequency = <100000000>;")} {printf "%s}", $0}' light-lpi4a.dts > temp.dts && mv temp.dts light-lpi4a.dts # 16g注意将名字更换为light-lpi4a-16gb.dtb(light-lpi4a-16gb.dts)
dtc -I dts -O dtb light-lpi4a.dts -o light-lpi4a.dtb # 16g注意将名字更换为light-lpi4a-16gb.dtb(light-lpi4a-16gb.dts)
sync
```
修改设备树后,重启开发板即可。
6. 若连接上蓝牙鼠标后,移动时没有反应,可以尝试重启一下蓝牙服务:
```shell
sudo systemctl restart bluetooth.service
```
## 系统开发
### revyos
1. 构建 kernel/uboot/opensbi 前,请检查这些环境变量是否设置好了
```shell
export toolchain_tripe=riscv64-unknown-linux-gnu-
export ARCH=riscv
export nproc=12
export GITHUB_WORKSPACE="~/th1520_build"
export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1/bin:$PATH"
```
以上环境变量请根据自身实际配置、文件路径等进行调整。
构建后,在安装相应文件时也请检查对应的文件夹是否创建了,以及路径是否正确,比如 `rootfs` `rootfs/boot` 目录是否创建。
2. 由于工具链版本不同,不同 SDK 下构建的二进制文件不能混用。
3. 构建完烧录后若USB等外设功能失效请检查 Image 和 modules(模块目录放到板子上的/lib/modules目录下) 是否对上。
### THead Yocto
1. 截至该 SDK 的 1.1.2 版本,使用 Docker 搭建该 SDK 的开发环境时需要更改 Dockerfile具体改动参考[THead Yocto相关章节](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/7_develop_thead.html#%E6%90%AD%E5%BB%BAYocto%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83)
注释 Dockerfile 中 182 - 186 行:
```shell
# install npm
#RUN cd $WORK_PATH \
# && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
# && apt install -y nodejs yarn \
# && npm install aiot-vue-cli -g
```
再执行
```shell
docker build -t linux-dev-base:base .
```
容器安装完毕后,进入容器,再执行如下命令:
```shell
sudo apt update
sudo apt install npm
sudo apt install nodejs
```
最后执行:
```shell
npm -v
nodejs -v
```
有相关版本号输出即可。
3. 在使用 `MACHINE=light-lpi4a bitbake thead-image-linux` 命令构建镜像时,如果遇到在执行 `compile` 任务时崩溃,可能是内存不够。建议至少 32G 内存。
4. 由于网络原因,可能会出现下载失败或下载很慢的情况,推荐使用代理下载。
5. 若遇到如下报错:
```text
Please use a locale setting which supports utf-8.
Python can't change the filesystem locale after loading so we need a utf-8 when python starts or things won't work.
```
请按照以下步骤解决:
首先安装相应的依赖
```shell
sudo apt-get install locales
sudo dpkg-reconfigure locales
```
然后在打印出来的列表中找到 `en_US.UTF8` 这一项典型位置在第158项,输入这一项对应的序号后回车,接下来也选择这一项后回车。
完成上述设置步骤后接着运行如下命令也可考虑将下面的命令加入到docker的 `.bashrc` 中)
```shell
sudo locale-gen en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
```
完成上述步骤后再编译就不会出现原来的报错。
5. 若遇到类似如下报错:
```text
please install them in order to proceed: lz4c pzstd zstd
```
是缺少相关依赖,直接安装即可
```shell
sudo apt update && sudo apt install -y zstd liblz4-tool
```
### Android
1. 对于国内用户,使用 Android SDK 下载源码时,若运行`repo init -u https://gitee.com/thead-android/local_manifests.git -b main_2023_7_7`命令始终不成功,可以尝试运行以下命令后,再进行 `repo init`
```
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
```
2. 使用 docker 环境编译时,可能会遇到如下报错:
```shell
Build sandboxing disabled due to nsjail error.
```
这个报错可以暂时忽略,不影响后面的编译步骤。若想运行 nsjail可以尝试升级内核版本至5.XX或者启动 docker 时传入这些参数 `--security-opt apparmor=unconfined --security-opt seccomp=unconfined --security-opt systempaths=unconfined` 或 `--privileged`。
## 开发文档
---
title: 常见问题
keywords: Linux, Lichee, TH1520, SBC, RISCV, Debian, Desktop
update:
- date: 2023-10-30
version: v1.2
author: ztd
content:
- Update official development docs.
- date: 2023-10-23
version: v1.1
author: ztd
content:
- Update NPU's FAQ
- date: 2023-09-22
version: v1.0
author: ztd
content:
- Release docs
---
## 开箱体验
- 供电注意事项:
1. USB-C仅支持5V输入保险起见不要使用带快充功能的充电宝或者充电头供电
2. 排针的IO均为1.8V电平请使用配送的串口小板或者支持1.8V的串口小板
3. 电脑USB一般只有5V1A带不起来板子板子至少需要5V2A推荐5V3A的适配器供电或者使用12V DC供电
4. USB 丝印旁的 LED 闪烁,说明电源不稳定或短路
- 正式版与内测版硬件差异、USB限流说明见[板卡硬件说明](https://en.wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/2_unbox.html#%E6%9D%BF%E5%8D%A1%E7%A1%AC%E4%BB%B6%E8%AF%B4%E6%98%8E)
## 镜像集合
- 20230721之前版本的镜像在16+128的核心板上存在无法正确识别内存大小的问题需要更新镜像版本。若为20230706之后的版本也可参考[镜像集合相关章节](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/3_images.html#%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E4%BF%AE%E5%A4%8D%E8%AF%B4%E6%98%8E)进行修复。
- 使用镜像前请仔细阅读wiki中镜像集合的使用说明以保证下载的是预期镜像比如使用10.1寸触摸屏需要烧录带MIPI后缀压缩包中的镜像。
- 安卓13镜像目前暂未进行外设支持烧录后只有HDMI显示等基础功能。
## 烧录镜像
- Windows系统下烧录请先确认驱动是否按照正确安装。若正确安装驱动烧录时还是没有反应可尝试更换 USB 线,注意使用的 USB 线必须是能供电和传输数据的线,并且烧录时使用的 USB 口尽量不要使用主机前面板的 USB 口,也不要使用笔记本电脑中的数据口,否则会因为供电原因导致识别不到设备。
- 想要切换启动模式,比如切换为从 SD 卡启动,正式版底板可以通过拨码开关(注意需要制作专用镜像)来切换,非正式版也可以通过传递启动参数来切换,详见[烧录镜像的对应章节](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/4_burn_image.html#U-Boot)。
- 20231023后更新了大镜像烧录支持从该版本起烧录需要使用最新版本的 fastboot可以在镜像集合的[网盘链接](https://pan.baidu.com/e/1xH56ZlewB6UOMlke5BrKWQ)中找到,文件名为 `burn_tools_support_bigimage.zip`
## 桌面系统基础使用
- 若桌面下方启动器的图标功能异常,可以自己手动配置为自己想要的方案,也可以使用如下命令恢复为默认配置,默认配置效果参考[桌面系统基础使用相关章节](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/5_desktop.html#%E6%B5%8F%E8%A7%88%E5%99%A8)
```shell
cp /etc/xdg/xfce4/panel/default.xml /home/sipeed/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
chown sipeed:sipeed /home/sipeed/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
```
- 若安装软件时遇到报错,请更新到最新镜像或参考[软件安装](https://en.wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/5_desktop.html#%E8%BD%AF%E4%BB%B6%E5%AE%89%E8%A3%85)
- 若在重启后发现开发板的 Wifi/BT 功能无法使用,或看不到 Wifi 设备,此时拔掉开发板的供电,完全断点后再上电重启即可。
## 外设使用
1. 若要使用 NPU请使用0920及以上版本的镜像
2. 使用 JTAG 需要自行飞线,并在板子上设置 pinmux参考[JTAG](https://en.wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/6_peripheral.html#JTAG)
3. 在接入外设较多时(比如 HDMIUSB键鼠尽量使用12V DC供电。电脑的USB口若本身接入外设较多可能会没有多余的能力给开发板及开发板所连接的外设供电。
4. 在使用 NPU 进行推理时,第一次运行时会在板上进行一次优化,这个过程比较慢。之后会生成 shl.hhb.bm 文件,使用这个权重文件进行推理会比较快。
5. 针对于某些不支持 UHS 的 TF 卡,可能在读写大文件时会出现 I/O error此时可以切换到 root 用户,执行下面的命令:
```shell
apt update
apt install device-tree-compiler
cd /boot/dtbs/linux-image-5.10.113-lpi4a/thead/ # 双屏则运行cd /boot/dtbs/linux-image-5.10.113-lpi4a/dual/thead/
dtc -I dtb -O dts light-lpi4a.dtb -o light-lpi4a.dts # 16g注意将名字更换为light-lpi4a-16gb.dtb(light-lpi4a-16gb.dts)
awk -v RS="}" '/sd@ffe7090000/ {sub("max-frequency = <0xbcd3d80>;", "max-frequency = <100000000>;")} {printf "%s}", $0}' light-lpi4a.dts > temp.dts && mv temp.dts light-lpi4a.dts # 16g注意将名字更换为light-lpi4a-16gb.dtb(light-lpi4a-16gb.dts)
dtc -I dts -O dtb light-lpi4a.dts -o light-lpi4a.dtb # 16g注意将名字更换为light-lpi4a-16gb.dtb(light-lpi4a-16gb.dts)
sync
```
修改设备树后,重启开发板即可。
6. 若连接上蓝牙鼠标后,移动时没有反应,可以尝试重启一下蓝牙服务:
```shell
sudo systemctl restart bluetooth.service
```
## 系统开发
### revyos
1. 构建 kernel/uboot/opensbi 前,请检查这些环境变量是否设置好了
```shell
export toolchain_tripe=riscv64-unknown-linux-gnu-
export ARCH=riscv
export nproc=12
export GITHUB_WORKSPACE="~/th1520_build"
export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1/bin:$PATH"
```
以上环境变量请根据自身实际配置、文件路径等进行调整。
构建后,在安装相应文件时也请检查对应的文件夹是否创建了,以及路径是否正确,比如 `rootfs` `rootfs/boot` 目录是否创建。
2. 由于工具链版本不同,不同 SDK 下构建的二进制文件不能混用。
3. 构建完烧录后若USB等外设功能失效请检查 Image 和 modules(模块目录放到板子上的/lib/modules目录下) 是否对上。
### THead Yocto
1. 截至该 SDK 的 1.1.2 版本,使用 Docker 搭建该 SDK 的开发环境时需要更改 Dockerfile具体改动参考[THead Yocto相关章节](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/7_develop_thead.html#%E6%90%AD%E5%BB%BAYocto%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83)
注释 Dockerfile 中 182 - 186 行:
```shell
# install npm
#RUN cd $WORK_PATH \
# && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
# && apt install -y nodejs yarn \
# && npm install aiot-vue-cli -g
```
再执行
```shell
docker build -t linux-dev-base:base .
```
容器安装完毕后,进入容器,再执行如下命令:
```shell
sudo apt update
sudo apt install npm
sudo apt install nodejs
```
最后执行:
```shell
npm -v
nodejs -v
```
有相关版本号输出即可。
3. 在使用 `MACHINE=light-lpi4a bitbake thead-image-linux` 命令构建镜像时,如果遇到在执行 `compile` 任务时崩溃,可能是内存不够。建议至少 32G 内存。
4. 由于网络原因,可能会出现下载失败或下载很慢的情况,推荐使用代理下载。
5. 若遇到如下报错:
```text
Please use a locale setting which supports utf-8.
Python can't change the filesystem locale after loading so we need a utf-8 when python starts or things won't work.
```
请按照以下步骤解决:
首先安装相应的依赖
```shell
sudo apt-get install locales
sudo dpkg-reconfigure locales
```
然后在打印出来的列表中找到 `en_US.UTF8` 这一项典型位置在第158项,输入这一项对应的序号后回车,接下来也选择这一项后回车。
完成上述设置步骤后接着运行如下命令也可考虑将下面的命令加入到docker的 `.bashrc` 中)
```shell
sudo locale-gen en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
```
完成上述步骤后再编译就不会出现原来的报错。
5. 若遇到类似如下报错:
```text
please install them in order to proceed: lz4c pzstd zstd
```
是缺少相关依赖,直接安装即可
```shell
sudo apt update && sudo apt install -y zstd liblz4-tool
```
### Android
1. 对于国内用户,使用 Android SDK 下载源码时,若运行`repo init -u https://gitee.com/thead-android/local_manifests.git -b main_2023_7_7`命令始终不成功,可以尝试运行以下命令后,再进行 `repo init`
```
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
```
2. 使用 docker 环境编译时,可能会遇到如下报错:
```shell
Build sandboxing disabled due to nsjail error.
```
这个报错可以暂时忽略,不影响后面的编译步骤。若想运行 nsjail可以尝试升级内核版本至5.XX或者启动 docker 时传入这些参数 `--security-opt apparmor=unconfined --security-opt seccomp=unconfined --security-opt systempaths=unconfined` 或 `--privileged`。
## 开发文档
请在[该链接](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/09_Doc)中下载。

View File

@@ -1,103 +1,103 @@
# 玄铁多媒体AI软硬件融合平台
## 平台简介
XTAIXuanTie AI是基于玄铁处理器与无剑芯片平台面向多媒体AI增强场景的全栈软硬件平台。该平台对RISC-V vector、matrix及异构硬件引擎进行OpenCV、CSI-NN算子库和TMedia接口的融合抽象深度融合多媒体处理流程形成面向业务的流水线设计为用户在流水线不同环节实现AI增强优化。平台内置物体检测、分类、超分、大语言模型等各类应用算法。
## 平台优势
![image](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/4maOgdPd2WPjlWNX/img/c9db2034-5400-40cc-bcb0-b0ce8842f61d.png)
## 平台功能
cxVision视频视觉应用pipeline引擎
* 视频流水线分布式串接
* 插件式算法开发,支持脚本描述定义流水线应用
* 40+通用插件库支持采集、编解码、图像处理、AI推理等功能
* 支持插件动态加载及热更新
TMedia媒体库
* 高性能多媒体组件支持Camera/AVCodec/VPSS/AIE等功能
* 多种流媒体协议支持Http/RTSP/RTMP等
* 系统级视频帧存池管理
弹性算力抽象库
* 支持40+常用CV算子加速兼容OpenCV接口软硬协同优化
* 200+RISCV Vector优化算子全链路算子覆盖
* CSI-NN芯片对接抽象方便生态伙伴二次开发
HHB AI编译部署工具
* 支持ONNX、Caffe、Pytorch、TensorFlow等主流模型转换
* 支持算子融合、算子拆分、常量折叠、量化信息传播、零点合并等计算图优化
* 支持多种对称和非对称定点量化,支持通道量化
* 支持代码生成、异构执行
* [HBB 产品页](https://xuantie.t-head.cn/soft-tools/tools/4197795688228130816?spm=a2cl5.29101270.0.0.f056tR3JtR3JWW)
功能性能诊断工具
* 针对RISC-V指令特性的自动插桩
* 系统性能及视频流水线插件的可视化诊断分析
* 模型模拟运行及算力分析统计
算法生态
* AI模型和应用例程一站式体验
* 检测、分类、分割、超分、手势等各类视觉AI模型支持
* 大模型支持LLM、多模态等
## 平台框图
![image](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/4maOgdPd2WPjlWNX/img/0fa09641-a6ee-4e4e-93d7-e90c19fa422d.png)
## 资源下载
[SDK及手册](https://www.xrvm.cn/soft-tools/application/mediaAI?spm=a2cl5.14300690.0.0.28b0aUwbaUwbU0)
## 已支持的开发板
[矽速·LicheePi 4A](https://wiki.sipeed.com/licheepi4a)
# 玄铁多媒体AI软硬件融合平台
## 平台简介
XTAIXuanTie AI是基于玄铁处理器与无剑芯片平台面向多媒体AI增强场景的全栈软硬件平台。该平台对RISC-V vector、matrix及异构硬件引擎进行OpenCV、CSI-NN算子库和TMedia接口的融合抽象深度融合多媒体处理流程形成面向业务的流水线设计为用户在流水线不同环节实现AI增强优化。平台内置物体检测、分类、超分、大语言模型等各类应用算法。
## 平台优势
![image](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/4maOgdPd2WPjlWNX/img/c9db2034-5400-40cc-bcb0-b0ce8842f61d.png)
## 平台功能
cxVision视频视觉应用pipeline引擎
* 视频流水线分布式串接
* 插件式算法开发,支持脚本描述定义流水线应用
* 40+通用插件库支持采集、编解码、图像处理、AI推理等功能
* 支持插件动态加载及热更新
TMedia媒体库
* 高性能多媒体组件支持Camera/AVCodec/VPSS/AIE等功能
* 多种流媒体协议支持Http/RTSP/RTMP等
* 系统级视频帧存池管理
弹性算力抽象库
* 支持40+常用CV算子加速兼容OpenCV接口软硬协同优化
* 200+RISCV Vector优化算子全链路算子覆盖
* CSI-NN芯片对接抽象方便生态伙伴二次开发
HHB AI编译部署工具
* 支持ONNX、Caffe、Pytorch、TensorFlow等主流模型转换
* 支持算子融合、算子拆分、常量折叠、量化信息传播、零点合并等计算图优化
* 支持多种对称和非对称定点量化,支持通道量化
* 支持代码生成、异构执行
* [HBB 产品页](https://xuantie.t-head.cn/soft-tools/tools/4197795688228130816?spm=a2cl5.29101270.0.0.f056tR3JtR3JWW)
功能性能诊断工具
* 针对RISC-V指令特性的自动插桩
* 系统性能及视频流水线插件的可视化诊断分析
* 模型模拟运行及算力分析统计
算法生态
* AI模型和应用例程一站式体验
* 检测、分类、分割、超分、手势等各类视觉AI模型支持
* 大模型支持LLM、多模态等
## 平台框图
![image](https://alidocs.oss-cn-zhangjiakou.aliyuncs.com/res/4maOgdPd2WPjlWNX/img/0fa09641-a6ee-4e4e-93d7-e90c19fa422d.png)
## 资源下载
[SDK及手册](https://www.xrvm.cn/soft-tools/application/mediaAI?spm=a2cl5.14300690.0.0.28b0aUwbaUwbU0)
## 已支持的开发板
[矽速·LicheePi 4A](https://wiki.sipeed.com/licheepi4a)

View File

@@ -1,124 +1,124 @@
---
title: 板卡介绍
keywords: Linux, Lichee, TH1520, SBC, RISCV
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 简介
LicheePi 4A 是基于 [Lichee Module 4A](http://wiki.sipeed.com/hardware/zh/lichee/th1520/lm4a.html) 核心板的 高性能 RISC-V Linux 开发板,以 [TH1520](https://www.t-head.cn/product/yeying) 为主控核心4xC910@1.85G RV64GCV4TOPS@int8 NPU 50GFLOP GPU板载最大 16GB 64bit LPDDR4X128GB eMMC支持 HDMI+MIPI 双4K 显示输出,支持 4K 摄像头接入双千兆网口其中一个支持POE供电和 4 个 USB3.0 接口,多种音频输入输出(由专用 C906 核心处理)。
![lpi4a](./assets/intro/lpi4a.png)
LicheePi 4A 是截止目前2023Q2为止最强的 RISC-V SBC。性能约为上一代 RISC-V SBC [VisionFive2](https://www.starfivetech.com/en/site/boards)的2倍未开启专用指令集加速的情况下性能逼近基于 ARM A72 的树莓派 4在开启相关指令集加速的情况下可以与树莓派 4 持平。而且最高具备 16GB 超大内存,是树莓派 4 最高配置 8GB 内存的两倍!
![benchmark](./assets/intro/benchmark.png)
![geekbench5](./assets/intro/geekbench5.png)
LicheePi 4A 可以用作典型的 RISC-V 验证平台,其强大的性能可以较快速地实现本地编译,而无需使用 QEMU 进行编译。
我们在近期2023Q2还会放出基于LM4A的集群计算板卡 LicheeCluster 4A最大支持 7xLM4A 进行集群计算,编译,非常适合发行版编译农场场景,尽情期待。
在保持高性能的同时,我们也尽量进行了 CostDown 设计8GB 内存版本价格在 ¥749~ 899\\$100 ~ \\$13016GB 内存版本在 ¥1100~1300 \\$155 ~\\$185, 性价比上超越了树莓派 48GB ~\\$150!
无论你是否是 RISC-V 粉丝,你都值得入手体验下 LicheePi 4A 这款划时代的高性能 RISC-V SBC
![desktop](./assets/intro/desktop.png)
## 欢迎投稿
本文档为在线文档,托管在 github 上,大家可以点击右上角 `编辑本页` 链接来进行编辑~
对成功提交文档的用户,我们视文档质量酌情提供 ¥5 ~ 150\\$1 ~ 20的优惠券~
## 基础参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>TH1520</td>
</tr>
<tr>
<td>CPU处理器</td>
<td>RISC-V 64GCV C910*4@1.85GHz <br>· 每核支持 64KB I cache 和 64KB D Cache <br>· 四核共享 1MB L2 Cache <br>· 支持 TEE 和 REETEE/REE 支持核数启动时可配置<br>· 支持自定义且接口兼容 RISC-V 的多核调试框架<br>· 独立电源域,支持 DVFS</td>
</tr>
<tr>
<td>图形处理器</td>
<td>· OpenCL 1.1/1.2/2.0<br>· OpenGL ES 3.0/3.1/3.2<br>· Vulkan 1.1/1.2<br>· Android NN HAL</td>
</tr>
<tr>
<td>NPU处理器</td>
<td>支持 4TOPS@INT8 通用 NNA 算力,主频 1GHz <br>· 支持 TensorFlow、ONNX、Caffe <br>· 支持 CNN、RNN、DNN 等</td>
</tr>
<tr>
<td>视频解码器</td>
<td>实时解码器,支持 H.265/H.264/VP9/8/7/6/AVS/AVS+/AVS2.0/VC1/MPEG4 <br>· 支持 H.264 BP/MP/HP@level 5.1 解码,最大 4K 分辨率<br>· 支持 H.265/HEVC Main Profile@level 5.1 解码,最大 4K 分辨率<br>· 支持 VP9 Profile-2 解码,最大 4K 分辨率<br>· 支持 AVS2.0 解码,最大 4K 分辨率<br>· 支持 VP6/7/8/AVS/AVS+/VC1/MPEG4 解码,最大 1920x1080 分辨率<br>· 解码性能最大 4K@75fps</td>
</tr>
<tr>
<td>视频编码器</td>
<td>· 支持 H.264 BP/MP/HP@level4.2 编码,最大 4K 分辨率<br>· 支持 H.265/HEVC Main Profile 编码,最大 4K 分辨率<br>· 仅支持 I 帧和 P 帧<br>· 编码性能最大 4K@40fps</td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 8GB 64bits LPDDR4X<br>· 16GB 64bits LPDDR4X<br></td>
</tr>
<tr>
<td>存储</td>
<td>· eMMC: 可选 空贴、 8G、 32G、 128G<br>· 支持 TF 卡</td>
</tr>
<tr>
<td>以太网</td>
<td>· 2 x 千兆以太网接口,可选 POE</td>
</tr>
<tr>
<td>USB</td>
<td>· USB3.0 x 4<br>· USB2.0 x 1仅用于烧录</td>
</tr>
<tr>
<td>音频接口</td>
<td>· 1 x 3.5mm 耳机接口<br>· 一个扬声器接口<br>· 两个板载麦克风<br></td>
</tr>
<tr>
<td>显示接口</td>
<td>· 1 x HDMI2.0<br>· 1 x 4-lane MIPI DSI</td>
</tr>
<tr>
<td>摄像头接口</td>
<td>· 2 x 2-lane MIPI CSI<br>· 1 x 4-lane MIPI CSI</td>
</tr>
<tr>
<td>GPIO</td>
<td>· UART<br>· IIC<br>· SPI</td>
</tr>
</tbody>
</table>
### 硬件资料下载
[板卡规格书](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/01_Specification)
[底板原理图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/02_Schematic)
[底板点位图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/03_Bit_number_map)
[底板尺寸图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/04_Dimensional_drawing)
[模型文件](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/05_3D_model)
## 其他链接
[Github](https://github.com/sipeed/LicheePi4A)
[淘宝](https://item.taobao.com/item.htm?id=715508771884)
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com
---
title: 板卡介绍
keywords: Linux, Lichee, TH1520, SBC, RISCV
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 简介
LicheePi 4A 是基于 [Lichee Module 4A](http://wiki.sipeed.com/hardware/zh/lichee/th1520/lm4a.html) 核心板的 高性能 RISC-V Linux 开发板,以 [TH1520](https://www.t-head.cn/product/yeying) 为主控核心4xC910@1.85G RV64GCV4TOPS@int8 NPU 50GFLOP GPU板载最大 16GB 64bit LPDDR4X128GB eMMC支持 HDMI+MIPI 双4K 显示输出,支持 4K 摄像头接入双千兆网口其中一个支持POE供电和 4 个 USB3.0 接口,多种音频输入输出(由专用 C906 核心处理)。
![lpi4a](./assets/intro/lpi4a.png)
LicheePi 4A 是截止目前2023Q2为止最强的 RISC-V SBC。性能约为上一代 RISC-V SBC [VisionFive2](https://www.starfivetech.com/en/site/boards)的2倍未开启专用指令集加速的情况下性能逼近基于 ARM A72 的树莓派 4在开启相关指令集加速的情况下可以与树莓派 4 持平。而且最高具备 16GB 超大内存,是树莓派 4 最高配置 8GB 内存的两倍!
![benchmark](./assets/intro/benchmark.png)
![geekbench5](./assets/intro/geekbench5.png)
LicheePi 4A 可以用作典型的 RISC-V 验证平台,其强大的性能可以较快速地实现本地编译,而无需使用 QEMU 进行编译。
我们在近期2023Q2还会放出基于LM4A的集群计算板卡 LicheeCluster 4A最大支持 7xLM4A 进行集群计算,编译,非常适合发行版编译农场场景,尽情期待。
在保持高性能的同时,我们也尽量进行了 CostDown 设计8GB 内存版本价格在 ¥749~ 899\\$100 ~ \\$13016GB 内存版本在 ¥1100~1300 \\$155 ~\\$185, 性价比上超越了树莓派 48GB ~\\$150!
无论你是否是 RISC-V 粉丝,你都值得入手体验下 LicheePi 4A 这款划时代的高性能 RISC-V SBC
![desktop](./assets/intro/desktop.png)
## 欢迎投稿
本文档为在线文档,托管在 github 上,大家可以点击右上角 `编辑本页` 链接来进行编辑~
对成功提交文档的用户,我们视文档质量酌情提供 ¥5 ~ 150\\$1 ~ 20的优惠券~
## 基础参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>TH1520</td>
</tr>
<tr>
<td>CPU处理器</td>
<td>RISC-V 64GCV C910*4@1.85GHz <br>· 每核支持 64KB I cache 和 64KB D Cache <br>· 四核共享 1MB L2 Cache <br>· 支持 TEE 和 REETEE/REE 支持核数启动时可配置<br>· 支持自定义且接口兼容 RISC-V 的多核调试框架<br>· 独立电源域,支持 DVFS</td>
</tr>
<tr>
<td>图形处理器</td>
<td>· OpenCL 1.1/1.2/2.0<br>· OpenGL ES 3.0/3.1/3.2<br>· Vulkan 1.1/1.2<br>· Android NN HAL</td>
</tr>
<tr>
<td>NPU处理器</td>
<td>支持 4TOPS@INT8 通用 NNA 算力,主频 1GHz <br>· 支持 TensorFlow、ONNX、Caffe <br>· 支持 CNN、RNN、DNN 等</td>
</tr>
<tr>
<td>视频解码器</td>
<td>实时解码器,支持 H.265/H.264/VP9/8/7/6/AVS/AVS+/AVS2.0/VC1/MPEG4 <br>· 支持 H.264 BP/MP/HP@level 5.1 解码,最大 4K 分辨率<br>· 支持 H.265/HEVC Main Profile@level 5.1 解码,最大 4K 分辨率<br>· 支持 VP9 Profile-2 解码,最大 4K 分辨率<br>· 支持 AVS2.0 解码,最大 4K 分辨率<br>· 支持 VP6/7/8/AVS/AVS+/VC1/MPEG4 解码,最大 1920x1080 分辨率<br>· 解码性能最大 4K@75fps</td>
</tr>
<tr>
<td>视频编码器</td>
<td>· 支持 H.264 BP/MP/HP@level4.2 编码,最大 4K 分辨率<br>· 支持 H.265/HEVC Main Profile 编码,最大 4K 分辨率<br>· 仅支持 I 帧和 P 帧<br>· 编码性能最大 4K@40fps</td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 8GB 64bits LPDDR4X<br>· 16GB 64bits LPDDR4X<br></td>
</tr>
<tr>
<td>存储</td>
<td>· eMMC: 可选 空贴、 8G、 32G、 128G<br>· 支持 TF 卡</td>
</tr>
<tr>
<td>以太网</td>
<td>· 2 x 千兆以太网接口,可选 POE</td>
</tr>
<tr>
<td>USB</td>
<td>· USB3.0 x 4<br>· USB2.0 x 1仅用于烧录</td>
</tr>
<tr>
<td>音频接口</td>
<td>· 1 x 3.5mm 耳机接口<br>· 一个扬声器接口<br>· 两个板载麦克风<br></td>
</tr>
<tr>
<td>显示接口</td>
<td>· 1 x HDMI2.0<br>· 1 x 4-lane MIPI DSI</td>
</tr>
<tr>
<td>摄像头接口</td>
<td>· 2 x 2-lane MIPI CSI<br>· 1 x 4-lane MIPI CSI</td>
</tr>
<tr>
<td>GPIO</td>
<td>· UART<br>· IIC<br>· SPI</td>
</tr>
</tbody>
</table>
### 硬件资料下载
[板卡规格书](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/01_Specification)
[底板原理图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/02_Schematic)
[底板点位图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/03_Bit_number_map)
[底板尺寸图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/04_Dimensional_drawing)
[模型文件](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/05_3D_model)
## 其他链接
[Github](https://github.com/sipeed/LicheePi4A)
[淘宝](https://item.taobao.com/item.htm?id=715508771884)
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com

View File

@@ -1,266 +1,266 @@
---
title: 开箱体验
keywords: Linux, Lichee, TH1520, SBC, RISCV, unbox
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 开箱内容
LicheePi 4A 分为两个版本,内测版与正式版。
内测版于 2023 年 5 月发售,仅有 8+8DDR+eMMC版本各部分功能基本正常。
正式版于 2023 年 7 月发售,有 8+32,16+128 版本,也会针对内测版用户提出的相关建议进行局部微调优化,功能/镜像与内测版会保持一致。
### 内测版
如果你是第一批内测版 LicheePi 4A 用户,你收到的包裹内将是如下包装:
![package_alpha](./assets/unbox/package_alpha.png)
打开塑料盒包装,你将看到如下的内容:
![unbox_alpha](./assets/unbox/unbox_alpha.png)
包裹在黑色泡棉内的就是 LicheePi 4A 主体,其余标号部件为:
1. 30x30mm 散热硅脂
2. 30mm 5V 散热风扇,右边已连接至风扇插针。如果松动脱出,请自行安装回去,注意红线为正极,装反后风扇不会转动。
3. 2.4G WiFi 天线,已安装至 IPEX 座子。如果松动脱出,请自行安装回去。
4. USB-C 线缆,作为供电和下载镜像使用。
如果开箱后发现缺少相关部件,请联系客服咨询。
### 正式版
如果你购买了正式版 LicheePi 4A你收到的包裹内将是如下包装
![package_v1](./assets/unbox/package_v1.jpg)
在包装侧面可以看到当前硬件的 内存/eMMC 版本,如果发现与你购买的版本不符,请与客服联系:
![package_v1mem](./assets/unbox/package_v1mem.jpg)
移除蓝色封盖,是白色纸盒包装:
![package_v1box](./assets/unbox/package_v1box.jpg)
打开白色纸盒就可以看到LicheePi 4A板卡
![package_v1board](./assets/unbox/package_v1board.jpg)
可以看到板卡上贴了两个二维码在底板USB上贴的二维码为底板生产信息代表了底板型号版本生产日期
`LPI4A0-23070702067`
在SOM上贴的二维码为SOM生产信息代表了 SOM型号版本内存eMMCMAC地址第二个网口地址为此地址+1生产日期
`LM4A0-16128-48DA3560003E-23071100318`
拿出开发板后纸盒底部装着默认配件USB线散热器散热硅脂
![package_v1misc](./assets/unbox/package_v1misc.jpg)
如果开箱后发现缺少相关部件,请联系客服咨询。
### 选配件
LicheePi 4A还有丰富的配件可供选择如下图所示
![accessory](./assets/unbox/accessory.jpg)
选购说明:
|配件名|选购说明|
|---|---|
|铝合金外壳|适合作为小主机,软路由的外壳|
|10.1寸触摸屏|1280x800 4lane MIPI适合作为车机安卓 调试使用|
|OV5693 摄像头 |5MP摄像头适合作为移动设备如安卓的原生摄像头调试|
|USB摄像头|5MP USB摄像头板载麦克风适合作为openCV的摄像头使用|
|PoE电源模块|5V2.4A PoE电源模块网关类应用使用网线PoE供电|
|12V电源|12V2A电源适配器板卡外接很多耗电外设时选购|
|RV Debugger Plus|UART+JTAG调试小板连接系统串口终端调试用|
## 组装板卡
### SOM安装
默认情况下 LM4A SOM 已经安装至主板上,如果你需要升级/替换 SOM可按如下说明进行 SOM 的取出和安装
1. 取出 SOM:
<table>
<tr>
<td colspan=2>先用手指往外拨动弹片解锁 SOM, 然后将 SOM 取出</td>
</tr>
<tr>
<td><img src="./assets/unbox/unlock_som.png" alt="unlock_som"></td>
<td><img src="./assets/unbox/remove_som.png" alt="remove_som"></td>
</tr>
</table>
2. 安装 SOM:
<table>
<tr>
<td colspan=2>先把 SOM 斜着插入连接器插槽, 然后按压SOM两边弹片会自动锁住SOM</td>
</tr>
<tr>
<td><img src="./assets/unbox/insert_som.png" alt="insert_som"></td>
<td><img src="./assets/unbox/lock_som.png" alt="lock_som"></td>
</tr>
</table>
### 散热器安装
LicheePi 4A 是高性能 SBC需要安装主动散热器对 SOM 进行散热,否则在满载时可能由于核心过热而自动降频,无法达到最优性能。
1. 安装导热硅脂片
取出导热硅脂片,撕开两面薄膜,将硅脂片放置在下图位置并轻轻按压固定(硅脂片自己具备一定粘性可以固定住),注意完整覆盖住主芯片与两颗内存芯片
![silicone_pad](./assets/unbox/silicone_pad.png)
2. 安装散热风扇
在硅脂片上对齐安装30mm的散热风扇并轻轻按压固定住。
![insert_fan](./assets/unbox/insert_fan.png)
3. 安装散热风扇电源
默认收到时应该已经插入好了风扇电源,如果风扇电源线脱出,请按下图所示插入,注意电源线顺序,装反风扇不会旋转。
注意,该位置上的插针电源受 linux 内核控制,需正确配置内核才会旋转,如果风扇不转,也可插到板卡下方的 20pin 插针的 5V + GND 处测试风扇好坏。
![insert_fan_cable](./assets/unbox/insert_fan_cable.png)
### WIFI天线安装
默认情况下WIFI天线已经安装在主板上如果脱出请按照下图安装回去
![insert_ant](./assets/unbox/insert_ant.png)
### POE模块安装
该模块需额外购买规格为35.6mm长度的5V PoE供电模块焊接在开发板的POE POWER位置。
PoE模块安装如图所示
<table>
<tr>
<td><img src="./assets/unbox/unbox_poe_0.jpg" alt="poe_back"></td>
<td><img src="./assets/unbox/unbox_poe_1.jpg" alt="poe_front"></td>
</tr>
</table>
### 组装完成
组装完成后的状态如下所示:
![assemble_ok](./assets/unbox/assemble_ok.png)
## 启动板卡
LicheePi 4A出库已预烧录了基础系统镜像至此你已可以快速进行开机体验
注意:预烧录的系统镜像版本可能比较旧,体验不佳,完成上电体验后,可以根据下章教程进行镜像更新。
使用 HDMI 线缆(自备)连接显示器(自备)与 LicheePi 4A 的 HDMI 口,使用配套的 USB-C 线缆连接到至少 5V2A 输出的 USB 电源(自备)上LicheePi 4A 即会开机启动,默认镜像会在 30s 内启动到桌面系统的登录界面或者自动使用sipeed账户登录到桌面。
![boot_login](./assets/unbox/boot_login.png)
默认镜像的帐号密码配置如下:
账户:`debian`,密码: `debian`
账户: `sipeed`,密码:`licheepi`
root 账户默认没有设置密码。
插入键鼠,输入用户名密码后即可登录体验,具体操作请查看后续章节。
如果按照上述操作,没能点亮显示器,进入系统,有以下可能请自查:
1. 检查电源电压是否正常USB-C 口连接是否正常,电源指示灯是否点亮
2. 检查散热器是否正常安装,风扇是否旋转
3. 检查 HDMI 是否稳固连接,显示器是否开机,以及可以尝试更换显示器测试
4. 也可能是出厂遗漏固件烧录,请按下章方法进行镜像烧录后再试
5. 如果以上均不奏效,请联系客服售后
## 铝合金外壳安装说明 {#install_shell}
### 外壳配件概览
外壳配件应包含如下内容,如有缺失,请联系客服。
![20230718_assemble_0](./assets/unbox/20230718_assemble_0.jpg)
从左到右分别是:
1. 3507涡轮风扇
2. 40x40x5mm 铝散热片
3. 小号十字螺丝刀
4. M3x5 平头螺丝 8颗
5. 外壳挡板x2
6. IPEX转SMA转接线 + SMA棒状天线
7. 30x30mm 导热硅脂片
8. 铝合金外壳x2
### 安装散热片
1. 准备开发板
![20230718_assemble_1](./assets/unbox/20230718_assemble_1.jpg)
2. 粘贴导热硅脂
![20230718_assemble_2](./assets/unbox/20230718_assemble_2.jpg)
3. 按方向安装散热片
![20230718_assemble_3](./assets/unbox/20230718_assemble_3.jpg)
### 安装盖板
1. 滑入开发板
![20230718_assemble_4](./assets/unbox/20230718_assemble_4.jpg)
2. 安装天线到盖板
![20230718_assemble_5](./assets/unbox/20230718_assemble_5.jpg)
3. 安装天线到PCB
![20230718_assemble_6](./assets/unbox/20230718_assemble_6.jpg)
4. 安装前盖板2颗螺丝
![20230718_assemble_7](./assets/unbox/20230718_assemble_7.jpg)
5. 撕开后盖板泡棉胶
![20230718_assemble_8](./assets/unbox/20230718_assemble_8.jpg)
6. 安装后盖板2颗螺丝
![20230718_assemble_9](./assets/unbox/20230718_assemble_9.jpg)
### 安装风扇
1. 插入风扇电源线到板卡插针(上正下负),粘贴风扇到顶壳(注意风扇靠近外壳边缘粘贴,拉直连接线,否则会卡住外壳)
![20230718_assemble_10](./assets/unbox/20230718_assemble_10.jpg)
2. 从右侧小心向左侧盖住顶壳(务必注意方向,否则风扇插针会卡住)
![20230718_assemble_11](./assets/unbox/20230718_assemble_11.jpg)
### 安装剩余螺丝
![20230718_assemble_12](./assets/unbox/20230718_assemble_12.jpg)
![20230718_assemble_13](./assets/unbox/20230718_assemble_13.jpg)
### 最终效果
![last](./assets/unbox/last.png)
## POE模块安装说明
POE模块需要用户手工焊接安装请按下图焊接
![poe](./assets/unbox/poe.jpg)
> 注意 POE模块焊接后无法装入铝合金外壳。
## 板卡硬件说明
完成初次点亮板卡后,可以静下心来认识下 LicheePi 4A 的硬件,方便后期可能的维护工作。
![pi_view](./assets/unbox/pi_view.png)
### 超频说明
TH1520 标称频率为 1.85GHz,我们仅保证你收到的板卡可以稳定工作在 1.85GHz。
如果你是发烧玩家,想进行超频操作,那么你有一定概率可以超频到 2GHz但我们不保证在该频率下的稳定性。
经不完全测试,约有 80% 的 SOM 可以超频至 2GHz 启动系统,约有 50% 的 SOM 可以在 2GHz 下跑通压力测试。
### USB 限流说明
由于系统最大电源输入能力为 12V2A即约 24W转换为 5V 后,大约有 20W 左右有效功率。
为了更好地为 SOM 供电SOM 在超频满载情况下可达 12W 功率),所以 USB HUB 处进行了电流限制,限制了 1.5A 的电流(内测版硬件。正式版硬件会根据反馈调整此处电流限制),即 7.5W 功率。
再接入大量 USB 设备时可能会超出该电流限制,此时建议对 USB 设备进行外部辅助供电。
如果需要解除此处电流限制请进行如下操作TODO。
### 正式版相对内测版差异说明
1. 新增USB-C口输入处的高压保护防止某些快充适配器输入高压烧毁SOM
2. 系统串口IO新增电平转换IC到3.3V,可以使用普通串口模块连接
3. 修复耳机,扬声器 自动切换电路 (内测版扬声器电路切换不到位而不稳定)
4. 耳机座中新增一路mic输入
5. 新增启动介质拨码开关SOM底部可选TF/eMMC启动
6. 其他细节丝印,元件微调
### 硬件资料下载
[板卡规格书](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/01_Specification)
[底板原理图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/02_Schematic)
[底板点位图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/03_Bit_number_map)
[底板尺寸图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/04_Dimensional_drawing)
[模型文件](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/05_3D_model)
## 其他链接
[Github](https://github.com/sipeed/LicheePi4A)
[淘宝](https://item.taobao.com/item.htm?id=715508771884)
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛bbs.sipeed.com
联系邮箱support@sipeed.com
---
title: 开箱体验
keywords: Linux, Lichee, TH1520, SBC, RISCV, unbox
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 开箱内容
LicheePi 4A 分为两个版本,内测版与正式版。
内测版于 2023 年 5 月发售,仅有 8+8DDR+eMMC版本各部分功能基本正常。
正式版于 2023 年 7 月发售,有 8+32,16+128 版本,也会针对内测版用户提出的相关建议进行局部微调优化,功能/镜像与内测版会保持一致。
### 内测版
如果你是第一批内测版 LicheePi 4A 用户,你收到的包裹内将是如下包装:
![package_alpha](./assets/unbox/package_alpha.png)
打开塑料盒包装,你将看到如下的内容:
![unbox_alpha](./assets/unbox/unbox_alpha.png)
包裹在黑色泡棉内的就是 LicheePi 4A 主体,其余标号部件为:
1. 30x30mm 散热硅脂
2. 30mm 5V 散热风扇,右边已连接至风扇插针。如果松动脱出,请自行安装回去,注意红线为正极,装反后风扇不会转动。
3. 2.4G WiFi 天线,已安装至 IPEX 座子。如果松动脱出,请自行安装回去。
4. USB-C 线缆,作为供电和下载镜像使用。
如果开箱后发现缺少相关部件,请联系客服咨询。
### 正式版
如果你购买了正式版 LicheePi 4A你收到的包裹内将是如下包装
![package_v1](./assets/unbox/package_v1.jpg)
在包装侧面可以看到当前硬件的 内存/eMMC 版本,如果发现与你购买的版本不符,请与客服联系:
![package_v1mem](./assets/unbox/package_v1mem.jpg)
移除蓝色封盖,是白色纸盒包装:
![package_v1box](./assets/unbox/package_v1box.jpg)
打开白色纸盒就可以看到LicheePi 4A板卡
![package_v1board](./assets/unbox/package_v1board.jpg)
可以看到板卡上贴了两个二维码在底板USB上贴的二维码为底板生产信息代表了底板型号版本生产日期
`LPI4A0-23070702067`
在SOM上贴的二维码为SOM生产信息代表了 SOM型号版本内存eMMCMAC地址第二个网口地址为此地址+1生产日期
`LM4A0-16128-48DA3560003E-23071100318`
拿出开发板后纸盒底部装着默认配件USB线散热器散热硅脂
![package_v1misc](./assets/unbox/package_v1misc.jpg)
如果开箱后发现缺少相关部件,请联系客服咨询。
### 选配件
LicheePi 4A还有丰富的配件可供选择如下图所示
![accessory](./assets/unbox/accessory.jpg)
选购说明:
|配件名|选购说明|
|---|---|
|铝合金外壳|适合作为小主机,软路由的外壳|
|10.1寸触摸屏|1280x800 4lane MIPI适合作为车机安卓 调试使用|
|OV5693 摄像头 |5MP摄像头适合作为移动设备如安卓的原生摄像头调试|
|USB摄像头|5MP USB摄像头板载麦克风适合作为openCV的摄像头使用|
|PoE电源模块|5V2.4A PoE电源模块网关类应用使用网线PoE供电|
|12V电源|12V2A电源适配器板卡外接很多耗电外设时选购|
|RV Debugger Plus|UART+JTAG调试小板连接系统串口终端调试用|
## 组装板卡
### SOM安装
默认情况下 LM4A SOM 已经安装至主板上,如果你需要升级/替换 SOM可按如下说明进行 SOM 的取出和安装
1. 取出 SOM:
<table>
<tr>
<td colspan=2>先用手指往外拨动弹片解锁 SOM, 然后将 SOM 取出</td>
</tr>
<tr>
<td><img src="./assets/unbox/unlock_som.png" alt="unlock_som"></td>
<td><img src="./assets/unbox/remove_som.png" alt="remove_som"></td>
</tr>
</table>
2. 安装 SOM:
<table>
<tr>
<td colspan=2>先把 SOM 斜着插入连接器插槽, 然后按压SOM两边弹片会自动锁住SOM</td>
</tr>
<tr>
<td><img src="./assets/unbox/insert_som.png" alt="insert_som"></td>
<td><img src="./assets/unbox/lock_som.png" alt="lock_som"></td>
</tr>
</table>
### 散热器安装
LicheePi 4A 是高性能 SBC需要安装主动散热器对 SOM 进行散热,否则在满载时可能由于核心过热而自动降频,无法达到最优性能。
1. 安装导热硅脂片
取出导热硅脂片,撕开两面薄膜,将硅脂片放置在下图位置并轻轻按压固定(硅脂片自己具备一定粘性可以固定住),注意完整覆盖住主芯片与两颗内存芯片
![silicone_pad](./assets/unbox/silicone_pad.png)
2. 安装散热风扇
在硅脂片上对齐安装30mm的散热风扇并轻轻按压固定住。
![insert_fan](./assets/unbox/insert_fan.png)
3. 安装散热风扇电源
默认收到时应该已经插入好了风扇电源,如果风扇电源线脱出,请按下图所示插入,注意电源线顺序,装反风扇不会旋转。
注意,该位置上的插针电源受 linux 内核控制,需正确配置内核才会旋转,如果风扇不转,也可插到板卡下方的 20pin 插针的 5V + GND 处测试风扇好坏。
![insert_fan_cable](./assets/unbox/insert_fan_cable.png)
### WIFI天线安装
默认情况下WIFI天线已经安装在主板上如果脱出请按照下图安装回去
![insert_ant](./assets/unbox/insert_ant.png)
### POE模块安装
该模块需额外购买规格为35.6mm长度的5V PoE供电模块焊接在开发板的POE POWER位置。
PoE模块安装如图所示
<table>
<tr>
<td><img src="./assets/unbox/unbox_poe_0.jpg" alt="poe_back"></td>
<td><img src="./assets/unbox/unbox_poe_1.jpg" alt="poe_front"></td>
</tr>
</table>
### 组装完成
组装完成后的状态如下所示:
![assemble_ok](./assets/unbox/assemble_ok.png)
## 启动板卡
LicheePi 4A出库已预烧录了基础系统镜像至此你已可以快速进行开机体验
注意:预烧录的系统镜像版本可能比较旧,体验不佳,完成上电体验后,可以根据下章教程进行镜像更新。
使用 HDMI 线缆(自备)连接显示器(自备)与 LicheePi 4A 的 HDMI 口,使用配套的 USB-C 线缆连接到至少 5V2A 输出的 USB 电源(自备)上LicheePi 4A 即会开机启动,默认镜像会在 30s 内启动到桌面系统的登录界面或者自动使用sipeed账户登录到桌面。
![boot_login](./assets/unbox/boot_login.png)
默认镜像的帐号密码配置如下:
账户:`debian`,密码: `debian`
账户: `sipeed`,密码:`licheepi`
root 账户默认没有设置密码。
插入键鼠,输入用户名密码后即可登录体验,具体操作请查看后续章节。
如果按照上述操作,没能点亮显示器,进入系统,有以下可能请自查:
1. 检查电源电压是否正常USB-C 口连接是否正常,电源指示灯是否点亮
2. 检查散热器是否正常安装,风扇是否旋转
3. 检查 HDMI 是否稳固连接,显示器是否开机,以及可以尝试更换显示器测试
4. 也可能是出厂遗漏固件烧录,请按下章方法进行镜像烧录后再试
5. 如果以上均不奏效,请联系客服售后
## 铝合金外壳安装说明 {#install_shell}
### 外壳配件概览
外壳配件应包含如下内容,如有缺失,请联系客服。
![20230718_assemble_0](./assets/unbox/20230718_assemble_0.jpg)
从左到右分别是:
1. 3507涡轮风扇
2. 40x40x5mm 铝散热片
3. 小号十字螺丝刀
4. M3x5 平头螺丝 8颗
5. 外壳挡板x2
6. IPEX转SMA转接线 + SMA棒状天线
7. 30x30mm 导热硅脂片
8. 铝合金外壳x2
### 安装散热片
1. 准备开发板
![20230718_assemble_1](./assets/unbox/20230718_assemble_1.jpg)
2. 粘贴导热硅脂
![20230718_assemble_2](./assets/unbox/20230718_assemble_2.jpg)
3. 按方向安装散热片
![20230718_assemble_3](./assets/unbox/20230718_assemble_3.jpg)
### 安装盖板
1. 滑入开发板
![20230718_assemble_4](./assets/unbox/20230718_assemble_4.jpg)
2. 安装天线到盖板
![20230718_assemble_5](./assets/unbox/20230718_assemble_5.jpg)
3. 安装天线到PCB
![20230718_assemble_6](./assets/unbox/20230718_assemble_6.jpg)
4. 安装前盖板2颗螺丝
![20230718_assemble_7](./assets/unbox/20230718_assemble_7.jpg)
5. 撕开后盖板泡棉胶
![20230718_assemble_8](./assets/unbox/20230718_assemble_8.jpg)
6. 安装后盖板2颗螺丝
![20230718_assemble_9](./assets/unbox/20230718_assemble_9.jpg)
### 安装风扇
1. 插入风扇电源线到板卡插针(上正下负),粘贴风扇到顶壳(注意风扇靠近外壳边缘粘贴,拉直连接线,否则会卡住外壳)
![20230718_assemble_10](./assets/unbox/20230718_assemble_10.jpg)
2. 从右侧小心向左侧盖住顶壳(务必注意方向,否则风扇插针会卡住)
![20230718_assemble_11](./assets/unbox/20230718_assemble_11.jpg)
### 安装剩余螺丝
![20230718_assemble_12](./assets/unbox/20230718_assemble_12.jpg)
![20230718_assemble_13](./assets/unbox/20230718_assemble_13.jpg)
### 最终效果
![last](./assets/unbox/last.png)
## POE模块安装说明
POE模块需要用户手工焊接安装请按下图焊接
![poe](./assets/unbox/poe.jpg)
> 注意 POE模块焊接后无法装入铝合金外壳。
## 板卡硬件说明
完成初次点亮板卡后,可以静下心来认识下 LicheePi 4A 的硬件,方便后期可能的维护工作。
![pi_view](./assets/unbox/pi_view.png)
### 超频说明
TH1520 标称频率为 1.85GHz,我们仅保证你收到的板卡可以稳定工作在 1.85GHz。
如果你是发烧玩家,想进行超频操作,那么你有一定概率可以超频到 2GHz但我们不保证在该频率下的稳定性。
经不完全测试,约有 80% 的 SOM 可以超频至 2GHz 启动系统,约有 50% 的 SOM 可以在 2GHz 下跑通压力测试。
### USB 限流说明
由于系统最大电源输入能力为 12V2A即约 24W转换为 5V 后,大约有 20W 左右有效功率。
为了更好地为 SOM 供电SOM 在超频满载情况下可达 12W 功率),所以 USB HUB 处进行了电流限制,限制了 1.5A 的电流(内测版硬件。正式版硬件会根据反馈调整此处电流限制),即 7.5W 功率。
再接入大量 USB 设备时可能会超出该电流限制,此时建议对 USB 设备进行外部辅助供电。
如果需要解除此处电流限制请进行如下操作TODO。
### 正式版相对内测版差异说明
1. 新增USB-C口输入处的高压保护防止某些快充适配器输入高压烧毁SOM
2. 系统串口IO新增电平转换IC到3.3V,可以使用普通串口模块连接
3. 修复耳机,扬声器 自动切换电路 (内测版扬声器电路切换不到位而不稳定)
4. 耳机座中新增一路mic输入
5. 新增启动介质拨码开关SOM底部可选TF/eMMC启动
6. 其他细节丝印,元件微调
### 硬件资料下载
[板卡规格书](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/01_Specification)
[底板原理图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/02_Schematic)
[底板点位图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/03_Bit_number_map)
[底板尺寸图](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/04_Dimensional_drawing)
[模型文件](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/05_3D_model)
## 其他链接
[Github](https://github.com/sipeed/LicheePi4A)
[淘宝](https://item.taobao.com/item.htm?id=715508771884)
[Sipeed 下载站](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a)
QQ群: 559614960 [点我自动加群](http://qm.qq.com/cgi-bin/qm/qr?k=5YkapIhdtWHp8AEfM5_bFFYQIX3CUQN6)
Telegram: https://t.me/linux4rv
论坛bbs.sipeed.com
联系邮箱support@sipeed.com

View File

@@ -1,289 +1,289 @@
---
title: 镜像集合
keywords: Linux, Lichee, TH1520, SBC, RISCV, image
update:
- date: 2023-10-23
version: v1.2
author: ztd
content:
- Update image info and upload new images
- date: 2023-07-14
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 内核支持
目前平头哥官方 SDK 使用 Linux5.10 内核: https://gitee.com/xuantie-linux
主线 linux6.x 内核正在移植中,主要社区贡献者:`Jisheng Zhang `
## Sipeed官方镜像
LicheePi 4A 的镜像不定期更新中,初期的镜像可能不太稳定,或者无法发挥 TH1520 的完全性能,请关注本页面,获取最新镜像。
Sipeed 官方镜像基于 Debian 系统修改适配。
默认镜像的帐号密码配置如下:
账户:`debian`,密码: `debian`
账户: `sipeed`,密码:`licheepi`
root 账户默认没有设置密码。
### 内存问题修复说明
重要提示2023.8.1 之前发出的 16GB 内存板存在错误图像,无法正确识别 16GB 内存(运行大型应用程序可能导致系统崩溃),请按照以下说明修复此错误。
请使用下面的命令烧录新的 u-boot 到板子中16G 内存使用的 u-boot 在[网盘链接](https://pan.baidu.com/s/1xH56ZlewB6UOMlke5BrKWQ)中,也能在[这个链接](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/07_Tools)中下载
相关文件在 `20230803_tempfix.zip` 压缩包中。
0721及以后版本的镜像内存能正常使用无需替换为此处的文件
```shell
sudo ./fastboot flash ram ./images/u-boot-with-spl-lpi4a-16g.bin
sudo ./fastboot reboot
sleep 1
sudo ./fastboot flash uboot ./images/u-boot-with-spl-lpi4a-16g.bin
# 若自己使用的 boot.ext4 中没有 16G ddr 对应的设备树,则需要再烧录 16G ddr 对应的 boot.ext4
sudo ./fastboot flash boot ./images/boot.ext4
```
### Debian
![debian](./assets/images/debian.png)
![debian_neofetch](./assets/images/debian_neofetch.png)
下载地址:
百度网盘:[点我](https://pan.baidu.com/s/1xH56ZlewB6UOMlke5BrKWQ)
Mega 云盘:[点我](https://mega.nz/folder/phoQlBTZ#cZeQ3qZ__pDvP94PT3_bGA)
ISCAS 镜像站(内含测试镜像,普通用户请使用前面网盘中的镜像):[点我](https://mirror.iscas.ac.cn/revyos/extra/images/lpi4a/)
1. LPI4A_20240111_BASIC.zip
- 发布日期2024年1月11日
- 内核5.10
- 根文件系统ext4, 4.3GB
- 主要预装软件包:
- 开发类 python3.11
- 办公类 libreoffice 套件
- 浏览器 chromium
- 媒体类 支持播放4K视频的播放器 Parole支持硬件加速推荐优先使用、VLC、GIMP
- 更新记录:
20230706
- HDMI 显示设备和 HDMI 音频设备识别问题
- 修复蓝牙问题,现在蓝牙设备功能正常,蓝牙耳机也能正常播放音频
- 修复桌面底部启动栏浏览器快捷方式不可用的问题,现在能点击这里进入 chromium
- 修复在长时间连接 USB 摄像头情况下,会导致 kernel panic 的问题
20230721
- 修复16GB内存识别问题需完全识别16GB内存请更新此镜像
20230912
- 修复HDMI 音频在 chromium 下播放音质的问题
- 修复双屏异显时字体显示像素缺失的问题
20231023
- 修复光标指针不准问题
- 修复NPU驱动 kernel 和 user 版本不匹配的问题
- 修复烧录4G以上根文件系统失败问题
20231214
- 修复光标闪烁问题
- 添加 Wifi6 驱动支持
20240111
- 修复MIPI屏幕亮度无法调节的问题
- 修复新 WIFI/BT 模块的蓝牙无法使用的问题
- 使用说明:
- 该镜像开启了自动登陆,默认登陆用户为 sipeed
- 该镜像开启了免密码 sudo 功能;
- 该镜像会自动加载 NPU 相关的驱动,无需手动初始化;
- 该镜像同时支持 HDMI 和 MIPI 显示,需要通过启动菜单切换
- 启动菜单配置文件在 boot.ext4 中,路径为 /boot/extlinux/extlinux.conf。其中有三项区别在于后缀启动项1后缀为(HDMI only)启动项2后缀为(HDMI and MIPI)启动项3后缀为(rescue target)若因为一些更改导致无法正常进入系统可以尝试使用启动项3进行修复。
- 默认启动项仅支持 HDMI 显示,有两种办法更换为支持 MIPI 显示的启动项:
1. 连接串口工具在开机时会出现启动菜单按下数字键2即可选择第二项启动该方法仅针对当前这次启动生效
2. 修改 extlinux.conf 文件,将文件中的 default l0 更改为 default l1 即可实现修改默认启动项为支持 MIPI 显示的镜像。
- 该压缩包包含两种 u-boot 烧录时请注意文件名中的后缀和设备相关参数对应
- u-boot 带 16g 后缀的为支持 16g 内存的u-boot不带后缀的为支持 8g 内存的 u-boot
- 已知问题:
2. LPI4A_20240111_FULL.zip
- 发布日期2024年1月11日
- 内核5.10
- 根文件系统ext4, 9.7GB
- 主要预装软件包:
- 开发类 python3.11、GCC、VScode、Kicad含示例工程、AI环境含预编译yolov5n/yolov5s可执行示例
- 办公类 libreoffice 套件
- 浏览器 chromium
- 媒体类 支持播放4K视频的播放器 Parole支持硬件加速推荐优先使用含示例4k视频、VLC、GIMP、视频编辑软件 Kdenlive含示例视频素材、kodi
- 游戏 SuperTuxKart
- 其他 btop、neofetch
- 更新记录:
20230706
- HDMI 显示设备和 HDMI 音频设备识别问题
- 修复蓝牙问题,现在蓝牙设备功能正常,蓝牙耳机也能正常播放音频
- 修复桌面底部启动栏浏览器快捷方式不可用的问题,现在能点击这里进入 chromium
- 修复在长时间连接 USB 摄像头情况下,会导致 kernel panic 的问题
20230721
- 修复16GB内存识别问题需完全识别16GB内存请更新此镜像
20230912
- 修复HDMI 音频在 chromium 下播放音质的问题
- 修复双屏异显时字体显示像素缺失的问题
20231023
- 修复光标指针不准问题
- 修复NPU驱动 kernel 和 user 版本不匹配的问题
- 修复烧录4G以上根文件系统失败问题
20231214
- 修复光标闪烁问题
- 添加 Wifi6 驱动支持
20240111
- 修复MIPI屏幕亮度无法调节的问题
- 修复新 WIFI/BT 模块的蓝牙无法使用的问题
- 使用说明:
- 该镜像占用空间较大,内测版由于 EMMC 容量只有 8G故无法使用本镜像内测版用户请使用 BASIC 版本镜像;
- 该镜像开启了自动登陆,默认登陆用户为 sipeed
- 该镜像开启了免密码 sudo 功能;
- 该镜像会自动加载 NPU 相关的驱动,无需手动初始化;
- 该镜像同时支持 HDMI 和 MIPI 显示,需要通过启动菜单切换
- 启动菜单配置文件在 boot.ext4 中,路径为 /boot/extlinux/extlinux.conf。其中有三项区别在于后缀启动项1后缀为(HDMI only)启动项2后缀为(HDMI and MIPI)启动项3后缀为(rescue target)若因为一些更改导致无法正常进入系统可以尝试使用启动项3进行修复。
- 默认启动项仅支持 HDMI 显示,有两种办法更换为支持 MIPI 显示的启动项:
1. 连接串口工具在开机时会出现启动菜单按下数字键2即可选择第二项启动该方法仅针对当前这次启动生效
2. 修改 extlinux.conf 文件,将文件中的 default l0 更改为 default l1 即可实现修改默认启动项为支持 MIPI 显示的镜像。
- 该压缩包包含两种 u-boot 烧录时请注意文件名中的后缀和设备相关参数对应
- u-boot 带 16g 后缀的为支持 16g 内存的u-boot不带后缀的为支持 8g 内存的 u-boot
- 已知问题:
### OpenWRT
![openwrt](./assets/images/openwrt.png)
[Click me](https://github.com/ruyisdk/openwrt)
### Android
![android](./assets/images/android.png)
Readme and image download link: [Click me](https://gitee.com/thead-android/thead-android)
预构建镜像下载地址:
百度网盘:[点我](https://pan.baidu.com/s/1xH56ZlewB6UOMlke5BrKWQ)
Mega 云盘:[点我](https://mega.nz/folder/phoQlBTZ#cZeQ3qZ__pDvP94PT3_bGA)
> 安卓13 SDK 仍处于初期状态,会逐步修复其中的问题
Sipeed 官方镜像的网盘下载链接中提供了 Android 13的预编译镜像文件下载后烧录方式如下fastboot工具请使用从这里下载的版本
https://developer.android.com/tools/releases/platform-tools
网盘中也有提供 fastboot 的文件
```shell
#烧录uboot并初始化boot环境变量
fastboot flash ram u-boot-with-spl.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl.bin
#烧录各个分区
#在非boot烧写模式可以在uboot的命令行中输入命令fastboot usb 0单独烧录分区
fastboot flash bootpart bootpart.ext4
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash super super.img
fastboot flash userdata userdata.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img
#初始化metadata和misc分区
fastboot erase metadata
fastboot erase misc
```
## 第三方镜像
这里整理了第三方提供的镜像仅供用户体验sipeed 不保证此类镜像的可用性,稳定性。
### openEuler
![openEuler](./assets/images/openEuler.png)
![openeuler_neofetch](./assets/images/openeuler_neofetch.png)
Download: [Click me](https://mirror.iscas.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/preview/openEuler-23.09-V1-riscv64/lpi4a/)
Twitter: https://twitter.com/openEuler
### DeepinOS 深度
![deepin](./assets/images/deepin.jpg)
![deepin_neofetch](./assets/images/deepin_neofetch.png)
Readme and image download link: [Click me](https://github.com/aiminickwong/licheepi4a-images)
### openKylin
![openKylin](./assets/images/openkylin.png)
![oepnkylin_neofetch](./assets/images/oepnkylin_neofetch.png)
Readme link: [Click me](https://github.com/aiminickwong/licheepi4a-images)
[openKylin V1.0 Download address](https://www.openkylin.top/downloads/index-cn.html)
### armbian (official build-framework, use RV64GC toolchain)
![armbian](https://cdn.armbian.com/wp-content/uploads/2018/03/logo2.png)
Project address: [Click me](https://github.com/armbian/build)
Download and Infomations: [Click me](https://www.armbian.com/licheepi-4a/)
### armbian (unofficial build-framework, use T-Head optimized toolchain)
![armbian](https://cdn.armbian.com/wp-content/uploads/2018/03/logo2.png)
![armbian_neofetch](./assets/images/armbian_neofetch.png)
Project address: [Click me](https://github.com/chainsx/armbian-riscv-build)
### Fedora (unofficial)
![fedora](./assets/images/fedora.png)
![fedora_neofetch](./assets/images/fedora_neofetch.png)
Project address: [Click me](https://github.com/chainsx/fedora-riscv-builder)
### OpenWrt (unofficial)
![openwrt](./assets/images/openwrt.png)
![openwrt_unofficial](./assets/images/openwrt_unofficial.png)
Project address: [Click me](https://github.com/chainsx/openwrt-th1520)
### Ubuntu
![ubuntu](./assets/images/ubuntu.png)
[Click me](http://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/)
![ubuntu_neofetch](./assets/images/ubuntu_neofetch.jpg)
### NixOS (unofficial)
![nixos](./assets/images/nixos.png)
![nixos_neofetch](./assets/images/nixos-licheepi-neofetch.jpg)
Project address: [Click me](https://github.com/ryan4yin/nixos-licheepi4a)
### Gentoo
Project address: [Click me](https://wiki.gentoo.org/wiki/Project:RISC-V)
下面链接说明如何从stage3制作一个Gentoo Linux系统
Deplay Gentoo Linux [Click me](https://wiki.gentoo.org/wiki/User:Dlan/RISC-V/TH1520)
![gentoo](./assets/images/gentoo.jpg)
### slarm64
![slarm64](./assets/images/slarm64.png)
Project address: [Click me](https://gitlab.com/sndwvs/images_build_kit)
Download: [Click me](https://dl.slarm64.org/slackware/images/lichee_pi_4a/)
### irradium
[irradium](https://irradium.org/) - source based Linux distribution [CRUX](https://crux.nu/) adhering to ideology keep it simple, has its own [package system](https://crux.nu/Main/Handbook3-7#ntoc29), also supports the [port system](https://crux.nu/Main/Handbook3-7#ntoc47).
Project address: [Click me](https://gitlab.com/sndwvs/irradium.git)
Download: [Click me](https://dl.irradium.org/irradium/images/lichee_pi_4a/)
---
title: 镜像集合
keywords: Linux, Lichee, TH1520, SBC, RISCV, image
update:
- date: 2023-10-23
version: v1.2
author: ztd
content:
- Update image info and upload new images
- date: 2023-07-14
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 内核支持
目前平头哥官方 SDK 使用 Linux5.10 内核: https://gitee.com/xuantie-linux
主线 linux6.x 内核正在移植中,主要社区贡献者:`Jisheng Zhang `
## Sipeed官方镜像
LicheePi 4A 的镜像不定期更新中,初期的镜像可能不太稳定,或者无法发挥 TH1520 的完全性能,请关注本页面,获取最新镜像。
Sipeed 官方镜像基于 Debian 系统修改适配。
默认镜像的帐号密码配置如下:
账户:`debian`,密码: `debian`
账户: `sipeed`,密码:`licheepi`
root 账户默认没有设置密码。
### 内存问题修复说明
重要提示2023.8.1 之前发出的 16GB 内存板存在错误图像,无法正确识别 16GB 内存(运行大型应用程序可能导致系统崩溃),请按照以下说明修复此错误。
请使用下面的命令烧录新的 u-boot 到板子中16G 内存使用的 u-boot 在[网盘链接](https://pan.baidu.com/s/1xH56ZlewB6UOMlke5BrKWQ)中,也能在[这个链接](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/07_Tools)中下载
相关文件在 `20230803_tempfix.zip` 压缩包中。
0721及以后版本的镜像内存能正常使用无需替换为此处的文件
```shell
sudo ./fastboot flash ram ./images/u-boot-with-spl-lpi4a-16g.bin
sudo ./fastboot reboot
sleep 1
sudo ./fastboot flash uboot ./images/u-boot-with-spl-lpi4a-16g.bin
# 若自己使用的 boot.ext4 中没有 16G ddr 对应的设备树,则需要再烧录 16G ddr 对应的 boot.ext4
sudo ./fastboot flash boot ./images/boot.ext4
```
### Debian
![debian](./assets/images/debian.png)
![debian_neofetch](./assets/images/debian_neofetch.png)
下载地址:
百度网盘:[点我](https://pan.baidu.com/s/1xH56ZlewB6UOMlke5BrKWQ)
Mega 云盘:[点我](https://mega.nz/folder/phoQlBTZ#cZeQ3qZ__pDvP94PT3_bGA)
ISCAS 镜像站(内含测试镜像,普通用户请使用前面网盘中的镜像):[点我](https://mirror.iscas.ac.cn/revyos/extra/images/lpi4a/)
1. LPI4A_20240111_BASIC.zip
- 发布日期2024年1月11日
- 内核5.10
- 根文件系统ext4, 4.3GB
- 主要预装软件包:
- 开发类 python3.11
- 办公类 libreoffice 套件
- 浏览器 chromium
- 媒体类 支持播放4K视频的播放器 Parole支持硬件加速推荐优先使用、VLC、GIMP
- 更新记录:
20230706
- HDMI 显示设备和 HDMI 音频设备识别问题
- 修复蓝牙问题,现在蓝牙设备功能正常,蓝牙耳机也能正常播放音频
- 修复桌面底部启动栏浏览器快捷方式不可用的问题,现在能点击这里进入 chromium
- 修复在长时间连接 USB 摄像头情况下,会导致 kernel panic 的问题
20230721
- 修复16GB内存识别问题需完全识别16GB内存请更新此镜像
20230912
- 修复HDMI 音频在 chromium 下播放音质的问题
- 修复双屏异显时字体显示像素缺失的问题
20231023
- 修复光标指针不准问题
- 修复NPU驱动 kernel 和 user 版本不匹配的问题
- 修复烧录4G以上根文件系统失败问题
20231214
- 修复光标闪烁问题
- 添加 Wifi6 驱动支持
20240111
- 修复MIPI屏幕亮度无法调节的问题
- 修复新 WIFI/BT 模块的蓝牙无法使用的问题
- 使用说明:
- 该镜像开启了自动登陆,默认登陆用户为 sipeed
- 该镜像开启了免密码 sudo 功能;
- 该镜像会自动加载 NPU 相关的驱动,无需手动初始化;
- 该镜像同时支持 HDMI 和 MIPI 显示,需要通过启动菜单切换
- 启动菜单配置文件在 boot.ext4 中,路径为 /boot/extlinux/extlinux.conf。其中有三项区别在于后缀启动项1后缀为(HDMI only)启动项2后缀为(HDMI and MIPI)启动项3后缀为(rescue target)若因为一些更改导致无法正常进入系统可以尝试使用启动项3进行修复。
- 默认启动项仅支持 HDMI 显示,有两种办法更换为支持 MIPI 显示的启动项:
1. 连接串口工具在开机时会出现启动菜单按下数字键2即可选择第二项启动该方法仅针对当前这次启动生效
2. 修改 extlinux.conf 文件,将文件中的 default l0 更改为 default l1 即可实现修改默认启动项为支持 MIPI 显示的镜像。
- 该压缩包包含两种 u-boot 烧录时请注意文件名中的后缀和设备相关参数对应
- u-boot 带 16g 后缀的为支持 16g 内存的u-boot不带后缀的为支持 8g 内存的 u-boot
- 已知问题:
2. LPI4A_20240111_FULL.zip
- 发布日期2024年1月11日
- 内核5.10
- 根文件系统ext4, 9.7GB
- 主要预装软件包:
- 开发类 python3.11、GCC、VScode、Kicad含示例工程、AI环境含预编译yolov5n/yolov5s可执行示例
- 办公类 libreoffice 套件
- 浏览器 chromium
- 媒体类 支持播放4K视频的播放器 Parole支持硬件加速推荐优先使用含示例4k视频、VLC、GIMP、视频编辑软件 Kdenlive含示例视频素材、kodi
- 游戏 SuperTuxKart
- 其他 btop、neofetch
- 更新记录:
20230706
- HDMI 显示设备和 HDMI 音频设备识别问题
- 修复蓝牙问题,现在蓝牙设备功能正常,蓝牙耳机也能正常播放音频
- 修复桌面底部启动栏浏览器快捷方式不可用的问题,现在能点击这里进入 chromium
- 修复在长时间连接 USB 摄像头情况下,会导致 kernel panic 的问题
20230721
- 修复16GB内存识别问题需完全识别16GB内存请更新此镜像
20230912
- 修复HDMI 音频在 chromium 下播放音质的问题
- 修复双屏异显时字体显示像素缺失的问题
20231023
- 修复光标指针不准问题
- 修复NPU驱动 kernel 和 user 版本不匹配的问题
- 修复烧录4G以上根文件系统失败问题
20231214
- 修复光标闪烁问题
- 添加 Wifi6 驱动支持
20240111
- 修复MIPI屏幕亮度无法调节的问题
- 修复新 WIFI/BT 模块的蓝牙无法使用的问题
- 使用说明:
- 该镜像占用空间较大,内测版由于 EMMC 容量只有 8G故无法使用本镜像内测版用户请使用 BASIC 版本镜像;
- 该镜像开启了自动登陆,默认登陆用户为 sipeed
- 该镜像开启了免密码 sudo 功能;
- 该镜像会自动加载 NPU 相关的驱动,无需手动初始化;
- 该镜像同时支持 HDMI 和 MIPI 显示,需要通过启动菜单切换
- 启动菜单配置文件在 boot.ext4 中,路径为 /boot/extlinux/extlinux.conf。其中有三项区别在于后缀启动项1后缀为(HDMI only)启动项2后缀为(HDMI and MIPI)启动项3后缀为(rescue target)若因为一些更改导致无法正常进入系统可以尝试使用启动项3进行修复。
- 默认启动项仅支持 HDMI 显示,有两种办法更换为支持 MIPI 显示的启动项:
1. 连接串口工具在开机时会出现启动菜单按下数字键2即可选择第二项启动该方法仅针对当前这次启动生效
2. 修改 extlinux.conf 文件,将文件中的 default l0 更改为 default l1 即可实现修改默认启动项为支持 MIPI 显示的镜像。
- 该压缩包包含两种 u-boot 烧录时请注意文件名中的后缀和设备相关参数对应
- u-boot 带 16g 后缀的为支持 16g 内存的u-boot不带后缀的为支持 8g 内存的 u-boot
- 已知问题:
### OpenWRT
![openwrt](./assets/images/openwrt.png)
[Click me](https://github.com/ruyisdk/openwrt)
### Android
![android](./assets/images/android.png)
Readme and image download link: [Click me](https://gitee.com/thead-android/thead-android)
预构建镜像下载地址:
百度网盘:[点我](https://pan.baidu.com/s/1xH56ZlewB6UOMlke5BrKWQ)
Mega 云盘:[点我](https://mega.nz/folder/phoQlBTZ#cZeQ3qZ__pDvP94PT3_bGA)
> 安卓13 SDK 仍处于初期状态,会逐步修复其中的问题
Sipeed 官方镜像的网盘下载链接中提供了 Android 13的预编译镜像文件下载后烧录方式如下fastboot工具请使用从这里下载的版本
https://developer.android.com/tools/releases/platform-tools
网盘中也有提供 fastboot 的文件
```shell
#烧录uboot并初始化boot环境变量
fastboot flash ram u-boot-with-spl.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl.bin
#烧录各个分区
#在非boot烧写模式可以在uboot的命令行中输入命令fastboot usb 0单独烧录分区
fastboot flash bootpart bootpart.ext4
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash super super.img
fastboot flash userdata userdata.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img
#初始化metadata和misc分区
fastboot erase metadata
fastboot erase misc
```
## 第三方镜像
这里整理了第三方提供的镜像仅供用户体验sipeed 不保证此类镜像的可用性,稳定性。
### openEuler
![openEuler](./assets/images/openEuler.png)
![openeuler_neofetch](./assets/images/openeuler_neofetch.png)
Download: [Click me](https://mirror.iscas.ac.cn/openeuler-sig-riscv/openEuler-RISC-V/preview/openEuler-23.09-V1-riscv64/lpi4a/)
Twitter: https://twitter.com/openEuler
### DeepinOS 深度
![deepin](./assets/images/deepin.jpg)
![deepin_neofetch](./assets/images/deepin_neofetch.png)
Readme and image download link: [Click me](https://github.com/aiminickwong/licheepi4a-images)
### openKylin
![openKylin](./assets/images/openkylin.png)
![oepnkylin_neofetch](./assets/images/oepnkylin_neofetch.png)
Readme link: [Click me](https://github.com/aiminickwong/licheepi4a-images)
[openKylin V1.0 Download address](https://www.openkylin.top/downloads/index-cn.html)
### armbian (official build-framework, use RV64GC toolchain)
![armbian](https://cdn.armbian.com/wp-content/uploads/2018/03/logo2.png)
Project address: [Click me](https://github.com/armbian/build)
Download and Infomations: [Click me](https://www.armbian.com/licheepi-4a/)
### armbian (unofficial build-framework, use T-Head optimized toolchain)
![armbian](https://cdn.armbian.com/wp-content/uploads/2018/03/logo2.png)
![armbian_neofetch](./assets/images/armbian_neofetch.png)
Project address: [Click me](https://github.com/chainsx/armbian-riscv-build)
### Fedora (unofficial)
![fedora](./assets/images/fedora.png)
![fedora_neofetch](./assets/images/fedora_neofetch.png)
Project address: [Click me](https://github.com/chainsx/fedora-riscv-builder)
### OpenWrt (unofficial)
![openwrt](./assets/images/openwrt.png)
![openwrt_unofficial](./assets/images/openwrt_unofficial.png)
Project address: [Click me](https://github.com/chainsx/openwrt-th1520)
### Ubuntu
![ubuntu](./assets/images/ubuntu.png)
[Click me](http://cdimage.ubuntu.com/ubuntu-base/releases/22.04/release/)
![ubuntu_neofetch](./assets/images/ubuntu_neofetch.jpg)
### NixOS (unofficial)
![nixos](./assets/images/nixos.png)
![nixos_neofetch](./assets/images/nixos-licheepi-neofetch.jpg)
Project address: [Click me](https://github.com/ryan4yin/nixos-licheepi4a)
### Gentoo
Project address: [Click me](https://wiki.gentoo.org/wiki/Project:RISC-V)
下面链接说明如何从stage3制作一个Gentoo Linux系统
Deplay Gentoo Linux [Click me](https://wiki.gentoo.org/wiki/User:Dlan/RISC-V/TH1520)
![gentoo](./assets/images/gentoo.jpg)
### slarm64
![slarm64](./assets/images/slarm64.png)
Project address: [Click me](https://gitlab.com/sndwvs/images_build_kit)
Download: [Click me](https://dl.slarm64.org/slackware/images/lichee_pi_4a/)
### irradium
[irradium](https://irradium.org/) - source based Linux distribution [CRUX](https://crux.nu/) adhering to ideology keep it simple, has its own [package system](https://crux.nu/Main/Handbook3-7#ntoc29), also supports the [port system](https://crux.nu/Main/Handbook3-7#ntoc47).
Project address: [Click me](https://gitlab.com/sndwvs/irradium.git)
Download: [Click me](https://dl.irradium.org/irradium/images/lichee_pi_4a/)

View File

@@ -1,405 +1,405 @@
---
title: 烧录镜像
keywords: Linux, Lichee, TH1520, SBC, RISCV, image
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 准备工作
### 获取镜像
参见上一章“镜像集合”,选取需要的镜像下载。
以下的烧录方式以 Debian 单屏镜像 `LPI4A_20230721.zip`16+128核心板为例。
### 获取烧录工具
在镜像集合的网盘内可以获得 `burn_tool.zip`, 解压可得 win/linux/mac 三个系统下的 fastboot 烧录工具。
**注意:**20231023及之后版本的镜像添加了大镜像文件烧录支持需要配合最新版本的 fastboot 使用,最新版本的 fastboot 可以在[网盘链接](https://pan.baidu.com/e/1xH56ZlewB6UOMlke5BrKWQ)中找到,文件名为`burn_tools_support_bigimage.zip`
## 进入烧录模式
### 内测版硬件
按住板上的BOOT按键不放然后插入 USB-C 线缆上电(线缆另一头接 PC ),即可进入 USB 烧录模式。
![press_boot](./assets/burn_image/press_boot.png)
在 Windows 下使用设备管理器查看,会出现 “USB download gadget” 设备。
在 Linux 下,使用 `lsusb` 查看设备,会显示以下设备: `ID 2345:7654 T-HEAD USB download gadget`
### 正式版硬件
注意检查底板的拨码开关是否为 EMMC 启动模式:
![switch_boot_mode](./assets/burn_image/switch_boot_mode.jpg)
确认无误后即可烧录,接下来的烧录步骤同内测版。
### Windows 下驱动安装
Windows 下烧录时,需要先进入高级启动模式,禁用数字签名。才能正常安装下面的驱动。
禁用数字签名请按照下面的步骤:
**Win10**
1. 找到 WIN10 的设置,点击“设置”:
![win10_find_windows_settings](./assets/burn_image/win10_find_windows_settings.png)
2. 点击最后一个“更新和安全”,然后点击“恢复”:
![win10_click_the_restore](./assets/burn_image/win10_click_the_restore.png)
3. 点击“恢复”之后,在右边点击高级启动下面的“重新启动”,此时电脑会重新启动,如果有其他重要 程序在跑,请慎重:
![win10_click_the_restart](./assets/burn_image/win10_click_the_restart.png)
**Win11**
1. 在设置中找到"系统菜单",然后点击“恢复”。
![win11_click_the_restore](./assets/burn_image/win11_click_the_restore.png)
2. 在右边点击高级启动下面的“重新启动”,此时电脑会重新启动,如果有其他重要 程序在跑,请慎重。
![win11_click_the_restart](./assets/burn_image/win11_click_the_restart.png)
**相同部分**
1. 重启之后会出现几个选项,点击选项“疑难解答”,然后点击“高级”,启动设置,重启。
![click_the_advanced_option](./assets/burn_image/click_the_advanced_option.png)
2. 这会重启之后就跳出一个列表,其中有安全模式等选项,也包括这里我们关心的“禁止强制驱动程序签名”,选择“禁用强制驱动程序签名”,对应哪个数字就按那个数字,之后电脑会重新启动。
![ban_the_signature](./assets/burn_image/ban_the_signature.png)
3. 重启之后,驱动就可以成功安装。若有提示点击继续安装即可。 fastboot 驱动安装具体步骤如下:
a. 开发板通过 usb 连接到电脑。
b. 打开设备管理器出现“USB download gadget”设备。
![before_install_driver](./assets/burn_image/before_install_driver.png)
![install_driver](./assets/burn_image/install_driver.png)
## 烧录镜像
进入烧录模式后,可使用 burn_tool.zip 内的 fastboot 进行烧录操作,注意可能需要先赋予 fastboot 可执行权限。
### Windows 系统步骤
编辑 burn_tool.zip 文件夹里面的 `burn_lpi4a.bat` 文件,将对应的镜像路径更改成自己实际使用的镜像及名称。然后双击运行 `burn_lpi4a.bat` 就能够正常进行烧录了。
需要注意的是 `fastboot.exe` 的路径也需要匹配上,不然会被提示找不到文件。
![target_burn_image_path](./assets/burn_image/target_burn_image_path.png)
### Linux 系统步骤
在按住BOOT按键的条件下系统在reset启动后会默认进入fastboot模式
这时侯我们可以通过fastboot下载并启动u-boot镜像的命令来进入到u-boot的fastboot烧录模式相比Brom阶段会有更大下载buffer速度会更快
下面的指令会检查并格式化分区,请务必执行,否则后面烧录 rootfs 会很慢。
`u-boot-with-spl-lpi4a.bin``u-boot-with-spl-lpi4a-16g.bin` 为u-boot 固件,具体差异请参考镜像说明。
```bash
sudo ./fastboot flash ram ./images/u-boot-with-spl-lpi4a-16g.bin
sudo ./fastboot reboot
sleep 1
```
分别烧录下面三个镜像:启动引导镜像-uboot启动分区-boot操作系统根分区-root
```bash
sudo ./fastboot flash uboot ./images/u-boot-with-spl-lpi4a-16g.bin
sudo ./fastboot flash boot ./images/boot_sing.ext4
sudo ./fastboot flash root ./images/rootfs-sing.ext4
```
`boot-sing.ext4``boot-dual.ext4` 为 boot 分区,具体差异请参考镜像说明。它们主要包含以下内容:
```bash
fw_dynamic.bin #opensbi
Image #kernel image
kernel-release #commit id of kernel
light_aon_fpga.bin #fw for E902 aon
light_c906_audio.bin #fw for C906 audio
light-lpi4a.dtb # ddr8G dtb
light-lpi4a-ddr16g.dtb # ddr16G dtb
```
`rootfs-sing.ext4``rootfs-mipi.ext4` 为根文件系统,默认为 Debian 系统。两者的具体差异请参考镜像说明。
烧录镜像的典型 log 输出如下:
![burn_image_progress_result](./assets/burn_image/burn_image_progress_result.png)
<!--
```bash
(base) pc@n5105:~/work/$ sudo ./fastboot flash ram u-boot-with-spl.bin
Sending 'ram' (935 KB) OKAY [ 0.248s]
Writing 'ram' OKAY [ 0.002s]
Finished. Total time: 0.255s
(base) pc@n5105:~/work/$ sudo ./fastboot reboot
Rebooting OKAY [ 0.001s]
Finished. Total time: 0.202s
(base) pc@n5105:~/work/$ sudo ./fastboot flash uboot u-boot-with-spl.bin
Sending 'uboot' (935 KB) OKAY [ 0.054s]
Writing 'uboot' OKAY [ 0.030s]
Finished. Total time: 0.107s
(base) pc@n5105:~/work/$ sudo ./fastboot flash boot boot_20230420.ext4
Sending 'boot' (40000 KB) OKAY [ 1.705s]
Writing 'boot' OKAY [ 0.877s]
Finished. Total time: 2.770s
(base) pc@n5105:~/work/$ sudo ./fastboot flash root rootfs-20230425-001635-nogpu.ext4
Invalid sparse file format at header magic
Sending sparse 'root' 1/37 (114572 KB) OKAY [ 4.793s]
Writing 'root' OKAY [ 3.087s]
Sending sparse 'root' 2/37 (105264 KB) OKAY [ 4.465s]
Writing 'root' OKAY [ 2.330s]
Sending sparse 'root' 3/37 (111970 KB) OKAY [ 4.814s]
Writing 'root' OKAY [ 2.861s]
Sending sparse 'root' 4/37 (114684 KB) OKAY [ 4.902s]
Writing 'root' OKAY [ 2.658s]
Sending sparse 'root' 5/37 (101490 KB) OKAY [ 4.305s]
Writing 'root' OKAY [ 2.652s]
Sending sparse 'root' 6/37 (114684 KB) OKAY [ 4.648s]
Writing 'root' OKAY [ 2.657s]
Sending sparse 'root' 7/37 (113862 KB) OKAY [ 4.755s]
Writing 'root' OKAY [ 2.826s]
Sending sparse 'root' 8/37 (111189 KB) OKAY [ 4.741s]
Writing 'root' OKAY [ 2.695s]
Sending sparse 'root' 9/37 (114625 KB) OKAY [ 4.865s]
Writing 'root' OKAY [ 2.660s]
Sending sparse 'root' 10/37 (104030 KB) OKAY [ 4.506s]
Writing 'root' OKAY [ 4.108s]
Sending sparse 'root' 11/37 (111701 KB) OKAY [ 4.744s]
Writing 'root' OKAY [ 2.717s]
Sending sparse 'root' 12/37 (107317 KB) OKAY [ 4.568s]
Writing 'root' OKAY [ 2.583s]
Sending sparse 'root' 13/37 (114629 KB) OKAY [ 4.830s]
Writing 'root' OKAY [ 2.753s]
Sending sparse 'root' 14/37 (109798 KB) OKAY [ 4.711s]
Writing 'root' OKAY [ 2.778s]
Sending sparse 'root' 15/37 (112203 KB) OKAY [ 4.795s]
Writing 'root' OKAY [ 2.982s]
Sending sparse 'root' 16/37 (112502 KB) OKAY [ 4.827s]
Writing 'root' OKAY [ 2.991s]
Sending sparse 'root' 17/37 (114110 KB) OKAY [ 4.849s]
Writing 'root' OKAY [ 2.853s]
Sending sparse 'root' 18/37 (114681 KB) OKAY [ 4.888s]
Writing 'root' OKAY [ 2.802s]
Sending sparse 'root' 19/37 (112042 KB) OKAY [ 4.799s]
Writing 'root' OKAY [ 3.674s]
Sending sparse 'root' 20/37 (109101 KB) OKAY [ 4.631s]
Writing 'root' OKAY [ 2.582s]
Sending sparse 'root' 21/37 (114225 KB) OKAY [ 4.623s]
Writing 'root' OKAY [ 2.782s]
Sending sparse 'root' 22/37 (114365 KB) OKAY [ 4.703s]
Writing 'root' OKAY [ 2.667s]
Sending sparse 'root' 23/37 (103529 KB) OKAY [ 4.133s]
Writing 'root' OKAY [ 2.442s]
Sending sparse 'root' 24/37 (114664 KB) OKAY [ 4.631s]
Writing 'root' OKAY [ 2.581s]
Sending sparse 'root' 25/37 (114550 KB) OKAY [ 4.749s]
Writing 'root' OKAY [ 2.878s]
Sending sparse 'root' 26/37 (114686 KB) OKAY [ 4.796s]
Writing 'root' OKAY [ 2.853s]
Sending sparse 'root' 27/37 (114466 KB) OKAY [ 4.800s]
Writing 'root' OKAY [ 2.894s]
Sending sparse 'root' 28/37 (110689 KB) OKAY [ 4.711s]
Writing 'root' OKAY [ 2.616s]
Sending sparse 'root' 29/37 (114687 KB) OKAY [ 4.880s]
Writing 'root' OKAY [ 2.992s]
Sending sparse 'root' 30/37 (110984 KB) OKAY [ 4.710s]
Writing 'root' OKAY [ 2.451s]
Sending sparse 'root' 31/37 (114685 KB) OKAY [ 4.920s]
Writing 'root' OKAY [ 2.749s]
Sending sparse 'root' 32/37 (114684 KB) OKAY [ 4.825s]
Writing 'root' OKAY [ 2.503s]
Sending sparse 'root' 33/37 (114684 KB) OKAY [ 4.816s]
Writing 'root' OKAY [ 3.262s]
Sending sparse 'root' 34/37 (114686 KB) OKAY [ 4.745s]
Writing 'root' OKAY [ 2.825s]
Sending sparse 'root' 35/37 (114684 KB) OKAY [ 4.913s]
Writing 'root' OKAY [ 2.630s]
Sending sparse 'root' 36/37 (114684 KB) OKAY [ 4.838s]
Writing 'root' OKAY [ 2.593s]
Sending sparse 'root' 37/37 (21324 KB) OKAY [ 0.926s]
Writing 'root' OKAY [ 0.487s]
Finished. Total time: 281.671s
```
-->
## 启动机制
brom -> U-Boot SPL -> U-Boot -> OpenSBI -> Kernel
接下来简单介绍一下每个阶段,并展示使用串口工具连接开发板时能够看到的相应日志。
正式版开发板中系统串口IO新增电平转换IC到3.3V,可以使用普通串口模块连接。
### brom
该阶段的典型输出如下:
```shell
brom_ver 8
[APP][E] protocol_connect failed, exit.
```
brom 阶段会从 SoC 的 ROM 中获取核心代码,并寻找下一阶段的 bootloader。
### U-Boot SPL
该阶段的典型输出如下:
```shell
U-Boot SPL 2020.01-gd6c9182f (Jul 07 2023 - 12:31:51 +0200)
FM[1] lpddr4x dualrank freq=3733 64bit dbi_off=n sdram init
ddr initialized, jump to uboot
image has no header
```
这里的 U-Boot SPL 中的 SPL 指的是 Secondary Program Loader其中的 Secondary也就是第二阶段是相对于前面的 brom 来说的。
U-Boot SPL 的主要功能是加载真正的 U-Boot 运行,因为一些 SoC 中无法装下一个完整的 U-Boot 镜像,那么就需要 U-Boot SPL 来初始化外部 RAM 和环境,加载真正的 U-Boot 到外部 RAM 中执行。
### U-Boot
该阶段的典型输出如下:
```shell
U-Boot 2020.01-gd6c9182f (Jul 07 2023 - 12:31:51 +0200)
CPU: rv64imafdcvsu
Model: T-HEAD c910 light
DRAM: 8 GiB
C910 CPU FREQ: 750MHz
AHB2_CPUSYS_HCLK FREQ: 250MHz
AHB3_CPUSYS_PCLK FREQ: 125MHz
PERISYS_AHB_HCLK FREQ: 250MHz
PERISYS_APB_PCLK FREQ: 62MHz
GMAC PLL POSTDIV FREQ: 1000MHZ
DPU0 PLL POSTDIV FREQ: 1188MHZ
DPU1 PLL POSTDIV FREQ: 1188MHZ
MMC: sdhci@ffe7080000: 0, sd@ffe7090000: 1
Loading Environment from MMC... OK
Error reading output register
Warning: cannot get lcd-en GPIO
LCD panel cannot be found : -121
splash screen startup cost 15 ms
In: serial
Out: serial
Err: serial
Net: ethernet@ffe7070000 (eth0) using MAC address - ae:be:2a:50:5e:89
eth0: ethernet@ffe7070000ethernet@ffe7070000:0 is connected to ethernet@ffe7070000.
ethernet@ffe7060000 (eth1) using MAC address - ae:be:2a:50:5e:8a
, eth1: ethernet@ffe7060000
Hit any key to stop autoboot: 0
```
这个阶段,看到 `Hit any key to stop autoboot:`在2秒倒计时结束前可以按回车键进入 U-Boot在这里可以设置各种环境变量对于常用的环境变量举例设置如下
设置 MAC 地址:
```shell
setenv ethaddr ae:be:2a:50:5e:89
setenv eth1addr ae:be:2a:50:5e:8a
saveenv
```
将上述命令中的 MAC 地址替换为自己的 MAC 地址即可,注意 `eth1addr` 的值为 `ethaddr` 的值加1。
设置内核使用的设备树:
```shell
setenv fdt_file light-lpi4a.dtb
saveenv
```
上述命令中的 `light-lpi4a.dtb` 替换为存放在 `boot.ext4` 中想使用的设备树的文件名。
设置完成后也可以使用 `printenv` 命令检查是否正确,然后输入 `boot` 命令即可进入内核。
此外,也可以在这里设置启动参数来选择启动方式,比如使用 SD 卡启动。
烧录镜像到 SD 卡中后,将 SD 卡插入开发板,进入到 U-Boot
```shell
env set -f set_bootargs 'setenv bootargs console=ttyS0,115200 root=/dev/mmcblk1 rootfstype=ext4 rootwait rw earlycon clk_ignore_unused loglevel=7 eth=ethaddr rootrwoptions=rw,noatime rootrwreset={factory_reset} init=/lib/systemd/systemd'
env save
```
上述步骤完成后,输入 `reset` 命令重启开发板,即可从 SD 卡启动系统。
对于正式版开发板则可以使用底板上的拨码开关来选择启动方式:
![switch_boot_mode](./assets/burn_image/switch_boot_mode.jpg)
### OpenSBI
OpenSBI 的 sbi_init.c 文件中的一些初始化打印不会在启动 log 中展示出来,但能够在 Kernel 启动时看到一些关于 OpenSBI 的信息被打印出来:
```shell
[ 0.000000] SBI specification v0.3 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x9
[ 0.000000] SBI v0.2 TIME extension detected
[ 0.000000] SBI v0.2 IPI extension detected
[ 0.000000] SBI v0.2 RFENCE extension detected
[ 0.000000] SBI v0.2 HSM extension detected
```
OpenSBI 有三种 firmware这里所使用的是 FW_DYNAMIC它会根据前一个阶段传入的信息加载下一个阶段。OpenSBI 的 fw_dynamic.bin 固件被存放在 boot.ext4 中,这个阶段会引导内核启动。
### Kernel
该阶段的典型 log 如下(由于太长,仅截取部分):
```shell
[ 0.000000] Linux version 5.10.113-g387b6863253c-dirty
[ 0.000000] OF: fdt: Ignoring memory range 0x0 - 0x200000
[ 0.000000] earlycon: uart0 at MMIO32 0x000000ffe7014000 (options '115200n8')
[ 0.000000] printk: bootconsole [uart0] enabled
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x00000003e4000000, size 320 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000000200000-0x00000000ffffffff]
[ 0.000000] Normal [mem 0x0000000100000000-0x00000003ffffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000200000-0x000000000fffffff]
[ 0.000000] node 0: [mem 0x0000000010000000-0x00000000166fffff]
[ 0.000000] node 0: [mem 0x0000000016700000-0x0000000016ffffff]
[ 0.000000] node 0: [mem 0x0000000017000000-0x0000000018ffffff]
[ 0.000000] node 0: [mem 0x0000000019000000-0x000000001bffffff]
[ 0.000000] node 0: [mem 0x000000001c000000-0x000000001dffffff]
[ 0.000000] node 0: [mem 0x000000001e000000-0x000000001fffffff]
[ 0.000000] node 0: [mem 0x0000000020000000-0x00000000207fffff]
[ 0.000000] node 0: [mem 0x0000000020800000-0x00000003ffffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000003ffffffff]
[ 0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
[ 0.000000] SBI specification v0.3 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x9
[ 0.000000] SBI v0.2 TIME extension detected
[ 0.000000] SBI v0.2 IPI extension detected
[ 0.000000] SBI v0.2 RFENCE extension detected
[ 0.000000] SBI v0.2 HSM extension detected
[ 0.000000] riscv: ISA extensions acdfimsuv
[ 0.000000] riscv: ELF capabilities acdfimv
[ 0.000000] percpu: Embedded 27 pages/cpu s73496 r8192 d28904 u110592
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 4128264
[ 0.000000] Kernel command line: console=ttyS0,115200 root=PARTUUID=80a5a8e9-c744-491a-d
[ 0.000000] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[ 0.000000] Sorting __ex_table...
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 15887448K/16775168K available (12390K kernel code, 5982K rwdata, 61)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped
[ 0.000000] plic: interrupt-controller@ffd8000000: mapped 64 interrupts with 4 handlers.
[ 0.000000] random: get_random_bytes called from start_kernel+0x372/0x4d4 with crng_ini0
[ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1623s
[ 0.000008] sched_clock: 64 bits at 3000kHz, resolution 333ns, wraps every 439804651109s
[ 0.008693] Console: colour dummy device 80x25
```
都可以在启动内核后,可以替换设备树 DTB 文件、OpenSBI 固件、内核镜像文件 Image 等文件,它们位于 `/boot/` 目录下:
```shell
sipeed@lpi4a:~$ ls /boot/
Image light-lpi4a.dtb
System.map-5.10.113-g387b6863253c-dirty light_aon_fpga.bin
config-5.10.113-g387b6863253c-dirty light_c906_audio.bin
fw_dynamic.bin vmlinuz-5.10.113-g387b6863253c-dirty
kernel-commitid
```
## 批量烧录
如果你有商业需求,需要批量烧录固件,可以使用 sipeed 提供的 ARM/RV 版 fastboot 制作离线批量烧录器。
---
title: 烧录镜像
keywords: Linux, Lichee, TH1520, SBC, RISCV, image
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## 准备工作
### 获取镜像
参见上一章“镜像集合”,选取需要的镜像下载。
以下的烧录方式以 Debian 单屏镜像 `LPI4A_20230721.zip`16+128核心板为例。
### 获取烧录工具
在镜像集合的网盘内可以获得 `burn_tool.zip`, 解压可得 win/linux/mac 三个系统下的 fastboot 烧录工具。
**注意:**20231023及之后版本的镜像添加了大镜像文件烧录支持需要配合最新版本的 fastboot 使用,最新版本的 fastboot 可以在[网盘链接](https://pan.baidu.com/e/1xH56ZlewB6UOMlke5BrKWQ)中找到,文件名为`burn_tools_support_bigimage.zip`
## 进入烧录模式
### 内测版硬件
按住板上的BOOT按键不放然后插入 USB-C 线缆上电(线缆另一头接 PC ),即可进入 USB 烧录模式。
![press_boot](./assets/burn_image/press_boot.png)
在 Windows 下使用设备管理器查看,会出现 “USB download gadget” 设备。
在 Linux 下,使用 `lsusb` 查看设备,会显示以下设备: `ID 2345:7654 T-HEAD USB download gadget`
### 正式版硬件
注意检查底板的拨码开关是否为 EMMC 启动模式:
![switch_boot_mode](./assets/burn_image/switch_boot_mode.jpg)
确认无误后即可烧录,接下来的烧录步骤同内测版。
### Windows 下驱动安装
Windows 下烧录时,需要先进入高级启动模式,禁用数字签名。才能正常安装下面的驱动。
禁用数字签名请按照下面的步骤:
**Win10**
1. 找到 WIN10 的设置,点击“设置”:
![win10_find_windows_settings](./assets/burn_image/win10_find_windows_settings.png)
2. 点击最后一个“更新和安全”,然后点击“恢复”:
![win10_click_the_restore](./assets/burn_image/win10_click_the_restore.png)
3. 点击“恢复”之后,在右边点击高级启动下面的“重新启动”,此时电脑会重新启动,如果有其他重要 程序在跑,请慎重:
![win10_click_the_restart](./assets/burn_image/win10_click_the_restart.png)
**Win11**
1. 在设置中找到"系统菜单",然后点击“恢复”。
![win11_click_the_restore](./assets/burn_image/win11_click_the_restore.png)
2. 在右边点击高级启动下面的“重新启动”,此时电脑会重新启动,如果有其他重要 程序在跑,请慎重。
![win11_click_the_restart](./assets/burn_image/win11_click_the_restart.png)
**相同部分**
1. 重启之后会出现几个选项,点击选项“疑难解答”,然后点击“高级”,启动设置,重启。
![click_the_advanced_option](./assets/burn_image/click_the_advanced_option.png)
2. 这会重启之后就跳出一个列表,其中有安全模式等选项,也包括这里我们关心的“禁止强制驱动程序签名”,选择“禁用强制驱动程序签名”,对应哪个数字就按那个数字,之后电脑会重新启动。
![ban_the_signature](./assets/burn_image/ban_the_signature.png)
3. 重启之后,驱动就可以成功安装。若有提示点击继续安装即可。 fastboot 驱动安装具体步骤如下:
a. 开发板通过 usb 连接到电脑。
b. 打开设备管理器出现“USB download gadget”设备。
![before_install_driver](./assets/burn_image/before_install_driver.png)
![install_driver](./assets/burn_image/install_driver.png)
## 烧录镜像
进入烧录模式后,可使用 burn_tool.zip 内的 fastboot 进行烧录操作,注意可能需要先赋予 fastboot 可执行权限。
### Windows 系统步骤
编辑 burn_tool.zip 文件夹里面的 `burn_lpi4a.bat` 文件,将对应的镜像路径更改成自己实际使用的镜像及名称。然后双击运行 `burn_lpi4a.bat` 就能够正常进行烧录了。
需要注意的是 `fastboot.exe` 的路径也需要匹配上,不然会被提示找不到文件。
![target_burn_image_path](./assets/burn_image/target_burn_image_path.png)
### Linux 系统步骤
在按住BOOT按键的条件下系统在reset启动后会默认进入fastboot模式
这时侯我们可以通过fastboot下载并启动u-boot镜像的命令来进入到u-boot的fastboot烧录模式相比Brom阶段会有更大下载buffer速度会更快
下面的指令会检查并格式化分区,请务必执行,否则后面烧录 rootfs 会很慢。
`u-boot-with-spl-lpi4a.bin``u-boot-with-spl-lpi4a-16g.bin` 为u-boot 固件,具体差异请参考镜像说明。
```bash
sudo ./fastboot flash ram ./images/u-boot-with-spl-lpi4a-16g.bin
sudo ./fastboot reboot
sleep 1
```
分别烧录下面三个镜像:启动引导镜像-uboot启动分区-boot操作系统根分区-root
```bash
sudo ./fastboot flash uboot ./images/u-boot-with-spl-lpi4a-16g.bin
sudo ./fastboot flash boot ./images/boot_sing.ext4
sudo ./fastboot flash root ./images/rootfs-sing.ext4
```
`boot-sing.ext4``boot-dual.ext4` 为 boot 分区,具体差异请参考镜像说明。它们主要包含以下内容:
```bash
fw_dynamic.bin #opensbi
Image #kernel image
kernel-release #commit id of kernel
light_aon_fpga.bin #fw for E902 aon
light_c906_audio.bin #fw for C906 audio
light-lpi4a.dtb # ddr8G dtb
light-lpi4a-ddr16g.dtb # ddr16G dtb
```
`rootfs-sing.ext4``rootfs-mipi.ext4` 为根文件系统,默认为 Debian 系统。两者的具体差异请参考镜像说明。
烧录镜像的典型 log 输出如下:
![burn_image_progress_result](./assets/burn_image/burn_image_progress_result.png)
<!--
```bash
(base) pc@n5105:~/work/$ sudo ./fastboot flash ram u-boot-with-spl.bin
Sending 'ram' (935 KB) OKAY [ 0.248s]
Writing 'ram' OKAY [ 0.002s]
Finished. Total time: 0.255s
(base) pc@n5105:~/work/$ sudo ./fastboot reboot
Rebooting OKAY [ 0.001s]
Finished. Total time: 0.202s
(base) pc@n5105:~/work/$ sudo ./fastboot flash uboot u-boot-with-spl.bin
Sending 'uboot' (935 KB) OKAY [ 0.054s]
Writing 'uboot' OKAY [ 0.030s]
Finished. Total time: 0.107s
(base) pc@n5105:~/work/$ sudo ./fastboot flash boot boot_20230420.ext4
Sending 'boot' (40000 KB) OKAY [ 1.705s]
Writing 'boot' OKAY [ 0.877s]
Finished. Total time: 2.770s
(base) pc@n5105:~/work/$ sudo ./fastboot flash root rootfs-20230425-001635-nogpu.ext4
Invalid sparse file format at header magic
Sending sparse 'root' 1/37 (114572 KB) OKAY [ 4.793s]
Writing 'root' OKAY [ 3.087s]
Sending sparse 'root' 2/37 (105264 KB) OKAY [ 4.465s]
Writing 'root' OKAY [ 2.330s]
Sending sparse 'root' 3/37 (111970 KB) OKAY [ 4.814s]
Writing 'root' OKAY [ 2.861s]
Sending sparse 'root' 4/37 (114684 KB) OKAY [ 4.902s]
Writing 'root' OKAY [ 2.658s]
Sending sparse 'root' 5/37 (101490 KB) OKAY [ 4.305s]
Writing 'root' OKAY [ 2.652s]
Sending sparse 'root' 6/37 (114684 KB) OKAY [ 4.648s]
Writing 'root' OKAY [ 2.657s]
Sending sparse 'root' 7/37 (113862 KB) OKAY [ 4.755s]
Writing 'root' OKAY [ 2.826s]
Sending sparse 'root' 8/37 (111189 KB) OKAY [ 4.741s]
Writing 'root' OKAY [ 2.695s]
Sending sparse 'root' 9/37 (114625 KB) OKAY [ 4.865s]
Writing 'root' OKAY [ 2.660s]
Sending sparse 'root' 10/37 (104030 KB) OKAY [ 4.506s]
Writing 'root' OKAY [ 4.108s]
Sending sparse 'root' 11/37 (111701 KB) OKAY [ 4.744s]
Writing 'root' OKAY [ 2.717s]
Sending sparse 'root' 12/37 (107317 KB) OKAY [ 4.568s]
Writing 'root' OKAY [ 2.583s]
Sending sparse 'root' 13/37 (114629 KB) OKAY [ 4.830s]
Writing 'root' OKAY [ 2.753s]
Sending sparse 'root' 14/37 (109798 KB) OKAY [ 4.711s]
Writing 'root' OKAY [ 2.778s]
Sending sparse 'root' 15/37 (112203 KB) OKAY [ 4.795s]
Writing 'root' OKAY [ 2.982s]
Sending sparse 'root' 16/37 (112502 KB) OKAY [ 4.827s]
Writing 'root' OKAY [ 2.991s]
Sending sparse 'root' 17/37 (114110 KB) OKAY [ 4.849s]
Writing 'root' OKAY [ 2.853s]
Sending sparse 'root' 18/37 (114681 KB) OKAY [ 4.888s]
Writing 'root' OKAY [ 2.802s]
Sending sparse 'root' 19/37 (112042 KB) OKAY [ 4.799s]
Writing 'root' OKAY [ 3.674s]
Sending sparse 'root' 20/37 (109101 KB) OKAY [ 4.631s]
Writing 'root' OKAY [ 2.582s]
Sending sparse 'root' 21/37 (114225 KB) OKAY [ 4.623s]
Writing 'root' OKAY [ 2.782s]
Sending sparse 'root' 22/37 (114365 KB) OKAY [ 4.703s]
Writing 'root' OKAY [ 2.667s]
Sending sparse 'root' 23/37 (103529 KB) OKAY [ 4.133s]
Writing 'root' OKAY [ 2.442s]
Sending sparse 'root' 24/37 (114664 KB) OKAY [ 4.631s]
Writing 'root' OKAY [ 2.581s]
Sending sparse 'root' 25/37 (114550 KB) OKAY [ 4.749s]
Writing 'root' OKAY [ 2.878s]
Sending sparse 'root' 26/37 (114686 KB) OKAY [ 4.796s]
Writing 'root' OKAY [ 2.853s]
Sending sparse 'root' 27/37 (114466 KB) OKAY [ 4.800s]
Writing 'root' OKAY [ 2.894s]
Sending sparse 'root' 28/37 (110689 KB) OKAY [ 4.711s]
Writing 'root' OKAY [ 2.616s]
Sending sparse 'root' 29/37 (114687 KB) OKAY [ 4.880s]
Writing 'root' OKAY [ 2.992s]
Sending sparse 'root' 30/37 (110984 KB) OKAY [ 4.710s]
Writing 'root' OKAY [ 2.451s]
Sending sparse 'root' 31/37 (114685 KB) OKAY [ 4.920s]
Writing 'root' OKAY [ 2.749s]
Sending sparse 'root' 32/37 (114684 KB) OKAY [ 4.825s]
Writing 'root' OKAY [ 2.503s]
Sending sparse 'root' 33/37 (114684 KB) OKAY [ 4.816s]
Writing 'root' OKAY [ 3.262s]
Sending sparse 'root' 34/37 (114686 KB) OKAY [ 4.745s]
Writing 'root' OKAY [ 2.825s]
Sending sparse 'root' 35/37 (114684 KB) OKAY [ 4.913s]
Writing 'root' OKAY [ 2.630s]
Sending sparse 'root' 36/37 (114684 KB) OKAY [ 4.838s]
Writing 'root' OKAY [ 2.593s]
Sending sparse 'root' 37/37 (21324 KB) OKAY [ 0.926s]
Writing 'root' OKAY [ 0.487s]
Finished. Total time: 281.671s
```
-->
## 启动机制
brom -> U-Boot SPL -> U-Boot -> OpenSBI -> Kernel
接下来简单介绍一下每个阶段,并展示使用串口工具连接开发板时能够看到的相应日志。
正式版开发板中系统串口IO新增电平转换IC到3.3V,可以使用普通串口模块连接。
### brom
该阶段的典型输出如下:
```shell
brom_ver 8
[APP][E] protocol_connect failed, exit.
```
brom 阶段会从 SoC 的 ROM 中获取核心代码,并寻找下一阶段的 bootloader。
### U-Boot SPL
该阶段的典型输出如下:
```shell
U-Boot SPL 2020.01-gd6c9182f (Jul 07 2023 - 12:31:51 +0200)
FM[1] lpddr4x dualrank freq=3733 64bit dbi_off=n sdram init
ddr initialized, jump to uboot
image has no header
```
这里的 U-Boot SPL 中的 SPL 指的是 Secondary Program Loader其中的 Secondary也就是第二阶段是相对于前面的 brom 来说的。
U-Boot SPL 的主要功能是加载真正的 U-Boot 运行,因为一些 SoC 中无法装下一个完整的 U-Boot 镜像,那么就需要 U-Boot SPL 来初始化外部 RAM 和环境,加载真正的 U-Boot 到外部 RAM 中执行。
### U-Boot
该阶段的典型输出如下:
```shell
U-Boot 2020.01-gd6c9182f (Jul 07 2023 - 12:31:51 +0200)
CPU: rv64imafdcvsu
Model: T-HEAD c910 light
DRAM: 8 GiB
C910 CPU FREQ: 750MHz
AHB2_CPUSYS_HCLK FREQ: 250MHz
AHB3_CPUSYS_PCLK FREQ: 125MHz
PERISYS_AHB_HCLK FREQ: 250MHz
PERISYS_APB_PCLK FREQ: 62MHz
GMAC PLL POSTDIV FREQ: 1000MHZ
DPU0 PLL POSTDIV FREQ: 1188MHZ
DPU1 PLL POSTDIV FREQ: 1188MHZ
MMC: sdhci@ffe7080000: 0, sd@ffe7090000: 1
Loading Environment from MMC... OK
Error reading output register
Warning: cannot get lcd-en GPIO
LCD panel cannot be found : -121
splash screen startup cost 15 ms
In: serial
Out: serial
Err: serial
Net: ethernet@ffe7070000 (eth0) using MAC address - ae:be:2a:50:5e:89
eth0: ethernet@ffe7070000ethernet@ffe7070000:0 is connected to ethernet@ffe7070000.
ethernet@ffe7060000 (eth1) using MAC address - ae:be:2a:50:5e:8a
, eth1: ethernet@ffe7060000
Hit any key to stop autoboot: 0
```
这个阶段,看到 `Hit any key to stop autoboot:`在2秒倒计时结束前可以按回车键进入 U-Boot在这里可以设置各种环境变量对于常用的环境变量举例设置如下
设置 MAC 地址:
```shell
setenv ethaddr ae:be:2a:50:5e:89
setenv eth1addr ae:be:2a:50:5e:8a
saveenv
```
将上述命令中的 MAC 地址替换为自己的 MAC 地址即可,注意 `eth1addr` 的值为 `ethaddr` 的值加1。
设置内核使用的设备树:
```shell
setenv fdt_file light-lpi4a.dtb
saveenv
```
上述命令中的 `light-lpi4a.dtb` 替换为存放在 `boot.ext4` 中想使用的设备树的文件名。
设置完成后也可以使用 `printenv` 命令检查是否正确,然后输入 `boot` 命令即可进入内核。
此外,也可以在这里设置启动参数来选择启动方式,比如使用 SD 卡启动。
烧录镜像到 SD 卡中后,将 SD 卡插入开发板,进入到 U-Boot
```shell
env set -f set_bootargs 'setenv bootargs console=ttyS0,115200 root=/dev/mmcblk1 rootfstype=ext4 rootwait rw earlycon clk_ignore_unused loglevel=7 eth=ethaddr rootrwoptions=rw,noatime rootrwreset={factory_reset} init=/lib/systemd/systemd'
env save
```
上述步骤完成后,输入 `reset` 命令重启开发板,即可从 SD 卡启动系统。
对于正式版开发板则可以使用底板上的拨码开关来选择启动方式:
![switch_boot_mode](./assets/burn_image/switch_boot_mode.jpg)
### OpenSBI
OpenSBI 的 sbi_init.c 文件中的一些初始化打印不会在启动 log 中展示出来,但能够在 Kernel 启动时看到一些关于 OpenSBI 的信息被打印出来:
```shell
[ 0.000000] SBI specification v0.3 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x9
[ 0.000000] SBI v0.2 TIME extension detected
[ 0.000000] SBI v0.2 IPI extension detected
[ 0.000000] SBI v0.2 RFENCE extension detected
[ 0.000000] SBI v0.2 HSM extension detected
```
OpenSBI 有三种 firmware这里所使用的是 FW_DYNAMIC它会根据前一个阶段传入的信息加载下一个阶段。OpenSBI 的 fw_dynamic.bin 固件被存放在 boot.ext4 中,这个阶段会引导内核启动。
### Kernel
该阶段的典型 log 如下(由于太长,仅截取部分):
```shell
[ 0.000000] Linux version 5.10.113-g387b6863253c-dirty
[ 0.000000] OF: fdt: Ignoring memory range 0x0 - 0x200000
[ 0.000000] earlycon: uart0 at MMIO32 0x000000ffe7014000 (options '115200n8')
[ 0.000000] printk: bootconsole [uart0] enabled
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x00000003e4000000, size 320 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000000200000-0x00000000ffffffff]
[ 0.000000] Normal [mem 0x0000000100000000-0x00000003ffffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000200000-0x000000000fffffff]
[ 0.000000] node 0: [mem 0x0000000010000000-0x00000000166fffff]
[ 0.000000] node 0: [mem 0x0000000016700000-0x0000000016ffffff]
[ 0.000000] node 0: [mem 0x0000000017000000-0x0000000018ffffff]
[ 0.000000] node 0: [mem 0x0000000019000000-0x000000001bffffff]
[ 0.000000] node 0: [mem 0x000000001c000000-0x000000001dffffff]
[ 0.000000] node 0: [mem 0x000000001e000000-0x000000001fffffff]
[ 0.000000] node 0: [mem 0x0000000020000000-0x00000000207fffff]
[ 0.000000] node 0: [mem 0x0000000020800000-0x00000003ffffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000003ffffffff]
[ 0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
[ 0.000000] SBI specification v0.3 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x9
[ 0.000000] SBI v0.2 TIME extension detected
[ 0.000000] SBI v0.2 IPI extension detected
[ 0.000000] SBI v0.2 RFENCE extension detected
[ 0.000000] SBI v0.2 HSM extension detected
[ 0.000000] riscv: ISA extensions acdfimsuv
[ 0.000000] riscv: ELF capabilities acdfimv
[ 0.000000] percpu: Embedded 27 pages/cpu s73496 r8192 d28904 u110592
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 4128264
[ 0.000000] Kernel command line: console=ttyS0,115200 root=PARTUUID=80a5a8e9-c744-491a-d
[ 0.000000] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[ 0.000000] Sorting __ex_table...
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 15887448K/16775168K available (12390K kernel code, 5982K rwdata, 61)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped
[ 0.000000] plic: interrupt-controller@ffd8000000: mapped 64 interrupts with 4 handlers.
[ 0.000000] random: get_random_bytes called from start_kernel+0x372/0x4d4 with crng_ini0
[ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1623s
[ 0.000008] sched_clock: 64 bits at 3000kHz, resolution 333ns, wraps every 439804651109s
[ 0.008693] Console: colour dummy device 80x25
```
都可以在启动内核后,可以替换设备树 DTB 文件、OpenSBI 固件、内核镜像文件 Image 等文件,它们位于 `/boot/` 目录下:
```shell
sipeed@lpi4a:~$ ls /boot/
Image light-lpi4a.dtb
System.map-5.10.113-g387b6863253c-dirty light_aon_fpga.bin
config-5.10.113-g387b6863253c-dirty light_c906_audio.bin
fw_dynamic.bin vmlinuz-5.10.113-g387b6863253c-dirty
kernel-commitid
```
## 批量烧录
如果你有商业需求,需要批量烧录固件,可以使用 sipeed 提供的 ARM/RV 版 fastboot 制作离线批量烧录器。
如果你需要烧录的数量很大,也可以直接联系 support@sipeed.com我们提供预烧录镜像服务。

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,197 +1,197 @@
---
title: RISC-V Android
keywords: Linux, Lichee, TH1520, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2023-07-27
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## Android
[项目地址](https://gitee.com/thead-android/thead-android)
本项目为安卓开源项目(AOSP)支持的仓库,其中包含了 LPi4A 发板的板级配置、外设HAL 层、内核、u-boot 和预编译组件支持,其余组件则可直接从上游 AOSP 仓库拉取。
### 注意事项
**此文档所使用的镜像功能并不完善编译后只支持HDMI显示、有线网等基础功能触摸屏、USB外设暂未支持。预计十月更新功能较完善的SDK、文档资料。**
### 快速上手
在下载安卓开源项目源代码之前,请检查您的工作环境,建议使用具有至少 250G 空闲磁盘空间、16GB+ 内存的 Linux 系统(推荐使用 Ubuntu 20.04 以上版本)的工作环境, 编译时间和主机的处理器核心数有关,建议使用有较多核心的主机。且由于网络原因,下载时间根据网络情况会有很大差别,推荐使用代理下载源码。
> 以下数据供参考:
> 使用 E5-2699 CPU内存 377GB 的机器编译编译时间约为2小时在Ubuntu22.04的docker环境下。下载源码的时间约为3小时。
将安卓开源项目(主线版本)和开发板支持源代码下载到工作目录,使用固定版本上游代码:
```shell
mkdir riscv-android-src && cd riscv-android-src
repo init -u https://gitee.com/thead-android/local_manifests.git -b main_2023_7_7
git clone https://gitee.com/thead-android/local_manifests.git .repo/local_manifests -b thead-android-community
repo sync
```
使用最新版本上游代码,可能会由于兼容性导致一些编译问题:
```shell
mkdir riscv-android-src && cd riscv-android-src
repo init -u https://android.googlesource.com/platform/manifest -b master
git clone https://gitee.com/thead-android/local_manifests.git .repo/local_manifests -b thead-android-community
repo sync
```
### 编译源码
下载完成后,先安装一些编译会用到的依赖:
```shell
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python3 bc cpio rsync wget
```
然后可以通过以下命令对系统进行构建:
```shell
source build/envsetup.sh
lunch lichee_pi_4a-userdebug
m -j
```
编译完成后,检查生成的文件:
```shell
$ ls out/target/product/lichee_pi_4a/*img
out/target/product/lichee_pi_4a/boot.img
out/target/product/lichee_pi_4a/super_empty.img
out/target/product/lichee_pi_4a/vendor_boot-debug.img
out/target/product/lichee_pi_4a/cache.img
out/target/product/lichee_pi_4a/system.img
out/target/product/lichee_pi_4a/vendor_boot-test-harness.img
out/target/product/lichee_pi_4a/dtb.img
out/target/product/lichee_pi_4a/system_ext.img
out/target/product/lichee_pi_4a/vendor_boot.img
out/target/product/lichee_pi_4a/dtbo-unsigned.img
out/target/product/lichee_pi_4a/userdata.img
out/target/product/lichee_pi_4a/vendor_ramdisk-debug.img
out/target/product/lichee_pi_4a/dtbo.img
out/target/product/lichee_pi_4a/vbmeta.img
out/target/product/lichee_pi_4a/vendor_ramdisk-test-harness.img
out/target/product/lichee_pi_4a/product.img
out/target/product/lichee_pi_4a/vbmeta_system.img
out/target/product/lichee_pi_4a/vendor_ramdisk.img
out/target/product/lichee_pi_4a/ramdisk.img
out/target/product/lichee_pi_4a/vendor-bootconfig.img
out/target/product/lichee_pi_4a/super.img
out/target/product/lichee_pi_4a/vendor.img
```
### 烧录至 LPi4A 开发板
使用fastboot对系统镜像进行烧写adb和fastboot工具请使用从这里下载的版本
https://developer.android.com/tools/releases/platform-tools
将需要烧录的文件拷贝到 fastboot 工具所在目录下供fastboot使用
```shell
cp bootpart.ext4 boot.img super.img userdata.img vbmeta.img vbmeta_system.img vendor_boot.img <path_to_fastboot>
```
开发板使用主要需要连接电源、串口、USB 和显示:
串口主要用于 U-boot 和内核中的命令交互,可通过底板上 GPIO 的 U0-RX 和 U0-TX 连接波特率为115200。USB Device 接口主要用于fastboot和adb工具的连接 MIPI DSI/HDMI 接口可以使用于连接屏幕显示 UI 界面。
对系统进行完整烧写需要按住开发板的boot按键同时按复位键进入boot烧写模式。使用刚刚下载下来的 fastboot 烧写:
```shell
#烧录uboot并初始化boot环境变量
fastboot flash ram u-boot-with-spl.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl.bin
#烧录各个分区
#在非boot烧写模式可以在uboot的命令行中输入命令fastboot usb 0单独烧录分区
fastboot flash bootpart bootpart.ext4
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash super super.img
fastboot flash userdata userdata.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img
#初始化metadata和misc分区
fastboot erase metadata
fastboot erase misc
```
典型烧录 log 如下:
```shell
< waiting for any device >
Sending 'ram' (982 KB) OKAY [ 0.261s]
Writing 'ram' OKAY [ 0.002s]
Finished. Total time: 0.268s
Rebooting OKAY [ 0.001s]
Finished. Total time: 0.402s
< waiting for any device >
Sending 'uboot' (982 KB) OKAY [ 0.044s]
Writing 'uboot' OKAY [ 0.077s]
Finished. Total time: 0.158s
Sending 'bootpart' (8192 KB) OKAY [ 0.217s]
Writing 'bootpart' OKAY [ 0.071s]
Finished. Total time: 0.316s
Warning: skip copying boot_a image avb footer (boot_a partition size: 65536, boot_a image size: 33554432).
Sending 'boot_a' (32768 KB) OKAY [ 0.825s]
Writing 'boot_a' OKAY [ 0.255s]
Finished. Total time: 1.116s
Sending 'vendor_boot_a' (32768 KB) OKAY [ 0.824s]
Writing 'vendor_boot_a' OKAY [ 0.254s]
Finished. Total time: 1.107s
Sending sparse 'super' 1/9 (114684 KB) OKAY [ 2.872s]
Writing 'super' OKAY [ 0.855s]
Sending sparse 'super' 2/9 (114336 KB) OKAY [ 2.849s]
Writing 'super' OKAY [ 0.880s]
Sending sparse 'super' 3/9 (114684 KB) OKAY [ 2.947s]
Writing 'super' OKAY [ 0.857s]
Sending sparse 'super' 4/9 (114684 KB) OKAY [ 2.921s]
Writing 'super' OKAY [ 0.862s]
Sending sparse 'super' 5/9 (114684 KB) OKAY [ 2.875s]
Writing 'super' OKAY [ 0.904s]
Sending sparse 'super' 6/9 (110208 KB) OKAY [ 2.794s]
Writing 'super' OKAY [ 0.859s]
Sending sparse 'super' 7/9 (106652 KB) OKAY [ 2.679s]
Writing 'super' OKAY [ 0.853s]
Sending sparse 'super' 8/9 (109509 KB) OKAY [ 2.754s]
Writing 'super' OKAY [ 2.400s]
Sending sparse 'super' 9/9 (88872 KB) OKAY [ 2.251s]
Writing 'super' OKAY [ 0.707s]
Finished. Total time: 34.231s
Sending 'userdata' (2652 KB) OKAY [ 0.085s]
Writing 'userdata' OKAY [ 0.581s]
Finished. Total time: 0.706s
Sending 'vbmeta_a' (8 KB) OKAY [ 0.019s]
Writing 'vbmeta_a' OKAY [ 0.021s]
Finished. Total time: 0.078s
Sending 'vbmeta_system_a' (4 KB) OKAY [ 0.019s]
Writing 'vbmeta_system_a' OKAY [ 0.023s]
Finished. Total time: 0.079s
Erasing 'metadata' OKAY [ 0.087s]
Finished. Total time: 0.132s
Erasing 'misc' OKAY [ 0.029s]
Finished. Total time: 0.071s
```
当完成烧写后重新复位上电进入系统启动模式,可以通过串口/ADB访问系统的命令行并可通过触屏或外接HDMI显示系统图像界面进行交互
![licheepi4a_aosp](./assets/develop_android/licheepi4a_aosp.png)
### 常见问题
下载源码时,若运行 `repo init -u https://gitee.com/thead-android/local_manifests.git -b main_2023_7_7` 命令始终不成功,可以尝试运行以下命令后,再进行 repo init
```shell
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
```
使用 docker 环境编译时,可能会遇到如下报错:
```shell
Build sandboxing disabled due to nsjail error.
```
---
title: RISC-V Android
keywords: Linux, Lichee, TH1520, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2023-07-27
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## Android
[项目地址](https://gitee.com/thead-android/thead-android)
本项目为安卓开源项目(AOSP)支持的仓库,其中包含了 LPi4A 发板的板级配置、外设HAL 层、内核、u-boot 和预编译组件支持,其余组件则可直接从上游 AOSP 仓库拉取。
### 注意事项
**此文档所使用的镜像功能并不完善编译后只支持HDMI显示、有线网等基础功能触摸屏、USB外设暂未支持。预计十月更新功能较完善的SDK、文档资料。**
### 快速上手
在下载安卓开源项目源代码之前,请检查您的工作环境,建议使用具有至少 250G 空闲磁盘空间、16GB+ 内存的 Linux 系统(推荐使用 Ubuntu 20.04 以上版本)的工作环境, 编译时间和主机的处理器核心数有关,建议使用有较多核心的主机。且由于网络原因,下载时间根据网络情况会有很大差别,推荐使用代理下载源码。
> 以下数据供参考:
> 使用 E5-2699 CPU内存 377GB 的机器编译编译时间约为2小时在Ubuntu22.04的docker环境下。下载源码的时间约为3小时。
将安卓开源项目(主线版本)和开发板支持源代码下载到工作目录,使用固定版本上游代码:
```shell
mkdir riscv-android-src && cd riscv-android-src
repo init -u https://gitee.com/thead-android/local_manifests.git -b main_2023_7_7
git clone https://gitee.com/thead-android/local_manifests.git .repo/local_manifests -b thead-android-community
repo sync
```
使用最新版本上游代码,可能会由于兼容性导致一些编译问题:
```shell
mkdir riscv-android-src && cd riscv-android-src
repo init -u https://android.googlesource.com/platform/manifest -b master
git clone https://gitee.com/thead-android/local_manifests.git .repo/local_manifests -b thead-android-community
repo sync
```
### 编译源码
下载完成后,先安装一些编译会用到的依赖:
```shell
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig python3 bc cpio rsync wget
```
然后可以通过以下命令对系统进行构建:
```shell
source build/envsetup.sh
lunch lichee_pi_4a-userdebug
m -j
```
编译完成后,检查生成的文件:
```shell
$ ls out/target/product/lichee_pi_4a/*img
out/target/product/lichee_pi_4a/boot.img
out/target/product/lichee_pi_4a/super_empty.img
out/target/product/lichee_pi_4a/vendor_boot-debug.img
out/target/product/lichee_pi_4a/cache.img
out/target/product/lichee_pi_4a/system.img
out/target/product/lichee_pi_4a/vendor_boot-test-harness.img
out/target/product/lichee_pi_4a/dtb.img
out/target/product/lichee_pi_4a/system_ext.img
out/target/product/lichee_pi_4a/vendor_boot.img
out/target/product/lichee_pi_4a/dtbo-unsigned.img
out/target/product/lichee_pi_4a/userdata.img
out/target/product/lichee_pi_4a/vendor_ramdisk-debug.img
out/target/product/lichee_pi_4a/dtbo.img
out/target/product/lichee_pi_4a/vbmeta.img
out/target/product/lichee_pi_4a/vendor_ramdisk-test-harness.img
out/target/product/lichee_pi_4a/product.img
out/target/product/lichee_pi_4a/vbmeta_system.img
out/target/product/lichee_pi_4a/vendor_ramdisk.img
out/target/product/lichee_pi_4a/ramdisk.img
out/target/product/lichee_pi_4a/vendor-bootconfig.img
out/target/product/lichee_pi_4a/super.img
out/target/product/lichee_pi_4a/vendor.img
```
### 烧录至 LPi4A 开发板
使用fastboot对系统镜像进行烧写adb和fastboot工具请使用从这里下载的版本
https://developer.android.com/tools/releases/platform-tools
将需要烧录的文件拷贝到 fastboot 工具所在目录下供fastboot使用
```shell
cp bootpart.ext4 boot.img super.img userdata.img vbmeta.img vbmeta_system.img vendor_boot.img <path_to_fastboot>
```
开发板使用主要需要连接电源、串口、USB 和显示:
串口主要用于 U-boot 和内核中的命令交互,可通过底板上 GPIO 的 U0-RX 和 U0-TX 连接波特率为115200。USB Device 接口主要用于fastboot和adb工具的连接 MIPI DSI/HDMI 接口可以使用于连接屏幕显示 UI 界面。
对系统进行完整烧写需要按住开发板的boot按键同时按复位键进入boot烧写模式。使用刚刚下载下来的 fastboot 烧写:
```shell
#烧录uboot并初始化boot环境变量
fastboot flash ram u-boot-with-spl.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl.bin
#烧录各个分区
#在非boot烧写模式可以在uboot的命令行中输入命令fastboot usb 0单独烧录分区
fastboot flash bootpart bootpart.ext4
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash super super.img
fastboot flash userdata userdata.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img
#初始化metadata和misc分区
fastboot erase metadata
fastboot erase misc
```
典型烧录 log 如下:
```shell
< waiting for any device >
Sending 'ram' (982 KB) OKAY [ 0.261s]
Writing 'ram' OKAY [ 0.002s]
Finished. Total time: 0.268s
Rebooting OKAY [ 0.001s]
Finished. Total time: 0.402s
< waiting for any device >
Sending 'uboot' (982 KB) OKAY [ 0.044s]
Writing 'uboot' OKAY [ 0.077s]
Finished. Total time: 0.158s
Sending 'bootpart' (8192 KB) OKAY [ 0.217s]
Writing 'bootpart' OKAY [ 0.071s]
Finished. Total time: 0.316s
Warning: skip copying boot_a image avb footer (boot_a partition size: 65536, boot_a image size: 33554432).
Sending 'boot_a' (32768 KB) OKAY [ 0.825s]
Writing 'boot_a' OKAY [ 0.255s]
Finished. Total time: 1.116s
Sending 'vendor_boot_a' (32768 KB) OKAY [ 0.824s]
Writing 'vendor_boot_a' OKAY [ 0.254s]
Finished. Total time: 1.107s
Sending sparse 'super' 1/9 (114684 KB) OKAY [ 2.872s]
Writing 'super' OKAY [ 0.855s]
Sending sparse 'super' 2/9 (114336 KB) OKAY [ 2.849s]
Writing 'super' OKAY [ 0.880s]
Sending sparse 'super' 3/9 (114684 KB) OKAY [ 2.947s]
Writing 'super' OKAY [ 0.857s]
Sending sparse 'super' 4/9 (114684 KB) OKAY [ 2.921s]
Writing 'super' OKAY [ 0.862s]
Sending sparse 'super' 5/9 (114684 KB) OKAY [ 2.875s]
Writing 'super' OKAY [ 0.904s]
Sending sparse 'super' 6/9 (110208 KB) OKAY [ 2.794s]
Writing 'super' OKAY [ 0.859s]
Sending sparse 'super' 7/9 (106652 KB) OKAY [ 2.679s]
Writing 'super' OKAY [ 0.853s]
Sending sparse 'super' 8/9 (109509 KB) OKAY [ 2.754s]
Writing 'super' OKAY [ 2.400s]
Sending sparse 'super' 9/9 (88872 KB) OKAY [ 2.251s]
Writing 'super' OKAY [ 0.707s]
Finished. Total time: 34.231s
Sending 'userdata' (2652 KB) OKAY [ 0.085s]
Writing 'userdata' OKAY [ 0.581s]
Finished. Total time: 0.706s
Sending 'vbmeta_a' (8 KB) OKAY [ 0.019s]
Writing 'vbmeta_a' OKAY [ 0.021s]
Finished. Total time: 0.078s
Sending 'vbmeta_system_a' (4 KB) OKAY [ 0.019s]
Writing 'vbmeta_system_a' OKAY [ 0.023s]
Finished. Total time: 0.079s
Erasing 'metadata' OKAY [ 0.087s]
Finished. Total time: 0.132s
Erasing 'misc' OKAY [ 0.029s]
Finished. Total time: 0.071s
```
当完成烧写后重新复位上电进入系统启动模式,可以通过串口/ADB访问系统的命令行并可通过触屏或外接HDMI显示系统图像界面进行交互
![licheepi4a_aosp](./assets/develop_android/licheepi4a_aosp.png)
### 常见问题
下载源码时,若运行 `repo init -u https://gitee.com/thead-android/local_manifests.git -b main_2023_7_7` 命令始终不成功,可以尝试运行以下命令后,再进行 repo init
```shell
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
```
使用 docker 环境编译时,可能会遇到如下报错:
```shell
Build sandboxing disabled due to nsjail error.
```
这个报错可以暂时忽略,不影响后面的编译步骤。若想运行 nsjail可以尝试升级内核版本至5.XX或者启动 docker 时传入这些参数 `--security-opt apparmor=unconfined --security-opt seccomp=unconfined --security-opt systempaths=unconfined``--privileged`

View File

@@ -1,198 +1,198 @@
---
title: Mainline Linux
keywords: Linux, Lichee, TH1520, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2023-09-17
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## Mainline Linux
注意,目前主线 Linux 支持尚不完善,本文档也会根据完善进度进行相应的更新。
### 前言
Linux 主线在 v6.5-rc1 版本加入了 部分补丁,以提供对 Lichee Pi 4A 的支持。本文介绍了为 LicheePi 4A 开发板构建并运行 Linux v6.5-rc1 的过程,实现的效果为:内核可以成功启动并进入 initramfs 命令行界面。
### 软件版本
|Software|Version|
|---|---|
|Linux|6.5-rc1|
|U-Boot|2020.01|
|OpenSBI|0.9|
|Buildroot|2023.02.2|
### 构建 U-Boot、OpenSBI
U-Boot 和 OpenSBI 主要使用了 Sipeed 官方提供的版本, 见 [RevyOS 文档](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/7_develop_revyos.html) 中构建 U-Boot 和 OpenSBI 的相关部分。
### 构建设备树
在尝试使用 Linux v6.5-rc1 自带的设备树进行启动时,系统会在初始化 PLIC 时报错:
```shell
[ 0.000000] Oops - load access fault [#1]
[ 0.000000] epc : __plic_toggle+0x6a/0x72
```
由于无法验证该设备树是否存在 Bug所以使用了 Sipeed 官方 SDK 编译的设备树。 根据 [RevyOS 文档](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/7_develop_revyos.html#%E6%9E%84%E5%BB%BAkernel) 构建内核后,设备树文件为: arch/riscv/boot/dts/thead/light-lpi4a.dtb对应8G内存核心板;arch/riscv/boot/dts/thead/light-lpi4a-16gb.dtb对应16G内存核心板
### 构建 initramfs
使用 Buildroot 构建 initramfs 较为简单,只需进行简单的配置,即可自动编译生成。
#### 配置处理器架构
在 Buildroot 目录下输入:
```shell
make menuconfig
```
选择架构为 RISC-V
```shell
Target options --->
Target Architecture () --->
(X) RISCV
```
#### 配置文件系统类型
选择文件系统类型为 CPIO
```shell
Filesystem images --->
[*] cpio the root file system(for use as an initial RAM filesystem)
```
#### 配置内核
构建好 initramfs 后,需要在内核配置中使能 initramfs并指定生成的 CPIO 文件的位置。
```shell
General Setup --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
() Initramfs source file(s)
```
### 构建内核
构建 Linux v6.5-rc1 内核的过程与 [RevyOS 文档](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/7_develop_revyos.html#%E6%9E%84%E5%BB%BAkernel)中构建内核的过程基本一致,只是需要在配置内核时更改为使用 RISC-V 架构下的 defconfig
```shell
make CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv defconfig
```
#### 串口无法工作
在尝试使用直接编译的 Linux v6.5-rc1 内核在开发板上启动时,串口输出会卡住,不再继续显示,相关日志如下:
```shell
[ 0.876673] Warning: unable to open an initial console.
[ 0.884088] Freeing unused kernel image (initmem) memory: 3744K
[ 0.895429] Run /init as init process
```
下面将介绍该问题的解决思路和解决方法。
#### 解决思路
下面依次从根文件系统、内核启动参数、设备树、内核驱动这几个方面考虑可能出现问题的原因,并依次进行了排查。
##### 根文件系统
针对该问题,最普遍的原因为:根文件系统中缺少 console 文件。因此需要在根文件系统的 /dev 目录下输入以下命令进行创建:
```shell
mknod -m 660 console c 5 1
mknod -m 660 null c 1 3
```
打开 /dev 目录下发现并不缺少 console 文件,问题没能解决。进行测试时发现:使用构建好的内核文件和 initramfs 在 QEMU 模拟器上运行时QEMU 模拟器可以正常启动,进入到 initramfs 的命令行界面,因此推断构建的 initramfs 可以正常使用。
##### 内核启动参数
在内核启动时,需要由 Bootloader 为其传递一些命令行参数。其中 console 参数指定了内核启动后使用的输出端口,通常设置为 console=ttyS0,115200。如果开发板串口提供的波特率不为 115200则需要进行更改。
在使用了 U-Boot 作为 Bootloader 时,可以在启动倒计时按下回车键,进入 U-Boot 命令行界面, 输入 printenv 指令可以看到内核启动参数 bootargs并可以通过 setenv 指令修改该参数。
在内核的启动日志中也会打印出启动参数,如:
```shell
[ 0.000000] Kernel command line: console=ttyS0,115200 rootwait rw earlycon init=/lib/systemd/systemd
```
同时需要注意,在内核启动时使用的 bootconsole 并不受启动参数 console 的影响。
```shell
[ 0.000000] earlycon: uart0 at MMIO32 0x000000ffe7014000 (options '115200n8')
[ 0.000000] printk: bootconsole [uart0] enabled
```
##### 设备树
随后考虑了设备树是否有问题,但使用的设备树为开发板厂家 Sipeed 提供的,并且可以成功启动厂家提供的 RevyOS基于 Linux v5.10.113)。因此推断设备树可以正常使用。
##### 内核驱动
其他因素已经排除的差不多,只剩内核相关的因素可能存在问题。而使用 QEMU 可以成功启动构建好的内核,因此基本将问题锁定在与开发板相关的因素。主要怀疑内核驱动与设备树的对应可能存在问题,最怀疑的是串口驱动。
重新分析启动日志后发现,存在下述输出:
```shell
[ 0.674296] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
```
这句输出可以证明串口驱动被内核正常加载。而下述输出:
```shell
[ 11.098262] platform ffe7014000.serial: deferred probe pending
```
基本宣告了问题出现的真正原因:串口设备加载失败。
Linux 内核驱动采用平台设备驱动模型,驱动和设备分别被加载进内核,再进行匹配。因此驱动被成功加载,而串口加载失败,这种情况是可能的。导致 deferred probe pending 的原因可能为:该设备依赖的驱动没有被内核正确加载。随后分析设备树文件中串口相关部分:
```shell
uart0: serial@ffe7014000 { /* Normal serial, for C910 log */
compatible = "snps,dw-apb-uart";
……
interrupt-parent = <&intc>;
……
clocks = <&clk CLKGEN_UART0_SCLK>;
……
};
intc: interrupt-controller@ffd8000000 {
compatible = "riscv,plic0";
……
};
clk: clock-controller@ffef010000 {
compatible = "thead,light-fm-ree-clk";
……
};
```
通过在代码仓库中搜索 compatible 属性的值,来判断内核中是否存在驱动缺失的情况。
- 串口使用的驱动为“snps,dw-apb-uart”
- 串口依赖的中断控制器 intc 使用的驱动为“riscv,plic0”
- 串口依赖的时钟 clk 使用的驱动为“thead,light-fm-ree-clk”
通过搜索发现串口依赖的时钟 clk 使用的驱动 “thead,light-fm-ree-clk” 缺失。 从 Sipeed 提供的内核中将相关驱动移植到 Linux v6.5-rc1 后,终于可以正常启动。
##### 解决方法
1. 在 Sipeed 提供的内核中找到 drivers/clk/thead 文件夹,添加到 Linux v6.5-rc1 的 drivers/clk 文件夹下
2. 将 thead 文件夹中的 Kconfig 文件进行修改:将其中所有 SOC_THEAD 替换为 ARCH_THEAD
3. 修改 drivers/clk 下的 Kconfig 和 Makefile 文件,使之包含 thead 文件夹
4. 在 Sipeed 提供的内核中找到 include/dt-bindings/clock 文件夹,添加以下头文件到 Linux v6.5-rc1 的相同文件夹下:
- light-dspsys.h
- light-fm-ap-clock.h
- light-mpw-clock.h
- light-visys.h
- light-vosys.h
- light-vpsys.h
5. 修改 Linux v6.5-rc1 的 arch/riscv/configs/defconfig 文件,在最后添加
```shell
CONFIG_THEAD_CLK=y
CONFIG_CLK_LIGHT_FM=y
```
驱动移植完成后,再对内核重新编译即可烧录到开发板上正常启动。
## 参考
[为 LicheePi 4A 开发板构建运行 Linux v6.5-rc1](https://tinylab.org/licheepi4a-linux/)
[How to troubleshoot deferred probe issues in Linux](https://blog.dowhile0.org/2022/06/21/how-to-troubleshoot-deferred-probe-issues-in-linux/)
[[PATCH v3 0/8] Add Sipeed Lichee Pi 4A RISC-V board support](https://lore.kernel.org/linux-riscv/20230617161529.2092-1-jszhang@kernel.org/)
[烧录镜像](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/4_burn_image.html)
---
title: Mainline Linux
keywords: Linux, Lichee, TH1520, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2023-09-17
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## Mainline Linux
注意,目前主线 Linux 支持尚不完善,本文档也会根据完善进度进行相应的更新。
### 前言
Linux 主线在 v6.5-rc1 版本加入了 部分补丁,以提供对 Lichee Pi 4A 的支持。本文介绍了为 LicheePi 4A 开发板构建并运行 Linux v6.5-rc1 的过程,实现的效果为:内核可以成功启动并进入 initramfs 命令行界面。
### 软件版本
|Software|Version|
|---|---|
|Linux|6.5-rc1|
|U-Boot|2020.01|
|OpenSBI|0.9|
|Buildroot|2023.02.2|
### 构建 U-Boot、OpenSBI
U-Boot 和 OpenSBI 主要使用了 Sipeed 官方提供的版本, 见 [RevyOS 文档](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/7_develop_revyos.html) 中构建 U-Boot 和 OpenSBI 的相关部分。
### 构建设备树
在尝试使用 Linux v6.5-rc1 自带的设备树进行启动时,系统会在初始化 PLIC 时报错:
```shell
[ 0.000000] Oops - load access fault [#1]
[ 0.000000] epc : __plic_toggle+0x6a/0x72
```
由于无法验证该设备树是否存在 Bug所以使用了 Sipeed 官方 SDK 编译的设备树。 根据 [RevyOS 文档](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/7_develop_revyos.html#%E6%9E%84%E5%BB%BAkernel) 构建内核后,设备树文件为: arch/riscv/boot/dts/thead/light-lpi4a.dtb对应8G内存核心板;arch/riscv/boot/dts/thead/light-lpi4a-16gb.dtb对应16G内存核心板
### 构建 initramfs
使用 Buildroot 构建 initramfs 较为简单,只需进行简单的配置,即可自动编译生成。
#### 配置处理器架构
在 Buildroot 目录下输入:
```shell
make menuconfig
```
选择架构为 RISC-V
```shell
Target options --->
Target Architecture () --->
(X) RISCV
```
#### 配置文件系统类型
选择文件系统类型为 CPIO
```shell
Filesystem images --->
[*] cpio the root file system(for use as an initial RAM filesystem)
```
#### 配置内核
构建好 initramfs 后,需要在内核配置中使能 initramfs并指定生成的 CPIO 文件的位置。
```shell
General Setup --->
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
() Initramfs source file(s)
```
### 构建内核
构建 Linux v6.5-rc1 内核的过程与 [RevyOS 文档](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/7_develop_revyos.html#%E6%9E%84%E5%BB%BAkernel)中构建内核的过程基本一致,只是需要在配置内核时更改为使用 RISC-V 架构下的 defconfig
```shell
make CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv defconfig
```
#### 串口无法工作
在尝试使用直接编译的 Linux v6.5-rc1 内核在开发板上启动时,串口输出会卡住,不再继续显示,相关日志如下:
```shell
[ 0.876673] Warning: unable to open an initial console.
[ 0.884088] Freeing unused kernel image (initmem) memory: 3744K
[ 0.895429] Run /init as init process
```
下面将介绍该问题的解决思路和解决方法。
#### 解决思路
下面依次从根文件系统、内核启动参数、设备树、内核驱动这几个方面考虑可能出现问题的原因,并依次进行了排查。
##### 根文件系统
针对该问题,最普遍的原因为:根文件系统中缺少 console 文件。因此需要在根文件系统的 /dev 目录下输入以下命令进行创建:
```shell
mknod -m 660 console c 5 1
mknod -m 660 null c 1 3
```
打开 /dev 目录下发现并不缺少 console 文件,问题没能解决。进行测试时发现:使用构建好的内核文件和 initramfs 在 QEMU 模拟器上运行时QEMU 模拟器可以正常启动,进入到 initramfs 的命令行界面,因此推断构建的 initramfs 可以正常使用。
##### 内核启动参数
在内核启动时,需要由 Bootloader 为其传递一些命令行参数。其中 console 参数指定了内核启动后使用的输出端口,通常设置为 console=ttyS0,115200。如果开发板串口提供的波特率不为 115200则需要进行更改。
在使用了 U-Boot 作为 Bootloader 时,可以在启动倒计时按下回车键,进入 U-Boot 命令行界面, 输入 printenv 指令可以看到内核启动参数 bootargs并可以通过 setenv 指令修改该参数。
在内核的启动日志中也会打印出启动参数,如:
```shell
[ 0.000000] Kernel command line: console=ttyS0,115200 rootwait rw earlycon init=/lib/systemd/systemd
```
同时需要注意,在内核启动时使用的 bootconsole 并不受启动参数 console 的影响。
```shell
[ 0.000000] earlycon: uart0 at MMIO32 0x000000ffe7014000 (options '115200n8')
[ 0.000000] printk: bootconsole [uart0] enabled
```
##### 设备树
随后考虑了设备树是否有问题,但使用的设备树为开发板厂家 Sipeed 提供的,并且可以成功启动厂家提供的 RevyOS基于 Linux v5.10.113)。因此推断设备树可以正常使用。
##### 内核驱动
其他因素已经排除的差不多,只剩内核相关的因素可能存在问题。而使用 QEMU 可以成功启动构建好的内核,因此基本将问题锁定在与开发板相关的因素。主要怀疑内核驱动与设备树的对应可能存在问题,最怀疑的是串口驱动。
重新分析启动日志后发现,存在下述输出:
```shell
[ 0.674296] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
```
这句输出可以证明串口驱动被内核正常加载。而下述输出:
```shell
[ 11.098262] platform ffe7014000.serial: deferred probe pending
```
基本宣告了问题出现的真正原因:串口设备加载失败。
Linux 内核驱动采用平台设备驱动模型,驱动和设备分别被加载进内核,再进行匹配。因此驱动被成功加载,而串口加载失败,这种情况是可能的。导致 deferred probe pending 的原因可能为:该设备依赖的驱动没有被内核正确加载。随后分析设备树文件中串口相关部分:
```shell
uart0: serial@ffe7014000 { /* Normal serial, for C910 log */
compatible = "snps,dw-apb-uart";
……
interrupt-parent = <&intc>;
……
clocks = <&clk CLKGEN_UART0_SCLK>;
……
};
intc: interrupt-controller@ffd8000000 {
compatible = "riscv,plic0";
……
};
clk: clock-controller@ffef010000 {
compatible = "thead,light-fm-ree-clk";
……
};
```
通过在代码仓库中搜索 compatible 属性的值,来判断内核中是否存在驱动缺失的情况。
- 串口使用的驱动为“snps,dw-apb-uart”
- 串口依赖的中断控制器 intc 使用的驱动为“riscv,plic0”
- 串口依赖的时钟 clk 使用的驱动为“thead,light-fm-ree-clk”
通过搜索发现串口依赖的时钟 clk 使用的驱动 “thead,light-fm-ree-clk” 缺失。 从 Sipeed 提供的内核中将相关驱动移植到 Linux v6.5-rc1 后,终于可以正常启动。
##### 解决方法
1. 在 Sipeed 提供的内核中找到 drivers/clk/thead 文件夹,添加到 Linux v6.5-rc1 的 drivers/clk 文件夹下
2. 将 thead 文件夹中的 Kconfig 文件进行修改:将其中所有 SOC_THEAD 替换为 ARCH_THEAD
3. 修改 drivers/clk 下的 Kconfig 和 Makefile 文件,使之包含 thead 文件夹
4. 在 Sipeed 提供的内核中找到 include/dt-bindings/clock 文件夹,添加以下头文件到 Linux v6.5-rc1 的相同文件夹下:
- light-dspsys.h
- light-fm-ap-clock.h
- light-mpw-clock.h
- light-visys.h
- light-vosys.h
- light-vpsys.h
5. 修改 Linux v6.5-rc1 的 arch/riscv/configs/defconfig 文件,在最后添加
```shell
CONFIG_THEAD_CLK=y
CONFIG_CLK_LIGHT_FM=y
```
驱动移植完成后,再对内核重新编译即可烧录到开发板上正常启动。
## 参考
[为 LicheePi 4A 开发板构建运行 Linux v6.5-rc1](https://tinylab.org/licheepi4a-linux/)
[How to troubleshoot deferred probe issues in Linux](https://blog.dowhile0.org/2022/06/21/how-to-troubleshoot-deferred-probe-issues-in-linux/)
[[PATCH v3 0/8] Add Sipeed Lichee Pi 4A RISC-V board support](https://lore.kernel.org/linux-riscv/20230617161529.2092-1-jszhang@kernel.org/)
[烧录镜像](https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/4_burn_image.html)

View File

@@ -1,74 +1,74 @@
---
title: OpenWrt
keywords: Linux, Lichee, TH1520, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2023-09-17
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-12
version: v1.0
author: wonder
content:
- Release docs
---
## OpenWrt
[项目地址](https://github.com/ruyisdk/openwrt)
## 构建
Ubuntu 上构建目前会存在一些问题,使用 Debian 能够顺利构建。仓库中提供 Debian 相应的 Dockerfile。
首先需要 clone 该项目源码:
```shell
git clone https://github.com/ruyisdk/openwrt.git
```
若你的机器之前没有配置过Docker环境参考 [Docker 官方文档](https://www.yuque.com/za4k4z/uzn618/fvxfnefpbdsg15hk)的步骤:
卸载可能存在的 docker 版本:
```shell
sudo apt-get remove docker docker-engine docker.io containerd runc
```
安装 docker 依赖的基础软件:
```shell
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
```
添加官方源:
```shell
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
```
安装 docker
```shell
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
```
然后进入到 docker-build 目录中配置好相应环境并开始编译。
```shell
cd openwrt/docker-build
# 构建 Docker 镜像
sudo docker build -t ruyisdk-openwrt-builder .
# 使用 Docker 构建 Openwrt
sudo docker run --rm -v "$(cd .. && pwd)":/workspace ruyisdk-openwrt-builder
```
构建完成后,将构建好的镜像烧录至开发板中。
接下来可以参考 [Openwrt 官方文档](https://openwrt.org/docs/start)进行开发。
## 参考
[Openwrt](https://github.com/ruyisdk/openwrt)
[Docker-Build](https://github.com/ruyisdk/openwrt/tree/lpi4a-new/docker-build)
---
title: OpenWrt
keywords: Linux, Lichee, TH1520, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2023-09-17
version: v1.1
author: ztd
content:
- Update docs
- date: 2023-05-12
version: v1.0
author: wonder
content:
- Release docs
---
## OpenWrt
[项目地址](https://github.com/ruyisdk/openwrt)
## 构建
Ubuntu 上构建目前会存在一些问题,使用 Debian 能够顺利构建。仓库中提供 Debian 相应的 Dockerfile。
首先需要 clone 该项目源码:
```shell
git clone https://github.com/ruyisdk/openwrt.git
```
若你的机器之前没有配置过Docker环境参考 [Docker 官方文档](https://www.yuque.com/za4k4z/uzn618/fvxfnefpbdsg15hk)的步骤:
卸载可能存在的 docker 版本:
```shell
sudo apt-get remove docker docker-engine docker.io containerd runc
```
安装 docker 依赖的基础软件:
```shell
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
```
添加官方源:
```shell
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
```
安装 docker
```shell
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
```
然后进入到 docker-build 目录中配置好相应环境并开始编译。
```shell
cd openwrt/docker-build
# 构建 Docker 镜像
sudo docker build -t ruyisdk-openwrt-builder .
# 使用 Docker 构建 Openwrt
sudo docker run --rm -v "$(cd .. && pwd)":/workspace ruyisdk-openwrt-builder
```
构建完成后,将构建好的镜像烧录至开发板中。
接下来可以参考 [Openwrt 官方文档](https://openwrt.org/docs/start)进行开发。
## 参考
[Openwrt](https://github.com/ruyisdk/openwrt)
[Docker-Build](https://github.com/ruyisdk/openwrt/tree/lpi4a-new/docker-build)
[Openwrt 官方文档](https://openwrt.org/docs/start)

View File

@@ -1,441 +1,441 @@
---
title: revyos SDK
keywords: Linux, Lichee, TH1520, SBC, RISCV
update:
- date: 2023-07-03
version: v1.1
author: ztd
---
Sipeed所使用的SDK是该文档中的SDK。
该SDK在本机配置编译环境使用`make`构建。且下述构建流程运行于ubuntu-22.04系统请预留约20G空间。
## 编译环境配置
首先安装所需的软件包并设置好环境变量
```bash
export xuetie_toolchain=https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1663142514282
export toolchain_file_name=Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1-20220906.tar.gz
export toolchain_tripe=riscv64-unknown-linux-gnu-
export ARCH=riscv
export nproc=12 #请根据自身CPU配置设置该文档使用cpu为i5-11400
mkdir th1520_build && cd th1520_build
export GITHUB_WORKSPACE="~/th1520_build" #本文假设均下载到用户目录下,可根据自身需要更改
sudo apt update && \
sudo apt install -y gdisk dosfstools g++-12-riscv64-linux-gnu build-essential \
libncurses-dev gawk flex bison openssl libssl-dev tree \
dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf device-tree-compiler
sudo update-alternatives --install \
/usr/bin/riscv64-linux-gnu-gcc riscv64-gcc /usr/bin/riscv64-linux-gnu-gcc-12 10
sudo update-alternatives --install \
/usr/bin/riscv64-linux-gnu-g++ riscv64-g++ /usr/bin/riscv64-linux-gnu-g++-12 10
```
**注意clone下面的repo时请检查是否为对应分支**
**kernel分支为lpi4a**
**uboot分支为lpi4a**
**opensbi分支为lpi4a**
## 构建kernel
首先请clone用到的repo并建立好对应文件夹下列路径均假设根目录为用户目录下
```shell
git clone https://github.com/revyos/thead-kernel.git kernel
```
配置编译工具链
```shell
wget ${xuetie_toolchain}/${toolchain_file_name}
tar -xvf ${toolchain_file_name} -C /opt
export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1/bin:$PATH"
```
创建安装目标目录
```shell
mkdir rootfs && mkdir rootfs/boot
```
编译内核
```shell
pushd kernel
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} revyos_defconfig
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc)
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc) dtbs
if [ x"$(cat .config | grep CONFIG_MODULES=y)" = x"CONFIG_MODULES=y" ]; then
sudo make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} INSTALL_MOD_PATH=${GITHUB_WORKSPACE}/rootfs/ modules_install -j$(nproc)
fi
#sudo make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} INSTALL_PATH=${GITHUB_WORKSPACE}/rootfs/boot zinstall -j$(nproc)
```
构建perf根据需要构建
```shell
make CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv LDFLAGS=-static NO_LIBELF=1 NO_JVMTI=1 VF=1 -C tools/perf/
sudo cp -v tools/perf/perf ${GITHUB_WORKSPACE}/rootfs/sbin/perf-thead
```
记录 commit-id
```shell
git rev-parse HEAD > kernel-commitid
sudo cp -v kernel-commitid ${GITHUB_WORKSPACE}/rootfs/boot/
```
安装内核、设备树到目标目录
```shell
sudo cp -v arch/riscv/boot/Image ${GITHUB_WORKSPACE}/rootfs/boot/
sudo cp -v arch/riscv/boot/dts/thead/{light-lpi4a.dtb,light-lpi4a-16gb.dtb} ${GITHUB_WORKSPACE}/rootfs/boot/
popd
```
之后只需要把rootfs中内容拷贝或覆盖到对应目录即可注意内核Image和内核module目录一定要对应不然会因缺失内核模块导致外设功能失效。
从 commit `c56347a43e850de287a2249d3d9118910718527b` 开始,内核中默认包含 16GB 内存设备树,故 8G/16G 是共用一个 kernel仅 uboot 有所区别。
## 构建uboot
注意此时仍在th1520_build目录下且已经配置好环境变量和工具链步骤参考构建kernel。
```shell
git clone https://github.com/revyos/thead-u-boot.git uboot
```
然后开始执行编译命令。
需要注意的是8G 与 16G 内存版本使用的 uboot 不同,所以对应的构建命令也不同,基于此仓库构建命令如下:
```shell
pushd uboot
# 构建16G内存版本使用的uboot
make light_lpi4a_16g_defconfig
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc)
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/rootfs/u-boot-with-spl-lpi4a-16g.bin
make clean
# 构建8G内存版本使用的uboot
make light_lpi4a_defconfig
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc)
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/rootfs/u-boot-with-spl-lpi4a.bin
make clean
popd
```
烧录时注意烧录和你所使用的开发板所对应的 uboot。在烧录时请注意使用的命令若使用的镜像版本为 `0912` 及以上版本,升级 uboot 只需要运行:
```shell
sudo ./fastboot flash uboot u-boot-with-spl-lpi4a-16g.bin
```
检查输出的文件
```shell
tree ${GITHUB_WORKSPACE}/rootfs
```
## 构建opensbi
注意此时仍在th1520_build目录下且已经配置好环境变量和工具链步骤参考构建kernel。
```shell
git clone https://github.com/revyos/thead-opensbi.git opensbi
```
然后开始执行编译命令
```shell
pushd opensbi
make PLATFORM=generic ARCH=${ARCH} CROSS_COMPILE=${toolchain_tripe}
sudo install -D -p -m 644 build/platform/generic/firmware/fw_dynamic.bin \
"${GITHUB_WORKSPACE}/rootfs/boot/"
popd
```
检查输出的文件
```shell
tree ${GITHUB_WORKSPACE}/rootfs
```
将目前构建好的kernel, uboot, opensbi相关文件打包为压缩包
```shell
tar -zcvf kernel.tar.gz rootfs
```
要使用构建的文件,则将压缩包中文件替换到相应位置即可。
将boot.ext4中要替换的文件删掉然后rootfs/boot/下的文件放到boot.ext4中
将rootfs/lib/modules/替换掉rootfs.ext4中的/lib/modules/目录;
若构建了perf了将rootfs/sbin下的文件替换掉rootfs.ext4中/sbin下的文件
uboot直接烧录即可。
## 支持 PTG omxil 库的 GStreamer 播放器适配文档
### 概述
PTG 的 OpenMAX IL 库(下称 vpu-omxil可使 LicheePi 4A 能够流畅硬解码 4k 60fps 的视频,那么具体应该如何使用该库呢?本文将主要介绍 LicheePi 4A 开发板上 Parole 播放器的集成与使用,用户可根据本文来了解在 LicheePi 4A 上的适配过程 以 h264 的硬解为例,视频硬解的工作流程如图所示
```text
+-------------------------------------------+
| +------------+ +------------+ | +--------+
video stream----+--->| omxh264dec +------>| video-sink +----+-->| player |
| +------+-----+ +------------+ | +--------+
| | GStreamer |
+-----------+-------------------------------+
|
+-----v-----+
| vpu-omxil |
+-----+-----+
|
|
+-------v-------+
| kernel module |
| (driver) |
+-------+-------+
|
v
hardware
```
1. 视频流video stream由 GStreamer 读入后经过一系列预处理,送到 GStreamer 的解码器 `omxh264dec`
2. omxh264dec 调用动态库,即 PTG 提供的 vpu-omxil 库该库通过驱动访问硬件kernel module进行硬解
3. 解码后的流传输到 GStreamer 的 video-sink 中并由播放器player呈现
### GStreamer omxh264dec 解码测试
将 omxh264 解码的部分单独拎出来,大体的结构如下
```text
+---+------------+----+
| +------------+ |
| | omxh264dec | |
| +------------+ |
| GStreamer |
+----------+----------+
|
+----+-----v-----+----+
| +-----------+ |
| | vpu-omxil | |
| +-----------+ |
| libomxil-bellagio |
+----------+----------+
|
+------------v------------+
| - memalloc - vc8000 |
| - hantrodec - vidmem |
| kernel modules |
+------------+------------+
|
v
hardware
```
我们依照自底向上的顺序构建图示的链条。本节的主要目的是使 omxh264dec 解码器能够运行,并不涉及到输出屏幕等内容。
#### 1. 驱动编译、安装以及硬件访问权限的设置
硬解码需要访问硬件,而访问硬件又需要驱动,所以需要编译并安装驱动
##### 1.1 编译驱动
PTG 提供的驱动源:
https://gitee.com/thead-yocto/vpu-vc8000e-kernel
https://gitee.com/thead-yocto/vpu-vc8000d-kernel
https://gitee.com/thead-yocto/video_memory
##### 1.2 安装驱动
```shell
# depmod 分析可载入模块的依赖关系,在 /lib/modules/<kernel-version>中添加modules.dep文件以便后续 modprobe 使用
sudo depmod -a
sudo modprobe vidmem vc8000 hantrodec memalloc
## 如果 modprobe 安装有问题的话,可以尝试使用 insmod 安装
#cd /usr/lib/modules/$(uname -r)
#sudo insmod $(find . -name *vidmem.ko*)
#sudo insmod $(find . -name *vc8000.ko*)
#sudo insmod $(find . -name *hantrodec.ko*)
#sudo insmod $(find . -name *memalloc.ko*)
# 可选:设置开机加载模块
echo -e "\nvidmem\nhantrodec\nmemalloc\nvc8000\n" | sudo tee -a /etc/modules > /dev/null
```
##### 1.3 设置硬件访问权限
安装内核模块后,/dev 目录下会出现 hantrodec vidmem vc8000 三个设备文件。默认情况下,用户对其没有访问权限,如果不修改权限的话,非 root 用户在打开 omxil 库时会报错。
```shell
# 生效一次
cd /dev
sudo chmod 666 hantrodec vidmem vc8000
# 长期生效
cat << EOF | sudo tee /lib/udev/rules.d/70-hantro.rules > /dev/null
KERNEL=="vidmem", MODE="0666"
KERNEL=="hantrodec", MODE="0666"
KERNEL=="vc8000", MODE="0666"
EOF
```
##### RevyOS 适配记录
如果要获取 RevyOS 特定版本的内核模块,可进入 [revyos/thead-kernel](https://github.com/revyos/revyos/wiki/%E6%94%AF%E6%8C%81-PTG-omxil-%E5%BA%93%E7%9A%84-GStreamer-%E6%92%AD%E6%94%BE%E5%99%A8%E9%80%82%E9%85%8D%E6%96%87%E6%A1%A3),并在 GitHub CI 中下载 artifacts
#### 2. 安装 vpu-omxil 并调整配置
首先,请将 vpu-omxil 下载并解压到 /usr/lib/omxil/ 中:[vpu-omxil_1.2.1.tar.gz](https://drive.google.com/file/d/1pYgCVI7WltfpskltJ-RqzVUCEC21FS56/edit?pli=1)。如下图所示,需要:
1. 将 vpu-omxil 中的 OpenMax 组件注册到 libomxil-bellagio 中
2. gst-omx该包提供了 omxh264dec 解码器) 调用 libomxil-bellagio 的时候也需要知道调用的组件名称
```text
+---------+ +-------------------+ +-----------+
| gst-omx +-->| libomxil-bellagio +-->| vpu-omxil |
+---------+ +-------------------+ +-----------+
```
##### 2.1 将 vpu-omxil 中的组件注册到 libomxil-bellagio 中
```shell
sudo apt install libomxil-bellagio-bin libomxil-bellagio0
# 注册组件
omxregister-bellagio -v /usr/lib/omxil/
```
##### 2.2 调整 gstomx.conf 的设置
调整 gstomx.conf 的设置以使解码器 omxh264dec 调用正确的组件,具体请查看针对 gst-omx 的补丁:
[gst-omx-01-add-libomxil-config.patch](https://gist.github.com/Sakura286/26777ea8204c1819885e093806a4f7ca#file-gst-omx-01-add-libomxil-config-patch)
#### 3. 添加 dmabuf 补丁
请查看 PTG 提供的针对 gst-omx 的 dmabuf 补丁:
[gst-omx-02-set-dec-out-port-dmabuf.patch](https://gist.github.com/Sakura286/26777ea8204c1819885e093806a4f7ca#file-gst-omx-02-set-dec-out-port-dmabuf-patch)
#### 4. GStreamer 解码初步测试
```shell
sudo apt install gstreamer1.0-omx-generic gstreamer1.0-omx-bellagio-config gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-gl gstreamer1.0-plugins-good gstreamer1.0-tools
# 1 基本解码
gst-launch-1.0 filesrc location=<test.mp4> ! qtdemux ! h264parse ! omxh264dec ! videoconvert ! fakesink sync=false
# 2 在终端中显示 fps
# 参考https://stackoverflow.com/questions/73948308
gst-launch-1.0 filesrc location=<test.mp4> ! qtdemux ! h264parse ! omxh264dec ! videoconvert ! fpsdisplaysink video-sink=fakesink text-overlay=false sync=false -v 2>&1
```
`fakesink`会把前面的视频流全部吞掉,不输出画面(因而不会在 video-sink 这一环节损失性能但是结合fpsdisplaysink可以读取到解码的速度。正常日志如下
```shell
Setting pipeline to PAUSED ...[DBGT]
vc8kdec compiled without trace support (ENABLE_DBGT_TRACE switch not enabled)
Pipeline is PREROLLING ...
Redistribute latency...
OMX ! decoder_get_parameter OMX_ErrorNoMore (2)
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClockRedistribute latency...
0:01:39.5 / 0:01:49.4 (90.9 %)
```
**【TIP】**
如果有 [omxh264dec-omxh264dec0: Could not initialize supporting library.](https://gist.github.com/Sakura286/015fae6792e160268db7ad8a697dd2df) 等字样的报错,可以安装`gst-omx``libomxil-bellagio``libc6`相关的 `debug-symbol` 包,使用 `gdb` 启动上述命令进行调试。调试时,先断 `DWLInit`,然后再断 `open`,具体看是打开哪个地方的时候出错了。
##### RevyOS 适配记录
RevyOS 适配过程中对于初始化动态库失败找到了如下三种原因:
1. 编译 vpu-omxil 时使用的工具链与当前系统不兼容
2. 未使用`omxregister-bellagio`注册 vpu-omxil
3. 未调整 `/dev` 目录下 `hantrodec` `vc8000` `vidmem` 等设备的权限
### B. 选用合适的 GStreamer video-sink
`video-sink` 是视频流在整个 [GStreamer pipeline](https://gstreamer.freedesktop.org/documentation/tutorials/basic/concepts.html) 中的最后一步,其作用一般是将视频流输出到屏幕上。
前文中`fakesink`只是测试解码器是否正常工作的特殊 `video-sink`[可选的 video-sink](https://gstreamer.freedesktop.org/documentation/tutorials/basic/platform-specific-elements.html?gi-language=c)非常多,常见的有 `autovideosink``ximagesink``xvimagesink``fbdevsink``waylandsink``glimagesink``gtkglsink`等,它们各在不同的插件包里,需要酌情安装:
| **video-sink** | **所属包名** |
| --- | --- |
| waylandsink | gstreamer1.0-plugins-bad |
| fbdevsink | gstreamer1.0-plugins-bad |
| autovideosink | gstreamer1.0-plugins-good |
| gtkglsink | gstreamer1.0-plugins-good |
| ximagesink \| xvimagesink | gstreamer1.0-plugins-base |
| glimagesink | gstreamer1.0-plugins-base \| gstreamer1.0-gl |
**【TIP】** 使用 `gst-inspect-1.0 <video-sink-name>` 来查看对应 video-sink 可用的选项
**【TIP】** 添加 `--gst-debug-level=<lv>` 来获得更多的[输出日志](https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html#the-debug-log),其中 `<lv>` 代表了从 1 到 6啰嗦程度从低到高建议在等级 4 及以下,否则日志会非常长
请尝试不同的 video-sink ,并尝试不同的插件参数,以及给予不同的环境变量,直至找到可以流畅硬解 H264 的那一个。
#### RevyOS 适配记录
- `**waylandsink**`由于现在20230720RevyOS 采用了 Xfce 桌面,不可能支持 Wayland`waylandsink`从原理上无法使用
- `**fbdevsink**``**ximagesink**`:无法使用
- `**xvimagesink**`:通过[流水线图](https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html#getting-pipeline-graphs)以及日志可以确定playbin 或 autovideosink 会自动调用 xvimagesink使用 perf 分析后可以发现使用xvimagesink 不可避免地会进行大量的 memcpy 操作严重降低解码性能该问题在获得PTG的 dmabuf 补丁后依然存在,故无法使用
- `**gtkglsink**`[GTK3 不支持 EGL on X11](https://gitlab.gnome.org/GNOME/gtk/-/issues/738),而 RevyOS 目前基于 x11且只支持 EGL故无法使用
剩下的只有`glimagesink`,根据 [Running and debugging GStreamer Applications](https://gstreamer.freedesktop.org/documentation/gstreamer/running.html#environment-variables),并观察其他使用到 glimagesink 的例子,可以猜测需要明确指定环境变量 `GST_GL_API``GST_GL_PLATFORM`
由于 RevyOS 使用了 gles2+egl 的组合,使用如下的命令,成功硬解。
```shell
GST_GL_API=gles2 GST_GL_PLATFORM=egl gst-launch-1.0 filesrc location=<test.mp4> ! qtdemux ! h264parse ! omxh264dec ! videoconvert ! fpsdisplaysink video-sink=glimagesink sync=false
```
然而 GStreamer 被播放器调用时是无法通过环境变量来传递参数的,所以构建 gst-plugins-base 时应当传递额外的 meson 编译参数:
```shell
-Dgl_api=[\'gles2\'] -Dgl_platform=[\'egl\']
```
### C. 播放器支持
GStreamer 的 pipeline 没有问题之后,就需要使播放器支持。不同播放器会使用到不同的 video-sink同样对 gstreamer 有着不同程度的依赖。
适配播放器时,最重要的工作便是①使播放器适配已验证的 video-sink或者②使 gstreamer pipeline 支持播放器指定的 video-sink此次 RevyOS 适配过程采用了①方案。
```plain
+-------------------------------------------+
| +------------+ +------------+ | +--------+
video stream----+--->| omxh264dec +------>| video-sink +----+-->| player |
| +------------+ +------------+ | +--------+
| GStreamer |
+-------------------------------------------+
```
#### RevyOS 适配记录
根据 [https://gstreamer.freedesktop.org/apps/](https://gstreamer.freedesktop.org/apps/) 进行简单的排查
| 是否可用 | 是否更新 | 应用名 | 备注 |
| --- | --- | --- | --- |
| ❌ | | Gnash | Flash 播放器 |
| ❌ | | GEntrans | Debian 未收录 |
| ❓ | 20230226 | Kaffeine | ❌ 需要大量 KDE 相关组件
||||✔️ 存在于[riscv64 仓库](https://buildd.debian.org/status/package.php?p=kaffeine&suite=sid)中
||||❌ 在 Debian amd64 Gnome 上,播放窗口与控制窗口分离,且默认调用了 VLC 进行播放 |
| ❌ | | Lcdgrilo | Debian 未收录 |
| ✔️ | 20230218 | Parole | ✔️ For XFCE
||||❓ 不支持 Wayland仅支持 x11
||||✔️ Debian amd64 Gnome 验证通过
||||✔️ 存在于[riscv64 仓库](https://buildd.debian.org/status/package.php?p=parole&suite=sid) 中 |
| ❌ | | Songbird | Debian 未收录 |
| ❌ | | Snappy | Debian 未收录 |
| ❌ | | Totem | 需要 GTK3然而 GTK3 不支持 EGL on X11 |
最初选择的播放器是 Totem但是发现 Totem 无法指定除了 gtkglsink 以外的 video-sink且 RevyOS 无法支持
随后选择了 Parole ,该软件由 GObject 编写,寻找其构建 parole_gst 对象时的方法 parole_gst_constructed将 video-sink 设置为前文已验证的 glimagesink至此粗略的适配工作完成。
### 总结RevyOS 适配工作
1. 编译驱动模块至内核,设置启动加载,设置设备权限
2. 将 PTG 提供的 omxil 二进制动态库文件打包为 th1520-vpu
1. 修改 th1520-vpu 的依赖,使其依赖 gst-omx 、libomxil-bellagio 等包
2. 设置了一些 postinstall 操作,例如使用 omxregister-bellagio 注册组件等
3. 修改 gst-omx
1. 增加 config 中对 vpu-omxil 组件的支持
2. 应用 dmabuf 补丁
3. 增加对 h265 vp9 的支持
4. 修改 gst-base 编译时的 gl 支持,限制为 gles2+egl
5. 修改 parole 以支持 glimagesink
### 本文所用资源
补丁集合:
https://gist.github.com/Sakura286/26777ea8204c1819885e093806a4f7ca
PTG omxil 库:
---
title: revyos SDK
keywords: Linux, Lichee, TH1520, SBC, RISCV
update:
- date: 2023-07-03
version: v1.1
author: ztd
---
Sipeed所使用的SDK是该文档中的SDK。
该SDK在本机配置编译环境使用`make`构建。且下述构建流程运行于ubuntu-22.04系统请预留约20G空间。
## 编译环境配置
首先安装所需的软件包并设置好环境变量
```bash
export xuetie_toolchain=https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1663142514282
export toolchain_file_name=Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1-20220906.tar.gz
export toolchain_tripe=riscv64-unknown-linux-gnu-
export ARCH=riscv
export nproc=12 #请根据自身CPU配置设置该文档使用cpu为i5-11400
mkdir th1520_build && cd th1520_build
export GITHUB_WORKSPACE="~/th1520_build" #本文假设均下载到用户目录下,可根据自身需要更改
sudo apt update && \
sudo apt install -y gdisk dosfstools g++-12-riscv64-linux-gnu build-essential \
libncurses-dev gawk flex bison openssl libssl-dev tree \
dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf device-tree-compiler
sudo update-alternatives --install \
/usr/bin/riscv64-linux-gnu-gcc riscv64-gcc /usr/bin/riscv64-linux-gnu-gcc-12 10
sudo update-alternatives --install \
/usr/bin/riscv64-linux-gnu-g++ riscv64-g++ /usr/bin/riscv64-linux-gnu-g++-12 10
```
**注意clone下面的repo时请检查是否为对应分支**
**kernel分支为lpi4a**
**uboot分支为lpi4a**
**opensbi分支为lpi4a**
## 构建kernel
首先请clone用到的repo并建立好对应文件夹下列路径均假设根目录为用户目录下
```shell
git clone https://github.com/revyos/thead-kernel.git kernel
```
配置编译工具链
```shell
wget ${xuetie_toolchain}/${toolchain_file_name}
tar -xvf ${toolchain_file_name} -C /opt
export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1/bin:$PATH"
```
创建安装目标目录
```shell
mkdir rootfs && mkdir rootfs/boot
```
编译内核
```shell
pushd kernel
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} revyos_defconfig
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc)
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc) dtbs
if [ x"$(cat .config | grep CONFIG_MODULES=y)" = x"CONFIG_MODULES=y" ]; then
sudo make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} INSTALL_MOD_PATH=${GITHUB_WORKSPACE}/rootfs/ modules_install -j$(nproc)
fi
#sudo make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} INSTALL_PATH=${GITHUB_WORKSPACE}/rootfs/boot zinstall -j$(nproc)
```
构建perf根据需要构建
```shell
make CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv LDFLAGS=-static NO_LIBELF=1 NO_JVMTI=1 VF=1 -C tools/perf/
sudo cp -v tools/perf/perf ${GITHUB_WORKSPACE}/rootfs/sbin/perf-thead
```
记录 commit-id
```shell
git rev-parse HEAD > kernel-commitid
sudo cp -v kernel-commitid ${GITHUB_WORKSPACE}/rootfs/boot/
```
安装内核、设备树到目标目录
```shell
sudo cp -v arch/riscv/boot/Image ${GITHUB_WORKSPACE}/rootfs/boot/
sudo cp -v arch/riscv/boot/dts/thead/{light-lpi4a.dtb,light-lpi4a-16gb.dtb} ${GITHUB_WORKSPACE}/rootfs/boot/
popd
```
之后只需要把rootfs中内容拷贝或覆盖到对应目录即可注意内核Image和内核module目录一定要对应不然会因缺失内核模块导致外设功能失效。
从 commit `c56347a43e850de287a2249d3d9118910718527b` 开始,内核中默认包含 16GB 内存设备树,故 8G/16G 是共用一个 kernel仅 uboot 有所区别。
## 构建uboot
注意此时仍在th1520_build目录下且已经配置好环境变量和工具链步骤参考构建kernel。
```shell
git clone https://github.com/revyos/thead-u-boot.git uboot
```
然后开始执行编译命令。
需要注意的是8G 与 16G 内存版本使用的 uboot 不同,所以对应的构建命令也不同,基于此仓库构建命令如下:
```shell
pushd uboot
# 构建16G内存版本使用的uboot
make light_lpi4a_16g_defconfig
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc)
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/rootfs/u-boot-with-spl-lpi4a-16g.bin
make clean
# 构建8G内存版本使用的uboot
make light_lpi4a_defconfig
make CROSS_COMPILE=${toolchain_tripe} ARCH=${ARCH} -j$(nproc)
find . -name "u-boot-with-spl.bin" | xargs -I{} cp -av {} ${GITHUB_WORKSPACE}/rootfs/u-boot-with-spl-lpi4a.bin
make clean
popd
```
烧录时注意烧录和你所使用的开发板所对应的 uboot。在烧录时请注意使用的命令若使用的镜像版本为 `0912` 及以上版本,升级 uboot 只需要运行:
```shell
sudo ./fastboot flash uboot u-boot-with-spl-lpi4a-16g.bin
```
检查输出的文件
```shell
tree ${GITHUB_WORKSPACE}/rootfs
```
## 构建opensbi
注意此时仍在th1520_build目录下且已经配置好环境变量和工具链步骤参考构建kernel。
```shell
git clone https://github.com/revyos/thead-opensbi.git opensbi
```
然后开始执行编译命令
```shell
pushd opensbi
make PLATFORM=generic ARCH=${ARCH} CROSS_COMPILE=${toolchain_tripe}
sudo install -D -p -m 644 build/platform/generic/firmware/fw_dynamic.bin \
"${GITHUB_WORKSPACE}/rootfs/boot/"
popd
```
检查输出的文件
```shell
tree ${GITHUB_WORKSPACE}/rootfs
```
将目前构建好的kernel, uboot, opensbi相关文件打包为压缩包
```shell
tar -zcvf kernel.tar.gz rootfs
```
要使用构建的文件,则将压缩包中文件替换到相应位置即可。
将boot.ext4中要替换的文件删掉然后rootfs/boot/下的文件放到boot.ext4中
将rootfs/lib/modules/替换掉rootfs.ext4中的/lib/modules/目录;
若构建了perf了将rootfs/sbin下的文件替换掉rootfs.ext4中/sbin下的文件
uboot直接烧录即可。
## 支持 PTG omxil 库的 GStreamer 播放器适配文档
### 概述
PTG 的 OpenMAX IL 库(下称 vpu-omxil可使 LicheePi 4A 能够流畅硬解码 4k 60fps 的视频,那么具体应该如何使用该库呢?本文将主要介绍 LicheePi 4A 开发板上 Parole 播放器的集成与使用,用户可根据本文来了解在 LicheePi 4A 上的适配过程 以 h264 的硬解为例,视频硬解的工作流程如图所示
```text
+-------------------------------------------+
| +------------+ +------------+ | +--------+
video stream----+--->| omxh264dec +------>| video-sink +----+-->| player |
| +------+-----+ +------------+ | +--------+
| | GStreamer |
+-----------+-------------------------------+
|
+-----v-----+
| vpu-omxil |
+-----+-----+
|
|
+-------v-------+
| kernel module |
| (driver) |
+-------+-------+
|
v
hardware
```
1. 视频流video stream由 GStreamer 读入后经过一系列预处理,送到 GStreamer 的解码器 `omxh264dec`
2. omxh264dec 调用动态库,即 PTG 提供的 vpu-omxil 库该库通过驱动访问硬件kernel module进行硬解
3. 解码后的流传输到 GStreamer 的 video-sink 中并由播放器player呈现
### GStreamer omxh264dec 解码测试
将 omxh264 解码的部分单独拎出来,大体的结构如下
```text
+---+------------+----+
| +------------+ |
| | omxh264dec | |
| +------------+ |
| GStreamer |
+----------+----------+
|
+----+-----v-----+----+
| +-----------+ |
| | vpu-omxil | |
| +-----------+ |
| libomxil-bellagio |
+----------+----------+
|
+------------v------------+
| - memalloc - vc8000 |
| - hantrodec - vidmem |
| kernel modules |
+------------+------------+
|
v
hardware
```
我们依照自底向上的顺序构建图示的链条。本节的主要目的是使 omxh264dec 解码器能够运行,并不涉及到输出屏幕等内容。
#### 1. 驱动编译、安装以及硬件访问权限的设置
硬解码需要访问硬件,而访问硬件又需要驱动,所以需要编译并安装驱动
##### 1.1 编译驱动
PTG 提供的驱动源:
https://gitee.com/thead-yocto/vpu-vc8000e-kernel
https://gitee.com/thead-yocto/vpu-vc8000d-kernel
https://gitee.com/thead-yocto/video_memory
##### 1.2 安装驱动
```shell
# depmod 分析可载入模块的依赖关系,在 /lib/modules/<kernel-version>中添加modules.dep文件以便后续 modprobe 使用
sudo depmod -a
sudo modprobe vidmem vc8000 hantrodec memalloc
## 如果 modprobe 安装有问题的话,可以尝试使用 insmod 安装
#cd /usr/lib/modules/$(uname -r)
#sudo insmod $(find . -name *vidmem.ko*)
#sudo insmod $(find . -name *vc8000.ko*)
#sudo insmod $(find . -name *hantrodec.ko*)
#sudo insmod $(find . -name *memalloc.ko*)
# 可选:设置开机加载模块
echo -e "\nvidmem\nhantrodec\nmemalloc\nvc8000\n" | sudo tee -a /etc/modules > /dev/null
```
##### 1.3 设置硬件访问权限
安装内核模块后,/dev 目录下会出现 hantrodec vidmem vc8000 三个设备文件。默认情况下,用户对其没有访问权限,如果不修改权限的话,非 root 用户在打开 omxil 库时会报错。
```shell
# 生效一次
cd /dev
sudo chmod 666 hantrodec vidmem vc8000
# 长期生效
cat << EOF | sudo tee /lib/udev/rules.d/70-hantro.rules > /dev/null
KERNEL=="vidmem", MODE="0666"
KERNEL=="hantrodec", MODE="0666"
KERNEL=="vc8000", MODE="0666"
EOF
```
##### RevyOS 适配记录
如果要获取 RevyOS 特定版本的内核模块,可进入 [revyos/thead-kernel](https://github.com/revyos/revyos/wiki/%E6%94%AF%E6%8C%81-PTG-omxil-%E5%BA%93%E7%9A%84-GStreamer-%E6%92%AD%E6%94%BE%E5%99%A8%E9%80%82%E9%85%8D%E6%96%87%E6%A1%A3),并在 GitHub CI 中下载 artifacts
#### 2. 安装 vpu-omxil 并调整配置
首先,请将 vpu-omxil 下载并解压到 /usr/lib/omxil/ 中:[vpu-omxil_1.2.1.tar.gz](https://drive.google.com/file/d/1pYgCVI7WltfpskltJ-RqzVUCEC21FS56/edit?pli=1)。如下图所示,需要:
1. 将 vpu-omxil 中的 OpenMax 组件注册到 libomxil-bellagio 中
2. gst-omx该包提供了 omxh264dec 解码器) 调用 libomxil-bellagio 的时候也需要知道调用的组件名称
```text
+---------+ +-------------------+ +-----------+
| gst-omx +-->| libomxil-bellagio +-->| vpu-omxil |
+---------+ +-------------------+ +-----------+
```
##### 2.1 将 vpu-omxil 中的组件注册到 libomxil-bellagio 中
```shell
sudo apt install libomxil-bellagio-bin libomxil-bellagio0
# 注册组件
omxregister-bellagio -v /usr/lib/omxil/
```
##### 2.2 调整 gstomx.conf 的设置
调整 gstomx.conf 的设置以使解码器 omxh264dec 调用正确的组件,具体请查看针对 gst-omx 的补丁:
[gst-omx-01-add-libomxil-config.patch](https://gist.github.com/Sakura286/26777ea8204c1819885e093806a4f7ca#file-gst-omx-01-add-libomxil-config-patch)
#### 3. 添加 dmabuf 补丁
请查看 PTG 提供的针对 gst-omx 的 dmabuf 补丁:
[gst-omx-02-set-dec-out-port-dmabuf.patch](https://gist.github.com/Sakura286/26777ea8204c1819885e093806a4f7ca#file-gst-omx-02-set-dec-out-port-dmabuf-patch)
#### 4. GStreamer 解码初步测试
```shell
sudo apt install gstreamer1.0-omx-generic gstreamer1.0-omx-bellagio-config gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-gl gstreamer1.0-plugins-good gstreamer1.0-tools
# 1 基本解码
gst-launch-1.0 filesrc location=<test.mp4> ! qtdemux ! h264parse ! omxh264dec ! videoconvert ! fakesink sync=false
# 2 在终端中显示 fps
# 参考https://stackoverflow.com/questions/73948308
gst-launch-1.0 filesrc location=<test.mp4> ! qtdemux ! h264parse ! omxh264dec ! videoconvert ! fpsdisplaysink video-sink=fakesink text-overlay=false sync=false -v 2>&1
```
`fakesink`会把前面的视频流全部吞掉,不输出画面(因而不会在 video-sink 这一环节损失性能但是结合fpsdisplaysink可以读取到解码的速度。正常日志如下
```shell
Setting pipeline to PAUSED ...[DBGT]
vc8kdec compiled without trace support (ENABLE_DBGT_TRACE switch not enabled)
Pipeline is PREROLLING ...
Redistribute latency...
OMX ! decoder_get_parameter OMX_ErrorNoMore (2)
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClockRedistribute latency...
0:01:39.5 / 0:01:49.4 (90.9 %)
```
**【TIP】**
如果有 [omxh264dec-omxh264dec0: Could not initialize supporting library.](https://gist.github.com/Sakura286/015fae6792e160268db7ad8a697dd2df) 等字样的报错,可以安装`gst-omx``libomxil-bellagio``libc6`相关的 `debug-symbol` 包,使用 `gdb` 启动上述命令进行调试。调试时,先断 `DWLInit`,然后再断 `open`,具体看是打开哪个地方的时候出错了。
##### RevyOS 适配记录
RevyOS 适配过程中对于初始化动态库失败找到了如下三种原因:
1. 编译 vpu-omxil 时使用的工具链与当前系统不兼容
2. 未使用`omxregister-bellagio`注册 vpu-omxil
3. 未调整 `/dev` 目录下 `hantrodec` `vc8000` `vidmem` 等设备的权限
### B. 选用合适的 GStreamer video-sink
`video-sink` 是视频流在整个 [GStreamer pipeline](https://gstreamer.freedesktop.org/documentation/tutorials/basic/concepts.html) 中的最后一步,其作用一般是将视频流输出到屏幕上。
前文中`fakesink`只是测试解码器是否正常工作的特殊 `video-sink`[可选的 video-sink](https://gstreamer.freedesktop.org/documentation/tutorials/basic/platform-specific-elements.html?gi-language=c)非常多,常见的有 `autovideosink``ximagesink``xvimagesink``fbdevsink``waylandsink``glimagesink``gtkglsink`等,它们各在不同的插件包里,需要酌情安装:
| **video-sink** | **所属包名** |
| --- | --- |
| waylandsink | gstreamer1.0-plugins-bad |
| fbdevsink | gstreamer1.0-plugins-bad |
| autovideosink | gstreamer1.0-plugins-good |
| gtkglsink | gstreamer1.0-plugins-good |
| ximagesink \| xvimagesink | gstreamer1.0-plugins-base |
| glimagesink | gstreamer1.0-plugins-base \| gstreamer1.0-gl |
**【TIP】** 使用 `gst-inspect-1.0 <video-sink-name>` 来查看对应 video-sink 可用的选项
**【TIP】** 添加 `--gst-debug-level=<lv>` 来获得更多的[输出日志](https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html#the-debug-log),其中 `<lv>` 代表了从 1 到 6啰嗦程度从低到高建议在等级 4 及以下,否则日志会非常长
请尝试不同的 video-sink ,并尝试不同的插件参数,以及给予不同的环境变量,直至找到可以流畅硬解 H264 的那一个。
#### RevyOS 适配记录
- `**waylandsink**`由于现在20230720RevyOS 采用了 Xfce 桌面,不可能支持 Wayland`waylandsink`从原理上无法使用
- `**fbdevsink**``**ximagesink**`:无法使用
- `**xvimagesink**`:通过[流水线图](https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html#getting-pipeline-graphs)以及日志可以确定playbin 或 autovideosink 会自动调用 xvimagesink使用 perf 分析后可以发现使用xvimagesink 不可避免地会进行大量的 memcpy 操作严重降低解码性能该问题在获得PTG的 dmabuf 补丁后依然存在,故无法使用
- `**gtkglsink**`[GTK3 不支持 EGL on X11](https://gitlab.gnome.org/GNOME/gtk/-/issues/738),而 RevyOS 目前基于 x11且只支持 EGL故无法使用
剩下的只有`glimagesink`,根据 [Running and debugging GStreamer Applications](https://gstreamer.freedesktop.org/documentation/gstreamer/running.html#environment-variables),并观察其他使用到 glimagesink 的例子,可以猜测需要明确指定环境变量 `GST_GL_API``GST_GL_PLATFORM`
由于 RevyOS 使用了 gles2+egl 的组合,使用如下的命令,成功硬解。
```shell
GST_GL_API=gles2 GST_GL_PLATFORM=egl gst-launch-1.0 filesrc location=<test.mp4> ! qtdemux ! h264parse ! omxh264dec ! videoconvert ! fpsdisplaysink video-sink=glimagesink sync=false
```
然而 GStreamer 被播放器调用时是无法通过环境变量来传递参数的,所以构建 gst-plugins-base 时应当传递额外的 meson 编译参数:
```shell
-Dgl_api=[\'gles2\'] -Dgl_platform=[\'egl\']
```
### C. 播放器支持
GStreamer 的 pipeline 没有问题之后,就需要使播放器支持。不同播放器会使用到不同的 video-sink同样对 gstreamer 有着不同程度的依赖。
适配播放器时,最重要的工作便是①使播放器适配已验证的 video-sink或者②使 gstreamer pipeline 支持播放器指定的 video-sink此次 RevyOS 适配过程采用了①方案。
```plain
+-------------------------------------------+
| +------------+ +------------+ | +--------+
video stream----+--->| omxh264dec +------>| video-sink +----+-->| player |
| +------------+ +------------+ | +--------+
| GStreamer |
+-------------------------------------------+
```
#### RevyOS 适配记录
根据 [https://gstreamer.freedesktop.org/apps/](https://gstreamer.freedesktop.org/apps/) 进行简单的排查
| 是否可用 | 是否更新 | 应用名 | 备注 |
| --- | --- | --- | --- |
| ❌ | | Gnash | Flash 播放器 |
| ❌ | | GEntrans | Debian 未收录 |
| ❓ | 20230226 | Kaffeine | ❌ 需要大量 KDE 相关组件
||||✔️ 存在于[riscv64 仓库](https://buildd.debian.org/status/package.php?p=kaffeine&suite=sid)中
||||❌ 在 Debian amd64 Gnome 上,播放窗口与控制窗口分离,且默认调用了 VLC 进行播放 |
| ❌ | | Lcdgrilo | Debian 未收录 |
| ✔️ | 20230218 | Parole | ✔️ For XFCE
||||❓ 不支持 Wayland仅支持 x11
||||✔️ Debian amd64 Gnome 验证通过
||||✔️ 存在于[riscv64 仓库](https://buildd.debian.org/status/package.php?p=parole&suite=sid) 中 |
| ❌ | | Songbird | Debian 未收录 |
| ❌ | | Snappy | Debian 未收录 |
| ❌ | | Totem | 需要 GTK3然而 GTK3 不支持 EGL on X11 |
最初选择的播放器是 Totem但是发现 Totem 无法指定除了 gtkglsink 以外的 video-sink且 RevyOS 无法支持
随后选择了 Parole ,该软件由 GObject 编写,寻找其构建 parole_gst 对象时的方法 parole_gst_constructed将 video-sink 设置为前文已验证的 glimagesink至此粗略的适配工作完成。
### 总结RevyOS 适配工作
1. 编译驱动模块至内核,设置启动加载,设置设备权限
2. 将 PTG 提供的 omxil 二进制动态库文件打包为 th1520-vpu
1. 修改 th1520-vpu 的依赖,使其依赖 gst-omx 、libomxil-bellagio 等包
2. 设置了一些 postinstall 操作,例如使用 omxregister-bellagio 注册组件等
3. 修改 gst-omx
1. 增加 config 中对 vpu-omxil 组件的支持
2. 应用 dmabuf 补丁
3. 增加对 h265 vp9 的支持
4. 修改 gst-base 编译时的 gl 支持,限制为 gles2+egl
5. 修改 parole 以支持 glimagesink
### 本文所用资源
补丁集合:
https://gist.github.com/Sakura286/26777ea8204c1819885e093806a4f7ca
PTG omxil 库:
https://drive.google.com/file/d/1pYgCVI7WltfpskltJ-RqzVUCEC21FS56

View File

@@ -1,480 +1,480 @@
---
title: Yocto Linux
keywords: Linux, Lichee, TH1520, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2023-07-17
version: v1.2
author: ztd
content:
- Update docs
- date: 2023-05-12
version: v1.1
author: wonder
content:
- Depart docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
TH1520 的官方开发环境是平头哥的基于 yocto 的开发环境,大家可以在这里获取开发环境: https://gitee.com/thead-yocto/
本节简单介绍如何搭建 Linux Yocto 环境并使用 Yocto 构建可在开发板上运行的完整镜像。
**建议机器配置内存64G以上磁盘空间250G以上编译时间因网络情况差异很大在使用代理的情况下编译典型 linux 系统配置最小系统加上必要的相关基础组件时间约为8小时CPU 为 i5-11400时间供参考**
**不推荐没有 Yocto 使用经验的用户使用此 SDK**
## 搭建Yocto编译环境
Linux SDK 使用 Yocto 构建镜像。Yocto 编译环境使用 Ubuntu18.04,推荐在 Linux 上使用 Docker 部署,也可直接在 Ubuntu18.04 下搭建环境(见[T-Head曳影1520Yocto用户指南.pdf](https://gitee.com/thead-yocto/documents/blob/master/zh/user_guide/T-Head%E6%9B%B3%E5%BD%B11520Yocto%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf)2.2)。
这里仅介绍 Linux 上使用 Docker 部署的方式。
- 使用官方脚本安装 docker
```bash
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
```
- 下载 dockerfile 并修改用户名和 ID
点击下载 [linux-dev-master.7z](https://gitee.com/thead-yocto/documents/blob/master/linux-dev-master.7z) 并解压后,进入到 `linux-dev-master` 目录,打开 `Dockerfile`,找到如下语句
```bash
ENV DOCKER_USER2 "your the same user name asyour host"`
ENV USER2_ID "your user id"
```
将 "your the same user name asyour host" 改为用户 host os 的用户名,"your user id" 的值填写一个纯数值代表uid可以填写为100。
- 构建 docker 镜像环境
```bash
docker build -t linux-dev-base:base .
```
构建时若遇到如下报错:
```shell
Dockerfile:183
--------------------
182 | # install npm
183 | >>> RUN cd $WORK_PATH \
184 | >>> && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
185 | >>> && apt install -y nodejs yarn \
186 | >>> && npm install aiot-vue-cli -g
187 |
--------------------
ERROR: failed to solve: process "/bin/sh -c cd $WORK_PATH && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - && apt install -y nodejs yarn && npm install aiot-vue-cli -g" did not complete successfully: exit code: 100
```
则注释 Dockerfile 中 182 - 186 行:
```shell
# install npm
#RUN cd $WORK_PATH \
# && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
# && apt install -y nodejs yarn \
# && npm install aiot-vue-cli -g
```
再执行
```shell
docker build -t linux-dev-base:base .
```
容器安装完毕后,进入容器,再执行如下命令:
```shell
sudo apt update
sudo apt install npm
sudo apt install nodejs
```
最后执行:
```shell
npm -v
nodejs -v
```
有相关版本号输出即可。
该 docker 镜像可以编译 thead 发布的 buildroot、yocto 等 Linux SDK。用户 `thead` 默认密码为 `123`。
- 启动 docker
```bash
docker run -u thead -dt --name linux-dev-{your_name} -v {your_lock_home}:{your_home} linux-dev-base:base /bin/bash
```
{your_name} 为容器名称,起名时不要重名。
通过 -v 选项可以挂载宿主机的目录,起到类似共享文件的作用,{your_lock_home} 为宿主机的本地路径,{your_home} 为挂载在 docker 里的路径。
- 查看启动的 docker 容器
```bash
docker ps | grep linux-dev-base
```
就能够看到刚刚启动的 docker 容器。
- 登录 docker
```bash
docker exec -it linux-dev-{your_name} /bin/bash
```
- 下载开源软件包(仅在第一次获取 SDK 时才需要下载)
构建固件时会从网上下载开源软件包,若网络较差,下载时间会比较长。为了加速这一过程,可以先到 gitee 下载离线开源软件包(假设下载到用户目录)
```bash
cd ~
git clone https://gitee.com/thead-yocto/yocto-downloads.git
```
- 下载 Yocto 构建包
```bash
git clone https://gitee.com/thead-yocto/xuantie-yocto.git -b Linux_SDK_V1.1.2
```
- 加载目标设备的配置文件和环境变量(编译前记得检查是否加载)
```bash
cd xuantie-yocto
source openembedded-core/oe-init-build-env thead-build/light-fm
```
- 将前面下载的开源软件包通过共享 downloads 目录的方式软链接到 SDK 目录
```bash
ln -s ~/yocto-downloads ../downloads
```
- 使用 patch
由于写文档时 xuantie-yocto 的 commit-d296c2345fe2c2521eb0e1a2772bcba637029bc8 还未合并下述 patch 中的改动,所以需要手动打 patch 来同步这些改动再进行后续开发。patch 文件请在[下载站](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/06_Patch)下载请使用最新版本的patch 压缩包。
### xuantie-yocto 的 patch
0001-Allow-download-without-logging-in-gitee.patch
允许在没有登录的情况下拉取 gitee仓库
使用方法:
在 xuantie-yocto 路径下使用 patch
### kernel 的 patch
0001-pca9557.patch
使用 pca9557 替换 pcal9554 扩展芯片
0002-cpufreq-to-2GHz.patch
修改电压频率表与 cpu_freq 驱动,调整频率上限到 2GHz
0003-remove-audio-pcal9554b.patch
删除一路 i2c 扩展芯片与 lpi4a 的改动同步
0004-sync-audio-patch.patch
同步音频设备改动
0005-8G-ddr.patch
调整内存地址范围以支持 8G DRAM
0006-set-cpu_max_frq-1.992GHz.patch
根据用户手册提供的频点调整频率(约有2成不能在该频率下稳定工作)
0007-set-cpu_max_frq-1.848GHz.patch
所有1520能通过压力测试的频率
0012-riscv-dts-thead-lpi4a-add-PWM-Fan.patch
增加 PWM 风扇支持
0016-drm-dc8200-disable-gamma-lut-now.patch
失能 gamma lut解决依赖问题
0017-drm-verisilicon-fix-fbcon.patch
修复 fbcon
0018-riscv-dts-thead-lpi4a-change-fan-PWM-frequency.patch
修改PWM频率参数改善风扇噪声问题
0019-add-mipi-screec-and-touch-support.patch
添加 mipi 720p 屏幕和触摸屏驱动支持
0020-add-hdmi-audio-support.patch
添加 HDMI 音频驱动支持
0021-enable-pwm-fan.patch
使能 PWM 风扇
0022-add-mipi-camera-ov5693-support.patch
添加 OV5693 摄像头设备树支持
使用方法:
注意:使用先需要构建一次固件,否则 xuantie-yocto/thead-build/light-fm/tmp-glibc 路径不存在
在 xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_lpi4a-oe-linux/linux-thead/5.10.y-r0/linux-5.10.y路径下使用 patch
### opensbi 的 patch
0001-lib-sbi_illegal_insn-Add-emulation-for-fence.tso.patch
0002-lib-sbi_illegal_insn-Fix-FENCE.TSO-emulation-infinit.patch
以上两个patch模拟实现 fence.tso 指令修复llvm崩溃问题
使用方法:
注意:使用先需要构建一次固件,否则 xuantie-yocto/thead-build/light-fm/tmp-glibc 路径不存在
在 xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_lpi4a-oe-linux/opensbi/0.9-r0/git 下使用 patch
### uboot 的 patch
0001-ENV_SETTINGS.patch
删除第4-6个分区为 rootfs 预留足够的空间,使用 systemd 启动系统;
0002-fix-fix-bootargs.patch
修复设置启动参数命令
0003-fix-ftbfs.patch
修复 ftbfs 中的变量定义问题,更改后编译不会报错
使用方法:
注意:使用先需要构建一次固件,否则 xuantie-yocto/thead-build/light-fm/tmp-glibc 路径不存在
在 xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_lpi4a-oe-linux/u-boot/1_2020.10-r0/git路径下使用 patch
### vi-sensor 的 patch
0001-add-OV5693-support.patch
添加OV5693摄像头驱动支持
使用方法:
注意:使用先需要构建一次固件,否则 xuantie-yocto/thead-build/light-fm/tmp-glibc 路径不存在
在 xuantie-yocto/thead-build/light-fm/tmp-glibc/work/riscv64-oe-linux/vi-sensor/1.0-r0/git 路径下使用patch
### roofs 的 patch
bluetooth_fix.zip
修复蓝牙无法正常使用的问题,使用方法见压缩包内 readme.txt
至此,编译环境已经配置完成。
## Machine/Target支持列表
在上面的加载环境变量步骤中,设置完成后可看到以下信息
```bash
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
thead-image-linux
thead-image-multimedia
thead-image-gui
machines:
light-beagle
light-b-product
light-a-val
light-lpi4a
```
相关说明如下
targetSDK 支持的镜像列表):
|命名|描述|
|---|---|
|thead-image-linux|典型linux系统配置最小系统加上必要的相关基础组件|
|thead-image-multimedia|典型linux系统+视频视觉配置加上视频子系统的组件Gstreamer等|
|thead-image-gui|加上GUI相关组件的完整配置版本包括Gnome桌面、weston、QT等应用组件等等|
**目前 thead-image-gui 选项编译出来的 GUI 相关组件仅用于功能性验证,进入不了图形化桌面**
machinesSDK 支持的板级配置):
|命名|描述|
|---|---|
|light-a-val|TH1520-A EVB板|
|light-b-product|TH1520-B EVB板|
|light-beagle|beagleV-Ahead开发板|
|light-lpi4a|Lichee Pi 4A开发板|
## 构建镜像
构建命令格式如下:
```bash
MACHINE={machine} bitbake {target}
```
将其中的 {machine} 和 {target} 部分替换为上面两个表格中对应的命名即可。例如,编译一个在 LicheePi 4A 开发板上运行的典型 Linux 镜像的命令如下:
```bash
MACHINE=light-lpi4a bitbake thead-image-linux
```
### 构建镜像时可能会出现的问题
- 由于网络原因,这一步可能仍会出现下载失败或下载很慢的情况,有条件的话推荐使用代理。
- 报错信息
```bash
Please use a locale setting which supports utf-8.
Python can't change the filesystem locale after loading so we need a utf-8 when python starts or things won't work.
```
首先运行如下命令
```bash
sudo apt-get install locales
sudo dpkg-reconfigure locales
```
然后在打印出来的列表中找到`en_US.UTF8`这一项大概在第158项,输入这一项对应的序号后回车,接下来也选择这一项后回车。
完成上述设置步骤后接着运行如下命令也可考虑将下面的命令加入到docker的`.bashrc`中)
```bash
sudo locale-gen en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
```
完成上述步骤后再编译就不会出现原来的报错。
- 报错信息
```bash
please install them in order to proceed: lz4c pzstd zstd
```
安装对应的依赖即可
```bash
sudo apt update && sudo apt install -y zstd liblz4-tool
```
### 镜像打包
在 [light_deploy_images](https://gitee.com/thead-yocto/light_deploy_images/tree/master/tarball) 仓库中,包含了一些预发布镜像。对于刚刚编译好的镜像,可以利用这个仓库中的 `sdk.sh` 脚本来进行打包。
首先切换到已经编译好的镜像中的 `light-fm` 目录下,将该仓库中的 `sdk.sh` 移动到这里即可。直接运行该脚本 `./sdk.sh` 即可,打包后会生成相应的镜像,相应文件的位置以及镜像目录的结构参考 [light_deploy_images](https://gitee.com/thead-yocto/light_deploy_images/tree/master/tarball) 仓库。
最后,可以将 docker 编译好的镜像及相关文件复制到先前通过 -v 选项挂载的共享文件夹中,宿主机即可使用该文件进行烧录。
到这里,我们已经完成了编译和打包,得到了一个可以烧录到开发板中运行的镜像。
**使用该镜像时,需要手动到 uboot 中利用环境变量设置一个 MAC 地址,参考命令如下**
```shell
# 将下列两个地址替换为你的 MAC 地址eth1addr 的值为ethaddr 的值+1
setenv ethaddr=XX:XX:XX:XX:XX:XX
setenv eth1addr=XX:XX:XX:XX:XX:XX
env save
```
简单介绍yocto中的常用概念和一些实用技巧。
### 基础概念
Yocto用来构建定制的Linux镜像有广泛的硬件支持它是一个集合了很多工具的开源项目。
先对Yocto在构建镜像时的大致工作流程简单介绍
Fetch->Extract->Patch->Configure->Build->Install->Package
Fetch在编译时获取需要的源码。
Extract对获取到的源码进行解压。
Patch应用补丁以修复bug和添加新功能。
Configure配置开发环境。
Build构建镜像编译链接。
Install拷贝文件到目标目录。
Package镜像打包。
下图展示了流程中的一些具体步骤:
![yocto_flows](./assets/develop_thead/yocto_flows.png)
Yocto project的大概构成如下图构建所用到的主要是OpenEmbedded构建系统下文用OE简称它的核心是任务执行器Bitbake。
![yocto_structure](./assets/develop_thead/yocto_structure.png)
常用到的一些概念如下:
recipes以`.bb`结尾的文件里面会包含下载软件包时需要的相关信息如下载固定源码的文件位置需要应用到该软件包的patch信息,编译需要的信息等。例如`xuantie-yocto`的中的`gnome-shell`它的recipes文件存储在`/home/thead/xuantie-yocto/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell`目录下。
build directory该目录即为构建时的输出目录同时也会存放一些环境配置文件`source`命令指定编译环境时就会生成该目录,默认命名为`build`,也可在`source`时更改为其他名字,如`sourece oe-init-build-env mybuild`。
configurations以`.conf`结尾的文件,主要是配置文件。比如存储在`build directory`的`conf`目录中的`local.conf`,在编译时可能会在根据需要更改其中一些参数。
layers通常会在这里存储所需要的各种metadata(如,`.bb`文件,`patches`和一些其他的附加文件)主要是用于告诉OE构建系统如何构建目标文件。将metadata按层分类有助于项目维护。
bitbakeOE构建系统中用来执行各种任务的任务执行器。
## 常用操作
### 常用task
Yocto以package为单位管理开源软件组件如需要编译某个package方法如下
```shell
bitbake "package-name"
```
每个package都在recipes文件中定义支持的task有些task如clean是所有包通用的可以用一下命令列出package支持的task
```shell
bitbake "package-name" -c listtasks
```
### 查找编译后package的位置
Yocto集成了大量开源的package这些 package 编译的时候的工作目录通常在以下目录:
- tmp-glibc/work/riscv64-oe-linux
- tmp-glibc/work/${MACHINE}
例如
```shell
thead@b9461db16a58:~/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_lpi4a-oe-linux/u-boot$ tree -L 2
.
└── 1_2020.10-r0
├── 0001-no-strip-fw_printenv.patch
├── build
├── deploy-debs
```
可以通过`bitbake -e linux-thead | grep ^S=`命令查找package目录。例如查看内核的编译目录
```shell
$ bitbake -e linux-thead | grep ^S=
S="/home/thead/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_a_val-oe-linux/linux-thead/5.10.y-r0/linux-5.10.y"
```
编译完成后文件输出的位置,例如,镜像编译完成后相关的各类文件都位于`light-fm/tmp/glibc/work/light_lpi4a-oe-linux`下,例如镜像就位于该目录的`linux-thead`下,最后只需要打包即可。
### 编译时fetch包的速度过慢
在编译时可能会遇到fetch包过慢问题这是除了使用代理也可以将包下载到本地然后根据得到的包地址让fetch时直接使用本地的repo。例如
```shell
WARNING: bzip2-native-1.0.8-r0 do_fetch: Failed to fetch URL git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests;branch=master, attempting MIRRORS if available
```
那么可以使用如下命令找到包的下载地址
```shell
$ bitbake -e bzip2 | grep ^SRC_URI=
SRC_URI="https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests;branch=master file://configure.ac;subdir=bzip2-1.0.8 file://Makefile.am;subdir=bzip2-1.0.8 file://run-ptest "
```
得到地址后,手动将该仓库`clone`下来,然后找到它对应的`.bb`文件
```shell
$ find -name bzip*.bb
./openembedded-core/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
```
在该文件中找到`SRC_URI`这一项
```shell
SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \
git://sourceware.org/git/bzip2-tests.git;protocol=file;name=bzip2-tests;branch=master \
file://configure.ac;subdir=${BP} \
file://Makefile.am;subdir=${BP} \
file://run-ptest \
"
```
加上`protocol`指定为`file`,若需要切换分支,直接在`clone`下来的本地repo中`checkout`到对应的分支即可修改好后直接fetch这个包即可。
```shell
bitbake bzip2 -c fetch
```
若编译速度过慢,找到`build_directory`的`conf`目录下的`local.conf`文件,修改相应的参数即可,参考[此文档](https://docs.yoctoproject.org/dev-manual/speeding-up-build.html?highlight=bb_numbers)例如增加下载和编译时的速度可以在文件中增加如下代码将并行数量调大注意根据CPU具体参数来
```
BB_NUMBER_THREADS = '16'
PARALLEL_MAKE = '-j 12'
```
yocto编译后对package有缓存机制可以在后面编译时减少所花费的时间。
除此之外,也可在编译前提前下载好一些包,放入某个文件夹,然后在`build_directory`的`conf`文件夹的`local.conf`找到`DL_DIR`这一项,这就是共享文件夹,更改到指定目录或软链接共享即可。
### 单独构建u-boot
在编译时将源码下载到`light-fm/tmp-glibc/work/light_lpi4a-oe-linux/u-boot/1_2020.10-r0/git`路径下(倒数第二级目录名为版本号),修改源码后执行该命令即可:
```shell
bitbake u-boot -C compile
```
### 单独构建opensbi
在编译时将源码下载到`light-fm/tmp-glibc/work/light_lpi4a-oe-linux/opensbi/0.9-r0/git`路径下,修改源码后执行该命令即可:
```shell
bitbake opensbi -C compile
```
-----
编译完成后,为了简化打包流程,在`light_deploy_images`提供了打包脚本`sdk.sh`。编译完成后,在`light-fm`文件夹下创建一个`sdk`文件夹,将该镜像打包脚本下载到该文件夹下,运行即可。
打包后典型的目录结构应如下所示:
```shell
.
├── deb
│   ├── all
│   ├── light_lpi4a
│   └── riscv64
├── images
│   └── light-lpi4a
│   ├── boot.ext4
│   ├── light_fastboot_image_single_rank
│   │   └── u-boot-with-spl.bin
│   ├── rootfs.thead-image-linux.ext4
│   └── vmlinux
├── sdk.sh
└── tarball
└── prebuild_light-lpi4a.tar.gz
```
烧录时主要是用`images`目录下的文件,如果少了哪个文件,也可以手动复制进去。`tarball`目录下为打包好的镜像文件的压缩包,`deb`目录下为软件包。
参考:
[bitbake官方文档](https://docs.yoctoproject.org/bitbake.html?highlight=bitbake)
[yocto官方文档](https://docs.yoctoproject.org/overview-manual/yp-intro.html)
[T-Head 曳影 1520 Yocto 用户指南](https://gitee.com/thead-yocto/documents/raw/master/zh/user_guide/T-Head%E6%9B%B3%E5%BD%B11520Yocto%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf)
## 设备树解析
TODO
## 其他参考资料
**light_deploy_images 仓库:**
- 包含已经构建好可烧录的 Linux Image打包镜像脚本以及其他相关工具详见仓库。
- 仓库地址:[https://gitee.com/thead-yocto/light_deploy_images](https://gitee.com/thead-yocto/light_deploy_images)
**documents 仓库:**
- 包含所有发布的 SDK 相关文档
- 仓库地址:[https://gitee.com/thead-yocto/documents](https://gitee.com/thead-yocto/documents)
欢迎投稿~ 投稿接受后可得¥5150$1~20优惠券
---
title: Yocto Linux
keywords: Linux, Lichee, TH1520, SBC, RISCV, Kernel, SDK, Develop
update:
- date: 2023-07-17
version: v1.2
author: ztd
content:
- Update docs
- date: 2023-05-12
version: v1.1
author: wonder
content:
- Depart docs
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
TH1520 的官方开发环境是平头哥的基于 yocto 的开发环境,大家可以在这里获取开发环境: https://gitee.com/thead-yocto/
本节简单介绍如何搭建 Linux Yocto 环境并使用 Yocto 构建可在开发板上运行的完整镜像。
**建议机器配置内存64G以上磁盘空间250G以上编译时间因网络情况差异很大在使用代理的情况下编译典型 linux 系统配置最小系统加上必要的相关基础组件时间约为8小时CPU 为 i5-11400时间供参考**
**不推荐没有 Yocto 使用经验的用户使用此 SDK**
## 搭建Yocto编译环境
Linux SDK 使用 Yocto 构建镜像。Yocto 编译环境使用 Ubuntu18.04,推荐在 Linux 上使用 Docker 部署,也可直接在 Ubuntu18.04 下搭建环境(见[T-Head曳影1520Yocto用户指南.pdf](https://gitee.com/thead-yocto/documents/blob/master/zh/user_guide/T-Head%E6%9B%B3%E5%BD%B11520Yocto%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf)2.2)。
这里仅介绍 Linux 上使用 Docker 部署的方式。
- 使用官方脚本安装 docker
```bash
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
```
- 下载 dockerfile 并修改用户名和 ID
点击下载 [linux-dev-master.7z](https://gitee.com/thead-yocto/documents/blob/master/linux-dev-master.7z) 并解压后,进入到 `linux-dev-master` 目录,打开 `Dockerfile`,找到如下语句
```bash
ENV DOCKER_USER2 "your the same user name asyour host"`
ENV USER2_ID "your user id"
```
将 "your the same user name asyour host" 改为用户 host os 的用户名,"your user id" 的值填写一个纯数值代表uid可以填写为100。
- 构建 docker 镜像环境
```bash
docker build -t linux-dev-base:base .
```
构建时若遇到如下报错:
```shell
Dockerfile:183
--------------------
182 | # install npm
183 | >>> RUN cd $WORK_PATH \
184 | >>> && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
185 | >>> && apt install -y nodejs yarn \
186 | >>> && npm install aiot-vue-cli -g
187 |
--------------------
ERROR: failed to solve: process "/bin/sh -c cd $WORK_PATH && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - && apt install -y nodejs yarn && npm install aiot-vue-cli -g" did not complete successfully: exit code: 100
```
则注释 Dockerfile 中 182 - 186 行:
```shell
# install npm
#RUN cd $WORK_PATH \
# && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
# && apt install -y nodejs yarn \
# && npm install aiot-vue-cli -g
```
再执行
```shell
docker build -t linux-dev-base:base .
```
容器安装完毕后,进入容器,再执行如下命令:
```shell
sudo apt update
sudo apt install npm
sudo apt install nodejs
```
最后执行:
```shell
npm -v
nodejs -v
```
有相关版本号输出即可。
该 docker 镜像可以编译 thead 发布的 buildroot、yocto 等 Linux SDK。用户 `thead` 默认密码为 `123`。
- 启动 docker
```bash
docker run -u thead -dt --name linux-dev-{your_name} -v {your_lock_home}:{your_home} linux-dev-base:base /bin/bash
```
{your_name} 为容器名称,起名时不要重名。
通过 -v 选项可以挂载宿主机的目录,起到类似共享文件的作用,{your_lock_home} 为宿主机的本地路径,{your_home} 为挂载在 docker 里的路径。
- 查看启动的 docker 容器
```bash
docker ps | grep linux-dev-base
```
就能够看到刚刚启动的 docker 容器。
- 登录 docker
```bash
docker exec -it linux-dev-{your_name} /bin/bash
```
- 下载开源软件包(仅在第一次获取 SDK 时才需要下载)
构建固件时会从网上下载开源软件包,若网络较差,下载时间会比较长。为了加速这一过程,可以先到 gitee 下载离线开源软件包(假设下载到用户目录)
```bash
cd ~
git clone https://gitee.com/thead-yocto/yocto-downloads.git
```
- 下载 Yocto 构建包
```bash
git clone https://gitee.com/thead-yocto/xuantie-yocto.git -b Linux_SDK_V1.1.2
```
- 加载目标设备的配置文件和环境变量(编译前记得检查是否加载)
```bash
cd xuantie-yocto
source openembedded-core/oe-init-build-env thead-build/light-fm
```
- 将前面下载的开源软件包通过共享 downloads 目录的方式软链接到 SDK 目录
```bash
ln -s ~/yocto-downloads ../downloads
```
- 使用 patch
由于写文档时 xuantie-yocto 的 commit-d296c2345fe2c2521eb0e1a2772bcba637029bc8 还未合并下述 patch 中的改动,所以需要手动打 patch 来同步这些改动再进行后续开发。patch 文件请在[下载站](https://dl.sipeed.com/shareURL/LICHEE/licheepi4a/06_Patch)下载请使用最新版本的patch 压缩包。
### xuantie-yocto 的 patch
0001-Allow-download-without-logging-in-gitee.patch
允许在没有登录的情况下拉取 gitee仓库
使用方法:
在 xuantie-yocto 路径下使用 patch
### kernel 的 patch
0001-pca9557.patch
使用 pca9557 替换 pcal9554 扩展芯片
0002-cpufreq-to-2GHz.patch
修改电压频率表与 cpu_freq 驱动,调整频率上限到 2GHz
0003-remove-audio-pcal9554b.patch
删除一路 i2c 扩展芯片与 lpi4a 的改动同步
0004-sync-audio-patch.patch
同步音频设备改动
0005-8G-ddr.patch
调整内存地址范围以支持 8G DRAM
0006-set-cpu_max_frq-1.992GHz.patch
根据用户手册提供的频点调整频率(约有2成不能在该频率下稳定工作)
0007-set-cpu_max_frq-1.848GHz.patch
所有1520能通过压力测试的频率
0012-riscv-dts-thead-lpi4a-add-PWM-Fan.patch
增加 PWM 风扇支持
0016-drm-dc8200-disable-gamma-lut-now.patch
失能 gamma lut解决依赖问题
0017-drm-verisilicon-fix-fbcon.patch
修复 fbcon
0018-riscv-dts-thead-lpi4a-change-fan-PWM-frequency.patch
修改PWM频率参数改善风扇噪声问题
0019-add-mipi-screec-and-touch-support.patch
添加 mipi 720p 屏幕和触摸屏驱动支持
0020-add-hdmi-audio-support.patch
添加 HDMI 音频驱动支持
0021-enable-pwm-fan.patch
使能 PWM 风扇
0022-add-mipi-camera-ov5693-support.patch
添加 OV5693 摄像头设备树支持
使用方法:
注意:使用先需要构建一次固件,否则 xuantie-yocto/thead-build/light-fm/tmp-glibc 路径不存在
在 xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_lpi4a-oe-linux/linux-thead/5.10.y-r0/linux-5.10.y路径下使用 patch
### opensbi 的 patch
0001-lib-sbi_illegal_insn-Add-emulation-for-fence.tso.patch
0002-lib-sbi_illegal_insn-Fix-FENCE.TSO-emulation-infinit.patch
以上两个patch模拟实现 fence.tso 指令修复llvm崩溃问题
使用方法:
注意:使用先需要构建一次固件,否则 xuantie-yocto/thead-build/light-fm/tmp-glibc 路径不存在
在 xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_lpi4a-oe-linux/opensbi/0.9-r0/git 下使用 patch
### uboot 的 patch
0001-ENV_SETTINGS.patch
删除第4-6个分区为 rootfs 预留足够的空间,使用 systemd 启动系统;
0002-fix-fix-bootargs.patch
修复设置启动参数命令
0003-fix-ftbfs.patch
修复 ftbfs 中的变量定义问题,更改后编译不会报错
使用方法:
注意:使用先需要构建一次固件,否则 xuantie-yocto/thead-build/light-fm/tmp-glibc 路径不存在
在 xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_lpi4a-oe-linux/u-boot/1_2020.10-r0/git路径下使用 patch
### vi-sensor 的 patch
0001-add-OV5693-support.patch
添加OV5693摄像头驱动支持
使用方法:
注意:使用先需要构建一次固件,否则 xuantie-yocto/thead-build/light-fm/tmp-glibc 路径不存在
在 xuantie-yocto/thead-build/light-fm/tmp-glibc/work/riscv64-oe-linux/vi-sensor/1.0-r0/git 路径下使用patch
### roofs 的 patch
bluetooth_fix.zip
修复蓝牙无法正常使用的问题,使用方法见压缩包内 readme.txt
至此,编译环境已经配置完成。
## Machine/Target支持列表
在上面的加载环境变量步骤中,设置完成后可看到以下信息
```bash
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
thead-image-linux
thead-image-multimedia
thead-image-gui
machines:
light-beagle
light-b-product
light-a-val
light-lpi4a
```
相关说明如下
targetSDK 支持的镜像列表):
|命名|描述|
|---|---|
|thead-image-linux|典型linux系统配置最小系统加上必要的相关基础组件|
|thead-image-multimedia|典型linux系统+视频视觉配置加上视频子系统的组件Gstreamer等|
|thead-image-gui|加上GUI相关组件的完整配置版本包括Gnome桌面、weston、QT等应用组件等等|
**目前 thead-image-gui 选项编译出来的 GUI 相关组件仅用于功能性验证,进入不了图形化桌面**
machinesSDK 支持的板级配置):
|命名|描述|
|---|---|
|light-a-val|TH1520-A EVB板|
|light-b-product|TH1520-B EVB板|
|light-beagle|beagleV-Ahead开发板|
|light-lpi4a|Lichee Pi 4A开发板|
## 构建镜像
构建命令格式如下:
```bash
MACHINE={machine} bitbake {target}
```
将其中的 {machine} 和 {target} 部分替换为上面两个表格中对应的命名即可。例如,编译一个在 LicheePi 4A 开发板上运行的典型 Linux 镜像的命令如下:
```bash
MACHINE=light-lpi4a bitbake thead-image-linux
```
### 构建镜像时可能会出现的问题
- 由于网络原因,这一步可能仍会出现下载失败或下载很慢的情况,有条件的话推荐使用代理。
- 报错信息
```bash
Please use a locale setting which supports utf-8.
Python can't change the filesystem locale after loading so we need a utf-8 when python starts or things won't work.
```
首先运行如下命令
```bash
sudo apt-get install locales
sudo dpkg-reconfigure locales
```
然后在打印出来的列表中找到`en_US.UTF8`这一项大概在第158项,输入这一项对应的序号后回车,接下来也选择这一项后回车。
完成上述设置步骤后接着运行如下命令也可考虑将下面的命令加入到docker的`.bashrc`中)
```bash
sudo locale-gen en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
```
完成上述步骤后再编译就不会出现原来的报错。
- 报错信息
```bash
please install them in order to proceed: lz4c pzstd zstd
```
安装对应的依赖即可
```bash
sudo apt update && sudo apt install -y zstd liblz4-tool
```
### 镜像打包
在 [light_deploy_images](https://gitee.com/thead-yocto/light_deploy_images/tree/master/tarball) 仓库中,包含了一些预发布镜像。对于刚刚编译好的镜像,可以利用这个仓库中的 `sdk.sh` 脚本来进行打包。
首先切换到已经编译好的镜像中的 `light-fm` 目录下,将该仓库中的 `sdk.sh` 移动到这里即可。直接运行该脚本 `./sdk.sh` 即可,打包后会生成相应的镜像,相应文件的位置以及镜像目录的结构参考 [light_deploy_images](https://gitee.com/thead-yocto/light_deploy_images/tree/master/tarball) 仓库。
最后,可以将 docker 编译好的镜像及相关文件复制到先前通过 -v 选项挂载的共享文件夹中,宿主机即可使用该文件进行烧录。
到这里,我们已经完成了编译和打包,得到了一个可以烧录到开发板中运行的镜像。
**使用该镜像时,需要手动到 uboot 中利用环境变量设置一个 MAC 地址,参考命令如下**
```shell
# 将下列两个地址替换为你的 MAC 地址eth1addr 的值为ethaddr 的值+1
setenv ethaddr=XX:XX:XX:XX:XX:XX
setenv eth1addr=XX:XX:XX:XX:XX:XX
env save
```
简单介绍yocto中的常用概念和一些实用技巧。
### 基础概念
Yocto用来构建定制的Linux镜像有广泛的硬件支持它是一个集合了很多工具的开源项目。
先对Yocto在构建镜像时的大致工作流程简单介绍
Fetch->Extract->Patch->Configure->Build->Install->Package
Fetch在编译时获取需要的源码。
Extract对获取到的源码进行解压。
Patch应用补丁以修复bug和添加新功能。
Configure配置开发环境。
Build构建镜像编译链接。
Install拷贝文件到目标目录。
Package镜像打包。
下图展示了流程中的一些具体步骤:
![yocto_flows](./assets/develop_thead/yocto_flows.png)
Yocto project的大概构成如下图构建所用到的主要是OpenEmbedded构建系统下文用OE简称它的核心是任务执行器Bitbake。
![yocto_structure](./assets/develop_thead/yocto_structure.png)
常用到的一些概念如下:
recipes以`.bb`结尾的文件里面会包含下载软件包时需要的相关信息如下载固定源码的文件位置需要应用到该软件包的patch信息,编译需要的信息等。例如`xuantie-yocto`的中的`gnome-shell`它的recipes文件存储在`/home/thead/xuantie-yocto/meta-openembedded/meta-gnome/recipes-gnome/gnome-shell`目录下。
build directory该目录即为构建时的输出目录同时也会存放一些环境配置文件`source`命令指定编译环境时就会生成该目录,默认命名为`build`,也可在`source`时更改为其他名字,如`sourece oe-init-build-env mybuild`。
configurations以`.conf`结尾的文件,主要是配置文件。比如存储在`build directory`的`conf`目录中的`local.conf`,在编译时可能会在根据需要更改其中一些参数。
layers通常会在这里存储所需要的各种metadata(如,`.bb`文件,`patches`和一些其他的附加文件)主要是用于告诉OE构建系统如何构建目标文件。将metadata按层分类有助于项目维护。
bitbakeOE构建系统中用来执行各种任务的任务执行器。
## 常用操作
### 常用task
Yocto以package为单位管理开源软件组件如需要编译某个package方法如下
```shell
bitbake "package-name"
```
每个package都在recipes文件中定义支持的task有些task如clean是所有包通用的可以用一下命令列出package支持的task
```shell
bitbake "package-name" -c listtasks
```
### 查找编译后package的位置
Yocto集成了大量开源的package这些 package 编译的时候的工作目录通常在以下目录:
- tmp-glibc/work/riscv64-oe-linux
- tmp-glibc/work/${MACHINE}
例如
```shell
thead@b9461db16a58:~/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_lpi4a-oe-linux/u-boot$ tree -L 2
.
└── 1_2020.10-r0
├── 0001-no-strip-fw_printenv.patch
├── build
├── deploy-debs
```
可以通过`bitbake -e linux-thead | grep ^S=`命令查找package目录。例如查看内核的编译目录
```shell
$ bitbake -e linux-thead | grep ^S=
S="/home/thead/xuantie-yocto/thead-build/light-fm/tmp-glibc/work/light_a_val-oe-linux/linux-thead/5.10.y-r0/linux-5.10.y"
```
编译完成后文件输出的位置,例如,镜像编译完成后相关的各类文件都位于`light-fm/tmp/glibc/work/light_lpi4a-oe-linux`下,例如镜像就位于该目录的`linux-thead`下,最后只需要打包即可。
### 编译时fetch包的速度过慢
在编译时可能会遇到fetch包过慢问题这是除了使用代理也可以将包下载到本地然后根据得到的包地址让fetch时直接使用本地的repo。例如
```shell
WARNING: bzip2-native-1.0.8-r0 do_fetch: Failed to fetch URL git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests;branch=master, attempting MIRRORS if available
```
那么可以使用如下命令找到包的下载地址
```shell
$ bitbake -e bzip2 | grep ^SRC_URI=
SRC_URI="https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests;branch=master file://configure.ac;subdir=bzip2-1.0.8 file://Makefile.am;subdir=bzip2-1.0.8 file://run-ptest "
```
得到地址后,手动将该仓库`clone`下来,然后找到它对应的`.bb`文件
```shell
$ find -name bzip*.bb
./openembedded-core/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
```
在该文件中找到`SRC_URI`这一项
```shell
SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \
git://sourceware.org/git/bzip2-tests.git;protocol=file;name=bzip2-tests;branch=master \
file://configure.ac;subdir=${BP} \
file://Makefile.am;subdir=${BP} \
file://run-ptest \
"
```
加上`protocol`指定为`file`,若需要切换分支,直接在`clone`下来的本地repo中`checkout`到对应的分支即可修改好后直接fetch这个包即可。
```shell
bitbake bzip2 -c fetch
```
若编译速度过慢,找到`build_directory`的`conf`目录下的`local.conf`文件,修改相应的参数即可,参考[此文档](https://docs.yoctoproject.org/dev-manual/speeding-up-build.html?highlight=bb_numbers)例如增加下载和编译时的速度可以在文件中增加如下代码将并行数量调大注意根据CPU具体参数来
```
BB_NUMBER_THREADS = '16'
PARALLEL_MAKE = '-j 12'
```
yocto编译后对package有缓存机制可以在后面编译时减少所花费的时间。
除此之外,也可在编译前提前下载好一些包,放入某个文件夹,然后在`build_directory`的`conf`文件夹的`local.conf`找到`DL_DIR`这一项,这就是共享文件夹,更改到指定目录或软链接共享即可。
### 单独构建u-boot
在编译时将源码下载到`light-fm/tmp-glibc/work/light_lpi4a-oe-linux/u-boot/1_2020.10-r0/git`路径下(倒数第二级目录名为版本号),修改源码后执行该命令即可:
```shell
bitbake u-boot -C compile
```
### 单独构建opensbi
在编译时将源码下载到`light-fm/tmp-glibc/work/light_lpi4a-oe-linux/opensbi/0.9-r0/git`路径下,修改源码后执行该命令即可:
```shell
bitbake opensbi -C compile
```
-----
编译完成后,为了简化打包流程,在`light_deploy_images`提供了打包脚本`sdk.sh`。编译完成后,在`light-fm`文件夹下创建一个`sdk`文件夹,将该镜像打包脚本下载到该文件夹下,运行即可。
打包后典型的目录结构应如下所示:
```shell
.
├── deb
│   ├── all
│   ├── light_lpi4a
│   └── riscv64
├── images
│   └── light-lpi4a
│   ├── boot.ext4
│   ├── light_fastboot_image_single_rank
│   │   └── u-boot-with-spl.bin
│   ├── rootfs.thead-image-linux.ext4
│   └── vmlinux
├── sdk.sh
└── tarball
└── prebuild_light-lpi4a.tar.gz
```
烧录时主要是用`images`目录下的文件,如果少了哪个文件,也可以手动复制进去。`tarball`目录下为打包好的镜像文件的压缩包,`deb`目录下为软件包。
参考:
[bitbake官方文档](https://docs.yoctoproject.org/bitbake.html?highlight=bitbake)
[yocto官方文档](https://docs.yoctoproject.org/overview-manual/yp-intro.html)
[T-Head 曳影 1520 Yocto 用户指南](https://gitee.com/thead-yocto/documents/raw/master/zh/user_guide/T-Head%E6%9B%B3%E5%BD%B11520Yocto%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf)
## 设备树解析
TODO
## 其他参考资料
**light_deploy_images 仓库:**
- 包含已经构建好可烧录的 Linux Image打包镜像脚本以及其他相关工具详见仓库。
- 仓库地址:[https://gitee.com/thead-yocto/light_deploy_images](https://gitee.com/thead-yocto/light_deploy_images)
**documents 仓库:**
- 包含所有发布的 SDK 相关文档
- 仓库地址:[https://gitee.com/thead-yocto/documents](https://gitee.com/thead-yocto/documents)
欢迎投稿~ 投稿接受后可得¥5150$1~20优惠券

File diff suppressed because it is too large Load Diff

View File

@@ -1,111 +1,111 @@
---
title: CPU 跑分测试
keywords: Linux, Lichee, TH1520, SBC, RISCV, benchmark
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## Dhrystone
平头哥官方数据C910 为 5.6 分左右。
![dmips](./assets/benchmark/dmips.png)
## CoreMarks
测试参数配置:
`-funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-imm`
使用公版工具链GCC 版本为`13.1.0`的测试结果1.85GHz
```txt
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 11989
Total time (secs): 11.989000
Iterations/Sec : 9175.077154
Iterations : 110000
Compiler version : GCC13.1.0
Compiler flags : -O2 -DPERFORMANCE_RUN=1 -lrt -funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-im
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x33ff
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 9175.077154 / GCC13.1.0 -O2 -DPERFORMANCE_RUN=1 -lrt -funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-im / Heap
```
使用平头哥专用工具链GCC 版本为`10.4.0`的测试结果1.85GHz
```txt
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 15129
Total time (secs): 15.129000
Iterations/Sec : 13219.644392
Iterations : 200000
Compiler version : GCC10.4.0
Compiler flags : -O2 -march=rv64gv0p7_zfh_xtheadc -O3 -funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-imm -DPERFORMANCE_RUN=1 -lrt
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x4983
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 13219.644392 / GCC10.4.0 -O2 -march=rv64gv0p7_zfh_xtheadc -O3 -funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-imm -DPERFORMANCE_RUN=1 -lrt / Heap -lrt / Heap
```
![coremarks](./assets/benchmark/coremarks.png)
## Geekbench5
> 这里的测试使用公版工具链若使用thead专用工具链性能预计可提升50%以上
![geekbench5](./assets/benchmark/geekbench5.png)
https://browser.geekbench.com/v5/cpu/compare/21100603?baseline=21092115
## 7-Zip LZMA
[7-Zip LZMA Benchmark](https://7-cpu.com/)
![7z](./assets/benchmark/7z.png)
## OpenSSL
```bash
openssl speed -evp aes-256-cbc
openssl speed -evp aes-256-gcm
openssl speed -evp sha1
openssl speed -evp sha256
```
| type | 16bytes | 64bytes | 256bytes | 1024bytes | 8192bytes | 16384bytes |
| --------------------------------------------- | --------- | --------- | --------- | ---------- | ---------- | ---------- |
| <p style="white-space:nowrap">AES-256-CBC</p> | 29206.05k | 36957.73k | 39648.85k | 40407.72k | 40624.13k | 40768.21k |
| <p style="white-space:nowrap">AES-256-GCM</p> | 24610.57k | 28191.29k | 29459.29k | 29727.06k | 29911.72k | 29949.95k |
| <p style="white-space:nowrap">sha1</p> | 9428.03k | 30591.02k | 72920.06k | 113164.63k | 135271.77k | 137052.16k |
| <p style="white-space:nowrap">sha256</p> | 6206.94k | 17151.38k | 34806.19k | 47151.10k | 52559.87k | 53163.07k |
## LLVM
编译脚本使用[scriptlets](https://github.com/AOSC-Dev/scriptlets/tree/master/buildbot-benchmark)仓库下的 `buildbot-benchmark.bash`CPU频率为1.843Ghz内存为16G。
编译用时:
```text
real 265m50.172s
user 980m15.164s
sys 60m51.329s
```
## 其它
---
title: CPU 跑分测试
keywords: Linux, Lichee, TH1520, SBC, RISCV, benchmark
update:
- date: 2023-05-08
version: v1.0
author: wonder
content:
- Release docs
---
## Dhrystone
平头哥官方数据C910 为 5.6 分左右。
![dmips](./assets/benchmark/dmips.png)
## CoreMarks
测试参数配置:
`-funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-imm`
使用公版工具链GCC 版本为`13.1.0`的测试结果1.85GHz
```txt
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 11989
Total time (secs): 11.989000
Iterations/Sec : 9175.077154
Iterations : 110000
Compiler version : GCC13.1.0
Compiler flags : -O2 -DPERFORMANCE_RUN=1 -lrt -funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-im
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x33ff
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 9175.077154 / GCC13.1.0 -O2 -DPERFORMANCE_RUN=1 -lrt -funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-im / Heap
```
使用平头哥专用工具链GCC 版本为`10.4.0`的测试结果1.85GHz
```txt
2K performance run parameters for coremark.
CoreMark Size : 666
Total ticks : 15129
Total time (secs): 15.129000
Iterations/Sec : 13219.644392
Iterations : 200000
Compiler version : GCC10.4.0
Compiler flags : -O2 -march=rv64gv0p7_zfh_xtheadc -O3 -funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-imm -DPERFORMANCE_RUN=1 -lrt
Memory location : Please put data memory location here
(e.g. code in flash, data on heap etc)
seedcrc : 0xe9f5
[0]crclist : 0xe714
[0]crcmatrix : 0x1fd7
[0]crcstate : 0x8e3a
[0]crcfinal : 0x4983
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 13219.644392 / GCC10.4.0 -O2 -march=rv64gv0p7_zfh_xtheadc -O3 -funroll-all-loops -finline-limit=500 -fgcse-sm -fno-schedule-insns -msignedness-cmpiv -fno-code-hoisting -mno-thread-jumps1 -mno-iv-adjust-addr-cost -mno-expand-split-imm -DPERFORMANCE_RUN=1 -lrt / Heap -lrt / Heap
```
![coremarks](./assets/benchmark/coremarks.png)
## Geekbench5
> 这里的测试使用公版工具链若使用thead专用工具链性能预计可提升50%以上
![geekbench5](./assets/benchmark/geekbench5.png)
https://browser.geekbench.com/v5/cpu/compare/21100603?baseline=21092115
## 7-Zip LZMA
[7-Zip LZMA Benchmark](https://7-cpu.com/)
![7z](./assets/benchmark/7z.png)
## OpenSSL
```bash
openssl speed -evp aes-256-cbc
openssl speed -evp aes-256-gcm
openssl speed -evp sha1
openssl speed -evp sha256
```
| type | 16bytes | 64bytes | 256bytes | 1024bytes | 8192bytes | 16384bytes |
| --------------------------------------------- | --------- | --------- | --------- | ---------- | ---------- | ---------- |
| <p style="white-space:nowrap">AES-256-CBC</p> | 29206.05k | 36957.73k | 39648.85k | 40407.72k | 40624.13k | 40768.21k |
| <p style="white-space:nowrap">AES-256-GCM</p> | 24610.57k | 28191.29k | 29459.29k | 29727.06k | 29911.72k | 29949.95k |
| <p style="white-space:nowrap">sha1</p> | 9428.03k | 30591.02k | 72920.06k | 113164.63k | 135271.77k | 137052.16k |
| <p style="white-space:nowrap">sha256</p> | 6206.94k | 17151.38k | 34806.19k | 47151.10k | 52559.87k | 53163.07k |
## LLVM
编译脚本使用[scriptlets](https://github.com/AOSC-Dev/scriptlets/tree/master/buildbot-benchmark)仓库下的 `buildbot-benchmark.bash`CPU频率为1.843Ghz内存为16G。
编译用时:
```text
real 265m50.172s
user 980m15.164s
sys 60m51.329s
```
## 其它
欢迎投稿~ 投稿接受后可得¥5150$1~20优惠券

View File

@@ -1,30 +1,30 @@
import cv2
# 打开摄像头
cap = cv2.VideoCapture(0)
# 检查是否成功打开摄像头
if not cap.isOpened():
print("无法打开摄像头")
exit()
# 循环读取摄像头的每一帧图像
while True:
# 从摄像头中获取一帧图像
ret, frame = cap.read()
# 检查是否读取成功
if not ret:
print("无法获取图像")
break
# 显示图像
cv2.imshow("USB Camera", frame)
# 等待按下 ESC 键退出
if cv2.waitKey(1) == 27:
break
# 释放摄像头并关闭所有窗口
cap.release()
cv2.destroyAllWindows()
import cv2
# 打开摄像头
cap = cv2.VideoCapture(0)
# 检查是否成功打开摄像头
if not cap.isOpened():
print("无法打开摄像头")
exit()
# 循环读取摄像头的每一帧图像
while True:
# 从摄像头中获取一帧图像
ret, frame = cap.read()
# 检查是否读取成功
if not ret:
print("无法获取图像")
break
# 显示图像
cv2.imshow("USB Camera", frame)
# 等待按下 ESC 键退出
if cv2.waitKey(1) == 27:
break
# 释放摄像头并关闭所有窗口
cap.release()
cv2.destroyAllWindows()

View File

@@ -1,265 +1,265 @@
# LicheePi 4A 基础上手
## 需要的配件
为了更容易地使用 LicheePi 4A需要准备以下的配件:
- HDMI 显示器,或者与 LicheePi 4A 拍套售卖的显示屏;图形化操作系统很方便操作。
- 键盘和鼠标;用来操作图形化系统。
- 电源适配器;最好购买与 LicheePi 4A 配套的电源适配器;这会给 LicheePi 4A 提供足够的供电。
## 烧录系统
### 获取镜像
百度网盘:[点我](https://pan.baidu.com/s/1jnjz0KO_xnO5R8tWlXtx0A)
### 烧录系统
烧录镜像需要使用
参考https://gitee.com/thead-yocto/light_deploy_images
## 串口登录
20230423 记录:
> 当前图形化系统显示驱动有一些问题,先使用串口登录到系统后,删除 `/lib/libGLESv1_CM_PVR_MESA.so` 和`/lib/libGLESv2_PVR_MESA.so` 两个文件后,可以流畅的使用图形化系统了
使用串口连接上底板上 GPIO 的 `U0-RX``U0-TX`,然后打开串口软件,`Windows` 上可以使用 `mobaxterm``Linux` 系统可以使用 `minicom`
设置波特率 `115200` 后打开选择并打开连接在电脑上的串口端口,然后在打开串口后的终端里可以敲击几次 **回车键** 来看看终端有没有反应.
![usage_serial_login_test](./assets/usage/usage_serial_login_test.png)
如果没有反应:
1. 检查 Lichee Pi 4A 的供电情况;如果底板 TypeC 附近的 LED 亮起来,说明供电正常。
2. 检查串口引脚接线情况;可以更换 `TX``RX` 接线来尝试排除串口接线错误导致串口不能正常通信的情况
3. 检查系统烧录情况;在底板 TypeC 接口与天线接口之间有一个复位按键,尝试按下后可以从串口终端中开到启动信息日志;多次重启说明系统有缺失,需要重新烧录镜像。
输入用户名 `sipeed`,密码 `licheepi` 就可以登录进系统了。
登录系统后,使用 `rm /lib/libGLESv1_CM_PVR_MESA.so``rm /lib/libGLESv2_PVR_MESA.so` 命令来删除两处文件,暂时解决图形化系统卡顿的情况。
![usage_login_remove_gpu_file](./assets/usage/usage_login_remove_gpu_file.png)
## 登录系统
将 Lichee Pi 4A 连接上显示器后,可以看到图形化交互界面了。
在登录界面,输入用户名 `sipeed`,密码 `licheepi` 就可以登录进系统了。
> 2023 年 4 月 25 日更新镜像的登录密码为 `licheepi`
![usage_login_userpasserward](./assets/usage/usage_login_userpasserward.png)
## 打开命令行
在 Lichee Pi 4A 的 Debian 图形化系统中,使用快捷键 `Ctrl` + `Alt` + `T` 三个组合键可以直接打开命令行终端,来快速方便地操作系统。
![usage_debian_terminal_shell_hotkey](./assets/usage/usage_debian_terminal_shell_hotkey.png)
## 控制风扇
在 Lichee Pi 4A 上,风扇是通过 PWM 来控制的,使用
## 连接网络
### 连接有线网络
Lichee Pi 4A 由两个千兆网络接口;将已经接通网络的网线插入到 Lichee Pi 4A 的网络接口中节能实现连接有线网络了。
<table>
<tr>
<td>插上网线之前</td>
<td>插上网线之后</td>
</tr>
<tr>
<td><img src="./assets/usage/usage_debian_ethernet_port_disconnect_one.png" alt="usage_debian_ethernet_port_connect_one"></td>
<td><img src="./assets/usage/usage_debian_ethernet_port_connect_one.png" alt="usage_debian_ethernet_port_connect_one"></td>
</tr>
<tr>
<td colspan=2> 上面两张图对比可以看到:在接上网线前,系统中 <code>Ethernet Network</code> 下面显示着 <code>disconnected</code>, 接上网线后显示 <code>Wired connection </code></td>
</tr>
</table>
### 连接无线网络
Lichee Pi 4A 板载无线模组,支持蓝牙和 wifi 。
从状态栏中的 `Avaliable networks` 中查看自己想要连接到的无线网络,输入密码之后就自动连接上了。
<table>
<tr>
<td colspan=2><img src="./assets/usage/usage_debian_select_wireless_network.png" alt="usage_debian_select_wireless_network"></td>
</tr>
<tr>
<td><img src="./assets/usage/usage_debian_wireless_network_password.png" alt="usage_debian_wireless_network_password"></td>
<td><img src="./assets/usage/usage_debian_wireless_network_connected.png" alt="usage_debian_wireless_network_connected"></td>
</tr>
</table>
在输入密码的弹出窗口中,`Wi-Fi adapter` 中的两个选项都能用来链接无线网络,选择一个即可。
<!-- ## 连接蓝牙 -->
## 测试 USB 接口
使用桌面系统时,键盘鼠标正常使用就说明 USB 是正常的。
当然,只有命令行终端时,使用 `lsusb` 命令可以查看当前板卡上所连接的 USB 设备。
如下图,箭头所指的是已经接上 Lichee Pi 4A 的键盘。
![usage_debian_lsusb_list_device](./assets/usage/usage_debian_lsusb_list_device.png)
## 挂载 U 盘
除了上面使用 `lsusb` 来查看 USB 接口的连接情况外,也可以使用 `dmesg` 命令来查看内核信息,进一步查看详细信息。
将一个 U 盘插入 Lichee Pi 4A 的 USB 口后,可以在命令终端窗口使用 `dmesg` 查看板卡硬件变动信息。
如下是连接 U 盘后,使用 `dmesg` 在命令行终端看到的最新信息(截取)。
![usage_debian_udisk_dmesg](./assets/usage/usage_debian_udisk_dmesg.png)
上面的信息显示出了板卡的外设更改信息;从中可以看到有一个大容量 USB 存储设备连接到了 Lichee Pi 4A。
使用命令 `cat /proc/partitions | grep "sd*"` 命令可以查看到 U 内部的分区个数
![usage_debian_udisk_partition_detail](./assets/usage/usage_debian_udisk_partition_detail.png)
以上面的结果为例,其中 `sda` 指代的是整个 U 盘,`sda1``sda2` 表示的是 U 盘里面的两个分区。
先在桌面系统创建一个文件夹,然后使用 `mount` 命令将 U 盘的某一分区挂载到该文件夹下。
```bash
mkdir ~/Desktop/udisk # 在桌面创建一个名为 udisk 的文件夹
mount /dev/sda2 ~/Desktop/udisk # 挂载 U 盘的 sda2 分区到 udisk 文件夹
```
<table>
<tr>
<td> 运行命令前 </td>
<td> 运行命令后 </td>
</tr>
<tr>
<td style="white-space:nowrap"><img src="./assets/usage/usage_debian_udisk_before_mount.png" alt="usage_debian_udisk_before_mount"></td>
<td style="white-space:nowrap"><img src="./assets/usage/usage_debian_udisk_after_mount.png" alt="usage_debian_udisk_after_mount"></td>
</tr>
<tr>
<td colspan=2> 运行命令后桌面新增了一个名为 udisk 的文件夹,使用鼠标双击打开 udisk 文件夹后可以看到文件夹里面的内容与 U 盘里面的实际内容一致 <img src="./assets/usage/usage_debian_udisk_open_folder.png" alt="usage_debian_udisk_open_folder"></td>
</tr>
</table>
## 挂载 TF 卡
将 tf 卡插入到 Lichee Pi 4A 底板,使用
## 音频测试
### 测试音频播放
Lichee Pi 4A 底板上有扬声器接口和 3.5mm 音频接口两处可以播放音频的地方。
要注意的是 3.5mm 音频接口和扬声器接口是互斥的:接上 3.5mm 音频设备后,板载的扬声器接口是被禁用的;断开 3.5mm 音频设备才能使用板载的扬声器。
系统内置了一些 wav 音频文件用来测试,直接使用 `aplay` 命令来播放音频文件就可以。
![usage_debian_list_audio_file](./assets/usage/usage_debian_list_audio_file.png)
运行下面的命令后,可以从耳机孔音频设备中听到 `Rear` `Left` 两个单词的声音。
```bash
aplay /usr/share/sounds/alsa/Rear_Left.wav
```
## 设置中文显示
## 安装中文输入法
## 更换软件源
在 Debian 系统中,可以使用 apt (Advanced Packaging Tool) 来进行软件的安装。
安装软件的时候,会从系统指定的软件网站中搜索并下载目标软件,当目标网站访问困难(比如服务器距离太远或者服务器网络不佳)时,可以手动设置编辑软件源网站,改成距离自己当前最近的源,来减少下载时间。
软件源默认使用 `/etc/apt/sources.list` 文件里面的内容,有额外需要的话可以自行更改。但是要注意需要使用支持 Risc-V 架构的软件源。
![usage_debian_apt_change_source](./assets/usage/usage_debian_apt_change_source.png)
## 升级软件
使用 `sudo apt update` 可以更新软件列表,一般在更换软件源之后需要使用这个命令。
然后使用 `sudo apt upgrade package_name` 可以更新名称为 `package_name` 的软件。
比如下面是使用 `sudo apt upgrade vim` 来更新 `vim` 这个软件的示例
![usage_debian_apt_upgrade_vim](./assets/usage/usage_debian_apt_upgrade_vim.png)
## 安装程序
可以借助于 apt 命令来安装软件;比如使用 `sudo apt install package_name` 命令来安装 `package_name`,下面是使用 apt 来安装 `net-tools` 的例子。
![usage_debian_apt_install_nettools](./assets/usage/usage_debian_apt_install_nettools.png)
安装 `net-tools` 后,就可以使用 `ifconfig` 命令了。
![usage_debian_ifconfig_result_list](./assets/usage/usage_debian_ifconfig_result_list.png)
箭头指向的地方就是常说的 IP 地址了。
## 更改开机 LOGO
## 操作 GPIO
> 进阶使用
## 获取设备 IP
## VNC 远程桌面
## 通过 SSH 登录到系统
### 远程登录到系统
### 远程拷贝文件
## Samba 文件共享
Samba 基于SMB/CIFS网络协议不同设备之间可以通过该协议共享访问文件、串行端口等这里通过它将 Windows 10 系统设备上的共享文件夹挂载至 Lichee Pi 4A。
下面的命令会自动安装 Samba 作为服务器和客户端的全部必需组件:
```bash
sudo apt install samba samba-common-bin smbclient cifs-utils
```
## 搭建 FTP 服务
## 配置 NGINX
## 安装 Docker
## 测试 GPU
## 编程语言体验
### C
### Java
### Python
## 使用 Python 进行串口通信
## 编译体验 Opencv
## 编译体验 Wiringpi
## 配置开机脚本
# LicheePi 4A 基础上手
## 需要的配件
为了更容易地使用 LicheePi 4A需要准备以下的配件:
- HDMI 显示器,或者与 LicheePi 4A 拍套售卖的显示屏;图形化操作系统很方便操作。
- 键盘和鼠标;用来操作图形化系统。
- 电源适配器;最好购买与 LicheePi 4A 配套的电源适配器;这会给 LicheePi 4A 提供足够的供电。
## 烧录系统
### 获取镜像
百度网盘:[点我](https://pan.baidu.com/s/1jnjz0KO_xnO5R8tWlXtx0A)
### 烧录系统
烧录镜像需要使用
参考https://gitee.com/thead-yocto/light_deploy_images
## 串口登录
20230423 记录:
> 当前图形化系统显示驱动有一些问题,先使用串口登录到系统后,删除 `/lib/libGLESv1_CM_PVR_MESA.so` 和`/lib/libGLESv2_PVR_MESA.so` 两个文件后,可以流畅的使用图形化系统了
使用串口连接上底板上 GPIO 的 `U0-RX``U0-TX`,然后打开串口软件,`Windows` 上可以使用 `mobaxterm``Linux` 系统可以使用 `minicom`
设置波特率 `115200` 后打开选择并打开连接在电脑上的串口端口,然后在打开串口后的终端里可以敲击几次 **回车键** 来看看终端有没有反应.
![usage_serial_login_test](./assets/usage/usage_serial_login_test.png)
如果没有反应:
1. 检查 Lichee Pi 4A 的供电情况;如果底板 TypeC 附近的 LED 亮起来,说明供电正常。
2. 检查串口引脚接线情况;可以更换 `TX``RX` 接线来尝试排除串口接线错误导致串口不能正常通信的情况
3. 检查系统烧录情况;在底板 TypeC 接口与天线接口之间有一个复位按键,尝试按下后可以从串口终端中开到启动信息日志;多次重启说明系统有缺失,需要重新烧录镜像。
输入用户名 `sipeed`,密码 `licheepi` 就可以登录进系统了。
登录系统后,使用 `rm /lib/libGLESv1_CM_PVR_MESA.so``rm /lib/libGLESv2_PVR_MESA.so` 命令来删除两处文件,暂时解决图形化系统卡顿的情况。
![usage_login_remove_gpu_file](./assets/usage/usage_login_remove_gpu_file.png)
## 登录系统
将 Lichee Pi 4A 连接上显示器后,可以看到图形化交互界面了。
在登录界面,输入用户名 `sipeed`,密码 `licheepi` 就可以登录进系统了。
> 2023 年 4 月 25 日更新镜像的登录密码为 `licheepi`
![usage_login_userpasserward](./assets/usage/usage_login_userpasserward.png)
## 打开命令行
在 Lichee Pi 4A 的 Debian 图形化系统中,使用快捷键 `Ctrl` + `Alt` + `T` 三个组合键可以直接打开命令行终端,来快速方便地操作系统。
![usage_debian_terminal_shell_hotkey](./assets/usage/usage_debian_terminal_shell_hotkey.png)
## 控制风扇
在 Lichee Pi 4A 上,风扇是通过 PWM 来控制的,使用
## 连接网络
### 连接有线网络
Lichee Pi 4A 由两个千兆网络接口;将已经接通网络的网线插入到 Lichee Pi 4A 的网络接口中节能实现连接有线网络了。
<table>
<tr>
<td>插上网线之前</td>
<td>插上网线之后</td>
</tr>
<tr>
<td><img src="./assets/usage/usage_debian_ethernet_port_disconnect_one.png" alt="usage_debian_ethernet_port_connect_one"></td>
<td><img src="./assets/usage/usage_debian_ethernet_port_connect_one.png" alt="usage_debian_ethernet_port_connect_one"></td>
</tr>
<tr>
<td colspan=2> 上面两张图对比可以看到:在接上网线前,系统中 <code>Ethernet Network</code> 下面显示着 <code>disconnected</code>, 接上网线后显示 <code>Wired connection </code></td>
</tr>
</table>
### 连接无线网络
Lichee Pi 4A 板载无线模组,支持蓝牙和 wifi 。
从状态栏中的 `Avaliable networks` 中查看自己想要连接到的无线网络,输入密码之后就自动连接上了。
<table>
<tr>
<td colspan=2><img src="./assets/usage/usage_debian_select_wireless_network.png" alt="usage_debian_select_wireless_network"></td>
</tr>
<tr>
<td><img src="./assets/usage/usage_debian_wireless_network_password.png" alt="usage_debian_wireless_network_password"></td>
<td><img src="./assets/usage/usage_debian_wireless_network_connected.png" alt="usage_debian_wireless_network_connected"></td>
</tr>
</table>
在输入密码的弹出窗口中,`Wi-Fi adapter` 中的两个选项都能用来链接无线网络,选择一个即可。
<!-- ## 连接蓝牙 -->
## 测试 USB 接口
使用桌面系统时,键盘鼠标正常使用就说明 USB 是正常的。
当然,只有命令行终端时,使用 `lsusb` 命令可以查看当前板卡上所连接的 USB 设备。
如下图,箭头所指的是已经接上 Lichee Pi 4A 的键盘。
![usage_debian_lsusb_list_device](./assets/usage/usage_debian_lsusb_list_device.png)
## 挂载 U 盘
除了上面使用 `lsusb` 来查看 USB 接口的连接情况外,也可以使用 `dmesg` 命令来查看内核信息,进一步查看详细信息。
将一个 U 盘插入 Lichee Pi 4A 的 USB 口后,可以在命令终端窗口使用 `dmesg` 查看板卡硬件变动信息。
如下是连接 U 盘后,使用 `dmesg` 在命令行终端看到的最新信息(截取)。
![usage_debian_udisk_dmesg](./assets/usage/usage_debian_udisk_dmesg.png)
上面的信息显示出了板卡的外设更改信息;从中可以看到有一个大容量 USB 存储设备连接到了 Lichee Pi 4A。
使用命令 `cat /proc/partitions | grep "sd*"` 命令可以查看到 U 内部的分区个数
![usage_debian_udisk_partition_detail](./assets/usage/usage_debian_udisk_partition_detail.png)
以上面的结果为例,其中 `sda` 指代的是整个 U 盘,`sda1``sda2` 表示的是 U 盘里面的两个分区。
先在桌面系统创建一个文件夹,然后使用 `mount` 命令将 U 盘的某一分区挂载到该文件夹下。
```bash
mkdir ~/Desktop/udisk # 在桌面创建一个名为 udisk 的文件夹
mount /dev/sda2 ~/Desktop/udisk # 挂载 U 盘的 sda2 分区到 udisk 文件夹
```
<table>
<tr>
<td> 运行命令前 </td>
<td> 运行命令后 </td>
</tr>
<tr>
<td style="white-space:nowrap"><img src="./assets/usage/usage_debian_udisk_before_mount.png" alt="usage_debian_udisk_before_mount"></td>
<td style="white-space:nowrap"><img src="./assets/usage/usage_debian_udisk_after_mount.png" alt="usage_debian_udisk_after_mount"></td>
</tr>
<tr>
<td colspan=2> 运行命令后桌面新增了一个名为 udisk 的文件夹,使用鼠标双击打开 udisk 文件夹后可以看到文件夹里面的内容与 U 盘里面的实际内容一致 <img src="./assets/usage/usage_debian_udisk_open_folder.png" alt="usage_debian_udisk_open_folder"></td>
</tr>
</table>
## 挂载 TF 卡
将 tf 卡插入到 Lichee Pi 4A 底板,使用
## 音频测试
### 测试音频播放
Lichee Pi 4A 底板上有扬声器接口和 3.5mm 音频接口两处可以播放音频的地方。
要注意的是 3.5mm 音频接口和扬声器接口是互斥的:接上 3.5mm 音频设备后,板载的扬声器接口是被禁用的;断开 3.5mm 音频设备才能使用板载的扬声器。
系统内置了一些 wav 音频文件用来测试,直接使用 `aplay` 命令来播放音频文件就可以。
![usage_debian_list_audio_file](./assets/usage/usage_debian_list_audio_file.png)
运行下面的命令后,可以从耳机孔音频设备中听到 `Rear` `Left` 两个单词的声音。
```bash
aplay /usr/share/sounds/alsa/Rear_Left.wav
```
## 设置中文显示
## 安装中文输入法
## 更换软件源
在 Debian 系统中,可以使用 apt (Advanced Packaging Tool) 来进行软件的安装。
安装软件的时候,会从系统指定的软件网站中搜索并下载目标软件,当目标网站访问困难(比如服务器距离太远或者服务器网络不佳)时,可以手动设置编辑软件源网站,改成距离自己当前最近的源,来减少下载时间。
软件源默认使用 `/etc/apt/sources.list` 文件里面的内容,有额外需要的话可以自行更改。但是要注意需要使用支持 Risc-V 架构的软件源。
![usage_debian_apt_change_source](./assets/usage/usage_debian_apt_change_source.png)
## 升级软件
使用 `sudo apt update` 可以更新软件列表,一般在更换软件源之后需要使用这个命令。
然后使用 `sudo apt upgrade package_name` 可以更新名称为 `package_name` 的软件。
比如下面是使用 `sudo apt upgrade vim` 来更新 `vim` 这个软件的示例
![usage_debian_apt_upgrade_vim](./assets/usage/usage_debian_apt_upgrade_vim.png)
## 安装程序
可以借助于 apt 命令来安装软件;比如使用 `sudo apt install package_name` 命令来安装 `package_name`,下面是使用 apt 来安装 `net-tools` 的例子。
![usage_debian_apt_install_nettools](./assets/usage/usage_debian_apt_install_nettools.png)
安装 `net-tools` 后,就可以使用 `ifconfig` 命令了。
![usage_debian_ifconfig_result_list](./assets/usage/usage_debian_ifconfig_result_list.png)
箭头指向的地方就是常说的 IP 地址了。
## 更改开机 LOGO
## 操作 GPIO
> 进阶使用
## 获取设备 IP
## VNC 远程桌面
## 通过 SSH 登录到系统
### 远程登录到系统
### 远程拷贝文件
## Samba 文件共享
Samba 基于SMB/CIFS网络协议不同设备之间可以通过该协议共享访问文件、串行端口等这里通过它将 Windows 10 系统设备上的共享文件夹挂载至 Lichee Pi 4A。
下面的命令会自动安装 Samba 作为服务器和客户端的全部必需组件:
```bash
sudo apt install samba samba-common-bin smbclient cifs-utils
```
## 搭建 FTP 服务
## 配置 NGINX
## 安装 Docker
## 测试 GPU
## 编程语言体验
### C
### Java
### Python
## 使用 Python 进行串口通信
## 编译体验 Opencv
## 编译体验 Wiringpi
## 配置开机脚本
### 开机自动挂载 U 盘

View File

@@ -1,54 +1,54 @@
---
title: 基础操作
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
SLogic Combo 8共有4个功能SLogic、CKLink Debugger、DAP-Link Debugger、USB2UART。这篇文档用来指导如何选择功能。
## 按键功能
上电后,**按下按键**切换功能,切换成功后可以看到**指示灯变化**。
![slogic_btn](./assets/basic_operation/slogic_btn.png)
(上:红框是切换按键的位置)
> 注意切换功能时切换间隔不要小于100ms否则可能导致模块进入boot模式现象会看到灯不再变化。如果遇到了该情况尝试重新上电即可~
## 指示灯颜色与功能
每种功能对应一种颜色,通过指示灯的颜色来判断当前启用的功能
| 功能 | Slogic | DAPLink | USB2UART | CKLink |
| ---------- | ------ | ------- | -------- | ------ |
| 指示灯颜色 | 蓝色 | 绿色 | 红色 | 黄色 |
(上:指示灯颜色/功能对应表)
## 面板信息
通过面板信息可以查阅当前的功能和对应线序:
- 左侧是**CKLink黄色**和**DAPLink绿色**线序,它们线序相似所以放到了一起。
- 中间是**UART红色**线序。
- 右侧是**SLogic蓝色**线序。
![slogic_panel](./assets/basic_operation/slogic_panel.png)
(上:颜色/功能/线序对应图)
举个例子:
1. 如果要使用SLogic功能那么需要按下按键将指示灯切换为蓝色就可以切换到SLogic功能通过面板的蓝色字体下对应的线序找到SLogic的引脚线序。
2. 如果要使用UART功能那么需要按下按键将指示灯切换为红色就可以切换到UART功能通过面板的红色字体下对应的线序找到UART的引脚线序。
---
title: 基础操作
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
SLogic Combo 8共有4个功能SLogic、CKLink Debugger、DAP-Link Debugger、USB2UART。这篇文档用来指导如何选择功能。
## 按键功能
上电后,**按下按键**切换功能,切换成功后可以看到**指示灯变化**。
![slogic_btn](./assets/basic_operation/slogic_btn.png)
(上:红框是切换按键的位置)
> 注意切换功能时切换间隔不要小于100ms否则可能导致模块进入boot模式现象会看到灯不再变化。如果遇到了该情况尝试重新上电即可~
## 指示灯颜色与功能
每种功能对应一种颜色,通过指示灯的颜色来判断当前启用的功能
| 功能 | Slogic | DAPLink | USB2UART | CKLink |
| ---------- | ------ | ------- | -------- | ------ |
| 指示灯颜色 | 蓝色 | 绿色 | 红色 | 黄色 |
(上:指示灯颜色/功能对应表)
## 面板信息
通过面板信息可以查阅当前的功能和对应线序:
- 左侧是**CKLink黄色**和**DAPLink绿色**线序,它们线序相似所以放到了一起。
- 中间是**UART红色**线序。
- 右侧是**SLogic蓝色**线序。
![slogic_panel](./assets/basic_operation/slogic_panel.png)
(上:颜色/功能/线序对应图)
举个例子:
1. 如果要使用SLogic功能那么需要按下按键将指示灯切换为蓝色就可以切换到SLogic功能通过面板的蓝色字体下对应的线序找到SLogic的引脚线序。
2. 如果要使用UART功能那么需要按下按键将指示灯切换为红色就可以切换到UART功能通过面板的红色字体下对应的线序找到UART的引脚线序。
好的,现在你已经可以切换到你需要的功能了,进入下一步使用吧~

View File

@@ -1,84 +1,84 @@
---
title: 常见问题(FAQ)
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-09-12
version: v0.1
author: lxo
content:
- Release docs
---
以下按照Q&A的形式列举了一些常见的问题使用过程遇到任何问题时请在下文中尝试寻找解决方法如果上述记录并没有解决你的问题可以尝试在[社区](https://maixhub.com/discussion)中反馈该问题,合理的问题会有技术人员或其他开发者为您解答。
## 综合问题
### 使用逻辑分析仪/DAPLink/CKLink/串口模块时有部分功能异常
**A:**请优先在Q&A中尝试找到并解决你的问题如果仍有问题则点击[这里](./update_firmware.md)更新固件后再尝试
### 按下按键后,指示灯没有变化?
**A:**检查是否按下的频率太快按下按键的间隔不要小于100ms否则可能导致模块进入boot模式现象会看到灯不再变化。如果遇到了该情况尝试重新上电即可恢复
## 逻辑分析仪
### 点击run后弹窗提示"device closed but should be open"
![image-20230816113213933](./assets/use_logic_function/tips_capture_failed.png)
**A:**这可能是接触不稳定导致设备断连了,尝试重新插拔设备后再重新连接即可
### 使用8通道采集时发现D7通道在悬空时也会出现波形
**A:**这是一个待解决的问题但这个问题不会影响采集波形给D7通道接入外部信号后仍然可以正常采集波形。如果不需要这个通道时也可以隐藏这个通道很抱歉给您带来了困扰。
### 波形采集时,波形显示窗口中的波形和实际的波形不一致
**A:**请确保将逻辑分析仪的GND线连接到了目标设备的GND并且确保GND线离待测点的位置越近越好。要知道即使是1cm的距离中间也可能有很多元器件会干扰信号所以哪怕是更近1cm也有可能让信号质量更好。
### 逻辑分析仪无法长时间采样
**A:**有多种情况影响无法长时间采样:
**情况1**采样点数和采样率设置不正确导致采样时间很小,采样时间(单位:s)=采样点数/采样率,请确保采样点数和采样率设置正确。
**情况2**PC性能的影响。由于PulseView需要使用大量的USB带宽但是如果此时PC本身性能不足也会导致采样时间变短。
**情况3**PC内存的影响。如果一切都正常那么检查一下是否是采样点数设置太大导致内存不足以保存采样数据
## DAPLink
### MDK找不到DAPLink设备
**A:**有可能是MDK版本过低的原因低版本的MDK可能无法识别DAPLink本文测试使用的MDK版本是V5.38。如果MDK版本低导致无法识别DAPLink但是不想升级版本可以参考[这里](https://developer.arm.com/documentation/ka003663/latest/)的方法来更新CMSIS-DAP的调试驱动
### DAPLink模式的串口功能无法正常使用出现回显的情况
**A:**请在更新固件章节中将固件更新到最新版本后再尝试
### DAPLink在烧录固件时报错`Connection refused due to device mismatch!`
![image-20230816113213933](./assets/use_daplink_function/err_device_mismatch.jpg)
**A:**可能是实际芯片型号与芯片包不匹配导致。例如MDK使用`STM32F103`的配置,但实际芯片是`CS32F103`,由于`STM32F103`的IDCODE是**0x1B10417**`CS32F103`的IDCODE是**0x2BA01477**,由此发生设备不匹配导致拒绝连接。解决方法是找到并安装实际芯片的软件包,软件包数量较多,下载方法请自行查找。
### DAPLink在Clion/openocd报错`Unable to find a matching CMSIS-DAP device`
**A:** 可能是默认使用的openocd版本不支持请使用xpack版本的openocd下载链接见https://xpack.github.io/dev-tools/openocd/releases/
## CKLink
None
## 串口模块
### 串口终端无法打开串口
**A:**尝试一下其他的串口助手Windows上可以尝试使用XCOMLinux上可以尝试使用Minicom
---
title: 常见问题(FAQ)
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-09-12
version: v0.1
author: lxo
content:
- Release docs
---
以下按照Q&A的形式列举了一些常见的问题使用过程遇到任何问题时请在下文中尝试寻找解决方法如果上述记录并没有解决你的问题可以尝试在[社区](https://maixhub.com/discussion)中反馈该问题,合理的问题会有技术人员或其他开发者为您解答。
## 综合问题
### 使用逻辑分析仪/DAPLink/CKLink/串口模块时有部分功能异常
**A:**请优先在Q&A中尝试找到并解决你的问题如果仍有问题则点击[这里](./update_firmware.md)更新固件后再尝试
### 按下按键后,指示灯没有变化?
**A:**检查是否按下的频率太快按下按键的间隔不要小于100ms否则可能导致模块进入boot模式现象会看到灯不再变化。如果遇到了该情况尝试重新上电即可恢复
## 逻辑分析仪
### 点击run后弹窗提示"device closed but should be open"
![image-20230816113213933](./assets/use_logic_function/tips_capture_failed.png)
**A:**这可能是接触不稳定导致设备断连了,尝试重新插拔设备后再重新连接即可
### 使用8通道采集时发现D7通道在悬空时也会出现波形
**A:**这是一个待解决的问题但这个问题不会影响采集波形给D7通道接入外部信号后仍然可以正常采集波形。如果不需要这个通道时也可以隐藏这个通道很抱歉给您带来了困扰。
### 波形采集时,波形显示窗口中的波形和实际的波形不一致
**A:**请确保将逻辑分析仪的GND线连接到了目标设备的GND并且确保GND线离待测点的位置越近越好。要知道即使是1cm的距离中间也可能有很多元器件会干扰信号所以哪怕是更近1cm也有可能让信号质量更好。
### 逻辑分析仪无法长时间采样
**A:**有多种情况影响无法长时间采样:
**情况1**采样点数和采样率设置不正确导致采样时间很小,采样时间(单位:s)=采样点数/采样率,请确保采样点数和采样率设置正确。
**情况2**PC性能的影响。由于PulseView需要使用大量的USB带宽但是如果此时PC本身性能不足也会导致采样时间变短。
**情况3**PC内存的影响。如果一切都正常那么检查一下是否是采样点数设置太大导致内存不足以保存采样数据
## DAPLink
### MDK找不到DAPLink设备
**A:**有可能是MDK版本过低的原因低版本的MDK可能无法识别DAPLink本文测试使用的MDK版本是V5.38。如果MDK版本低导致无法识别DAPLink但是不想升级版本可以参考[这里](https://developer.arm.com/documentation/ka003663/latest/)的方法来更新CMSIS-DAP的调试驱动
### DAPLink模式的串口功能无法正常使用出现回显的情况
**A:**请在更新固件章节中将固件更新到最新版本后再尝试
### DAPLink在烧录固件时报错`Connection refused due to device mismatch!`
![image-20230816113213933](./assets/use_daplink_function/err_device_mismatch.jpg)
**A:**可能是实际芯片型号与芯片包不匹配导致。例如MDK使用`STM32F103`的配置,但实际芯片是`CS32F103`,由于`STM32F103`的IDCODE是**0x1B10417**`CS32F103`的IDCODE是**0x2BA01477**,由此发生设备不匹配导致拒绝连接。解决方法是找到并安装实际芯片的软件包,软件包数量较多,下载方法请自行查找。
### DAPLink在Clion/openocd报错`Unable to find a matching CMSIS-DAP device`
**A:** 可能是默认使用的openocd版本不支持请使用xpack版本的openocd下载链接见https://xpack.github.io/dev-tools/openocd/releases/
## CKLink
None
## 串口模块
### 串口终端无法打开串口
**A:**尝试一下其他的串口助手Windows上可以尝试使用XCOMLinux上可以尝试使用Minicom

View File

@@ -1,72 +1,72 @@
---
title: SLogic Combo 8
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
## 简介
SLogic Combo 8是一款兼有逻辑分析仪、CKLink Debugger、DAP-Link Debugger、USB2UART功能的开发工具使用时可以通过按键任意切换功能。
![slogic_combo8_main](./assets/readme/slogic_combo8_main.png)
## 功能参数
### SLogic功能参数
| 逻辑分析仪 | **SLogic Combo 8** |
| --------------------- | ----------------- |
| 最大通道数 | 8CH |
| 最高采样率 | 80M |
| 传输带宽 | 320Mb/s |
| 采样模式 | Stream |
| 典型配置 | 80M@4CH 40M@8CH |
| 信号输入范围 | 03.6V |
| 高低电平门限 | VIH>2V VIL<0.8V |
Windows环境下SLogic Combo 8最大传输带宽160Mb/s典型配置80M@2CH 40M@4CH
### CKLink功能参数
| CKLink | SLogic Combo 8 |
| ------------ | ------------- |
| JTAG时钟速率 | 16M |
| 典型dump速度 | 1200KB/s |
| 调试串口 | 最高20Mbps |
### DAPLink功能参数
| DAPLink | SLogic Combo 8 |
| ------------ | ------------- |
| 调试串口 | 最高20Mbps |
| 典型烧录速度 | 110KB/s |
### UART功能参数
| 高速四串口 | **SLogic Combo 8** |
| ---------- | ----------------- |
| 最高波特率 | 2x20Mbps+2x1Mbps |
| 总带宽 | 42Mbps |
## 开始使用
点击下方链接进入对应章节
[基础操作](./basic_operation.md)
[作为逻辑分析仪使用](./use_logic_function.md)
[作为CKLink使用](./use_cklink_function.md)
[作为DAPLink使用](./use_daplink_function.md)
[作为串口模块使用](./use_fouruart_function.md)
[更新固件](./update_firmware.md)
## 其他链接
[淘宝](https://item.taobao.com/item.htm?spm=a21n57.1.0.0.14dd523cuZ61oI&id=737788586308&ns=1&abbucket=5#detail)
[Sipeed 下载站](https://dl.sipeed.com/shareURL/SLogic/SLogic_combo_8/4_application/Firmware)
[交流论坛](maixhub.com/discussion)
---
title: SLogic Combo 8
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
## 简介
SLogic Combo 8是一款兼有逻辑分析仪、CKLink Debugger、DAP-Link Debugger、USB2UART功能的开发工具使用时可以通过按键任意切换功能。
![slogic_combo8_main](./assets/readme/slogic_combo8_main.png)
## 功能参数
### SLogic功能参数
| 逻辑分析仪 | **SLogic Combo 8** |
| --------------------- | ----------------- |
| 最大通道数 | 8CH |
| 最高采样率 | 80M |
| 传输带宽 | 320Mb/s |
| 采样模式 | Stream |
| 典型配置 | 80M@4CH 40M@8CH |
| 信号输入范围 | 03.6V |
| 高低电平门限 | VIH>2V VIL<0.8V |
Windows环境下SLogic Combo 8最大传输带宽160Mb/s典型配置80M@2CH 40M@4CH
### CKLink功能参数
| CKLink | SLogic Combo 8 |
| ------------ | ------------- |
| JTAG时钟速率 | 16M |
| 典型dump速度 | 1200KB/s |
| 调试串口 | 最高20Mbps |
### DAPLink功能参数
| DAPLink | SLogic Combo 8 |
| ------------ | ------------- |
| 调试串口 | 最高20Mbps |
| 典型烧录速度 | 110KB/s |
### UART功能参数
| 高速四串口 | **SLogic Combo 8** |
| ---------- | ----------------- |
| 最高波特率 | 2x20Mbps+2x1Mbps |
| 总带宽 | 42Mbps |
## 开始使用
点击下方链接进入对应章节
[基础操作](./basic_operation.md)
[作为逻辑分析仪使用](./use_logic_function.md)
[作为CKLink使用](./use_cklink_function.md)
[作为DAPLink使用](./use_daplink_function.md)
[作为串口模块使用](./use_fouruart_function.md)
[更新固件](./update_firmware.md)
## 其他链接
[淘宝](https://item.taobao.com/item.htm?spm=a21n57.1.0.0.14dd523cuZ61oI&id=737788586308&ns=1&abbucket=5#detail)
[Sipeed 下载站](https://dl.sipeed.com/shareURL/SLogic/SLogic_combo_8/4_application/Firmware)
[交流论坛](maixhub.com/discussion)
联系邮箱support@sipeed.com

View File

@@ -1,62 +1,62 @@
---
title: 更新固件
keywords: LogicAnalyzer, debugger, link, tool
update:
- date: 2023-09-01
version: v0.1
author: lxo
content:
- Release docs
---
以下是SLogic Combo 8 更新固件的步骤
## 下载烧录工具和固件
烧录工具:[点击下载](https://dl.sipeed.com/shareURL/SLogic/SLogic_combo_8/4_application/Tools)
固件:[点击下载](https://dl.sipeed.com/shareURL/SLogic/SLogic_combo_8/4_application/Firmware)
烧录工具和固件选择最新版本即可,下载完成后自行解压
> 注:当固件名为`slogic_combo8_pack_202308171404.bin`时日期为2023年08月17日。其他固件的日期命名规则类似。
## 配置烧录工具
1. 启动烧录工具
解压后,烧录工具的根目录下提供了不同系统环境的执行文件。
Windows用户双击`BLDevCube.exe`启动
Linux用户双击`BLDevCube-ubuntu`启动。注意Linux环境需要添加可执行权限`sudo chmod +x BLDevCube-ubuntu`
2. 选择芯片
启动后,选择 **BL616/618** 并点击Finish
![chip_selection](./assets/download_firmware/chip_selection.png)
3. 使能Single Download Options并添加下载好的固件
![config_download_firmware](./assets/download_firmware/config_download_firmware.png)
## 配置设备
让SLogic Combo 8进入烧录模式
![enter_the_burn_mode](./assets/download_firmware/enter_the_burn_mode.png)
操作步骤:
1. 长按按键不松开
2. 重新上电
3. 观察LED灯不亮则操作成功
## 烧录固件
配置串口号和波特率,并点击`Create & Download`即可下载
![download_firmware](./assets/download_firmware/download_firmware.png)
---
title: 更新固件
keywords: LogicAnalyzer, debugger, link, tool
update:
- date: 2023-09-01
version: v0.1
author: lxo
content:
- Release docs
---
以下是SLogic Combo 8 更新固件的步骤
## 下载烧录工具和固件
烧录工具:[点击下载](https://dl.sipeed.com/shareURL/SLogic/SLogic_combo_8/4_application/Tools)
固件:[点击下载](https://dl.sipeed.com/shareURL/SLogic/SLogic_combo_8/4_application/Firmware)
烧录工具和固件选择最新版本即可,下载完成后自行解压
> 注:当固件名为`slogic_combo8_pack_202308171404.bin`时日期为2023年08月17日。其他固件的日期命名规则类似。
## 配置烧录工具
1. 启动烧录工具
解压后,烧录工具的根目录下提供了不同系统环境的执行文件。
Windows用户双击`BLDevCube.exe`启动
Linux用户双击`BLDevCube-ubuntu`启动。注意Linux环境需要添加可执行权限`sudo chmod +x BLDevCube-ubuntu`
2. 选择芯片
启动后,选择 **BL616/618** 并点击Finish
![chip_selection](./assets/download_firmware/chip_selection.png)
3. 使能Single Download Options并添加下载好的固件
![config_download_firmware](./assets/download_firmware/config_download_firmware.png)
## 配置设备
让SLogic Combo 8进入烧录模式
![enter_the_burn_mode](./assets/download_firmware/enter_the_burn_mode.png)
操作步骤:
1. 长按按键不松开
2. 重新上电
3. 观察LED灯不亮则操作成功
## 烧录固件
配置串口号和波特率,并点击`Create & Download`即可下载
![download_firmware](./assets/download_firmware/download_firmware.png)
下载完成后,进度条显示绿框说明下载成功,更新固件完成

View File

@@ -1,55 +1,55 @@
---
title: 作为CKLink使用
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
SLogic Combo 8 具备高速CK-Link功能且速率远超CK-Link Lite接近CK-Link Pro是调试RISC-V芯片的好工具。在此模式下还同时具备一路高速串口20Mbps功能。
准备开始使用CK-LINK
## 开启CKLink功能
按下切换按键,将指示灯切换为黄色
![slogic_led_yellow](./assets/use_cklink_function/slogic_led_yellow.png)
> 验证CKLink功能是否开启的方法:
> Windows环境打开设备管理器Linux环境使用lsusb命令可以找到"CKLink HS"设备
## 开始使用
### 引脚连接
> CKLink和DAPLink线序相似所以放到了一张图里请忽略掉“DAP”
![daplink_cklink_line_order](./assets/use_daplink_function/daplink_cklink_line_order.png)
CKLink模式下可以同时支持一路CKLink和一路UART
- 上图左侧的引脚TXD、RXD、DTR、RTS可以作为串口使用
- 上图右侧的引脚TCK、TDI、TDO、TMS作为CKLink调试使用
### 使用方法
在Windows、Linux系统可以直接参考[使用 CDK + Sipeed RV-Debugger Plus 编译调试](https://bouffalolab.gitee.io/bl_mcu_sdk/get_started/cdk_rv_debugger_plus.html#cdk-sipeed-rv-debugger-plus)和[T-HEAD Debug Server 用户手册](https://occ.t-head.cn/document?temp=introduction-2&slug=t-head-debug-server-user-manual),用法完全一样
#### 使用CDK进行调试
- 点击工具栏上方的`Start/Stop Debugger`按钮进入debug界面如下图所示
![](./assets/use_cklink_function/cklink_cdk_debug.png)
_Debug HellowWorld!_
-`debug`界面下,你可以在左侧的`Register`窗口中查看CPU的内部寄存器数据。同时在右侧的`Peripherals`外设面板中,你可以浏览相应外设寄存器数据。你可以通过顶部菜单栏的`Peripherals->System Viewer`来选择所需的外设。此外在界面上方的工具栏中你会找到相关的调试按钮它们可以用于设置断点、单步调试、逐条指令执行以及全速运行等操作。当然所有这些操作都有相应的快捷键和快速设置方式。如需详细信息请参考CDK帮助文档这里就不再详细展开介绍。
- 点击单步运行按钮,运行代码,即可看到指示光标移动到下一句代码,同时可以看到串口面板中显示输出的 Hello World
#### 使用T-HEAD Debug Server进行调试
> 请[参考](../../maix/m1s/other/start.md)M1s DOCK 上手**第十节 使用JTAG调试**的内容。
---
title: 作为CKLink使用
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
SLogic Combo 8 具备高速CK-Link功能且速率远超CK-Link Lite接近CK-Link Pro是调试RISC-V芯片的好工具。在此模式下还同时具备一路高速串口20Mbps功能。
准备开始使用CK-LINK
## 开启CKLink功能
按下切换按键,将指示灯切换为黄色
![slogic_led_yellow](./assets/use_cklink_function/slogic_led_yellow.png)
> 验证CKLink功能是否开启的方法:
> Windows环境打开设备管理器Linux环境使用lsusb命令可以找到"CKLink HS"设备
## 开始使用
### 引脚连接
> CKLink和DAPLink线序相似所以放到了一张图里请忽略掉“DAP”
![daplink_cklink_line_order](./assets/use_daplink_function/daplink_cklink_line_order.png)
CKLink模式下可以同时支持一路CKLink和一路UART
- 上图左侧的引脚TXD、RXD、DTR、RTS可以作为串口使用
- 上图右侧的引脚TCK、TDI、TDO、TMS作为CKLink调试使用
### 使用方法
在Windows、Linux系统可以直接参考[使用 CDK + Sipeed RV-Debugger Plus 编译调试](https://bouffalolab.gitee.io/bl_mcu_sdk/get_started/cdk_rv_debugger_plus.html#cdk-sipeed-rv-debugger-plus)和[T-HEAD Debug Server 用户手册](https://occ.t-head.cn/document?temp=introduction-2&slug=t-head-debug-server-user-manual),用法完全一样
#### 使用CDK进行调试
- 点击工具栏上方的`Start/Stop Debugger`按钮进入debug界面如下图所示
![](./assets/use_cklink_function/cklink_cdk_debug.png)
_Debug HellowWorld!_
-`debug`界面下,你可以在左侧的`Register`窗口中查看CPU的内部寄存器数据。同时在右侧的`Peripherals`外设面板中,你可以浏览相应外设寄存器数据。你可以通过顶部菜单栏的`Peripherals->System Viewer`来选择所需的外设。此外在界面上方的工具栏中你会找到相关的调试按钮它们可以用于设置断点、单步调试、逐条指令执行以及全速运行等操作。当然所有这些操作都有相应的快捷键和快速设置方式。如需详细信息请参考CDK帮助文档这里就不再详细展开介绍。
- 点击单步运行按钮,运行代码,即可看到指示光标移动到下一句代码,同时可以看到串口面板中显示输出的 Hello World
#### 使用T-HEAD Debug Server进行调试
> 请[参考](../../maix/m1s/other/start.md)M1s DOCK 上手**第十节 使用JTAG调试**的内容。

View File

@@ -1,85 +1,85 @@
---
title: 作为DAPLink使用
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
SLogic Combo 8 具备高速DAP-Link功能适用于各种常规芯片尤其是在Windows下使用IDE调试的STM32等芯片
## 开启DAPLink功能
按下切换按键,将指示灯切换为绿色
![slogic_led_green](./assets/use_daplink_function/slogic_led_green.png)
> 验证DAPLink功能是否开启的方法:
> Windows环境打开设备管理器Linux环境使用lsusb命令可以找到"RV CMSIS-DAP"设备
## 开始使用
以STM32F103C8T6芯片在Windows MDK IDE为例介绍具体使用步骤连接下载、调试固件演示使用的MDK版本为当前最新版V5.38
### 引脚连接
> CKLink和DAPLink线序相似所以放到了一张图里请忽略掉“CK”
![daplink_cklink_line_order](./assets/use_daplink_function/daplink_cklink_line_order.png)
DAPLink模式下可以同时支持一路DAPLink和一路UART
- 上图左侧的引脚TXD、RXD、DTR、RTS可以作为串口使用
- 上图右侧的引脚TCK(SWCLK)、TDI、TDO、TMS(SWDIO)作为DAPLink调试使用
### 使用MDK连接DAPLink
1. 设置Reset Options为SYSRESETREQ
2. 在CMSIS-DAP中找到并寻找RV CMSIS-DAP设备图中 Port 默认为 SW 两线调试,可选 JTAG 4 线调试)
SW 两线调试只需要连接 TCK(SWCLK)及 TMS(SWDIO) 即可。
![cfg_dap_debugger_of_mdk](./assets/use_daplink_function/cfg_dap_debugger_of_mdk.png)
### 使用MDK下载固件
![download_fw_in_mdk](./assets/use_daplink_function/download_fw_in_mdk.png)
### 使用MDK调试固件
![start_debugger_in_mdk](./assets/use_daplink_function/start_debugger_in_mdk.png)
### MDK使用视频
<p align="center">
<video src="./assets/use_daplink_function/slogic_daplink_keil_usage.mp4"
width="100%" controls="controls" autoplay="autoplay"
x5-playsinline=""
playsinline
webkit-playsinline="true"
poster="./assets/use_daplink_function/start_debugger_in_mdk.png"
preload="auto"
>
</video>
</p>
### 使用openocd连接
先前有用户[反映](https://maixhub.com/discussion/100020)clion无法使用Slogic进行调试深入确认后发现是openocd的版本问题。
xpack 版本 openocd 下载链接为https://xpack.github.io/dev-tools/openocd/releases
下载的是 v0.12.0-2 版本运行截图
![](./assets/use_daplink_function/xpack_openocd.png)
来自https://gnutoolchains.com/arm-eabi/openocd 下载的`20231002`版本会出现无法发现Slogic的问题报错截图如下
![](./assets/use_daplink_function/gnu_openocd.png)
![](./assets/use_daplink_function/dap_clion_not_found.jpg)
---
title: 作为DAPLink使用
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
SLogic Combo 8 具备高速DAP-Link功能适用于各种常规芯片尤其是在Windows下使用IDE调试的STM32等芯片
## 开启DAPLink功能
按下切换按键,将指示灯切换为绿色
![slogic_led_green](./assets/use_daplink_function/slogic_led_green.png)
> 验证DAPLink功能是否开启的方法:
> Windows环境打开设备管理器Linux环境使用lsusb命令可以找到"RV CMSIS-DAP"设备
## 开始使用
以STM32F103C8T6芯片在Windows MDK IDE为例介绍具体使用步骤连接下载、调试固件演示使用的MDK版本为当前最新版V5.38
### 引脚连接
> CKLink和DAPLink线序相似所以放到了一张图里请忽略掉“CK”
![daplink_cklink_line_order](./assets/use_daplink_function/daplink_cklink_line_order.png)
DAPLink模式下可以同时支持一路DAPLink和一路UART
- 上图左侧的引脚TXD、RXD、DTR、RTS可以作为串口使用
- 上图右侧的引脚TCK(SWCLK)、TDI、TDO、TMS(SWDIO)作为DAPLink调试使用
### 使用MDK连接DAPLink
1. 设置Reset Options为SYSRESETREQ
2. 在CMSIS-DAP中找到并寻找RV CMSIS-DAP设备图中 Port 默认为 SW 两线调试,可选 JTAG 4 线调试)
SW 两线调试只需要连接 TCK(SWCLK)及 TMS(SWDIO) 即可。
![cfg_dap_debugger_of_mdk](./assets/use_daplink_function/cfg_dap_debugger_of_mdk.png)
### 使用MDK下载固件
![download_fw_in_mdk](./assets/use_daplink_function/download_fw_in_mdk.png)
### 使用MDK调试固件
![start_debugger_in_mdk](./assets/use_daplink_function/start_debugger_in_mdk.png)
### MDK使用视频
<p align="center">
<video src="./assets/use_daplink_function/slogic_daplink_keil_usage.mp4"
width="100%" controls="controls" autoplay="autoplay"
x5-playsinline=""
playsinline
webkit-playsinline="true"
poster="./assets/use_daplink_function/start_debugger_in_mdk.png"
preload="auto"
>
</video>
</p>
### 使用openocd连接
先前有用户[反映](https://maixhub.com/discussion/100020)clion无法使用Slogic进行调试深入确认后发现是openocd的版本问题。
xpack 版本 openocd 下载链接为https://xpack.github.io/dev-tools/openocd/releases
下载的是 v0.12.0-2 版本运行截图
![](./assets/use_daplink_function/xpack_openocd.png)
来自https://gnutoolchains.com/arm-eabi/openocd 下载的`20231002`版本会出现无法发现Slogic的问题报错截图如下
![](./assets/use_daplink_function/gnu_openocd.png)
![](./assets/use_daplink_function/dap_clion_not_found.jpg)
感谢群友`dragonforward`的文档贡献

View File

@@ -1,133 +1,133 @@
---
title: 作为串口模块使用
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
SLogic Combo 8 具备4路独立高速串口功能前两路基于UART可同时达到20Mbps的超高速波特率后两路通过IO模拟最高可达1Mbps。非常适合批量烧录生产测试等场景。
## 开启串口模块功能
按下切换按键,将指示灯切换为红色
![slogic_led_red](./assets/use_fouruart_function/slogic_led_red.png)
> 验证SLogic功能是否开启的方法:
> Windows环境打开设备管理器Linux环境使用lsusb命令可以找到"UARTx4 HS"设备。
## 开始使用
### 引脚连接
![fouruart_line_order](./assets/use_fouruart_function/fouruart_line_order.png)
SLogic Combo 8总共有4个串口UART0和UART1最高支持20M波特率UART3和UART4最高支持1M波特率。
注意:
1. 保证模块与目标设备共地,防止出现乱码等情况。
2. Windows平台的设备号可能是乱序的需要手动尝试来找到对应的串口
### Linux
注意Linux由于系统原因当设备拥有大于一个的ttyACM后Linux会认为其为调制解调器会临时占用发送AT指令。此时无法打开串口会报资源占用设备忙碌属正常现象稍等片刻即可恢复正常。要解决该问题可以添加udev规则来规避该问题,参考以下指令:
```shell
sudo touch /etc/udev/rules.d/49-sipeed.rules
sudo echo "ATTRS{idVendor}==\"359f\", ATTRS{idProduct}==\"3101\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"" > /etc/udev/rules.d/49-sipeed.rules
sudo udevadm control --reload
```
#### 数据收发
Linux可使用picocom或minicom作为串口收发工具安装指令为
```Bash
sudo apt install picocom
sudo apt install minicom
```
以minicom为例使用`CTRL+ALT+T`打开Linux终端输入安装指令将会提示输入该Linux系统管理员用户密码输入密码后回车静待软件包安装完成
![](./assets/use_fouruart_function/minicom_install_uart.png)
完成安装后使用UART0与测试设备进行通信于终端输入命令
```Bash
sudo minicom -b 2000000 -D /dev/ttyACM0
```
-b参数指定所需的波特率与测试设备UART串口设置波特率相同即可
-D参数指定监听的端口号
![](./assets/use_fouruart_function/minicom_uart.png)
命令输入后即与测试设备进行通信,收到信息将于终端进行打印;以及向测试设备发送数据。
#### 串口回传测试:
![](./assets/use_fouruart_function/uart_line_uart.jpg)
(上:串口模块接线图)
回传测试结果:
![](./assets/use_fouruart_function/minicom_test_uart.png)
### Windows
在Windows系统中您可以使用SSCOM、MobaXterm等串口助手作为串口收发工具。以下以**SSCOM**为例演示如何使用SSCOM进行串口通信测试
1. 首先下载SSCOM该软件为开源软件请自行百度下载
2. 下载完成后,解压并启动串口助手。您将看到如下界面:
![SSCOM界面](./assets/use_fouruart_function/sscom_gui.png)
3. 将模块连接到PC上。然后在Windows设备管理器中快捷键`Win + X + M`)查看是否成功连接,以及获取串口号信息
![设备管理器](./assets/use_fouruart_function/sscom_device_manage.png)
由于Windows系统的特性串口号可能会是乱序的。因此您可以按照以下步骤测试对应的串口号
- 连接模块的TX*和RX*引脚(*为0-3
- 设置波特率通常使用115200
- 开启串口
- 逐个尝试不同的端口号设备,点击“发送”按钮,检查是否收到数据,以确认每个端口对应的串口号
![确认串口号](./assets/use_fouruart_function/sscom_determine_port.png)
4. 确认了每个串口的端口号后,您可以在数据输入窗口中输入需要发送的数据。同时,接收到的数据也会显示在窗口中
#### 收发测试
使用SLogic 4xUART模块进行串口通信测试前两路虚拟串口最高速率可达20Mbps。以下以使用SSCOM测试性能为例
##### 测试 1Mbps256kbps512kbps
1. 连接TX2和RX3
2. 启动两个SSCOM实例分别连接到两个串口
3. 将波特率设置为1000000然后开启串口
4. 创建一个256KB的文本文件其中的内容为重复的常见字符
5. 使用SSCOM的文件发送功能选择刚创建的文本文件并发送
6. 另一个SSCOM实例将接收数据并检查接收到的文件内容
以下是1Mbps测试的结果检查文件大小以及数据内容确认1Mbps时收发256kb数据测试成功
![1Mbps测试256KB](./assets/use_fouruart_function/uart_sscom_1mbps_256kb.png)
将文本文件的数据增大至512KB并重复测试确认1Mbps时收发512kb数据测试成功
![](./assets/use_fouruart_function/uart_sscom_1mbps_512kb.png)
##### 测试 20Mbps256kbps
1. 连接TX0和RX1
2. 启动两个SSCOM实例分别连接到两个串口
3. 将波特率设置为20000000然后开启串口
4. 创建一个256KB的文本文件其中的内容为重复的常见字符
5. 使用SSCOM的文件发送功能选择刚创建的文本文件并发送
6. 另一个SSCOM实例将接收数据并检查接收到的文件内容
以下是测试结果截图,可以通过检查文件大小和数据内容来确认测试是否成功
![20Mbps测试](./assets/use_fouruart_function/uart_sscom_20mbps_256kb.png)
---
title: 作为串口模块使用
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
SLogic Combo 8 具备4路独立高速串口功能前两路基于UART可同时达到20Mbps的超高速波特率后两路通过IO模拟最高可达1Mbps。非常适合批量烧录生产测试等场景。
## 开启串口模块功能
按下切换按键,将指示灯切换为红色
![slogic_led_red](./assets/use_fouruart_function/slogic_led_red.png)
> 验证SLogic功能是否开启的方法:
> Windows环境打开设备管理器Linux环境使用lsusb命令可以找到"UARTx4 HS"设备。
## 开始使用
### 引脚连接
![fouruart_line_order](./assets/use_fouruart_function/fouruart_line_order.png)
SLogic Combo 8总共有4个串口UART0和UART1最高支持20M波特率UART3和UART4最高支持1M波特率。
注意:
1. 保证模块与目标设备共地,防止出现乱码等情况。
2. Windows平台的设备号可能是乱序的需要手动尝试来找到对应的串口
### Linux
注意Linux由于系统原因当设备拥有大于一个的ttyACM后Linux会认为其为调制解调器会临时占用发送AT指令。此时无法打开串口会报资源占用设备忙碌属正常现象稍等片刻即可恢复正常。要解决该问题可以添加udev规则来规避该问题,参考以下指令:
```shell
sudo touch /etc/udev/rules.d/49-sipeed.rules
sudo echo "ATTRS{idVendor}==\"359f\", ATTRS{idProduct}==\"3101\", ENV{ID_MM_DEVICE_IGNORE}=\"1\"" > /etc/udev/rules.d/49-sipeed.rules
sudo udevadm control --reload
```
#### 数据收发
Linux可使用picocom或minicom作为串口收发工具安装指令为
```Bash
sudo apt install picocom
sudo apt install minicom
```
以minicom为例使用`CTRL+ALT+T`打开Linux终端输入安装指令将会提示输入该Linux系统管理员用户密码输入密码后回车静待软件包安装完成
![](./assets/use_fouruart_function/minicom_install_uart.png)
完成安装后使用UART0与测试设备进行通信于终端输入命令
```Bash
sudo minicom -b 2000000 -D /dev/ttyACM0
```
-b参数指定所需的波特率与测试设备UART串口设置波特率相同即可
-D参数指定监听的端口号
![](./assets/use_fouruart_function/minicom_uart.png)
命令输入后即与测试设备进行通信,收到信息将于终端进行打印;以及向测试设备发送数据。
#### 串口回传测试:
![](./assets/use_fouruart_function/uart_line_uart.jpg)
(上:串口模块接线图)
回传测试结果:
![](./assets/use_fouruart_function/minicom_test_uart.png)
### Windows
在Windows系统中您可以使用SSCOM、MobaXterm等串口助手作为串口收发工具。以下以**SSCOM**为例演示如何使用SSCOM进行串口通信测试
1. 首先下载SSCOM该软件为开源软件请自行百度下载
2. 下载完成后,解压并启动串口助手。您将看到如下界面:
![SSCOM界面](./assets/use_fouruart_function/sscom_gui.png)
3. 将模块连接到PC上。然后在Windows设备管理器中快捷键`Win + X + M`)查看是否成功连接,以及获取串口号信息
![设备管理器](./assets/use_fouruart_function/sscom_device_manage.png)
由于Windows系统的特性串口号可能会是乱序的。因此您可以按照以下步骤测试对应的串口号
- 连接模块的TX*和RX*引脚(*为0-3
- 设置波特率通常使用115200
- 开启串口
- 逐个尝试不同的端口号设备,点击“发送”按钮,检查是否收到数据,以确认每个端口对应的串口号
![确认串口号](./assets/use_fouruart_function/sscom_determine_port.png)
4. 确认了每个串口的端口号后,您可以在数据输入窗口中输入需要发送的数据。同时,接收到的数据也会显示在窗口中
#### 收发测试
使用SLogic 4xUART模块进行串口通信测试前两路虚拟串口最高速率可达20Mbps。以下以使用SSCOM测试性能为例
##### 测试 1Mbps256kbps512kbps
1. 连接TX2和RX3
2. 启动两个SSCOM实例分别连接到两个串口
3. 将波特率设置为1000000然后开启串口
4. 创建一个256KB的文本文件其中的内容为重复的常见字符
5. 使用SSCOM的文件发送功能选择刚创建的文本文件并发送
6. 另一个SSCOM实例将接收数据并检查接收到的文件内容
以下是1Mbps测试的结果检查文件大小以及数据内容确认1Mbps时收发256kb数据测试成功
![1Mbps测试256KB](./assets/use_fouruart_function/uart_sscom_1mbps_256kb.png)
将文本文件的数据增大至512KB并重复测试确认1Mbps时收发512kb数据测试成功
![](./assets/use_fouruart_function/uart_sscom_1mbps_512kb.png)
##### 测试 20Mbps256kbps
1. 连接TX0和RX1
2. 启动两个SSCOM实例分别连接到两个串口
3. 将波特率设置为20000000然后开启串口
4. 创建一个256KB的文本文件其中的内容为重复的常见字符
5. 使用SSCOM的文件发送功能选择刚创建的文本文件并发送
6. 另一个SSCOM实例将接收数据并检查接收到的文件内容
以下是测试结果截图,可以通过检查文件大小和数据内容来确认测试是否成功
![20Mbps测试](./assets/use_fouruart_function/uart_sscom_20mbps_256kb.png)

View File

@@ -1,229 +1,229 @@
---
title: 作为逻辑分析仪使用
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
## 开启逻辑分析仪功能
按下按键将指示灯切换为蓝色。如下图所示:
![slogic_led_blue](./assets/use_logic_function/slogic_led_blue.png)
> 验证逻辑分析仪功能是否开启:
> Windows环境打开设备管理器Linux环境使用lsusb命令可以找到"USB TO LA"设备
## 开始使用
> 注意:
> 1. Linux环境下SLogic Combo 8最大传输带宽320Mb/s典型配置80M@4CH 40M@8CH。
> 2. Windows环境下SLogic Combo 8最大传输带宽160Mb/s典型配置80M@2CH 40M@4CH。
> 3. 如果上位机启动过程中,设备出现断连的情况,需要重新扫描并连接设备
### 快速使用
#### 引脚连接
![slogic_line_order](./assets/use_logic_function/slogic_line_order.png)
上图为SLogic 8个通道的线序图将目标设备的待测信号点连接至SLogic任意空闲CH端口并确保待测设备的GND与SLogic的GND相连接。
> 注意SLogic的GND线需要离待测点的位置越近越好哪怕更近1cm也可能会增加采样质量
#### 下载和运行上位机
[点击这里下载上位机](https://dl.sipeed.com/shareURL/SLogic/SLogic_combo_8/4_application/PulseView)
上位机软件用于观察和分析数字信号。Windows用户请下载exe后缀的文件Linux用户请下载AppImage后缀的文件建议下载日期最新的版本。
> 当软件名为`PulseView-xxxx-230811-xxx.AppImage`时日期则是2023年08月11日。其他软件的日期命名规则类似。
**Linux环境**
1. 下载完成后,进入软件所在目录,使用快捷键`CTRL+ALT+T`打开终端,使用以下命令为软件赋予执行权限并以管理员身份运行:
```bash
chmod +x PulseView-x86_64-032323-1101.AppImage
sudo ./PulseView-x86_64-032323-1101.AppImage
```
**Windows环境**
1. 下载完成后点击exe文件并开始安装根据安装引导一直点击next即可安装完成。
2. 安装完成后,在快捷菜单界面可以找到上位机图标,双击运行
> 在Linux环境最大可支持80M@4通道、40M@8通道采样由于Windows环境下USB传输不稳定的限制在Windows上最大只能支持到80M@2通道、40M@4通道采样。
#### 扫描SLogic并连接
首次启动时会自动连接也可以选择手动连接SLogic
**手动连接步骤**
1. 点击"Scan for devices xxx"扫描设备
2. 选择"SIPEED USB TO LA xxx"并点击OK连接设备
![image-20230912140845449](./assets/use_logic_function/set_connect_cfg_of_pulseview.png)
#### 准备采样
1. 设置PulseView的通道数、采样点数和采样率
下图设置通道数为**8**,采样点数为**1M samples**,采样率为**10Mhz**。此时的**采样时间**为1M / 10Mhz = 0.1s
![equ_selec_complete_of_pulseview](./assets/use_logic_function/equ_selec_complete_of_pulseview.png)
#### 开始采样
1. 点击Run启动采集并获得采样结果
![waveform_fast_of_pulseview](./assets/use_logic_function/waveform_fast_of_pulseview.png)
> 若在采样过程中未使用D7通道可能会观察到该通道的电平反转现象该现象为正常情况不影响正常使用
#### 分析采样结果
1. 打开协议选择栏
![image-20230912150905946](./assets/use_logic_function/open_ptl_field.png)
2. 选择需要分析的协议
![image-20230912153947189](./assets/use_logic_function/select_the_target_protocol.png)
3. 配置协议的参数
![image-20230912152007703](./assets/use_logic_function/config_param_of_protocol.png)
4. 观察分析结果
![image-20230912152105530](./assets/use_logic_function/observe_the_analysis_res.png)
根据分析结果然后开始调试吧~
### 详细配置
#### 采样参数
采样参数包括有采样样本数量、采样频率和采样时间
1. 采集样本数量:样本数量根据需求选择合适数值即可
2. 采样频率:根据被测信号频率选择,**推荐选择大于10倍被测信号频率**(可参考奈奎斯特定理)
3. 采样时间:采样时间根据采集**样本数量**以及**采样频率**进行计算,计算公式为:</br>**时间(秒)= 样本数 / 采样率**</br>例如1M samples1Mhz时采样时间为1s
![set_total_sampling_time_of_pulseview](./assets/use_logic_function/set_total_sampling_time_of_pulseview.png)
> 设置完成采集样本数量、采样频率后,将鼠标至于采集样本数量选择框上,会显示当前参数的采样时间
#### 通道参数
点击通道的标签来设置通道参数,通道参数包括有标签名、标签颜色、通道波形显示窗口宽度和信号触发方式
1. 标签名:可根据采样信号意义设置,便于多信号采样分辨信号
2. 标签颜色:根据个人喜好设置,便于多信号采样分辨不同信号
3. 通道波形显示窗口宽度:根据信号幅值设置,单位为像素,信号幅值变化大时,可提高该参数便于观察信号幅值变化
4. **信号触发方式**:具有**直接采样**、**高电平触发**、**低电平触发**、**下降沿触发**、**上升沿触发**以及**边沿触发**
(采集信号之前,可能存在许多无效信号,根据信号的规律来设置触发方式可以有效地过滤掉无效信号,从而提高采样效率和准确性。)
![set_channel_cfg_of_pulseview](./assets/use_logic_function/set_channel_cfg_of_pulseview.png)
### 调试波形
#### 视图操作
通过操作视图,可以更详细的观察波形
![tag_of_pulseview](./assets/use_logic_function/tag_of_pulseview.png)
**波形缩放**:鼠标滚轮(中键)向上滚动放大波形、向下滚动缩小波形
**拖动波形**:鼠标左键按住可以左右上下拖动波形显示区
**区域放大**:鼠标双击某区域可放大该区域波形
**通道滚动**:“波形显示区”使用 Ctrl+鼠标滚轮(中键)可以快速上下滚动通道
**时间测量**:您可以通过,在所需的位置右键点击鼠标点击"创建标记点Create Marker Here"来标记位置,当您重复标记其他位置时,软件会自动计算并在时间轴上显示两个标记点之间的时间长度
**调整通道顺序**:鼠标拖动通道标签即可拖动通道至指定位置
#### 协议解码
在抓取所需的数据后,为了便于对数据进行分析,可以使用协议解码功能对数据进行解码,以下为一些常见协议的解码过程。
##### UART协议数据解码
1. 将串口的TX引脚到D0通道
2. 点击顶部工具栏**黄蓝波形图标**搜索UART双击选择串行接口类UART
![uart_select](./assets/use_logic_function/logic_uart_select.png)
3. 点击波形显示窗口新增的UART通道的**协议标签**。
设置TX对应通道数据格式信号波特率以及字节序
![uart_set](./assets/use_logic_function/logic_uart_set.png)
4. 抓取数据,解析结果如下:
示例为UART的TX脚发送数据 “Hello SLogic数据格式为ascii波特率115200小端字节序)
![uart_tx](./assets/use_logic_function/logic_uart_tx.jpg)
##### I2C协议数据解码
1. 将I2C的SCL引脚连接到D0通道SDA引脚连接到D1通道
2. 点击顶部工具栏**黄蓝波形图标**搜索I2C双击选择第一项
![i2c_select](./assets/use_logic_function/logic_i2c_select.png)
3. 点击波形显示窗口新增的I2C通道的**协议标签**。
点击新增的I2C**协议标签**设置的SCL、SDA所在通道
![i2c_set](./assets/use_logic_function/logic_i2c_set.png)
4. 抓取数据,解析结果如下:
示例为I2C发送0x68
![i2c_value](./assets/use_logic_function/logic_i2c_0x68_write.jpg)
##### SPI协议数据解码
1. 将SPI的MISO、MOSI、CLK、CS引脚依次连接至D0、D1、D2、D3通道
2. 点击顶部工具栏**黄蓝波形图标**搜索SPI双击选择串行接口类SPI
![spi_select](./assets/use_logic_function/logic_spi_select.png)
3. 点击波形显示窗口新增的SPI通道的**协议标签**。
设置CLK、MISO、MOSI、CS对应通道片选信号有效电平
![spi_set](./assets/use_logic_function/logic_spi_set.png)
4. 抓取数据,测试结果如下:
示例为SPI发送0x00~0X09(时钟10Mhz片选低电平有效)
![spi_10mhz](./assets/use_logic_function/logic_spi_10mhz.jpg)
示例为SPI发送0x00~0X09(时钟26Mhz片选低电平有效)
![spi_26mhz](./assets/use_logic_function/logic_spi_26mhz.jpg)
### 注意事项
逻辑分析仪连接被测系统时,需要注意以下事项:
1. 逻辑分析仪与电脑是共地的,如果待测设备是强电系统,务必使用"USB隔离器"来进行隔离措施。否则,很可能会造成逻辑分析仪或电脑损坏的风险
2. GND 通道与被测系统的 GND 必须可靠连接,尽可能的短
3. 信号通道必须可靠连接至被测系统的待测信号位置,不可随意“嫁接”,导致干扰的引入
---
title: 作为逻辑分析仪使用
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-07-23
version: v0.1
author: lxo
content:
- Release docs
---
## 开启逻辑分析仪功能
按下按键将指示灯切换为蓝色。如下图所示:
![slogic_led_blue](./assets/use_logic_function/slogic_led_blue.png)
> 验证逻辑分析仪功能是否开启:
> Windows环境打开设备管理器Linux环境使用lsusb命令可以找到"USB TO LA"设备
## 开始使用
> 注意:
> 1. Linux环境下SLogic Combo 8最大传输带宽320Mb/s典型配置80M@4CH 40M@8CH。
> 2. Windows环境下SLogic Combo 8最大传输带宽160Mb/s典型配置80M@2CH 40M@4CH。
> 3. 如果上位机启动过程中,设备出现断连的情况,需要重新扫描并连接设备
### 快速使用
#### 引脚连接
![slogic_line_order](./assets/use_logic_function/slogic_line_order.png)
上图为SLogic 8个通道的线序图将目标设备的待测信号点连接至SLogic任意空闲CH端口并确保待测设备的GND与SLogic的GND相连接。
> 注意SLogic的GND线需要离待测点的位置越近越好哪怕更近1cm也可能会增加采样质量
#### 下载和运行上位机
[点击这里下载上位机](https://dl.sipeed.com/shareURL/SLogic/SLogic_combo_8/4_application/PulseView)
上位机软件用于观察和分析数字信号。Windows用户请下载exe后缀的文件Linux用户请下载AppImage后缀的文件建议下载日期最新的版本。
> 当软件名为`PulseView-xxxx-230811-xxx.AppImage`时日期则是2023年08月11日。其他软件的日期命名规则类似。
**Linux环境**
1. 下载完成后,进入软件所在目录,使用快捷键`CTRL+ALT+T`打开终端,使用以下命令为软件赋予执行权限并以管理员身份运行:
```bash
chmod +x PulseView-x86_64-032323-1101.AppImage
sudo ./PulseView-x86_64-032323-1101.AppImage
```
**Windows环境**
1. 下载完成后点击exe文件并开始安装根据安装引导一直点击next即可安装完成。
2. 安装完成后,在快捷菜单界面可以找到上位机图标,双击运行
> 在Linux环境最大可支持80M@4通道、40M@8通道采样由于Windows环境下USB传输不稳定的限制在Windows上最大只能支持到80M@2通道、40M@4通道采样。
#### 扫描SLogic并连接
首次启动时会自动连接也可以选择手动连接SLogic
**手动连接步骤**
1. 点击"Scan for devices xxx"扫描设备
2. 选择"SIPEED USB TO LA xxx"并点击OK连接设备
![image-20230912140845449](./assets/use_logic_function/set_connect_cfg_of_pulseview.png)
#### 准备采样
1. 设置PulseView的通道数、采样点数和采样率
下图设置通道数为**8**,采样点数为**1M samples**,采样率为**10Mhz**。此时的**采样时间**为1M / 10Mhz = 0.1s
![equ_selec_complete_of_pulseview](./assets/use_logic_function/equ_selec_complete_of_pulseview.png)
#### 开始采样
1. 点击Run启动采集并获得采样结果
![waveform_fast_of_pulseview](./assets/use_logic_function/waveform_fast_of_pulseview.png)
> 若在采样过程中未使用D7通道可能会观察到该通道的电平反转现象该现象为正常情况不影响正常使用
#### 分析采样结果
1. 打开协议选择栏
![image-20230912150905946](./assets/use_logic_function/open_ptl_field.png)
2. 选择需要分析的协议
![image-20230912153947189](./assets/use_logic_function/select_the_target_protocol.png)
3. 配置协议的参数
![image-20230912152007703](./assets/use_logic_function/config_param_of_protocol.png)
4. 观察分析结果
![image-20230912152105530](./assets/use_logic_function/observe_the_analysis_res.png)
根据分析结果然后开始调试吧~
### 详细配置
#### 采样参数
采样参数包括有采样样本数量、采样频率和采样时间
1. 采集样本数量:样本数量根据需求选择合适数值即可
2. 采样频率:根据被测信号频率选择,**推荐选择大于10倍被测信号频率**(可参考奈奎斯特定理)
3. 采样时间:采样时间根据采集**样本数量**以及**采样频率**进行计算,计算公式为:</br>**时间(秒)= 样本数 / 采样率**</br>例如1M samples1Mhz时采样时间为1s
![set_total_sampling_time_of_pulseview](./assets/use_logic_function/set_total_sampling_time_of_pulseview.png)
> 设置完成采集样本数量、采样频率后,将鼠标至于采集样本数量选择框上,会显示当前参数的采样时间
#### 通道参数
点击通道的标签来设置通道参数,通道参数包括有标签名、标签颜色、通道波形显示窗口宽度和信号触发方式
1. 标签名:可根据采样信号意义设置,便于多信号采样分辨信号
2. 标签颜色:根据个人喜好设置,便于多信号采样分辨不同信号
3. 通道波形显示窗口宽度:根据信号幅值设置,单位为像素,信号幅值变化大时,可提高该参数便于观察信号幅值变化
4. **信号触发方式**:具有**直接采样**、**高电平触发**、**低电平触发**、**下降沿触发**、**上升沿触发**以及**边沿触发**
(采集信号之前,可能存在许多无效信号,根据信号的规律来设置触发方式可以有效地过滤掉无效信号,从而提高采样效率和准确性。)
![set_channel_cfg_of_pulseview](./assets/use_logic_function/set_channel_cfg_of_pulseview.png)
### 调试波形
#### 视图操作
通过操作视图,可以更详细的观察波形
![tag_of_pulseview](./assets/use_logic_function/tag_of_pulseview.png)
**波形缩放**:鼠标滚轮(中键)向上滚动放大波形、向下滚动缩小波形
**拖动波形**:鼠标左键按住可以左右上下拖动波形显示区
**区域放大**:鼠标双击某区域可放大该区域波形
**通道滚动**:“波形显示区”使用 Ctrl+鼠标滚轮(中键)可以快速上下滚动通道
**时间测量**:您可以通过,在所需的位置右键点击鼠标点击"创建标记点Create Marker Here"来标记位置,当您重复标记其他位置时,软件会自动计算并在时间轴上显示两个标记点之间的时间长度
**调整通道顺序**:鼠标拖动通道标签即可拖动通道至指定位置
#### 协议解码
在抓取所需的数据后,为了便于对数据进行分析,可以使用协议解码功能对数据进行解码,以下为一些常见协议的解码过程。
##### UART协议数据解码
1. 将串口的TX引脚到D0通道
2. 点击顶部工具栏**黄蓝波形图标**搜索UART双击选择串行接口类UART
![uart_select](./assets/use_logic_function/logic_uart_select.png)
3. 点击波形显示窗口新增的UART通道的**协议标签**。
设置TX对应通道数据格式信号波特率以及字节序
![uart_set](./assets/use_logic_function/logic_uart_set.png)
4. 抓取数据,解析结果如下:
示例为UART的TX脚发送数据 “Hello SLogic数据格式为ascii波特率115200小端字节序)
![uart_tx](./assets/use_logic_function/logic_uart_tx.jpg)
##### I2C协议数据解码
1. 将I2C的SCL引脚连接到D0通道SDA引脚连接到D1通道
2. 点击顶部工具栏**黄蓝波形图标**搜索I2C双击选择第一项
![i2c_select](./assets/use_logic_function/logic_i2c_select.png)
3. 点击波形显示窗口新增的I2C通道的**协议标签**。
点击新增的I2C**协议标签**设置的SCL、SDA所在通道
![i2c_set](./assets/use_logic_function/logic_i2c_set.png)
4. 抓取数据,解析结果如下:
示例为I2C发送0x68
![i2c_value](./assets/use_logic_function/logic_i2c_0x68_write.jpg)
##### SPI协议数据解码
1. 将SPI的MISO、MOSI、CLK、CS引脚依次连接至D0、D1、D2、D3通道
2. 点击顶部工具栏**黄蓝波形图标**搜索SPI双击选择串行接口类SPI
![spi_select](./assets/use_logic_function/logic_spi_select.png)
3. 点击波形显示窗口新增的SPI通道的**协议标签**。
设置CLK、MISO、MOSI、CS对应通道片选信号有效电平
![spi_set](./assets/use_logic_function/logic_spi_set.png)
4. 抓取数据,测试结果如下:
示例为SPI发送0x00~0X09(时钟10Mhz片选低电平有效)
![spi_10mhz](./assets/use_logic_function/logic_spi_10mhz.jpg)
示例为SPI发送0x00~0X09(时钟26Mhz片选低电平有效)
![spi_26mhz](./assets/use_logic_function/logic_spi_26mhz.jpg)
### 注意事项
逻辑分析仪连接被测系统时,需要注意以下事项:
1. 逻辑分析仪与电脑是共地的,如果待测设备是强电系统,务必使用"USB隔离器"来进行隔离措施。否则,很可能会造成逻辑分析仪或电脑损坏的风险
2. GND 通道与被测系统的 GND 必须可靠连接,尽可能的短
3. 信号通道必须可靠连接至被测系统的待测信号位置,不可随意“嫁接”,导致干扰的引入
4. 如果不注意接线方式,很可能会引入很多毛刺,导致软件无法分析数据

View File

@@ -1,12 +1,12 @@
---
title: SLogic series
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-03-09
version: v0.1
author: wonder
content:
- Create file
---
---
title: SLogic series
keywords: LogicAnalyzer, debugger, link, RISCV, tool
update:
- date: 2023-03-09
version: v0.1
author: wonder
content:
- Create file
---
SLogic is Sipeed Logic Analyzer.

View File

@@ -1,38 +1,38 @@
# Longan nano
## 介绍
Longan Nano是基于兆易创新(GigaDevice)的GD32VF103CBT6(RISC-V架构)芯片设计的极简开发板。开发板将芯片所有IO引出设计小巧精致板载Type-C、LCD、SD卡、JTAG等接口方便广大学生、工程师、极客爱好者们接触学习最新一代的 RISC-V处理器。
![Longan_nano_pin](./../../../assets/Longan/nano/Longan_nano.124.jpg)
## 参数
| 项目 | 参数 |
| --- | --- |
| CPU | 基于 RISC-V 32 位内核的 GD32VF103CBT6 |
| 内核功耗 | 仅传统 Cortex-M3 的 1/3 |
| 存储 | 128KB Flash, 32KB SRAM |
|外设 | 4 x general purpose 16-bit timer, 2 x basic 16-bit timer, 1 x advanced 16-bit timer,<br>Watchdog, RTC, Systick<br>3 x USART, 2 x I2C, 3 x SPI, 2 x I2S, 2 x CAN, 1 x USBFS (OTG), 2 x ADC (10 channel), 2 x DAC |
| 按键 | 1 个复位按键和 1 个 BOOT 按键(连接到 GPIO |
| 屏幕接口 | SPI 接口(标配 0.96 寸 160x80 RGB IPS LCD |
| 存储接口 | 板载 TF 卡座子 |
| 调试接口 | 2x4 排针引出 JTAG 调试接口和串口 |
| 晶振 | 8MHz 无源晶振 + 32.768KHz RTC 无源晶振 |
| LED | 板载 1 个 RGB LED |
| GPIO 数量 | 2 引出 28 个 GPIO 到排针 |
### 新版照片
![](./../../../assets/Longan/nano/Longan-nano_PINOUT.svg)
![](./../../../assets/Longan/nano/longan-nano-1.png)
### 旧版照片
![](./../../../assets/Longan/nano/longan_nano_pinout_old.png)
![](./../../../assets/Longan/nano/longan-nano-old.png)
## 使用
[Longan使用](/soft/longan/zh/readme.md)
## 产品技术支持
# Longan nano
## 介绍
Longan Nano是基于兆易创新(GigaDevice)的GD32VF103CBT6(RISC-V架构)芯片设计的极简开发板。开发板将芯片所有IO引出设计小巧精致板载Type-C、LCD、SD卡、JTAG等接口方便广大学生、工程师、极客爱好者们接触学习最新一代的 RISC-V处理器。
![Longan_nano_pin](./../../../assets/Longan/nano/Longan_nano.124.jpg)
## 参数
| 项目 | 参数 |
| --- | --- |
| CPU | 基于 RISC-V 32 位内核的 GD32VF103CBT6 |
| 内核功耗 | 仅传统 Cortex-M3 的 1/3 |
| 存储 | 128KB Flash, 32KB SRAM |
|外设 | 4 x general purpose 16-bit timer, 2 x basic 16-bit timer, 1 x advanced 16-bit timer,<br>Watchdog, RTC, Systick<br>3 x USART, 2 x I2C, 3 x SPI, 2 x I2S, 2 x CAN, 1 x USBFS (OTG), 2 x ADC (10 channel), 2 x DAC |
| 按键 | 1 个复位按键和 1 个 BOOT 按键(连接到 GPIO |
| 屏幕接口 | SPI 接口(标配 0.96 寸 160x80 RGB IPS LCD |
| 存储接口 | 板载 TF 卡座子 |
| 调试接口 | 2x4 排针引出 JTAG 调试接口和串口 |
| 晶振 | 8MHz 无源晶振 + 32.768KHz RTC 无源晶振 |
| LED | 板载 1 个 RGB LED |
| GPIO 数量 | 2 引出 28 个 GPIO 到排针 |
### 新版照片
![](./../../../assets/Longan/nano/Longan-nano_PINOUT.svg)
![](./../../../assets/Longan/nano/longan-nano-1.png)
### 旧版照片
![](./../../../assets/Longan/nano/longan_nano_pinout_old.png)
![](./../../../assets/Longan/nano/longan-nano-old.png)
## 使用
[Longan使用](/soft/longan/zh/readme.md)
## 产品技术支持
Longan Nano 开发板可以在多种场景实现客户不同方面的需要,在 AIoT 上已经广泛的使用,品质和性能在行业内已经有非常好的口碑,专业的技术团队为广大客户解决硬件设计和软件功能上的各种各样问题。专业技术支持和更详细资料请联系商务 <support@sipeed.com>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -1,186 +1,186 @@
Bad Apple 演示视频
==================
本文目的是使用板载的 160*80 分辨率的 OLED 屏幕播放 bad apple 视频
## 主要工作介绍
+ 移植 OLED 屏幕的驱动
+ 移植 tf 卡驱动和 fatfs 文件系统
+ 将视频按自己需要的帧率转换为一帧帧的图片然后打包到 tf 卡
+ 在 gd32v 上读取 tf 卡中的图片并进行显示
### 屏幕驱动
使用硬件 SPI 驱动屏幕,首先需要初始化 SPI
```c
void spi_config(void)
{
spi_parameter_struct spi_init_struct;
/* deinitilize SPI and the parameters */
OLED_CS_Set();
spi_struct_para_init(&spi_init_struct);
/* SPI0 parameter config */
spi_init_struct.trans_mode = SPI_TRANSMODE_FULLDUPLEX;
spi_init_struct.device_mode = SPI_MASTER;
spi_init_struct.frame_size = SPI_FRAMESIZE_8BIT;
spi_init_struct.clock_polarity_phase = SPI_CK_PL_HIGH_PH_2EDGE;
spi_init_struct.nss = SPI_NSS_SOFT;
spi_init_struct.prescale = SPI_PSC_8;
spi_init_struct.endian = SPI_ENDIAN_MSB;
spi_init(SPI0, &spi_init_struct);
spi_crc_polynomial_set(SPI0,7);
spi_enable(SPI0);
}
```
初始化完成后就可以实现数据指令的发送
```c
void LCD_Writ_Bus(u8 dat)
{
OLED_CS_Clr();
while(RESET == spi_i2s_flag_get(SPI0, SPI_FLAG_TBE));
spi_i2s_data_transmit(SPI0, dat);
while(RESET == spi_i2s_flag_get(SPI0, SPI_FLAG_RBNE));
spi_i2s_data_receive(SPI0);
OLED_CS_Set();
}
void LCD_WR_DATA8(u8 dat)
{
OLED_DC_Set();//写数据
LCD_Writ_Bus(dat);
}
void LCD_WR_DATA(u16 dat)
{
OLED_DC_Set();//写数据
LCD_Writ_Bus(dat>>8);
LCD_Writ_Bus(dat);
}
void LCD_WR_REG(u8 dat)
{
OLED_DC_Clr();//写命令
LCD_Writ_Bus(dat);
}
```
`LCD_Writ_Bus` 完成了 SPI 的收发,通过控制命令数据线,完成命令和数据的发送
OLED 屏幕在使用前还需要设置它的一些参数,比如屏幕开启、数据帧的格式等等,这些在参数在屏幕初始化的时候,通过写命令再写数据的方式写入。想修改这些参数需要依靠屏幕配套的数据手册,不过一般可以参数屏幕生产商提供的例程中的参数。
### tf 卡驱动和 fatfs 文件系统
tf 卡在 longan 上也是使用 SPI 驱动的。为了更快的访问速率,也是使用硬件 SPI 驱动。使用前也需要初始化,方式和屏幕的 SPI 初始化类似,就不再累述。
fatfs 是一个专为小型嵌入式设备设计的文件系统。fatfs 符合 ANSI C(C89)规范,并且和磁盘 I/O 层完全分离。
具体的移植也很简单,直接参照 fatfs 提供的 stm32 的工程移植进行
这里提供该工程的[下载地址](http://dl.sipeed.com/LONGAN/Nano/Firmware/badapple_demo_tools/ffsample.7z),完整版可以去 fatfs 的[官网下载](http://elm-chan.org/fsw/ff/ffsample.zip)
主要的工作在于实现 fatfs 的几个基本函数 `disk_initialize` `disk_status` `disk_read` `disk_ioctl`
这些函数又是基于 SPI 通信的,还需要修改 SPI 接收发送的实现
```c
static
BYTE xchg_spi (
BYTE dat /* Data to send */
)
{
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_TBE));
spi_i2s_data_transmit(SPI1, dat);
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_RBNE));
return(spi_i2s_data_receive(SPI1)); /* Return received byte */
}
static
void rcvr_spi_multi (
BYTE *buff, /* Pointer to data buffer */
UINT btr /* Number of bytes to receive (even number) */
)
{
do
{
*buff = xchg_spi(0xff);
buff++;
} while (btr--);
}
```
### 视频预解码
mp4 格式的视频,单片机因为没有硬件的加速,无法胜任解码播放的工作,所以只能靠手工预解码,相当于按照一定的帧率对原视频进行截图
这里需要使用到 PotPlayer XnViewMP
首先使用 PotPlayer 打开视频,快捷键 ctrl+G 打开连续截图
打开后如图
![](./../assets/examples/potplayer.png)
其中格式一定要 BMP尺寸按照屏幕的尺寸设置时间我这里设置的是 100ms 也就是 1s 十帧的样子,采集数量就自己计算一下视频总时间再乘每秒帧数,我这里就是 219s * 10 = 2190
最后得到的图片是 32位 的 BMP转换起来不方便就用 XnViewMP 转换为 24位 的 BMP
打开 XnViewMP ,选择要转换的图片,快捷键 ctrl+U 打开批量转换,在动作中选择 24位 进行转换,如图
![](./../assets/examples/XnViewMP.png)
然后就是将这些图片打包到 tf 卡,这里为了方便,修改了网上的一个开源项目 [bmp2hex](https://github.com/robertgallup/bmp2hex),重新整理了一个工具,可以[点击下载](http://dl.sipeed.com/LONGAN/Nano/Firmware/badapple_demo_tools/tools_bmp2hex.zip)
使用方法很简单,把下载的这个压缩包放到之前生成的图片集中,进行解压
使用工具前需要确保所有图片的名字是 数字.bmp ,不是的话可以先运行一遍 rename.py 这个脚本,直接在命令行输入 `python rename.py` 即可
根据自己图片总数修改 genhex.py 这个脚本的第4行中的数字比如我有 2190张 图片,这里的数字就写 2190
然后就运行这个脚本,在命令行输入 `python genhex.py`,时间可能比较久,需要耐心等待
最后运行完毕后会生成一个 bmp.bin 文件,将这个文件放入到 tf 卡中即可
### 读取图片
最后的读取图片并显示其实很简单了,主要涉及到的就是文件操作,关于 fatfs 的 API [可以点击这里阅读](http://elm-chan.org/fsw/ff/doc/open.html)
首先需要将 tf 卡挂载到文件系统,这里需要使用到 f_mount 这个函数
```c
fr = f_mount(&fs, "", 1);
```
挂载上后,就找到对应的文件然后打开,这里涉及到 f_open
```c
fr = f_open(&fil, "bmp.bin", FA_READ);
```
文件打开后,就可以读取图片信息并显示了,这里 160*80 尺寸的 16位真彩图片一张有 25600 字节longan 上的处理器无法直接创建一个这么大的数组,所以只能分两次进行读取,每次读取完进行一次偏移,最后通过循环读取总共的 2189 张图片,这里涉及到 f_read f_lseek
```c
for (int i=0; i<2189;i++)
{
fr = f_read(&fil, image, sizeof(image), &br);
LCD_ShowPicture(0,0,159,39);
offset += 12800;
f_lseek(&fil, offset);
LEDB_TOG;
fr = f_read(&fil, image, sizeof(image), &br);
LCD_ShowPicture(0,40,159,79);
offset += 12800;
f_lseek(&fil, offset);
LEDB_TOG;
}
```
最后,本工程可以到 github 下载体验,[点击进行传送](https://github.com/sipeed/Longan_GD32VF_examples)
Bad Apple 演示视频
==================
本文目的是使用板载的 160*80 分辨率的 OLED 屏幕播放 bad apple 视频
## 主要工作介绍
+ 移植 OLED 屏幕的驱动
+ 移植 tf 卡驱动和 fatfs 文件系统
+ 将视频按自己需要的帧率转换为一帧帧的图片然后打包到 tf 卡
+ 在 gd32v 上读取 tf 卡中的图片并进行显示
### 屏幕驱动
使用硬件 SPI 驱动屏幕,首先需要初始化 SPI
```c
void spi_config(void)
{
spi_parameter_struct spi_init_struct;
/* deinitilize SPI and the parameters */
OLED_CS_Set();
spi_struct_para_init(&spi_init_struct);
/* SPI0 parameter config */
spi_init_struct.trans_mode = SPI_TRANSMODE_FULLDUPLEX;
spi_init_struct.device_mode = SPI_MASTER;
spi_init_struct.frame_size = SPI_FRAMESIZE_8BIT;
spi_init_struct.clock_polarity_phase = SPI_CK_PL_HIGH_PH_2EDGE;
spi_init_struct.nss = SPI_NSS_SOFT;
spi_init_struct.prescale = SPI_PSC_8;
spi_init_struct.endian = SPI_ENDIAN_MSB;
spi_init(SPI0, &spi_init_struct);
spi_crc_polynomial_set(SPI0,7);
spi_enable(SPI0);
}
```
初始化完成后就可以实现数据指令的发送
```c
void LCD_Writ_Bus(u8 dat)
{
OLED_CS_Clr();
while(RESET == spi_i2s_flag_get(SPI0, SPI_FLAG_TBE));
spi_i2s_data_transmit(SPI0, dat);
while(RESET == spi_i2s_flag_get(SPI0, SPI_FLAG_RBNE));
spi_i2s_data_receive(SPI0);
OLED_CS_Set();
}
void LCD_WR_DATA8(u8 dat)
{
OLED_DC_Set();//写数据
LCD_Writ_Bus(dat);
}
void LCD_WR_DATA(u16 dat)
{
OLED_DC_Set();//写数据
LCD_Writ_Bus(dat>>8);
LCD_Writ_Bus(dat);
}
void LCD_WR_REG(u8 dat)
{
OLED_DC_Clr();//写命令
LCD_Writ_Bus(dat);
}
```
`LCD_Writ_Bus` 完成了 SPI 的收发,通过控制命令数据线,完成命令和数据的发送
OLED 屏幕在使用前还需要设置它的一些参数,比如屏幕开启、数据帧的格式等等,这些在参数在屏幕初始化的时候,通过写命令再写数据的方式写入。想修改这些参数需要依靠屏幕配套的数据手册,不过一般可以参数屏幕生产商提供的例程中的参数。
### tf 卡驱动和 fatfs 文件系统
tf 卡在 longan 上也是使用 SPI 驱动的。为了更快的访问速率,也是使用硬件 SPI 驱动。使用前也需要初始化,方式和屏幕的 SPI 初始化类似,就不再累述。
fatfs 是一个专为小型嵌入式设备设计的文件系统。fatfs 符合 ANSI C(C89)规范,并且和磁盘 I/O 层完全分离。
具体的移植也很简单,直接参照 fatfs 提供的 stm32 的工程移植进行
这里提供该工程的[下载地址](http://dl.sipeed.com/LONGAN/Nano/Firmware/badapple_demo_tools/ffsample.7z),完整版可以去 fatfs 的[官网下载](http://elm-chan.org/fsw/ff/ffsample.zip)
主要的工作在于实现 fatfs 的几个基本函数 `disk_initialize` `disk_status` `disk_read` `disk_ioctl`
这些函数又是基于 SPI 通信的,还需要修改 SPI 接收发送的实现
```c
static
BYTE xchg_spi (
BYTE dat /* Data to send */
)
{
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_TBE));
spi_i2s_data_transmit(SPI1, dat);
while(RESET == spi_i2s_flag_get(SPI1, SPI_FLAG_RBNE));
return(spi_i2s_data_receive(SPI1)); /* Return received byte */
}
static
void rcvr_spi_multi (
BYTE *buff, /* Pointer to data buffer */
UINT btr /* Number of bytes to receive (even number) */
)
{
do
{
*buff = xchg_spi(0xff);
buff++;
} while (btr--);
}
```
### 视频预解码
mp4 格式的视频,单片机因为没有硬件的加速,无法胜任解码播放的工作,所以只能靠手工预解码,相当于按照一定的帧率对原视频进行截图
这里需要使用到 PotPlayer XnViewMP
首先使用 PotPlayer 打开视频,快捷键 ctrl+G 打开连续截图
打开后如图
![](./../assets/examples/potplayer.png)
其中格式一定要 BMP尺寸按照屏幕的尺寸设置时间我这里设置的是 100ms 也就是 1s 十帧的样子,采集数量就自己计算一下视频总时间再乘每秒帧数,我这里就是 219s * 10 = 2190
最后得到的图片是 32位 的 BMP转换起来不方便就用 XnViewMP 转换为 24位 的 BMP
打开 XnViewMP ,选择要转换的图片,快捷键 ctrl+U 打开批量转换,在动作中选择 24位 进行转换,如图
![](./../assets/examples/XnViewMP.png)
然后就是将这些图片打包到 tf 卡,这里为了方便,修改了网上的一个开源项目 [bmp2hex](https://github.com/robertgallup/bmp2hex),重新整理了一个工具,可以[点击下载](http://dl.sipeed.com/LONGAN/Nano/Firmware/badapple_demo_tools/tools_bmp2hex.zip)
使用方法很简单,把下载的这个压缩包放到之前生成的图片集中,进行解压
使用工具前需要确保所有图片的名字是 数字.bmp ,不是的话可以先运行一遍 rename.py 这个脚本,直接在命令行输入 `python rename.py` 即可
根据自己图片总数修改 genhex.py 这个脚本的第4行中的数字比如我有 2190张 图片,这里的数字就写 2190
然后就运行这个脚本,在命令行输入 `python genhex.py`,时间可能比较久,需要耐心等待
最后运行完毕后会生成一个 bmp.bin 文件,将这个文件放入到 tf 卡中即可
### 读取图片
最后的读取图片并显示其实很简单了,主要涉及到的就是文件操作,关于 fatfs 的 API [可以点击这里阅读](http://elm-chan.org/fsw/ff/doc/open.html)
首先需要将 tf 卡挂载到文件系统,这里需要使用到 f_mount 这个函数
```c
fr = f_mount(&fs, "", 1);
```
挂载上后,就找到对应的文件然后打开,这里涉及到 f_open
```c
fr = f_open(&fil, "bmp.bin", FA_READ);
```
文件打开后,就可以读取图片信息并显示了,这里 160*80 尺寸的 16位真彩图片一张有 25600 字节longan 上的处理器无法直接创建一个这么大的数组,所以只能分两次进行读取,每次读取完进行一次偏移,最后通过循环读取总共的 2189 张图片,这里涉及到 f_read f_lseek
```c
for (int i=0; i<2189;i++)
{
fr = f_read(&fil, image, sizeof(image), &br);
LCD_ShowPicture(0,0,159,39);
offset += 12800;
f_lseek(&fil, offset);
LEDB_TOG;
fr = f_read(&fil, image, sizeof(image), &br);
LCD_ShowPicture(0,40,159,79);
offset += 12800;
f_lseek(&fil, offset);
LEDB_TOG;
}
```
最后,本工程可以到 github 下载体验,[点击进行传送](https://github.com/sipeed/Longan_GD32VF_examples)

View File

@@ -1,56 +1,56 @@
串口打印
==========
很多时候,串口打印都是一个非常方便的调试手段,通过串口打印的信息,可以方便的定位程序错误位置
本文基于 longan nano 演示如何实现 printf 通过串口打印
本文选择串口0作为串口打印信息的端口外设使用前自然需要进行初始化
```c
void init_uart0(void)
{
/* enable GPIO clock */
rcu_periph_clock_enable(RCU_GPIOA);
/* enable USART clock */
rcu_periph_clock_enable(RCU_USART0);
/* connect port to USARTx_Tx */
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
/* connect port to USARTx_Rx */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
/* USART configure */
usart_deinit(USART0);
usart_baudrate_set(USART0, 115200U);
usart_word_length_set(USART0, USART_WL_8BIT);
usart_stop_bit_set(USART0, USART_STB_1BIT);
usart_parity_config(USART0, USART_PM_NONE);
usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE);
usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE);
usart_receive_config(USART0, USART_RECEIVE_ENABLE);
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
usart_enable(USART0);
usart_interrupt_enable(USART0, USART_INT_RBNE);
}
```
这里首先的开启了端口时钟和串口时钟,在初始化完管脚后,就进行了串口的功能配置
我们一般比较关心的就是串口的波特率,这里设置成了 115200
然后我们还需要重新实现 _put_char ,将 printf 重映射
```c
int _put_char(int ch)
{
usart_data_transmit(USART0, (uint8_t) ch );
while ( usart_flag_get(USART0, USART_FLAG_TBE)== RESET){
}
return ch;
}
```
这样就可以快乐的使用 printf 了
串口打印
==========
很多时候,串口打印都是一个非常方便的调试手段,通过串口打印的信息,可以方便的定位程序错误位置
本文基于 longan nano 演示如何实现 printf 通过串口打印
本文选择串口0作为串口打印信息的端口外设使用前自然需要进行初始化
```c
void init_uart0(void)
{
/* enable GPIO clock */
rcu_periph_clock_enable(RCU_GPIOA);
/* enable USART clock */
rcu_periph_clock_enable(RCU_USART0);
/* connect port to USARTx_Tx */
gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9);
/* connect port to USARTx_Rx */
gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
/* USART configure */
usart_deinit(USART0);
usart_baudrate_set(USART0, 115200U);
usart_word_length_set(USART0, USART_WL_8BIT);
usart_stop_bit_set(USART0, USART_STB_1BIT);
usart_parity_config(USART0, USART_PM_NONE);
usart_hardware_flow_rts_config(USART0, USART_RTS_DISABLE);
usart_hardware_flow_cts_config(USART0, USART_CTS_DISABLE);
usart_receive_config(USART0, USART_RECEIVE_ENABLE);
usart_transmit_config(USART0, USART_TRANSMIT_ENABLE);
usart_enable(USART0);
usart_interrupt_enable(USART0, USART_INT_RBNE);
}
```
这里首先的开启了端口时钟和串口时钟,在初始化完管脚后,就进行了串口的功能配置
我们一般比较关心的就是串口的波特率,这里设置成了 115200
然后我们还需要重新实现 _put_char ,将 printf 重映射
```c
int _put_char(int ch)
{
usart_data_transmit(USART0, (uint8_t) ch );
while ( usart_flag_get(USART0, USART_FLAG_TBE)== RESET){
}
return ch;
}
```
这样就可以快乐的使用 printf 了

View File

@@ -1,113 +1,113 @@
---
title: Blink 闪灯程序
---
## 创建 Blink 工程
* 打开 PIO 主页 选择 `Project Examples`
![](http://blog.sipeed.com/wp-content/uploads/2019/04/d977e844490e6ccc4625f701883a29f5.png)
* 选择 `arduino blink` 点击 `Import` 导入示例程序 (初次导入需要下载架构文件及工具,需要等待较长时间)
![](http://blog.sipeed.com/wp-content/uploads/2019/04/82943a6b74077e6210e2d9421cb5438f.png)
* 导入成功后即可见到示例工程
![](http://blog.sipeed.com/wp-content/uploads/2019/04/1262373ca7b0b483e30dac1124adaabf.png)
## 工程配置文件
* 我们首先需要编辑工程配置文件 `platformio.ini` 根据自己的开发板型号,删掉其他开发板环境。
![](./../assets/pio_ini_cfg.png)
配置示例
```ini
[env:sipeed-longan-nano]
platform = gd32v ;平台选择gd32v
framework = arduino ;可选 gd32vf103-sdk 或 arduino
board = sipeed-longan-nano ; 开发板
monitor_speed = 115200 ; 串口监视器波特率
upload_protocol = serial ; 下载工具 默认串口, 可选 dfu、jlink、gd-link 等
debug_tool = jlink ; 调试工具 默认jlink ,可选 sipeed-rv-debugger 等
```
PIO 可以在配置文件中实现设置宏定义, 控制编译流程等自定义功能,高级用法请参阅 [PIO 官方文档](https://docs.platformio.org/en/latest/projectconf.html).
## 一键编译
点击左下角的 `Build` 即可构建项目
![](./../assets/pio_complie.png)
## 连接开发板
### 串口 ISP 下载
* 准备 USB 转 串口下载器
* 连接开发板与下载器
* 修改 `platformio.ini` 文件, 添加下面一行内容:
```ini
upload_protocol = serial
```
* 开发板按住 `BOOT` 键,再按 `RESET` 键重启开发板后再松开 `BOOT` 键,进入下载模式。
### JTAG 下载
* 准备J-link 或 Sipeed RV 调试器
* 连接开发板
* 修改 `platformio.ini` 文件, 添加下面一行内容:
```ini
upload_protocol = jlink
```
或者
```ini
upload_protocol = sipeed-rv-debugger
```
### USB DFU 下载
* **首次** 使用需要安装 libusb 驱动程序, 请参考此步骤 [使用 Zaidig 安装驱动](###使用zadig安装驱动).
* 准备 USB Type-c 数据线
* 使用数据线连接电脑与开发板
* 修改 `platformio.ini` 文件, 添加下面一行内容:
```ini
upload_protocol = dfu
```
* 开发板按住 `BOOT` 键,再按 `RESET` 键重启开发板后再松开 `BOOT` 键,进入 DFU 模式。
## 一键下载
按照上面步骤选择好下载方式后,即可使用 PIO 内置工具一键下载。
点击左下角的 `Upload` 即可向开发板上传程序。
![](./../assets/pio_upload.png)
### 使用Zadig安装驱动
PIO 内置 dfu-util 下载工具,使用此工具需要为开发板安装 libusb 驱动。(注意: 与 GD 官方驱动不同)
建议通过 Zadig 安装 winusb 驱动。[下载地址](https://github.com/pbatard/libwdi/releases/download/b721/zadig-2.4.exe)
下载成功后打开 Zadig
在下拉栏中选择 GD32V 替换驱动选择 WinUSB, 点击替换按钮,即可替换成功。
![](./../assets/dfu_zadig.png)
### DFU 图形界面下载
下载DFU工具<https://dl.sipeed.com/shareURL/LONGAN/Nano/Tools>
在里面找到 `GD32_MCU_Dfu_Tool_V3.8.1.5784_1.rar` 文件并下载
解压出两个文件夹:
- GD32 MCU Dfu Drivers_v1.0.1.2316
- GD32 MCU Dfu Tool_v3.8.1.5784
先进入driver文件夹安装对应的驱动文件注意使用管理员权限运行
![](./../assets/examples/how_to_install_dfu.png)
再回到Tools目录下运行 GD32 MCU Dfu Tool.exe
将 Longan Nano 插到电脑,按住板子上 Boot0 键的时候按下 reset 键。
就可以看到 DFU 工具中识别到了 GD32VF 芯片
选择对应的固件文件并勾选烧录后校验点击OK即可进行烧录
- 烧录完成之后不会自动复位,需要自己手工按下复位按键(按下reset)。
![](./../assets/examples/how_to_use_dfu.png)
---
title: Blink 闪灯程序
---
## 创建 Blink 工程
* 打开 PIO 主页 选择 `Project Examples`
![](http://blog.sipeed.com/wp-content/uploads/2019/04/d977e844490e6ccc4625f701883a29f5.png)
* 选择 `arduino blink` 点击 `Import` 导入示例程序 (初次导入需要下载架构文件及工具,需要等待较长时间)
![](http://blog.sipeed.com/wp-content/uploads/2019/04/82943a6b74077e6210e2d9421cb5438f.png)
* 导入成功后即可见到示例工程
![](http://blog.sipeed.com/wp-content/uploads/2019/04/1262373ca7b0b483e30dac1124adaabf.png)
## 工程配置文件
* 我们首先需要编辑工程配置文件 `platformio.ini` 根据自己的开发板型号,删掉其他开发板环境。
![](./../assets/pio_ini_cfg.png)
配置示例
```ini
[env:sipeed-longan-nano]
platform = gd32v ;平台选择gd32v
framework = arduino ;可选 gd32vf103-sdk 或 arduino
board = sipeed-longan-nano ; 开发板
monitor_speed = 115200 ; 串口监视器波特率
upload_protocol = serial ; 下载工具 默认串口, 可选 dfu、jlink、gd-link 等
debug_tool = jlink ; 调试工具 默认jlink ,可选 sipeed-rv-debugger 等
```
PIO 可以在配置文件中实现设置宏定义, 控制编译流程等自定义功能,高级用法请参阅 [PIO 官方文档](https://docs.platformio.org/en/latest/projectconf.html).
## 一键编译
点击左下角的 `Build` 即可构建项目
![](./../assets/pio_complie.png)
## 连接开发板
### 串口 ISP 下载
* 准备 USB 转 串口下载器
* 连接开发板与下载器
* 修改 `platformio.ini` 文件, 添加下面一行内容:
```ini
upload_protocol = serial
```
* 开发板按住 `BOOT` 键,再按 `RESET` 键重启开发板后再松开 `BOOT` 键,进入下载模式。
### JTAG 下载
* 准备J-link 或 Sipeed RV 调试器
* 连接开发板
* 修改 `platformio.ini` 文件, 添加下面一行内容:
```ini
upload_protocol = jlink
```
或者
```ini
upload_protocol = sipeed-rv-debugger
```
### USB DFU 下载
* **首次** 使用需要安装 libusb 驱动程序, 请参考此步骤 [使用 Zaidig 安装驱动](###使用zadig安装驱动).
* 准备 USB Type-c 数据线
* 使用数据线连接电脑与开发板
* 修改 `platformio.ini` 文件, 添加下面一行内容:
```ini
upload_protocol = dfu
```
* 开发板按住 `BOOT` 键,再按 `RESET` 键重启开发板后再松开 `BOOT` 键,进入 DFU 模式。
## 一键下载
按照上面步骤选择好下载方式后,即可使用 PIO 内置工具一键下载。
点击左下角的 `Upload` 即可向开发板上传程序。
![](./../assets/pio_upload.png)
### 使用Zadig安装驱动
PIO 内置 dfu-util 下载工具,使用此工具需要为开发板安装 libusb 驱动。(注意: 与 GD 官方驱动不同)
建议通过 Zadig 安装 winusb 驱动。[下载地址](https://github.com/pbatard/libwdi/releases/download/b721/zadig-2.4.exe)
下载成功后打开 Zadig
在下拉栏中选择 GD32V 替换驱动选择 WinUSB, 点击替换按钮,即可替换成功。
![](./../assets/dfu_zadig.png)
### DFU 图形界面下载
下载DFU工具<https://dl.sipeed.com/shareURL/LONGAN/Nano/Tools>
在里面找到 `GD32_MCU_Dfu_Tool_V3.8.1.5784_1.rar` 文件并下载
解压出两个文件夹:
- GD32 MCU Dfu Drivers_v1.0.1.2316
- GD32 MCU Dfu Tool_v3.8.1.5784
先进入driver文件夹安装对应的驱动文件注意使用管理员权限运行
![](./../assets/examples/how_to_install_dfu.png)
再回到Tools目录下运行 GD32 MCU Dfu Tool.exe
将 Longan Nano 插到电脑,按住板子上 Boot0 键的时候按下 reset 键。
就可以看到 DFU 工具中识别到了 GD32VF 芯片
选择对应的固件文件并勾选烧录后校验点击OK即可进行烧录
- 烧录完成之后不会自动复位,需要自己手工按下复位按键(按下reset)。
![](./../assets/examples/how_to_use_dfu.png)

View File

@@ -1,35 +1,35 @@
Debug 调试
======
## 连接调试器
| 开发板 | 调试器 |
| :----: | :----: |
| JTDO | TDO |
| JTDI | TDI |
| JTCK | TCK |
| JTMS | TMS |
| 3V3 | 3V3 |
| GND | GND |
## 修改配置文件
修改工程配置文件 `platformio.ini` 在下面添加
```ini
debug_tool = jlink
```
根据实际调试器型号选择。目前支持的调试器列表
* `jlink`
* `gd-link`
* `ft2232`
* `sipeed-rv-debugger`
* `altera-usb-blaster`
* `um232h`
* `rv-link`
## 一键调试
切换到 VS CODE 左侧的 `DEBUG` 界面, 点击绿色箭头即可进行调试。
![](./../assets/pio_debug_longan.png).
Debug 调试
======
## 连接调试器
| 开发板 | 调试器 |
| :----: | :----: |
| JTDO | TDO |
| JTDI | TDI |
| JTCK | TCK |
| JTMS | TMS |
| 3V3 | 3V3 |
| GND | GND |
## 修改配置文件
修改工程配置文件 `platformio.ini` 在下面添加
```ini
debug_tool = jlink
```
根据实际调试器型号选择。目前支持的调试器列表
* `jlink`
* `gd-link`
* `ft2232`
* `sipeed-rv-debugger`
* `altera-usb-blaster`
* `um232h`
* `rv-link`
## 一键调试
切换到 VS CODE 左侧的 `DEBUG` 界面, 点击绿色箭头即可进行调试。
![](./../assets/pio_debug_longan.png).

View File

@@ -1,50 +1,50 @@
PIO 配置
=====
## 安装 VS-CODE
VS CODE 是一款比较常用的开发工具。前往[VScode官网](https://code.visualstudio.com/ "VScode官网"),下载安装对应操作系统版本的安装包即可。
## 安装 PIO 插件
打开 VSCode -> 点击左侧扩展 -> 搜索 PlatformIO -> 点击安装插件 -> 等待安装完成 -> 重启 VSCODE
![](http://blog.sipeed.com/wp-content/uploads/2019/04/0d501a8515a735fba54e2f5de908cd1e.png)
## 安装 GD32V 平台定义
PIO 目前提供**命令行**与**图形界面**两种方式来安装。下面将分别介绍:
PS : 推荐命令行,因为能看到下载进度条。)
### 命令行
点击PIO图标 -> 点击左下方的New Terminal-> 在终端窗口中执行下面的安装指令
* 发布版 (稳定版本)
```
platformio platform install gd32v
```
* 开发版与Github同步
```
platformio platform install https://github.com/sipeed/platform-gd32v
```
![](./../assets/pio_install_gd32v.png)
注:受国内网络环境影响,安装过程需要较长时间,请耐心等待。
### 图形界面
打开VS CODE -> 点击左侧 PIO 图标 -> 点击左下方的 Open 选项 -> 点击 Platforms 页面 -> 点击 Advanced Installation 打开添加窗口
![](./../assets/pio_install_add_gd32v_step1.png)
在打开的窗口中输入下面的网址
```
https://github.com/sipeed/platform-gd32v.git
```
点击 Install 即可添加完成。
![](./../assets/pio_install_add_gd32v_step2.png)
耐心等待即可安装成功。 (安装失败多为网络原因, 请更换网络环境后再次尝试)
![](./../assets/pio_install_add_gd32v_step3.png)
PIO 配置
=====
## 安装 VS-CODE
VS CODE 是一款比较常用的开发工具。前往[VScode官网](https://code.visualstudio.com/ "VScode官网"),下载安装对应操作系统版本的安装包即可。
## 安装 PIO 插件
打开 VSCode -> 点击左侧扩展 -> 搜索 PlatformIO -> 点击安装插件 -> 等待安装完成 -> 重启 VSCODE
![](http://blog.sipeed.com/wp-content/uploads/2019/04/0d501a8515a735fba54e2f5de908cd1e.png)
## 安装 GD32V 平台定义
PIO 目前提供**命令行**与**图形界面**两种方式来安装。下面将分别介绍:
PS : 推荐命令行,因为能看到下载进度条。)
### 命令行
点击PIO图标 -> 点击左下方的New Terminal-> 在终端窗口中执行下面的安装指令
* 发布版 (稳定版本)
```
platformio platform install gd32v
```
* 开发版与Github同步
```
platformio platform install https://github.com/sipeed/platform-gd32v
```
![](./../assets/pio_install_gd32v.png)
注:受国内网络环境影响,安装过程需要较长时间,请耐心等待。
### 图形界面
打开VS CODE -> 点击左侧 PIO 图标 -> 点击左下方的 Open 选项 -> 点击 Platforms 页面 -> 点击 Advanced Installation 打开添加窗口
![](./../assets/pio_install_add_gd32v_step1.png)
在打开的窗口中输入下面的网址
```
https://github.com/sipeed/platform-gd32v.git
```
点击 Install 即可添加完成。
![](./../assets/pio_install_add_gd32v_step2.png)
耐心等待即可安装成功。 (安装失败多为网络原因, 请更换网络环境后再次尝试)
![](./../assets/pio_install_add_gd32v_step3.png)

View File

@@ -1,78 +1,78 @@
使用 RV-LINK
=========
## 什么是 RV-LINK
**RV-LINK** 是一个基于 RISC-V 开发板的仿真器固件,通过烧写 **RV-LINK** 固件, 可以将 **Sipeed Longan Nano** 开发板变成一个 `jtag` 调试器,用来调试另一块 Longan 或者其他支持 jtag 调试的开发板。 RV-LINK 项目地址: [https://gitee.com/zoomdy/RV-LINK](https://gitee.com/zoomdy/RV-LINK)
## 烧写 RV-LINK 固件
### 使用 PlatformIO 工程一键烧录
* 下载 RV-LINK 源码
项目源码下载地址:[http://dl.sipeed.com/LONGAN/Nano/Tools/RV-LINK-pio-src-v0.1.zip](http://dl.sipeed.com/LONGAN/Nano/Tools/RV-LINK-pio-src-v0.1.zip)
也可以从RV-LINK官方项目下载: [https://gitee.com/zoomdy/RV-LINK](https://gitee.com/zoomdy/RV-LINK)
* 使用 VSCODE 打开工程目录
将上面下载的源码解压到单独的文件夹
然后使用 VSCODE 打开源码文件夹
如下图所示:
![](./../assets/pio_open_rvlink.png)
通常使用 DFU 方式烧录固件,**不需要**修改配置文件。(使用 DFU 方式下载请安装 libusb 驱动, 参考[使用Zadig安装驱动](blink.md/#使用zadig安装驱动))
如果需要更改烧录方式,可以通过修改 `platformio.ini` 文件来修改, 具体配置方式请参考:[修改工程配置文件](blink.md/#工程配置文件)
* 使用 PIO 烧录固件
连接开发板,使开发板进入烧录模式后,点击左下角的箭头符号即可进行烧录。
烧录成功后可以看到开发板上的绿灯闪烁将开发板连接到电脑USB口之后可以在设备管理器中看到多出了一个串口设备。此时 Longan 板子就成功变成了 RV-LINK 调试器。
### 其他烧录方式
参考文档: [将 Longan Nano 开发板变成 RISC-V 仿真器](https://gitee.com/zoomdy/RV-LINK/wikis/%E5%B0%86%20Longan%20Nano%20%E5%BC%80%E5%8F%91%E6%9D%BF%E5%8F%98%E6%88%90%20RISC-V%20%E4%BB%BF%E7%9C%9F%E5%99%A8)
## 使用 RV-LINK 调试
### 连接开发板
将刷好 RV-LINK 固件的开发板与待调试开发板 jtag 连线按下表连接
| RV-LINK | 待调试开发板 |
| :----: | :----: |
| JTDO | JTDO |
| JTDI | JTDI |
| JTCK | JTCK |
| JTMS | JTMS |
| 3V3 | 3V3 |
| GND | GND |
#### WIN7 用户安装 GD 串口驱动
见此链接[安装 USB 串口驱动](https://gitee.com/zoomdy/RV-LINK/wikis/GDB%20%E4%BD%BF%E7%94%A8%20RV-LINK%20%E4%BB%BF%E7%9C%9F%E5%99%A8%E8%B0%83%E8%AF%95%20RISC-V%20%E7%A8%8B%E5%BA%8F?sort_id=1667650#%E5%AE%89%E8%A3%85-usb-%E4%B8%B2%E5%8F%A3%E9%A9%B1%E5%8A%A8)
### 在 PlatformIO IDE 中使用 RV-LINK
RV-LINK 在 PlatformIO IDE 可以和其他调试器一样,支持一键启动调试。
只需要在工程的 `platformio.ini` 配置文件中,指定调试器选项和调试器端口选项。
示例代码
```ini
[env:sipeed-longan-nano]
platform = gd32v
framework = gd32vf103-sdk
board = sipeed-longan-nano
monitor_speed = 115200
upload_protocol = rv-link ; rv-link下载选项
debug_tool = rv-link ; rv-link调试选项
debug_port = COM2 ; 使用rv-link 必填此项 调试器串口
```
### 在其他平台使用 RV-LINK
参考 [RV-LINK WIKI](https://gitee.com/zoomdy/RV-LINK/wikis/)
使用 RV-LINK
=========
## 什么是 RV-LINK
**RV-LINK** 是一个基于 RISC-V 开发板的仿真器固件,通过烧写 **RV-LINK** 固件, 可以将 **Sipeed Longan Nano** 开发板变成一个 `jtag` 调试器,用来调试另一块 Longan 或者其他支持 jtag 调试的开发板。 RV-LINK 项目地址: [https://gitee.com/zoomdy/RV-LINK](https://gitee.com/zoomdy/RV-LINK)
## 烧写 RV-LINK 固件
### 使用 PlatformIO 工程一键烧录
* 下载 RV-LINK 源码
项目源码下载地址:[http://dl.sipeed.com/LONGAN/Nano/Tools/RV-LINK-pio-src-v0.1.zip](http://dl.sipeed.com/LONGAN/Nano/Tools/RV-LINK-pio-src-v0.1.zip)
也可以从RV-LINK官方项目下载: [https://gitee.com/zoomdy/RV-LINK](https://gitee.com/zoomdy/RV-LINK)
* 使用 VSCODE 打开工程目录
将上面下载的源码解压到单独的文件夹
然后使用 VSCODE 打开源码文件夹
如下图所示:
![](./../assets/pio_open_rvlink.png)
通常使用 DFU 方式烧录固件,**不需要**修改配置文件。(使用 DFU 方式下载请安装 libusb 驱动, 参考[使用Zadig安装驱动](blink.md/#使用zadig安装驱动))
如果需要更改烧录方式,可以通过修改 `platformio.ini` 文件来修改, 具体配置方式请参考:[修改工程配置文件](blink.md/#工程配置文件)
* 使用 PIO 烧录固件
连接开发板,使开发板进入烧录模式后,点击左下角的箭头符号即可进行烧录。
烧录成功后可以看到开发板上的绿灯闪烁将开发板连接到电脑USB口之后可以在设备管理器中看到多出了一个串口设备。此时 Longan 板子就成功变成了 RV-LINK 调试器。
### 其他烧录方式
参考文档: [将 Longan Nano 开发板变成 RISC-V 仿真器](https://gitee.com/zoomdy/RV-LINK/wikis/%E5%B0%86%20Longan%20Nano%20%E5%BC%80%E5%8F%91%E6%9D%BF%E5%8F%98%E6%88%90%20RISC-V%20%E4%BB%BF%E7%9C%9F%E5%99%A8)
## 使用 RV-LINK 调试
### 连接开发板
将刷好 RV-LINK 固件的开发板与待调试开发板 jtag 连线按下表连接
| RV-LINK | 待调试开发板 |
| :----: | :----: |
| JTDO | JTDO |
| JTDI | JTDI |
| JTCK | JTCK |
| JTMS | JTMS |
| 3V3 | 3V3 |
| GND | GND |
#### WIN7 用户安装 GD 串口驱动
见此链接[安装 USB 串口驱动](https://gitee.com/zoomdy/RV-LINK/wikis/GDB%20%E4%BD%BF%E7%94%A8%20RV-LINK%20%E4%BB%BF%E7%9C%9F%E5%99%A8%E8%B0%83%E8%AF%95%20RISC-V%20%E7%A8%8B%E5%BA%8F?sort_id=1667650#%E5%AE%89%E8%A3%85-usb-%E4%B8%B2%E5%8F%A3%E9%A9%B1%E5%8A%A8)
### 在 PlatformIO IDE 中使用 RV-LINK
RV-LINK 在 PlatformIO IDE 可以和其他调试器一样,支持一键启动调试。
只需要在工程的 `platformio.ini` 配置文件中,指定调试器选项和调试器端口选项。
示例代码
```ini
[env:sipeed-longan-nano]
platform = gd32v
framework = gd32vf103-sdk
board = sipeed-longan-nano
monitor_speed = 115200
upload_protocol = rv-link ; rv-link下载选项
debug_tool = rv-link ; rv-link调试选项
debug_port = COM2 ; 使用rv-link 必填此项 调试器串口
```
### 在其他平台使用 RV-LINK
参考 [RV-LINK WIKI](https://gitee.com/zoomdy/RV-LINK/wikis/)

View File

@@ -1,9 +1,9 @@
---
title: 使用 Sipeed 调试器
---
## Sipeed rv debugger
## Sipeed rv debugger lite
---
title: 使用 Sipeed 调试器
---
## Sipeed rv debugger
## Sipeed rv debugger lite

View File

@@ -1,87 +1,87 @@
---
title: 板卡介绍
keywords: Linux, Longan, H618, SBC, ARM
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 简介
Longan Pi 3H 是基于 Longan Module 3H 核心板的 ARM Linux 开发板 H618 (Quad core ARM Cortex-A53@1.5Ghz , 64-bit) 为主控核心,板载最大 4GB 64bit LPDDR4支持 HDMI 4K 显示输出。支持千兆网口,板载 wifi6/BT。
## 基础参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>H618</td>
</tr>
<tr>
<td>CPU 处理器</td>
<td>ARM Cortex-A53@1.5Ghz <br>· 每核支持 32 KB L1 I-cache + 32 KB L1 D-cache <br>· 四核共享 1MB L2 Cache</td>
</tr>
<tr>
<td>图形处理器</td>
<td>Arm Mali-G31 <br>· OpenCL 2.0<br>· OpenGL ES 1.0/2.0/3.2<br>· Vulkan 1.1</td>
</tr>
<tr>
<td>视频解码器</td>
<td>· 支持 H.264 BP/MP/ HP@L4.2 解码,最大 4K 分辨率<br>· 支持 AVS2 JiZhun 10bit 解码,最大 4K 分辨率 <br>· 解码性能最大 4K@60fps </td>
</tr>
<tr>
<td>视频编码器</td>
<td>· 支持 H.264 BP/MP/HP 编码,最大 4K 分辨率<br>· 仅支持 I 帧和 P 帧<br>· 编码性能最大 4K@25fps </td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 1/2/4 GB 64bits LPDDR4<br></td>
</tr>
<tr>
<td>存储</td>
<td>· eMMC: 可选空贴、32G<br>· 支持 TF 卡</td>
</tr>
<tr>
<td>以太网</td>
<td>· 千兆以太网接口</td>
</tr>
<tr>
<td>USB</td>
<td>· 2 x USBA Host <br>· 1 x USBC OTG</td>
</tr>
<tr>
<td>显示接口</td>
<td>· 1 x 标准 HDMI 接口 </td>
</tr>
<tr>
<td>GPIO</td>
<td>· UART<br>· IIC<br>· SPI</td>
</tr>
</tbody>
</table>
### 硬件资料下载
[LonganPi3H硬件资料](https://dl.sipeed.com/shareURL/LONGAN/LonganPi3H)
## 其他链接
[Github](https://github.com/sipeed/LonganPi-3H-SDK)
[淘宝]()
QQ群:
Telegram: 
论坛Maixhub.com/discussion
---
title: 板卡介绍
keywords: Linux, Longan, H618, SBC, ARM
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 简介
Longan Pi 3H 是基于 Longan Module 3H 核心板的 ARM Linux 开发板 H618 (Quad core ARM Cortex-A53@1.5Ghz , 64-bit) 为主控核心,板载最大 4GB 64bit LPDDR4支持 HDMI 4K 显示输出。支持千兆网口,板载 wifi6/BT。
## 基础参数
<table>
<thead>
<tr>
<th colspan=2>主控参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>主控芯片</td>
<td>H618</td>
</tr>
<tr>
<td>CPU 处理器</td>
<td>ARM Cortex-A53@1.5Ghz <br>· 每核支持 32 KB L1 I-cache + 32 KB L1 D-cache <br>· 四核共享 1MB L2 Cache</td>
</tr>
<tr>
<td>图形处理器</td>
<td>Arm Mali-G31 <br>· OpenCL 2.0<br>· OpenGL ES 1.0/2.0/3.2<br>· Vulkan 1.1</td>
</tr>
<tr>
<td>视频解码器</td>
<td>· 支持 H.264 BP/MP/ HP@L4.2 解码,最大 4K 分辨率<br>· 支持 AVS2 JiZhun 10bit 解码,最大 4K 分辨率 <br>· 解码性能最大 4K@60fps </td>
</tr>
<tr>
<td>视频编码器</td>
<td>· 支持 H.264 BP/MP/HP 编码,最大 4K 分辨率<br>· 仅支持 I 帧和 P 帧<br>· 编码性能最大 4K@25fps </td>
</tr>
<tr>
<th colspan=2>硬件特性</th>
</tr>
<tr>
<td>RAM</td>
<td>· 1/2/4 GB 64bits LPDDR4<br></td>
</tr>
<tr>
<td>存储</td>
<td>· eMMC: 可选空贴、32G<br>· 支持 TF 卡</td>
</tr>
<tr>
<td>以太网</td>
<td>· 千兆以太网接口</td>
</tr>
<tr>
<td>USB</td>
<td>· 2 x USBA Host <br>· 1 x USBC OTG</td>
</tr>
<tr>
<td>显示接口</td>
<td>· 1 x 标准 HDMI 接口 </td>
</tr>
<tr>
<td>GPIO</td>
<td>· UART<br>· IIC<br>· SPI</td>
</tr>
</tbody>
</table>
### 硬件资料下载
[LonganPi3H硬件资料](https://dl.sipeed.com/shareURL/LONGAN/LonganPi3H)
## 其他链接
[Github](https://github.com/sipeed/LonganPi-3H-SDK)
[淘宝]()
QQ群:
Telegram: 
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com

View File

@@ -1,42 +1,42 @@
---
title: 开箱体验
keywords: Linux, Longan, H618, SBC, ARM, unbox
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 开箱内容
## 配件
TBD
## 组装板卡
## 板卡硬件说明
### 硬件资料下载
[板卡规格书]()
[底板原理图]()
[底板点位图]()
[底板尺寸图]()
[模型文件]()
## 其他链接
[Github](https://github.com/sipeed/LonganPi-3H-SDK)
[淘宝]()
[Sipeed 下载站]()
QQ群:
Telegram: 
论坛Maixhub.com/discussion
---
title: 开箱体验
keywords: Linux, Longan, H618, SBC, ARM, unbox
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 开箱内容
## 配件
TBD
## 组装板卡
## 板卡硬件说明
### 硬件资料下载
[板卡规格书]()
[底板原理图]()
[底板点位图]()
[底板尺寸图]()
[模型文件]()
## 其他链接
[Github](https://github.com/sipeed/LonganPi-3H-SDK)
[淘宝]()
[Sipeed 下载站]()
QQ群:
Telegram: 
论坛Maixhub.com/discussion
联系邮箱support@sipeed.com

View File

@@ -1,60 +1,60 @@
---
title: 镜像集合
keywords: Linux, Longan, H618, SBC, ARM, image
update:
- date: 2023-04-07
version: v1.1
author: ztd
content:
- Add Debian CLI image
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## Sipeed官方镜像
### Debian
Sipeed 官方镜像基于 Debian 系统修改适配。
默认镜像的帐号密码配置如下:
账户:`root`,密码: `root`
账户: `sipeed`,密码:`licheepi`
**注意不建议用root用户登陆桌面。**
![debian](./assets/images/debian.png)
![debian_neofetch](./assets/images/debian_neofetch.png)
#### Changelog
20231220
- 发布初版镜像
20240106
- 更新EMMC启动支持
20240110
- 添加 SD、EMMC 启动可烧录镜像文件
- 修复 DNS 问题
20240226
- 添加 GPIO sysfs
- 允许使用 root 用户登陆 SSH
- 添加 USB gadget 功能
20240407
- 添加 Debian CLI 版本镜像
下载地址:
百度网盘:[点我](https://pan.baidu.com/s/1VGaARAq6dbicFy4VOytRuw) 提取码: cd68
Mega 云盘:[点我](https://mega.nz/folder/gt50zDoC#LgRvHVCzWTUgGohKoMtlqA)
### Android 12
20240226
- 发布初版镜像无wifi/bt支持
下载地址:
百度网盘:[点我](https://pan.baidu.com/s/1t-cNlIIU0P8VDmkC518W6Q) 提取码: rb4d
---
title: 镜像集合
keywords: Linux, Longan, H618, SBC, ARM, image
update:
- date: 2023-04-07
version: v1.1
author: ztd
content:
- Add Debian CLI image
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## Sipeed官方镜像
### Debian
Sipeed 官方镜像基于 Debian 系统修改适配。
默认镜像的帐号密码配置如下:
账户:`root`,密码: `root`
账户: `sipeed`,密码:`licheepi`
**注意不建议用root用户登陆桌面。**
![debian](./assets/images/debian.png)
![debian_neofetch](./assets/images/debian_neofetch.png)
#### Changelog
20231220
- 发布初版镜像
20240106
- 更新EMMC启动支持
20240110
- 添加 SD、EMMC 启动可烧录镜像文件
- 修复 DNS 问题
20240226
- 添加 GPIO sysfs
- 允许使用 root 用户登陆 SSH
- 添加 USB gadget 功能
20240407
- 添加 Debian CLI 版本镜像
下载地址:
百度网盘:[点我](https://pan.baidu.com/s/1VGaARAq6dbicFy4VOytRuw) 提取码: cd68
Mega 云盘:[点我](https://mega.nz/folder/gt50zDoC#LgRvHVCzWTUgGohKoMtlqA)
### Android 12
20240226
- 发布初版镜像无wifi/bt支持
下载地址:
百度网盘:[点我](https://pan.baidu.com/s/1t-cNlIIU0P8VDmkC518W6Q) 提取码: rb4d
Mega 云盘:[点我](https://mega.nz/folder/Z14klTRI#l4aMYdxgFzUf-SirkvdOhg)

View File

@@ -1,75 +1,75 @@
---
title: 烧录镜像
keywords: Linux, Longan, H618, SBC, ARM, image
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 准备工作
### 获取镜像
参见上一章[镜像集合](https://wiki.sipeed.com/hardware/zh/longan/h618/lpi3h/3_images.html),选取需要的镜像下载。
### 获取烧录工具
烧录镜像至 SD 卡的工具常见的有 balenaEtcherrufus 等,这里以 balenaEtcher 为例,首先去[balenaEtcher官网](https://etcher.balena.io/#download-etcher)下载并安装该软件。
Linux 下也可以使用 dd 命令直接写入。
## 烧录镜像
### 烧录 Linux 镜像至 SD 卡
准备好要烧录的镜像后,打开 balenaEtcher先选择要烧录的镜像文件
![select_image](./assets/burn_image/select_image.png)
然后选择要烧录的目标设备:
![select_device](./assets/burn_image/select_device.png)
最后点击烧录,等待烧录完成后,就得到了包含启动镜像的 SD 卡:
![flash_image](./assets/burn_image/flash_image.png)
Windows 系统和 Linux 的步骤类似。
### 烧录 Linux 镜像至 EMMC
**注意需要使用20240106及以上版本的镜像**
先准备一张启动 TF 卡,进入到系统,然后使用 SCP 等工具将 EMMC 镜像文件拷贝到 TF 卡的系统中,然后使用 dd 命令将镜像文件写入 EMMC
如何确定EMMC在系统内的节点:
```
ls /dev/mmcblk* | grep boot | head -n 1 | sed -e 's/boot0//g'
```
```shell
# 假设镜像文件复制到 /opt/ 目录下
# 将X替换为上面得到的节点
dd if=/opt/your_image_file of=/dev/mmcblkX
sync
```
等到烧录完成后,拔掉 SD 卡即可从EMMC进入系统。
若要使用 EMMC 启动并使用SD卡扩容需要确保SD卡已格式化其中不包含启动镜像否则因为优先级的问题可能会变为SD卡启动。
### 烧录安卓镜像至 SD 卡
**注意,安卓镜像不能使用 balenaEtcher 进行烧录,需要使用 PhoenixCard 烧录后才能启动。**
首先下载网盘中的 PhoenixCard 工具,打开后选择第二项:启动卡。将安卓镜像烧录到 TF 卡中即可使用。
![flash_to_sd](./assets/burn_image/flash_to_sd.png)
### 烧录安卓镜像至 EMMC
打开 PhoenixCard选择第一项量产卡。烧录安卓镜像到 TF 卡中然后将TF卡插入到底板上电此时会自动将安卓镜像烧录到 EMMC 中,等待烧录完成后拔掉 TF 卡即可使用 EMMC 的中安卓镜像。
![flash_to_emmc](./assets/burn_image/flash_to_emmc.png)
---
title: 烧录镜像
keywords: Linux, Longan, H618, SBC, ARM, image
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 准备工作
### 获取镜像
参见上一章[镜像集合](https://wiki.sipeed.com/hardware/zh/longan/h618/lpi3h/3_images.html),选取需要的镜像下载。
### 获取烧录工具
烧录镜像至 SD 卡的工具常见的有 balenaEtcherrufus 等,这里以 balenaEtcher 为例,首先去[balenaEtcher官网](https://etcher.balena.io/#download-etcher)下载并安装该软件。
Linux 下也可以使用 dd 命令直接写入。
## 烧录镜像
### 烧录 Linux 镜像至 SD 卡
准备好要烧录的镜像后,打开 balenaEtcher先选择要烧录的镜像文件
![select_image](./assets/burn_image/select_image.png)
然后选择要烧录的目标设备:
![select_device](./assets/burn_image/select_device.png)
最后点击烧录,等待烧录完成后,就得到了包含启动镜像的 SD 卡:
![flash_image](./assets/burn_image/flash_image.png)
Windows 系统和 Linux 的步骤类似。
### 烧录 Linux 镜像至 EMMC
**注意需要使用20240106及以上版本的镜像**
先准备一张启动 TF 卡,进入到系统,然后使用 SCP 等工具将 EMMC 镜像文件拷贝到 TF 卡的系统中,然后使用 dd 命令将镜像文件写入 EMMC
如何确定EMMC在系统内的节点:
```
ls /dev/mmcblk* | grep boot | head -n 1 | sed -e 's/boot0//g'
```
```shell
# 假设镜像文件复制到 /opt/ 目录下
# 将X替换为上面得到的节点
dd if=/opt/your_image_file of=/dev/mmcblkX
sync
```
等到烧录完成后,拔掉 SD 卡即可从EMMC进入系统。
若要使用 EMMC 启动并使用SD卡扩容需要确保SD卡已格式化其中不包含启动镜像否则因为优先级的问题可能会变为SD卡启动。
### 烧录安卓镜像至 SD 卡
**注意,安卓镜像不能使用 balenaEtcher 进行烧录,需要使用 PhoenixCard 烧录后才能启动。**
首先下载网盘中的 PhoenixCard 工具,打开后选择第二项:启动卡。将安卓镜像烧录到 TF 卡中即可使用。
![flash_to_sd](./assets/burn_image/flash_to_sd.png)
### 烧录安卓镜像至 EMMC
打开 PhoenixCard选择第一项量产卡。烧录安卓镜像到 TF 卡中然后将TF卡插入到底板上电此时会自动将安卓镜像烧录到 EMMC 中,等待烧录完成后拔掉 TF 卡即可使用 EMMC 的中安卓镜像。
![flash_to_emmc](./assets/burn_image/flash_to_emmc.png)

View File

@@ -1,232 +1,232 @@
---
title: 桌面系统基础使用
keywords: Linux, Longan, H618, SBC, ARM, Debian, Desktop
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 登录系统
本篇文档以默认的 Debian 桌面系统为例,介绍基础系统使用操作。
默认镜像的帐号密码配置如下:
账户: `sipeed`,密码:`licheepi`
账户:`root`,密码: `root`
镜像默认开启了自动登陆,登陆用户为 `sipeed`
若不需要自动登陆,将 `/usr/share/lightdm/lightdm.conf.d/01_debian.conf` 文件中的 `autologin-user=sipeed` 注释掉即可。
## 打开命令行
在 LonganPi 3H 的 Debian 图形化系统中,使用快捷键 `Ctrl` + `Alt` + `T` 三个组合键可以直接打开命令行终端,来快速方便地操作系统。
## 连接网络
桌面系统默认使用 connman 来管理网络连接。
可以在左上角的应用菜单中找到 `connman settings`,点击后桌面右上角会出现一个网络图标,点击右上角的网络图标即可新建网络连接和查看网络连接信息:
![connman_enable](./assets/desktop/connman_enable.png)
### 连接有线网络
串口中可以通过 connmanctl 来启用有线网络连接和查看相关信息:
```shell
connmanctl enable ethernet
```
LonganPi 3H 有一个千兆网络接口;将已经接通网络的网线插入到 LonganPi 3H 的网络接口中,就能实现连接有线网络了,可以点击右上角的图标看到连接信息:
![connman_connect_eth](./assets/desktop/connman_connect_eth.png)
### 连接无线网络
LonganPi 3H 板载无线模组,支持蓝牙和 wifi 。
图形界面方式:
点击右上角的网络图标,切换到 wifi 连接的页面,选中想要连接的 wifi 再点击 connect 即可:
![connman_connect_wifi](./assets/desktop/connman_connect_wifi.png)
命令行方式:
可以使用 connmanctl 来启用 wifi 连接和查看相关信息:
```shell
connmanctl enable wifi
```
打开命令行,使用 `wpa_supplicant` 可以连接 wifi。下面的步骤需要切换到 root 用户执行:
```shell
sudo -i
nano /etc/wpa_supplicant.conf
```
创建 wpa_supplicant.conf 文件并填入 wifi 的 ssid 和 psk 信息:
```txt
network={
ssid="your_wifi_name"
#psk="your_wifi_password"
}
```
填写完成后运行下面的命令即可连接 wifi。
```shell
wpa_supplicant -D nl80211 -i 网卡名 -c /etc/wpa_supplicant.conf &
```
若连接后没有 IP 地址,用 dhcp 获取一个ip地址即可
```shell
dhclient
```
## 连接蓝牙
串口中,可以通过 connmanctl 启用蓝牙连接和查看相关信息:
```shell
connmanctl enable bluetooth
```
桌面系统默认使用 blueman 来管理蓝牙连接。
找到桌面右上角的蓝牙图标,确认蓝牙功能已经打开,若没打开,右键单击蓝牙图标即可打开:
![bluetooth_icon.png](./assets/desktop/bluetooth_icon.png)
打开后,左键单击蓝牙图标,可以看到蓝牙设备扫描界面
点击该界面左上角的Search即可搜索蓝牙设备将蓝牙键鼠、蓝牙耳机等设备的配对模式打开即可被扫描到。
右键选择想要连接的设备即可连接。成功连接后还可以右键该设备点击Trust下次扫描到即可自动连接。
![bluetooth_devices.png](./assets/desktop/bluetooth_devices.png)
若蓝牙图形管理界面无法搜索到设备,也可以现在命令行界面下使用`bluetoothctl`来进行配对,步骤如下:
```shell
bluetoothctl
scan on
# 找到想要配对设备的mac地址
pair 目标设备的mac地址
connect 目标设备的mac地址
```
## 软件安装
在完成网络连接后,即可进行软件包的更新,安装。
### 软件源
在 Debian 系统中,可以使用 apt (Advanced Packaging Tool) 来进行软件的安装。
安装软件的时候,会从系统指定的软件网站中搜索并下载目标软件,当目标网站访问困难(比如服务器距离太远或者服务器网络不佳)时,可以手动设置编辑软件源网站,改成距离自己当前最近的源,来减少下载时间。
软件源默认使用 `/etc/apt/sources.list` 文件里面的内容,有额外需要的话可以自行更改。
### 升级软件
使用 `sudo apt update` 可以更新软件列表,一般在更换软件源之后需要使用这个命令。
使用这个命令前,先用 `date` 命令查看一下时间,若系统时间有误或连接网络后没有自动更新时间,可以手动更新一下,确保软件源内的软件包是最新版本:
```shell
sudo date -s "20230717 12:00:00"
```
然后使用 `sudo apt upgrade package_name` 可以更新名称为 `package_name` 的软件。
### 安装程序
可以借助于 apt 命令来安装软件;比如使用 `sudo apt install package_name` 命令来安装 `package_name`,将 `package_name` 替换成给你想要安装的软件包名称即可。
## SSH
如果你的镜像里没有 ssh 或 sshd 指令,可以先通过以下指令安装:
```bash
sudo apt install ssh openssh-server
```
安装之后即可使用 ssh 来远程登录到其它机器操作,或者在其它机器上使用 ssh 登录到 LicheePi 4A
还可以使用 scp 进行文件传输:
```bash
scp demo.zip sipeed@192.168.1.9:~/
```
## 输入法
如果你需要进行非 ascii 的字符输入,就需要安装输入法,这里以中文输入法为例,其它语言请自行查找相关教程。
先安装 ibus-libpinyin
```bash
sudo apt install -y ibus-libpinyin
```
> 注意这里会消耗约200MB磁盘空间
安装完后,重启板卡,即可在 Applications 下看到 `IBus Preference` 选项,点击进入设置。
![pinyin_cfg0](./assets/desktop/pinyin_cfg0.png)
在出现的界面里点击 `Input Method`,点击 `Add`,选择 `Chinese`,选择 `Intelligent Pinyin`,点击 `Add`,即可添加中文拼音输入法。
![pinyin_cfg1](./assets/desktop/pinyin_cfg1.png)
在右上角点击输入法图标,可见以下选项,选择 `Chinese - Intelligent Pinyin` 即可。
![pinyin_cfg2](./assets/desktop/pinyin_cfg2.png)
此时即可在系统中顺利输入中文。
## 浏览器
系统内置了 Firefox 浏览器,点击桌面下方的浏览器图标即可使用:
![browser_location](./assets/desktop/browser_location.png)
效果如下:
![firefox_usage](./assets/desktop/firefox_usage.png)
## 播放器
可以通过命令安装 VLC 播放器:
```shell
sudo apt install vlc
```
安装完成后播放视频的效果如下:
![vlc_player_usage](./assets/desktop/vlc_player_usage.png)
## 编程开发
### Python
系统已内置了 python3 环境,可以在终端直接运行 `python3` 命令:
![python_usage](./assets/desktop/python_usage.png)
如果需要安装Python包则使用`sudo apt install python3-XXX`
比如安装pyserial包`sudo apt install python3-serial` 即可。
### C
需要安装 `build-essential`占用约800MB磁盘空间
```bash
sudo apt install build-essential
```
然后即可使用 gcc 进行相关操作:
![gcc_usage](./assets/desktop/gcc_usage.png)
## 更多
---
title: 桌面系统基础使用
keywords: Linux, Longan, H618, SBC, ARM, Debian, Desktop
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## 登录系统
本篇文档以默认的 Debian 桌面系统为例,介绍基础系统使用操作。
默认镜像的帐号密码配置如下:
账户: `sipeed`,密码:`licheepi`
账户:`root`,密码: `root`
镜像默认开启了自动登陆,登陆用户为 `sipeed`
若不需要自动登陆,将 `/usr/share/lightdm/lightdm.conf.d/01_debian.conf` 文件中的 `autologin-user=sipeed` 注释掉即可。
## 打开命令行
在 LonganPi 3H 的 Debian 图形化系统中,使用快捷键 `Ctrl` + `Alt` + `T` 三个组合键可以直接打开命令行终端,来快速方便地操作系统。
## 连接网络
桌面系统默认使用 connman 来管理网络连接。
可以在左上角的应用菜单中找到 `connman settings`,点击后桌面右上角会出现一个网络图标,点击右上角的网络图标即可新建网络连接和查看网络连接信息:
![connman_enable](./assets/desktop/connman_enable.png)
### 连接有线网络
串口中可以通过 connmanctl 来启用有线网络连接和查看相关信息:
```shell
connmanctl enable ethernet
```
LonganPi 3H 有一个千兆网络接口;将已经接通网络的网线插入到 LonganPi 3H 的网络接口中,就能实现连接有线网络了,可以点击右上角的图标看到连接信息:
![connman_connect_eth](./assets/desktop/connman_connect_eth.png)
### 连接无线网络
LonganPi 3H 板载无线模组,支持蓝牙和 wifi 。
图形界面方式:
点击右上角的网络图标,切换到 wifi 连接的页面,选中想要连接的 wifi 再点击 connect 即可:
![connman_connect_wifi](./assets/desktop/connman_connect_wifi.png)
命令行方式:
可以使用 connmanctl 来启用 wifi 连接和查看相关信息:
```shell
connmanctl enable wifi
```
打开命令行,使用 `wpa_supplicant` 可以连接 wifi。下面的步骤需要切换到 root 用户执行:
```shell
sudo -i
nano /etc/wpa_supplicant.conf
```
创建 wpa_supplicant.conf 文件并填入 wifi 的 ssid 和 psk 信息:
```txt
network={
ssid="your_wifi_name"
#psk="your_wifi_password"
}
```
填写完成后运行下面的命令即可连接 wifi。
```shell
wpa_supplicant -D nl80211 -i 网卡名 -c /etc/wpa_supplicant.conf &
```
若连接后没有 IP 地址,用 dhcp 获取一个ip地址即可
```shell
dhclient
```
## 连接蓝牙
串口中,可以通过 connmanctl 启用蓝牙连接和查看相关信息:
```shell
connmanctl enable bluetooth
```
桌面系统默认使用 blueman 来管理蓝牙连接。
找到桌面右上角的蓝牙图标,确认蓝牙功能已经打开,若没打开,右键单击蓝牙图标即可打开:
![bluetooth_icon.png](./assets/desktop/bluetooth_icon.png)
打开后,左键单击蓝牙图标,可以看到蓝牙设备扫描界面
点击该界面左上角的Search即可搜索蓝牙设备将蓝牙键鼠、蓝牙耳机等设备的配对模式打开即可被扫描到。
右键选择想要连接的设备即可连接。成功连接后还可以右键该设备点击Trust下次扫描到即可自动连接。
![bluetooth_devices.png](./assets/desktop/bluetooth_devices.png)
若蓝牙图形管理界面无法搜索到设备,也可以现在命令行界面下使用`bluetoothctl`来进行配对,步骤如下:
```shell
bluetoothctl
scan on
# 找到想要配对设备的mac地址
pair 目标设备的mac地址
connect 目标设备的mac地址
```
## 软件安装
在完成网络连接后,即可进行软件包的更新,安装。
### 软件源
在 Debian 系统中,可以使用 apt (Advanced Packaging Tool) 来进行软件的安装。
安装软件的时候,会从系统指定的软件网站中搜索并下载目标软件,当目标网站访问困难(比如服务器距离太远或者服务器网络不佳)时,可以手动设置编辑软件源网站,改成距离自己当前最近的源,来减少下载时间。
软件源默认使用 `/etc/apt/sources.list` 文件里面的内容,有额外需要的话可以自行更改。
### 升级软件
使用 `sudo apt update` 可以更新软件列表,一般在更换软件源之后需要使用这个命令。
使用这个命令前,先用 `date` 命令查看一下时间,若系统时间有误或连接网络后没有自动更新时间,可以手动更新一下,确保软件源内的软件包是最新版本:
```shell
sudo date -s "20230717 12:00:00"
```
然后使用 `sudo apt upgrade package_name` 可以更新名称为 `package_name` 的软件。
### 安装程序
可以借助于 apt 命令来安装软件;比如使用 `sudo apt install package_name` 命令来安装 `package_name`,将 `package_name` 替换成给你想要安装的软件包名称即可。
## SSH
如果你的镜像里没有 ssh 或 sshd 指令,可以先通过以下指令安装:
```bash
sudo apt install ssh openssh-server
```
安装之后即可使用 ssh 来远程登录到其它机器操作,或者在其它机器上使用 ssh 登录到 LicheePi 4A
还可以使用 scp 进行文件传输:
```bash
scp demo.zip sipeed@192.168.1.9:~/
```
## 输入法
如果你需要进行非 ascii 的字符输入,就需要安装输入法,这里以中文输入法为例,其它语言请自行查找相关教程。
先安装 ibus-libpinyin
```bash
sudo apt install -y ibus-libpinyin
```
> 注意这里会消耗约200MB磁盘空间
安装完后,重启板卡,即可在 Applications 下看到 `IBus Preference` 选项,点击进入设置。
![pinyin_cfg0](./assets/desktop/pinyin_cfg0.png)
在出现的界面里点击 `Input Method`,点击 `Add`,选择 `Chinese`,选择 `Intelligent Pinyin`,点击 `Add`,即可添加中文拼音输入法。
![pinyin_cfg1](./assets/desktop/pinyin_cfg1.png)
在右上角点击输入法图标,可见以下选项,选择 `Chinese - Intelligent Pinyin` 即可。
![pinyin_cfg2](./assets/desktop/pinyin_cfg2.png)
此时即可在系统中顺利输入中文。
## 浏览器
系统内置了 Firefox 浏览器,点击桌面下方的浏览器图标即可使用:
![browser_location](./assets/desktop/browser_location.png)
效果如下:
![firefox_usage](./assets/desktop/firefox_usage.png)
## 播放器
可以通过命令安装 VLC 播放器:
```shell
sudo apt install vlc
```
安装完成后播放视频的效果如下:
![vlc_player_usage](./assets/desktop/vlc_player_usage.png)
## 编程开发
### Python
系统已内置了 python3 环境,可以在终端直接运行 `python3` 命令:
![python_usage](./assets/desktop/python_usage.png)
如果需要安装Python包则使用`sudo apt install python3-XXX`
比如安装pyserial包`sudo apt install python3-serial` 即可。
### C
需要安装 `build-essential`占用约800MB磁盘空间
```bash
sudo apt install build-essential
```
然后即可使用 gcc 进行相关操作:
![gcc_usage](./assets/desktop/gcc_usage.png)
## 更多
欢迎投稿~ 投稿接受后可得¥5150$1~20优惠券

View File

@@ -1,247 +1,247 @@
---
title: 外设使用
keywords: Linux, Longan, H618, SBC, ARM, Peripheral
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## SoC 相关
### CPU 运行频率
```shell
sudo cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq
```
单位为 KHz
注意系统自带温控策略,当系统过于空闲或者温度过高时,都会降频。
## PWM
TODO
## GPIO
![io_map](./assets/peripheral/io_map.jpeg)
![pin_num](./assets/peripheral/pin_num.png)
参考上面的两个表格,可以找到要使用的 GPIO 对应的位置和序号,以点亮底板上的两个 LED 灯为例,可以使用命令在用户空间操作对应的 GPIO
使用前先检查 GPIO 是否被占用
```shell
sudo cat /sys/kernel/debug/gpio
```
```shell
num=194
echo ${num} > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio${num}/direction
echo 0 > /sys/class/gpio/gpio${num}/value
num=196
echo ${num} > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio${num}/direction
echo 0 > /sys/class/gpio/gpio${num}/value
```
除了上述方法外,还可以通过 C 语言的 libgpiod 库来操作 GPIO下面仍然以底板上的 LED 灯为例
```c
#include <gpiod.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int i;
int ret;
struct gpiod_chip * chip;
struct gpiod_line * line;
chip = gpiod_chip_open("/dev/gpiochip0");
if(chip == NULL)
{
printf("gpiod_chip_open error\n");
return -1;
}
line = gpiod_chip_get_line(chip, 194);
if(line == NULL)
{
printf("gpiod_chip_get_line error\n");
gpiod_line_release(line);
}
ret = gpiod_line_request_output(line,"gpio",0);
if(ret < 0)
{
printf("gpiod_line_request_output error\n");
gpiod_chip_close(chip);
}
for(i = 0; i < 10; i++)
{
gpiod_line_set_value(line,1);
sleep(1);
gpiod_line_set_value(line,0);
sleep(1);
}
gpiod_line_release(line);
gpiod_chip_close(chip);
return 0;
}
```
首先安装需要的依赖:
```shell
sudo apt update
sudo apt install build-essential libgpiod-dev gpiod
```
编译后,需要使用 root 权限来执行程序:
```shell
gcc gpio.c -I /usr/include/ -L /usr/lib/aarch64-linux-gnu/ -lgpiod -o gpio
sudo ./gpio
```
libgpiod 也提供了一些命令来操作 gpio常用的命令如下
gpiodetect列出所有的 GPIO 控制器
```shell
sudo gpiodetect
```
gpioinfo列出 GPIO 控制器的引脚情况,可以查看哪些引脚已经被使用
```shell
sudo gpioinfo gpiochip0
```
gpioset设置 GPIO 引脚的状态
```shell
sudo gpioset gpiochip0 196=0
```
gpioget获取 GPIO 引脚状态
```shell
sudo gpioget gpiochip0 196
```
## UART
### 系统串口
LonganPi 3H 的系统串口是 UART0,在侧边插针中有引出。
![uart_pin](./assets/peripheral/uart_pin.png)
你可以使用 USB 转串口模块连接该串口,即 `U0-RX``U0-TX`,注意交叉连接,以及 GND 连接(下图中还多接了一根供电线,若用 typeC 口供电可以不接这根供电线)。
![uart_connect](./assets/peripheral/uart_connect.png)
连接完成后即可使用串口工具进行通信Windows 下推荐 `XShell``mobaterm`Linux下推荐 `minicom`
设置串口波特率为 `115200`,即可在串口终端下登录并进行指令操作:
> 注:刚连接后可以敲几个回车查看是否有反应,如果没有反应则检查接线或者串口配置
### 一般串口
除系统串口 UART0 外,设备树中也默认使能了 UART1UART2UART3UART4 串口,可以根据需要使用。
#### 查看串口设备
```bash
ls /dev/ttyS*
```
#### 查看串口的波特率等信息
```bash
stty -F /dev/ttyS1 -a
```
#### 设置串口波特率、数据模式
```bash
stty -F /dev/ttyS1 ispeed 115200 ospeed 115200 cs8
```
#### 查看串口数据
```bash
cat /dev/ttyS1
```
#### 发送串口数据
```bash
echo "LonganPi3H" > /dev/ttyS1
```
#### 其它方法
也可以使用`minicom`或者pyserial库进行串口操作请用户自行查找相关资料使用。若要使用非常见波特率可以使用`picocom`
## I2C
TODO
## SPI
TODO
## HDMI 显示
LonganPi 3H 最高支持 4k 分辨率的显示,效果如图所示:
![hdmi_connect](./assets/peripheral/hdmi_connect.jpg)
若插入 HDMI 显示器后没有显示,可以尝试在命令行中使用 xrandr 来更换显示配置参数。
首先导出 DISPLAY 变量
```shell
export DISPLAY=:0.0
```
然后用 xrandr 查看可用的参数:
```shell
sipeed@lpi3h-ce8e:~$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 255mm
x 220mm
1920x1080 60.00*+ 60.00 59.94
1400x1050 59.95
1280x1024 75.02 60.02
1440x900 59.90
1280x960 60.00
1152x864 75.00
1280x720 60.00 59.94
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
```
根据上述命令的输出,我们可以尝试更换分辨率,帧率等配置,比如更换为 1440x900 分辨率:
```shell
xrandr xrandr --output HDMI-1 --mode 1440x900
```
有些参数可能会导致屏幕不亮,遇到插入 HDMI 显示器无显示时,可以用这个命令来调整至能亮的显示参数,也可以在系统设置中的 Dispaly 图形化菜单中调节。
若发现使用较高分辨率时有闪屏问题,可以尝试在图形化的设置显示的菜单中降低刷新率。
## HDMI 音频
TODO
## GPU
TODO
## 其它
---
title: 外设使用
keywords: Linux, Longan, H618, SBC, ARM, Peripheral
update:
- date: 2023-12-08
version: v1.0
author: ztd
content:
- Release docs
---
## SoC 相关
### CPU 运行频率
```shell
sudo cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq
```
单位为 KHz
注意系统自带温控策略,当系统过于空闲或者温度过高时,都会降频。
## PWM
TODO
## GPIO
![io_map](./assets/peripheral/io_map.jpeg)
![pin_num](./assets/peripheral/pin_num.png)
参考上面的两个表格,可以找到要使用的 GPIO 对应的位置和序号,以点亮底板上的两个 LED 灯为例,可以使用命令在用户空间操作对应的 GPIO
使用前先检查 GPIO 是否被占用
```shell
sudo cat /sys/kernel/debug/gpio
```
```shell
num=194
echo ${num} > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio${num}/direction
echo 0 > /sys/class/gpio/gpio${num}/value
num=196
echo ${num} > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio${num}/direction
echo 0 > /sys/class/gpio/gpio${num}/value
```
除了上述方法外,还可以通过 C 语言的 libgpiod 库来操作 GPIO下面仍然以底板上的 LED 灯为例
```c
#include <gpiod.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
int i;
int ret;
struct gpiod_chip * chip;
struct gpiod_line * line;
chip = gpiod_chip_open("/dev/gpiochip0");
if(chip == NULL)
{
printf("gpiod_chip_open error\n");
return -1;
}
line = gpiod_chip_get_line(chip, 194);
if(line == NULL)
{
printf("gpiod_chip_get_line error\n");
gpiod_line_release(line);
}
ret = gpiod_line_request_output(line,"gpio",0);
if(ret < 0)
{
printf("gpiod_line_request_output error\n");
gpiod_chip_close(chip);
}
for(i = 0; i < 10; i++)
{
gpiod_line_set_value(line,1);
sleep(1);
gpiod_line_set_value(line,0);
sleep(1);
}
gpiod_line_release(line);
gpiod_chip_close(chip);
return 0;
}
```
首先安装需要的依赖:
```shell
sudo apt update
sudo apt install build-essential libgpiod-dev gpiod
```
编译后,需要使用 root 权限来执行程序:
```shell
gcc gpio.c -I /usr/include/ -L /usr/lib/aarch64-linux-gnu/ -lgpiod -o gpio
sudo ./gpio
```
libgpiod 也提供了一些命令来操作 gpio常用的命令如下
gpiodetect列出所有的 GPIO 控制器
```shell
sudo gpiodetect
```
gpioinfo列出 GPIO 控制器的引脚情况,可以查看哪些引脚已经被使用
```shell
sudo gpioinfo gpiochip0
```
gpioset设置 GPIO 引脚的状态
```shell
sudo gpioset gpiochip0 196=0
```
gpioget获取 GPIO 引脚状态
```shell
sudo gpioget gpiochip0 196
```
## UART
### 系统串口
LonganPi 3H 的系统串口是 UART0,在侧边插针中有引出。
![uart_pin](./assets/peripheral/uart_pin.png)
你可以使用 USB 转串口模块连接该串口,即 `U0-RX``U0-TX`,注意交叉连接,以及 GND 连接(下图中还多接了一根供电线,若用 typeC 口供电可以不接这根供电线)。
![uart_connect](./assets/peripheral/uart_connect.png)
连接完成后即可使用串口工具进行通信Windows 下推荐 `XShell``mobaterm`Linux下推荐 `minicom`
设置串口波特率为 `115200`,即可在串口终端下登录并进行指令操作:
> 注:刚连接后可以敲几个回车查看是否有反应,如果没有反应则检查接线或者串口配置
### 一般串口
除系统串口 UART0 外,设备树中也默认使能了 UART1UART2UART3UART4 串口,可以根据需要使用。
#### 查看串口设备
```bash
ls /dev/ttyS*
```
#### 查看串口的波特率等信息
```bash
stty -F /dev/ttyS1 -a
```
#### 设置串口波特率、数据模式
```bash
stty -F /dev/ttyS1 ispeed 115200 ospeed 115200 cs8
```
#### 查看串口数据
```bash
cat /dev/ttyS1
```
#### 发送串口数据
```bash
echo "LonganPi3H" > /dev/ttyS1
```
#### 其它方法
也可以使用`minicom`或者pyserial库进行串口操作请用户自行查找相关资料使用。若要使用非常见波特率可以使用`picocom`
## I2C
TODO
## SPI
TODO
## HDMI 显示
LonganPi 3H 最高支持 4k 分辨率的显示,效果如图所示:
![hdmi_connect](./assets/peripheral/hdmi_connect.jpg)
若插入 HDMI 显示器后没有显示,可以尝试在命令行中使用 xrandr 来更换显示配置参数。
首先导出 DISPLAY 变量
```shell
export DISPLAY=:0.0
```
然后用 xrandr 查看可用的参数:
```shell
sipeed@lpi3h-ce8e:~$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 255mm
x 220mm
1920x1080 60.00*+ 60.00 59.94
1400x1050 59.95
1280x1024 75.02 60.02
1440x900 59.90
1280x960 60.00
1152x864 75.00
1280x720 60.00 59.94
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00 59.94
720x400 70.08
```
根据上述命令的输出,我们可以尝试更换分辨率,帧率等配置,比如更换为 1440x900 分辨率:
```shell
xrandr xrandr --output HDMI-1 --mode 1440x900
```
有些参数可能会导致屏幕不亮,遇到插入 HDMI 显示器无显示时,可以用这个命令来调整至能亮的显示参数,也可以在系统设置中的 Dispaly 图形化菜单中调节。
若发现使用较高分辨率时有闪屏问题,可以尝试在图形化的设置显示的菜单中降低刷新率。
## HDMI 音频
TODO
## GPU
TODO
## 其它
欢迎投稿~ 投稿接受后可得¥5150$1~20优惠券

View File

@@ -1,14 +1,14 @@
---
title: Android 开发
keywords: Android, Longan, H618, SBC, ARM, Kernel, SDK, Develop
update:
- date: 2024-02-26
version: v1.0
author: ztd
content:
- Release docs
---
## Android SDK
---
title: Android 开发
keywords: Android, Longan, H618, SBC, ARM, Kernel, SDK, Develop
update:
- date: 2024-02-26
version: v1.0
author: ztd
content:
- Release docs
---
## Android SDK
TODO

View File

@@ -1,16 +1,16 @@
+++
title = "Developer Guide"
date = 2019-02-25T13:53:55+05:30
weight = 9
chapter = true
pre = "<b>5. </b>"
+++
### Chapter 5
# Developer Guide
Here well cover topics related to RISC-V and Tang Primer FPGA platform development.
1. [Buinding RISC-V SoftCore](/en/dev-guide/building-rv-core)
+++
title = "Developer Guide"
date = 2019-02-25T13:53:55+05:30
weight = 9
chapter = true
pre = "<b>5. </b>"
+++
### Chapter 5
# Developer Guide
Here well cover topics related to RISC-V and Tang Primer FPGA platform development.
1. [Buinding RISC-V SoftCore](/en/dev-guide/building-rv-core)
2. [Using Yosys with Tang Primer](/en/dev-guide/using-yosys)

View File

@@ -1,5 +1,5 @@
---
title: "Buinding RISC-V SoftCore"
date: 2019-03-10T15:52:29+05:30
---
---
title: "Buinding RISC-V SoftCore"
date: 2019-03-10T15:52:29+05:30
---

View File

@@ -1,56 +1,56 @@
---
title: "Using Yosys with Tang Primer"
date: 2019-03-10T15:51:32+05:30
---
The Yosys now support Verilog synthesis for Anlogic's FPGA. Although support is partial, it progressing towards having full synthesis support.
### Prerequisites
For Ubuntu Linux 16.04 LTS the following commands will install all prerequisites for building yosys:
```
sudo apt-get install build-essential clang bison flex \
libreadline-dev gawk tcl-dev libffi-dev git \
graphviz xdot pkg-config python3
```
### Download Yosys from Github
Clone the Yosys repository from Github.
```
git clone https://github.com/YosysHQ/yosys.git
```
### Build and Install Yosys
To build Yosys simply type 'make' in this directory.
```
make
make test
sudo make install
```
### Compile the Anlogic Demo
We are going to compile an Anlogic example from Yosys examples directory.
### Setup TD environment for demo
For Place and Route, we still need Official TD tools.
set `TD_HOME` env variable to the full path to the TD <TD Install Directory> as follow.
```
export TD_HOME=<TD Install Directory Path>
```
Finally, we are ready to build our demo.
```
cd examples/anlogic/
bash build.sh
```
This build will produce demo.bit that can be download into Tang Primer via TD Download tool.
---
title: "Using Yosys with Tang Primer"
date: 2019-03-10T15:51:32+05:30
---
The Yosys now support Verilog synthesis for Anlogic's FPGA. Although support is partial, it progressing towards having full synthesis support.
### Prerequisites
For Ubuntu Linux 16.04 LTS the following commands will install all prerequisites for building yosys:
```
sudo apt-get install build-essential clang bison flex \
libreadline-dev gawk tcl-dev libffi-dev git \
graphviz xdot pkg-config python3
```
### Download Yosys from Github
Clone the Yosys repository from Github.
```
git clone https://github.com/YosysHQ/yosys.git
```
### Build and Install Yosys
To build Yosys simply type 'make' in this directory.
```
make
make test
sudo make install
```
### Compile the Anlogic Demo
We are going to compile an Anlogic example from Yosys examples directory.
### Setup TD environment for demo
For Place and Route, we still need Official TD tools.
set `TD_HOME` env variable to the full path to the TD <TD Install Directory> as follow.
```
export TD_HOME=<TD Install Directory Path>
```
Finally, we are ready to build our demo.
```
cd examples/anlogic/
bash build.sh
```
This build will produce demo.bit that can be download into Tang Primer via TD Download tool.

View File

@@ -1,13 +1,13 @@
+++
title = "TroubleshootingFAQ"
date = 2019-02-25T13:54:07+05:30
weight = 10
chapter = true
pre = "<b>6. </b>"
+++
### Chapter 6
# Some Chapter title
+++
title = "TroubleshootingFAQ"
date = 2019-02-25T13:54:07+05:30
weight = 10
chapter = true
pre = "<b>6. </b>"
+++
### Chapter 6
# Some Chapter title
Lorem Ipsum.

View File

@@ -1,73 +1,73 @@
---
title: Getting to Blinky
date: 2019-02-15T19:23:03+05:30
draft: false
---
The Blinky example is good way to test the setup. The following example will blink the Tang Primer's onboard RGB LED.
Get the blinky example code from github.com
```
git clone https://github.com/Lichee-Pi/Tang_FPGA_Examples
```
> You will need [**git**](https://git-scm.com/) for the above command to work.
Run TD IDE in GUI mode
```
$ td -gui
```
## Open the Blinky example.
In the Menubar goto **Project -> Open Project** or use the shortcut key **Ctrl+Alt+O**.
![Open project](./images/a.png "Open project")
Select the Project file **Tang_FPGA_Examples/0.LED/prj/led.al** in Open Dialog.
![Open project dialog](./images/b.png "Open project dialog")
## Generate the Bitstream file.
Click on the **Run** icon to start the compilation process.
![Start Compilation](./images/c.png "Start Compilation")
If the compilation is successful you will see the Console log as shown in picture below.
![Console log](./images/d.png "Console log")
## Download Bitstrean to Tang Primer.
Plug in your Tang Primer board to USB and click on **Download** icon to open the Download dialog.
![Open Download box](./images/d1.jpg "Open Download box")
Make sure your device detacted by TD IDE. Add generated bitstream file by clicking on **Add** button.
![Open Bitstream](./images/e.png "Open Bitstream")
> If you can't see your device, try refreshing it by clicking on the **Refresh** button.
Select the Bitstream file **Tang_FPGA_Examples/0.LED/prj/led.bit** in the Downloading & Programming dialog, then click the **Open** button. (You may also double-click on **led.bit** to automatically open it.)
![Open Bitstream dialog](./images/f.png "Open Bitstream dialog")
Click on the **Run** button to start the download process.
![Start download](./images/g.png "Start download")
> Due to some unknown bug, JTAG only works with 400kbps or lower speed on Linux.
Wait for Download progress to reach 100%.
![Download progress](./images/h.png "Download progress")
---
title: Getting to Blinky
date: 2019-02-15T19:23:03+05:30
draft: false
---
The Blinky example is good way to test the setup. The following example will blink the Tang Primer's onboard RGB LED.
Get the blinky example code from github.com
```
git clone https://github.com/Lichee-Pi/Tang_FPGA_Examples
```
> You will need [**git**](https://git-scm.com/) for the above command to work.
Run TD IDE in GUI mode
```
$ td -gui
```
## Open the Blinky example.
In the Menubar goto **Project -> Open Project** or use the shortcut key **Ctrl+Alt+O**.
![Open project](./images/a.png "Open project")
Select the Project file **Tang_FPGA_Examples/0.LED/prj/led.al** in Open Dialog.
![Open project dialog](./images/b.png "Open project dialog")
## Generate the Bitstream file.
Click on the **Run** icon to start the compilation process.
![Start Compilation](./images/c.png "Start Compilation")
If the compilation is successful you will see the Console log as shown in picture below.
![Console log](./images/d.png "Console log")
## Download Bitstrean to Tang Primer.
Plug in your Tang Primer board to USB and click on **Download** icon to open the Download dialog.
![Open Download box](./images/d1.jpg "Open Download box")
Make sure your device detacted by TD IDE. Add generated bitstream file by clicking on **Add** button.
![Open Bitstream](./images/e.png "Open Bitstream")
> If you can't see your device, try refreshing it by clicking on the **Refresh** button.
Select the Bitstream file **Tang_FPGA_Examples/0.LED/prj/led.bit** in the Downloading & Programming dialog, then click the **Open** button. (You may also double-click on **led.bit** to automatically open it.)
![Open Bitstream dialog](./images/f.png "Open Bitstream dialog")
Click on the **Run** button to start the download process.
![Start download](./images/g.png "Start download")
> Due to some unknown bug, JTAG only works with 400kbps or lower speed on Linux.
Wait for Download progress to reach 100%.
![Download progress](./images/h.png "Download progress")

View File

@@ -1,42 +1,42 @@
---
title: Install on Linux
date: 2019-02-15T19:16:47+05:30
draft: false
---
Once you have downloaded the installer archive, open Terminal and cd into that directory.
```
cd <path to installer archive directory>
```
{{% notice note %}}
In this section, you will need **sudo** privileges.
{{% /notice %}}
The /opt directory is reserved for all the software and add-on packages that are not part of the default installation. Create a directory for your TD IDE installation.
```
sudo mkdir /opt/TD_DECEMBER2018
```
and extract TD into the /opt/TD_DECEMBER2018 directory:
```
sudo tar -xvf TD_DECEMBER2018_GOLDEN_RHEL.tar.gz -d /opt/TD_DECEMBER2018/
```
Create an ``/usr/bin/td`` executable by creating a new symbolic link from the ``/opt/TD_DECEMBER2018/bin/td``
```
sudo ln -s /opt/TD_DECEMBER2018/bin/td /usr/bin/td
```
Run TD IDE in GUI mode
```
$ td -gui
```
![TD GUI Mode](./../installing-USB-Driver/linux/87078310026779781.jpg "Tang Dynasty SDK in GUI Mode.")
---
title: Install on Linux
date: 2019-02-15T19:16:47+05:30
draft: false
---
Once you have downloaded the installer archive, open Terminal and cd into that directory.
```
cd <path to installer archive directory>
```
{{% notice note %}}
In this section, you will need **sudo** privileges.
{{% /notice %}}
The /opt directory is reserved for all the software and add-on packages that are not part of the default installation. Create a directory for your TD IDE installation.
```
sudo mkdir /opt/TD_DECEMBER2018
```
and extract TD into the /opt/TD_DECEMBER2018 directory:
```
sudo tar -xvf TD_DECEMBER2018_GOLDEN_RHEL.tar.gz -d /opt/TD_DECEMBER2018/
```
Create an ``/usr/bin/td`` executable by creating a new symbolic link from the ``/opt/TD_DECEMBER2018/bin/td``
```
sudo ln -s /opt/TD_DECEMBER2018/bin/td /usr/bin/td
```
Run TD IDE in GUI mode
```
$ td -gui
```
![TD GUI Mode](./../installing-USB-Driver/linux/87078310026779781.jpg "Tang Dynasty SDK in GUI Mode.")
Congratulations, you have installed the TD IDE on Linux.

View File

@@ -1,29 +1,29 @@
---
title: Install on Windows
date: 2019-02-15T19:16:37+05:30
draft: false
---
Once you have downloaded the installer, open it and you will see a welcome screen.
![welcome](./images/a.png "Welcome screen")
On this screen you can choose where you want to install TD IDE. By default it installs to C:\Anlogic\TD4.3.633\
![Install location](./images/b.png "Install location")
Click next, and the installer will begin copying the files it needs to install TD IDE.
![Install process](./images/c.png "Install process")
When it's finished installing you should see this following screen. Click Finish to complete the installation.
![Install finish](./images/d.png "Install finish")
Go to start menu and click on TD icon to start the IDE.
![TD in Menu](./images/e.png "TD in Menu")
![TD IDE welcome screen](./images/f.png "TD IDE welcome screen")
---
title: Install on Windows
date: 2019-02-15T19:16:37+05:30
draft: false
---
Once you have downloaded the installer, open it and you will see a welcome screen.
![welcome](./images/a.png "Welcome screen")
On this screen you can choose where you want to install TD IDE. By default it installs to C:\Anlogic\TD4.3.633\
![Install location](./images/b.png "Install location")
Click next, and the installer will begin copying the files it needs to install TD IDE.
![Install process](./images/c.png "Install process")
When it's finished installing you should see this following screen. Click Finish to complete the installation.
![Install finish](./images/d.png "Install finish")
Go to start menu and click on TD icon to start the IDE.
![TD in Menu](./images/e.png "TD in Menu")
![TD IDE welcome screen](./images/f.png "TD IDE welcome screen")
Congratulations, you have installed the TD IDE on windows.

View File

@@ -1,56 +1,56 @@
---
title: Install TD driver on Linux
date: 2019-02-15T19:21:27+05:30
draft: false
---
## Check for default linux driver
Insert Tang Primer into your computer and execute lsusb to see the information. Make sure USB VID:PID is `0547:1002` as shown in image below.
![lsusb](./linux/237929105611360081.jpg "Check for default linux driver.")
## Create a new udev rule file
Set udev rules to enable Tang Primer to be accessed by the plugdev group
Execute the following command in terminal to create a new udev rules file.
```
sudo nano /etc/udev/rules.d/91-anlogic-jtag.rules
```
Copy the following code into text editor and save it, as shown in following image.
```toml
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0547", ATTRS{idProduct}=="1002", \
GROUP="plugdev", \
MODE="0660"
```
![udev edit](./linux/572316008299057820.jpg "Create a new udev rule file.")
Execute the following command in terminal to restart the udev service.
```
sudo service udev restart
```
## Check if device detected by Tang Dynasty IDE
Go to `<TD installation directory>/bin/` and execute the following command to open TD IDE in GUI mode.
```
./td -gui
```
Click on Download buttion as shown in following image.
![TD GUI Mode](./linux/87078310026779781.jpg "Tang Dynasty SDK in GUI Mode.")
Plugin Tang Primer into your computer and hit Refresh buttion on Download Dialog box.
![TD Download Dialog](./linux/1823555291194601.jpg "Bitstream Download Dialog")
> Due to some unknown bug, JTAG only works with 400kbps or lower speed.
Congratulations, you have setup the TD driver on Linux.
---
title: Install TD driver on Linux
date: 2019-02-15T19:21:27+05:30
draft: false
---
## Check for default linux driver
Insert Tang Primer into your computer and execute lsusb to see the information. Make sure USB VID:PID is `0547:1002` as shown in image below.
![lsusb](./linux/237929105611360081.jpg "Check for default linux driver.")
## Create a new udev rule file
Set udev rules to enable Tang Primer to be accessed by the plugdev group
Execute the following command in terminal to create a new udev rules file.
```
sudo nano /etc/udev/rules.d/91-anlogic-jtag.rules
```
Copy the following code into text editor and save it, as shown in following image.
```toml
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0547", ATTRS{idProduct}=="1002", \
GROUP="plugdev", \
MODE="0660"
```
![udev edit](./linux/572316008299057820.jpg "Create a new udev rule file.")
Execute the following command in terminal to restart the udev service.
```
sudo service udev restart
```
## Check if device detected by Tang Dynasty IDE
Go to `<TD installation directory>/bin/` and execute the following command to open TD IDE in GUI mode.
```
./td -gui
```
Click on Download buttion as shown in following image.
![TD GUI Mode](./linux/87078310026779781.jpg "Tang Dynasty SDK in GUI Mode.")
Plugin Tang Primer into your computer and hit Refresh buttion on Download Dialog box.
![TD Download Dialog](./linux/1823555291194601.jpg "Bitstream Download Dialog")
> Due to some unknown bug, JTAG only works with 400kbps or lower speed.
Congratulations, you have setup the TD driver on Linux.

Some files were not shown because too many files have changed in this diff Show More