【跟我学RISC-V】(三)openEuler特别篇

写在前面

这篇文章是跟我学RISC-V指令集的第三期,距离我上一次发文已经过去一个多月了,在这个月里我加入了oerv的实习项目组,并且还要准备期末考试,比较忙。
在这篇文章里我会隆重、详细地介绍一个对RISC-V支持非常友好的Linux发行版,同时也是国产操作系统 — openEuler.在此之前我都是使用我最熟悉的Fedora,在x86上Fedora确实非常好用、体验好,但是在RISC-V上总是会出现不稳定、包依赖问题,这可能是因为Fedora项目组对于RISC-V的rpm包并没有非常重视导致的。因为一个发行版想要稳定、不起冲突,是需要专门的维护人员进行软件包维护的,如果一个软件包升级了但是依赖却没人管,那么很容易就出现新软件无法安装、起冲突的情况。因此,对于入门RISC-V的新手而言,一个稳定、安宁的OS是非常重要的。同时,在今后的RISC-V汇编语言编程的过程中,我也会切换到openEuler的环境,在RISC-V原生环境里跑rv汇编其实是比在交叉环境里更加贴近物理机也更加不容易出问题。并且openEuler的安装教程其实是写的比较详细的。大家无需担心环境配不好或者编程体验不好,因为这篇文章会和之前一样,非常详细,你照着我做就不会出问题。

openEuler neofetch这就是我当前的学习和工作环境,它是在我的x86 Fedora里使用qemu模拟器里使用8个Hart运行的openEuler操作系统虚拟机。虽然说跨越架构会造成性能损失,不过仅仅是用来学习RISC-V指令集性能是完全足够了。我们不会在这样跨架构的OS进行数据分析、人工智能训练等操作。大家可以放心大胆地加入进来,这样对于rv的学习是相当有利的。其实我已经在第一篇文章里提到了openEuler,不过那时候是非常粗略的,我现在就来把这个过程完整说明。我会在文章里介绍查看Linux系统的信息,里面常常包含RISC-V指令集信息。


openEuler介绍

openEuler中文官网
openEuler英文官网

相信大家对openEuler也许都有耳闻,我在这里简单介绍一下。

EulerOS,又称为欧拉操作系统,是华为基于Red Hat Enterprise
Linux源代码,面向企业应用环境开发的一个商用Linux发行版。其开源的社区版本为openEuler,又称为欧拉开源操作系统,华为将该系统捐赠给开放原子开源基金会之后,该系统成为该基金会运营的开源项目。
说到华为,大家可能想到的都是Harmony OS,EulerOS一开始也是华为提出的。

发展历程

1.CentOS是一个基于Red Hat Enterprise Linux(RHEL)的发行版,由社区维护和支持.CentOS原本在服务器领域占有相当的份额,因为其背靠RHEL企业Linux发行版,并且有一批老运维的支持;
2. RedHat公司决定放弃对CentOS稳定版本的维护,CentOS仍然存在,只不过它不再基于RHEL构建,不再提供稳定的长期支持(LTS)版本,而是作为Fedora和RHEL的缓冲发行版,稳定性大大下降;
3. 华为作为云服务器提供商之一,看见了这一个rpm系列发行版的维护的空缺,于是基于CentOS,自行维护自己的软件源,不依赖于RedHat公司.这个操作系统就是EulerOS;
4. EulerOS如果仅仅由企业来维护,那肯定是发展起来非常缓慢,作为Linux发行版,开源开放几乎是它的唯一出路。于是就有了现在的openEuler.
5. openEuler目前不仅仅作用于服务器,而是立志于全场景支持服务器、云计算、边缘计算、嵌入式等应用场景;不仅仅是在x86上进行维护,还在ARM、SW64、RISC-V、LoongArch 多处理器架构里维护对应的软件包。


openEuler目前的实力

openEuler是面向数字基础设施的操作系统开源项目,支持服务器、 云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的操作系统。通过为应用提供确定性保障能力,支持 OT 领域应用及 OT 与 ICT 的融合。openEuler开源社区通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系,孵化支持多种处理器架构、覆盖数字设施全场景,推动企业数字基础设施软硬件、应用生态繁荣发展。

openEuler目前有的大版本:

  • openEuler 20.03
  • openEuler 21.03
  • openEuler 22.03
  • openEuler 22.09
  • openEuler 23.03
  • openEuler 23.09
  • openEuler 24.03

其中还在支持更新的LTS版本有:

  • 24.03 LTS
  • 22.03 LTS SP3
  • 20.03 LTS SP4
  • 22.03 LTS SP1

