• [问题求助] 华为云鲲鹏openEuler 20.03安装kubesphere,出现exec /shell-operator: exec format error
    华为云鲲鹏openEuler 20.03安装kubesphere,之前已安装好kubernetes,现在在 Kubernetes 上最小化安装 KubeSphere,出现exec /shell-operator: exec format error,看样子,好像是下载了x86的文件?怎么解决[root@master01 ~]# kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/cluster-configuration.yamlcustomresourcedefinition.apiextensions.k8s.io/clusterconfigurations.installer.kubesphere.io creatednamespace/kubesphere-system createdserviceaccount/ks-installer createdclusterrole.rbac.authorization.k8s.io/ks-installer createdclusterrolebinding.rbac.authorization.k8s.io/ks-installer createddeployment.apps/ks-installer created[root@master01 ~]# kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -fError from server (BadRequest): container "installer" in pod "ks-installer-85dcfff87d-c9jbv" is waiting to start: ContainerCreating[root@master01 ~]# kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -fexec /shell-operator: exec format error
  • [问题求助] 华为云鲲鹏openEuler 20.03上部署的kubernetes,容器pull的是x86还是arm?
    是i↵我想知道,在华为云鲲鹏openEuler 20.03上部署的kubernetes,pull获取k8s.gcr.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2,如何自动根据节点判断下载arm还是x86容器?如果是x86的,应该不能在arm上运行吧?
  • [问题求助] 华为云鲲鹏openEuler 20.03上安装Harbor v2.x,在哪里找到harbor-offline-installer-v2.x.tgz
    我想在华为云鲲鹏openEuler 20.03上安装Harbor v2.x,在哪里找到harbor-offline-installer-v2.x.tgz?目前搜到的是1.9.x版,要修改一系列参数,适配性不是很好,求助
  • [技术干货] 基于openEuler的docker-engine(CE)适配安装与使用
    openEuler系统自带的mainline源所包含的docker包为docker-engine,而社区最新已经用docker-ce将其替代。如果使用docker官方源安装docker-ce,会导致安装报错,编译依赖关系不满足(containerd.io包缺少container-selinux >= 2.74, openEuler上为2.73版本),且按照网上多种方法安装,均或多或少存在各种问题。对于openEuler上适配安装docker-ce问题,我们这里提供以下方法:1、使能mainline源、centos7的extras源(x86_64)、docker官方源docker-ce-stable​可以配置阿里centos7源wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo并修改Centos-7.repo将其中$releasever替换为7,$basearch替换为x86_64解释:之所以用到centos7的extras源的x86_64版本,是因为openEuler官方提供的container-selinux版本为2.73版本( < 2.74 ),不满足安装要求。而centos7官方只有x86_64的源,不过container-selinux是noarch类型的包,因此是可以兼容安装在aarch64上的。​添加docker-ce-stable源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo注意,并不需要安装官方指导中要求的去安装yum-utils,因为openEuler集成了yum-utils的高级版本dnf-plugin-core,兼容之前的yum-utils。可以参考:cid:link_0​2、yum install -y docker-ce --nobest解释:之所以使用--nobest,是因为正常安装最新版本会报缺少pythoncoreutils-python包,因此使用--nobest来自动安装满足依赖的版本。安装结果如下:3、systemctl start docker​4、测试容器正常运行(运行正常将打印"Hello-world")​5、配置国内镜像(需科学上网或改用墙内镜像,否则默认拉取的镜像地址不可访问)改用墙内镜像:vim /etc/docker/daemon.json​systemctl restart docker6、尝试拉取nginx镜像:docker pull nginx​7、删除所有镜像docker rmi -f $(docker images -qa) 
  • [openEuler] 使用9560-8i raid卡 安装 openEuler 20.03LTS SP3
    环境信息服务器型号:Taishan200 2280操作系统版本:openEuler 20.03LTS SP3架构:aarch64RAID卡型号: 9560-8i(SAS3908)磁盘阵列卡驱动更新流程1. 构建megaraid_sas驱动镜像文件驱动镜像文件构建方式请参考《openEuler 制作驱动镜像文件》2. 在服务器上挂载系统镜像文件3. 启动服务器,在进入安装选择界面时,选择”Install openEuler 20.03-LTS-SP3”,键盘按“e”进入grub配置界面,修改grub配置,添加“linux dd”,然后使用ctrl+x进入安装4. 进入dd交互模式,弹出系统镜像文件,插入驱动镜像文件5. 更新驱动,先输入”r”刷新镜像文件信息,输入“1”回车,可看到挂载的驱动镜像6. 升级驱动输入“1”回车选择驱动,再输入“c”回车升级驱动7. 升级完成后,弹出驱动镜像文件,挂载系统镜像文件,继续安装系统先输入”r”刷新镜像文件信息,出现系统镜像文件信息后,输入”c”继续安装系统8. 进行系统安装配置,选择硬盘、配置网络9. 完成配置后安装系统10. 重启进入openEuler 20.03LTS SP3
  • [openEuler] openEuler忘记root密码无法进入系统 解决方法
    1. 重启系统,在出现内核选择页面时,按”e”进入grub2配置页面用户名:rootopenEuler grub2默认设置的口令为openEuler#122. 找到linux 开头的行,将ro修改为rw,使内核可以读写硬盘,在这行配置的最后加上init=/bin/sh3. ctrl+x 进入单用户模式,可以看到shell执行界面4. 执行以下命令修改root密码passwd root5. 如果系统的selinux为enable,执行命令创建文件 /.autorelabel touch /.autorelabel6. 执行以下命令重启系统,然后可以使用新密码登录系统exec /sbin/init
  • [问题求助] 请问atlas200dk是否支持安装Euler系统呢?
    请问atlas200dk是否可以安装Euler系统呢?如果可以的话,请问有安装教程吗?
  • [openEuler] INTEL ICE驱动在openeuler22.03-LTS 环境上编译安装
    intel ice驱动1.9.11 版本在openeuler22.03-LTS  无法直接编译安装,需要按照以下步骤操作环境 openeuler22.03-LTS aarch641.intel官网下载驱动链接:https://downloadmirror.intel.com/738725/ice-1.9.11.tar.gz2.解压软件包tar -xvf ice-1.9.11.tar.gz3.cd ice-1.9.11/src替换这三个文件(文件在附件中)ice_ethtool.c ice_ptp.c 路径 ice-1.9.11/srcauxiliary_bus.h 路径 ice-1.9.11/src/linux4.cd ice-1.9.11/src5.make install6.查看新驱动 modinfo ice|more环境 openeuler22.03-LTS x86_641.intel官网下载驱动链接:https://downloadmirror.intel.com/738725/ice-1.9.11.tar.gz2.解压软件包tar -xvf ice-1.9.11.tar.gz3.cd ice-1.9.11/src替换这两个文件(文件在附件中)ice_ethtool.c  路径 ice-1.9.11/srcauxiliary_bus.h 路径 ice-1.9.11/src/linux4.cd ice-1.9.11/src5.make install6.查看新驱动 modinfo ice|more
  • [openEuler] 手把手带你玩转 openEuler | 初识 openEuler【转载】
    手把手带你玩转 openEuler | 初识 openEuler为了让更多人更深入认识 openEuler 并积极参与进来,社区将出一些列课程和大家近距离接触,邀请 openEuler 开源的重要参与者、SIG 组 maintainer 等资深专家来进行持续分享。本课程分为三部分,主要是让大家了解 openEuler 是什么、怎么玩、如何参与。 • 第 1 部分:认识 openEuler。了解 openEuler 是一个怎样的平台,包含哪些内容。 • 第 2 部分:openEuler 社区运作。通过本讲您可以了解到 openEuler 社区的治理及运作方式。 • 第 3 部分:openEuler 版本介绍。通过该部分您可以了解到 openEuler 的软件构建和未来的一些规划。1. 认识 openEuler1.1 社区网站:openEuler.org[1]通过社区网站大家可以了解到更多关于 openEuler 的相关内容,并通过文档查看 openEuler 的使用方法。openEuler 是一个开源、免费的 Linux 发行版平台,通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。同时,openEuler 也是一个创新的平台,鼓励任何人在该平台上提出新想法、开拓新思路、实践新方案。1.2 下载体验 openEuler上面了解了 openEuler 是一个开源免费的平台,对于工程师来说,下载使用才是第一步,那么我们怎么去下载 openEuler 呢?openEuler 社区提供了openEuler 下载地址[2]。可以通过 openEuler 社区导航上的【下载】按钮,下载 openEuler 20.03 LTS 的 ISO 安装包。openEuler 20.03 LTS 版本是面向开放场景的标准发行版,生命周期四年。在 openEuler 使用过程中遇到问题或想提出意见,在社区导航下的【下载】里和文档里可以提出意见反馈,供相关技术人员及时解决问题。1.3 参与 openEuler 社区可以通过 openEuler 导航下的【社区】来参与 openEuler 社区,里面有很多社区相关的子菜单大家可以在官方社区里进行深入的了解。这里重点关注三个子菜单:【社区】里的【开发者】可以指导开发者一步一步参于 openEuler 社区、【SIG(项目组)】可以找到自己感兴趣的项目组、【邮件列表】可以收听参与相关的一些讨论。 • 开发者:参与社区贡献需要签署”贡献者许可协议(CLA)“,要了解社区行为守则。 • SIG(项目组):SIGs 是社区根据领域划分的各个领域的兴趣小组,每一个小组会根据情况维护社区一个或者多个项目。访问此处[3]了解如何申请一个新 SIG。 • 邮件列表:邮件列表是社区交流的很重要的一种方式。  ◊  你可以订阅邮件列表:建议您在订阅前把邮箱的‘答复邮件上的邮件头使用英语’的相关设置打开:1)打开邮箱的选项界面。2)点击【高级】——并找到【国际选项】——勾选‘答复或转发邮件上的邮件头和转发通知使用英语’。  ◊  发送邮件到邮件列表:要将邮件发送到指定的邮件列表,请向上表中列出的邮件地址发送您的电子邮件。这样所有在这个邮件列表中的社区成员都能收到您的电子邮件。  ◊  查看以前的邮件列表:要查看邮件列表中以前发布的电子邮件,请访问以下存档地址(Community[4]、Dev[5]、Announce[6]、Council[7]、Infra[8]、Marketing[9]、User-committee[10]、Build-team[11]、TC[12]、Kernel[13]、A-Tune[14]、iSulad[15]、QA[16]、Sig-ai-bigdata[17]、Crystal-ci[18]、Virt[19])通过社区我们可以做些什么:在我们要做一些事情之前,先说一下 openEuler 本身是在什么地方的?openEuler 本身是放在 gitee.com 上的,并且是开源的,如果大家想要加入使用 openEuler 需要有一个 gitee 账号。下面就是我们要在社区里做些事情了。1)提需求/bug: 在使用/开发过程中遇到的一些问题,发现哪些地方使用不方便,大家都可以可以通过 issue 或者邮件列别提出问题。最简单基本的参与社区的方式:当然是先点一点社区里的内容了,看看有哪些需要优化改进的地方,提出一些有价值有意义的建议。这也是最简单的方式了。在社区中提交问题都是通过 issue 机制来进行的,在提交问题的过程中需要提交人指定提交的对象是谁,也就是你要提交问题给谁。让我们看下 issue 的界面长什么样子?举个栗子:如果你想提交一个社区治理的一个问题,那么你可以在 Community 代码仓库的 issue 中提交问题方框里的 issue 就是我们用来提交 bug/问题的入口,进入到 issue 里我们可以点击【新建 Issue】,进去之后就可以提交 issue 了。当然你可以设置提交的 issue 是什么级别的。我们在提交问题时怎么来接行 issue 的划分呢?总的来说分为以下几类: • 在社区中使用基础设施的过程中,感觉不爽,比如页面布局不够霸气,文字太小等等,可以提交问题到https://gitee.com/openeuler/infrastructure[20] • 如果遇到社区治理方面的问题,比如委员选举机制等问题可以提交到 https://gitee.com/openeuler/community[21] • 具体的软件问题,提交到 https://gitee.com/openeuler/kernel[22] • 其他问题,也就是你知道该提交什么地方的问题,可以提交到 https://gitee.com/openeuler/community-issue[23]如果你想要更详细的了解 issue 提交的流程,下面的链接可以帮助到你:https://gitee.com/openeuler/community/blob/master/zh/contributors/issue-submit.md[24]2)修 bug 解决问题: 这个就需要高层次的社区人员,以一个开发者的身份参与到社区中,在社区里可以自己主动认定一些 bug,来解决相关的问题。在社区里,通常我们希望提出问题并同时解决问题,如果有一个问题,当然最好的情况是同时提供问题解决的 patch 补丁。我们以社区的轻量化容器引擎 iSulad 为例,https://gitee.com/openeuler/iSulad[25],假定我们需要为 iSulad 提交一个 patch 补丁,基本流程如下:第一步:首先要先建立一个自己的分支分支是通过 Fork 创建的,如果大家不了解 Fork,还是先去学习以下 git 吧,对于开发者来说,git 的开发模式是最常用的,也是最基本的,使用 git 是必须的。第二步:修改代码并生成 Pull Request点击 fork 完毕后,目录已经从 openEuler 切换成了自己的账户了,你自己的分支就创建好了。接下来就可以在自己的分支上进行代码的修改了。修改完代码后,点击 Pull Request,就会生成一个 patch 提交代码到原始社区里了,到这里就完成了 patch 的提交了,接下来的时间就是等待 maintainer 审核你的代码了。3)贡献软件包: 可以在 openEuler 代码仓库中的 openeuler 或者 src-openeuler 贡献自己的软件包,当然里面有很多软件包供开发者使用。这样日积月累,openEuler 就能够提供更多更丰富的软件包功能,越多人参与进来,openEuler 就能够成为万能的软件生态系统。4)开发新软件: 大家根据自己爱好和想法,可以开发一些新的软件,贡献到 openeler 下面,经过一定时间的孵化可以进驻到 src-openeuler 里,供大家使用。有两种方式可以将自己的作品发布到 openEuler 社区: • 在其他社区开发,集成到 openEuler 中:假如我们常使用的 github、gitlab、gitee,在上面有一些我们的项目,我们可以通过将软件放到 src-openEuler 的 repo 仓就可以了。这样就可以把我们在其他管理平台里的软件集成到 openEuler 里。 • 在 openEuler 社区中开发,在 openEuler 中集成:我们可以直接在 openEuler 的代码仓库https://gitee.com/openeuler中创建项目,相当于将代码托管到openEuler社区。就像社区里的iSula和A-Tune就是这样的模式。1.4 《社区参与之旅》如果大家想更加详细的了解社区,可以通过两篇比较好的博客去进一步了解。可以介绍如何参与社区的博客地址如下:我的社区参与之旅[26]openEuler 社区参与之旅[27]1.5 openEuler 代码仓库openEuler 的愿景是:通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统 openEuler,推动软硬件生态繁荣发展。openEuler 代码是放在 gitee 上的,大家可以尽情的去下载使用。openEuler 主要包括两个代码仓库:src-openEuler 软件包仓库地址:https://gitee.com/src-openeuler[28]src-openEuler 主要用于存放制作发布件所需的软件包。为 openEuler 的 release 发行版提供生成 rpm 包等构建信息等的地方。openEuler 代码仓库地址:https://gitee.com/openeuler[29]openEuler 主要用于存放源码类项目。openeuler 这个仓是存储所有“原生态”的软件,也就是为原创性的软件提供一个展示的舞台,或者是一个孵化器平台。2. openEuler 社区运作2.1 社区治理:开放、透明openEuler 社区码云地址: https://gitee.com/openeuler/community[30]代码仓 Community 保存了关于 openEuler 社区的所有信息,包括社区治理、社区活动、开发者贡献指南、沟通交流指南等内容。这里包括:openEuler 社区介绍、社区治理组织架构、社区活动、开发者贡献指南。社区治理组织结构我们主要介绍 秘书处、安全委员会、技术委员会、SIG。通过对各自的介绍,大家很明白的知道这些架构组织的作用了。秘书处: 负责社区的筹备、运营规划等支撑社区规范化运作成熟。现阶段,openEuler 社区秘书处的主要职责如下: • 制定社区运营规划 • 制定费用预算,请获得社区创始人批准 • 执行社区创始人筹备社区的工作 • openEuler 社区其他未明确分配到责任人的工作安全委员会: 负责接收和响应 openEuler 安全问题报告、提供社区安全指导。现阶段,openEuler 社区安全委员会的工作职责如下: • 协助漏洞修复:确保及时修复已知漏洞。通过为软件包 Maintainer 们提供补丁帮助,帮助用户系统在成为攻击受害者之前进行漏洞修复,包括提供相关漏洞检测和修复工具。 • 响应安全问题:响应上报的安全问题,跟踪安全问题的处理进展,并遵循安全问题披露策略对安全问题在社区内进行披露和公告。 • 安全编码规则:普及安全编码知识是安全团队的目标。安全团队会努力创建文档或开发工具来帮助开发团队避免软件开发过程中的常见陷阱。安全团队还会尝试回答在开发和使用过程中遇到的任何问题。 • 参与代码审核:安全团队希望能够通过代码审核帮助团队提前发现代码中的漏洞。技术委员会: 负责社区技术决策和技术资源的协调。技术委员会的主要职责如下: • 负责回答理事会提出的技术问题,支撑理事会对战略蓝图的技术发展方向做出判断; • 以远程协作的方式运行,每半年召开一次面对面沟通的正式会议,正式会议间定期召开例行线上公开会议; • 对社区技术路线、接口定义、架构设计、构建发布等进行指导,并逐步构建社区规则; • 协调跨项目合作,对社区跨项目技术问题进行指导,并逐步构建社区规则; • 制定、指导项目孵化、开发、退出流程,支撑社区技术生态健康发展; • 制定、指导软件包接纳、退出 openEuler 的流程,支撑 openEuler 开源版本的可信和可靠; • 接受用户委员会的反馈(需求和问题),牵引社区资源将其落地至项目; • 建立社区认证标准和平台,为社区认证(OS 商业发行版认证、硬件兼容性认证等)提供技术支撑;SIG: 社区兴趣小组,每个小组维护一个或多个项目(对应多个 gitee 仓)2.2 参与社区治理和运作在您遇到任何问题、想参与各委员会/各 SIG 的运作、找到感兴趣的 SIG 都可以通过一下方式进行了解和提问。如果您对社区治理有任何问题或建议,可以发邮件到 maillist:community@openeuler.org提 issue:https://gitee.com/openeuler/community如果您想参与各委员会、各 SIG 的运作,可以通过邮件列表交流及获取信息邮件列表:https://openeuler.org/zh/community/mails.htmlSIGs:https://openeuler.org/zh/sig.html如果您没找到感兴趣或者合适的 SIG,可以申请创建 1 个新 SIGhttps://gitee.com/openeuler/community/tree/master/zh/technical-committee/governance如果您对社区版本发布有任何建议或者需求、想法,可以发邮件到 maillist:dev@openeuler.org标题行首带上[release management] 提 issue:https://gitee.com/openeuler/release-management3. openEuler 版本介绍3.1 Linux Kernel 等上游社区openEuler 跟其他大家比较熟悉的操作系统是一样的,主要是从上游社区来取相关的软件进行一些增强开发、集成和质量保障,然后构建出来的一个社区免费版本。基于上游社区开源软件构建的免费、开源的 Linux 社区发行版,与国内主流 OS 厂商共建共享,形成合力繁荣国内 Linux 操作系统生态下图是 openEuler 与 Linux 发行版的对比,大家可以了解一下。 • openEuler 与 SUSE、Debian、 RedHat 一样基于上游社区开源软件 构建 • openEuler 社区发行 LTS 免费版本, 使能 OSV 发展商业发行版,如麒麟软件、普华、中科软、万里开源等 • openEuler 当前基于内核 4.19 版本3.2 openEuler 基于上游开源软件构建,回馈上游开源社区openEuler 大部分软件来自于上游开源社区,基于上游开源社区我们也做了大量的贡献来回馈上游开源社区。(比如:在 Linux Kernel 社区里,华为的贡献排到了 Top5;在 GCC 社区里华为有 Maintainer 在社区里进行贡献,等等。)推送到上游社区比较困难的代码,经过 openEuler maintainer 的评审,如果确实有价值,也可以将代码先合入到openEuler社区里。但还是鼓励尽可能推送到上游社区,坚持upstream first的原则。3.3 openEuler 版本路标规划openEuler 社区版本命名,发布时间与生命周期管理[31]LTS 版本:2 年发布 1 个,维护 4 年,OSV 厂商可以基于 LTS 版本构建商用发行版;下一个 LTS 版本 22.03创新版本:6 个月发布 1 个,维护 6 个月 • 社区版本按按照交付年份和月份进行版本号命名。例如,openEuler 20.09 于 2020 年 09 月发布 • 社区版本分为长期支持版本和创新版本。 • 长期支持版本:发布间隔周期定为 2 年,提供 4 年社区支持。社区首个 LTS 版本 openEuler 20.03 已于 20 年 3 月正式发布。 • 社区创新版本:LTS 版本之间每隔 6 个月 openEuler 会发布一个社区创新版本,提供 6 个月社区支持。 • 欢迎社区开发者和用户提出宝贵建议,以上规则将根据反馈意见以及社区实施情况不断完善。3.4 openEuler 20.03LTS 版本基本信息20.03LTS 版本基本信息表[32]LTS 版本架构环境支持 ARM 和 X86 版本。如果对 ARM 感兴趣的人员可以通过 openEuler 的【首页】—【鹏城实验室】可以去申请 ARM 的虚拟机资源进行体验。详细的版本信息可查看下表。3.5 openEuler 软件全堆栈的技术优化,充分释放多样化计算平台算力openEuler 关键特性文档说明[33]多核调度技术关键路径 Fs pagecache 免锁重构,极致发挥算力,Nginx HTTP 性能提升 15%集成 KAE 插件软硬协同,助力鲲鹏加速库实现 10%-100%性能提升iSula 轻量级容器具备轻、快、易、灵特点启动时间缩短 35%,内存资源消耗降低 68%,通过 Smart-loading 智能镜像下载技术,显著提升镜像下载速度openEuler Community build of OpenJDK通过 GC 优化,冗余 DMB 指令消除等技术提升性能 20%A-Tune 场景自优化典型场景智能自优化,推理出业务特征,配置最佳的系统参数合,使业务处于最优运行状态,提升系统调优效率 30%4. To Do More通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统 openEuler,推动软硬件生态繁荣发展。后面会有更多有意义有挑战性的一些特性在后续的开发维护中会陆陆续续的发布出来,大家尽请关注。社区地址:https://gitee.com/openeuler[34]参考资料[1]openEuler.org: https://openeuler.org/[2]https://openeuler.org/zh/download.html: https://openeuler.org/zh/download.html[3]此处: https://gitee.com/openeuler/community/blob/master/zh/technical-committee/governance/README.md[4]Community: https://mailweb.openeuler.org/hyperkitty/list/community@openeuler.org[5]Dev: https://mailweb.openeuler.org/hyperkitty/list/dev@openeuler.org[6]Announce: https://mailweb.openeuler.org/hyperkitty/list/announce@openeuler.org[7]Council: https://mailweb.openeuler.org/hyperkitty/list/council@openeuler.org[8]Infra: https://mailweb.openeuler.org/hyperkitty/list/infra@openeuler.org[9]Marketing: https://mailweb.openeuler.org/hyperkitty/list/marketing@openeuler.org[10]User-committee: https://mailweb.openeuler.org/hyperkitty/list/user-committee@openeuler.org[11]Build-team: https://mailweb.openeuler.org/hyperkitty/list/buildteam@openeuler.org[12]TC: https://mailweb.openeuler.org/hyperkitty/list/tc@openeuler.org[13]Kernel: https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org[14]A-Tune: https://mailweb.openeuler.org/hyperkitty/list/a-tune@openeuler.org[15]iSulad: https://mailweb.openeuler.org/hyperkitty/list/isulad@openeuler.org[16]QA: https://mailweb.openeuler.org/hyperkitty/list/qa@openeuler.org[17]Sig-ai-bigdata: https://mailweb.openeuler.org/hyperkitty/list/sig-ai-bigdata@openeuler.org[18]Crystal-ci: https://mailweb.openeuler.org/hyperkitty/list/crystal-ci@openeuler.org[19]Virt: https://mailweb.openeuler.org/hyperkitty/list/virt@openeuler.org[20]https://gitee.com/openeuler/infrastructure: https://gitee.com/openeuler/infrastructure[21]https://gitee.com/openeuler/community: https://gitee.com/openeuler/community[22]https://gitee.com/openeuler/kernel: https://gitee.com/openeuler/kernel[23]https://gitee.com/openeuler/community-issue: https://gitee.com/openeuler/community-issue[24]https://gitee.com/openeuler/community/blob/master/zh/contributors/issue-submit.md: https://gitee.com/openeuler/community/blob/master/zh/contributors/issue-submit.md[25]https://gitee.com/openeuler/iSulad: https://gitee.com/openeuler/iSulad[26]我的社区参与之旅: https://openeuler.org/zh/blog/2020/06/10/2020-06-10-my-traval-of-openeuler.html[27]openEuler 社区参与之旅: https://openeuler.org/zh/blog/2020/05/13/2020-5-13-openEuler-Travel.html[28]https://gitee.com/src-openeuler: https://gitee.com/src-openeuler[29]https://gitee.com/openeuler: https://gitee.com/openeuler[30]https://gitee.com/openeuler/community: https://gitee.com/openeuler/community[31]openEuler 社区版本命名,发布时间与生命周期管理: https://gitee.com/openeuler/release-management/blob/master/lifecycle.md[32]20.03LTS 版本基本信息表: https://openeuler.org/zh/docs/20.03_LTS/docs/Releasenotes/release_notes.html[33]openEuler 关键特性文档说明: https://openeuler.org/zh/docs/20.03_LTS/docs/Releasenotes/关键特性.html[34]https://gitee.com/openeuler: https://gitee.com/openeuler文章转载自公众号:openEuler
  • [技术干货] 欧拉首次亮相全球顶级开源盛会 OSSEU2022
    欧拉带着在对多样性计算时代的展望和畅想,带着开源社区近3年以来取得的进展和成果,首次亮相全球顶级操作系统开源盛会 Open Souce Summit Europe 2022(OSSEU2022)。与全球开发者共同构建安全可持续发展的开源软件未来。2022年9月16日,欧拉开源社区品牌委员会主席梁冰在OSSEU2022发表主题演讲《Unleashing Diversified Computing Power to Innovate Enterprises》,向全球的开发者分享欧拉开源3年以来,在面向全场景,支持多样性计算以及构建开放透明安全可信的软件供应链方面取得的进展。欧拉持续通过技术创新,活跃的社区氛围和规模商用构建一个可持续发展的操作系统未来。这是欧拉首次在国际会议中正式亮相,也是欧拉走向国际化的重要里程碑。Open Souce Summit 是Linux基金会主办,围绕 Linux 开发者的一系列开源会议的总称,是全球最顶级的开源盛会之一,更名前为 Linus Torvalds 创立的 LinuxCon,也是 Linus 本人会亲自出席的社区工作会议。OSSEU2022 是疫情以来首场在欧洲举行的线下大型会议,2000多位来自全球的开发者以及欧洲的用户齐聚一堂,共同探讨开源软件如何为用户创造更多的价值。多样性计算加速企业级用户的创新欧拉是由开放原子开源基金会孵化和运营的开源项目。欧拉开源社区通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系,孵化覆盖全场景、并支持多种处理器架构的开源操作系统, 比如:服务器、云、边缘、嵌入式场景。推动企业数字基础设施软硬件、应用生态繁荣发展。欧拉作为支持多样性计算的操作系统,目前已经支持 ARM、X86、RISC-V、POWER、SW-64、LoongArch等全球主流芯片架构,并且取得了不错的进展,目前软件仓库中有ARM软件包超过25000个,X86软件包超过16000个,RISC-V软件包超过23000个,为成为最佳支持多样性计算的操作系统构建了丰富的软件生态。会议期间,Linus 表达了对ARM架构的喜爱,并表示ARM架构的芯片会在服务器和桌面操作系统方面大有作为。为了最好的支持多样性计算,欧拉开源社区做了很多创新,主要包括以下三点:第一,通过一套构建系统,构建面向服务器、云、边缘和嵌入式场景的操作系统镜像,最终实现面向不同场景的协作部署。第二,欧拉发布构建工具 EulerMaker,支持开发者进行软件包级、函数级和文件级别的定制裁剪,从而按需定制面向不同场景的多样性计算操作系统镜像。第三,欧拉面向开发者发布了一套完整易用的开发工具,例如构建和裁剪工具欧拉Devkit、提供统一接口简化应用开发的欧拉SDK和全流程开发服务作业平台欧拉DevOps,帮助开发者实现面向不同场景,不同设备之间的能力和资源共享,加速企业在多样性计算时代的创新。构建开放透明的软件供应链是开源软件可持续发展的根本在大会开幕式环节,Linux 基金会执行董事 Jim Zemlin 认为开源目前在安全可信方面存在巨大挑战,需要大家携手应对。这与欧拉在开源安全可信上的做法不谋而合。当操作系统出现漏洞时,开发者或用户如何实现分钟级的漏洞感知和漏洞溯源定位?面对这种情况,一个安全可信、公开透明的软件供应链显得尤为重要。欧拉开源操作系统的构建过程,也是开源软件供应链聚合优化的过程。拥有安全可信、公开透明的开源软件供应链是大规模商用操作系统的基础。欧拉从用户的需求出发,回溯梳理软件的依赖关系,理清所有软件包的上游地址、源码和上游对应验证,完成了从开源软件构建、运行依赖关系、上游社区三者之间的闭环管理,确保开源软件的安全和可持续发展。目前,Compass CI 安全类测试上报给上游开源社区的BUG每个月有70个,SBOM(软件物料清单)的功能将在今年实现。新面孔吸引开发者持续关注作为 Open Souce Summit 的新面孔,欧拉吸引了很多用户和伙伴的关注。来自施耐德、西门子、爱立信、博世、巴塞罗那电信、瑞士铁路的开发者和用户对欧拉开源操作系统在多样性计算、开源软件供应链管理、软件生命周期和版本规划等方面表示非常感兴趣,在欧拉展区与工作人员进行交流,并表示在会议结束后,将在开发和生产环境中试用欧拉开源操作系统。
  • [openEuler] yum工具使用(管理软件包)
    管理软件包:搜索软件包使用yum能够方便的进行查询、安装、删除软件包使用如下命令 可以通过软件包的名称、缩写或者描述搜索需要的包文件:yum search 名称这样就解决了想要安装一个软件但是有时候往往不能够准确的知道它的名字问题比如:当我们需要安装一个instant Messenger,但是又不知道到底又那些,这时就可以使用 yum search message 先进行搜索然后再去安装管理软件包:列出软件包我们已经知道使用yum可以使我们很轻松的下载很多依赖和软件,除此之外yum也可以对我们下载的很多软件包进行管理,可以轻松的获取软件包的相关信息如果要列出系统中所有已安装的已经可以使用的RPM软件包,可以使用以下命令:yum list all如果需要列出特定RPM包的信息,将上面的all换成RPM包名即可:yum list [包名]如图:管理软件包:显示RPM包信息要显示一个或者多个RPM包的信息可以使用如下的命令yum info 包名如图所示:管理软件包:安装RPM包要安装一个软件包及其所有未安装的依赖,在root权限下执行如下命令:yum install 名称也可以通过添加软件包名同时安装多个软件包。配置文件/etc/yum/yum.conf添加参数strict=False,运行yum命令参数添加–setopt=strict=0。 在root权限下执行如下命令:yum install 名称 名称 .....--setopt=strict=0管理软件包:下载、删除软件包使用yum下载软件包,可以在root权限下使用如下命令:yum download 名称如果同时需要下载未安装的依赖,只需要加上–resolve:yum download --resolve 名称如果需要卸载软件包及其相关的依赖包,需要在root权限下执行如下命令:yum remove 名称管理软件包组:列出软件包组清单软件包组是一组用于公共功能的软件包,包括系统工具、声音和视频。 安装软件包组的过程中,会获取到一系列的依赖包,从而大大节省了时间。使用yum可以对软件包组进行安装/删除等操作,使相关操作更高效使用summary参数,可以列出系统中所有已安装软件包组、可用的组、可用的环境组额数量:yum groups summaryyum group list 列出软件包组和对应组的id管理软件包组:显示软件包组信息列出包含在一个软件包组中必须安装的包和可选包yum group info glob_expression...例如:管理软件包组:安装、删除软件包组每一个软件包组都有自己的名称以及相应的id,可以使用软件包组名称或它的id进行安装:yum group install 名称yum group install id同样如果要卸载软件包组,可以使用软件包组的名称或者idyum group remove 名称yum group remove id软件包检查、更新升级yum工具可以检查系统中是否有软件包更新。可以通过yum列出需要更新的软件包,并可以选择一次性全部更新或者只对某个包进行更新显示当前系统可用的更新:yum check-update 升级单个软件包,在root权限下执行:yum update package_name更新所有的包和他们的依赖yum update
  • [openEuler] yum工具使用(配置yum)
    HCE—OS—yum工具使用(配置yum)yum工具概述yum全称Yellow dog Updater, Modified,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum。通过yum源我们可以获取软件包、进行软件包的升级那么我们为什么要使用yum进行软件安装?这是因为当我们安装某个软件的时候往往会伴随着很多的其他组件一起安装,尤其是一些依赖之间的关系往往很难去梳理当我们使用yum工具进行安装就避免了这些麻烦yum工具的主要特点:可以同时配置多个资源库简介的进行文件配置自动解决或删除rpm包时遇到的依赖性问题保持了rpm数据库的一致性这样基于RPM包管理,能够从指定的服务器自动下载RPM包并且自动安装,这样就可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐的下载、安装在使用yum工具前我们需要对yum进行一些配置配置yum:yum配置文件yum的主要配置文件是/etc/yum/yum.conf该文件中主要包含两部分mainrepository【main部分】:定义了全局配置选项,整个yum配置文件只能有一个main。该文件是/etc/yum.conf【repository部分】:定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。另外:在/etc/yum.repos.d目录中保存着一个或者多个repo源的相关文件,它们可以定义不同的repository配置yum:显示当前配置当要显示当前的配置信息时可以使用以下命令:yum config-manager --dump当要显示相应的软件的配置时,首先查询repo id:yum repolist然后执行命令显示对应id的软件源配置,其中repository为查询得到的repo id:yum config-manager --dump repository也可以使用一个全局正则表达式来显示所有匹配部分的配置:yum config-manager --dump glob_experssion配置yum:创建本地软件源仓库要建立一个本地的软件源仓库,可以按照下面的步骤操作:安装createrrepo软件包,在root权限下执行:yum install createrepo将需要的软件包复制到一个目录下,可以直接新建目录,如:/local_repo/执行以下命令创建软件源:createrepo /local_repo这样就可以将本地软件源仓库自动配置完成配置yum:添加启动和禁用软件源添加软件源 - 要定义一个新的软件源仓库,可以在/etc/yum/yum.conf文件中添加repository部分),或者在/etc/yum.repos.d目录下添加.repo文件(如图所示只有一个软件源)。执行下面一段代码其中repository_url为repo源地址:yum config-manager --add-repo repository_url启动软件源 - 要启动软件源,需要在root权限下执行如下命令,其中repository为新增的.repo文件中的repo id (可以通过yum repolist查询):yum config-manager --dump repository
  • [openEuler] Shell脚本概述
    HCE-OS基础操作——Shell脚本概述Shell脚本编写基础知识linux shell是一种特殊的交互式工具,它为用户提供了启动程序、管理文件系统中的文件以及运行在linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解析命令,并在内核中执行。常见的shell有bash、zsh、ksh、ash等,由于linux系统默认为bash,因此本文章主要采用bash。使用shell脚本的几点好处:shell脚本可以记录执行命令的过程和逻辑,以便下次的重复执行shell脚本可以批量处理主机shell脚本可以定时处理主机创建和执行Bash shell脚本Bash是linux下默认提供的shell解释器,而且是使用最广泛、与其他shell兼容性最好的解释器创建和执行一个shell程序一般需要以下几个步骤:利用文本编辑器创建脚本内容使用”chmod”命令设置脚本可以执行属性执行脚本命令解释器在Bash shell脚本中第一行以#!开头,通常也称为sharp-bang后面的路劲名称是命令解释器,也就是应用于执行脚本的程序Bash shell脚本将由Bash shell解释,因此他们作为第一行的开头#!/bin/bashecho “hello”执行Bash shell脚本在编写完成shell脚本后不能立即执行,我们需要对其进行权限修改,不然会发生以下报错接下我们需要修改文件权限和所有文件,使它可以变成可执行文件使用chmod命令修改执行权限,并且可以与chown命令组合更改脚本的文件所有权主要命令如下:chmod +x hello.shchmod 755 hello.shsh hello.sh./hello.sh变量的使用shell脚本的编写也需要一些变量的定义,这些变量可以支持我们去编写一些其他更为复杂的shell脚本这些变量可以在内存中存储数据通过变量我们可以轻松访问和修改存储的数据而且相较于其他语言shell变量要简单的多,这里没用的众多的存储类型的限制也能用预定义,shell变量可以边定义的同时边赋值shell变量的种类:1、环境变量临时变量环境变量是永久性的变量,一旦定义其值就不会随脚本的执行结束而消失临时变量则是在shell脚本内部定义的,当脚本执行结束这些值也就消失了变量命名规则变量名称可以由数字、字母(大写和小写)和下划线”_”组成变量的名称不能以数字开头等号=用于为变量分配值,并且不能使用空格将其与变量名称或值进行分隔如以下变量均为有效变量:变量数据类型shell变量中存储的数据类型,常见的有两种:整数类型:zhangsan=40字符串类型:zhangsan=’zhang san’当在为变量分配字符串值得时候,通常用引号将其括起来,如果没有将其括起那么Bash会将空格字符解释为单词分隔符当我们需要处理一些Bash具有特殊意义含义得字符时我们可以使用双引号扩展变量通过在变量名称前面加上$,我们就可以通过变量扩展来重新调用变量的值在程序执行中使用的变量的值的时候,要在变量名面前加上一个$号,这里就会告诉shell,要进行变量值的替换
  • [openEuler] openEuler 安装 Nvidia 驱动
    Nvidia cuda及驱动安装方式下载驱动wget cid:link_1安装驱动编译解压相关依赖包dnf install -y tar禁用nouveau驱动rmmod nouveauecho ‘blacklist nouveau’ >> /etc/modprobe.d/blacklist.conf安装驱动bash cuda_11.7.1_515.65.01_linux.run 执行 nvidia-smi命令,如果能看到设备信息,表示驱动安装成功。Nvidia 纯驱动安装方式下载驱动wget cid:link_0安装驱动编译解压相关依赖包dnf install -y tar禁用nouveau驱动rmmod nouveauecho ‘blacklist nouveau’ >> /etc/modprobe.d/blacklist.conf安装驱动bash NVIDIA-Linux-x86_64-515.65.01.run出现选择时都选“yes"​​​​​​​​​​​​​​执行 nvidia-smi命令,如果能看到设备信息,表示驱动安装成功。Agenda执行nvidia-smi报错No devices found执行lspci | grep -i nvidia,确认机器中是否有GPU卡,如果没有,需要插上GPU卡才能使用。
  • oec-hardware 工具使用问题解答
    目录1     Content 22     Support 22.1      安装... 22.2      acpi 32.3      cpufreq. 42.4      disk. 62.5      ethernet/infiniband. 72.6      fc. 82.7      raid. 82.8      kdump. 92.9      memory. 102.10    system... 112.11    usb. 132.12    cdrom... 132.13    watchdog. 142.14    gpu/vgpu. 152.15    板卡四元组信息获取... 152.16    测试依赖安装说明... 161 Contentoec-hardware工具是openEuler社区提供的一款硬件兼容性测试工具,oec-hardware提供服务器整机、板卡与openEuler的兼容性验证测试,验证仅限于基本功能验证,不包括性能测试等其它测试。本词条提供 oec-hardware 工具在工具安装或者测试过程中可能遇到的问题解答。2 Support2.1 安装2.1.1 oec-hardware 工具安装oec-hardware 工具已发布到openEuler 官方的 everything 和 update repo源,请使用 dnf 安装软件包。dnf install oec-hardware安装完成后执行oech命令进行测试。详细使用指导请看:cid:link_32.1.2 oec-hardware 工具服务端安装oec-hardware 工具已发布到openEuler 官方的 everything 和 update repo源,请配置相关repo源,然后通过以下步骤进行安装:(1)使用  dnf  获取软件包进行安装。dnf install oec-hardware-server(2)服务端 web 展示页面需要的部分组件系统本身不提供,需要使用  pip3  安装(请自行配置可用 pip 源)。pip3 install Flask Flask-bootstrap uwsgi(3)启动服务。本服务默认使用 8080 端口,同时搭配 nginx(默认端口 80)提供 web 服务,请保证这些端口未被占用。systemctl start oech-server.servicesystemctl start nginx.service(4) 关闭防火墙和 SElinux。systemctl stop firewalldiptables -Fsetenforce 0详细使用指导请看:cid:link_32.1.3 oec-hardware 工具服务端启动失败oech-server依赖的部分软件包需要通过pip3安装,如果执行systemctl start oech-server 启动服务失败,请确认相关服务依赖的安装,请执行以下命令进行安装:pip3 install Flask Flask-bootstrap uwsgi2.1.4 oec-hardware 工具上传测试结果至服务端失败如果oec-hardware工具在测试完成后上传测试结果至服务端失败,出现upload failed的报错,请按照以下步骤进行排查:1. 确认服务端和客户端可以ping通;2. 检查服务端的防火墙和selinux是否正确关闭,请执行以下命令关闭:systemctl stop firewalldiptables -Fsetenforce 03. 检查初始配置信息是否配置正确,初始化时配置的三个参数不能为空,如果配置异常,请执行oech –clean清除配置信息,重新进行配置。2.2 acpi2.2.1 oec-hardware 工具测试acpi 失败,无法找到acpi表acpi是“Advanced Configuration and Power Interface”的缩写,中文意思是“高级配置与电源管理接口”,因此acpi测试是OS与服务器之间硬件信息交互的测试。oec-hardware 测试acpi时如果出现以下报错,无法找到acpi表:Cannot open directory - /sys/firmware/acpi/tables这个报错说明服务器不支持acpi电源管理,请确认服务器的管理方式。以下是一般服务器提供的acpi表:2.3 cpufreq2.3.1 oec-hardware 工具测试cpufreq时无法找到CPU frequency相关文件系统安装完成后,如果 /sys/devices/system/cpu/cpu0-95 目录下缺少cpufreq目录文件,导致用例读取文件中的值失败,用户可以通过以下步骤使系统显示对应目录:1. 修改bios相关配置,将bios中的power policy 值设置为Efficiency 、DEMT值设置为Disabled。2. 查看CONFIG_CPU_FREQ_GOV_COMMON=Y 是否为可设置grep FREQ /boot/config-4.19.90-2016.3.0.0096.oe1.x86_64 |grep GOV |grep -v “is not set”3. bios 下查看Powe Polily Select值是否为performance,bios->advanced->Power Polily Select4. cat scaling_available_governors,如果只有两种模式,需要检测驱动5. 使用modinfo 查询加载的驱动类型cpufreq涉及到的驱动类型有两种:intel_pstate、acpi_cpufreq。如果是intel_pstate,需要按照下面的步骤,在grub中增加intel_pstate=disable1)vi /etc/default/grub 在GRUB_CMDLINE_LINUX 所在行最后添加intel_pstate=disable参数。2)执行grub2-mkconfig -o /boot/efi/EFI/openeuler/grub.cfg (legacy模式下执行grub2-mkconfig -o /boot/grub2/grub.cfg)。3)cat /proc/cmdline 再检查下修改的cmd,然后重启生效。4)cpupower frequency-info 可以查看目前支持5种模式。如果执行以上步骤后,仍然没有cpufreq的相关目录和文件,请升级BIOS固件版本。相关issue链接:cid:link_52.4 disk2.4.1 oec-hardware 工具测试disk信息配置oec-hardware 工具的disk 测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all(all表示测试除系统盘以外的所有硬盘)。vi /usr/share/oech/lib/config/test_config.yaml2.5 ethernet/infiniband2.5.1 oec-hardware 工具测试网卡信息配置oec-hardware 工具的 ethernet/inifiband测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息。vi /usr/share/oech/lib/config/test_config.yaml2.5.2 oec-hardware 工具测试网卡时无法ping通服务端直连网卡使用oec-hardware工具测试网卡时,需要关闭服务端的防火墙、selinux等配置,保证测试端和服务端直连网卡互相可以ping通。 详细使用指导请看:cid:link_32.5.3 oec-hardware 工具测试网卡的rdma模式如果环境中有一张ib卡,当前ib卡使用的是普通网卡模式,可以使用oec-hardware工具的 ethernet 测试项,指定测试rdma 模式,在该模式下会对这张板卡进行ib模式的读写等测试。如果环境中的ib卡使用的infiniband 模式,可以使用oec-hardware工具的 infiniband 测试项对这张卡进行测试。2.6 fc2.6.1 oec-hardware 工具测试FC卡信息配置oec-hardware 工具的fc卡测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all。vi /usr/share/oech/lib/config/test_config.yaml2.7 raid2.7.1 oec-hardware 工具测试raid卡信息配置oec-hardware 工具的raid卡测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all。vi /usr/share/oech/lib/config/test_config.yaml2.8 kdump2.8.1 oec-hardware工具执行测试kdump测试套失败oec-hardware工具执行kdump 测试失败,首先尝试手动执行以下命令触发kdump:echo c > /proc/sysrq-trigger如果系统无法正常切换到第二内核,重启失败并且服务器控制台上出现以下CPU报错:造成该问题的原因是服务器的BIOS固件版本较低,用户可以通过升级BIOS固件版本解决该问题。2.8.2 oec-hardware 工具测试kdump时无法切换内核如果遇到oec-hardware工具执行测试kdump测试套失败,手动重启系统,查看是否能出现切换内核的界面。如果没有出现切换内核的界面,可以通过dnf update进行更新,更新后重启确认是否能出现切换内核界面,如果出现该界面,可以重新测试kdump。2.8.3 oec-hardware 工具测试kdump测试时无法读取vmcore文件vmcore文件是由kexec-tools提供的,如果相关文件不存在,请安装软件包kexec-tools。2.9 memory2.9.1 oec-hardware 工具测试memory 出现Error eatmem_test failed, please check the space of SWAPoec-hardware 工具测试memory时如果出现以下报错信息: Error eatmem_test failed, please check the space of SWAP这个是因为swap空间不足导致的报错,需要检查当前系统可用的SWAP分区大小,保证可用大小在4G以上。执行以下步骤动态调整swap分区:创建一个磁盘分区sda1fdisk /dev/sda执行mkswap /dev/sda1格式化分区执行swapon /dev/sda1挂载swap分区free -h查看当前swap可用空间2.9.2 oec-hardware 工具测试memory hotplug失败内存热插拔测试时,如果内存被cpu占用,会出现无限刷屏,oec-hardware 工具暂时未解决这种场景下内存的分析处理,因此在1.1.0版本起工具中暂时取消内存热插拔测试,待修复完成后,工具会重新集成测试。如果执行测试出现memory hotplug失败或以下刷屏现象,请挂载openEuler 官方的 everything 和 update repo源,安装最新版本的工具。2.10 System2.10.1 oec-hardware 工具测试system报错OS版本不支持如果oec-hardware执行system测试项失败,日志中出现类似以下的OS版本不支持的报错:Error: openEuler 22.03 LTS is not supported.请查看oec-hardware 工具 支持的OS版本:cid:link_2如果工具明确支持测试的OS版本,但是执行测试出现报错,说明安装的工具版本太低,请配置openEuler官方everything和update repo源后,通过dnf install oec-hardware安装最新版本的工具软件包。工具最新版本请查看:cid:link_6如果工具版本没有说明支持的OS版本,请在工具仓库下提issue反馈或者发邮件至openEuler社区兼容性SIG组邮箱进行确认:oecompatibility@openeuler.org。2.10.2 oec-hardware 工具测试system报错内核被修改oec-hardware 工具会检查内核的完整性,如果内核被重编或者升级, oec-hardware执行system测试项会失败,日志中会出现类似以下内核被修改的报错:[ERROR] Files in kernel-5.10.0-60.18.0.50.oe2203.aarch64 were modified.详细被修改文件请执行以下命令查看:rpm -V --nomtime --nomode --nocontexts kernel如果确认需要修改内核来支持适配整机/硬件,请将相关patch提交至openEuler社区的kernel中,等内核合入patch后重新进行验证。2.10.3 oec-hardware 工具测试system报错SElinux is not enforcingoec-hardware 工具会检查SElinux的状态,如果日志中出现以下报错,说明系统默认的selinux模式是disabled,所以测试时无法临时打开selinux:[ERROR] SElinux is not enforcing, expect is enforcing.修改/etc/selinux/config中配置项SELINUX的值变更SELinux模式,使用enforcing或permissive模式。修改完成后重启系统,使之生效。然后执行oech重新测试system,selinux可以测试通过。详细的selinux配置方式请参考openEuler各个版本中的安全加固指南,以openEuler 22.03LTS为例,可以参考以下文档:cid:link_02.11 usb2.11.1 oec-hardware 工具测试usboec-hardware进行usb测试时,需要人工进行辅助测试,在出现以下提示时插入usb设备,设备类型不限。插入设备后在控制台输入”y”继续测试,在出现以下提示时拔出usb设备。拔出设备后在控制台输入”y”继续测试。2.12 cdrom2.12.1 oec-hardware 工具测试cdromoec-hardware进行cdrom测试时,需要人工进行辅助测试,在出现以下提示时插入cdrom设备 插入设备后在控制台输入”y”继续测试。注意:cdrom测试时会对CD/DVD进行读写测试,会破坏里面的数据,所以测试时要确认设备里的数据已进行备份。2.13 watchdog2.13.1 oec-hardware 工具执行测试watchdog失败oec-hardware工具如果执行watchdog用例失败,请先执行下面两条命令,然后再进行测试:rmmod sbsa_gwdtmodprobe sbsa_gwdt action=1相关issue链接:cid:link_42.13.2 oec-hardware 工具执行测试获取watchdog时间报错oec-hardware工具执行watchdog用例失败,如果出现以下报错,表示获取watchdog时间失败:请执行下面两条命令:cd /usr/share/oech/lib/tests/watchdog./watchdog -s 20如果手动测试通过,请重新测试watchdog。2.14 gpu/vgpu2.14.1 oec-hardware 工具无法显示gpu/vgpu测试项 oec-hardware 工具提供了gpu/vgpu 测试能力,在使用工具测试前,用户需要手动安装gpu/vgpu驱动,配置好硬件环境后再执行 oech 命令,工具会识别并显示 gpu/vgpu 测试项。2.14.2 oec-hardware 工具测试vgpu失败 oec-hardware 工具集成了nvidia vgpu测试能力,nvidia 的gpu和vgpu使用的是不同的驱动,因此如果要测试vgpu,需要单独安装vgpu驱动,配置好环境,并在/root目录下放置nvidia 客户端(虚拟机)可使用的vgpu驱动。2.15 板卡四元组信息获取用户可以通过以下三种方式查看板卡四元组信息:通过iBMC查看使用 lspci -nvv 查看使用 lspci -xs 查看以网卡的四元组信息查询为例:执行ethtool -i 网卡名,查看网卡的bus-info;执行lspci -xs 网卡的bus-info,查看四元组信息;vendorID: 19e5deviceID: a222svID: 19e5ssID: 04cc2.16 测试依赖安装说明oec-hardware 工具存在软件包安装依赖和编译依赖,并且每个测试项会有不同的测试依赖。如果测试环境无法连接外网,可以通过挂载本地repo源或提前下载相关软件包、工具上传至测试环境中,再进行测试。以下文档中提供了oec-hardware 工具的相关依赖软件包列表:cid:link_1