Skip to main content

Contribute to Linux by joining Fedora Test Days

Linux is open source, which means anyone can help improve it. Here's how you can help test the latest Fedora Linux kernel by participating in community Test Days.
Image
Chemistry beakers

Fedora is a popular Linux distribution and the upstream community project for Red Hat Enterprise Linux (RHEL). Fedora influences what's included in future RHEL releases.

As a community project, Fedora depends heavily on its community for various purposes, including testing the distribution. The project hosts Test Days regularly for testing the latest Fedora kernel. Members of the Fedora community (or anybody interested in the project) can download and test the newest kernel and submit the results back to Fedora. This approach allows Fedora to understand how the latest kernel works on different systems and supported architectures (physical or virtual). It also allows the community to fix any issues found during the test.

Testing the kernel might sound like a mammoth task; however, do not worry, all of the test cases are automated, and it won't take much of your time from start to finish. This way, you help the Fedora community, and you could earn a badge for your effort.

Test prerequisites

To participate in this effort, you need a system (physical or virtual) that has the latest Fedora distribution installed (depending on which kernel version is under test). Installing Fedora on a virtual machine is a breeze. Once installed, ensure that you upgrade all the packages:

$ dnf upgrade --refresh

[ Learn how to manage your Linux environment for success. ]

Download and install the latest Fedora kernel

Once Fedora is up and running, install the Koji command-line utility. Koji is software that builds RPM packages for Fedora. This application is required to download the RPMs with the kernel you're testing. The exact version number of the kernel being tested should be included on the Test Day page, so adjust as necessary:

$ sudo dnf install koji

$ koji download-build --arch=x86_64 kernel-5.18.1-200.fc36

This command downloads a bunch of RPMs onto your system. These RPMs contain the latest kernel and related packages:

$ ls
anaconda-ks.cfg                                    	kernel-devel-5.18.1-200.fc36.x86_64.rpm
kernel-5.18.1-200.fc36.x86_64.rpm                  	kernel-devel-matched-5.18.1-200.fc36.x86_64.rpm
kernel-core-5.18.1-200.fc36.x86_64.rpm             	kernel-modules-5.18.1-200.fc36.x86_64.rpm
<< snip >>
kernel-debug-modules-5.18.1-200.fc36.x86_64.rpm    	RECIPE.TXT
kernel-debug-modules-extra-5.18.1-200.fc36.x86_64.rpm

Install these downloaded kernel RPMs:

$ dnf update ./kernel-*.rpm

In this example, the previous kernel version was 5.17, and the new kernel (5.18) has been installed on the system. However, the system is still booting from the older kernel (5.17), so you need to reboot the system to test the 5.18 kernel:

$ ls -l /boot/  | grep vmlin
-rwxr-xr-x. 1 root root 11771888 Jun  6 05:11 vmlinuz-0-rescue-e9d9a3e68678497ca4bf69195b715792
-rwxr-xr-x. 1 root root 11771888 May 30 13:15 vmlinuz-5.17.12-300.fc36.x86_64
-rwxr-xr-x. 1 root root 12897776 Jun  3 12:15 vmlinuz-5.18.1-200.fc36.x86_64

$ uname -r
5.17.12-300.fc36.x86_64

Reboot the system with the following command. Once the system is back up, you can see it has booted using the 5.18 kernel tested in this example:

$ shutdown -r now

$ uname -r
5.18.1-200.fc36.x86_64

[ No-cost online course: Red Hat Enterprise Linux technical overview. ]

Get ready to test the latest kernel

Now that you have booted from the required kernel, install a set of packages that are required by the automated test suite you will be running on the system:

$ dnf install gcc git python3-fedora

$ dnf install make libtirpc libtirpc-devel policycoreutils-python-utils

In addition to installing the required packages, you need to make a tiny modification to the system to make the heap memory executable. This configuration is needed for the automated test suite:

$ semanage boolean -m --on selinuxuser_execheap

Install and run the automated test suite

Now that you've prepared the system and dependencies, it's time to get and run the automated test suite. Clone the repo containing the kernel tests by running the following Git command. Once you have cloned the repo, move to the kernel-tests directory:

$ git clone https://pagure.io/kernel-tests.git

$ cd kernel-tests

Run a simple shell script named runtest.sh to launch the test suite. This script tests the kernel on various parameters, including cache, memfd, SELinux, and stack-randomness. Do not worry too much about these components if you are just starting out. You just need to focus on whether all of these tests PASS or FAIL. Depending on your system, the tests shouldn't take more than 10 minutes. If you wish to make your testing effort count and earn a badge from Fedora, please check the final section of this article before running this command:

$ ./runtest.sh

You can run the performance tests using the command below if you have a machine with a good hardware configuration (CPU and RAM). Note that these tests take slightly longer to run.

$ ./runtests.sh -t performance

Once the test run completes, you can revert the earlier change that you made to the system to make the heap memory executable using this command:

$ sudo semanage boolean -m --off selinuxuser_execheap

[ Cheat sheet: Get a list of Linux utilities and commands for managing servers and networks. ]

Make your effort count

Since you have taken the time to test the Fedora kernel, you can make it count. First, create an account with Fedora. Then, within the kernel-tests directory, create a config file by copying an existing template:

$ cd kernel-tests

$ cp config.example .config

$ vim .config

You need to modify two parameters in this configuration file. The first, submit=authenticated, tells the test suite that you are interested in submitting the results file to Fedora for analysis. For the second parameter, username=, enter the username you created when registering your Fedora account. It will ask you for your account password, which you can enter on the command line. You should see a message saying it uploaded successfully. This will help you earn a testing badge from Fedora, which is visible on the portal.

$ grep -E '^submit|^username' .config
submit=authenticated
username='gkamathe'

Test-driven Linux

RHEL is a stable and trusted Linux distribution, and a lot of work goes into achieving that.

The development of projects like Fedora and CentOS reveals much about the direction RHEL is headed. The continued testing these communities do is an important contribution to forming the industry's flagship Linux distribution. Be a part of that process by participating in Fedora Test Days.

Topics:   Linux   Testing  
Author’s photo

Gaurav Kamathe

Gaurav is a seasoned software engineering professional. His primary interests are security, Linux, and malware. He loves working on the command line and is interested in low-level software and understanding how things work. The opinions expressed here are my own and not that of my employer. More about me

Try Red Hat Enterprise Linux

Download it at no charge from the Red Hat Developer program.