#!/bin/sh -v # Vitaly Lipatov , 2004-2005 # Updates kernel of current type (std-up, std26-up, etc.) # to newest version (with all installed modules). # You can set type of kernel as first argument of the script. # Устанавливает самое новое ядро # Обновляет уже установленные модули до версии # для самого нового установленного ядра # Можно указать тип ядра первым параметром # 13.06.2005 fixed echo "Updating kernel-image with all installed modules..." # Тип ядра (получаем из текущего запущенного) FLAVOUR=`uname -r | cut -d "-" -f2,3` test -n "$1" && FLAVOUR=$1 # Find max version of rpm from std input list function find_max() { read M && \ while read R; do test -z $R && continue res=`rpmvercmp $M $R` test $res -eq -1 && M=$R done echo $M } # Set SUDO for user test $UID -eq 0 || SUDO=sudo INSTALL="$SUDO apt-get install -y" echo "Try to install newest kernel image '$FLAVOUR' type" NEWESTKERNEL=`$INSTALL kernel-image-$FLAVOUR | grep "\#" | grep -v "\["` #echo $NEWKERNEL NEWESTKERNEL=`echo $NEWESTKERNEL | cut -d " " -f 1 | find_max` if [ -n "$NEWESTKERNEL" ] ; then echo "Install new kernel $NEWESTKERNEL" $INSTALL $NEWESTKERNEL fi echo "Check for newest installed kernel..." NEWESTKERNEL=`rpm -qa kernel-image-${FLAVOUR}* | find_max` INSTVER=`rpm -q $NEWESTKERNEL --queryformat "%{VERSION}-$FLAVOUR-%{RELEASE}"` echo "Updating modules for kernel: $INSTVER ..." ALLMODULES=`rpm -qa "kernel-modules*$FLAVOUR*" | sed -e "s/-$FLAVOUR.*$//g" | sort -u` for i in $ALLMODULES; do echo $i-$INSTVER ; done | xargs $INSTALL