2022-07-22 14:40:18 +08:00
|
|
|
|
---
|
|
|
|
|
title: 在RISC-V上安装openKylin
|
|
|
|
|
description:
|
|
|
|
|
published: true
|
|
|
|
|
date: 2022-07-22T06:40:16.074Z
|
|
|
|
|
tags:
|
|
|
|
|
editor: markdown
|
|
|
|
|
dateCreated: 2022-07-22T06:40:16.074Z
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
# 一、在 HiFive Unmatched 上安装openKylin
|
|
|
|
|
## 准备SD卡
|
|
|
|
|
|
|
|
|
|
即使计划长期使用 NVMe SSD,第一步也需要 SD 卡。 这样我们才可以利用 Unmatched 上的 NVMe 驱动器稍后设置 SSD。 openkylin适配Unmatched的镜像可以通过以下链接下载
|
|
|
|
|
> https://www.openkylin.top/downloads
|
|
|
|
|
|
|
|
|
|
通过以下命令解压
|
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
> unxz openkylin-0.9-hifive-unmatched-riscv64.img.xz
|
|
|
|
|
|
|
|
|
|
以上路径请根据自己的实际路径去解压
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
## 制作SD卡启动盘
|
|
|
|
|
首先使用磁盘工具将sd卡格式化。
|
|
|
|
|
|
|
|
|
|
之后通过命令行将镜像刷入sd卡,请运行:
|
|
|
|
|
> sudo dd if=</path/to/image.img> of=/dev/mmcblk0 bs=1M status=progress
|
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
注:</path/to/image.img>的含义是下载的镜像路径,不用写尖括号和里边的英文,路径尽可能不要有空格
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
此命令假设您已将 SD 卡插入计算机的 SD 卡插槽中。 如果您使用的是 USB 读卡器,它可能会显示为 /dev/sdb 或类似的内容而不是 /dev/mmcblk0
|
|
|
|
|
|
|
|
|
|
注意:要非常小心上一个命令中的“of”参数。 如果使用了错误的磁盘,您可能会丢失数据。也可通过磁盘工具的恢复磁盘映像功能来将镜像刷入sd卡。
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
## 修改u-boot配置文件
|
|
|
|
|
> sudo mount /dev/mmcblk0p4 /mnt
|
|
|
|
|
> sudo mount /dev/mmcblk0p3 /mnt/boot
|
|
|
|
|
> sudo chroot /mnt
|
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
以上/dev开头的路径请根据自己的实际路径修改
|
|
|
|
|
|
|
|
|
|
使用文本编辑器打开”/etc/default/u-boot“(这个是chroot以后的路径,实际在本机的路径是"/mnt/etc/default/u-boot"),并添加:
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
> U_BOOT_ROOT="root=/dev/mmcblk0p4"
|
|
|
|
|
|
|
|
|
|
然后运行:
|
|
|
|
|
> u-boot-update
|
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
使用文本编辑器打开”/boot/extlinux/extlinux.conf“(这个是chroot以后的路径,实际在本机的路径是"/mnt/boot/extlinux/extlinux.conf",在其中两个空行中添加如下:
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
>fdt /hifive-unmatched-a00.dtb
|
|
|
|
|
|
|
|
|
|
然后退出:
|
2023-01-11 23:40:43 +08:00
|
|
|
|
>exit
|
|
|
|
|
>sudo umount /mnt/boot
|
|
|
|
|
>sudo umount /mnt
|
2022-07-22 14:40:18 +08:00
|
|
|
|
## 第一次启动
|
|
|
|
|
首次启动之后,系统中会存在一个默认用户,当桌面环境启动之后,您可以通过默认用户进行Unmatched首次登陆,后期可以根据自己需求进行用户或密码的更改。
|
|
|
|
|
默认用户名/密码是
|
2023-01-11 23:40:43 +08:00
|
|
|
|
> username:openkylin
|
|
|
|
|
> password:openkylin
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
同时也支持以下两种登录方式
|
|
|
|
|
## 连接到串行控制台
|
2023-01-11 23:40:43 +08:00
|
|
|
|
HiFive 的入门指南 14 解释了如何从各种不同的操作系统连接到串行控制台。 如果使用 openkylin RISC-V 计算机来监控串行输出,将该计算机连接到 Unmatched 上 SD 卡插槽旁边的Micro USB 端口并运行
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
>sudo screen /dev/ttyUSB1 115200
|
|
|
|
|
|
|
|
|
|
按下电源按钮后,启动输出将开始出现在会话中。
|
|
|
|
|
## 将 openkylin RISC-V 安装到 NVMe 驱动器
|
|
|
|
|
将 NVMe 驱动器与 Unmatched 一起使用会在性能和可用性方面产生巨大差异。 让它工作需要一点努力,但相信我这是值得的。 SiFive 推荐三星 970 EVO Plus。 我使用了三星 970 EVO(不是 plus),效果很好。 在 NVMe 驱动器上安装 openkylin RISC-V 的最简单方法是从 SD 卡启动并使用 Unmatched 本身上的 M.2 连接器。
|
|
|
|
|
|
|
|
|
|
启动后,将openkylin的镜像下载到 Unmatched
|
|
|
|
|
> https://www.openkylin.top/downloads
|
|
|
|
|
|
|
|
|
|
通过以下命令解压
|
2023-01-11 23:40:43 +08:00
|
|
|
|
> unxz openkylin-0.9-hifive-unmatched-riscv64.img.xz
|
|
|
|
|
|
|
|
|
|
以上路径请根据自己的实际路径去解压
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
通过运行确保 NVMe 驱动器存在
|
|
|
|
|
> ls -l /dev/nvme*
|
|
|
|
|
|
|
|
|
|
在我的主板上,NVMe 驱动器显示为 /dev/nvme0n1,首先使用磁盘工具将 NVMe硬盘格式化。之后通过运行以下命令将映像刷入 NVMe
|
|
|
|
|
> sudo dd if=</path/to/image.img> of=/dev/nvme0n1 bs=1M status=progress
|
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
注:</path/to/image.img>的含义是下载的镜像路径,不用写尖括号和里边的英文,路径尽可能不要有空格
|
|
|
|
|
|
2022-07-22 14:40:18 +08:00
|
|
|
|
恭喜! 您现在在 HiFive Unmatched 的 NVMe 驱动器上安装了 openkylin RISC-V。 然而,仍然有一个问题。 Unmatched 仍然需要存在 SD 卡才能启动,并且存在可能导致它在 SD 卡而不是 NVMe 驱动器上安装根文件系统的竞争条件。 为防止出现这种情况,请通过运行将新刷入的 NVMe 驱动器和 chroot 挂载到其中
|
|
|
|
|
> sudo mount /dev/nvme0n1p4 /mnt
|
|
|
|
|
> sudo moubt /dev/nvme0n1p3 /mnt/boot
|
|
|
|
|
> sudo chroot /mnt
|
|
|
|
|
|
|
|
|
|
注意:之前的 chroot 命令只有在使用 riscv64 计算机执行时才有效。 这就是本教程建议使用 Unmatched 上的 M.2 驱动器设置 NVMe 驱动器的原因之一
|
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
使用您最喜欢的文本编辑器来编辑 “/etc/default/u-boot”,并添加:
|
2022-07-22 14:40:18 +08:00
|
|
|
|
> U_BOOT_ROOT="root=/dev/nvme0n1p4"
|
|
|
|
|
|
|
|
|
|
要应用这些更改,请运行
|
|
|
|
|
> u-boot-update
|
|
|
|
|
|
|
|
|
|
使用文本编辑器打开”/boot/extlinux/extlinux.conf“,在其中两个空行中添加如下:
|
|
|
|
|
> fdt /hifive-unmatched-a00.dtb
|
|
|
|
|
|
|
|
|
|
通过运行 exit 退出 chroot 环境:
|
2023-01-11 23:40:43 +08:00
|
|
|
|
>exit
|
|
|
|
|
>sudo umount /mnt/boot
|
|
|
|
|
>sudo umount /mnt
|
|
|
|
|
然后重新启动系统, 它现在将从您的 NVMe 驱动器启动,您将获得显着的性能提升!
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 二、在 VisionFive 上安装openKylin
|
|
|
|
|
## 准备SD卡
|
2023-02-23 15:53:40 +08:00
|
|
|
|
openkylin适配VisionFive的镜像可以通过以下链接下载
|
2022-07-22 14:40:18 +08:00
|
|
|
|
> https://www.openkylin.top/downloads
|
|
|
|
|
|
|
|
|
|
通过以下命令解压
|
2023-02-23 15:53:40 +08:00
|
|
|
|
> unxz openkylin-0.9-visionfive-riscv64.img.xz
|
2023-01-11 23:40:43 +08:00
|
|
|
|
|
|
|
|
|
以上路径请根据自己的实际路径去解压
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
## 制作SD卡启动盘
|
|
|
|
|
首先使用磁盘工具将sd卡格式化。
|
|
|
|
|
之后通过命令行将镜像刷入sd卡,请运行:
|
|
|
|
|
> sudo dd if=</path/to/image.img> of=/dev/mmcblk0 bs=1M status=progress
|
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
注:</path/to/image.img>的含义是下载的镜像路径,不用写尖括号和里边的英文,路径尽可能不要有空格
|
|
|
|
|
|
|
|
|
|
此命令假设您已将 SD 卡插入开发板的 SD 卡插槽中。 如果您使用的是 USB 读卡器,它可能会显示为 /dev/sdb 或类似的内容而不是 /dev/mmcblk0
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
|
|
|
|
注意:要非常小心上一个命令中的“of”参数。 如果使用了错误的磁盘,您可能会丢失数据。也可通过磁盘工具的回复磁盘映像功能来将镜像刷入sd卡。
|
|
|
|
|
## 第一次启动
|
2023-01-11 23:40:43 +08:00
|
|
|
|
将烧录好的sd卡插入VisionFive卡槽并连接好电源线。首次启动之后,系统中会存在一个默认用户,当桌面环境启动之后,您可以通过默认用户进行VisionFive首次登陆,后期可以根据自己需求进行用户或密码的更改。
|
2022-07-22 14:40:18 +08:00
|
|
|
|
默认用户名/密码是
|
2023-01-11 23:40:43 +08:00
|
|
|
|
> username:openkylin
|
|
|
|
|
> password:openkylin
|
|
|
|
|
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
# 三、在Thead1520上安装openKylin
|
|
|
|
|
## 准备SD卡
|
|
|
|
|
openkylin适配Thead1520的镜像可以通过以下链接下载:
|
|
|
|
|
https://www.openkylin.top/downloads
|
|
|
|
|
通过以下命令解压:
|
|
|
|
|
unxz openKylin-0.9.5-thead1520-riscv64.img.xz
|
|
|
|
|
|
|
|
|
|
## 制作SD卡启动盘
|
|
|
|
|
首先使用磁盘工具将sd卡格式化。之后通过命令行将镜像刷入sd卡,请运行:
|
|
|
|
|
sudo dd if=</path/to/image.img> of=/dev/mmcblk0 bs=1M status=progress
|
|
|
|
|
此命令假设您已将 SD 卡插入开发板的 SD 卡插槽中。 如果您使用的是 USB 适配器,它可能会显示为 /dev/sdb 或类似的内容而不是 /dev/mmcblk0
|
2023-03-15 16:13:19 +08:00
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
注意:要非常小心上一个命令中的“of”参数。 如果使用了错误的磁盘,您可能会丢失数据。也可通过磁盘工具的回复磁盘映像功能来将镜像刷入sd卡。
|
2022-07-22 14:40:18 +08:00
|
|
|
|
|
2023-01-11 23:40:43 +08:00
|
|
|
|
## 连接到串行控制台
|
|
|
|
|
可以使用 openkylin 计算机来监视Thead1520启动过程的串口输出,将该计算机连接到 Thead1520 上 SD 卡插槽旁边的微型 USB 端口并运行以下命令来打开串口:
|
|
|
|
|
sudo minicom -s
|
|
|
|
|
在串口设置中,修改A - 串行设备为:/dev/serial/by-path/pci-0000:00:14.0-usb-0:7:1.2-port0之后保存并打开串口。
|
|
|
|
|
|
|
|
|
|
## 第一次启动和修改开发板u-boot设置
|
|
|
|
|
在计算机中启动Thead1520的minicom串口。将烧录好的sd卡插入Thead1520卡槽并连接好电源线。开发板启动到u-boot时快速按下回车使开发板停在u-boot。在u-boot中输入以下命令设置开发板从sd卡启动:
|
|
|
|
|
>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
|
|
|
|
|
>run gpt_partition
|
|
|
|
|
注:第一条是一条命令,很长,在您的显示设备可能会换行
|
|
|
|
|
之后在u-boot中输入reset来重启开发板,这样开发板就可以从sd卡启动openKylin系统。
|
|
|
|
|
首次启动之后,系统中会存在一个默认用户,当桌面环境启动之后,您可以通过默认用户进行Thead1520首次登陆,后期可以根据自己需求进行用户或密码的更改。
|
|
|
|
|
默认用户名/密码是:
|
|
|
|
|
>username:openkylin
|
2023-02-23 15:53:40 +08:00
|
|
|
|
>password:openkylin
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 四、在 VisionFive 2上安装openKylin
|
|
|
|
|
## 准备SD卡
|
|
|
|
|
openkylin适配VisionFive 2的镜像可以通过以下链接下载
|
|
|
|
|
> https://openKylin.top/downloads/download-smp.php?id=15
|
|
|
|
|
|
|
|
|
|
通过以下命令解压
|
|
|
|
|
> unxz openkylin-0.9.5-visionfive2-riscv64.img.xz
|
|
|
|
|
|
|
|
|
|
以上路径请根据自己的实际路径去解压
|
|
|
|
|
|
|
|
|
|
## 制作SD卡启动盘
|
|
|
|
|
首先使用磁盘工具将sd卡格式化。
|
|
|
|
|
之后通过命令行将镜像刷入sd卡,请运行:
|
|
|
|
|
> sudo dd if=</path/to/image.img> of=/dev/mmcblk0 bs=1M status=progress
|
|
|
|
|
|
|
|
|
|
注:</path/to/image.img>的含义是下载的镜像路径,不用写尖括号和里边的英文,路径尽可能不要有空格
|
|
|
|
|
|
|
|
|
|
此命令假设您已将 SD 卡插入开发板的 SD 卡插槽中。 如果您使用的是 USB 读卡器,它可能会显示为 /dev/sdb 或类似的内容而不是 /dev/mmcblk0
|
|
|
|
|
|
|
|
|
|
注意:要非常小心上一个命令中的“of”参数。 如果使用了错误的磁盘,您可能会丢失数据。也可通过磁盘工具的回复磁盘映像功能来将镜像刷入sd卡。
|
|
|
|
|
## 第一次启动
|
|
|
|
|
将烧录好的sd卡插入VisionFive 2卡槽并连接好电源线。首次启动之后,系统中会存在一个默认用户,当桌面环境启动之后,您可以通过默认用户进行VisionFive 2首次登陆,后期可以根据自己需求进行用户或密码的更改。
|
|
|
|
|
默认用户名/密码是
|
|
|
|
|
> username:openkylin
|
|
|
|
|
> password:openkylin
|
|
|
|
|
|
|
|
|
|
|
2023-02-23 16:08:48 +08:00
|
|
|
|
# 五、使用Qemu启动openKylin
|
2023-02-23 15:53:40 +08:00
|
|
|
|
## 下载镜像
|
|
|
|
|
openkylin Qemu版本镜像可以通过以下链接下载
|
|
|
|
|
> https://openKylin.top/downloads/download-smp.php?id=16
|
|
|
|
|
|
2023-02-23 16:08:48 +08:00
|
|
|
|
## 通过以下命令解压
|
2023-02-23 15:53:40 +08:00
|
|
|
|
> unxz openKylin-0.9.5-qemu-riscv64.img.xz
|
|
|
|
|
|
|
|
|
|
以上路径请根据自己的实际路径去解压
|
|
|
|
|
|
|
|
|
|
## 安装Qemu所需的软件包
|
|
|
|
|
sudo apt install qemu-system-misc opensbi u-boot-qemu qemu-utils
|
|
|
|
|
|
2023-02-23 16:08:48 +08:00
|
|
|
|
## 命令行模式启动
|
|
|
|
|
执行以下命令通过qemu命令行模式启动镜像
|
|
|
|
|
sudo qemu-system-riscv64 -machine virt -nographic -m 2048 -smp 4 -bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf -device virtio-net-device,netdev=eth0 -netdev user,id=eth0 -drive file=openKylin-0.9.5-qemu-riscv64.img,format=raw,if=virtio
|
|
|
|
|
|
|
|
|
|
## 桌面模式启动
|
|
|
|
|
想要启动qemu桌面模式需要本地对qemu进行配置和编译。
|
|
|
|
|
qemu依赖sdl,需要先编译sdl
|
2023-02-23 16:35:06 +08:00
|
|
|
|
> https://github.com/libsdl-org/SDL/releases/tag/release-2.26.3
|
|
|
|
|
通过此链接下载SDL2-2.26.3.tar.gz
|
|
|
|
|
解压并进入该目录
|
2023-02-23 16:08:48 +08:00
|
|
|
|
./configure
|
|
|
|
|
make
|
|
|
|
|
sudo make install
|
|
|
|
|
|
|
|
|
|
接下来本地编译qemu,打开终端
|
|
|
|
|
mkdir qemu
|
|
|
|
|
cd qemu
|
|
|
|
|
wget https://download.qemu.org/qemu-7.0.0.tar.xz
|
|
|
|
|
tar xvJf qemu-7.0.0.tar.xz
|
|
|
|
|
cd qemu-7.0.0
|
2023-02-23 16:35:06 +08:00
|
|
|
|
要在qemu中添加显示桌面,需要配置使能sdl参数,可以根据以下链接解决qemu常见编译错的问题
|
|
|
|
|
> https://blog.csdn.net/ado11111/article/details/115705374
|
2023-02-23 16:08:48 +08:00
|
|
|
|
./configure --enable-sdl
|
|
|
|
|
make
|
|
|
|
|
make install
|
|
|
|
|
|
|
|
|
|
执行以下命令通过qemu桌面模式启动镜像
|
|
|
|
|
qemu-system-riscv64 -machine virt -m 4096 -smp 4 -vga std -bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf -kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf -device VGA,id=video0,vgamem_mb=1024 -device virtio-mouse-pci -device virtio-keyboard-pci -drive file=openKylin-0.9.5-qemu-riscv64.img,format=raw,if=virtio
|
2023-02-23 15:53:40 +08:00
|
|
|
|
|
|
|
|
|
## 首次启动
|
|
|
|
|
启动后您可以通过默认用户进行首次登陆,后期可以根据自己需求进行用户或密码的更改。
|
|
|
|
|
默认用户名/密码是
|
|
|
|
|
> username:openkylin
|
|
|
|
|
> password:openkylin
|