[Trucos]¿Cómo obtener el kernel Linux de la manera inteligente?

Por @dhunter:

A algunos de nosotros nos gusta vivir en el filo, usar lo último de kernel, no hay problema, vamos a kernel.org bajamos el último release estable y ya está, a compilar. Pero cada kernel pesa casi 70 MB (en formato xz), y bajarlo completo por cada release cuando lo único que cambia son unas cuantas líneas de código es un desperdicio de ancho de banda.

A continuación un ejemplo de la vida real, mi propio momento holy crap!! this is awesome!!.

Vamos a ver que versión está como estable ahora mismo (2013-04-15), pues es la 3.8.7 con link de descarga «https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.7.tar.xz», se descarga, compila e instala como siempre.

Todo ok, estamos contentos con nuestro nuevo kernel, se siente más rápido, el ordenador responde al pedalazo, hasta el sabor del café es diferente gracias al kernel 3.8.7 (hay que habilitar el nuevo mod_coffe), …. pero … dos días después (2013-04-17) sale un nuevo relesase, el 3.8.8, con múltiples mejoras y correciones que por supuesto debemos tener pues nos-gusta-vivir-al-filo, y ahí vamos a descargar 70 MB más para compilar y se repite el ciclo de vida.

Esto es pura fuerza bruta, no podemos seguir así.

Siempre he visto en kernel.org varios links de decarga, la vista gitweb, vista diff y los parches… siempre me han intrigado los parches. Vamos a subirnos las mangas y aprender a usar la herramienta patch, de una vez y por todas.

En kernel.org se generan automáticamente los parches para todas las versiones del kernel, cada vez que hay un release base (x.x.0) los parches se generan a partir de ese, o sea tenemos el release 3.8.0 y los parches 3.8.1, 3.8.2, 3.8.3, …. 3.8.7 y 3.8.8 hasta ahora.

El parche que necesitamos es el 3.8.8 que fue hecho para aplicarlo al kernel 3.8.0, pero… el que tenemos es el 3.8.7, qué?? escribo una guía para no gastar ancho de banda en vano y la solución es gastar 70 MB más? soy un fraude. XD

Es broma, patch puede resolver esto fácil, nos descargamos el parche 3.8.8 y además el 3.8.7, vamos a «restarle» al kernel 3.8.7 el parche 3.8.7 y obtendremos el kernel 3.8.0, luego «sumamos» el parche 3.8.8 y ya está tenemos el kernel 3.8.8 listo para compilar.

Los ficheros que necesitamos son:
https://www.kernel.org/pub/linux/kernel/v3.x/patch-3.8.8.xz
https://www.kernel.org/pub/linux/kernel/v3.x/patch-3.8.7.xz

Asumo que tenemos los 3 ficheros en el mismo directorio: linux-3.8.7.xz, patch-3.8.7 y patch-3.8.8

He aquí los pasos para convertir el kernel 3.8.7 en 3.8.8:
tar xvf linux-3.8.7.tar.xz
cd linux-3.8.7/
xzcat ../patch-3.8.7.xz | patch -R -p1

Notar el -R (reverse patch).

Ya tenemos el 3.8.0, ahora procedemos a aplicar el parche 3.8.8:
xzcat ../patch-3.8.8.xz | patch -p1

Listo! Acabamos de obtener el kernel 3.8.8 sin desperdiciar ancho de banda.

Houston, estamos listos para compilar.

Si queremos probar un kernel -rc (bleeding edge) basta con aplicar un parche rc (como 3.9-rc8) al release base anterior 3.8.0.

Update: Ya salió la versión 3.9 y el update 3.9.1, pues bien procedemos a descargar los parches correspondientes, tenemos el 3.8.7 como base, le restamos el parche 3.8.7 al kernel y queda el 3.8.0, a ese le aplicamos el parche 3.9 (varios mb porque es la diferencia entre 3.8 y 3.9) y obtenemos el kernel 3.9, a este último se le aplica el parche 3.9.1 (de pocos kb) y así se repite el ciclo, todo sin descargar los 70 mb más de una vez.

Siempre es agradable leer el FAQ de kernel.org es una lectura muy entretenida para los curiosos.

https://www.kernel.org/category/faq.html

¿Te resultó interesante? Compártelo ...



Ozkar

Publicado por Ozkar

http://codeshard.github.io/ » Forma parte de GUTL desde el 6 diciembre, 2011. Soy uno ahí, no seas como yo...

