Skip to content

Instantly share code, notes, and snippets.

@charlag
Last active December 17, 2018 09:33
Show Gist options
  • Save charlag/d82c06333b7e15259e54357a87c6a147 to your computer and use it in GitHub Desktop.
Save charlag/d82c06333b7e15259e54357a87c6a147 to your computer and use it in GitHub Desktop.
Update Ubuntu to mainline kernel
echo 'http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D'
#read -p 'Version to install: ' KERNEL_VERSION
KERNEL_VERSION="4.19.9"
KDIR="kernel_$KERNEL_VERSION"
gio trash -f $KDIR
mkdir $KDIR
wget "http://kernel.ubuntu.com/~kernel-ppa/mainline/v${KERNEL_VERSION}/CHECKSUMS" -O $KDIR/CHECKSUMS -nv
HEADERS_ALL_LINE=$(grep -i -m 1 "linux-headers-.*_all.deb" $KDIR/CHECKSUMS)
HEADERS_ALL_ARR=($HEADERS_ALL_LINE)
HEADERS_ALL_CHECKSUM=${HEADERS_ALL_ARR[0]}
HEADERS_ALL_FILENAME=${HEADERS_ALL_ARR[1]}
if [[ -z $HEADERS_ALL_FILENAME ]]; then
echo Could not find HEADERS_ALL_FILENAME
exit 1
fi
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v$KERNEL_VERSION/$HEADERS_ALL_FILENAME -O $KDIR/$HEADERS_ALL_FILENAME -nv
HEADERS_GENERIC_LINE=$(grep -i -m 1 "linux-headers-.*-generic.*_amd64.deb" $KDIR/CHECKSUMS)
HEADERS_GENERIC_ARR=($HEADERS_GENERIC_LINE)
HEADERS_GENERIC_CHECKSUM=${HEADERS_GENERIC_ARR[0]}
HEADERS_GENERIC_FILENAME=${HEADERS_GENERIC_ARR[1]}
if [[ -z $HEADERS_GENERIC_FILENAME ]]; then
echo Could not find HEADERS_GENERIC_FILENAME
exit 1
fi
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v$KERNEL_VERSION/$HEADERS_GENERIC_FILENAME -O $KDIR/$HEADERS_GENERIC_FILENAME -nv
MODULES_LINE=$(grep -i -m 1 "linux-modules-.*-generic.*_amd64.deb" $KDIR/CHECKSUMS)
MODULES_ARR=($MODULES_LINE)
MODULES_CHECKSUM=${MODULES_ARR[0]}
MODULES_FILENAME=${MODULES_ARR[1]}
if [[ -z $MODULES_CHECKSUM ]]; then
echo Could not find MODULES_CHECKSUM
exit 1
fi
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v$KERNEL_VERSION/$MODULES_FILENAME -O $KDIR/$MODULES_FILENAME -nv
IMAGE_LINE=$(grep -i -m 1 "linux-image-unsigned-.*-generic.*_amd64.deb" $KDIR/CHECKSUMS)
IMAGE_ARR=($IMAGE_LINE)
IMAGE_CHECKSUM=${IMAGE_ARR[0]}
IMAGE_FILENAME=${IMAGE_ARR[1]}
if [[ -z $IMAGE_FILENAME ]]; then
echo Could not find IMAGE_FILENAME
exit 1
fi
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v$KERNEL_VERSION/$IMAGE_FILENAME -O $KDIR/$IMAGE_FILENAME -nv
echo HEADERS_ALL $HEADERS_ALL_FILENAME HEADERS_GENERIC $HEADERS_GENERIC_FILENAME MODULES $MODULES_FILENAME IMAGE_FILENAME $IMAGE_FILENAME
cd $KDIR
CHECKSUMS_N_PATH="CHECKSUMS_N"
gio trash -f $CHECKSUMS_N_PATH
echo $HEADERS_ALL_LINE >> $CHECKSUMS_N_PATH
echo $HEADERS_GENERIC_LINE >> $CHECKSUMS_N_PATH
echo $MODULES_LINE >> $CHECKSUMS_N_PATH
echo $IMAGE_LINE >> $CHECKSUMS_N_PATH
sha1sum --check $CHECKSUMS_N_PATH
read -p "Enter to install"
sudo dpkg -i $HEADERS_ALL_FILENAME
sudo dpkg -i $HEADERS_GENERIC_FILENAME
sudo dpkg -i $MODULES_FILENAME
sudo dpkg -i $IMAGE_FILENAME
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment