Funtoo - How to make kernel changes
'Changing a kernel ask lot of time so prepare yourself a cup of coffee or cold beer.'
This changes are needed for a lot of reason, one of these can be virtualizing your GPU and need to make some changes in the kernel or add modules to make it work.
We need to check what kernel is actually used for modification and select the kernel we want to modify:
su -c 'eselect kernel list'
Like you can see on the above image, I have only one kernel , but we still select the Kernel because we need to create a symlink in
/usr/src/linux with your kernel, in my case
su -c 'eselect kernet set 1' # 1 replace by the number of desired kernel you want to modify.
Configure the kernel
First we need to mount the
mount /dev/sda1 /boot # change sda1 according where your /boot is installed.
Now we need to move to
and type in
su -c 'make menuconfig' to create the kernel menu.
In this example, I need to modify:
CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO_VIRQFD=m CONFIG_VFIO=m CONFIG_VFIO_PCI=m CONFIG_VFIO_PCI_VGA=y CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y CONFIG_VFIO_PCI_IGD=y CONFIG_KVM_VFIO=y only in spannish CONFIG_IOMMU_HELPER=y CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_INTEL_IOMMU=y CONFIG_INTEL_IOMMU_SVM=y CONFIG_INTEL_IOMMU_DEFAULT_ON=y CONFIG_INTEL_IOMMU_FLOPPY_WA=y
- =m is for modularizes feauture, =y is for includes and =n is for excludes.
You can use the search of
make menuconfigfile with the symbole
/ ans past in what you are searching for like in this example:
You can now see on this screenshot, the kernel configuration
VFIO_IOMMU_TYPE1 [=m] is already enable as module in my kernel (
m), if not, then check:
VFIO [=m] will say VFIO is enable, if not first enbale that option because it depends on it.
/drivers/vfio/Kconfig1 it tell you were in the kernel menu you can find
It ask to be patient and when you are modifying your kernel, do not be impatient or you will mess you configuration, you should too back-up your system before trying to modifying it.
When finished to modify, just press
Save and accept the creation of
.config file and you can
Finish the kernel configuration
Now we need to type
su -c 'make', from here it take really long time, be patient.
When finished and if you changed kernel a option and a module you will need to type:
su -c 'make modules_install && make install'
If you not changed any module then just type:
su -c 'make install'
When this is finished you need to update your boot file, this is mandatory, if you forget this step your grub will not boot your kernel at next reboot.
For grub with Funtoo type:
su -c 'boot-update -v'
For grub with Gentoo type:
su -c 'grub-mkconfig -o /boot/grub/grub.cfg'
For other boot-loader, please check your documentation.
Then reboot and have fun with your modified kernel.
Kernel - Funtoo how to's.
Gentoo - Gentoo how to's
Vfio - guide used like examples for the kernel changes.