[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
Última revisiónAmbos lados, revisión siguiente
es:howtos:slackware_admin:building_the_linux_kernel_using_git_repository [2019/03/10 17:37 (UTC)] – [Installing] antares_alfes:howtos:slackware_admin:building_the_linux_kernel_using_git_repository [2019/04/05 23:35 (UTC)] – [Instalando] pedro.herrero
Línea 3: Línea 3:
 // Nota del autor: Estoy escribiendo esto de la manera más imparcial que puedo, porque creo que el usuario debería decidir qué es lo mejor para él.// // Nota del autor: Estoy escribiendo esto de la manera más imparcial que puedo, porque creo que el usuario debería decidir qué es lo mejor para él.//
 ==== Dónde construir ==== ==== Dónde construir ====
-Hay dos lugares comunes para construir el núcleo. Es importante que dondequiera que compile el kernel, debe ser una ubicación que no cambie ni corra el riesgo de eliminación o corrupción. Por ejemplo, ** NO ** compile en '' /tmp ''.+Hay dos lugares comunes para construir el núcleo. Es importante que dondequiera que compile el kernel, sea una ubicación que no cambie ni corra el riesgo de eliminación o corrupción. Por ejemplo, ** NO ** compile en '' /tmp ''.
  
-1. Puedes construir el kernel en '' /usr/src ''  tendrás que ser root para construir el kernel. Esto tiene la ventaja de que funciona bien para sistemas multiusuario.+1. Puede construir el kernel en '' /usr/src ''  tendrá que ser root para construir el kernel. Esto tiene la ventaja de que funciona bien para sistemas multiusuario.
  
 <code bash> <code bash>
Línea 13: Línea 13:
 </code> </code>
  
-2. Puede compilar el kernel en su directorio de inicio en un directorio que no debe eliminar. Por ejemplo, puede usar ''~/.local/src'' o algo similar. Puedes construir el kernel como un usuario regular. La desventaja es que otros usuarios en un sistema multiusuario no tendrán acceso a la fuente.+2. Puede compilar el kernel en su directorio de inicio en un directorio que no vaya a eliminar. Por ejemplo, puede usar ''~/.local/src'' o algo similar. Puede construir el kernel como un usuario regular. La desventaja es que otros usuarios en un sistema multiusuario no tendrán acceso a la fuente.
  
 <code bash> <code bash>
Línea 28: Línea 28:
 </code> </code>
  
-1. Puedes usar git para obtener la fuente del kernel. Esto tiene la ventaja de que evitará problemas si [[http://www.linuxfoundation.org/news-media/blogs/browse/2011/08/cracking-kernelorg|linux.org esté roto]]. Una desventaja es que el directorio de origen puede aumentar de tamaño a medida que se extraen nuevas versiones.+1. Puede usar git para obtener la fuente del kernel. Esto tiene la ventaja de que evitará problemas si [[http://www.linuxfoundation.org/news-media/blogs/browse/2011/08/cracking-kernelorg|linux.org está roto]]. Una desventaja es que el directorio de origen puede aumentar de tamaño a medida que se extraen nuevas versiones.
  
 <code bash> <code bash>
 git clone --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git # Esto solo debe ejecutarse una vez al principio git clone --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git # Esto solo debe ejecutarse una vez al principio
 cd linux-stable cd linux-stable
-git pull # ejecuta esto cada vez para actualizar la fuente+git pull # ejecute esto cada vez para actualizar la fuente
 git checkout v$version # DEBE verificar una versión del kernel o obtendrá la versión base, es decir, 3.10 git checkout v$version # DEBE verificar una versión del kernel o obtendrá la versión base, es decir, 3.10
 git log # simplemente verifique para asegurarse de que la parte superior del registro indique la versión que desea git log # simplemente verifique para asegurarse de que la parte superior del registro indique la versión que desea
Línea 105: Línea 105:
 </code> </code>
  
-Tienes muchas opciones cuando se trata de cómo construir el Kernel. Es mejor leer el archivo ''README'' en el directorio de la fuente del kernel para obtener todas las opciones actuales, así como también ''Documentation /kbuild/kconfig.txt'' para obtener detalles sobre todas las opciones.+Tiene muchas opciones cuando se trata de cómo construir el Kernel. Es mejor leer el archivo ''README'' en el directorio de la fuente del kernel para obtener todas las opciones actuales, así como también ''Documentation /kbuild/kconfig.txt'' para obtener detalles sobre todas las opciones.
  
 <file txt README> <file txt README>
Línea 184: Línea 184:
  
 También puede usar la configuración de kernel de su kernel actualmente en ejecución ubicado en ''/proc/config.gz'' ejecutando<code bash>zcat /proc/config.gz > .config</code> Sin embargo, tenga en cuenta que ''/proc/config.gz'' puede no existir si el kernel no está configurado para exponerlo. También puede usar la configuración de kernel de su kernel actualmente en ejecución ubicado en ''/proc/config.gz'' ejecutando<code bash>zcat /proc/config.gz > .config</code> Sin embargo, tenga en cuenta que ''/proc/config.gz'' puede no existir si el kernel no está configurado para exponerlo.
-<note>Si elige compilar en ''/usr/src'' y usa ''xconfig'' o ''gconfig'', lea [[howtos: slackware_admin: kernelbuilding # x_and_su | howtos: slackware_admin: kernelbuilding # x_and_su]]</note>+<note>Si elige compilar en ''/usr/src'' y usa ''xconfig'' o ''gconfig'', lea [[es:howtos: slackware_admin: kernelbuilding # x_and_su | howtos: slackware_admin: kernelbuilding # x_and_su]]</note>
  
 ==== Qué configurar ==== ==== Qué configurar ====
-<note important>Primero, asegúrese de entender la diferencia entre el **módulo integrado**(Built-in) y el **módulo**. **Integrado** significa que el controlador o la característica se incluye en el kernel y el cargador de arranque lo carga en la RAM. **Módulo** significa que el controlador está construido como un módulo y es cargado por el núcleo una vez que monta el sistema de archivos. Esto es muy importante, ya que para cargar un módulo desde el sistema de archivos, el kernel necesita controladores para manejar el controlador IDE o SATA, así como el sistema de archivos en el HDD o SDD. **Debe** integrar los módulos de controlador IDE/SATA (PATA/SATA/AHCI) necesarios para acceder a su HDD/SDD, así como el controlador de sistema de archivos necesario para montar el sistema de archivos en el que se encuentran los módulos **o** puede [[howtos: slackware_admin: kernelbuilding # creating_an_initrd | make an initrd]]. Si no lo hace, se producirá el error "'Kernel Panic-not syncing: VFS: unable to mount root fs on unknown block(8,2)'" (no se puede montar fs raíz en un bloque desconocido).</note>+<note important>Primero, asegúrese de entender la diferencia entre el **módulo integrado**(Built-in) y el **módulo**. **Integrado** significa que el controlador o la característica se incluye en el kernel y el cargador de arranque lo carga en la RAM. **Módulo** significa que el controlador está construido como un módulo y es cargado por el núcleo una vez que monta el sistema de archivos. Esto es muy importante, ya que para cargar un módulo desde el sistema de archivos, el kernel necesita controladores para manejar el controlador IDE o SATA, así como el sistema de archivos en el HDD o SDD. **Debe** integrar los módulos de controlador IDE/SATA (PATA/SATA/AHCI) necesarios para acceder a su HDD/SDD, así como el controlador de sistema de archivos necesario para montar el sistema de archivos en el que se encuentran los módulos **o** puede [[es:howtos:slackware_admin:kernelbuilding#creating_an_initrd | crear un initrd]]. Si no lo hace, se producirá el error "'Kernel Panic-not syncing: VFS: unable to mount root fs on unknown block(8,2)'" (no se puede montar fs raíz en un bloque desconocido).</note>
  
-<note>Por lo tanto, si construyes algo como un módulo, ¿por qué no hacer que todo sea Built-in? Ciertamente, esta es una opción, y esto es lo que se hace para el enorme kernel slackware, porque no tiene acceso a los módulos. Sin embargo, en una máquina antigua notará una diferencia entre el arranque del gran kernel (lento) y el arranque del kernel genérico (rápido). Esto se debe a que cargar un kernel grande en RAM lleva más tiempo que uno más pequeño. Hay otro problema con la construcción de todo en el kernel, ya que algunos controladores pueden entrar en conflicto entre sí y no podrá descargar los módulos porque están integrados. Por lo general, puede evitar que los controladores incorporados funcionen en el arranque utilizando la línea de comando del kernel que puede configurar en la configuración de su cargador de arranque, por ejemplo, '' /etc/lilo.conf ''.+<note>Por lo tanto, si construye algo como un módulo, ¿por qué no hacer que todo sea Built-in? Ciertamente, esta es una opción, y esto es lo que se hace para el enorme kernel slackware, porque no tiene acceso a los módulos. Sin embargo, en una máquina antigua notará una diferencia entre el arranque del gran kernel (lento) y el arranque del kernel genérico (rápido). Esto se debe a que cargar un kernel grande en RAM lleva más tiempo que uno más pequeño. Hay otro problema con la construcción de todo en el kernel, ya que algunos controladores pueden entrar en conflicto entre sí y no podrá descargar los módulos porque están integrados. Por lo general, puede evitar que los controladores incorporados funcionen en el arranque utilizando la línea de comando del kernel que puede configurar en la configuración de su cargador de arranque, por ejemplo, '' /etc/lilo.conf ''.
 </note> </note>
  
Línea 207: Línea 207:
 Esta opción puede mejorar en gran medida el rendimiento de la capacidad de respuesta de las máquinas multihilo. Por lo tanto, puede ejecutar '' make -j4 '' sin hacer que otros programas tartamudeen. Esta opción puede mejorar en gran medida el rendimiento de la capacidad de respuesta de las máquinas multihilo. Por lo tanto, puede ejecutar '' make -j4 '' sin hacer que otros programas tartamudeen.
 >> Initial RAM filesystem and RAM disk (initramfs/initrd) support >> Initial RAM filesystem and RAM disk (initramfs/initrd) support
-Asegúrate de habilitar esto si vas a hacer un initrd.+Asegúrese de habilitar esto si va a hacer un initrd.
 >> Disable heap randomization >> Disable heap randomization
 Esta opción debería estar deshabilitada en máquinas fabricadas después del año 2000 por razones de seguridad. Esta opción debería estar deshabilitada en máquinas fabricadas después del año 2000 por razones de seguridad.
Línea 238: Línea 238:
 Para obtener el máximo rendimiento, debe elegir la familia de procesadores adecuada. Para obtener el máximo rendimiento, debe elegir la familia de procesadores adecuada.
 <note> <note>
-Para identificar un procesador desconocido, primero ejecuta+Para identificar un procesador desconocido, primero ejecute
 <code bash> <code bash>
 cat /proc/cpuinfo cat /proc/cpuinfo
Línea 245: Línea 245:
 </note> </note>
 >> Maximum number of CPUs >> Maximum number of CPUs
-Establece  el número de CPU que tienes.+Establece  el número de CPU que tiene.
 >> SMT (Hyperthreading) scheduler support >> SMT (Hyperthreading) scheduler support
 Esto es para máquinas Hyperthreading, es decir, núcleos virtuales. Esto es para máquinas Hyperthreading, es decir, núcleos virtuales.
Línea 262: Línea 262:
 Baja latencia, bajo rendimiento. Bueno para servidores de medios, o sistemas embebidos de baja latencia. Baja latencia, bajo rendimiento. Bueno para servidores de medios, o sistemas embebidos de baja latencia.
 >> Reroute for broken boot IRQs >> Reroute for broken boot IRQs
-Habilita si tienes problemas con interrupciones espurias.+Habilitar si tiene problemas con interrupciones espurias.
 >> Machine Check / overheating reporting >> Machine Check / overheating reporting
 Asegúrese de habilitar esto junto con Intel o AMD. Esto permite que el kernel responda al sobrecalentamiento del sistema. Asegúrese de habilitar esto junto con Intel o AMD. Esto permite que el kernel responda al sobrecalentamiento del sistema.
Línea 294: Línea 294:
 </note> </note>
 >> EFI runtime service support >> EFI runtime service support
-Habilita si quieres arrancar desde UEFI.+Habilítelo si desea arrancar desde UEFI.
 >>> EFI stub support >>> EFI stub support
-Habilita si quieres arrancar desde UEFI.+Habilítelo si desea arrancar desde UEFI.
 >> Enable -fstack-protector buffer overflow detection >> Enable -fstack-protector buffer overflow detection
 Puede evitar los desbordamientos de búfer en sistemas con gcc versión 4.2 y superiores. Puede evitar los desbordamientos de búfer en sistemas con gcc versión 4.2 y superiores.
Línea 360: Línea 360:
 >>> Mice  ---> >>> Mice  --->
 >>>> PS/2 mouse >>>> PS/2 mouse
-Habilítalo si tienes un mouse PS / 2.+Habilítelo si tiene un ratón PS / 2.
 >> Multimedia support  ---> >> Multimedia support  --->
 >>> Media USB Adapters  ---> >>> Media USB Adapters  --->
 >>>> USB Video Class (UVC) >>>> USB Video Class (UVC)
 >>>>> UVC input events device support >>>>> UVC input events device support
-Si tienes una cámara web nueva, debes habilitarla o no funcionará.+Si tiene una cámara web nueva, debe habilitarla o no funcionará.
 >> Graphics support >> Graphics support
 >>> /dev/agpgart (AGP Support) >>> /dev/agpgart (AGP Support)
 >>>> Intel 440LX/BX/GX, I8xx and E7x05 chipset support >>>> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
-Habilítalo si tienes una tarjeta Intel integrada.+Habilítelo si tiene una tarjeta Intel integrada.
 >>> Direct Rendering Manager >>> Direct Rendering Manager
 Esto casi siempre debería estar habilitado. Esto casi siempre debería estar habilitado.
Línea 403: Línea 403:
 >> EFI (Extensible Firmware Interface) Support  ---> >> EFI (Extensible Firmware Interface) Support  --->
 >>> EFI Variable Support via sysfs >>> EFI Variable Support via sysfs
-Esta opción está en desuso a favor del sistema de archivos Variable EFI. Puede [[https://lkml.org/lkml/2013/4/16/473|cause problemas de inconsistencia de datos]]+Esta opción está en desuso a favor del sistema de archivos Variable EFI. Puede [[https://lkml.org/lkml/2013/4/16/473|causar problemas de inconsistencia de datos]]
 > **File systems** > **File systems**
-Usted ** DEBE ** ya sea que incorpore el controlador para el sistema de archivos en el que se encuentran los módulos del kernel ** O ** cree un initrd, o el kernel ** NO ** se iniciará. También debe incorporar el controlador para el sistema de archivos en el que reside el núcleo en caso de que resida en un tipo de sistema de archivos diferente al de los módulos, por ejemplo. Partición EFI VFAT.+Usted ** DEBE ** bien incorporar el controlador para el sistema de archivos en el que se encuentran los módulos del kernel ** O ** bien crear un initrd, o el kernel ** NO ** se iniciará. También debe incorporar el controlador para el sistema de archivos en el que reside el núcleo en caso de que resida en un tipo de sistema de archivos diferente al de los módulos, por ejemplo. Partición EFI VFAT.
 >> DOS/FAT/NT Filesystems >> DOS/FAT/NT Filesystems
 >>> MSDOS fs support >>> MSDOS fs support
 >>> VFAT (Windows-95) fs support >>> VFAT (Windows-95) fs support
-Necesitas estos incorporados si usas EFI. El núcleo arrancará si son módulos, pero las situaciones de tipo catch22 pueden resultar fácilmente.+Necesita estos incorporados si usa EFI. El núcleo arrancará si son módulos, pero las situaciones de tipo catch22 pueden resultar fácilmente.
 >>> NTFS file system support >>> NTFS file system support
 >>> NTFS write support >>> NTFS write support
-Necesitas esto si quieres escribir en sistemas de archivos NTFS.+Necesita esto si desea escribir en sistemas de archivos NTFS.
 >> CD-ROM/DVD Filesystems >> CD-ROM/DVD Filesystems
 >>> UDF file system support >>> UDF file system support
Línea 445: Línea 445:
 </note> </note>
 ==== Compilando ==== ==== Compilando ====
-Para acelerar la compilacion, puede usar la opción '' -j ''. El máximo al que se puede establecer es el número de núcleos o procesadores más uno. Sin embargo, si desea hacer algo mientras el kernel se está construyendo, como navegar por la web, puede usar solo la cantidad de núcleos o procesadores.+Para acelerar la compilacion, puede usar la opción '' -j '' de make. El máximo al que se puede establecer es el número de núcleos o procesadores más uno. Sin embargo, si desea hacer algo mientras el kernel se está construyendo, como navegar por la web, puede usar solo la cantidad de núcleos o procesadores.
 <code bash> <code bash>
 cores=4 cores=4
Línea 453: Línea 453:
 </code> </code>
 ==== Instalando ==== ==== Instalando ====
-<note important>Antes de instalar el kernel, es posible que desee desinstalar los paquetes de Slackware que contienen los kernels, los módulos y la fuente predeterminados. También puede optar por dejar estos paquetes instalados si planea usar estos Kernels predeterminados. Hagas lo que hagas, **no** desinstales los encabezados del Kernel anterior. Consulte [[howtos: slackware_admin: kernelbuilding # slackware_kernel-headers_package | guía de Alien Bob]] para obtener más información sobre estos temas.</note>+<note important>Antes de instalar el kernel, es posible que desee desinstalar los paquetes de Slackware que contienen los kernels, los módulos y la fuente predeterminados. También puede optar por dejar estos paquetes instalados si planea usar estos Kernels predeterminados. Haga lo que haga, **no** desinstale los encabezados del Kernel anterior. Consulte [[es: howtos: slackware_admin: kernelbuilding # slackware_kernel-headers_package | guía de Alien Bob]] para obtener más información sobre estos temas.</note>
 Primero, debe asegurarse de eliminar cualquier módulo de kernel previamente instalado en ''/lib/modules/$version''. Primero, debe asegurarse de eliminar cualquier módulo de kernel previamente instalado en ''/lib/modules/$version''.
 <code bash> <code bash>
 su su
-rm -r /lib/modules/$version # Asegúrate de saber lo que se está eliminando+rm -r /lib/modules/$version # Asegúrese de saber lo que se está eliminando
 </code> </code>
-Ahora, puedes instalar los nuevos módulos.+Ahora, puede instalar los nuevos módulos.
 <code bash> <code bash>
 make modules_install make modules_install
 </code> </code>
-A continuación deberías instalar el propio kernel. Esta secuencia de comandos instalará el kernel y se asegurará de que esté instalado correctamente.+A continuación debería instalar el propio kernel. Esta secuencia de comandos instalará el kernel y se asegurará de que esté instalado correctamente.
 <file bash installkernel.sh> <file bash installkernel.sh>
 #!/bin/sh #!/bin/sh
Línea 542: Línea 542:
 </file> </file>
 ==== lilo ==== ==== lilo ====
-<note important>Si elige no incorporar los módulos de controlador IDE / SATA (PATA / SATA / AHCI) necesarios para acceder a su HDD / SDD, así como el controlador del sistema de archivos necesario para montar el sistema de archivos en el que se encuentran los módulos, usted ** DEBE ** [[howtos: slackware_admin: kernelbuilding # creating_an_initrd | make anird]].</note> +<note important>Si elige no incorporar los módulos de controlador IDE/SATA (PATA/SATA/AHCI) necesarios para acceder a su HDD/SDD, así como el controlador del sistema de archivos necesario para montar el sistema de archivos en el que se encuentran los módulos, usted **DEBE** [[howtos: slackware_admin: kernelbuilding # creating_an_initrd | crear un initrd]].</note> 
-Si usa lilo, que es el gestor de arranque predeterminado en Slackware, debe editar '' /etc/lilo.conf '' y luego ejecutar+Si usa lilo, que es el gestor de arranque predeterminado en Slackware, debe editar ''/etc/lilo.conf'' y luego ejecutar
 <code bash> <code bash>
 lilo lilo
 es:howtos:slackware_admin:building_the_linux_kernel_using_git_repository ()