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 anterior Revisión previa
Próxima revisión
Revisión previa
es:howtos:slackware_admin:building_the_linux_kernel_using_git_repository [2019/03/10 17:42 (UTC)]
antares_alf [lilo]
es:howtos:slackware_admin:building_the_linux_kernel_using_git_repository [2019/04/05 23:37 (UTC)] (actual)
pedro.herrero [Instalando]
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 # El-paquete-Slackware-kernel-headers ​| 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 | crear un inird]].</​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>

En otros idiomas
QR Code
QR Code es:howtos:slackware_admin:building_the_linux_kernel_using_git_repository (generated for current page)