Skip to content

Latest commit

 

History

History
824 lines (551 loc) · 43.2 KB

002-20221201.md

File metadata and controls

824 lines (551 loc) · 43.2 KB

《RISC-V操作系统进展》·第002期·2022年12月01日

卷首语

在过去的一个月中,我们很高兴的看到国内外的Linux发行版厂商或社区都在持续积极的推进RISC-V的适配和支持。 深度操作系统 介绍了 Deepin for RISC-V 适配的成果和经验,现在已经可以在至少两款流行的开发板上适配和使用。 OpenKylin 社区也在开始积极的适配 Firefox 和 Chromium 等大型软件。

12月底有 openEuler 峰会, openEuler RISC-V 社区(RISC-V SIG)这边在做几件有趣尝试:第一件尝试是为 Firefox 抢先打上新的 Spidermonkey JIT patchset,期待成功之后Firefox浏览器执行JavaScript的速度将会有最高20倍的提升;第二个尝试是为 OpenJDK8 添加RISC-V支持(backporting),使得依然在使用 JDK8 依赖的软件包可以在 RISC-V 架构上使用。同时,让 openEuler RISC-V 支持超过1000个节点的RISC-V集群的任务正在稳步推进中,软件部分的准备工作已经基本完成,就等着硬件组装完毕,上电运行,直播刷火箭了。

本期亮点

  • Deepin for RISC-V 正式发布。
  • LicheeRV Dock 开始在国内大量流行(感谢CNRV社区的年终策划),超过60名 RISC-V 社区伙伴得到了 RISC-V 开发板。期待在春节前后,看到好玩的作品。

Infra

wangliu

1.脚本编写

openEuler

lvxiaoqian

avocado-vt libvirt 用例调试

  • 代码修改如下

https://gitee.com/lvxiaoqian/tp-libvirt

https://gitee.com/lvxiaoqian/avocado-vt

  • 当前进展

total:17631

cancel:25

fail:131

pass:1555

skip:11

详见:https://docs.qq.com/sheet/DZXlxd2txWk9abldE?tab=BB08J2

准备了一个avocado-vt的分享

openqa

已在本地opensuse虚拟机上搭建部署了openqa的环境

从opensuse clone了两个用例,可以跑过

了解了一些如何触发用例和用例执行的一些逻辑

mingzheng

外部可见进展:

  1. iovisor/ply patchset (merged): ply: Initial support for riscv64

    目前上游已发布新增 riscv64 架构的新版本: ply: Update for 2.3.0

  2. iovisor/ply bug issue (fixed) : BEGIN/END print information in wrong position

  3. 日常工作笔记更新: https://github.com/xmzzz/my-notes/tree/main/01_Quick_reference

misaka00251

上个月主要在做 OpenJDK 以及上游的工作:

  • 与 PLCT 的 zhangxiang 小伙伴一起解决 OpenJDK 8 解释器的问题,并让他的工作能在 openEuler RISC-V 上运行,这个工作还在持续中.
  • 同步 OpenJDK 至上游最新版本,目前 17 和 latest 均已有 server 版本可用.
  • texlive: 修复 texlive 2021 引起多个上游基础软件包无法编译的问题 & 与 Compliance SIG 交流 Utopia 家族字体的合规引入. 目前已经完全收尾.
  • 提交个人仓内的修改至中间仓(见下方 PR).
  • 继续推动 KDE 的补全.
  • 个人尝试将毕晟 OpenJDK 11 的 Lazybox feature port 到 RISC-V,但尚未成功.
  • electron 目前能够进入编译阶段,但尚未成功.

已提交 PR/OBS/Issue

点击展开

尝试中/进行中/暂未提交

其它

jchzhou

  • 本月继续敲敲打打 llvm, rust 以及其他一些软件包
  • 目前 llvm 状态
    • 13.0.1 ✔️ 14.0.5 ✔️ 15.0.4 ✔️
    • 提交审阅 | 等待中 | 等待中
  • 目前 rust 状态
    • 1.60.0 ✔️ 1.62.1 ✔️ 1.64.0 ✘ (skipped) 1.65.0 ✔️ (almost)
    • Note: 充满 tarball 的仓库体积超限,提交略有困难
  • CI 慢慢慢慢重构中

已提交 PR/OBS

点击展开

Staging

Merged

尝试中/进行中/暂未提交

点击展开

Staging

WIP

Jingwiw

上个月主要围绕 QT6、 tensorflow、MNN、firefox进行了相关工作

  • 完成了有关 QT6 大部分基础组件的构建
  • 为 tensorflow 的构建完成 bazel 在 riscv 架构上向 5.11 的升级
  • 本地测试 MNN 在 RISCV 架构的构建与运行
  • 将 firefox 以及 riscv patch 升级到 107,打了 angle for riscv的 patch,并且成功集成 plct spidermonkey patch 通过编译阶段。
  • 升级 vlc 至 3.0.18

尝试中/进行中/暂未提交

其它

在研究 arm2riscv 项目

实习生

PR

共计提交120个PR,为了满足欧拉社区代码规范的合规性yaml修复有55个之多;其次升级软件包版本的pr共45个;

软件包版本升级:45

新增软件包仓库:4

riscv修复:

其它:

合规性修复:55

OBS submit

本期实习生小伙伴未提交obs submit;

验证与测试

Debian

yubo

  1. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=922579#42 [freetrue issue confirmed]
  2. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023128 [freetrue RM done]
  3. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023551 [morse-simulator NMU RC done]
  4. https://github.com/yuzibo/talks/blob/main/debian/2022-11-04-Debian-QA-overview.pdf
  5. https://salsa.debian.org/python-team/packages/tkcalendar [* new queue done]
  6. https://sourceforge.net/p/codeblocks/code/13001/ [upstream support riscv done]
  7. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023861 [libunwind nmu done]
  8. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023924 [9base QA RC done]
  9. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1023946 [rdiff-backup update done]
  10. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022176 [jpy ftbfs done]
  11. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024041#20 [mariadb-10.6 patch]
  12. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024210 [dbus-python done]
  13. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024366 [gimp-gap QA done]
  14. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024548 [*C::B NMU done]
  15. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024680 [pydevd patch]

sunmin

xuyifan

zhanghaikan

chenxuan

LibreOffice riscv64 port 源码已被上游合并:https://gerrit.libreoffice.org/c/core/+/137445

interns

Eric long

  1. rui314/mold#896 [mold PR merged]
  2. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024982 [genometools wishlist done]
  3. ukui/ukui-control-center#16 [ukui-control-center PR]
  4. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024867 [mercurial patch]
  5. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024871 [ruby-stackprof patch]
  6. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024880 [hatari patch]
  7. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024897 [welcome2l wishlist]
  8. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024978 [libapache2-mod-auth-openidc wishlist]
  9. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1017371 [kgb wishlist]

Ubuntu

Deepin

gaohan

yx

interns

王禹东

桂香伟

褚仕成

凌莞

OpenAnolis

Fedora

  1. 利用Bootstrap完成Python在Fedora上的滚动升级:https://github.com/fedora-riscv/Fedora_update_scripts/blob/main/python311.yaml
  2. 完成Libffi在Fedora上的升级,并基于此重新做Python/Perl的bootstrap.
  3. 整理完成较为完善的Fedora编译文档(builder的批量部署),并持续更新中:https://github.com/fedora-riscv/Fedora_riscv_devel_docs
  4. 完成openkoji中riscv64 builder的批量部署,并更新部署脚本:https://gitee.com/etux/koji_tools

FreeBSD

OpenSUSE

OpenKylin

OpenCloudOS

RT-Thread

liyangyang

yanghaiyong

11.03

RT-Thread/packages#1506

11.08

RT-Thread/packages#1525

11.30

RT-Thread/rt-thread#6669

liuyuan

[ch32v307]添加了硬件spi驱动

RT-Thread/rt-thread#6654

添加了部分软件包(等待review)

RT-Thread/packages#1539

RT-Thread/packages#1538

RT-Thread/packages#1537

RT-Thread/packages#1535

更改软件包描述错误

RT-Thread/packages#1536

chushicheng

添加驱动:

RT-Thread/packages#1509

RT-Thread/packages#1511

RT-Thread/packages#1512

RT-Thread/packages#1514

RT-Thread/packages#1515

RT-Thread/packages#1516

RT-Thread/packages#1522

RT-Thread/packages#1526

RT-Thread/packages#1527

RT-Thread/packages#1528

RT-Thread/packages#1530

f411-blackpill 对接 RTduino

RT-Thread/rt-thread#6614

utest

https://github.com/Z8MAN8/rt_thread_strnlen_utest

第三测试小队

1. 测试规划和系统测试

1.1 测试用例库规范

  • 测试用例库规范

  • 组织整理原有测试用例库并设计新的测试用例标准 RISCV-testcase

    • 审查已经整理的原有的测试用例

    • 设计新的标准排版标准

    • 设计机器人和模板以标准化过程

    • 设计 GitHub CI 帮助自动审查

      产出1 产出2

