本篇介绍如何在赛昉VisionFive开发板上安装Fedora系统,并在Fedora系统上安装常用的软件。最后介绍,在没有多余的显示器、键盘、鼠标的情况下如何完成相关配置和操作。
1. 准备材料
在正式体验运行于VisionFive上的Fedora之前,我们需要先准备一些硬件和软件材料。其中,有些是必须的,有些不是必须的,下面分别介绍。
硬件准备
- VisionFive开发板(必选)
- Micro SD卡,不低于16GB(必选)
- Micro SD卡读卡器(必选)
- 个人电脑,Windows/Linux/Mac系统均可(必选)
- USB Type-C数据线(必选)
- RJ-45网线+有线网络,或2.4G无线网络(二选一,安装软件包需要)
- USB到UART转换器(可选)
- 键盘+鼠标(可选)
- 显示器+HDMI线(可选)
软件准备
- Fedora镜像,可以从这里找到下载链接:https://github.com/starfive-tech/Fedora_on_StarFive
- zstd命令行工具,可以从这里下载: https://github.com/facebook/zstd/releases
- Windows系统,还需要一个balenaEtcher——将OS镜像烧录到SD卡上的工具。Linux/Mac上可以用系统自带的dd命令。
2. 将Fedora烧录到SD卡上
解压zstd文件
试用zstd命令解压Fedora镜像的zstd压缩文件:
zstd -d Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw.zst -o Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-214100.n.0-sda.raw
烧录raw文件到SD卡
步骤如下:
-
将SD卡插入读卡器;
-
将读卡器插入PC的USB口;
-
将zstd命令解压出来的raw文件烧录到SD卡上;
- Windows系统,使用balenaEtcher,首先点击“Flash from file”选择前面解压出来的raw文件,然后点击“Select target”选择读卡器设备(通过容量确认没有选错),最后点击“Flash”开始烧写。
- Linux/Mac系统,使用dd命令:
sudo dd if=Fedora-riscv64-jh7100-developer-xfce-Rawhide-20211226-
214100.n.0-sda.raw of=/dev/sdX bs=8M status=progress && sync
3. 连接UART串口
使用USB到UART转换器,将PC的USB口和VisionFive的40GPIO中的UART相连接。
连接好USB到UART转换器后,使用串口中断或者串口助手(我这里使用的是MobaXterm),根据设备管理器中显示的串口端口号,使用如下参数打开串口:
- 波特率:115200
- 数据位:8位
- 校验位:无
- 停止位:1位
4. 登录Fedora系统
尝试了使用HDMI接显示器、键盘、鼠标,登录图形界面,体验一会发现太卡了(因为VisionFive的JH7100芯片没有GPU,官方说下一代产品JH7110会有GPU)。所以,后面放弃使用这种方式了。
连接好USB转UART并打开串口终端之后,连接VisionFive开发板的USB Type C接口,上电开机。
此时,可以看到串口终端上开始输出大量启动日志:
等待一段时间后(四十几秒),可以看到输出登录提示信息和蓝牙状态日志:
使用用户名:riscv,密码:starfive,即可登录系统。
5. GPIO硬件连接
硬件连接
这里我用的是三色LED灯,和VisionFive开发板的连接如下图:
图中,三色LED和开发板40pin GPIO的连接关系如下:
三色LED引脚 |
VisionFive开发板40Pin序号 |
引脚名 |
R(控制红色) |
40 |
GPIO0 |
G(控制绿色) |
38 |
GPIO2 |
B(控制蓝色) |
36 |
GPIO4 |
GND |
34 |
GND |
6. GPIO引脚使用
参考《赛昉科技40-Pin GPIO Header用户手册.pdf》,我们可以知道:
序号 |
引脚名 |
sys |
36 |
GPIO4 |
452 |
38 |
GPIO2 |
450 |
40 |
GPIO0 |
448 |
在shell中操作GPIO
在shell中,进行如下操作:
# 1. 配置GPIO0:
cd /sys/class/gpio
echo 448 | sudo tee export
# 输入密码
# 2. 进入GPIO0目录:
cd gpio448
# 3. 将GPIO0设置为输出:
echo out | sudo tee direction
# 4. 将GPIO0输出设置为高电平(点亮红色):
echo 1 | sudo tee value
# 此时红色应该会亮起来
# 5. 将GPIO0输出设置为低电平(熄灭红色):
echo 0 | sudo tee value
# 此时红色应该熄灭
类似的,使用如下脚本,可以循环闪烁红绿蓝1分钟:
实际效果:
用“昉·星光”RISC-V单板电脑控制三色LED灯
|