qLinux
… a distribution study
<< Prev Setup the Shutdown Process
Next >> Make the System Bootable
Linux-5.10.85
Patches
Reference: 10.3. Linux-5.13.12. Against the book we use the long term kernel 5.10.85. First run  fixsrctree 
inside the source tree:
fixsrctree -d .
This fixes nearly all pathes to be qLinux conform. However, some patterns like  /lib/modules 
and  /usr/include 
are not covered yet. Apply a patch to fix this:
patch -Np1 -i linux-5.10.85-qlnx-1-pathes.patch
Apply a patch to the sources tree to fix that some (included) files will not be found:
patch -Np1 -i linux-5.10.85-qlnx-2-missing-files.patch
Apply a patch to prevent an error during modules_install (the “depmode hack”):
patch -Np1 -i linux-5.10.85-qlnx-3-depmod-hack.patch
Unfortunately the  depmod.sh 
script doesn't set this correct. This is required for older  depmod 
versions, but our  depmod 
is new enough and doesn't require it.
Apply a patch to fix the length parameter in string functions
patch -Np1 -i linux-5.10.85-qlnx-4-strn-length.patch
Apply a patch to fix the location of the /boot directory (this is  /qlnx/etc/.boot 
in qLinux):
patch -Np1 -i linux-5.10.85-qlnx-5-boot.patch
To configure what  uname 
returns have a look into  include/linux/uts.h 
..
Configure the kernel:
make defconfig kvm_guest.config
Run  make menuconfig 
to tweak the kernels config, e.g usb and sound drivers are not required yet1). It is also recommended to review the frame buffer devices.
The build process could be interrupted by missing (header) files inside the kernel source tree. Simply create symlinks to fulfill the requirements.
Build the kernel:
make INSTALL_MOD_PATH=/qlnx bzImage
Maybe the PKG_CONFIG_PATH have to be set to find the openssl header files. Additional  /libs/lib 
have to be in the library search path (in  /qlnx/etc/ld-musl-x86_64.path 
).
Install the modules:
make INSTALL_MOD_PATH=/qlnx install modules_install
Now, the  INSTALL_MOD_PATH 
will not be recognized by  depmod 
, thus2):
depmod -b "$INSTALL_MOD_PATH" 5.10.85
The new kernel version will be prefixed with a '+' sign, e.g. with  uname 
. This happens because our kernel is beyond the original .git status. It will be set in  scripts/setlocalversion 
.
<< Prev Setup the Shutdown Process
        
Next >> Make the System Bootable