即使计划长期使用 NVMe SSD,第一步也需要 SD 卡。 这样我们才可以利用 Unmatched 上的 NVMe 驱动器稍后设置 SSD。 openkylin适配Unmatched的镜像可以通过以下链接下载
通过以下命令解压
unxz openkylin-1.0-hifive-unmatched-riscv64.img.xz
以上路径请根据自己的实际路径去解压
首先使用磁盘工具将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卡剩余空间分配到根分区。
注:此命令假设您SD卡的设备号为/dev/sdb,分盘时请根据实际的设备号进行分盘。
sudo apt install cloud-utils
sudo growpart /dev/sdb 4
sudo resize2fs /dev/sdb4
sudo mount /dev/mmcblk0p4 /mnt
sudo mount /dev/mmcblk0p3 /mnt/boot
sudo chroot /mnt
以上/dev开头的路径请根据自己的实际路径修改
使用文本编辑器打开”/etc/default/u-boot“(这个是chroot以后的路径,实际在本机的路径是"/mnt/etc/default/u-boot"),并添加:
U_BOOT_ROOT="root=/dev/mmcblk0p4"
然后运行:
u-boot-update
使用文本编辑器打开”/boot/extlinux/extlinux.conf“(这个是chroot以后的路径,实际在本机的路径是"/mnt/boot/extlinux/extlinux.conf",在其中两个空行中添加如下:
fdt /hifive-unmatched-a00.dtb
然后退出:
exit
sudo umount /mnt/boot
sudo umount /mnt
首次启动之后,系统中会存在一个默认用户,当桌面环境启动之后,您可以通过默认用户进行Unmatched首次登陆,后期可以根据自己需求进行用户或密码的更改。
默认用户名/密码是
username:openkylin
password:openkylin
同时也支持以下两种登录方式
HiFive 的入门指南 14 解释了如何从各种不同的操作系统连接到串行控制台。 如果使用 openkylin 计算机来监控串行输出,将该计算机连接到 Unmatched 上 SD 卡插槽旁边的Micro USB 端口并运行
sudo screen /dev/ttyUSB1 115200
按下电源按钮后,启动输出将开始出现在会话中。
将 NVMe 驱动器与 Unmatched 一起使用会在性能和可用性方面产生巨大差异。 让它工作需要一点努力,但相信我这是值得的。 SiFive 推荐三星 970 EVO Plus。 我使用了三星 970 EVO(不是 plus),效果很好。 在 NVMe 驱动器上安装 openkylin RISC-V 的最简单方法是从 SD 卡启动并使用 Unmatched 本身上的 M.2 连接器。
启动后,将openkylin的镜像下载到 Unmatched
通过以下命令解压
unxz openkylin-1.0-hifive-unmatched-riscv64.img.xz
以上路径请根据自己的实际路径去解压
通过运行确保 NVMe 驱动器存在
ls -l /dev/nvme*
在我的主板上,NVMe 驱动器显示为 /dev/nvme0n1,首先使用磁盘工具将 NVMe硬盘格式化。之后通过运行以下命令将映像刷入 NVMe
sudo dd if=</path/to/image.img> of=/dev/nvme0n1 bs=1M status=progress
注:</path/to/image.img>的含义是下载的镜像路径,不用写尖括号和里边的英文,路径尽可能不要有空格
执行以下命令将NVMe硬盘剩余空间分配到根分区。
注:此命令假设您SD卡的设备号为/dev/sdb,分盘时请根据实际的设备号进行分盘。
sudo apt install cloud-utils
sudo growpart /dev/sdb 4
sudo resize2fs /dev/sdb4
恭喜! 您现在在 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 驱动器的原因之一
使用您最喜欢的文本编辑器来编辑 “/etc/default/u-boot”,并添加:
U_BOOT_ROOT="root=/dev/nvme0n1p4"
要应用这些更改,请运行
u-boot-update
使用文本编辑器打开”/boot/extlinux/extlinux.conf“,在其中两个空行中添加如下:
fdt /hifive-unmatched-a00.dtb
通过运行 exit 退出 chroot 环境:
exit
sudo umount /mnt/boot
sudo umount /mnt
然后重新启动系统, 它现在将从您的 NVMe 驱动器启动,您将获得显着的性能提升!
openkylin适配Sophgo sg2042的镜像可以通过以下链接下载
通过以下命令解压
unxz openkylin-1.0-sophgo-sg2042-riscv64.img.xz
以上路径请根据自己的实际路径去解压
首先使用磁盘工具将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卡剩余空间分配到根分区。
注:此命令假设您SD卡的设备号为/dev/sdd,分盘时请根据实际的设备号进行分盘。
$ sudo fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.37.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助): p
Disk /dev/sdd:59.48 GiB,63864569856 字节,124735488 个扇区
Disk model: MassStorageClass
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0812bf5f
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdd1 2048 262143 260096 127M c W95 FAT32 (LBA)
/dev/sdd2 262144 20971519 20709376 9.9G 83 Linux
命令(输入 m 获取帮助): d
分区号 (1,2, 默认 2): 2
分区 2 已删除。
命令(输入 m 获取帮助): n
分区类型
p 主分区 (1 primary, 0 extended, 3 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (2-4, 默认 2):
第一个扇区 (262144-124735487, 默认 262144):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (262144-124735487, 默认 124735487):
创建了一个新分区 2,类型为“Linux”,大小为 59.4 GiB。
分区 #2 包含一个 ext4 签名。
您想移除该签名吗? 是[Y]/否[N]: N
命令(输入 m 获取帮助): w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
可以使用 openkylin 计算机来监视Sophgo sg2042启动过程的串口输出,将计算机连接到Sophgo sg2042上第三个Micro USB端口,通过运行以下命令来打开串口:
sudo minicom -s
在串口设置中,修改A - 串行设备为:/dev/ttyUSB0之后保存并打开串口。
将烧录并分盘后的SD卡插入Sophgo sg2042卡槽并按下电源按钮。首次启动之后,系统中会存在一个默认用户,当桌面环境启动之后,您可以通过默认用户进行Sophgo sg2042首次登陆,后期可以根据自己需求进行用户或密码的更改。
默认用户名/密码是
username:openkylin
password:openkylin
准备好一根Type-C数据线,一般开发板包装盒会配套提供。
openkylin适配LicheePi4A的镜像可以通过以下链接下载:
通过以下命令将文件解压:
tar -xvf openKylin-2.0-alpha-licheepi4a.tar.xz
拿出准备好的Type-C数据线,按住开发板板上BOOT键,进入fastboot模式,连接开发板Type-C口与电脑USB接口,接好红灯亮后可松开BOOT键
需要使用X86架构设备
在 Windows 下使用设备管理器查看,会出现 “USB download gadget” 设备。
在 Linux 下,使用 lsusb 查看设备,会显示以下设备: ID 2345:7654 T-HEAD USB download gadget
切换到fastboot文件所在目录:
cd openKylin-2.0-alpha-licheepi4a/fastboot/linux (根据自己系统选择)
文件夹中包含两个版本的uboot和boot文件,根据自己开发板内存大小选择
执行以下命令烧录:
sudo ./fastboot flash ram ./images/u-boot-with-spl-nonsec-noswap-16g-ddr.bin
sudo ./fastboot reboot
sleep 1
sudo ./fastboot flash uboot ./images/u-boot-with-spl-nonsec-noswap-16g-ddr.bin
sudo ./fastboot flash boot ./images/boot-default-16g-ddr.ext4
sudo ./fastboot flash root ./images/openkylin-2.0-alpha-licheepi4a-riscv64.ext4
终端会打印烧录日志,烧录完成后拔调数据线,上电启动即可。
openkylin适配LicheePi4A的镜像可以通过以下链接下载:
https://www.openkylin.top/downloads
通过以下命令解压:
tar -xvf openKylin-2.0-alpha-licheepi4a.tar.xz
切换到image文件所在目录:
cd openKylin-2.0-alpha-licheepi4a/images
首先使用磁盘工具将SD卡格式化。之后通过命令行将镜像刷入sd卡,请运行:
sudo dd if=</path/to/image.ext4> of=/dev/mmcblk0 bs=1M status=progress
此命令假设您已将 SD 卡插入开发板的 SD 卡插槽中。 如果您使用的是 USB 适配器,它可能会显示为 /dev/sdb 或类似的内容而不是 /dev/mmcblk0
注意:要非常小心上一个命令中的“of”参数。 如果使用了错误的磁盘,您可能会丢失数据。也可通过磁盘工具的回复磁盘映像功能来将镜像刷入sd卡。
执行以下命令将SD卡剩余空间分配到根分区。
注:此命令假设您SD卡的设备号为/dev/sdb,分盘时请根据实际的设备号进行分盘。
sudo resize2fs /dev/sdb
可以使用 openkylin 计算机来监视LicheePi4A启动过程的串口输出,通过USB转串口线对应连接开发板U0-TX,U0-RX,GND管脚并连接到计算机上,通过运行以下命令来打开串口:
sudo minicom -s
在串口设置中,修改A - 串行设备为:/dev/ttyUSB0之后保存并打开串口。
在计算机中启动LicheePi4A的minicom串口。将烧录好的sd卡插入LicheePi4A卡槽并连接好电源线。开发板启动到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={factory_reset} init=/lib/systemd/systemd'
env save
reset
注:第一条是一条命令,很长,在您的显示设备可能会换行
之后在u-boot中输入reset来重启开发板,这样开发板就可以从sd卡启动openKylin系统。
首次启动之后,系统中会存在一个默认用户,当桌面环境启动之后,您可以通过默认用户进行LicheePi4A首次登陆,后期可以根据自己需求进行用户或密码的更改。
默认用户名/密码是:
> username:openkylin
> password:openkylin
注:如有其他烧录问题,如windows系统烧录可能需要安装驱动、烧录日志图片展示等可参考矽速科技相关文档
https://wiki.sipeed.com/hardware/zh/lichee/th1520/lpi4a/4_burn_image.html
openkylin适配VisionFive 2的镜像可以通过以下链接下载
通过以下命令解压
unxz openkylin-1.0-visionfive2-riscv64.img.xz
以上路径请根据自己的实际路径去解压
首先使用磁盘工具将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
先使用fdisk命令查看sd卡分区情况
fdisk -l
fdisk /dev/mmcblk1
删除分区4
d
4
新建分区4,大小为剩余空间
n
4
不移除签名
N
写入修改
w
调整分区大小
resize2fs /dev/mmcblk1p4
首先使用磁盘工具将NVMe硬盘格式化。
之后通过命令行将镜像刷入NVMe硬盘,请运行:
sudo dd if=</path/to/image.img> of=/dev/nvme0n1 bs=1M status=progress
注:</path/to/image.img>的含义是下载的镜像路径,不用写尖括号和里边的英文,路径尽可能不要有空格
此命令假设您已将NVMe硬盘插入开发板的中。如果您使用的是 USB 硬盘盒,它可能会显示为 /dev/sdb 或类似的内容而不是 /dev/nvme0n1
注意:要非常小心上述命令中的“of”参数。 如果使用了错误的磁盘,您可能会丢失数据。也可通过磁盘工具的回复磁盘映像功能来将镜像刷入SD卡或NVMe硬盘。
执行以下命令将NVMe硬盘剩余空间分配到根分区。
注:此命令假设您sd卡的设备号为/dev/sdb,分盘时请根据实际的设备号进行分盘。
sudo apt install cloud-utils
sudo growpart /dev/sdb 4
sudo resize2fs /dev/sdb4
将烧录好的sd卡插入VisionFive 2卡槽并连接好电源线。首次启动之后,系统中会存在一个默认用户,当桌面环境启动之后,您可以通过默认用户进行VisionFive 2首次登陆,后期可以根据自己需求进行用户或密码的更改。
默认用户名/密码是
username:openkylin
password:openkylin
openkylin 适配 Lotus2 的镜像可以通过以下链接下载
下载 openKylin-1.0-embedded-lotus2-riscv64.tar.gz 到本地
首先将 sd 卡分区格式化,然后将文件系统解压到 sd 卡即可
以 sd 卡设备节点为/dev/sdb 为例
# 分区、格式化
sudo parted -s /dev/sdb mktable gpt
sudo parted -s /dev/sdb mkpart primary 1 100%
sudo mkfs.ext4 -L system /dev/sdb1
sudo mount /dev/sdb1 /mnt
# 拷贝文件系统
sudo tar xf openKylin-1.0-embedded-lotus2-riscv64.tar.gz -C /mnt
sync
sudo umount /mnt
# 弹出sd卡
sudo eject /dev/sdb
Lotus2 没有图形显示接口,因此需要通过串口连接操作,按照下图所示,使用双公头 USB 线将 USB 转串口与电脑连接
插上电源,上电后,电脑上即可将串口识别出来,通过串口即可登录系统,默认用户名/密码是
> username:openkylin
> password:openkylin