0

kernel: add 6.12.7

This commit is contained in:
eleksir
2025-01-06 00:43:31 +03:00
parent 8185851a04
commit 108eeaf36d
15 changed files with 23692 additions and 0 deletions

239
kernel/build-all-kernels.sh Executable file
View File

@@ -0,0 +1,239 @@
#!/bin/sh
# Copyright 2018, 2021, 2022, 2023, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# This script uses the SlackBuild scripts present here to build a
# complete set of kernel packages for the currently running architecture.
# It needs to be run once on 64-bit (uname -m = x86_64) and once on IA32
# (uname -m = i586 or i686).
# In spite of this being named "build-all-kernels.sh", you don't have to build
# all the packages or all the kernels that there are configs for. Set the
# variables below to tune this for your needs.
cd $(dirname $0) ; CWD=$(pwd)
BUILD=${BUILD:-1}
if [ -z "$VERSION" ]; then
# Get the filename of the newest kernel tarball:
KERNEL_SOURCE_FILE="$(/bin/ls -t linux-*.tar.?z | head -n 1 )"
if echo $KERNEL_SOURCE_FILE | grep -q rc ; then # need to get rc versions a bit differently
VERSION=$(/bin/ls -t linux-*.tar.?z | head -n 1 | rev | cut -f 3- -d . | cut -f 1,2 -d - | rev)
else # normal release version
VERSION=$(/bin/ls -t linux-*.tar.?z | head -n 1 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
fi
fi
TMP=${TMP:-/tmp}
# If you don't want to build the kernel source package, set this to anything
# other than "yes":
BUILD_KERNEL_SOURCE_PACKAGE=${BUILD_KERNEL_SOURCE_PACKAGE:-yes}
# If you don't want to build the kernel package(s), set this to "no".
# If you only want to build one kernel package, set this to the name of the
# kernel (i.e. "generic").
# To build kernel packages for every available config, set to "yes".
BUILD_KERNEL_PACKAGE=${BUILD_KERNEL_PACKAGE:-yes}
# Build the kernel-headers package?
BUILD_KERNEL_HEADERS_PACKAGE=${BUILD_KERNEL_HEADERS_PACKAGE:-yes}
# Where should we find the kernel config files?
KERNEL_CONFIGDIR=${KERNEL_CONFIGDIR:-./kernel-configs}
# Make KERNEL_CONFIGDIR an absolute path:
KERNEL_CONFIGDIR=$(realpath $KERNEL_CONFIGDIR)
export KERNEL_CONFIGDIR
# By default, install the packages as we build them.
INSTALL_PACKAGES=${INSTALL_PACKAGES:-YES}
# By default, have the kernel package(s) generate an initrd upon installation:
AUTO_GENERATE_INITRD=${AUTO_GENERATE_INITRD:-YES}
export AUTO_GENERATE_INITRD
# By default, update the initrd. But if both INSTALL_PACKAGES and
# AUTO_GENERATE_INITRD are YES, then installing the kernel-generic package
# will generate the initrd, so no need to do this twice.
if [ "$INSTALL_PACKAGES" = "YES" -a "$AUTO_GENERATE_INITRD" = "YES" ]; then
UPDATE_INITRD=${UPDATE_INITRD:-NO}
else
UPDATE_INITRD=${UPDATE_INITRD:-YES}
fi
# Clean kernels before building them. Not doing so quit working some time
# after 4.19.x.
export KERNEL_CLEAN=YES
# Set this to true if you'd like to write the .config back to its source
# after running "make oldconfig". This ensures that the config file is the
# exact one used to build, and is sorted properly.
REGEN_CONFIG=${REGEN_CONFIG:-true}
export REGEN_CONFIG
# We'll figure this out if you build the kernel-source package, otherwise
# you better set it if it'll be needed to match the .config filename.
LOCALVERSION=${LOCALVERSION:-}
# A list of recipes for build may be passed in the $RECIPES variable, otherwise
# we have defaults based on uname -m:
if [ -z "$RECIPES" ]; then
if uname -m | grep -wq x86_64 ; then
RECIPES="x86_64"
elif uname -m | grep -wq i.86 ; then
RECIPES="IA32"
else
echo "Error: no build recipes available for $(uname -m)"
exit 1
fi
fi
# Main build loop:
for recipe in $RECIPES ; do
# Build recipes are defined here. These will select the appropriate .config
# files and package naming scheme, and define the output location.
if [ "$recipe" = "x86_64" ]; then
# Recipe for x86_64:
export CONFIG_SUFFIX=".x64"
OUTPUT=${OUTPUT:-${TMP}/output-x86_64-${VERSION}}
elif [ "$recipe" = "IA32" ]; then
# Recipe for IA32:
export CONFIG_SUFFIX=".ia32"
OUTPUT=${OUTPUT:-${TMP}/output-ia32-${VERSION}}
else
echo "Error: recipe ${recipe} not implemented"
exit 1
fi
mkdir -p $OUTPUT
echo
echo "*************************************************"
echo "* Building kernels for recipe ${recipe}..."
echo "*************************************************"
echo
if [ "$BUILD_KERNEL_SOURCE_PACKAGE" = "yes" ]; then
# Build kernel-source package.
# Does a generic config file exist?
# A generic config is defined here as one that does not use a LOCALVERSION.
# If we don't see that, we'll look for this version plus any LOCALVERSION.
# If that doesn't match, we take the newest config with the proper $CONFIG_SUFFIX.
if [ -r $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} ]; then
KERNEL_CONFIG="config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
elif [ -r "$(/bin/ls -t $KERNEL_CONFIGDIR/config-${VERSION}*${CONFIG_SUFFIX} 2> /dev/null | head -n 1)" ]; then
KERNEL_CONFIG="$(basename $(/bin/ls $KERNEL_CONFIGDIR/config-${VERSION}*${CONFIG_SUFFIX} 2> /dev/null | head -n 1))"
elif [ -r "$(/bin/ls -t $KERNEL_CONFIGDIR/config-*${CONFIG_SUFFIX} 2> /dev/null | head -n 1)" ]; then
KERNEL_CONFIG="$(basename $(/bin/ls $KERNEL_CONFIGDIR/config-*${CONFIG_SUFFIX} 2> /dev/null | head -n 1))"
else
echo "ERROR: no suitable config file found for ${CONFIG_SUFFIX}"
exit 1
fi
export KERNEL_CONFIG
# Build:
KERNEL_SOURCE_PACKAGE_NAME=$(PRINT_PACKAGE_NAME=YES VERSION=$VERSION BUILD=$BUILD ./kernel-source.SlackBuild)
VERSION=$VERSION BUILD=$BUILD ./kernel-source.SlackBuild
mv ${TMP}/${KERNEL_SOURCE_PACKAGE_NAME} $OUTPUT || exit 1
if [ "${INSTALL_PACKAGES}" = "YES" ]; then
installpkg ${OUTPUT}/${KERNEL_SOURCE_PACKAGE_NAME} || exit 1
fi
else # otherwise, still stage the sources in $TMP/package-kernel-source:
echo "Not building kernel-source package."
sleep 2
ONLY_STAGE_KERNEL_SOURCE=yes VERSION=$VERSION BUILD=$BUILD ./kernel-source.SlackBuild
fi
# Build kernel+modules package(s) for every config file with a matching $CONFIG_SUFFIX:
for configfile in $KERNEL_CONFIGDIR/config-*${CONFIG_SUFFIX} ; do
# Set the LOCALVERSION from this .config:
LOCALVERSION=$(cat $configfile | grep "^CONFIG_LOCALVERSION=" | cut -f 2 -d = | tr -d \")
# Set the name for this kernel.
# If there's no LOCALVERSION, the name is "generic".
# Otherwise, it is the LOCALVERSION minus any leading dash.
if [ -z "$LOCALVERSION" ]; then
KERNEL_NAME=generic
else
KERNEL_NAME=$LOCALVERSION
# If there's a leading dash, remove it:
if [ "$(echo $KERNEL_NAME | cut -b 1)" = "-" ]; then
KERNEL_NAME="$(echo $KERNEL_NAME | cut -b 2-)"
fi
fi
export KERNEL_NAME
# Are we building this kernel?
if [ ! "$BUILD_KERNEL_PACKAGE" = "yes" ]; then
if [ ! "$BUILD_KERNEL_PACKAGE" = "$KERNEL_NAME" ]; then
continue
fi
fi
# We will build in the just-built kernel tree. First, let's put back the
# symlinks:
( cd $TMP/package-kernel-source
sh install/doinst.sh 2> /dev/null
)
KERNEL_GENERIC_PACKAGE_NAME=$(PRINT_PACKAGE_NAME=YES KERNEL_SOURCE=$TMP/package-kernel-source/usr/src/linux KERNEL_CONFIG=$KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} CONFIG_SUFFIX=${CONFIG_SUFFIX} KERNEL_OUTPUT_DIRECTORY=$OUTPUT/kernels/${KERNEL_NAME}.s BUILD=$BUILD ./kernel-generic.SlackBuild)
KERNEL_SOURCE=$TMP/package-kernel-source/usr/src/linux KERNEL_CONFIG=$KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} CONFIG_SUFFIX=${CONFIG_SUFFIX} KERNEL_OUTPUT_DIRECTORY=$OUTPUT/kernels/${KERNEL_NAME}.s BUILD=$BUILD ./kernel-generic.SlackBuild
if [ -r ${TMP}/${KERNEL_GENERIC_PACKAGE_NAME} ]; then
mv ${TMP}/${KERNEL_GENERIC_PACKAGE_NAME} $OUTPUT
else
echo "kernel-${KERNEL_NAME} build failed."
exit 1
fi
if [ "${INSTALL_PACKAGES}" = "YES" ]; then
installpkg ${OUTPUT}/${KERNEL_GENERIC_PACKAGE_NAME} || exit 1
fi
done # building kernel+modules package(s).
if [ "$BUILD_KERNEL_HEADERS_PACKAGE" = "yes" ]; then
# Build kernel-headers:
KERNEL_HEADERS_PACKAGE_NAME=$(PRINT_PACKAGE_NAME=YES KERNEL_SOURCE=$TMP/package-kernel-source/usr/src/linux BUILD=$BUILD ./kernel-headers.SlackBuild)
KERNEL_SOURCE=$TMP/package-kernel-source/usr/src/linux BUILD=$BUILD ./kernel-headers.SlackBuild
if [ -r ${TMP}/${KERNEL_HEADERS_PACKAGE_NAME} ]; then
mv ${TMP}/${KERNEL_HEADERS_PACKAGE_NAME} $OUTPUT
else
echo "kernel-headers build failed."
exit 1
fi
if [ "${INSTALL_PACKAGES}" = "YES" ]; then
upgradepkg --reinstall --install-new ${OUTPUT}/${KERNEL_HEADERS_PACKAGE_NAME} || exit 1
fi
fi
# Update initrd:
if [ "${UPDATE_INITRD}" = "YES" ]; then
echo "Updating initrd with geninitrd..."
/usr/sbin/geninitrd
fi
echo
echo "${recipe} kernel packages done!"
echo
done

