Build latest Fedora kernel with ACS overrides patch applied
mitogen@4fedf88d38 | ||
payload | ||
.gitmodules | ||
ansible.cfg | ||
hosts-local | ||
playbook.yml | ||
README.md | ||
TODO.md |
build-kernel
This playbook is used to automatically build a kernel with an ACS overrides patch applied as well as Valve's fsync patches.
The ACS patch is useful to isolate PCI-e devices to their own IOMMU group for VFIO passthrough.
The fsync patches improve Proton performance.
See this page for ACS kernel configuration details: https://copr.fedorainfracloud.org/coprs/jlay/kernel-acspatch/
Requirements
- Inventory with one host
hosts-local
provided as a sample inventory for localhost
- This host must be running Fedora (builds use mock)
Usage
Notes
Target Fedora version is controlled by the variable fedora_version
in ./playbook.yml
Patch to apply is determined by the patch_file
variable, stored in ./payload/
Patches for many different kernel versions provided, the highest version available should be current/working. Patch versions only change when diffs
change.
Output:
$ ansible-playbook -i buildserver playbook.yml -b --ask-become-pass
BECOME password:
PLAY [buildservers] *******************************************************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************************************************************
ok: [buildserver]
TASK [Ensure fedpkg is installed] *****************************************************************************************************************************
changed: [buildserver]
TASK [Find old mock chroots] **********************************************************************************************************************************
ok: [buildserver]
TASK [Clean old mock chroots] *********************************************************************************************************************************
TASK [Clean old build dir] ************************************************************************************************************************************
ok: [buildserver]
TASK [Clone f32 kernel to /tmp/f32_kernel] ********************************************************************************************************************
changed: [buildserver]
TASK [Copy patch to build dir] ********************************************************************************************************************************
changed: [buildserver]
TASK [Copy newpatch.sh on master branch, for 5.6 on f31] ******************************************************************************************************
changed: [buildserver]
TASK [Apply patch and build kernel (logs in /tmp/f32_kernel/results_kernel/*)] ********************************************************************************
changed: [buildserver] => (item=./scripts/newpatch.sh acso-5.4.6.patch)
changed: [buildserver] => (item=/usr/bin/sed -i -e 's/%define buildid .*$/%define buildid .acspatch/' kernel.spec)
changed: [buildserver] => (item=/usr/bin/make release)
changed: [buildserver] => (item=fedpkg mockbuild)
TASK [Find RPMs in /tmp/f32_kernel/results_kernel/*/*/*.rpm] **************************************************************************************************
ok: [buildserver]
TASK [Copy RPMs to /tmp/ (local)] *****************************************************************************************************************************
[...]
PLAY RECAP ****************************************************************************************************************************************************
buildserver : ok=10 changed=6 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0