Debido a mi considerable tiempo libre, apenas escuche la salida de este parche, trate de compilar un kernel con dicho parche "milagroso", en esos días no tuve éxito, después de 2 o 3 semanas, me puse a buscar de nuevo, hasta que por fin, encontré un parche que no me daba errores al hacer el patch, sin mas, paso a explicar el proceso.
Aclaraciones:
- Este parche fue probado solamente en un kernel 2.6.37 limpio
- El proceso esta hecho con la herramienta "make-kpkg" conocida como "kernel a la manera debian"
- No encuentro la pagina de donde quite el parche que me funciono, lo único que recuerdo que era una pagina en alemán y me tuve que guiar solo por los comandos.
- No me responsabilizo por problemas ocasionados por el kernel compilado con el parche
Kernel 2.6.37
El kernel que utilizaremos lo descargamos de la pagina oficial kernel.org
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2
Sin mas lo descomprimimos y a lo siguiente.
El bendito parche
En los primeros días que salio la noticia, trate de compilar el kernel en esos tiempos 2.6.36, pero sin éxito, ya que siempre había algún error al aplicar el parche, hasta que, en una pagina alemana, encontré un parche que parcheaba sin ningún problema la versión 2.6.37 (no probé en otras versiones).
El parche sin mas es el siguiente:
http://www.mediafire.com/?g99ak32ebce7tsi
Lo descomprimimos y nos dara el archivo llamado "RFC-RFT-v3-sched-automated-per-tty-task-groups.patch"
Parcheando al monstruo
El proceso de parcheado no es muy complicado en si, nos dirigimos al kernel ya descomprimido, y aplicamos el parche de la siguiente manera
[root@alexdaciuk /direccion_donde_tienen_el_kernel/linux-2.6.37]# patch -p1 <../RFC-RFT-v3-sched-automated-per-tty-task-groups.patch Si todo salio bien nos tiene que devolver lo siguiente
patching file include/linux/sched.h
patching file kernel/sched.c
Hunk #3 succeeded at 2067 (offset 57 lines).
Hunk #4 succeeded at 8169 (offset 185 lines).
Hunk #5 succeeded at 8699 (offset 185 lines).
Hunk #6 succeeded at 8724 (offset 185 lines).
patching file kernel/fork.c
Hunk #2 succeeded at 907 (offset 1 line).
patching file drivers/tty/tty_io.c
Hunk #1 succeeded at 3169 (offset 9 lines).
patching file kernel/sched_autogroup.h
patching file kernel/sched_autogroup.c
patching file kernel/sysctl.c
patching file init/Kconfig
Hunk #1 succeeded at 741 (offset 13 lines).
patching file Documentation/kernel-parameters.txtSi hay algún problema, por favor, al foro, que para eso esta.
Configurando el kernel
Esto tampoco no tiene mucha ciencia, recomiendo usar "make menuconfig" ya que es simple e intuitivo, pero pueden hacerlo de la forma que quieran
Lo importante es, marcar la opcion "Automatic process group scheduling" que se encuentra en "General Setup"
En la pagina alemana también recomiendan:
1) En el apartado "Processor type and features" en "Preemption Model" marcar la opción "Low Latency"
2) En el mismo apartado fijar el "Timer Frecuency" a 1000 Hz (Advertencia: esto puede desincronizar videos con audio/video separados)
Aquí pueden personalizar el kernel como se les de la gana, lo importante es marcar la opción "Automatic process group scheduling"
Compilando el kernel
El sistema que uso siempre es el de usar "make-kpkg" que no tiene mucha historia
Consiste en el directorio del kernel ya configurado hacer
make-kpkg cleanpor si hay algún rastro de algo que no tenga que estar
y para compilarlo es
make-kpkg --initrd kernel_image kernel_headersEl tiempo que tarda aquí depende de la maquina y la configuración del kernel.
Aclaración: También pueden usar el sistema de "make modules", "make bzimage" y asi, no es obligatorio usar el proceso que describo
Instalando nuestro kernel
Si usamos "make-kpkg" nos bastara con usar dpkg para instalar los paquetes, el dpkg se encarga de instalar todo y actualizar el grub.
Si usaron el proceso "old school" tienen que instalar todo y generar el initrd y agregar la entrada al grub.
Comprobando que funciono
Si todo salio bien, y el parche se aplico correctamente, al hacer:
#cat /proc/sys/kernel/sched_autogroup_enablednos tiene que devolver "1" si no existe tal archivo es porque algo no salio bien, comprueben paso por paso y prueben de nuevo
Este proceso lo hize yo y me funciono, ahí va una captura por si no me creen
http://img411.imageshack.us/img411/3293/kernelautogroup.jpg
Experiencia y funcionamiento
Después de leer todas las maravillas de este parche, probé hacer 2 make a 4 hilos (opción -j4) uno era del source del firefox y otro era de un kernel para un amigo, también puse un video a 720p en el VLC y tenia abierto como de costumbre mi Jdownloader y mi pidgin, la maquina ni se pestañeo.
Mi maquina consiste en
AMD Athlon x2 3 Ghz por núcleo, 2 Gigas de RAM DDR2 a 1066 Mhz, placa ati de video HD3450 de 256 mb ...
Usando make localmodconfig y make localyesconfig
Como recomendación de un lector del blog, probé usar ese método.
Primero que nada, veamos que para demonios sirven estos comandos
1) make localmodconfig: configura el kernel basándose en los módulos cargados.
Modo de uso: Conectamos todos nuestros periféricos, usb, puerto paralelo, etc etc, esto es para que configure todos los módulos y no llevarnos sorpresas al iniciar el nuevo kernel, dependiendo del caso, hace ciertas preguntas.
2) make localyesconfig: marca todos los módulos como integrados en el núcleo ( [*] ), eso hace que el núcleo sea mas liviano al cargar el sistema y también imposibilita descargar módulos importantes.
Diferencias
El initrd de los originales 9,2 MB (del kernel 2.6.37 sin tocar nada) paso a pesar 2.7 MB con el 2.6.37 segunda recompilacion
Links Relacionados:
http://www.esdebian.org/articulos/23843/compilar-kernel-estilo-debian
Saludos y espero que les sea útil ...

