64 lines
3.5 KiB
Markdown
64 lines
3.5 KiB
Markdown
### build-kernel
|
|
This playbook is used to automatically build a kernel with an ACS overrides patch applied. Useful to isolate PCI-e devices to their own IOMMU group for VFIO passthrough.
|
|
|
|
See this page for 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](./playbook.yml)
|
|
|
|
Patch to apply is determined by the `patch_file` variable, stored in [./payload/](./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
|
|
```
|