[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:slackbook:linux_kernel [2019/02/11 21:15 (UTC)] serlozes:slackbook:linux_kernel [2019/03/06 16:02 (UTC)] – [Compilar un kernel y por qué hacerlo así] serloz
Línea 1: Línea 1:
 <!-- Add your text below. We strongly advise to start with a Headline (see button bar above). --> <!-- Add your text below. We strongly advise to start with a Headline (see button bar above). -->
-====== El núcleo de Linux ======+====== El núcleo (kernel) de Linux ======
  
  
-===== ¿Qué hace el núcleo? =====+===== ¿Qué hace el kernel? =====
  
-Probablemente haya escuchado a la gente hablar acerca de compilar el núcleo +Probablemente haya escuchado a la gente hablar acerca de compilar el kernel 
-construir un núcleo, pero ¿qué es exactamente el núcleo y qué es lo que hace? +construir un kernel, pero ¿qué es exactamente el kernel y qué es lo que hace? 
-El núcleo es el centro de su ordenador. Es la base del +El kernel es el centro de su ordenador. Es la base del 
-sistema operativo completo. El núcleo actúa como un puente entre el +sistema operativo completo. El kernel actúa como un puente entre el 
-hardware y las aplicaciones. Esto significa que el núcleo es (normalmente)+hardware y las aplicaciones. Esto significa que el kernel es (normalmente)
 la única pieza de software responsable de ordenar alrededor de los componentes de hardware la única pieza de software responsable de ordenar alrededor de los componentes de hardware
-de su ordenador. Es el núcleo quien instruye a las unidades de discos duros +de su ordenador. Es el kernel quien instruye a las unidades de discos duros 
-para buscar un determinado flujo de datos. Es el núcleo quien indica a su tarjeta de red  +para buscar un determinado flujo de datos. Es el kernel quien indica a su tarjeta de red  
-que transmita cambios rápidos de voltaje. Así como es el núcleo quien también escucha al hardware. Cuando la tarjeta de red detecta +que transmita cambios rápidos de voltaje. Así como es el kernel quien también escucha al hardware. Cuando la tarjeta de red detecta 
-un ordenador remoto que envía información, reenvía esa información al núcleo. Esto hace que el núcleo sea la pieza más importante+un ordenador remoto que envía información, reenvía esa información al kernel. Esto hace que el kernel sea la pieza más importante
 de software en su ordenador y la más compleja. de software en su ordenador y la más compleja.
  
 ===== Trabajar con módulos ===== ===== Trabajar con módulos =====
  
-La complejidad de un núcleo de Linux actual es asombrosa. El código fuente +La complejidad de un kernel de Linux actual es asombrosa. El código fuente 
-para el núcleo pesa casi 400 MB sin comprimir. Hay miles de desarrolladores, centenares de opciones, y si todo estuviese +para el kernel pesa casi 400MB sin comprimir. Hay miles de desarrolladores, centenares de opciones, y si todo estuviese 
-construido junto, el núcleo pronto pasaría los 100MB de tamaño. Con el fin de mantener el tamaño del núcleo bajo (así como la cantidad de RAM +construido junto, el kernel pronto pasaría los 100MB de tamaño. Con el fin de mantener el tamaño del kernel bajo (así como la cantidad de RAM 
-necesaria para el núcleo), la mayoría de las opciones del núcleo se construyen como +necesaria para el kernel), la mayoría de las opciones del kernel se construyen como 
-módulos. Usted puede pensar en estos módulos como controladores de dispositivo que pueden ser +módulos. Usted puede pensar en estos módulos como controladores (drivers) de dispositivo que pueden ser 
-insertados o eliminados de un núcleo en ejecución cuando uno quiera. Verdaderamente, muchos de ellos +insertados o eliminados de un kernel en ejecución cuando uno quiera. Verdaderamente, muchos de ellos 
-no son controladores de dispositivo en absoluto, pero contienen soporte para cosas tales+no son drivers de dispositivo en absoluto, pero contienen soporte para cosas tales
 como protocolos de red, medidas de seguridad e incluso sistemas de archivos. En como protocolos de red, medidas de seguridad e incluso sistemas de archivos. En
-resumen, casi cualquier pieza del núcleo de Linux se puede construir como un módulo cargable.+resumen, casi cualquier pieza del kernel de Linux se puede construir como un módulo cargable.
  
 Es importante darse cuenta de que Slackware manejará automáticamente la carga de la mayoría de los módulos. Cuando su sistema arranca, Es importante darse cuenta de que Slackware manejará automáticamente la carga de la mayoría de los módulos. Cuando su sistema arranca,
Línea 78: Línea 78:
 programas para eliminarlos: **//rmmod//**(8) y programas para eliminarlos: **//rmmod//**(8) y
 **//modprobe//**.  Para eliminar un módulo con **//modprobe//**.  Para eliminar un módulo con
-modprobe, necesitarás usar el argumento //-r//.+modprobe, necesitará usar el argumento //-r//.
  
  
Línea 86: Línea 86:
 darkstar:~# lsmod | grep ext darkstar:~# lsmod | grep ext
 </code> </code>
-===== Compilar un núcleo y por qué hacerlo así =====+===== Compilar un kernel y por qué hacerlo así =====
  
-La mayoría de los usuarios de Slackware nunca necesitarán compilar un núcleo. Los núcleos gigante y genérico contienen prácticamente todo el soporte que necesitará.+La mayoría de los usuarios de Slackware nunca necesitarán compilar un kernel. Los kernels gigante (huge) y genérico (generic) contienen prácticamente todo el soporte que necesitará.
  
  
-Sin embargo, es posible que algunos usuarios necesiten compilar un núcleo. Si el ordenador contiene hardware de última tecnología, un núcleo más nuevo puede ofrecer mejor soporte. A veces puede estar disponible un parche del núcleo que corrige un +Sin embargo, es posible que algunos usuarios necesiten compilar un kernel. Si el ordenador contiene hardware de última tecnología, un kernel más nuevo puede ofrecer mejor soporte. A veces puede estar disponible un parche del kernel que corrige un 
-problema que está experimentando. En estos casos, una compilación del núcleo está +problema que está experimentando. En estos casos, una compilación del kernel está 
-probablemente justificada. Los usuarios que simplemente quieren la última y la mejor versión o quienes crean que usar un núcleo compilado personalizado les dará+probablemente justificada. Los usuarios que simplemente quieren la última y la mejor versión o quienes crean que usar un kernel compilado personalizado les dará
 un mayor rendimiento, sin duda puede mejorar, pero es poco probable que realmente se noten cambios importantes.  un mayor rendimiento, sin duda puede mejorar, pero es poco probable que realmente se noten cambios importantes. 
  
Línea 99: Línea 99:
 Si aún piensa que compilar su propio kernel es algo que quiera o Si aún piensa que compilar su propio kernel es algo que quiera o
 necesite hacer, esta sección debería guiarle a través de los numerosos pasos. necesite hacer, esta sección debería guiarle a través de los numerosos pasos.
-Compilar e instalar un núcleo no es tan difícil, pero hay+Compilar e instalar un kernel no es tan difícil, pero hay
 una serie de errores que se pueden hacer a lo largo del camino, muchos de los cuales pueden una serie de errores que se pueden hacer a lo largo del camino, muchos de los cuales pueden
 evitar que el ordenador arranque y causar una gran frustración. evitar que el ordenador arranque y causar una gran frustración.
Línea 105: Línea 105:
  
  
-El primer paso es asegurarse de que tiene el código fuente del núcleo instalado en su sistema. El paquete fuente del kernel está incluido en el conjunto de discos +El primer paso es asegurarse de que tiene el código fuente del kernel instalado en su sistema. El paquete fuente del kernel está incluido en el conjunto de discos 
 //"k"// en el instalador de Slackware, o puede descargar otra versión de [[ //"k"// en el instalador de Slackware, o puede descargar otra versión de [[
 http://www.kernel.org/|http://www.kernel.org/]]. http://www.kernel.org/|http://www.kernel.org/]].
-Traditionallythe kernel source is located in +Tradicionalmentela fuente del núcleo se encuentra en 
-''/usr/src/linux'',symbolic link that +''/usr/src/linux'', un enlace simbólico que 
-points to the specific kernel release usedbut this is by no means +apunta la versión específica del kernel utilizadapero esto no está de ninguna manera 
-set in stoneYou can place the kernel source code virtually anywhere +grabado en piedraPuede colocar el código fuente del kernel prácticamente en cualquier lugar 
-without encountering any problems.+sin tener problemas.
  
  
Línea 122: Línea 122:
  
  
-The most difficult part of any kernel compile is the kernel +La parte más difícil de cualquier compilación del kernel es la configuración del kernel. Hay cientos de opcionesmuchas de las cuales pueden 
-configurationThere are hundreds of optionsmany of which can +ser compiladas opcionalmente en módulosEsto significa que hay miles de 
-optionally be compiled into modulesThis means there are thousands of +formas de configurar un kernel. Afortunadamentehay algunos trucos útiles 
-ways to configure a kernel. Fortunatelythere are few handy tricks +que pueden mantenerle salvo de encontrarse con demasiados problemasEl archivo de configuración del kernel 
-that can keep you from running into too much trouble The kernel +es ''.config''Si usted es muy valientepuede editar manualmente este archivo con un editor de textopero le recomiendo encarecidamente que utilice las herramientas integradas del kernel para manipular
-configuration file is ''.config''If you are very +
-braveyou can manually edit this file with a text editor, but I highly +
-recommend you use the kernel's built-in tools for manipulating+
 ''.config''. ''.config''.
  
  
-Unless you are very familiar with configuring kernels, you should +A menos que esté muy familiarizado con la configuración de kernels, usted debe 
-always start with a solid base configuration and modify itThis +siempre empezar con una sólida base de configuración y modificarlaÉsto 
-prevents you from skipping an important option that might force you to +le impide omitir una opción importante que podría obligarlo a 
-compile the kernel again and again until you get it right The best +compilar el kernel una y otra vez hasta que lo haga bienLos mejores archivos ''.config'' del kernel para empezar son los utilizados 
-kernel ''.config'' files to start with are those used +por los kernels predeterminados de Slackware. Puede encontrarlo en su disco de instalación de Slackware 
-by Slackware's default kernelsYou can find them on your Slackware +o en su espejo (mirror) favorito en el directorio 
-install disks or at your favorite mirror in the +''kernels/''.
-''kernels/'' directory.+
  
  
Línea 153: Línea 149:
  
  
-You can replace the default ''.config'' file easily by +Puede reemplazar el archivo ''.config'' predeterminado fácilmente, 
-copying or downloading the ''config'' file for the +copiando o descargando el archivo ''config''' para el kernel 
-kernel you wish to use as a base. Here I am using Slackware'+que desea utilizar como base. En este caso estoy usando el kernel generic.s de Slackware 
-recommended generic.s kernel for a base, but you may wish to use the +recomendado para una base, pero es posible que desee utilizar el 
-huge.s config fileThe generic kernel builds more things as modules +archivo de configuración 
-and thus creates a smaller kernel imagebut it usually requires the +huge.s. El kernel genérico construye más cosas como módulos 
-use of an initrd.+y así crea una imagen del kernel más pequeñapero por lo general requiere el 
 +uso de un initrd.
  
  
Línea 168: Línea 165:
 <note important> <note important>
    
-The Slackware kernel file lacks the //"dot"// while the kernel file +El archivo del kernel de Slackware carece del //"punto"// mientras que el archivo del kernel 
-includes itIf you forgetor simply copy the +lo incluyeSi olvidao simplemente copia el 
-''config'' to +''config'' a 
-''/usr/src'' whatever +''/usr/src'' lo que sea, 
-''.config'' file was already present will be used +se usará el archivo ''.config'' que ya estaba presente 
-instead.+en su lugar.
 </note> </note>
  
-If you want to use the configuration for the currently running kernel +Si desea utilizar la configuración para el kernel que se está ejecutando actualmente 
-as your base, you may be able to locate it at +como su base, usted puede ser capaz de encontrarlo en 
-''/proc/config.gz''This is a special kernel-related +''/proc/config.gz''Este es un fichero especial relacionado con el kernel 
-file that includes the entire kernel configuration in a compressed +que incluye la configuración completa del kernel en un formato comprimido, 
-format and requires that your kernel was built to support it.+y requiere que su kernel haya sido construido para soportarlo.
  
  
Línea 188: Línea 185:
  
  
-Now that we've created a solid base configurationit's time to make +Ahora que hemos creado una configuración de base sólidaes hora de hacer 
-any configuration changes we wantThe entire kernel build process from +cualquier cambio de configuración que queramosTodo el proceso de compilación del kernel desde 
-configuration to compilation is performed with the +la configuración de la compilación se realiza con el comando 
-**//make//**(1) command and special arguments to it+**//make//**(1) y argumentos especiales a ello
-Each argument performs a different function.+Cada argumento realiza una función diferente.
  
  
-If you are upgrading to newer kernel releaseyou will definitely +Si está actualizando una versión más reciente del kernel, definitivamente 
-want to use the //oldconfig// argumentThis will step through +querrá usar el argumento //oldconfig//Esto pasará a través de su base ''.config'' y buscará los elementos que faltan, 
-your base ''.config'' and look for missing elements +lo que normalmente indica que la nueva versión del kernel contiene opciones adicionalesDado que las opciones se añaden en prácticamente todas las versiones del kernel, 
-that usually indicates that the new kernel release contains additional +esto es generalmente algo bueno que hacer.
-optionsSince options are added at virtually every kernel release+
-this is generally a good thing to do.+
  
  
Línea 223: Línea 218:
  
  
-Here you can see that the new kernel I am compiling has added support +Aquí puede ver que el nuevo núcleo que estoy compilando ha añadido soporte para un nuevo sistema de ficheros: ext4. //oldconfig// ha pasado por mi configuración original, ha mantenido todas las opciones antiguas exactamente como estaban configuradasme ha preguntado qué hacer con las nuevas opcionesNormalmente es seguro elegir la opción predeterminadapero es posible que desee cambiarla. //oldconfig// es una herramienta muy útil para presentarle sólo las nuevas opciones de configuraciónlo que la hace ideal para usuarios que simplemente tienen que probar la última versión del kernel. 
-for a new filesystem: ext4. //oldconfig// has gone through my +
-original configurationkept all the old options exactly as they were +
-setand prompted me on what to do with new optionsTypically it is +
-safe to choose the default optionbut you may wish change this. +
-//oldconfig// is a very handy tool for presenting you with only +
-new configuration optionsmaking it ideal for users who simply have to +
-try out the latest kernel release.+
  
  
-For more serious configuration tasksthere are a multitude of options+Para tareas de configuración más seriashay múltiples opciones
-The linux kernel can be configured in three primary waysThe first is +El kernel de linux puede ser configurado de tres maneras principalesLa primera es 
-//config//, which will step through each and every option one by +//config//, que pasará por todas y cada una de las opciones, una por una, 
-one and ask what you would like to doThis is so tedious that hardly +y le preguntará qué le gustaría hacerEsto es tan tedioso que apenas 
-anyone ever uses it anymore.+alguien lo usa ya.
  
  
Línea 255: Línea 243:
 </code> </code>
  
-Fortunatelythere are two much easier ways to configure your kernel, +Afortunadamentehay dos maneras mucho más fáciles de configurar su kernel, 
-//menuconfig// and //xconfig//Both of these create a +//menuconfig// //xconfig//Ambas crean un programa guiado por menú que le permite seleccionar y deseleccionar opciones sin necesidad de tener que pasar por cada una de ellas. //menuconfig// es el método más comummente utilizadoy el que recomiendo. //xconfig// sólo es útil si está intentando compilar el kernel desde una interfaz gráfica de usuario en **//X//**. Ambas son tan similaressin embargo, que sólo vamos a documentar //menuconfig//.
-menu-driven program that lets you select and de-select options without +
-having to step through each one. //menuconfig// is the most +
-commonly used methodand the one I recommend. //xconfig// is +
-only useful if you are attempting to compile the kernel from a +
-graphical user interface within **//X//**. Both are +
-so similar howeverthat we are only going to document +
-//menuconfig//.+
  
  
-Running make menuconfig from a terminal will +Ejecutando make menuconfig desde una terminal le presentará la interfaz amigable basada en curses que se muestra a continuación
-present you with the friendly curses-driven interface you see below+Cada sección del núcleo tiene su propio submenúy puede navegar con 
-Each kernel section is given its own submenuand you can navigate with +las teclas de dirección.
-the arrow keys.+
  
  
Línea 276: Línea 256:
 <note warning> <note warning>
      
-If you are compiling a kernel that is the same release as the +Si está compilando un kernel que es la misma versión que la del kernel común de Slackware, debe establecer la opción //"Local version"//Esto se encuentra en el submenú //"General setup"//No establecerlo resultará en que su kernel compilará sobrescribiendo todos los módulos utilizados por los kernels de stockEsto puede hacer rápidamente que su sistema no inicie.
-stock Slackware kernelyou must set the //"Local version"// +
-optionThis is found on the //"General setup"// submenuFailure to +
-set this will result in your kernel compile over-writing all the +
-modules used by the stock kernels. This can quickly render your +
-system unbootable.+
 </note> </note>
  
-Once you've finished configuring the kernel, it's time to begin +Una vez que haya terminado de configurar el kernel, es el momento de comenzar a 
-compiling itThere are many different methods for thisbut the most +compilarloHay muchos métodos diferentes para estopero el más 
-reliable is to use //bzImage//When you pass this argument to +fiable es utilizar //bzImage//Cuando pase este argumento a  
-**//make//**, the kernel compilation will begin and +**//make//**, la compilación del kernel comenzará y  
-you will see lots of data scroll through the terminal until either the +verá muchos datos desplazarse través de la terminal hasta que el proceso de compilación haya finalizado o se haya encontrado un error fatal.
-compile process is complete or fatal error is encountered.+
  
  
Línea 307: Línea 281:
  
  
-If the process ends in an error, you should check your kernel +Si el proceso termina en un error, debe comprobar su configuración del kernel 
-configuration firstCompile errors are usually caused by a fault +en primer lugarLos errores de compilación normalmente son causados por un error 
-''.config'' fileAssuming everything went alright+del archivo ''.config''Asumiendo que todo haya ido bien
-we're still not entirely finishedas we need to build the modules.+aún no hemos terminado del todoya que tenemos que construir los módulos.
  
  
Línea 325: Línea 299:
  
  
-If both the kernel and the modules compiles finished sucessfullywe're +Si tanto el kernel como los módulos compilados terminan con éxitoestamos 
-ready to install themThe kernel image needs to be copied into a safe +listos para instalarlosLa imagen del kernel necesita ser copiada en un lugar seguronormalmente el directorio ''/boot'', y usted 
-locationtypically the ''/boot'' directoryand you +debería darle un nombre único para evitar sobrescribir cualquier otra imagen del núcleo 
-should give it a unique name to avoid overwriting any other kernel +situada allíTradicionalmente las imágenes del kernel se llaman 
-images located thereTraditionaly kernel images are named +''vmlinuz'' con el lanzamiento del kernel y la versión local 
-''vmlinuz'' with the kernel release and local version +añadida.
-appended.+
  
  
Línea 341: Línea 314:
  
  
-Once these steps have been completedyou will have a new kernel image +Una vez completados estos pasostendrá una nueva imagen del kernel 
-located under ''/boot'' and a new kernel modules +situada debajo de ''/boot'' y nuevos módulos del kernel 
-directory under ''/lib/modules''In order to use +situados debajo del directorio ''/lib/modules''Con el fin de utilizar  
-this new kernel, you will need to edit ''lilo.conf'', +este nuevo kernel, necesitará editar ''lilo.conf'', 
-create an initrd for it (only if you need to load one or more of this +crear un initrd para ello (sólo si necesita cargar uno o más de estos 
-kernel's modules to boot), and run **//lilo//** to +módulos del kernel para arrancar), y ejecutar **//lilo//** para 
-update the boot loaderWhen you rebootif all went according to plan, +actualizar el cargador de arranqueCuando reiniciesi todo sale según el plan, 
-you should have an option to boot with your newly compiled kernel. If +debería tener la opción de arrancar con su kernel recién compiladoSi 
-something went wrongyou may be spending some time fixing the problem+algo saliese malpuede ser que pase algún tiempo arreglando el problema
-====== Chapter Navigation ======+====== Navegación de capítulos ======
  
-**Previous Chapter: [[slackbook:tracking_updates|Keeping Track of Updates]]**+**Capítulo anterior: [[es:slackbook:tracking_updates|Mantener un registro de las actualizaciones]]**
  
  
-====== Sources ======+====== Fuentes ======
 <!-- If you copy information from another source, then specify that source --> <!-- If you copy information from another source, then specify that source -->
-  * Original source: [[http://www.slackbook.org/beta]] \\+  * Fuente original: [[http://www.slackbook.org/beta]] \\
 <!-- Authors are allowed to give credit to themselves! --> <!-- Authors are allowed to give credit to themselves! -->
-  * Originally written by Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson+  * Escrito originalmente por Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson
 <!-- * Contrbutions by [[wiki:user:yyy | User Y]] --> <!-- * Contrbutions by [[wiki:user:yyy | User Y]] -->
 +* Traducido por [[wiki:user:serloz | Sergio]]
 <!-- Please do not modify anything below, except adding new tags.--> <!-- Please do not modify anything below, except adding new tags.-->
 <!-- You must also remove the tag-word "template" below. Otherwise your page will not show up in the Table of Contents --> <!-- You must also remove the tag-word "template" below. Otherwise your page will not show up in the Table of Contents -->
 {{tag>slackbook kernel}} {{tag>slackbook kernel}}
 es:slackbook:linux_kernel ()