大家可以看见,openEuler现在已经不仅仅是应用于服务器了,而是在各个领域都有所成就,并且它现在有了开源的支持,软件生态会发展迅速。这篇文章的主题就是在这样一个重视RISC-V软件生态的OS上进行rv的学习和工作。作为初学者,我们不用去区分这么多版本到底什么地方不一样,我们只需要知道最新版本是哪一个就好。当前最新的版本是openEuler 24.03,我们就在这个版本进行学习,目前来说自带的源可能还需要修改才能使用。



安装openEuler RISC-V

下载openEuler的镜像

openEuler 镜像下载地址
选择构建日期大家可以看见,几天就构建一次,我们只需要选择离你当前的时间最近的哪一个就好,这里我选择20240618,因为我发布文章的这一天刚好是6月18日。可见openEuler的构建还是相当积极的。不过也不用怕选错了,你选择以前日期的也没有任何关系。

在这里插入图片描述进入之后会让你选择版本,可以随便挑一个。
在这里插入图片描述然后进入到镜像平台的选择,我们使用Qemu模拟器来运行openEuler,所以就选择QEMU,如果你有这里面的某一块开发板,也可以刷入openEuler.

在这里插入图片描述到这里的选择就比较丰富了,有基于UEFI启动的,有u-boot启动的,还有xfce桌面的。
我这里选择u-boot启动,不使用桌面,因为QEMU模拟出来的CPU性能不算强,安装桌面实在没有这个必要,足够用于rv的学习就好。

在这里插入图片描述基于以上的需求,我们需要下载的是如下几个文件,如果你有不同的需求,只需要下载不同的文件就好,非常方便。其中的start_vm.sh是启动脚本,我推荐你可以自己写这个脚本,你只需要参考它提供的脚本,这样对自己的虚拟机的配置可以了如指掌。

mkdir openEuler
cd openEuler
wget https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/testing/20240618/v0.3/QEMU/fw_payload_oe_uboot_2304.bin
wget https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/testing/20240618/v0.3/QEMU/openEuler-24.03-V1-base-qemu-testing.qcow2.zst
wget https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/testing/20240618/v0.3/QEMU/start_vm.sh

这里有一点我需要强调一下,就是这个openEuler的本体,也就是这个.zst压缩文件总是会下载失败,如果出现中断的情况,你可以使用wget的-c进行断点续传.

wget https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/testing/20240618/v0.3/QEMU/openEuler-24.03-V1-base-qemu-testing.qcow2.zst -c

大家会看到,我们明明使用的是openEuler24.03但是u-boot文件名确是fw_payload_oe_uboot_2304.bin ,疑似为23.04版本,这不需要担心,因为一个u-boot文件是可以引导不同的系统的,只要系统差距不是非常大是可以复用的。因此这里只是使用了在旧系统构建的u-boot,大家无需担心,是能够正常启动的。


准备启动openEuler

下载好之后进行解压缩

方法一

zstd -d openEuler-24.03-V1-base-qemu-testing.qcow2.zst 

如果你没有zstd命令,你需要安装它的rpm包。上述命令中的-d是解压缩的意思。

sudo dnf install zstd

方法二

qemu-img convert -c -O qcow2 -o compression_type=zstd openEuler-24.03-V1-base-qemu-testing.qcow2.zst openEuler-24.03-V1-base-qemu-testing.qcow2

这里还可以使用qemu-img的convert子命令对文件格式进行转换。

这里需要强调的一点是:如果出现解压缩失败的情况(大概是如上图所示),那么很可能是下载的时候断掉了,试一试wget -c断点续传


参考源里提供的start_vm.sh写出自己的启动脚本run.sh

qemu-system-riscv64 \-nographic -machine virt \-smp 8 -m 4G \-bios fw_payload_oe_uboot_2304.bin \-drive file=openEuler-24.03-V1-base-qemu-testing.qcow2,format=qcow2,id=hd0 \-object rng-random,filename=/dev/urandom,id=rng0 \-device virtio-gpu \-device virtio-rng-pci,rng=rng0 \-device virtio-blk-pci,drive=hd0 \-device virtio-net-pci,netdev=usernet \-netdev user,id=usernet,hostfwd=tcp::10000-:22

你需要关注的是这里面的tcp::10000-:22 ,我们之后使用ssh连接到虚拟机的时候就是需要使用到这个本地的10000.这里是做了一个映射,把你宿主机的10000端口(因为它通常不会被其他进程使用)映射到了虚拟机里的22端口。这个22端口就是专门用来ssh连接的。这里需要注意一下:假如你的10000端口已经分配出去了,那你就需要换一个端口,比如10001.
这里面已经设置好了网卡,你启动openEuler就会自动使用你宿主机的网络,并不需要担心虚拟机断网的情况。

