Está en la página 1de 9

EL Kernel Linux. Kernel monolitico. Engloba todos los servicios del sistema (embebidos).

Hay que recompilarlo para aa dirle una nueva funcionalidad y reiniciar el sistema para hacer efectivos los cambios. Las opciones estan marcadas como Y. Es recomendable cuando los dispositivos no cambi an. Kernel modular. Los servicios son compilados como modulos, con lo cual se pueden iniciar y parar sin tener que reiniciar el sistema. Las opciones estan marcadas como M. Recomendable si us amos dispositivos removibles habitualmente. Kernel generico. Esta diseado para trabajar en todos los equipos posibles, con lo cual tiene habil itado la mayoria de los controladores cargando los modulos al detectar los dispo sitivos. El kernel compilado se encuentra en /boot, si no lo renombramos se llamara vmlin uz o bzImage. En /proc/config.gz suele estar el archivo de configuracion del Kernel precompila do instalado por la distribucion . Podemos copiarlo con zcat /proc/config.gz > /usr/src/linux/.config Herramientas de configuracion. Podemos usar diferentes aplicaciones para configurar el kernel. make config s preguntas que se nos make menuconfig leccionar las make nconfig s/ncurses. make xconfig . make gconfig tk+, dev-libs/glib y make oldconfig terior. El nuevo kernel En modo de texto, requiere ir respondiendo a la plantearan. Menu grafico. Podemos navegar a traves de el para se opciones pertinentes. Menu grafico basado en ncurses. Requiere sys-lib Menu grafico basado en qt. Requiere dev-qt/qtgui Menu grafico basado en gtk. Requiere x11-libs/g gnome-base/libglade. Requiere tener un archivo .config de un kernel an tendra las mismas opciones. Comandos.

make clean make mrproper make distclean te. make allnoconfig make defconfig make localmodconfig make modules make modules_install

Limpia las fuentes del Kernel. Limpia las fuentes del kernel mas profundamente. Limpia las fuentes del Kernel aun mas profundamen Deja el kernel sin ninguna opcion seleccionada. Establece la configuracion por defecto del Kernel. Solo compila los modulos. Compila los modulos. Copia los modulos a /lib/modules.

Obtener informacion sobre el hardware para compilar el kernel. Para tener informacion sobre el hardware usaremos lspci,lsusb, lshw,lshal o dmid ecode. Podemos ver los modulos cargados con lsmod. En la web http://kmuto.jp/debian/hcl/ podemos comparar el resultado de lspci -n para ver el modulo que le corresposponde a cada dispositivo. dmesg nos dara bastante informacion sobre el arranque del Kernel. cat /proc/cpuinfo nos dara informacion sobre el procesador. Gentoo requiere mantener el enlace simblico /usr/src/linux, el cual debe apuntar al ncleo actual. Portage puede actualizar el enlace simblico automticamente cuando instala una nuev a versin del ncleo. Todo lo que debemos hacer es agregar el parmetro symlink a la v ariable USE en /etc/make.conf. Podemos usar app-admin/eselect para modificar el enlace simblico. eselect kernel list Available kernel symlink targets: [1] linux-2.6.39-gentoo-r3 [2] linux-2.6.38-gentoo-r6 * Seleccionamos el kernel con: eselect kernel set 1 Compilacion. Bajamos el kernel desde https://www.kernel.org/ La numeracion del kernel consta de cuatro digitos. El primero se refiere a la version. Solo ha habido tres hasta ahora. En 1994 (versin 1.0), en 1996 (versin 2.0) y en 2011 (versin 3.0). El segundo corresponde a la subversion. Antes de la serie 2.6.x, los nmeros pares indicaban la versin estable y los impares la de desarrollo. Desde la version 2.6.x no hay gran diferencia entre los nmeros pares o impares c on respecto a las nuevas herramientas desarrolladas en la misma serie del ncleo. El tercer digito indica Indica nuevas revisiones menores del ncleo. Cambia cuando n uevas caracteristicas y drivers som soportados. El cuarto se usa para designar un error grave que requiere un arreglo inmediato.

