Aplicar el famoso parche de 200 lineas en Debian/Ubuntu sin recompilar el Kernel

Linus Torvalds ha confirmado los beneficios del parche de 200 lineas que mejoraba las tareas de Escritorio, sin embargo había que recompilar el kernel para ello, no obstante, un desarollador de Red Hat ha mostrado como con unas simples modificaciones podemos obtener unos resultados equivalentes con los kernels recientes que soporten control group.

De momento un sinfín usuarios están muy satisfechos con los cambios que dan esta pequeña solución alternativa.

Hay que tener en cuenta, que en las distribuciones Debian/Ubuntu hay que utilizar /dev en vez de /sys.

Editar el fichero rc.local y añadir las siguientes lineas antes del ‘exit 0’

/etc/rc.local

mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent

Añadir en vuestro /home/usuario/.bashrc las siguientes lineas.

$ editor ~/.bashrc

if [ "$PS1" ] ; then
    mkdir -p -m 0700 /dev/cgroup/cpu/user/$$
    echo $$ > /dev/cgroup/cpu/user/$$/tasks
    echo 1 > /dev/cgroup/cpu/user/$$/notify_on_release
fi

Para eliminar cgroup cada vez que se abandona una tarea:

# editor /usr/local/sbin/cgroup_clean

#!/bin/sh
rmdir /dev/cgroup/cpu/$*

Hacerlo el fichero ejecutable:

chmod +x /usr/local/sbin/cgroup_clean

Reiniciar la máquina (no es realmente necesario) o bien copiar a mano los comandos y lanzar una nueva terminal.

Saludos!

6 Replies to “Aplicar el famoso parche de 200 lineas en Debian/Ubuntu sin recompilar el Kernel”

  1. Hola, tengo una pregunta, esto del .bashrc se hace en cada usuario, y yo no tengo sudo en mi Debian. Dónde meto esa edición para el usuario root?
    al ejecutar su y luego de la contraseña me da: bash: echo: error de escritura: Argumento inválido, y creo que se debe a lo que dije antes.

  2. Hola, no tienes que usar sudo, de hecho en el howto no se menciona, lo que tienes que hacer es incluir esas lineas en tu .bashrc de tu usuario y listo, aparte de añadir las lineas al /etc/rc.local

    Tienes que reiniciar el PC o bien ejecutar los comandos “a mano” para que funcione sin reiniciar.

    Puedes detallar exactamente que es lo que has realizado y que has puesto en cada fichero? que versión de Debian utilizas?

    Saludos,

  3. Perdón, no me hice entender bien.
    Pasa esto:
    ##rmn@debian:~$ su
    ##Contraseña:
    ##bash: echo: error de escritura: Argumento inválido
    ##root@debian:/home/rmn#

    Mi pregunta era donde encontrar el .bashrc para el usuario root, para agregar las líneas, que deben aplicarse a todos los usuarios. El archivo lo encontré en /root/.bashrc, pero después de agregar las lineas sigue igual.

  4. Uhmm, en principio estas lineas són para un usuario común, ya que normalmente trabajaras como usuario no-root, no lo pongas en root, no es el objetivo de este “parche”.

    De todas maneras, parece que tienes mal el /root/.bashrc, seguramente tienes código mal puesto allí.

    Vuelve a copiar el fichero .bashrc original a root.

    $ su – root -c ‘cp -p /etc/skel/.bashrc /root/.bashrc’

  5. Te cuento, el error fue creer que necesitaba las lineas en root, las removi dejando el .bash como estaba antes y ya lo resioví, muachas gracias, y perdon por lo tonto pero asi aprendo jajaja

  6. Hola hice todo como se indica pero en la linea final me aparece esto
    sudo chmod+x /usr/local/sbin/cgroup_clean
    sudo: chmod+x: command not found
    me pueden ayudar

Deja un comentario

Tu dirección de correo electrónico no será publicada.