Provisioning Notes
Fuego should support provisioning of a board for a test.
Putting the software under test onto the hardware has historically been left as an exercise for the user. However, it is desirable to add a layer or abstraction to Fuego to support provisioning, that can be used with multiple board management layers.
Here are some random notes:
- LAVA does not build the software under test
- it receives links to the software under test as part of a LAVA job definition
- labgrid does not build the software under test?
- kernelCI builds the software under test, stores it, and sends links to LAVA via the lava job definition file
- mostly, the same types of files are used, because kernelci prefers to use tftp booting (with nfs filesystems?)
required links, files and data for provisioning [edit section]
This represents data that needs to be transferred or communicated from the build server to the provisioning manager (via the build artifact server)
candidates [edit section]
- kernel image (zimage, vmlinuz, vmlinux, bzImage, etc.)
- kernel modules
- kernel config
- kernel System.map
- initrd.img
- device tree file
- root filesystem image
- additional filesystem image
- kernel headers
What category do these fall into:
- kernel address
- kernel boot arguments
- BIOS settings
Uncategorized:
- optee_itb_url
- uboot_itb_url
- kernel_fit_url
Here are some fields that are rejected as build artifacts for provisioning:
- login_prompt
- username
- password_prompt
- password
provisioners [edit section]
ttc [edit section]
kbuild_cmd and kinstall_cmd [edit section]
(no consistent set of instructions)- it assumes the kernel build is local
- examples use KBUILD_OUTPUT, and reach in and grab the kernel image
- it uses variable 'kimage' to specify the kernel image
- ARCH may also be available
LAVA [edit section]
labgrid [edit section]
beaker [edit section]
r4d [edit section]
SLAV [edit section]
builders [edit section]
kernelci [edit section]
What does kernelci present to LAVA?
LKFT? [edit section]
yocto project / OE [edit section]
CKI [edit section]
Kernel build notes [edit section]
- 'make install' requires that you use correct ARCH and CROSS_COMPILE variables
- 'make install' uses INSTALL_PATH to pass the 4th argument to:
- /sbin/installkernel
- arch/<arch>/
- 'make modules_install' uses INSTALL_MOD_PATH
image notes [edit section]
- vmlinuz = gzipped vmlinux
- something.itb = (kernel image + device tree .dtb file)