View File

@@ -0,0 +1,15 @@
# Only run this if we aren't in the installer.
# We'll do these things after the install.
# First we'll check for an old version of setup.01.mkinitrd. If we find one,
# let's skip all this. We could be upgrading from 15.0...
if [ -r var/lib/pkgtools/setup/setup.01.mkinitrd ]; then
if ! grep -wq vmlinuz-generic-smp var/lib/pkgtools/setup/setup.01.mkinitrd 2> /dev/null ; then
if [ -z "$INSIDE_INSTALLER" ]; then
# Generate the initrd and remove orphaned initrds.
# Options (including disabling this) may be found in /etc/default/geninitrd.
if [ -x usr/sbin/geninitrd ]; then
usr/sbin/geninitrd
fi
fi
fi
fi

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

217
kernel/kernel-generic.SlackBuild Executable file
View File

@@ -0,0 +1,217 @@
#!/bin/sh
# Copyright 2018, 2020, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# To use this script, point it to a Linux kernel source tree and a .config
# file by setting the appropriate environment variables:
#
# KERNEL_SOURCE=/usr/src/linux KERNEL_CONFIG=./kernel-configs/config-6.9.9-generic.x64 ./kernel-generic.SlackBuild
#
# It can also build the huge (or any other) kernel:
#
# KERNEL_NAME=huge KERNEL_SOURCE=/usr/src/linux KERNEL_CONFIG=./kernel-configs/config-6.9.9.x64 ./kernel-generic.SlackBuild
#
# By default, it will call the package "kernel-generic" and use the source and
# .config already in /usr/src/linux (if possible).
cd $(dirname $0) ; CWD=$(pwd)
KERNEL_NAME=${KERNEL_NAME:-generic}
KERNEL_SOURCE=${KERNEL_SOURCE:-/usr/src/linux}
KERNEL_CONFIG=${KERNEL_CONFIG:-/usr/src/linux/.config}
CONFIG_SUFFIX=${CONFIG_SUFFIX:-}
BUILD=${BUILD:-1}
# The CONFIG_DEBUG_INFO_BTF_MODULES option adds a huge amount of debugging
# data to the modules which we don't actually need. We'll strip debugging
# information from kernel modules by default. If you are building a debug
# kernel and wish to retain this data, export the variable below set to "0".
STRIP_DEBUG=${STRIP_DEBUG:-1}
# Let's export the variable with the name needed by the kernel's Makefiles,
# just for good measure.
if [ "$STRIP_DEBUG" = "1" ]; then
export INSTALL_MOD_STRIP=$STRIP_DEBUG
else
unset STRIP_DEBUG
fi
# Set this to true if you'd like to write the .config back to its source
# after running "make oldconfig". This ensures that the config file is the
# exact one used to build, and is sorted properly.
REGEN_CONFIG=${REGEN_CONFIG:-false}
# By default, have the kernel package(s) generate an initrd upon installation:
AUTO_GENERATE_INITRD=${AUTO_GENERATE_INITRD:-YES}
if [ ! -r "${KERNEL_CONFIG}" ]; then
echo "Error: the KERNEL_CONFIG environment variable needs to be set to the"
echo ".config file to be used to build this kernel. Example:"
echo "KERNEL_NAME=generic KERNEL_SOURCE=/usr/src/linux KERNEL_CONFIG=./kernel-configs/config-6.9.9.x64 ./kernel-generic.SlackBuild"
echo "Tried to look for: ${KERNEL_CONFIG}"
exit 1
fi
if [ ! -d "${KERNEL_SOURCE}" ]; then
echo "Error: kernel source directory ${KERNEL_SOURCE} does not exist."
exit 1
fi
# Get the kernel version from the kernel Makefile:
VERSION=$(grep "^VERSION = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev)
# Set LOCALVERSION to the value found inside the .config:
LOCALVERSION="$(cat ${KERNEL_SOURCE}/.config 2> /dev/null | grep CONFIG_LOCALVERSION= | cut -f 2 -d = | tr -d \")"
# The default kernel arch is x86 for all 32-bit and 64-bit x86:
if [ -z "${KERNEL_ARCH}" ]; then
case "$(uname -m)" in
i?86) KERNEL_ARCH=x86 ;;
x86_64) KERNEL_ARCH=x86 ;;
# Use uname -m for all other archs:
*) KERNEL_ARCH=$(uname -m) ;;
esac
fi
# If this variable is set to an output directory, we will also put copies of
# System.map.gz, bzImage, and config in there:
KERNEL_OUTPUT_DIRECTORY=${KERNEL_OUTPUT_DIRECTORY:-}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
# We will need to copy the config and run make olddefconfig and make
# prepare in order to generate kernel/bounds.s, where we can find
# the true $PACKAGE_ARCH. Use olddefconfig (not oldconfig) to prevent
# stalling if user input would be required.
if [ ! "${KERNEL_CONFIG}" = "${KERNEL_SOURCE}/.config" ]; then
cp -a ${KERNEL_CONFIG} ${KERNEL_SOURCE}/.config
fi
cd ${KERNEL_SOURCE}
make olddefconfig 1> /dev/null 2> /dev/null
make prepare 1> /dev/null 2> /dev/null
PACKAGE_ARCH=$(cat kernel/bounds.s | grep -w "\-march=.*" | tr " " "\n" | grep -w "\-march=.*" | cut -f 2 -d = | tr - _)
# Set LOCALVERSION to the value found inside the .config:
LOCALVERSION="$(cat .config 2> /dev/null | grep CONFIG_LOCALVERSION= | cut -f 2 -d = | tr -d \")"
echo "kernel-${KERNEL_NAME}-$(echo ${VERSION} | tr - _)$(echo ${LOCALVERSION} | tr - _)-${PACKAGE_ARCH}-$BUILD.txz"
exit 0
fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
TMP=${TMP:-/tmp}
PKG=$TMP/package-kernel-${KERNEL_NAME}
rm -rf $PKG
mkdir -p $TMP $PKG
# Set the variable $KERNEL_CLEAN to anything to run "make clean" before the
# build. Default is to start compiling in the tree as we found it.
if [ ! -z "${KERNEL_CLEAN}" ]; then
( cd ${KERNEL_SOURCE}
echo "Cleaning kernel source (make clean)..."
make clean
# Make sure header files aren't missing...
make prepare
# Don't package the kernel in the sources:
find . -name "*Image" -exec rm "{}" \+
# No need for these:
rm -f .config.old .version
find . -name "*.cmd" -exec rm -f "{}" \+
rm .*.d
)
fi
# Copy the .config into the kernel source directory (unless it's there already)
if [ ! "${KERNEL_CONFIG}" = "${KERNEL_SOURCE}/.config" ]; then
echo "Copying the .config file to the kernel source tree:"
cp -a --verbose ${KERNEL_CONFIG} ${KERNEL_SOURCE}/.config
fi
( cd ${KERNEL_SOURCE}
echo "Running make oldconfig..."
make oldconfig || exit 1
# Write back the .config if requested:
if [ ! "$REGEN_CONFIG" = "false" ]; then
echo "Rewriting .config as: $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
cp -a .config $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}
fi
echo "Running a preliminary make (needed to create modules.builtin.modinfo)..."
make $NUMJOBS || exit 1
echo "Building kernel modules..."
make $NUMJOBS modules || exit 1
echo "Installing kernel modules to $PKG..."
make INSTALL_MOD_PATH=$PKG INSTALL_MOD_STRIP=$STRIP_DEBUG modules_install || exit 1
# Fix build and source symlinks if they are pointing into $TMP:
( cd $PKG/lib/modules/${VERSION}${LOCALVERSION}
for symlink in build source ; do
target=$(readlink $symlink)
if echo $target | grep -q "^$TMP/package-kernel-source/" ; then
rm -f $symlink
ln -sf $(echo $target | sed "s|$TMP/package-kernel-source/|/|g") $symlink
fi
done
)
# Make modules.dep:
depmod -b $PKG -a ${VERSION}${LOCALVERSION}
echo "Building kernel..."
make $NUMJOBS bzImage || make bzImage || exit 1
# Output files to a directory, if requested:
if [ ! -z "${KERNEL_OUTPUT_DIRECTORY}" ]; then
echo "Copying files to ${KERNEL_OUTPUT_DIRECTORY}..."
mkdir -p ${KERNEL_OUTPUT_DIRECTORY}
rm -f ${KERNEL_OUTPUT_DIRECTORY}/*
cp -a --verbose System.map ${KERNEL_OUTPUT_DIRECTORY}
cp -a --verbose .config ${KERNEL_OUTPUT_DIRECTORY}/config
cp -a --verbose arch/${KERNEL_ARCH}/boot/bzImage ${KERNEL_OUTPUT_DIRECTORY}
gzip -9 ${KERNEL_OUTPUT_DIRECTORY}/System.map
fi
echo "Preparing the package in $PKG..."
mkdir -p $PKG/boot
cp -a --verbose System.map $PKG/boot/System.map-${VERSION}${LOCALVERSION}
cp -a --verbose .config $PKG/boot/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}
cp -a --verbose arch/${KERNEL_ARCH}/boot/bzImage $PKG/boot/vmlinuz-${VERSION}${LOCALVERSION}
# Make symlinks:
ln -sf System.map-${VERSION}${LOCALVERSION} $PKG/boot/System.map
ln -sf config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} $PKG/boot/config
ln -sf vmlinuz-${VERSION}${LOCALVERSION} $PKG/boot/vmlinuz-${KERNEL_NAME}
ln -sf vmlinuz-${VERSION}${LOCALVERSION} $PKG/boot/vmlinuz
) || exit 1
# Fetch the kernel architecture from the source tree:
cd ${KERNEL_SOURCE}
PACKAGE_ARCH=$(cat kernel/bounds.s | grep -w "\-march=.*" | tr " " "\n" | grep -w "\-march=.*" | cut -f 2 -d = | tr - _)
mkdir $PKG/install
if [ -r $CWD/slack-desc/slack-desc.kernel-${KERNEL_NAME} ]; then
cat $CWD/slack-desc/slack-desc.kernel-${KERNEL_NAME} > $PKG/install/slack-desc
else
cat $CWD/slack-desc/slack-desc.kernel-template | sed "s/%PACKAGE_NAME%/kernel-${KERNEL_NAME}/g" > $PKG/install/slack-desc
fi
if [ "$AUTO_GENERATE_INITRD" = "YES" ]; then
echo "export KERNEL=/boot/vmlinuz-${VERSION}${LOCALVERSION}" > $PKG/install/doinst.sh
echo "export KERNEL_DOINST=true" >> $PKG/install/doinst.sh
cat $CWD/doinst.sh/doinst.sh-kernel >> $PKG/install/doinst.sh
else
touch $PKG/install/doinst.sh
fi
# Make the package:
cd $PKG
/sbin/makepkg -l y -c n --prepend $TMP/kernel-$(echo ${KERNEL_NAME} | tr - _)-$(echo ${VERSION} | tr - _)$(echo ${LOCALVERSION} | tr - _)-${PACKAGE_ARCH}-$BUILD.txz

View File

@@ -0,0 +1,91 @@
#!/bin/sh
# Copyright 2018, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# To use this script, point it to a Linux kernel source tree, and it will make
# the kernel-headers package using the .config to get all needed package
# version information:
#
# KERNEL_SOURCE=/usr/src/linux ./kernel-headers.SlackBuild
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=${PKGNAM:-kernel-headers}
BUILD=${BUILD:-1}
KERNEL_SOURCE=${KERNEL_SOURCE:-/usr/src/linux}
if [ -z "${HEADERS_ARCH}" ]; then
case "$(uname -m)" in
i?86) HEADERS_ARCH=x86 ;;
x86_64) HEADERS_ARCH=x86 ;;
# Use uname -m for all other archs:
*) HEADERS_ARCH=$(uname -m) ;;
esac
fi
if [ ! -d "${KERNEL_SOURCE}" ]; then
echo "Error: kernel source directory ${KERNEL_SOURCE} does not exist."
exit 1
elif [ ! -r ${KERNEL_SOURCE}/.config ]; then
echo "Error: a .config was not found in ${KERNEL_SOURCE}."
exit 1
fi
# Get the kernel version from the kernel Makefile:
VERSION=$(grep "^VERSION = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev)
# Set LOCALVERSION to the value found inside the .config:
LOCALVERSION="$(cat ${KERNEL_SOURCE}/.config 2> /dev/null | grep CONFIG_LOCALVERSION= | cut -f 2 -d = | tr -d \")"
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
# The LOCALVERSION never makes it into the headers, so no point including it:
echo "kernel-headers-$(echo ${VERSION} | tr - _)-${HEADERS_ARCH}-$BUILD.txz"
exit 0
fi
rm -rf $PKG
mkdir -p $TMP $PKG
mkdir -p $PKG/usr
# Generate the kernel headers and clean them up:
( cd ${KERNEL_SOURCE}
echo "Generating headers from the Linux kernel source tree in ${KERNEL_SOURCE}:"
make headers_install ARCH=${HEADERS_ARCH} INSTALL_HDR_PATH=$PKG/usr
cd $PKG/usr/include
# You won't want these files. The ones in libdrm work better.
rm -rf drm
# This next part seems pretty much cosmetic, but since we've been doing this
# for a long time (and others also do), we'll stick with it:
mv asm asm-${HEADERS_ARCH}
ln -sf asm-${HEADERS_ARCH} asm
# Remove unneeded dotfiles:
find . -name ".??*" -exec rm -f {} \+
)
mkdir -p $PKG/install
cat $CWD/slack-desc/slack-desc.kernel-headers > $PKG/install/slack-desc
# Make the package:
cd $PKG
# The LOCALVERSION never makes it into the headers, so no point including it:
/sbin/makepkg -l y -c n $TMP/kernel-headers-$(echo ${VERSION} | tr - _)-${HEADERS_ARCH}-$BUILD.txz

305
kernel/kernel-source.SlackBuild Executable file
View File

@@ -0,0 +1,305 @@
#!/bin/sh
# Copyright 2018, 2020, 2021, 2023, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=${PKGNAM:-kernel-source}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
# If a $VERSION is not passed to this script, use the newest linux-*.tar.xz
# found in this directory:
VERSION=${VERSION:-$(/bin/ls -t linux-*.tar.?z | head -n 1 | rev | cut -f 3- -d . | rev | cut -f2- -d -)}
if ! /bin/ls linux-*.tar.?z 1> /dev/null 2> /dev/null ; then
echo "Error: kernel source not found. (/bin/ls linux-*.tar.?z)"
else
USINGVER="Using kernel source linux-${VERSION}.tar.xz."
fi
# This function will revert or apply patches that are present here.
# Directories that are currently supported:
# patches-revert-${VERSION} (revert patches from this directory if kernel version matches)
# patches-revert-${ARCH} (revert patches from this directory if $ARCH matches)
# patches-${VERSION} (apply patches from this directory if kernel version matches)
# patches-${ARCH} (apply patches from this directory if $ARCH matches)
# All the applied/reverted patches will be copied to the root of the kernel source tree.
apply_patches() {
# First do patches-revert:
if [ -d $CWD/patches-revert-${VERSION} ]; then
if [ "$1" = "VERBOSE" ]; then
echo "Reverting kernel patches in $CWD/patches-revert-${VERSION} and copying patches to $PKG/usr/src/linux-${VERSION}..."
zcat $CWD/patches-revert-${VERSION}/*.gz | patch -p1 -R --backup --suffix=.orig || exit 1
else
zcat $CWD/patches-revert-${VERSION}/*.gz | patch -p1 -R --backup --suffix=.orig 1> /dev/null 2> /dev/null || exit 1
fi
cp -a $CWD/patches-revert-${VERSION}/*.gz .
fi
if [ -d $CWD/patches-revert-${ARCH} ]; then
if [ "$1" = "VERBOSE" ]; then
echo "Reverting kernel patches in $CWD/patches-revert-${ARCH} and copying patches to $PKG/usr/src/linux-${VERSION}..."
zcat $CWD/patches-revert-${ARCH}/*.gz | patch -p1 -R --backup --suffix=.orig || exit 1
else
zcat $CWD/patches-revert-${ARCH}/*.gz | patch -p1 -R --backup --suffix=.orig 1> /dev/null 2> /dev/null || exit 1
fi
cp -a $CWD/patches-revert-${ARCH}/*.gz .
fi
# Then apply patches:
if [ -d $CWD/patches-${VERSION} ]; then
if [ "$1" = "VERBOSE" ]; then
echo "Applying kernel patches in $CWD/patches-${VERSION} and copying patches to $PKG/usr/src/linux-${VERSION}..."
zcat $CWD/patches-${VERSION}/*.gz | patch -p1 --backup --suffix=.orig || exit 1
else
zcat $CWD/patches-${VERSION}/*.gz | patch -p1 --backup --suffix=.orig 1> /dev/null 2> /dev/null || exit 1
fi
cp -a $CWD/patches-${VERSION}/*.gz .
fi
if [ -d $CWD/patches-${ARCH} ]; then
if [ "$1" = "VERBOSE" ]; then
echo "Applying kernel patches in $CWD/patches-${ARCH} and copying patches to $PKG/usr/src/linux-${VERSION}..."
zcat $CWD/patches-${ARCH}/*.gz | patch -p1 --backup --suffix=.orig || exit 1
else
zcat $CWD/patches-${ARCH}/*.gz | patch -p1 --backup --suffix=.orig 1> /dev/null 2> /dev/null || exit 1
fi
cp -a $CWD/patches-${ARCH}/*.gz .
fi
}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
# We will have to extract and patch the kernel sources to find out the kernel version:
TEMPDIR=$(mktemp -d)
cd $TEMPDIR
tar xf $CWD/linux-${VERSION}.tar.?z || exit 1
cd linux-*
apply_patches
PACKAGE_VERSION=$(grep "^VERSION = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " Makefile | rev | cut -f 1 -d ' ' | rev)
cd $CWD
rm -rf $TEMPDIR
# No $LOCALVERSION
echo "kernel-source-$(echo ${PACKAGE_VERSION} | tr - _)-noarch-$BUILD.txz"
exit 0
fi
echo $USINGVER
# If we were not given a KERNEL_NAME, use generic:
KERNEL_NAME=${KERNEL_NAME:-generic}
# By default, we'll try to find a kernel config file. Otherwise, you can pass
# KERNEL_CONFIG=some_kernel_config_file to this script. If KERNEL_CONFIG starts
# with a '/', we'll assume it's a full absolute path to the kernel config file.
# Otherwise we'll look for it in $KERNEL_CONFIGDIR (defined below).
# Where should we find the kernel config files?
KERNEL_CONFIGDIR=${KERNEL_CONFIGDIR:-./kernel-configs}
# Make KERNEL_CONFIGDIR an absolute path:
KERNEL_CONFIGDIR=$(realpath $KERNEL_CONFIGDIR)
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
# Use uname -m for all archs:
*) ARCH=$(uname -m) ;;
esac
fi
# If KERNEL_CONFIG (name of kernel .config file in $KERNEL_CONFIGDIR to use)
# has not been passed to this script, then we will select one. We will prefer
# to use a .config that matches KERNEL_NAME and with a version number exactly
# matching the kernel sources. But if there's no exact version match, we will
# start with the newest .config we can find that's of the appropriate type.
if [ -z "${KERNEL_CONFIG}" ]; then # figure out the best matching .config
if [ "$ARCH" = "x86_64" ]; then
CONFIG_SUFFIX=".x64"
elif [ "$ARCH" = "i586" ]; then
CONFIG_SUFFIX=".ia32"
elif [ "$ARCH" = "i686" ]; then
CONFIG_SUFFIX=".ia32"
fi
if [ -r "$KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}" ]; then
# Exact match!
KERNEL_CONFIG="config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
else # no exact match, so find newest with the same LOCALVERSION:
FIND_MATCH="$(/bin/ls -t $KERNEL_CONFIGDIR/config-*${LOCALVERSION}${CONFIG_SUFFIX} 2> /dev/null | head -n 1)"
if [ -r "${FIND_MATCH}" ]; then
KERNEL_CONFIG="$(basename ${FIND_MATCH})"
unset FIND_MATCH
else
# We'll try to fall back on a defconfig if there's one for this $ARCH:
if [ "$ARCH" = "x86_64" ]; then
echo "WARNING:"
echo "Tried and did not find:"
echo " $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
echo "Also could not match this fallback:"
echo " $KERNEL_CONFIGDIR/config-*-${LOCALVERSION}${CONFIG_SUFFIX}"
KERNEL_CONFIGDIR=$PKG/usr/src/linux/arch/x86/configs
KERNEL_CONFIG=x86_64_defconfig
KERNEL_NAME=defconfig
echo "Falling back on $KERNEL_CONFIGDIR/$KERNEL_CONFIG because we couldn't find anything better."
sleep 2
elif uname -m | grep -q i.86 ; then
echo "WARNING:"
echo "Tried and did not find:"
echo " $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
echo "Also could not match this fallback:"
echo " $KERNEL_CONFIGDIR/config-*-${LOCALVERSION}${CONFIG_SUFFIX}"
KERNEL_CONFIGDIR=$PKG/usr/src/linux/arch/x86/configs
KERNEL_CONFIG=i386_defconfig
KERNEL_NAME=defconfig
echo "Falling back on $KERNEL_CONFIGDIR/$KERNEL_CONFIG because we couldn't find anything better."
sleep 2
else
echo "Error: no matching .config file could be found for this kernel. Tried:"
echo " $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} (not found)"
exit 1
fi
fi
fi
else # We were given a name to use:
if [ "$(echo ${KERNEL_CONFIG} | cut -b 1)" = "/" ]; then # absolute path, split this:
KERNEL_CONFIGDIR=$(dirname ${KERNEL_CONFIG})
KERNEL_CONFIG=$(basename ${KERNEL_CONFIG})
fi
if [ ! -r "$KERNEL_CONFIGDIR/${KERNEL_CONFIG}" ]; then
echo "Error: specified kernel .config $KERNEL_CONFIGDIR/${KERNEL_CONFIG} was not found."
exit 1
fi
fi
# Set LOCALVERSION to the value found inside the .config:
LOCALVERSION="$(cat $KERNEL_CONFIGDIR/${KERNEL_CONFIG} | grep CONFIG_LOCALVERSION= | cut -f 2 -d = | tr -d \")"
echo "Using kernel config: $KERNEL_CONFIGDIR/${KERNEL_CONFIG}"
rm -rf $PKG
mkdir -p $TMP $PKG
mkdir -p $PKG/usr/src
echo "Untarring $CWD/linux-${VERSION}.tar.?z in $PKG/usr/src..."
( cd $PKG/usr/src
tar xf $CWD/linux-${VERSION}.tar.?z || exit 1
echo "Making /usr/src/linux symlink..."
ln -sf linux-* linux
cd linux-*
apply_patches VERBOSE
echo "Copying $KERNEL_CONFIGDIR/${KERNEL_CONFIG} to .config..."
cp -a $KERNEL_CONFIGDIR/${KERNEL_CONFIG} .config
echo "Fixing permissions/ownership..."
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \+ -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
) || exit 1
# Kernel is now ready to configure. We will also build this kernel so that
# the installed kernel source package is fully configured, and building an
# out-of-tree module (such as the NVIDIA driver) won't require the user
# to build the kernel sources first.
( cd $PKG/usr/src/linux-*
echo "Making oldconfig..."
make oldconfig
# Use the version number found in the Makefile in the package name. This is not
# always the same as the version in the source tarball's filename. For example,
# linux-4.14.tar.xz will have 4.14.0 as the version in the Makefile:
PACKAGE_VERSION=$(grep "^VERSION = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " Makefile | rev | cut -f 1 -d ' ' | rev)
if [ ! -r $KERNEL_CONFIGDIR/config-${PACKAGE_VERSION}${LOCALVERSION}${CONFIG_SUFFIX} ]; then
# If you care about saving the original unregenerated unrenamed config
# file, set SAVE_ORIGINAL_KERNEL_CONFIG to something. This might cause
# your kernels to be built twice...
if [ -z "$SAVE_ORIGINAL_KERNEL_CONFIG" ]; then
echo "Removing original .config $KERNEL_CONFIGDIR/${KERNEL_CONFIG}"
rm -v -f $KERNEL_CONFIGDIR/${KERNEL_CONFIG}
fi
echo "Saving new .config as: $KERNEL_CONFIGDIR/config-${PACKAGE_VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
cp -a .config $KERNEL_CONFIGDIR/config-${PACKAGE_VERSION}${LOCALVERSION}${CONFIG_SUFFIX}
fi
# If we see ONLY_STAGE_KERNEL_SOURCE=yes, then we don't want to build this.
# We're just setting it up for use by the other SlackBuilds.
if [ "$ONLY_STAGE_KERNEL_SOURCE" = "yes" ]; then
echo "Done staging the kernel-source."
sleep 2
exit 0
fi
echo "Building kernel and modules (needed before clean for building NVIDIA to work)..."
make ${NUMJOBS} || exit 1
make ${NUMJOBS} modules || exit 1
echo "Cleaning up..."
make clean
# Make sure header files aren't missing...
make prepare
# Don't package the kernel in the sources:
find . -name "*Image" -exec rm "{}" \+
# No need for these:
rm -f .config.old .version
find . -name "*.cmd" -exec rm -f "{}" \+
rm .*.d
# Still some dotfiles laying around... probably fine though
# Get rid of any ELF (non-eBPF) binaries that are not executable:
find . -type f -perm 0644 | xargs file | grep ELF | grep -v eBPF | grep stripped | cut -f 1 -d : | while read elf_binary ; do
rm -f -v $elf_binary
done
# Strip any remaining binaries:
find . | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
) || exit 1
# Just staging the sources? Then leave.
if [ "$ONLY_STAGE_KERNEL_SOURCE" = "yes" ]; then
exit 0
fi
cd $PKG/usr/src/linux-*
# Use the version number found in the Makefile in the package name. This is not
# always the same as the version in the source tarball's filename. For example,
# linux-4.14.tar.xz will have 4.14.0 as the version in the Makefile:
PACKAGE_VERSION=$(grep "^VERSION = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " Makefile | rev | cut -f 1 -d ' ' | rev)
## Let's not do this because out-of-tree modules might not like it.
## The .config we built with is irrelevant, but set KEEPCONFIG to anything
## if you want to keep it:
#if [ -z "$KEEPCONFIG" ]; then
# rm .config*
#fi
# Make sure the directory and symlink are properly named:
cd ..
rm -f linux
# LOCALVERSION is part of the .config, not really the sources. We're not going
# to include it in the directory name.
mv linux-* linux-${PACKAGE_VERSION} 2> /dev/null
ln -sf linux-* linux
mkdir $PKG/install
cat $CWD/slack-desc/slack-desc.kernel-source > $PKG/install/slack-desc
# Make the package: (also no $LOCALVERSION here)
cd $PKG
/sbin/makepkg -l y -c n $TMP/kernel-source-$(echo ${PACKAGE_VERSION} | tr - _)-noarch-$BUILD.txz

View File

@@ -0,0 +1,19 @@
-----BEGIN PGP SIGNATURE-----
Comment: This signature is for the .tar version of the archive
Comment: git archive --format tar --prefix=linux-6.12.7/ v6.12.7
Comment: git version 2.47.1
iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmduphkACgkQONu9yGCS
aT4saRAAtqjCsWez4R77WBWQMsFcA8Z2hj6zatT9bHG0JIv8dJPWvdYqBMRA+SPP
mHuz+PyIJp2WLUPKuWCqFm4feVNC/LMLBZD6ev60oFGQh3SF2HavZWXws60mihJf
hK898Y1seO2eZEiYS/kKWTw4YT/0y0+iBZ9llj0IKX01S2bLPCqUVUC9GJZrrQt1
w1md8CvnqomCkf4LIx5IDjNzPQWk4N3SizHSLDXaeu9GJUSxZRg+R+E0vwXdb8Go
RxApurVnyLXg9TPPaVNNygKGkuiD6QfI8oSSMyGCQ0tfNeXqF4kA1g68RQi1lJ3i
dwOwdfKoVZIYbisyQxLOuycRHMB97Z+y52Z8mlKvF/vy99qs2DiHJvyTqiNTK22x
m/Gg8DRstAitHRpbxdO0nnG5eKSQO4nZm1uID0mvS6BrGTbB/kVjkJJh4BLC7z7h
XLfDcKY3wKSGAdGzzJkwKiNiO+biOEcH1YAZ6ibAMiS1k29XvCxjFzrA5jlwEYTt
N5DpXbxlrag0WsP+i3iUTg+ejv3LEAlcRTuadJtjbhTlM8i+3ERWPq8eOW29Xmqo
9XpUJ+1zlBYmVIEcpBBO88kg3K1xVp41anrKf6BbEgxfYXjTfdY7r/XszmT/WaNK
dD8z7kjut14p/AMhtZ1jopuke+0VStXEy9Fc2W9UTr2sQMME0jY=
=qKnK
-----END PGP SIGNATURE-----

View File

@@ -0,0 +1,5 @@
We need to revert this patch which causes boot failure with 32-bit PAE on
*some* machines, such as: LENOVO 20QV000GUS Intel i7-9850H
Non-PAE is not affected, but we'll let this get reverted there too since
it's not part of the code path anyway.

View File

@@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
kernel-generic: kernel-generic (general purpose Linux kernel/modules)
kernel-generic:
kernel-generic: This is a Linux kernel with built-in support for SATA, NVMe, and most
kernel-generic: commonly used filesystems, as well as a large collection of loadable
kernel-generic: kernel modules.
kernel-generic:
kernel-generic: It is recommended to use an initrd with this kernel for best results.
kernel-generic: For more information about creating an initrd, see the README.initrd
kernel-generic: file in the /boot directory.
kernel-generic:
kernel-generic:

View File

@@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
kernel-headers: kernel-headers (Linux kernel include files)
kernel-headers:
kernel-headers: These are the include files from the Linux kernel.
kernel-headers:
kernel-headers: You'll need these to compile most system software for Linux.
kernel-headers:
kernel-headers:
kernel-headers:
kernel-headers:
kernel-headers:
kernel-headers:

View File

@@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. You must make
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
kernel-source: kernel-source (Linux kernel source)
kernel-source:
kernel-source: Source code for Linus Torvalds' Linux kernel.
kernel-source:
kernel-source: This is the complete and unmodified source code for the Linux kernel.
kernel-source:
kernel-source:
kernel-source:
kernel-source:
kernel-source:
kernel-source:

View File

@@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. You must make
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
kernel-source: kernel-source (Linux kernel source)
kernel-source:
kernel-source: Source code for Linus Torvalds' Linux kernel.
kernel-source:
kernel-source: This is the complete and unmodified source code for the Linux kernel.
kernel-source:
kernel-source:
kernel-source:
kernel-source:
kernel-source:
kernel-source:

View File

@@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
%PACKAGE_NAME%: %PACKAGE_NAME% (Linux kernel/modules)
%PACKAGE_NAME%:
%PACKAGE_NAME%: This is the %PACKAGE_NAME% Linux kernel and modules.
%PACKAGE_NAME%:
%PACKAGE_NAME%:
%PACKAGE_NAME%:
%PACKAGE_NAME%:
%PACKAGE_NAME%:
%PACKAGE_NAME%:
%PACKAGE_NAME%:
%PACKAGE_NAME%: