200+ 行内核补丁的替代方案

来源:互联网 发布:相机特效软件 编辑:程序博客网 时间:2024/05/01 09:42




http://wowubuntu.com/kernel-patch.html



http://launchpadlibrarian.net/59511828/cgroup_patch




#!/bin/bash#credits: superpiwi #http://ubuntulife.wordpress.com/2010/11/22/el-parche-milagro-de-linux-ahora-con-script-de-instalacion/#in English and with 3 small fixes by Andrew @ http://www.webupd8.orgYELLOW="\033[1;33m"RED="\033[0;31m"ENDCOLOR="\033[0m"#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::# PARCHEAR## Aplica las mejoras del kernel (parche de 200 lineas)# pero en 4 lineas de bash.##::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::function PARCHEAR (){FICHERO="$HOME/.bashrc"echo ""echo -e $YELLOW"Patching [${FICHERO}]..."$ENDCOLORecho ""# Añadiendo cadenas a .bashrc# Primero buscamos una cadena "base" para ver si esta o no ya añadidoLINEAS=`cat $FICHERO | grep "/dev/cgroup/cpu/user" | wc -l`if [ "$LINEAS" == "0" ];thenecho "Adding the patch..."echo "if [ \"\$PS1\" ] ; then" | tee -a $FICHEROecho "mkdir -p -m 0700 /dev/cgroup/cpu/user/\$\$ > /dev/null 2>&1" | tee -a $FICHEROecho "echo \$\$ > /dev/cgroup/cpu/user/\$\$/tasks" | tee -a $FICHEROecho "echo \"1\" > /dev/cgroup/cpu/user/\$\$/notify_on_release" | tee -a $FICHEROecho "fi" | tee -a $FICHEROelseecho "It seems the patch is already included in $FICHERO"fiFICHERO="/etc/rc.local"echo ""echo -e $YELLOW"Patching [${FICHERO}]..."$ENDCOLORecho ""# Añadiendo cadenas a /etc/rc.local# Primero buscamos una cadena "base" para ver si esta o no ya añadidoLINEAS=`cat $FICHERO | grep "/dev/cgroup/cpu/release_agent" | wc -l`if [ "$LINEAS" == "0" ];thenecho "Adding the patch..."POSI=`cat $FICHERO | grep -n "exit 0" | sort -nr | head -n 1 | awk -F: '{print $1}'`#echo "Posi es [$POSI]"echo "Making backup of $FICHERO in /etc/rc.local.backup.txt"cp /etc/rc.local /etc/rc.local.backup.txtsed "${POSI}imkdir -p /dev/cgroup/cpu\nmount -t cgroup cgroup /dev/cgroup/cpu -o cpu\nmkdir -m 0777 /dev/cgroup/cpu/user\necho \"/usr/local/sbin/cgroup_clean\" > /dev/cgroup/cpu/release_agent" /etc/rc.local | tee /etc/rc.new.localmv /etc/rc.new.local /etc/rc.local#echo "#========== 200 lines kernel patch alternative ============" | tee -a $FICHERO#echo "mkdir -p /dev/cgroup/cpu" | tee -a $FICHERO#echo "mount -t cgroup cgroup /dev/cgroup/cpu -o cpu" | tee -a $FICHERO#echo "mkdir -m 0777 /dev/cgroup/cpu/user" | tee -a $FICHERO#echo "echo \"/usr/local/sbin/cgroup_clean\" > /dev/cgroup/cpu/release_agent" | tee -a $FICHERO#echo "#====================================" | tee -a $FICHEROelseecho "It seems the patch is already included in $FICHERO"fiecho ""echo -e $YELLOW"Making [${FICHERO}] executable"$ENDCOLORecho ""sudo chmod +x $FICHEROFICHERO="/usr/local/sbin/cgroup_clean"echo ""echo -e $YELLOW"Creating [${FICHERO}]..."$ENDCOLORecho ""if [ ! -e $FICHERO ];thenecho "#!/bin/sh" | tee $FICHEROecho "if [ \"\$*\" != \"/user\" ]; then" | tee -a $FICHEROecho "rmdir /dev/cgroup/cpu/\$*" | tee -a $FICHEROecho "fi" | tee -a $FICHEROelseecho "File $FICHERO already exists."fi;echo ""echo -e $YELLOW"Making [${FICHERO}] executable"$ENDCOLORecho ""sudo chmod +x $FICHEROecho "DONE. The patch has been applied. Restart your computer..."}#-----------------------------------------------------------------------------# Comprobar que eres usuario rootif [ $USER != root ]; then  echo -e $RED"Error: you need to run this script as root."  echo -e $YELLOW"Exiting..."$ENDCOLOR  exit 0fi# Parchear el SistemaPARCHEAR# end of parche.sh