Anolis OS 8 for RISC-V 试用预览版引导流程 0. 免责声明 须知:RISC-V 体系结构的 Anolis OS 8 镜像只适用于体验与技术交流用途,龙蜥社区不会对其提供任何额外技术支持。 Note: Anolis OS 8 for RISC-V architecture is only for preview or development usage. Thus, OpenAnolis Community might not provide any supports for this image. 1. 背景 RISC-V 是一套遵循精简指令集(RISC)原则设计的开源指令集架构,允许开发者自由使用该指令集设计 CPU,而无需缴纳任何费用。开源体系结构在历史上并不少见,但是由于 RISC-V 凭借其出色的设计理念,在业内造成了很大轰动,并吸引了大量商业公司的关注。 Anolis OS 作为国内开源操作系统的探索者,在云计算领域稳步前进的同时积极拥抱新变化,致力于构建良好的社区生态环境,扩展了 RISC-V 产品线。今发布 Anolis OS 8 的 RISC-V 版本,供社区爱好者体验交流。 2. 运行环境准备 本说明文档以 fedora 35 为例,部署 RISC-V 镜像。需要注意的是,Anolis 8 的软件仓库当前尚未包含 qemu-system-riscv,该软件包将在后续加入 EPAO (Extra Package For Anolis OS, https://mirrors.openanolis.cn/epao/8/) 中。 首先需要安装 libvirt 与 QEMU. ------------------------------------------------------------------------------------ yum install libvirt yum install qemu-system-riscv ------------------------------------------------------------------------------------ 安装完成后,启动 libvirt 守护进程。如 ------------------------------------------------------------------------------------ [root@anolis-booter ~]# systemctl start libvirtd [root@anolis-booter ~]# systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2022-06-22 19:38:15 CST; 10s ago TriggeredBy: ● libvirtd-ro.socket ● libvirtd.socket ○ libvirtd-tls.socket ○ libvirtd-tcp.socket ● libvirtd-admin.socket Docs: man:libvirtd(8) https://libvirt.org Main PID: 7664 (libvirtd) Tasks: 21 (limit: 32768) Memory: 14.2M CPU: 356ms CGroup: /system.slice/libvirtd.service ├─ 7664 /usr/sbin/libvirtd --timeout 120 ├─ 7767 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper └─ 7768 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper Jun 22 19:38:15 anolis-booter dnsmasq[7767]: started, version 2.86 cachesize 150 Jun 22 19:38:15 anolis-booter dnsmasq[7767]: compile time options: IPv6 GNU-getopt DBus no-UBus no-i18n IDN2 DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth cryptohash DNSSEC loop-detect inotify dumpfile Jun 22 19:38:15 anolis-booter dnsmasq-dhcp[7767]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h Jun 22 19:38:15 anolis-booter dnsmasq-dhcp[7767]: DHCP, sockets bound exclusively to interface virbr0 Jun 22 19:38:15 anolis-booter dnsmasq[7767]: reading /etc/resolv.conf Jun 22 19:38:15 anolis-booter dnsmasq[7767]: using nameserver 100.100.2.136#53 Jun 22 19:38:15 anolis-booter dnsmasq[7767]: using nameserver 100.100.2.138#53 Jun 22 19:38:15 anolis-booter dnsmasq[7767]: read /etc/hosts - 3 addresses Jun 22 19:38:15 anolis-booter dnsmasq[7767]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses Jun 22 19:38:15 anolis-booter dnsmasq-dhcp[7767]: read /var/lib/libvirt/dnsmasq/default.hostsfile ------------------------------------------------------------------------------------ 3. 准备相关文件 从软件源中获取相关文件, ------------------------------------------------------------------------------------ wget http://build.openanolis.cn/kojifiles/rsync/alt/risc-v/images/anolisos-disk-minimal-an8-Rawhide-sda.raw.xz wget http://build.openanolis.cn/kojifiles/rsync/alt/risc-v/images/u-boot.bin wget http://build.openanolis.cn/kojifiles/rsync/alt/risc-v/images/fw_dynamic.bin unxz anolisos-disk-minimal-an8-Rawhide-sda.raw.xz ------------------------------------------------------------------------------------ 创建实例的过程中,可能会存在权限问题,因此将以上文件移动到 /var/lib/libvirt/images/ 目录下. 镜像准备就绪后,我们还需要创建描述文件,在本例中,我们将其命名为 riscv.xml。 ------------------------------------------------------------------------------------ riscv64 16777216 16777216 8 /machine hvm /var/lib/libvirt/images/fw_dynamic.bin /var/lib/libvirt/images/u-boot.bin destroy restart destroy /usr/bin/qemu-system-riscv64
+107:+107 system_u:object_r:svirt_image_t:s0:c257,c805 ------------------------------------------------------------------------------------ 4. 创建镜像实例 我们可以通过 virsh 创建实例,对于普通用户,可能需要使用 sudo 提升权限。 ------------------------------------------------------------------------------------ sudo virsh create riscv.xml ------------------------------------------------------------------------------------ 通过串口连接到实例。 ------------------------------------------------------------------------------------ sudo virsh console riscv64 ------------------------------------------------------------------------------------ 5. 总结 作为一款新兴指令集架构,RISC-V 天生就带有颠覆芯片产业的基因。Anolis OS 将为构建开源共享的软硬件平台出自己独特的力量。