Este artículo tiene 11 comentarios

  1. Le faltó el comienzo que dice así:

    A algunos de nosotros nos gusta vivir en el filo, usar lo último de kernel, no hay problema, vamos a kernel.org bajamos el último release estable y ya está, a compilar.

    Pero cada kernel…

    • @Dhunter, dime tu nombre completo, esto se va para SWL-X. Es tu aporte de este mes, jeje. Socio, estariamos sumamente orgullosos que nos enviaras algo de Python para el tercer numero (segundo oficial, el primero fue piloto)

      • Ah.. yo que vivía en el anonimato combatiendo el crimen… ¬_¬
        …mi nombre completo es: Manuel E. Gutierrez Pérez.

        Algo de Python… veré si tengo musa para algo original porque la verdad si hago otro-tutorial-de-python me van a abuchear hasta en la bodega.

  2. saludos dhunter, ozkar !!! el artículo está volao. lástima que no sea uno de los que quiere vivir al filo… de la última versión, jajajajaja. ya le hice un link a mis favoritos. probaré ahora que tengo instalado el wheezy -fenomenal- a utilizar un kernel último modelo.

  3. Me gusta muchisimo linux pero cada vez que lo voy a poner es rechazado porque mi maquina no tiene las caracteristicas …me paso con el ubuntu y mi PC es p4800 asus

  4. El resumen:

    Prominent features in Linux 3.9
    Experimental RAID 5/6 support and snapshot-aware defragmentation in Btrfs
    Android «goldfish» emulator
    SSD cache devices
    New architecture: Synopsys ARC 700 processors
    New architecture: Meta Imagination processors
    KVM support in ARM architectures
    Intel PowerClamp idle injection for improved power efficiency
    New «suspend-freeze» suspend state:
    Chrome OS laptop support
    Removal of CONFIG_EXPERIMENTAL
    Driver and architecture-specific changes
    Various core changes
    Filesystems
    Block layer
    Networking
    Virtualization
    perf

  5. Off Topic (bueno, no tan Off Topic): Para los hermanos de TinoRED, si pudieran gestionarnos la última versión del Kernel Linux (3.9.x) para los que nos gusta gastar unas horitas compilando el núcleo antes de dormir, se lo agradeceríamos. Saludos

  6. Voy a dejar este post aquí porque no encuentro otro lugar mejor dónde ponerlo…No sé uds, pero lo que soy yo he notado que la laptop se me calienta bastante con Ubuntu (incluso ha llegado hasta a apagarse)..luego me di a la tarea de buscar posibles soluciones y dí con esta (que les comparto enseguida) justo ahora…

    La cosa está en:

    1- Instalar lm-sensors (sudo apt-get install lm-sensors)
    2-ejecutar sensors-detect (como root) y responder q si a todo (esto instalará algunos módulos adicionales)..si quieres hechar un vistazo al estado del hw sólo tienes que ejecutar el comando sensors…y se verá algo como esto

    acpitz-virtual-0
    Adapter: Virtual device
    temp1: +16.0°C (crit = +108.0°C)
    temp2: +52.0°C (crit = +105.0°C)
    temp3: +55.0°C (crit = +108.0°C)
    temp4: +54.0°C (crit = +105.0°C)
    temp5: +33.1°C (crit = +108.0°C)
    temp6: +45.0°C (crit = +110.0°C)

    coretemp-isa-0000
    Adapter: ISA adapter
    Core 0: +54.0°C (high = +105.0°C, crit = +105.0°C)

    coretemp-isa-0001
    Adapter: ISA adapter
    Core 1: +53.0°C (high = +105.0°C, crit = +105.0°C)

    3-luego de los pasos iniciales sólo nos queda agregar 6 lineas al archivo /etc/modules…según el autor sdel artículo que leí esto hace que al iniio del sistema se ejecuten esos módulos que al parecer por defecto no están activados…
    Las 6 líneas a agregar son (luego de ejecutar sudo gedit /etc/modules)

    battery
    ac
    thermal
    processor
    acpi-cpufreq
    cpufreq-userspace

    Reiniciamos el sistema y voilá, por lo menos a mi me ha fincionado hasta ahora, he chequeado los logs del tempmonitor y he obsrevado una disminución de hasta 3ºC como promedio, aqui se los dejo…

    16may2013 01:02:37 ACPI CPUZ 52
    16may2013 01:02:57 ACPI CPUZ 51
    16may2013 01:03:17 ACPI CPUZ 51
    16may2013 01:03:37 ACPI CPUZ 51
    16may2013 01:03:57 ACPI CPUZ 52
    16may2013 01:04:17 ACPI CPUZ 51
    16may2013 01:04:37 ACPI CPUZ 52
    16may2013 01:04:57 ACPI CPUZ 51
    16may2013 01:05:17 ACPI CPUZ 52
    16may2013 01:05:37 ACPI CPUZ 52
    Reinicio de PC luego de los cambios
    16may2013 01:06:57 ACPI CPUZ 53
    16may2013 01:07:17 ACPI CPUZ 50
    16may2013 01:07:37 ACPI CPUZ 48
    16may2013 01:07:57 ACPI CPUZ 48
    16may2013 01:08:17 ACPI CPUZ 47
    16may2013 01:08:37 ACPI CPUZ 47
    16may2013 01:08:57 ACPI CPUZ 47
    16may2013 01:09:17 ACPI CPUZ 46
    16may2013 01:10:33 ACPI CPUZ 46
    16may2013 01:10:35 ACPI CPUZ 49
    16may2013 01:10:55 ACPI CPUZ 46
    16may2013 01:11:15 ACPI CPUZ 46
    16may2013 01:11:35 ACPI CPUZ 46
    16may2013 01:11:55 ACPI CPUZ 46
    16may2013 01:12:15 ACPI CPUZ 45
    16may2013 01:12:35 ACPI CPUZ 45

Los comentarios están cerrados.