En Gentoo podemos usar distintas versiones, con emerge -s sources veremos las fu entes disponibles. La mas usada es gentoo-sources. Podemos ver si hay una actualizacion disponible con emerge -pu gentoo-sources. S i existe una tendremos que borrar el enlace simbolico en /usr/src/linux. Partimos de la base de que usaremos make menuconfig para configurar el kernel. Una vez dentro del menu grafico podemos navegar con las flechas del teclado o us ar una letra para saltar a la opcion que comience con ella, resaltada en azul. Con ? obtendremos informacion, / para buscar, doble esc para salir y enter para entrar al submenu. Y para incluir la opcion en el kernel, N para excluirla y M para que sea modular . La opcion deprecated indica que en un futuro esa opcion sera eliminada del kernel. Veremos las secciones por separado Lo primero sera el nivel de compresion. Seccion General setup. General setup --> kernel compression mode gzip - Es el compresor por defecto. Tiene unos valores de compresin y descompresin intermedios y un tamao del kernel ms bien alto. bzip2 - La velocidad de compresin es intermedia. La descompresin es lenta. El tamao del kernel ser un 10% menor que con gzip. bzip2 usa una gran cantidad de memoria . lzma - proporciona la mayor compresin, pero es lento. El tamao del kernel ser aprox imadamente un 33% ms pequeo comparado con gzip. xz - utiliza el algoritmo de compresin lzma2, a travs de la biblioteca liblzma. Ti ene un mejor rendimiento que bzip2 (consume menos memoria y recursos de sistema) con mejores tasas de compresin. lzo - La compresin es muy poca, un 10% ms de tamao del kernel con respecto a gzip, lo que le hace ser el ms rpido. De mayor a menor compresin: xz > lzma > bzip2 > gzip > lzo De mayor a menor rapidez : lzo > gzip > bzip2 > lzma > xz Para usar lzo tendremos que instalar lzop. General setup --> Support for paging of anonymous memory Nos permite habilitar o deshabilitar la memoria swap.

General setup --> Control Group Support Optimizacin necesaria para habilitar el parche galbraith que mejora el desempeo mu ltitarea (Slo Kernel 2.6.38 o superior o con parche Mike galbraith aplicado). Aqui marcaremos:

Namespace cgroup subsystem Freezer cgroup subsystem Device Controller for cgroups Cpuset support nclude legacy /proc/<pid>/cpuset Resource counters Memory Resource Controller for Control Groups Memory Resource Controller Swap Extension Group CPU scheduler (y lo que hay dentro) General setup --> Automatic process group scheduling Parche galbraith que mejora el desempeo multitarea (Slo Kernel 2.6.38 o superior o con parche Mike galbraith aplicado)

General setup --> Optimize for size Optimiza GCC para obtener un kernel ms pequeo.

Seccion Enable the block layer. En esta seccin se puede habilitar/deshabilitar y seleccionar distintos block layers para el kernel. Optimizacin necesaria para habilitar el parche galbraith que mejora el desempeo mul titarea (Slo Kernel 2.6.38 o superior o con parche Mike galbraith aplicado) Enable the block layer --> IO schedulers --> <*> CFQ I/O scheduler (CFQ) Default I/O scheduler (CFQ) --> ( ) Deadline (X) CFQ ( ) No-op

Seccion Processor type and features. En esta seccin se configura todo lo relacionado con el procesador. Lo ms importante a configurar en esta seccin es: Processor type and features --> Processor family --> Elegiremos nuestro procesador. Processor type and features --> Maximum number of CPUs Ponemos el numero de cpus.

