You are on page 1of 4

LPI-201

Resumo: Tpico 201 O Kernel do Linux 201.1 Componentes do kernel O papel do kernel identificar e controlar a comunicao com o hardware, administrar os processos em execuo a comunicao de rede, etc. O Linux utiliza um Kernel monoltico que agrega todas as funes dentro de um nico processo, diferente de um micro-kernel que delega cada funo especfica a processos derivados. O kernel do Linux, usa uma estrutura chamada modular onde todas as funes no precisam estar todos tempo carregadas na memria mas apenas quando forem usadas. As sufixos mais comuns do kernel so: rc release candidate (prepatch). Apenas as verses com trs nmeros podem receber uma patch rc (2.6.30) no devendo ser aplicadas em verses com quatro nmeros. mm representa modificaes realizadas pelo desenvolvedor Andrew Morton, e so geralmente mais experimentais que as modificaes feitas na verso oficial do kernel. A verso do kernel composta de 4 nmeros: 2 Verso principal apenas alteradas quando ocorrem mudanas radicais na estrutura do kernel 6 Nmero de reviso principal 30 Nmero de reviso secundrio incluso de novos recursos 4 Correes urgentes O cdigo fonte do kernel dever ser mantido no diretrio /usr/src com a identificao da verso (linux-2.6.30). Pastas e arquivos: Documentao /usr/src/linux/Documentation Parmetros aceitos kernel-parameters.txt Gerao do arquivo de imagem /usr/src/linux/arch/x86/boot Imagens do kernel: zImage mximo de 512 Kb bzImage no possui limitao de tamanho 201.2 Compilao do kernel Etapas para personalizao do kernel: Configurao Compilao Instalao Pr-requisitos para configurao/compilao: Compilador gcc, make e bibliotecas ncurses, Qt e Gtk. 1

Pacotes das distros: Debian: apt-get install build-essential Red Hat: yum group install Development Tools e yum install kernel-devel kernelheaders Configurao: make distclean apaga qualquer arquivos de configurao de compilaes anteriores. Usado antes de descompactar o fonte do kernel. make mrproper apaga todos arquivos (configurao/compilao) que foram gerados com uma compilao anterior make clean apaga apenas os arquivos gerados em uma compilao anterior preservando os arquivos de configurao make oldconfig recupera as informaes do arquivo .config preexistente e pergunta apenas sobre as novas opes. make config no recomendado, est presente em todas as distribuies make menuconfig interface ncurses make xconfig requer suporte ao sistema Xwindow (make gconfig) O resultado de todos estes comandos ser a criao do arquivo .config que conter a configurao selecionada do kernel para a compilao. Compilao: make dep cria dependncias. No mais necessrios a partir da verso 2. make bzImage gera a imagem do kernel geralmente em arch/i386/boot/bzImage. Este arquivo dever ser copiado para o diretrio /boot/ e renomeado com a seguinte estrutura: vmlinuz-2.6.... Tambm copiar o arquivo /boot/System.map-2.6.... A opo -j4 divide a compilao em 4 processos caso o processador suportar este recurso. make modules compila os mdulos selecionados make modules_install instala os mdulos em /lib/modules. Todos estes comandos podem ser executados de uma nica vez: make clean dep bzImage modules install modules_install O arquivo initrd usado pelo kernel para carregar drivers antes do incio do boot. Ele criado atravs do comando mkinitrd ou mkinitramfs. A execuo deste comando varia de acordo com a distribuio usada: Opes do comando mkinitrd: -c Elimina a rvore de diretrios usada para a criao do arquivo anterior -k verso do kernel -m lista mdulos a incluir separados por :. -o nome do Initial Ramdisk a ser criado Ex: mkintrd -c -k 2.6.30 -m xfs -o /boot/initrd-2.6.30.gz Red Hat: mkinitrd -v /boot/initrd-2.6.34 2.6.34 Debian: mkinitrd -o /boot/initrd-2.6.34 /lib/modules/2.6.34

Aps a compilao e instalao do kernel, o bootloader deve ser atualizado: LILO Atualizar o arquivo /etc/lilo.conf e executar o comando lilo. Grub Editar o arquivo /boot/grub/menu.lst 201.3 Aplicao de Patches no Kernel Patches so trechos de cdigo que contm correes, aprimoramento de cdigo antigo e incluso de novos recursos. Os patches de 4 nmeros (2.6.34.5) devero ser removidos antes da aplicao do patch posterior. /usr/src/linux/# bzip2 -dc /usr/src/patch-2.6.34.5 |patch -p1 -R bzcat patch-2.6.34.5 |patch -p1 -R Uma vez removido o patch, o prximo poder ser aplicado: /usr/src/linux/# bzip2 -dc /usr/src/patch-2.6.34.6 |patch -p1 bzcat patch-2.6.34.6 |patch -p1 201.4 Empacotamento do kernel Comandos: make rpm-pkg: gera um pacote rpm compilado com cdigo fonte make binrpm-pkg: gera um pacote rpm compilado make deb-pkg: gera um pacote deb compilado make tar-pkg: gera um arquivo tar make targz-pkg/make tarbz2-pkg: gera um arquivo tar compactado 201.5 Controlar/investigar os mdulos do kernel durante sua execuo: uname Usado para obter informaes do kernel -r verso do kernel (indica o nome do diretrio lib/modules -m nome da mquina/arquitetura -i tipo do processador -n nome da mquina na rede -p Processador -o Sistema operacional -s nome do kernel -v verso de compilao O comando uname extrai estas informaes de arquivos criados pelo kernel em /proc/sys/kernel. modprobe carrega o mdulo especificado e os mdulos dependentes informados no arquivo /lib/modules/verso-kernel/modules.dep. Este arquivo atualizado atravs do comando depmod -a. modprobe modulo -r descarrega o mdulo especificado e suas dependncias desde que este no esteja sendo usado. 3

insmod apenas carrega o mdulo especificado sem analisar as dependncias rmmod descarrega o mdulo informado (sem analisar as dependncias) caso no esteja sendo usado. lsmod lista os mdulos carregados Module Size Used by binfmt_misc 8356 1 savage 30652 2 drm 160736 3 savage snd_via82xx 23608 2 gameport 11368 1 snd_via82xx modinfo mostra a descrio, o arquivo, o autor, a licena, a identificao, as dependncias e os parmetros para o mdulo solicitado. -p: lista apenas as opes aceitas pelo mdulo.

modinfo lp filename: /lib/modules/2.6.31-22-generic-pae/kernel/drivers/char/lp.ko license: GPL alias: char-major-6-* srcversion: 84EA21D13BD2C67171AC994 depends: parport vermagic: 2.6.31-22-generic-pae SMP mod_unload modversions 586TSC parm: parport:array of charp parm: reset:bool alias as linhas comeadas com alias mostram todas as identificaes de hardware correspondestes ao mdulo em questo que acarretar no carregamento do respectivo mdulo.

/etc/modprobe.d/ os parmetros personalizados podem ser carregados quando inseridos no arquivo modprobe.conf ou um arquivo individual dentro deste diretrio. Ex: modprobe snd-hda-intel model=3stack modules/modprobe.conf options snd-hda-intel model=3stack Tambm possvel criar nomes alternativos para os mdulos atravs de alias dentro destes arquivos de configurao: alias sound-slot-0 snd_hda_intel modprobe.d$ cat open-vm-tools.conf install pcnet32 /sbin/modprobe -q --ignore-install vmxnet; /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS; /bin/true;

You might also like