-
-
Save mmstick/8493727 to your computer and use it in GitHub Desktop.
| #!/bin/bash | |
| # Note: This script has been redesigned to support the new lowlatency+generic selection provided by Canonical. | |
| # Therefore, this script only works with kernel 3.14+, unless Canonical decides to provide lowlatency kernels for 3.13. | |
| # Dependency | |
| sudo apt-get install lynx -y | |
| cd /tmp | |
| sudo rm *.deb | |
| 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*) kernelURL=$(lynx -dump http://kernel.ubuntu.com/~kernel-ppa/mainline/ | tail -1 | cut -d ' ' -f 3) ;; | |
| n*) kernelURL=$(lynx -dump http://kernel.ubuntu.com/~kernel-ppa/mainline/ | grep -v rc | tail -1 | cut -d ' ' -f 3) ;; | |
| esac | |
| read -p "Do you want the lowlatency kernel?" lowlatency | |
| case "$lowlatency" in | |
| y*) lowlatency=1 ;; | |
| n*) lowlatency=0 ;; | |
| esac | |
| echo "The latest kernel is $(echo $kernelURL | cut -d/ -f 6). The currently installed kernel is $(uname -r)." | |
| sleep 3 | |
| # Download Kernel | |
| if [ "$lowlatency" == "0" ]; then | |
| echo "Downloading the latest 64-bit generic kernel." | |
| download generic header | |
| download all header | |
| download generic image | |
| elif [ "$lowlatency" == "1" ]; then | |
| echo "Downloading the latest 64-bit lowlatency kernel." | |
| download lowlatency header | |
| download all header | |
| download lowlatency generic | |
| fi | |
| # Install Kernel | |
| echo "Installing Linux Kernel" | |
| sudo dpkg -i linux*.deb | |
| echo "Done. You may now reboot." |
Hello, how can i get the latest daily ubuntu kernel ?
Hello. Thanks for this useful script. Is there a reason why the latest stable kernel is not automatically downloaded? For example, latest stable kernel as of today in ~kernel-ppa/mainline/ is 4.9.6. However, on running the script, 4.9.0 is installed. I'm assuming that the script only looks at the 1st two digits of the kernel revision?
a quick fix is to add grep v[1-9].[1-9].[1-9] in the lynx dump command
edit: before the tail -n1
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
Hey! Awesome script. Curious though that trying to download latest generic non-rc, and it downloads 4.7.0-XX instead of 4.7..2, which according to kernel.ubuntu is the latest as of 7 days ago. (in the website I just realized that the files are not in date order, so 4.7 appears below 4.7.2 even tho the latter is the latest). Sadly I don't know enough bash to suggest how to improve it.