Processor type and features --> SMT (Hyperthreading) scheduler support Imprescindible para procesadores con Hyperthreading y desaconsejado para los que no lo tengan. Processor type and features --> Timer frequency --> Nos permite elegir la frecuencia del timer. 1000Hz valor recomendado para desktops (Y necesario para habilitar el parche gal braith que mejora el desempeo multitarea) 100Hz valor recomendado para servidores de muchos procesadores. Processor type and features --> Preemption Model --> (X) Preemptible Kernel (low-latency desktop) Optimizacin necesaria para habilitar el parche galbraith que mejora el desempeo mu ltitarea (Slo Kernel 2.6.38 o superior o con parche Mike galbraith aplicado). Para aprovechar esta mejora, hay que marcar como predeterminado: Lo que viene siendo equipo de baja latencia (tiempo corto de respuesta). Processor type and features --> Transparent Hugepage Support [*] Transparent Hugepage Support Transparent Hugepage Support sysfs defaults (always ) ---> ( ) always (X) madvise Elegimos madvise En realidad, las dos opciones son correctas, pero madvise es mucho menos "agresi va" y ofrece ms garantas. Con always ocurre lo contrario, es ms agresiva, pero ofre ce menos garantas. Esta parte es a eleccin de cada uno. Processor type and features --> Support for hot-pluggable CPUs Permite habilitar y deshabilitar procesadores o ncleos "al vuelo", si usamos esta caracterstica lo inclimos. Processor type and features --> [ ] Memtest Permite realizar test de memoria con memtest.

Seccion Bus options (PCI etc.). En esta seccin, podremos administrar las conecciones, Pci, Pci-e y los distintos buses. Lo ms importante a tener en cuenta de esta seccin: Seccion Bus options (PCI etc.) [*] PCI support Nos permite habilitar el soporte bus Pci. Seccion Bus options (PCI etc.)

[*] PCI Express support Nos permite habilitar el soporte bus Pci-Express. Imprescindible para tarjetas g rficas actuales. Seccion Bus options (PCI etc.) -*- PCI Express ASPM control Opcin que brinda un mejor control del consumo de energa en relacin al Bus PCI-E. Es ta opcin es muy importante a la hora de ahorrar energa, sobre todo en equipos portt iles. Seccion Networking support. Todo lo relacionado con redes se encuentra en esta seccin: wifi, wimax, bluetooth , radio, etc y las opciones relacionadas con los diferentes protocolos de red. Aqui marcaremos la opcion wireless y bluetooth si las vamos a usar. Seccion Device Drivers. Esta seccin nos permite seleccionar todos los componentes de nuestro equipo.

Device Drivers --> Generic Driver Options --> [*] Maintain a devtmpfs filesystem to mount at /dev [ ] Automount devtmpfs at /dev, after the kernel mounted the rootfs Los ficheros de dispositivo crticos estn disponibles cuanto antes en el proceso de inicio.

Seccion Device Drivers --> Multiple devices driver support --> Nos permite habilitar el soporte raid y lvm. [*] Network device support --> Tarjetas de red, wifi, adaptadores wifi usb y dems. Solo dejo marcado como * mi tarjeta re red. Device Drivers --> Input device support --> Dispositivos de entrada, tales como teclados, ratones, joysticks, tablets, touch screens. Device Drivers --> Multimedia support --> Capturadoras de video, sintonizadores de tdt/dvb , y adaptadores dab. Device Drivers --> <*> Sound card support --> <*> Advanced Linux Sound Architecture --> Todo lo relacionado con el sonido, tarjeta, midi, etc. Elegimos nuetsra tarjeta de audio. Yo desmarco el midi, secuenciador y todo lo q ue no usare. En la siguiente pagina podemos encontrar informacion sobre nuestra tarjeta de au dio. http://bugtrack.alsa-project.org/main/index.php/Matrix:Main Con el comando alsaconf podemos configurar la tarjeta.

