#! /bin/bash # Some colors GREEN='\033[0;32m' RED='\033[0;31m' DEFAULT='\033[0m' # Defaults values PREFIX='linux-' EXTENSION='.tar.xz' MAINLINE=1 SHOW_MENU_CONFIG=0 # Function to script script if step fail isPreviousStepOk () { if [ $? -ne 0 ]; then echo "${RED} Error!${DEFAULT}" exit 1 fi } # Get arguments from command line while [ $# -gt 0 ]; do case "$1" in --help) printf "****************************************************************************************************\n" printf "* pkgkernel-auto: Usage\n" printf "* --menu: show kernel menu\n" printf "* --archive : Use local kernel archive\n" printf "* --extension : if not a archive extension is not tar.xz (tar.xz or tar.gz)\n" printf "* --rc: Get RC version instead of mainline\n" printf "****************************************************************************************************\n" printf "Example with RC kernel: \n" printf "pkgkernel-auto.sh --archive /home/dbroqua/Downloads/linux-5.7-rc4.tar.gz --extension tar.gz \n" printf "****************************************************************************************************\n" exit 1 ;; --menu) SHOW_MENU_CONFIG=1 ;; --archive) ARCHIVE=$2 shift ;; --rc) MAINLINE=0 ;; --extension) EXTENSION=$2 shift ;; *) printf "***************************\n" printf "* Error: Invalid argument.*\n" printf "***************************\n" exit 1 esac shift done if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" 1>&2 sudo $0 exit 1 fi # Install build dependancies apt install -y \ build-essential \ fakeroot \ dpkg-dev \ perl \ libssl-dev \ bc \ gnupg \ dirmngr \ libelf-dev \ flex \ bison \ libncurses-dev \ rsync \ git \ curl if [ "${ARCHIVE}" != "" ] ; then FILE=`basename "$ARCHIVE"` KERNEL=`echo ${FILE}|sed 's/linux-//'|sed "s/\.${EXTENSION}//"` else if [ ${MAINLINE} -eq 1 ] ; then # Get last kernel version INFO=`curl -Ls https://www.kernel.org/ | perl -lne 'BEGIN{$/=""} print "$1 $2" if \ /latest_link.*?(.*?)