chmod +x run.sh
./run.sh

给予run.sh执行权限然后直接运行,然后激动人心的时刻就到了。


启动openEuler

在这里插入图片描述一开始打印的是OpenSBI的logo,这个openSBI是RISC-V体系结构里一个非常重要的东西。
opensbi GitHub

OpenSBI是RISC-V架构的开放操作系统二进制接口,也可以理解成固件。它的主要作用是作为一个管理程序或者是通用操作系统执行,并进入S或者HS模式。这里其实非常接近于x86架构的实模式,它用于管理RISC-V中的M模式(机器模式),并对上层提供二进制接口,方便上层的程序调用。

在这里插入图片描述但是我这里启动后并不顺利,卡在了u-boot,不过不用担心,u-boot会提供一系列的命令来帮助你,你使用help就可以查看。
其中最重要的两个命令就是reset(重启)和poweroff(关机)。
由于我们这里出了问题,所以直接poweroff关机就好。
在这里插入图片描述现在已经关机了,问题很明确,就是解压缩失败了,因为解压缩后的文件居然和压缩文件一样大小,说明出错了。

在这里插入图片描述
在这里插入图片描述我们断点续传后重新解压缩,这下可以正常启动了。

在这里插入图片描述在进行一系列输出之后,会交给我们一个shell,我们现在要登陆它。

用户名:root
密码:openEuler12#$

在这里插入图片描述至此,我们已经成功登陆到了系统,可以看见,有一些输出:

System load:    1.95
Memory used:    4.3%
Swap used:      0.0%
Usage On:       11%
IP address:     10.0.2.15
Users online:   1

这是当前系统的基本信息,那么为什么会输出这些呢?
在这里插入图片描述这其实是openEuler非常贴心,在用户登陆的时候打印当前系统的基本信息,让用户对系统有一个最基本的了解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【每天学会一个渗透测试工具】Nessus安装及使用指南

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 其他扫描工具: AWVS和Xray:应用漏洞扫描工具 fscan:虽然能扫主机,但比较老了…

01- ES6语法

1.ES6相关概念 1.1 什么是ES6 1.1.1 简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。 ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 Ja…

Linux、Windows安全加固

为了减少系统被黑客入侵,对操作系统的安全加固是网络安全和主机安全必不可少的一部分。 一、Linux安全加固 1.不使用默认的ssh端口,修改默认ssh22端口号 sudo vim /etc/ssh/ssh_config 去掉#注释,修改端口号并保存 2.关闭不必要的系统服务…

【ajax基础03】常用ajax请求方法和数据提交以及axios错误处理

一:请求方法 什么是请求方法: 浏览器对服务器资源,要执行的操作 常见请求方法如下 二:axios中应用 语法格式: method:为请求方法,默认情况下为get(获取数据) data:…

技术革新| 卓翼飞思受邀出席2024士兵智能装备与技术学术大会

6月14日,由中国兵器装备集团智元研究院/智元国家重点实验室、中国兵工学会主办的 “2024士兵智能装备与技术学术大会” 在杭州隆重召开。卓翼智能应邀出席本次大会,并发表了题为《新概念飞行器及多智能体集群仿真系统研究》的演讲报告。 本次大会以“智能…

Centos8.5安装mysql8.0

1.检查是否有安装mysql数据库(如果有mysql或者mariadb数据库,则卸载) [rootmyhost ~]# rpm -qa |grep mysql [rootmyhost ~]# rpm -qa | grep mariadb [rootmyhost ~]# ll /etc/my.cnf ls: 无法访问/etc/my.cnf: No such file or directory…

mumu 模拟器如何模拟指纹识别?

最近在帮朋友解决一些任务时,有些比较复杂的任务需要批量使用模拟器,但是模拟器存在一个缺点,就是缺少很多物理功能,比如说陀螺仪、温度传感器和生物识别模块等等,但是有些任务是需要这些功能的。没有办法,…

Vue3、Element Plus使用v-for循环el-form表单进行校验

在开发中遇到了这样一个需求 有一个form是通过v-for生成出来的&#xff0c;并且数量不确定&#xff0c;每个表单中的字段都需要做校验&#xff0c;就将自己的解决方法记录了下来。 完整代码如下 <template><div class"for-form"><el-button type&quo…

秋招突击——6/16——复习{(单调队列优化DP)——最大子序和,背包模型——宠物小精灵收服问题}——新作{二叉树的后序遍历}

