飞腾派运行ArceOS
1 硬件准备
-
飞腾派板子
-
一张SD卡和一个读卡器,用于安装飞腾派官方镜像
-
USB转TTL转换器和串口线,用于将飞腾派串口和电脑USB接口连接在一起,方便收发调试信息和文件
2 烧录镜像
-
如果你不只是在飞腾派运行Arceos,还需要在飞腾派上运行Ubuntu,则需要下载如下镜像:
Ubuntu镜像地址:(在系统镜像>1-Ubuntu...>4GB>之前版本中的sd_boot_xfce_4GB_230726.img.tar.gz)
-
需要注意的是烧录Ubuntu镜像需要至少16G的SD卡,如果你的SD卡不足16G,或者只是想运行Arceos,则无需下载Ubuntu镜像,此时只需下载uboot镜像即可。由于uboot镜像占用的空间只有4MB左右,可以认为对SD卡的容量没有要求:
uboot镜像地址:(在4-系统源码>4-系统源码>uboot固件>fip-all-4GB-250321.bin)
-
如果你电脑主机上运行的是Windows,需要下载烧录工具(Win32DiskImager2.0.1.8.exe)
烧录工具的地址:(在飞腾派v2.1资料包(资料包太...>9-工具包中的Win32DiskImager2.0.1.8.exe)
-
如果你电脑主机上运行的是Linux,直接使用
dd
命令即可
3 编译Arceos
ArceOS代码地址:https://github.com/arceos-usb/arceos_experiment/tree/usb-camera-base(注意分支)
git clone https://github.com/arceos-usb/arceos_experiment.git # 下载源码
cd arceos_experiment
make A=apps/usb-hid PLATFORM=aarch64-phytium-pi LOG=trace # 编译镜像,生成的bin文件在apps/usb-hid目录下
4 运行Arceos
注:uboot支持多种方法启动Arceos,如从U盘启动、从SD卡启动、从局域网启动。如果你是在调试或开发Arceos,建议从局域网启动,这样可以避免频繁插拔SD卡或U盘。
-
飞腾派上电启动,把烧录了uboot的SD卡插到飞腾派上。如果选择了从U盘启动,还需要把装有arceos的镜像文件的U盘插在飞腾派的usb插槽上(靠近风扇的蓝色口的)。用USB转TTL转换器把飞腾派与电脑相连接,启动电脑上的远程连接软件(如果是Windows系统,可以使用MobaXterm;如果是Linux系统,可以使用minicom命令),波特率设置为115200
-
串口接法:接8、10、12号引脚位置,如图所示(8号代表TX,接RX;10号代表RX,接TX;12号接地线)

- 在uboot倒计时结束前按任意键进入手动引导
-
如果是从U盘启动
输入
usb start
,启用USB驱动来识别插入的USB设备(读U盘中的arceos)输入
fatload usb 0 0x90100000 usb-hid_aarch64-phytium-pi.bin
,从插入的USB设备上下载ArceOS镜像 -
如果是从局域网启动
在电脑端,要安装tftp服务
sudo apt install tftpd-hpa vim /etc/default/tfptpd-hpa # 配置tftp服务 # 需要把生成的Arceos镜像复制进配置文件所指定的tftp目录里
在飞腾派端,使用tftpboot命令加载Arceos镜像
echo $ipaddr # 检查ip地址满足局域网要求 setenv ipaddr x.x.x.x # 如不满足,需先设置ip地址 setenv serverip x.x.x.x tftpboot 0x90100000 xxx.bin dcache flush
-
输入
go 0x90100000
加载ArceOS镜像(这里是没有添加LOG=debug)
-
如果是在apps/cli目录下编译的出来的arceos镜像,便可以看到ArceOS启动成功,进入到了shell界面
-
更直观方便的实验方法,在linux终端里面测试USB返回的debug信息
Usbipd是一种将USB设备连接到WSL上面的工具,可以将串口返回的信息映射到WSL终端里面,方便实验
下载流程如下
打开powershell
,输入winget search usbipd
,
找到usbipd
工具之后,输入winget install usbipd
下载usbipd。
下载完成之后,输入usbipd list
,查看主机上连接好的串口ID号
输入sudo usbipd bind -b 2-2
,实现串口设备全机器共享,
输入usbipd attach --wsl -b 2-2
,实现串口返回信息映射到wsl终端
>(2-2是串口ID号,具体依据个人电脑上显示的串口ID号)
这里需要注意的是,主机上只能留下一个linux终端,不然串口返回的信息不清楚该映射到哪一个终端界面
打开linux终端,输入sudo chmod 777 /dev/ttyUSB0
,赋予串口映射到wsl上的权限,
(ttyUSB0通常表示接到计算机的第一个串行设备,在个人主机上具体是多少,可以通过输入 ls -l /dev 来查看)
然后请你下载python3,同时下载xmodem
,pyserial
方便加载脚本的py文件的运行
在项目根目录下输入:
make A=apps/uvc PLATFORM=aarch64-phytium-pi LOG=trace chainboot
前面的make是将整个arceos内核与USB驱动给编译好,
后面的chainboot用来执行一个arceos_experiment目录中的一个脚本文件,将编译好的内核文件通过SD卡中的Uboot加载到飞腾派上
在看到tools/….
出来之后,给飞腾派上电,同时确保鼠标已经插到了飞腾派上
等待uboot加载完之后,看到Phytium-Pi#出现,
输入go 0x90100000
,arceos内核开始运行,接着usb驱动的debug信息