Skip to content

Instantly share code, notes, and snippets.

@mmstick
Last active March 11, 2023 04:53
Show Gist options
  • Save mmstick/8493727 to your computer and use it in GitHub Desktop.
Save mmstick/8493727 to your computer and use it in GitHub Desktop.
Asks the user whether they want to install the latest RC or stable, then downloads the correct kernel and installs it.
#!/bin/bash
cd /tmp
if ! which lynx > /dev/null; then sudo apt-get install lynx -y; fi
if [ "$(getconf LONG_BIT)" == "64" ]; then arch=amd64; else arch=i386; fi
function download() {
wget $(lynx -dump -listonly -dont-wrap-pre $kernelURL | grep "$1" | grep "$2" | grep "$arch" | cut -d ' ' -f 4)
}
# Kernel URL
read -p "Do you want the latest RC?" rc
case "$rc" in
y* | Y*) kernelURL=$(lynx -dump -nonumbers http://kernel.ubuntu.com/~kernel-ppa/mainline/ | tail -1) ;;
n* | N*) kernelURL=$(lynx -dump -nonumbers http://kernel.ubuntu.com/~kernel-ppa/mainline/ | grep -v rc | tail -1) ;;
*) exit ;;
esac
read -p "Do you want the lowlatency kernel?" lowlatency
case "$lowlatency" in
y* | Y*) lowlatency=1 ;;
n* | n*) lowlatency=0 ;;
*) exit ;;
esac
# Download Kernel
if [ "$lowlatency" == "0" ]; then
echo "Downloading the latest generic kernel."
download generic header
download generic image
elif [ "$lowlatency" == "1" ]; then
echo "Downloading the latest lowlatency kernel."
download lowlatency header
download lowlatency image
fi
# Shared Kernel Header
wget $(lynx -dump -listonly -dont-wrap-pre $kernelURL | grep all | cut -d ' ' -f 4)
# Install Kernel
echo "Installing Linux Kernel"
sudo dpkg -i linux*.deb
echo "Done. You may now reboot."
@nicman23
Copy link

nicman23 commented Jan 28, 2017

a quick fix is to add grep v[1-9].[1-9].[1-9] in the lynx dump command

edit: before the tail -n1

@CGarces
Copy link

CGarces commented Sep 12, 2017

@alothings @ronnocnave

See at http://kernel.ubuntu.com/~kernel-ppa/mainline/ the page render 4.7.x folder after v4.7.10 folder.

He problem is how the script detect the last valid folder

The solution provided by @nicman23 not looks valid, will ignore folders like 4.13 or 4.13.1

Also http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=M;O=A not works for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment