

19
人物专栏

加拿大滑铁卢大学本科大四学生许彦骐,在本次开源之夏活动中出色地完成了openEuler社区的开发任务,自身对开源有着自己一份独特的理解。本期,我们很荣幸邀请到这位开源爱好者,来讲讲他的故事。
本期参与人物采访专栏的是来自 openEuler 社区的许彦骐同学,本届开源之夏承担的项目是【为 openEuler Embedded 新增嵌入式图形栈】


我与开源

参与开源之夏
再次参与
项目开发
许彦骐:当初选择参与开源之夏是因为活动运行模式跟 Google Summer of Code 差不多,同时中文作为主要语言没有交流障碍。第二次参加的感觉比去年那次轻松不少,可能是因为没有中期考核以及项目本身难度差异的原因。
OSPP:简单介绍一下你去年的项目吧,结项后有再继续参与项目贡献或维护么?
许彦骐:去年项目是【AOSC OS 的 LoongArch 的移植】,社区购买的移植机器的 CPU 是龙芯 3A5000。LoongArch 是一套由龙芯中科研发的指令集架构,与 MIPS, RISC-V 有一定的相似处,不过它是完全独立且不兼容其他指令集。去年结项后有给 AOSC 贡献过一些 PR,不过 LoongArch 移植项目本人并没有继续维护,原因是 LoongArch 实际上有两套 ABI 且互不兼容,Linux 内核,编译工具链,Glibc 库目前必须同时选用龙芯推送到开源社区上游的新版本,以及所有的依赖于具体架构的软件包都需要重新编译打包,工作量很大。
https://summer-ospp.ac.cn/2021/#/org/prodetail/210080299
OSPP:介绍一下你今年在开源之夏中选的项目及开发情况吧
许彦骐:今年项目是 【为 openEuler Embedded 新增嵌入式图形栈】,在树莓派4B上测试并演示,图形协议栈的具体组成为 Wayland + Qt5。开发项目是利用 openEuler Embedded 的工具 yocto-meta-openeuler 实现了在 x86_64 上交叉编译 Arm64 上的图形栈软件源码,使树莓派上能通过 DRM/KMS 而不是老旧的 Linux framebuffer 运行 3D 图形显示,通过 Weston 的引入实现了 Wayland compositor。在此之上添加了 QtWayland,能运行简单的基于 Qt 的图形应用,如 helloworld-gui[1], qt5-opengles-test[2]。

OSPP:在项目进行中遇到的印象最深刻的问题是什么?如何解决的?有什么收获吗?
许彦骐:记忆最深刻的问题是树莓派 4B 的 DRM/KMS 的生成问题。DRM/KMS 属于 Linux 内核的一部分,但是依赖于树莓派的内核分支以及闭源固件。解决方案则是通过编译固定版本且带有树莓派补丁的 openEuler 内核源码,搭配固定版本的树莓派闭源固件来解决。收获则是对 Linux 图形栈有更底层的理解,以及开始明白开源固件的重要性。

社区成长经历
开源社区与企业公司
OSPP:请简单介绍一下你参与开源社区的经历
OSPP:你有着很丰富的实习经历,你认为在开源社区和在企业公司进行开发工作有什么不一样的地方?
许彦骐:开源社区从组织上来说比企业公司会松散得多,而且一些开源社区是完全不考虑商业化的,因此在社区工作上也是比较随缘的。而企业公司则一般会要求固定的时间和地点去工作,同时任务目标明确,运维、网络、数据库通常也是不同的小组在做,追求的通常是商业方面的工作效率和技术上的市场竞争。
OSPP:你对于自己日后在社区的发展有怎样的规划?
许彦骐:目前的打算还是先顺利毕业,社区沟通交流上如果有人咨询,看情况会给一些应有的帮助。
OSPP:你认为对于在校生而言,如何从零开始参与开源社区?
许彦骐:本人认为对于在校生而言,从零开始参与开源社区需要的可能并不是单纯的技术能力,而是时间和兴趣。可以先在社区的交流群上多看,多交流,从而了解到社区需要的技术、待解决的问题等等。同时还要看跟个人兴趣的匹配程度,如果跟自己的兴趣所匹配,就可以尝试加入开发,提交自己的 PR。如果是海外的开源社区,英语表达、语法、拼写上要多注意,英语课本上的表达远远不够,单纯地依赖翻译软件也容易出错。可以先多看海外的英文技术文章,官方文档来学习基础表达和知识。

收获与寄语
END