文章目录 引言复习&#xff08;单调队列优化DP&#xff09;——最大子序和单调队列的基本实现思路——求可移动窗口中的最值总结 背包模型——宠物小精灵收服问题思路分析参考思路分析 新作二叉树的后续遍历加指针调换 总结 引言 复习 &#xff08;单调队列优化DP&#xff09…

华翰传媒集团横店影视基地盛大开业,汇剧视界APP震撼发布

2024年6月1日上午&#xff0c;横店影视华翰传媒集团携手腾烨影视隆、明艺影视重举办了横店影视基地的开业庆典。这一盛事不仅标志着华翰传媒集团在影视行业发展的重要里程碑&#xff0c;更彰显了其深耕影视产业、致力于打造高质量影视内容的决心与目标。 活动盛况空前&#xff…

虹软ArcSoft—真正离线免费的人脸识别SDK

虹软ArcSoft—真正离线免费的人脸识别SDK 高级功能收费 还是很好滴 人证核验功能是C/C的SDK&#xff0c;需要封装为C#&#xff0c;然后暴露为Restful API使用

Ardupilot开源代码之ExpressLRS性能实测方法

Ardupilot开源代码之ExpressLRS性能实测方法 1. 源由2. 测试效果3. 测试配置4. 总结5. 参考资料6. 补充 1. 源由 之前一直在讨论ExpressLRS性能的问题&#xff0c;有理论、模拟、实测。 始终缺乏完整的同一次测试的测试数据集&#xff0c;本章节将介绍如何在Ardupilot上进行获…

半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割

Title 题目 Semi-Supervised Medical Image Segmentation Using Adversarial Consistency Learning and Dynamic Convolution Network 半监督医学图像分割&#xff1a;基于对抗一致性学习和动态卷积网络的方法 01 文献速递介绍 医学图像分割在计算辅助诊断和治疗研究中扮演…

【css】如何修改input选中历史选项后,自动填充的蓝色背景色

自动填充前&#xff1a; 自动填充后&#xff1a; 解决办法 方法一&#xff1a;设置背景透明 改变input自动填充背景颜色 // 通过拉长过渡时间&#xff0c;和延迟过渡开始时间&#xff0c;掩盖input自动填充背景颜色input:-internal-autofill-previewed,input:-internal-aut…

护眼灯是智商税吗?严防存在四大智商税的劣质护眼灯

护眼台灯这类产品相比大家也是很熟悉了&#xff0c;无论是中小学生的家里还是的婴幼儿的家里都几乎都配备着这样一盏护眼灯&#xff0c;但是随着使用护眼灯的人越来越多&#xff0c;网络上就出现了一些关于护眼灯皮肤色素沉着、视网膜损伤、睡眠障碍等安全问题&#xff0c;随着…

[Qt] Qt Creator 编译输出乱码,问题页中的报错、警告内容,编译输出乱码

确保文件编码为"UTF-8"&#xff0c;"如果编码是UTF-8则添加"&#xff0c;如下图&#xff1a; 设置IDE环境语言跟随系统语言&#xff0c;Text codec for tools&#xff1a; "System" 瑞斯拜

frp安装与配置

个人从网上杂乱的信息中学习、试错&#xff0c;记录自己成功配置的方法&#xff0c;避免遗忘 一、frp的下载 因目前无法下载&#xff0c;仅保留下载方法&#xff0c;版本号根据实际修改&#xff0c;目前使用0.54版&#xff0c;不同系统下载不同文件。 wget https://github.c…

AI在医学中神奇应用

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年11月7日&#xff0c;OpenAI首届开发者大会被称为“科技界的春晚”&#xff0c;吸引了全球广大…

空气质量预报模式系统WRF-CMAQ

空气污染问题日益受到各级政府以及社会公众的高度重视&#xff0c;从实时的数据监测公布到空气质量数值预报及预报产品的发布&#xff0c;我国在空气质量监测和预报方面取得了一定进展。随着计算机技术的高速发展、空气污染监测手段的提高和人们对大气物理化学过程认识的深入&a…

pdfFactory虚拟打印机软件下载-pdfFactory虚拟打印机官方最新版下载附加详细安装步骤

pdffactory是一款办公软件&#xff0c;帮助用户更好的进行文件处理&#xff0c;轻松查询使用&#xff0c;不用担心故障的问题&#xff0c;而且打印速度快&#xff0c;效率高&#xff0c;保障用户日常打印轻松。 安 装 包 获 取 地 址&#xff1a; FinePrint-安装包 &#xff1…