Interview | Xu Yanqi of the openEuler Community
Xu Yanqi, a senior student at the University of Waterloo in Canada, has completed the development task of the openEuler community with excellent performance in this year's Open Source Promotion Plan. He has a unique understanding of open source. In this issue, we are honored to invite this open source enthusiast to tell his story.
The featured interviewee is Xu Yanqi from the openEuler community. He undertook the project of [Adding an Embedded Graphics Stack to openEuler Embedded] in this year's Open Source Promotion Plan.
Self-introduction
OSPP: Please briefly introduce yourself.
Xu Yanqi: I'm Xu Yanqi, an international undergraduate student in my fourth year studying computer science at the University of Waterloo in Canada. Currently, I am residing in Georgia and will soon be returning to Canada.
OSPP: How did you first get involved with open source? Please introduce your experience with open source projects.
Xu Yanqi: My introduction to open source was shaped by my use of Linux. During high school, I utilized Ubuntu for a period of time and through this experience, I was introduced to other distributions like Debian, Arch Linux, as well as less-known options such as Puppy Linux and TinyCore Linux. I initially learned about Google Summer of Code as a platform for open source projects. To find mentors, I joined a Chinese WeChat group specifically for GSoC, which ultimately led me to discover OSPP.
OSPP: As an experienced open-source veteran, what is open source in your eyes?
Xu Yanqi: In my view, open source can be narrowly defined as the availability of source code for free access and download by anyone. However, it also encompasses a broader ethos of mutual assistance and collaboration, characterized by the principles of "one for all and all for one". This ethos has had a profound impact on the global IT industry.
OSPP: So what's your favorite programming languages or open source projects?
Xu Yanqi: My favorite open source projects are FFmpeg and OpenCV, and programming languages are C/C++ and Python.
Participation in Open Source Promotion Plan
OSPP: This is your second time participating in the Open Source Promotion Plan. Why did you choose to participate in the beginning? Do you have any different feelings or experiences this time around?
Xu Yanqi: I decided to participate in the Open Source Promotion Plan because its format is similar to that of Google Summer of Code, which I am familiar with. Moreover, the program being conducted in Chinese removes language barriers in communication, which is a great advantage. This year's second participation has been much easier compared to last year, possibly due to the absence of a mid-term evaluation and a difference in project difficulty.
OSPP: Can you briefly talk about the project you were involved in last year, and whether you continued to contribute or maintain it after it was completed?
Xu Yanqi: Last year, my project was [Porting LoongArch of AOSC OS]. The community purchased a porting machine with a Loongson 3A5000 CPU. LoongArch is an instruction set architecture developed by Loongson Technology, which has some similarities with MIPS and RISC-V, but it is completely independent and incompatible with other instruction sets. After the project was completed last year, I contributed some PRs to AOSC. However, I did not continue to maintain the LoongArch porting project because there were actually two incompatible ABIs in LoongArch. The Linux kernel, the compilation toolchain, and the Glibc library must use the new versions pushed by Loongson to the upstream open source community. In this case, all software packages that depend on specific architectures need to be recompiled and packaged, which requires heavy workloads.
https://summer-ospp.ac.cn/2021/#/org/prodetail/210080299
OSPP: Can you introduce the project you selected this year and your development progress?
Xu Yanqi: This year's project is to add an embedded graphics stack to openEuler Embedded and test it on Raspberry Pi 4B, with the specific composition of the graphics protocol stack being Wayland + Qt5. The development project uses openEuler Embedded's tool yocto-meta-openeuler to cross-compile Arm64 graphics stack software source code on x86_64, enabling 3D graphics display on Raspberry Pi through DRM/KMS instead of the outdated Linux framebuffer, and implementing the Wayland compositor through the introduction of Weston. QtWayland is added on top of this, enabling simple Qt-based graphical applications to run, such as helloworld-gui[1] and qt5-opengles-test[2].
https://summer-ospp.ac.cn/#/org/prodetail/22b970266
OSPP: During the project development, what help did the community and mentors give you? Xu Yanqi: The community was mainly focused on answering questions and providing solutions for compiling and building existing software packages, as well as adding, building, and testing basic software packages required for the graphics stack. Mentors proposed specific project plans and provided professional opinions, such as suggesting that I try compiling the graphics stack content using the original Yocto poky. OSPP: Is there any impressive issue encountered during the project? How was it resolved? What did you benefit from it?
Xu Yanqi: The most impressive issue I encountered was the DRM/KMS generation problem on Raspberry Pi 4B. DRM/KMS is a part of the Linux kernel, but relies on the Raspberry Pi's kernel branch and closed-source firmware. The solution is to compile a fixed version of the openEuler kernel source code with the Raspberry Pi patch, and together use a fixed version of the closed-source Raspberry Pi firmware. The reward is a deeper understanding of the Linux graphics stack, as well as appreciation for the importance of open-source firmware.
Growth in the Community
OSPP: Please briefly introduce your experience in participating in open source communities.
Xu Yanqi: I first chatted in the Loongson open source community outside China. After being selected last year, I attended several online gatherings in AOSC. Now I frequently tune into AOSC's chat channel. AOSC focuses on software compilation and packaging, Rust support, multi-language support, Chinese translation, and ancient computers. I can also learn some knowledge about the lower-level software and hardware.
OSPP: You have rich internship experience. What do you think are the differences between working in an open-source community and working in a corporate company?
Xu Yanqi: The organization of open source communities is generally more flexible compared to corporate companies, and some communities do not consider commercialization at all. Additionally, there is no specific time or place to work in a community. In contrast, corporate companies typically have fixed working hours and locations, with clearly defined task objectives. Operations and maintenance, network management, and database administration are usually handled by separate teams. In general, they prioritize work efficiencies and technical competitiveness.
OSPP: What is your plan for your future development in the community?
Xu Yanqi: For now, my plan is to graduate successfully. If someone seeks guidance in community, I will offer appropriate assistance based on specific needs and circumstances.
OSPP: How would you recommend that school students with no prior experience get started in contributing to open source communities?
Xu Yanqi: I believe that for students, getting involved in open source communities from scratch may not require just technical skills, but also time and interest. They can start by observing and communicating in community discussion groups to understand the required technologies and unresolved issues. It is also important to match personal interests with the communities' needs. If there is a match, they can try to join the development teams and submit their own PRs. If they want to contribute to open source communities outside China, they need to pay more attention to English expressions, grammars, and spellings. Expressions in English textbooks are far from enough, and errors may occur if you rely solely on translation software. They can start by reading more English technical articles and official documentation to learn basic expressions and knowledge.
Gains and Suggestions
OSPP: What help did the accumulated professional knowledge and project experience do in completing this project task?
Xu Yanqi: The accumulated professional knowledge and project experience are helpful. For example, I have learned how to compile Bash scripts before, and have compiled and packaged many software packages in AOSC. I also have practical operation experience in basic Linux concepts, software dependency, and cross compilation. After I learn that yocto-meta-openeuler used by openEuler Embedded is essentially a Python and Bash script that can automatically download, compile, and package a series of software packages, I have a basic technical judgment when I identify faults.
OSPP: Do you think participation in open source projects is necessary for college students majoring in computer-related majors?
Xu Yanqi: I believe it is not necessary for college students majoring in computer science to participate in open source. Learning from large software companies is also a great choice, as they can provide access to complete software development tools, long-term business support, and a wide user base.
OSPP: How is the atmosphere of open source participation among students in your surroundings?
Xu Yanqi: Canadian students have a good atmosphere of participating in open source, especially at the University of Waterloo. Many open source software and Linux distributions have mirrors at my university. Some of my university classmates have also joined FreeBSD for internships, and there are also University of Waterloo students in AOSC.
OSPP: Please provide some experience and suggestions for students participating in the Open Source Promotion Plan.
Xu Yanqi: Students participating in the Open Source Promotion Plan can find open source software, operating systems, and more on the Alibaba Mirrors. Git operations can be learned through practice, and the Gitee website has command learning guides at the bottom. Students outside China are advised to use Google to search for technical content in English. For students in China, Bing and DuckDuckGo can also be used.