======= Cambios ======= **Cambios mínimos necesarios para compilar el kernel.** .. contents:: Contenido :depth: 2 Intro ===== El documento fué diseñado con el objeto de proporcionar una lista mínima, con el *nivel de versión* adecuado para el *software* necesario en *kernels 4.x*. El documento está basado en el *archivo de cambios* para *kernels 2.0*. Por lo tanto conserva el mismo *crédito(Jared Mauch, Axel Boldt, Alessandro Sigala, e innumerables usuarios alrededor del mundo)* que el archivo origilal. Requisitos mínimos ================== Actualizar como **mínimo** este *software*, antes de pensar que ha sido encontrado un *bug!*. Si no se está seguro de la versión corriendo en el sistema, los comandos sugeridos deberían ayudar. De nuevo, recordar que *la lista* asume un kernel Linux funcianal, corriendo en la máquina. Igualmente, no todas las herramientas son necesarias, en todos los sistemas; obviamente, de carecer de *hardware* ISDN, no es necesaria la herramienta ``isdn4k-utils``, por ejemplo. :: ====================== =============== ======================================== Program Minimal version Command to check the version ====================== =============== ======================================== GNU C 3.2 gcc --version GNU make 3.81 make --version binutils 2.20 ld -v util-linux 2.10o fdformat --version module-init-tools 0.9.10 depmod -V e2fsprogs 1.41.4 e2fsck -V jfsutils 1.1.3 fsck.jfs -V reiserfsprogs 3.6.3 reiserfsck -V xfsprogs 2.6.0 xfs_db -V squashfs-tools 4.0 mksquashfs -version btrfs-progs 0.18 btrfsck pcmciautils 004 pccardctl -V quota-tools 3.09 quota -V PPP 2.4.0 pppd --version isdn4k-utils 3.1pre1 isdnctrl 2>&1|grep version nfs-utils 1.0.5 showmount --version procps 3.2.0 ps --version oprofile 0.9 oprofiled --version udev 081 udevd --version grub 0.93 grub --version || grub-install --version mcelog 0.6 mcelog --version iptables 1.4.2 iptables -V openssl & libcrypto 1.0.0 openssl version bc 1.06.95 bc --version Sphinx\ [#f1]_ 1.3 sphinx-build --version ====================== =============== ======================================== .. tip:: Todas las distribuciones no empaquetan aplicaciones con el mismo nobre exacto. Por ejemplo, ``udev`` en sistemas *Fedora*, es controlado a través de *systemd* … Por lo que habrá que *ajustar* a lo especificado en la distribución pertinente. Compilación del kernel ====================== **GCC** Los requisitos para la versión del kernel podrían variar en función del tipo de CPU de la commputadora. **Make** Es necesario la versión ``3.81`` o posterior para construir el kernel. **Binutils** El *sistema de construcción* desde la versión ``4.13``, está utilizando archivos resumidos (‘ar T’) en lugar del enlazado incremental (‘ld -r’) en los pasos intermedios para la construcción de archivos de *objeto* ``.o``. Requiere ``binutils 2,20`` o posteriores. **Perl** Será necesario ``perl 5`` y los módulos lsiguientes: :: Getopt::Std File::Basename File::Find **BC** Para construir kernels 3.10 y posteriores, necesaria esta aplicación ``bc``. **OpenSSL** Los módulos de *firmado digital* y la gestión de certificados *externos*, utilizan la aplicación *OpenSSL* y la librería *criptográfica*, para crear la llave y generar la firma digital. Es necesaria la aplicación para construir kernels ``3.7`` en adelante, si el módulo de *firmado* está activado. También es necesario los *paquetes de desarrollo* de ``openssl`` para constuir kernels ``4.3`` y posteriores. Utilidades de sistema ===================== Cambios en la *arquitectura* DevFS ha quedado obsoleto, en favor de `udev `_ El soporte para ``32-bit`` está ahora en su lugar. La documentación de Linux para las funciones, está siendo incorporada a los archivos de código, junto a la definición de la fuente. Estos comentarios, podrán ser combinados con archivos ``ReST`` en el directorio ``Documentation/``, el cuál podrá ser más tarde convertido a ``PostScript, HTML, LaTex, ePUB, y PDF``. Para convertir archivos desde el formato ``ReST`` a otro formato a elegir, es necesaria la aplicación ``Sphinx``. **Util-linux** Las nuevas versiones de ``util-linux`` proporcionan soporte ``fdisk``\ para *grandes discos*, soporte a nuevas opciones de montaje, reconocen más tipos de particiones, tiene un ``fdformat`` el cuál trabaja con kernels ``2.4`` y similares. Probablemente se querrá actualizar. **Ksymoops** De suceder *lo impensable*, podría ser necesaria la herramienta para decodificar el kernel; en la mayoría de casos no será necesario. Generalmente es preferible construir el kernel con ``CONFIG_KALLSYMS`` para producir *volcados* legibles, que puedan ser utilizados *tal-cual* -ésto suele producir mejores salidas que ``ksymoops``. Si por alguna razón, el kernel no fue construido con ``CONFIG_KALLSYMS`` y no hay forma de reconstuir y reproducir el *Oops* con esta opción, entonces será posible decodificar estos *Oops* con ``ksymoops``. **Module-init-tools** Un nuevo *cargador* de módulos en el kernel, que requiere ``module-init-tools``. Es *retrocompatible* con las series de kernels ``2.4.x``. **Mkinitrd** Éste cambia a ``/lib/modules``, también necesitará ser actualizado. **E2fsprogs** La nueva version de ``E2fsprogs`` arregla varios errores en ``fsck`` y ``debugfs``. Obviamente, es buena idea actualizarlo. **JFSutils** El paquete ``JFSutils``, contiene las utilidades para el sistema de ficheros. Están disponibles las siguientes utilidades: - ``fsck.jfs`` inicia la reproducción del *log* de transacción y, comprueba y repara un formato de partición JFS. - ``mkfs.jfs`` crea un formato de partición JFS. - También disponibles otras utilidaes de sistemas de archivo, en este paquete. **Reiserfsprogs** El paquete *reiserfsprogs*, debería utilizarse para ``reiserfs-3.6.x`` -kernels de Linux ``2.4.x``. Es un paquete combinado conteniendo versiones funcionales de ``mkreiserfs``, ``resize_reiserfs``, ``debugreiserfs`` y ``reiserfsck``. Estas utilidades sirven tanto para ``i386`` como en plataforma *alfa*\ (x86_64?). **Xfsprogs** La última versión de ``xfsprogs`` contiene ``mkfs.xfs``, ``xfs_db`` y las utilidades ``xfs_repair``, entre otras. Para los sistemas de archivo ``XFS``. Es independiente de la *arquitecxtura* y, cualquier versión desde ``2.0.0`` en adelante debería poder trabajar correctamente con ésta versión del código XFS del kernel -es recomendable ``2.6.0`` y posteriores, debido a mejoras significativas. **PCMCIAutils** ``PCMCIAutils`` reemplaza a ``pcmcia-cs``. Configura de forma apropiada los zócales PCMCIA, durante el arranque del sistema, carga los módulos apropiados para dispositivos ``16-bit`` PCMCIA, si el kernel ha sido *modularizado* y es utilizado el subsistema *conexión en caliente*. **Quota-tools** Es necesario el soporte para ``32bit uid`` y ``gid``, si se pretende utilizar la nueva versión ``2`` de ``quota``. Versiónes ``3.07`` de *Quota-tools* y posteriores, tienen este soporte. Utilizar las versiones recomendadas o *nuevas*, provistas en la tabla de arriba. **Intel IA32 microcode** Ha sido añadido el controlador, para permitir actualizar el *microcódigo* intel IA32, accesible como un dispositivo normal de carácteres (misc). De no estar utilizando ``udev`` podría ser necesario: :: mkdir /dev/cpu mknod /dev/cpu/microcode c 10 184 chmod 0644 /dev/cpu/microcode Usuario ``root`` para poder hacer esto. Probablemente se requiera la utilidad ``microcode_ctl`` en el espacio de usuario, para poder utilizarlo. **udev** ``udev`` es una aplicación en el espacio de usuario, para poblar ``/dev`` dinámicamente, con sólo entradas de dispositivos presentes en el sistema. ``udev`` reemplaza la funcionalidad básica de ``devfs``; al mismo tiempo, permite el *nombrado persistente*, para dispositivos. **FUSE** Necesita ``libfuse`` versión ``2.4.0`` o posterior. El mínimo *absoluto* es ``2.3.0``, pero opciones de montaje ``direct_io`` y ``kernel_cache`` no funcionarán. Networking ========== **Cambios generales** De tener necesidades avancadas para la configuración de red, debería considerarse el uso de *herramientas de red* a partir de ``ip-route2``. **Filtro de paquetes /NAT** El código para el filtrado de paquetes y *NAT*, utilizan las mismas herramientas que la serie de *kernels 2.4.x*\ (``iptables``). Incluyen de igual forma retro-compatibilidad con módulos, para ``2.2.x`` en ``ipchins`` y ``2.0.x`` en ``ipfwadm``. **PPP** El driver PPP ha sido reestructurado para soportal *multienlace(multilink)* y para activarlo y poder operar sobre distintas *capas media*. Si estulizado PPP, debería actualizarse ``pppd``, como mínimo a la versión ``2.4.0`` Si no se utiliza ``udev``, debería utilizarse el archivo de dispositivo ``/dev/ppp`` el cuál podrá crearse con: :: mknod /dev/ppp c 108 0 como root(administrador). **Isdn4k-utils** Debido a los cambios en el tamaño del campo *número de teléfono*, ``Isdn4k-utils`` necesita ser recompilado -o preferiblemente actualizado. **NFS-utils** En los *antiguos kernels 2.4 y anteriores*, el servidor NFS, necesitaba conocer al *cliente* capaz de tener acceso a los archivos via NFS. Esta información sería dada al kernel, por ``mountd``, cuando el *cliente* montase el *sistema de archivos*, o por ``exportfs`` durante el arranque. ``exportfs`` tomaría la información de *clientes activos* ``/var/lib/nfs/rmtab``. Esta aproximación es frágil, puesto que depende de que ``rmtab`` sea correcto, lo cual no era siempre fácil; en particular al intentar implementar el *fail-over* -conmutación por error. Incluso funcionando correctamente el sistema, ``rmtab`` sufre el tener que recupera, cantidades ingentes de *viejas entradas*, que nunca fueron borradas. En kernels modernos, aparece la opción de *informar el kernel* a ``mountd``, cuando recibe una petición desde un *host* desconocido, ``mountd`` podrá exportar la información apropiada al kernel. Esto retira las dependencias en ``rmtab``, y significa que el kernel únicamente necesita saber sobre los *clientes en activo*. Para activar esta nueva funcionalidad, es necesario: :: mount -t nfsd nfsd /proc/fs/nfsd Antes de correr ``esportfs`` o ``mountd``. Es recomendable que todos los servicios NFS, sean protegidos con un *cortafuegos* donde sea posible. **mcelog** En kernels ``x86``, la utilidad ``mcelog`` es necesaria para procesar y leer los eventos de *comprovaciones de máquina*, cuando ``CONFIG_X86_MCE`` sea activado. Estos mce -eventos de *comprovaciones de máquina* (machine check events), son errores reportados por la CPU. Procesarlos es mas que recomendable. Documentación del kernel ======================== **Sphinx** Por favor, referir a ``sphinx_install`` en ``Documentation/doc-guide/sphinx.rst`` para detalles sobre requisitos de *Sphinx*. Obtener *software* actualizado ============================== Compilación del kernel ^^^^^^^^^^^^^^^^^^^^^^ - `gcc `_ - `Make `_ - `Binutils `_ - `OpenSSL `_ Utilidades de sistema ^^^^^^^^^^^^^^^^^^^^^ **Util-linux** - https://www.kernel.org/pub/linux/utils/util-linux/ **Ksymoops** - https://www.kernel.org/pub/linux/utils/kernel/ksymoops/v2.4/ **Module-Init-Tools** - https://www.kernel.org/pub/linux/utils/kernel/module-init-tools/ **Mkinitrd** - https://code.launchpad.net/initrd-tools/main **E2fsprogs** - http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.29.tar.gz **JFSutils** - http://jfs.sourceforge.net/ **Reiserfsprogs** - http://www.kernel.org/pub/linux/utils/fs/reiserfs/ **Xfsprogs** - ftp://oss.sgi.com/projects/xfs/ **Pcmciautils** - https://www.kernel.org/pub/linux/utils/kernel/pcmcia/ **Quota-tools** - http://sourceforge.net/projects/linuxquota/ **Intel P6 microcode** - https://downloadcenter.intel.com/ **udev** - http://www.freedesktop.org/software/systemd/man/udev.html **FUSE** - http://sourceforge.net/projects/fuse **mcelog** - http://www.mcelog.org/ Networking ^^^^^^^^^^ **Point To Point Protocol** - ftp://ftp.samba.org/pub/ppp/ **Isdn4k-utils** - ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/ **NFS-utils** - http://sourceforge.net/project/showfiles.php?group_id=14 **Iptables** - http://www.iptables.org/downloads.html **Ip-route2** - https://www.kernel.org/pub/linux/utils/net/iproute2/ **OProfile** - http://oprofile.sf.net/download/ **NFS-Utils** - http://nfs.sourceforge.net/ - `Sphinx `_