Posteriormente hacemos emerge alsa-utils para instalar el audio y rc-update add a lsasound boot para aadirlo al inicio. Si queremos iniciarlo en este momento haremos /etc/init.d/alsasound start. Device Drivers --> Graphics support --> Support for frame buffer devices ---> Desactivamos todos los controladores, incluyendo VGA, Intel, nVidia y ATI) Soporte bsico para la consola. KMS lo usa. Marcamos ademas el soporte para scroll ing en la tty. Device Drivers --> Graphics support --> Console display driver support ---> [*] Enable Scrollback Buffer in System RAM -*- Framebuffer Console Support Ahora activamos el soporte para kms de nuestra tarjeta. Para Intel: Device Drivers ---> Graphics support ---> /dev/agpgart (AGP Support) ---> <*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support

Device Drivers ---> Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> Device Drivers ---> Graphics support ---> <*> Intel 8xx/9xx/G3x/G4x/HD Graphic [*] Enable modesetting on intel by default Ahora instalaremos xf86-video-intel Para Ati.

Device Drivers ---> Generic Driver Options ---> [*] Include in-kernel firmware blobs in kernel binary

Device Drivers ---> Graphics support --->

<*> Direct Rendering Manager ---> <*> ATI Radeon [M] Enable modesetting on radeon by default Con mi tarjeta Ati solo me funciona si marco Enable modesetting on radeon by def ault como modulo. Ahora instalamos xf86-video-ati y radeon-ucode Device Drivers ---> Graphics support ---> Maximum number of GPUs Como su nombre indica, nmero mximo de GPus. Esta opcin es especialmente importante para porttiles que llevan ms de una grfica y alternan entre ellas segn se requiera y para estaciones con varias gpus trabajando conjuntamente. Device Drivers ---> [*] USB support --> Usb en general, impresoras, modems wifi, pendrives, etc. Marcar dos elementos en particular: EHCI HCD (USB 2.0) support y[/color] xHCI HCD (USB 3.0) support el resto depende de lo que cada uno use. Device Drivers ---> < >MMC/SD/SDIO card support --> Lectores de tarjeta de memoria, (se refiere a los integrados, los de tipo USB se manejan en la seccin anterior) Device Drivers ---> [ ] Staging drivers --> En esta seccin se encuentran los controladores en estado experimental o con sopor te parcial, si tienes un dispositivo que no tiene soporte, puede que encuentres aqu.

Seccion File systems. En esta seccin se configura todo lo relacionado con Sistemas de archivos y tipos de particiones. Deben de estar marcadas como Y, de lo contrario el sistema no arrancara. Lo ms destacado en esta seccin es: Ext3 journalling file system support Soporte para ext3 si lo usamos. The Extended 4 (ext4) filesystem si lo usamos. CD-ROM/DVD Filesystems Marcar todas las opciones dentro de esta seccin. DOS/FAT/NT Filesystems Particiones Windows, msdos, vfat y nfts. Estas si las vam os a usar es preferible marcarlas como modulos.

Partition Types La mayora utilizamos particiones tipo PC BIOS, pero si dispones d e particiones Mac, Sun, BSD u otro tipo, las marcaremos aqu. File systems--> Pseudo Filesystems ---> [*] /proc file system support [*] Virtual memory file system support (former shm fs)

Seccion Virtualization. Si usamos las caractersticas de virtualizacin, como por ejemplo en mquinas virtuale s, esta seccin tendr que estar activa. Lo ms importante: Virtualizacion --> <*> Kernel-based Virtual Machine (KVM) support < > KVM for Intel processors support (NEW) < > KVM for AMD processors support (NEW) [ ] Audit KVM MMU (NEW) < > Host kernel accelerator for virtio net (EXPERIMENTAL) Para mquinas virtuales, elegir esta opcin y ajustar el tipo de procesador. Una vez hechos los cambios guradamos la configuracion y compilamos el kernel. Para aumentar la velocidad de compilacion podemos aadirle al comando make la opci on j mas el numero de procesadores mas 1. Para mi procesador con cuatro nucleos seria make -j5. Parchear el kernel. Descargamos el parche que queramos incluir y lo copiamos a la carpeta con las fue ntes del kernel (/usr/src/linux). Una vez all ejecutamos: patch -p1 < nombre-del-parche.diff y volvemos arecompilar el kernel.

También podría gustarte