X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=linux%2Fmppe%2Fmppeinstall.sh;h=52ae7d12e31661711567ccd82a0cc1263ba7b8e2;hb=ae57a37fb6a716dddff877efde7c82a61f254c98;hp=f2f17400c7d2295c0d5b5e74b694ac3d78c30b5f;hpb=dbab7400abf57617a9334735a64ff00c6552cec5;p=ppp.git diff --git a/linux/mppe/mppeinstall.sh b/linux/mppe/mppeinstall.sh index f2f1740..52ae7d1 100644 --- a/linux/mppe/mppeinstall.sh +++ b/linux/mppe/mppeinstall.sh @@ -1,26 +1,61 @@ #!/bin/sh # -# A quickie script to install MPPE into the 2.2.20 kernel. -# Does no error checking!!! +# A quickie script to install MPPE into the 2.2.19+ or 2.4.18+ kernel. +# Does very little error checking!!! # -mppe_files="sha1.[ch] arcfour.[ch] ppp_mppe.c" +mppe_files="sha1.[ch] arcfour.[ch] ppp_mppe_compress.c" -[ $1 ] || exit 1 -[ -d "$1" ] || exit 1 +if [ -z "$1" -o ! -d "$1" ]; then + echo "Usage: $0 " >&2 + exit 1 +fi +# strip any trailing / +set -- ${1%/} +# strip leading /path/to/linux- and trailing -release +ver=`echo "${1##*/}" | sed -e 's/linux-//' -e 's/-.*//'` +if ! expr "$ver" : 2.[246] >/dev/null ; then + ver=`echo "${1##*/}" | sed -e 's/kernel-source-//' -e 's/-.*//'` + if ! expr "$ver" : 2.[246] >/dev/null ; then + echo "$0: Unable to determine kernel version ($ver)" >&2 + exit 1 + fi +fi + +# build patch files list +patchdir=`pwd` +patchfiles= +if expr $ver : 2.2 >/dev/null ; then + patchfiles=$patchdir/linux-2.2.*.patch +elif expr $ver : 2.4 >/dev/null ; then + patchfiles=`echo $patchdir/linux-2.4.18-{include,make}.patch` + # need to differentiate a bit + typeset -i rel=${ver##*.} + if [ $rel -eq 18 ]; then + patchfiles="$patchfiles $patchdir/linux-2.4.18-pad.patch" + elif [ $rel -gt 18 ]; then + patchfiles="$patchfiles $patchdir/linux-2.4.19-pad.patch" + else + echo "$0: unable to determine kernel version" >&2 + exit 1 + fi +elif expr $ver : 2.6 >/dev/null ; then + patchfiles=`echo $patchdir/linux-2.6*.patch` +fi + +echo "Detected kernel version $ver" echo "I will now patch the kernel in directory $1" echo -n "Press ret to continue, CTRL-C to exit: " read -patchdir=`pwd` pushd "$1" >/dev/null -for patch in $patchdir/linux*.patch; do +for patch in $patchfiles; do patch -p1 < $patch done for file in $mppe_files; do - cp $patchdir/$file drivers/net + cp -v $patchdir/$file drivers/net done popd >/dev/null