informatica:sistemas_operativos:linux:kernel
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:sistemas_operativos:linux:kernel [2021/05/18 16:45] – [lsmod] tempwin | informatica:sistemas_operativos:linux:kernel [2021/05/18 17:19] (actual) – [Generación del disco inicial de RAM] tempwin | ||
|---|---|---|---|
| Línea 38: | Línea 38: | ||
| - Selección de opciones ('' | - Selección de opciones ('' | ||
| - Guardar opciones ('' | - Guardar opciones ('' | ||
| - | - Compilar | + | - Compilación |
| + | - Instalación | ||
| + | ==== Extracción de fuentes ==== | ||
| Se suele extraer en ''/ | Se suele extraer en ''/ | ||
| Línea 48: | Línea 50: | ||
| Finalmente las fuentes quedarán en ''/ | Finalmente las fuentes quedarán en ''/ | ||
| + | |||
| + | ==== Limpieza ==== | ||
| Si no fuese la primera vez que compilamos ese kernel, realizamos una limpieza: | Si no fuese la primera vez que compilamos ese kernel, realizamos una limpieza: | ||
| Línea 61: | Línea 65: | ||
| '' | '' | ||
| + | ==== Opciones de compilación ==== | ||
| Para seleccionar las opciones de compilación, | Para seleccionar las opciones de compilación, | ||
| Línea 92: | Línea 96: | ||
| Los cambios se guardarán en el '' | Los cambios se guardarán en el '' | ||
| + | |||
| + | ==== Compilación ==== | ||
| Finalmente, la compilación del kernel se realiza con: | Finalmente, la compilación del kernel se realiza con: | ||
| Línea 104: | Línea 110: | ||
| make modules_install | make modules_install | ||
| </ | </ | ||
| + | |||
| + | ==== Instalación ==== | ||
| Finalmente " | Finalmente " | ||
| Línea 112: | Línea 120: | ||
| Este último comando crea una nueva entrada de configuración en el GRUB, crea el fichero '' | Este último comando crea una nueva entrada de configuración en el GRUB, crea el fichero '' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Parches ===== | ||
| + | |||
| + | Es raro tener que aplicar parches al kernel ya que en el día a día el kernel lo vamos manteniendo a través de repositorios y herramientas de paquetería como '' | ||
| + | |||
| + | Los parches pueden solucionar errores de seguridad, añadir características nuevas, etc. | ||
| + | |||
| + | Si queremos hacerlo, en la página [[https:// | ||
| + | |||
| + | ==== Aplicar parches ==== | ||
| + | |||
| + | Simulación: | ||
| + | |||
| + | < | ||
| + | bzip2 -dc patch.X.Y.bz2 | patch -p1 --dry-run | ||
| + | </ | ||
| + | |||
| + | Si todo sale bien, podemos aplicar el parche: | ||
| + | |||
| + | < | ||
| + | bzip2 -dc patch.X.Y.bz2 | patch -p1 | ||
| + | </ | ||
| + | |||
| + | Si el parche está comprimido en '' | ||
| + | |||
| + | < | ||
| + | gunzip -c patch.X.Y.gz | patch -p1 --dry-run | ||
| + | gunzip -c patch.X.Y.gz | patch -p1 | ||
| + | </ | ||
| + | |||
| + | ==== Retirar parches ==== | ||
| + | |||
| + | La retirada de un parche aplicado se realiza con el mismo comando y la misma sintaxis a la que se le añade la opción '' | ||
| + | |||
| + | < | ||
| + | patch -p1 -R < patch-X-Y | ||
| + | </ | ||
| + | |||
| ===== Módulos ===== | ===== Módulos ===== | ||
| Línea 135: | Línea 183: | ||
| srcversion: | srcversion: | ||
| depends: | depends: | ||
| - | intree: | + | intree: |
| vermagic: | vermagic: | ||
| signer: | signer: | ||
| Línea 150: | Línea 198: | ||
| </ | </ | ||
| + | Lo más importante de esta salida es la ubicación del módulo ('' | ||
| ==== lsmod ==== | ==== lsmod ==== | ||
| Muestra los módulos en uso. | Muestra los módulos en uso. | ||
| ==== insmod ==== | ==== insmod ==== | ||
| + | |||
| + | Carga módulos en el kernel. | ||
| + | |||
| + | Se debe indicar al ruta completa del módulo. | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | No gestiona dependencias. | ||
| + | </ | ||
| + | |||
| + | |||
| + | Imaginemos que queremos cargar el módulo '' | ||
| + | |||
| + | < | ||
| + | $ modinfo vfat | ||
| + | filename: | ||
| + | author: | ||
| + | description: | ||
| + | license: | ||
| + | alias: | ||
| + | rhelversion: | ||
| + | srcversion: | ||
| + | depends: | ||
| + | intree: | ||
| + | vermagic: | ||
| + | signer: | ||
| + | sig_key: | ||
| + | sig_hashalgo: | ||
| + | </ | ||
| + | |||
| + | Ahí vemos que depende del módulo '' | ||
| + | |||
| + | < | ||
| + | $ modinfo fat | ||
| + | filename: | ||
| + | license: | ||
| + | rhelversion: | ||
| + | srcversion: | ||
| + | depends: | ||
| + | intree: | ||
| + | vermagic: | ||
| + | signer: | ||
| + | sig_key: | ||
| + | sig_hashalgo: | ||
| + | </ | ||
| + | < | ||
| + | insmod / | ||
| + | </ | ||
| + | |||
| + | Este ya no depende de ninguno, así que lo cargamos: | ||
| + | |||
| + | < | ||
| + | insmod / | ||
| + | </ | ||
| + | |||
| + | Y ahora podemos cargar '' | ||
| + | |||
| + | < | ||
| + | insmod | ||
| + | </ | ||
| + | |||
| ==== rmmod ==== | ==== rmmod ==== | ||
| + | |||
| + | Elimina módulos del kernel. | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | No gestiona dependencias. | ||
| + | </ | ||
| ==== modprobe ==== | ==== modprobe ==== | ||
| + | |||
| + | Carga o elimina módulos del kernel. | ||
| + | |||
| + | Gestiona dependencias. | ||
| + | |||
| + | Cargar: | ||
| + | |||
| + | < | ||
| + | modprobe [NOMBRE_MÓDULO] | ||
| + | </ | ||
| + | |||
| + | Eliminar: | ||
| + | |||
| + | < | ||
| + | modprobe -r [NOMBRE_MÓDULO] | ||
| + | </ | ||
| + | |||
| + | ===== Generación del disco inicial de RAM ===== | ||
| + | |||
| + | Históricamente, | ||
| + | |||
| + | Ya no se utilizan porque al compilar el kernel, se generan automáticamente cuando hacemos '' | ||
informatica/sistemas_operativos/linux/kernel.1621349118.txt.gz · Última modificación: por tempwin
