Files
SimpleLinux/scripts/kernel.sh
T
2025-03-05 17:52:04 +07:00

71 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
. ./scripts/colors.sh
. ./scripts/funcs.sh
. ./scripts/config.sh
kernel_version=6.13.3
#--------------- Building Linux Kernel ---------------------
kernel() {
printf "$UGREEN** Building Linux Kernel\n$RESET"
rm -r $build/kernel # &>> $fulllogfile
mkdir -p $build/kernel # &>> $fulllogfile
cd $build/kernel
printf "$UGREEN** Extracting Linux Kernel\n$RESET"
tar -xvf $root/downloads/linux-$kernel_version.tar.xz # &>> $fulllogfile
check $? "Extract Linux Kernel"
cd linux-$kernel_version
printf "$UGREEN** Configuring Linux Kernel\n$RESET"
make ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE- mrproper # &>> $fulllogfile
cp -v $root/kernel/config-$kernel_version .config # &>> $fulllogfile
make ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE- oldconfig # &>> $fulllogfile
check $? "Configure Linux Kernel"
printf "$UGREEN** Building Linux Kernel\n$RESET"
make ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE- $makeflags # &>> $fulllogfile
check $? "Build Linux Kernel"
ls -lh arch/$ARCH/boot/zImage
} # kernel
#-----------------------------------------------------------
#----------- Build and Install kernel modules --------------
kernel_modules() {
printf "$UGREEN** Building Linux Kernel modules\n$RESET"
cd $build/kernel/linux-$kernel_version
make ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE- modules # &>> fulllogfile
check $? "Build Linux Kernel modules"
printf "$UGREEN** Installing Linux Kernel modules into rootfs path\n$RESET"
make ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE- INSTALL_MOD_PATH=$rootfspath modules_install # &>> $fulllogfile
check $? "Install Linux Kernel modules"
rm -v $rootfspath/usr/lib/modules/$kernel_version/{source,build}
} # kernel_modules
#-----------------------------------------------------------
#--------------- Building Linux Kernel with rootfs ---------
kernel_with_rootfs() {
printf "$UGREEN** Building Linux Kernel with rootfs\n$RESET"
if [ ! -d $out ]; then
mkdir -pv $out
fi
cd $build/kernel/linux-$kernel_version
make ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE- CONFIG_INITRAMFS_SOURCE=$rootfspath $makeflags # &>> fulllogfile
check $? "Build Linux Kernel with rootfs"
printf "$UGREEN** Installing Linux Kernel into images path\n$RESET"
# make ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE INSTALL_MOD_PATH=$rootfspath modules_install # &>> $fulllogfile
# rm -v $rootfspath/usr/lib/modules/6.1.91/{source,build}
cp -v arch/$ARCH/boot/zImage $sdroot/boot
check $? "Install Linux Kernel into images path"
}
#-----------------------------------------------------------
kernel_headers() {
printf "$UGREEN** Building Linux Kernel headers\n$RESET"
[ ! -d $build/kernel-headers ] && mkdir $build/kernel-headers
cd $build/kernel-headers
tar -xvf $root/downloads/linux-$kernel_version.tar.xz
check $? "Extract Linux Kernel"
cd linux-$kernel_version
make ARCH=$ARCH headers
check $? "Build kernel headers"
}