Linux VZ5 :
===========
Compile test & install kernel image for vz5's VM.
Dependencies :
==============
- expect
- qemu/kvm
- `apt build-dep linux-image-amd64`
- `apt install linux-source`
Optionnal dependencies :
------------------------
- virsh
- debvm
Install & config :
==================
Copy sample config `cp config.mk.inc config.mk`
Edit configuration file to meet your needs `editor config.mk`
Then you will need kernel sources & kernel configuration.
Kernel sources :
-----------------
* Automatic method (debian based) :
Run `make upgrade`
Will fetch the last kernel source in /usr/src
* Manual method :
Decompress kernel sources and create a symlink `linux-source` pointing to it.
Kernel config :
---------------
Kernel configuration are versionned in a separetd git repository in kernel-config/ directory.
In order to seed config file with yours run :
```
mkdir kernel-config
git -C kernel-config/ init
cp /path/to/.config kernel-config/kernel.config
git -C kernel-config add kernel.config
git -C kernel-config commit -m 'Initial kernel config'
```
Usage :
=======
Get current status with `make`
Compile a kernel `make kernel`
Test a kernel on virsh vm `make test`
If make test is run with root, we will try to start TEST_VM_NAME with virsh
If make test is run without privileges, a disk image will be built using debvm
and the tests will be run using qemu.
NOTE : the user needs access to /dev/kvm (adduser username kvm)
Install kernel `make install`
Commit tested kernel config `make commit-config`
Notes :
=======
All scripts & tests are designed for monolitic kernel without initrd.
Kernel config should contains :
```
# CONFIG_BLK_DEV_INITRD=n
# CONFIG_MODULES=n
```
KVM has a documentation about kernel tuning for guest that can be found here :
https://www.linux-kvm.org/page/Tuning_Kernel#Kernel_for_guest_with_paravirtualization
The script `scripts/checkconfig.sh` check that kernel config fits basic needs.