Hola a todos,
Pues la verdad es que tengo la manía de compilarme mis kernels personales así que siempre se agradece un artículo de alguien que explica como compiló su kernel...
Gracias wasmosy por compartir tus experiencias e indicarnos como hacerlo.
En este post me enseñaron los siguientes trucos para limpiar los kernels:
make localmodconfig
make localyesconfig
"El primero hace una purga de los módulos que no se usan y el segundo sirve para fijarlos en el core del núcleo"
¿Los has usado para compilar este kernel? si es así ¿que tal?
Yo en su día los use y la verdad es que se redujo significativamente el tamaño la carpeta de módulos y creo que también del propio kernel, y a priori todo funciona correctamente
Un saludo
¿Los has usado para compilar este kernel? si es así ¿que tal?
solamente use el make-kpkg si es que el hace eso no lo se ...
saludos...
Buenas!
Alguien sabe si existe alguna forma de saber si el parche está aplicado? o sea algun comando o bien editando algun archivo... tengo un ratito investigando eso pero no he dado con la manera si es que la hay...
Gracias por el aporte Wasmosy!
Saludos!
Buenas!
Alguien sabe si existe alguna forma de saber si el parche está aplicado? o sea algun comando o bien editando algun archivo... tengo un ratito investigando eso pero no he dado con la manera si es que la hay...
Gracias por el aporte Wasmosy!
Saludos!
si ya esta parcheado, tendras "Automatic process group scheduling" que se encuentra en "General Setup" haciendo "make menuconfig"
saludos...
También me sirve, pero me referia a una vez corriendo el sistema, de todas formas y probando lo que me sugieres, es extraño, porque me devuelve tal cual esto:
patching file include/linux/sched.h
patching file kernel/sched.c
Hunk #3 succeeded at 2067 (offset 57 lines).
Hunk #4 succeeded at 8169 (offset 185 lines).
Hunk #5 succeeded at 8699 (offset 185 lines).
Hunk #6 succeeded at 8724 (offset 185 lines).
patching file kernel/fork.c
Hunk #2 succeeded at 907 (offset 1 line).
patching file drivers/tty/tty_io.c
Hunk #1 succeeded at 3169 (offset 9 lines).
patching file kernel/sched_autogroup.h
patching file kernel/sched_autogroup.c
patching file kernel/sysctl.c
patching file init/Kconfig
Hunk #1 succeeded at 741 (offset 13 lines).
patching file Documentation/kernel-parameters.txt
O sea todo aparentemente ok,en cambio no veo la opcion que tu me dices "Automatic process group scheduling" dentro de "General Setup" :/
También he leido algo sobre el archivo /proc/sys/kernel/sched_autogroup_enabled (con contenido "1" en el caso de estar parcheado correctamente o de la inexistencia del mismo en el caso de no estar parcheado, el cual también es mi caso ya que no tengo ese archivo)
Saludos!
También me sirve, pero me referia a una vez corriendo el sistema, de todas formas y probando lo que me sugieres, es extraño, porque me devuelve tal cual esto:
patching file include/linux/sched.h
patching file kernel/sched.c
Hunk #3 succeeded at 2067 (offset 57 lines).
Hunk #4 succeeded at 8169 (offset 185 lines).
Hunk #5 succeeded at 8699 (offset 185 lines).
Hunk #6 succeeded at 8724 (offset 185 lines).
patching file kernel/fork.c
Hunk #2 succeeded at 907 (offset 1 line).
patching file drivers/tty/tty_io.c
Hunk #1 succeeded at 3169 (offset 9 lines).
patching file kernel/sched_autogroup.h
patching file kernel/sched_autogroup.c
patching file kernel/sysctl.c
patching file init/Kconfig
Hunk #1 succeeded at 741 (offset 13 lines).
patching file Documentation/kernel-parameters.txt
O sea todo aparentemente ok,en cambio no veo la opcion que tu me dices "Automatic process group scheduling" dentro de "General Setup" :/
También he leido algo sobre el archivo /proc/sys/kernel/sched_autogroup_enabled (con contenido "1" en el caso de estar parcheado correctamente o de la inexistencia del mismo en el caso de no estar parcheado, el cual también es mi caso ya que no tengo ese archivo)
Saludos!
estas seguro que parcheaste exactamente como lo puse no? un error comun es usar la opcion "drysec" ... en todo caso abre un hilo en el foro .. asi no lleno mi blog con consultas ..
saludos...
/home/orden_caraj0
creo que te robare la idea...
Donde dice: "El proceso esta hecho con la herramienta "make-kpkg" conocida como "kernel a la manera debian"" ¿no es mejor que dicha herramienta está en el paquete kernel-package?
Donde dice: "El proceso esta hecho con la herramienta "make-kpkg" conocida como "kernel a la manera debian"" ¿no es mejor que dicha herramienta está en el paquete kernel-package?
cito como es conocido el proceso por estos lugares ... en todo caso cito el articulo del wiki al final de la entrada..
saludos..
No se para que sirve ese parche pero si he visto que está activado en el kernel 2.6.37 que me he bajado y he compilado, pero... que se supone que hace???