diff --git a/Guías/XBPS_SRC.md b/Guías/XBPS_SRC.md index b9f5d23..b9992dd 100644 --- a/Guías/XBPS_SRC.md +++ b/Guías/XBPS_SRC.md @@ -201,20 +201,20 @@ A modo de ejemplo vamos a compilar un kernel custom. Con este paquete debemos co Void gestiona el kernel de manera diferente, normalmente cuando vamos a compilar un kernel custom estamos acostumbrados a descargar el último tarball desde kernel.org, descompimir, configurar y compilar ... esto no siempre es así, vamos a ver con detalle como es el proceso en Void Linux y como gestionarlo con XBPS-SRC. Tal y como podemos observar en la plantilla de construcción del kernel, vemos que descarga el tarball y los parches para la versión de punto en curso, es decir, para obtener el último kernel a fecha que escribo este texto, el 5.17.9, baja el tarball de la serie 5.17 y luego todos los parches hasta obtener la versión de punto. Veamos esto con detalle en el template: - -`pkgname=linux5.17` -`version=5.17.9` +``` +pkgname=linux5.17 +version=5.17.9 ... -`distfiles="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${version%.*}.tar.xz` -` https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-${version}.xz"` +distfiles="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${version%.*}.tar.xz + https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-${version}.xz" ... -`skip_extraction="patch-${version}.xz"` - +skip_extraction="patch-${version}.xz" +``` Aquí tenemos la descarga de la versíón del tarball 5.17 (`linux-${version%.*}.tar.xz`) y los parches de la versión 5.17.9 (`patch-${version}.xz`). Es muy importante fijarse y tener en cuenta esto, al igual que el valor de la variable `skip_extraction="patch-${version}.xz"` la cual indica que los parches no serán aplicados con el comando `extract`, por lo que para extraer una fuente completa del kernel, aplicando los parches de la versión de punto, en este caso 5.17.9, debemos emplear `patch`, que extrae la fuente pero no sólo realizando el `fetch` como `extract`, sino que además aplica los parches llegando a la fase `patch`, es un paso más. Veamos un ejemplo: #### Extraer las fuentes del kernel: -`./xbps-src -I extract linux5.17` => Aquí estamos extrayendo las fuentes del kernel 5.17. -`./xbps-src -I patch linux5.17` => Aquí estamos extrayendo el kernel 5.17 y además los parches de la versión 5.17.9, que será finalmente nuestra fuente. +- `./xbps-src -I extract linux5.17` => Aquí estamos extrayendo las fuentes del kernel 5.17. +- `./xbps-src -I patch linux5.17` => Aquí estamos extrayendo el kernel 5.17 y además los parches de la versión 5.17.9, que será finalmente nuestra fuente. #### Configuración: Para configurar las fuentes del kernel el primer paso sería acceder la directorio temporal de construcción: @@ -222,31 +222,31 @@ Para configurar las fuentes del kernel el primer paso sería acceder la director Ahora podemos aplicar una configuración que ya tuvieramos o realizarla desde cero, os dejo los principales comandos: -`make mrproper`: elimina la configuración, puesta a cero. +- `make mrproper`: elimina la configuración, puesta a cero. -`make oldconfig`: aplica tu configuración a las nuevas fuentes, si hay valores nuevos que no están contemplados en tu configuración pregunta por cada uno. +- `make oldconfig`: aplica tu configuración a las nuevas fuentes, si hay valores nuevos que no están contemplados en tu configuración pregunta por cada uno. -`make olddefconfig`: lo mismo que oldconfig, pero para cada valor nuevo no contemplado en tu configuración aplica los valores por defecto. +- `make olddefconfig`: lo mismo que oldconfig, pero para cada valor nuevo no contemplado en tu configuración aplica los valores por defecto. -`make defconfig`: aplica una configuración por defecto para tu arquitectura, es un buen punto de partida de carácter general. +- `make defconfig`: aplica una configuración por defecto para tu arquitectura, es un buen punto de partida de carácter general. -`make localmodconfig`: aplica una configuración partiendo de los módulos cargados, se pueden revisar con lsmod. Es un buen punto de partida para un configuración más personalizada. +- `make localmodconfig`: aplica una configuración partiendo de los módulos cargados, se pueden revisar con lsmod. Es un buen punto de partida para un configuración más personalizada. -`make tinyconfig`: aplica una configuración mínima, apto para diversión extrema, requiere cierta experiencia, no para empezar. +- `make tinyconfig`: aplica una configuración mínima, apto para diversión extrema, requiere cierta experiencia, no para empezar. -Una vez configurada la fuente, debemos copiar el archivo de configuración `.config` de - -`void-packages/masterdir/buildir/linux5.17/.config` -a -`void-packages/srcpkgs/linux5.17/files/x86_64-dotconfig-custom` +Una vez configurada la fuente, debemos copiar el archivo de configuración `.config` del directorio: +- `void-packages/masterdir/buildir/linux5.17/.config` a +- `void-packages/srcpkgs/linux5.17/files/x86_64-dotconfig-custom` El nombre debe ser éste, ya que así está definido en la plantilla, donde nos viene a decir que si encuentra el fichero de configuración con éste nombre aplicará dicha configuración personalizada en el proceso de construcción: ``` +... if [ -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom ]; then msg_normal "Detected a custom .config file for your arch, using it.\n" cp -f ${FILESDIR}/${subarch:-$arch}-dotconfig-custom .config make ${makejobs} ARCH=$arch ${_cross} oldconfig +... ``` #### Parches personalizados @@ -269,11 +269,10 @@ linux5.17 #### Construcción e instalación del Kernel Llegamos a la etapa final del kernel, donde se va a compilar con todos los parches y configuraciones que se hayan aplicado y posteriormente instalarlo en el sistema. Si utilizamos `Grub` no debemos preocuparnos en ejecutar su actualización, ya que `xbps-src` ya activa los `hooks` necesarios para actualizarlo tras la instalación del kernel en `/boot`. - -`$ ./xbps-src pkg linux5.17 && xi linux5.17` +- `$ ./xbps-src pkg linux5.17 && xi linux5.17` NOTA: para recompilar y/o reinstalar la misma versión de un paquete se debe forzar, mediante el flag `-f`: -`$ ./xbps-src -f pkg linux5.17 && xi -f linux5.17` +- `$ ./xbps-src -f pkg linux5.17 && xi -f linux5.17` ### Referencias