1.2 openEuler RISC-V在众测平台的实践

1.3 RISC-V龙蜥镜像mugen测试

  • 官方发布的软件源中大概只有300+软件包,手动解决了mugen依赖和配置(使用了oE RISC-V 的tcl和expect)
  • 完整地测试了os-basic测试套138个测试例
  • 通过36个测试例,失败102个,其中41个为qemu环境造成
  • 剩余61个未通过测试例大致分为3类
    • 软件缺失(包括因为paramiko依赖没有解决无法安装和没有预装)48个
    • 可能为系统bug,需要进一步分析 12个
    • 其他,和openEuler行为不一致 1个
  • 测试结果

1.4 RISC-V龙蜥测试软件源mugen测试

  • 本次测试使用镜像来源,软件源:an8 gcc an8extra anolis-riscv
  • 为保证测试结果有效性,本次测试了筛选过后的mugen os-basic测试套中的56个测试用例
  • 测试结果:46个用例通过,10个用例失败
  • 10个测试失败用例的日志文件在此目录的logs/os-basic中
  • 通过的46个用例列表为passed_tests

1.5 eulaceura操作系统自动化测试

1.6 RISCV openEuler 22.03 V1自动化回归测试

  • 经过一次os-basic-riscv完整测试和对之前出错的新产生问题的用例单独测试,排除了所有用例的问题,部分测试结果

  • issue评论

1.7 包分类

2. 自动化测试工具开发

2.1 qemu_test.py优化

  • 增加了根据软件源生成测试列表的功能 commit
  • 增加了输入测试配置文件的功能 commit
  • 功能的完善和bug修复 commit1 commit2
  • 针对上周更新的功能添加了使用教程 commit
  • 整合了自动检测样例需求并为虚拟机增加硬盘挂载点的功能
  • 添加了自动监测scp能否传输并进行修改的功能
  • 完善了脚本-m参数的启动
  • 测试例的添加 commit

2.2 anolis x86 mugen和anolis-pkg-test原型搭建和试用

  • anolis-pkg-tests官方更名为anolis-sys-tests
  • anolis-sys-tests因为avocado配置存在很多问题,本周未进一步研究
  • mugen测试
    • systemd测试套 129/160 os-basic 57/138 (openEuler riscv systemd 120/160 os-basic 60/138)
    • 本次测试所用python版本为3.6,paramiko库安装有问题
    • os-basic未通过测试90%是由于paramiko有问题,涉及到两种情况,其一需要多节点和ssh,其二用到DNF_INSTALL,使用python3.9解决paramiko问题后预计属于第二种情况的测试用例还能通过一部分
    • 剩下小部分用例未通过原因是anolis和openEuler行为不同

2.3 对deepin的autopkgtest进行调研

2.4 openQA框架调研

2.5 其它

  • 新入职实习生对Mugen-RISCV进行学习,完成相应的配置以及运行了简单的初始程序,并分析相关日志(包括仓库中的使用以及开发的 python 脚本),产出

2.4 解决openEuler 22.03 QEMU网桥问题,QEMU间已可以ping通,网络测试和HPC测试环境基础建设

  • 文档后续添加,拟进行技术分享

3. 测试用例库建设

3.1 设计测试用例库模板

3.2 测试用例库

总入口

3.3 测试用例库软件调研(调研比较后,决定使用git形式)

3.4 openEuler QA radiatest

  • 交流和申请账号,用于获取上游测试用例,复用到RISCV oE测试中

4. 众测

  1. Chromium众测文档
  2. Libreoffice众测报告验证和审核
  3. 众测审核文档汇总
  4. 众测报告汇总

5. 内部测试

  1. Mysql 测试
  2. 测试龙蜥QEMU在Ubuntu上的安装和网络,编写安装和设置文档

6.缺陷跟踪

6.1 根据RISCV openEuler 22.03 V1自动化回归测试结果,更新缺陷issue信息

  • atune测试套共一个样例未通过issue
  • djvulibre测试套中测试例oe_test_djvulibre_01仍未通过,而测试例oe_test_djvulibre_02运行通过,后经确认为脚本问题,实则为全部通过issue
  • pcp测试套全部通过issue
  • 测试套rabbitmq-server-riscv全部通过issue
  • java-1.8.0-openjdk
  • easymock
  • freeradius
  • clamav

6.2 60个缺陷issue手动回归测试:

6.3 关闭验证通过的issue

6.4 历史缺陷汇总

PTS Support

Perf

Arch Linux & Gentoo & NixOS

Tracked by PLCT Lab

资源和链接

  • 待添加