Compilando um novo kernel no Linux
postado por nightnux - comentários
0
Autor: Jethro Tull Linux e-mail: jethrotull_linux@hotmail.com
- INDICE 1 - REQUISISTOS PARA A COMPILACAO DO KERNEL 2 - COMPILANDO UM NOVO KERNEL NO GNU/LINUX
-------------------------------------------------------------------------------
- OBSERVAÇÕES
1) O autor deste tutorial manteu o kernel atual que veio com o GNU/Linux Conectiva, pois se houvesse algum problema com a compilação do Kernel 2.4-XX novo, ele poderia usar o antigo Kernel para corrigir algum problema;
2) Foi compilado na distribuição GNU/Linux Conectiva;
3) Irei mostrar neste tutorial, um passo a passo de como compilar (gerar) o Kernel 2.4.XX;
4) Você deve ter noção dos comandos básicos do GNU/Linux, como copiar(cp), mover(mv), listar arquivos/diretorios (ls) etc. Se você quiser saber mais sobre os comandos do GNU/Linux, clique aqui...
5) Não desista caso algo dê errado, tente até você conseguir. Quando compilei pela primeira vez o Kernel do GNU/Linux quebrei a cabeça para conseguir. Seja persistente, tenha auto confiança e NUNCA DESISTA!
6) "LEIA OS FONTES" Veja a documentação do Kernel no diretório /usr/src/linux/Documentation
1 - REQUISISTOS PARA A COMPILACAO DO KERNEL
- Antes de atualizar o kernel para a versão 2.4.9, veja abaixo a relação mínima dos softwares necessários para a compilação correta do kernel 2.4.9
obs: uma instalação completa ou mesmo padrão dependendo da distro ja instala essa dependências, mas caso encontre algum erro e nao consiga iniciar a compilação por alguma dependência, checke se os aplicativos abaixos estão instalados, caso nao estejam os instale.Um bom site para procurar essas dependências é http://www.freshmeat.net - caso tenha duvidas sobre como instalar programas clique aqui...
SOFTWARE: Gnu C VERSAO: 2.91.66 PARA SABER A VERSAO ATUAL, DIGITE: gcc --version
SOFTWARE: Gnu make VERSAO: 3.77 PARA SABER A VERSAO ATUAL, DIGITE: make --version
SOFTWARE: binutils VERSAO: 2.9.1.0.25 PARA SABER A VERSAO ATUAL, DIGITE: ld -v
SOFTWARE: util-linux VERSAO: 2.10o PARA SABER A VERSAO ATUAL, DIGITE: fdformat --version
SOFTWARE: modutils VERSAO: 2.4.2 PARA SABER A VERSAO ATUAL, DIGITE: insmod -V
SOFTWARE: e2fsprogs VERSAO: 1.19 PARA SABER A VERSAO ATUAL, DIGITE: tune2fs
SOFTWARE: reiserfsprogs VERSAO: 3.x.0j PARA SABER A VERSAO ATUAL, DIGITE: reiserfsck 2>&1|grep reiserfsprogs
SOFTWARE: pcmcia-cs VERSAO: 3.1.21 PARA SABER A VERSAO ATUAL, DIGITE: cardmgr -V
SOFTWARE: PPP VERSAO: 2.4.0 PARA SABER A VERSAO ATUAL, DIGITE: pppd --version
SOFTWARE: isdn4k-utils VERSAO: 3.1pre1 PARA SABER A VERSAO ATUAL, DIGITE: isdnctrl 2>&1|grep version
2 - COMPILANDO UM NOVO KERNEL NO GNU/LINUX
- Logue-se com seu usuário normal;
- Acesse a Internet e digite no seu browser(navegador web= Netscape, Konqueror,Opera, Mozilla, Galeon, Lynx etc) predileto a URL:
http://www.kernel.org -
- Na página do www.kernel.org, escolha a forma que você deseja baixar o arquivo do Kernel 2.4.XX que pode ser via o protocolo HTTP ou o protocolo FTP;
- Acesse na página do www.kernel.org - o diretório "kernel", "v2.4" e baixe o arquivo "linux-2.4.XX.tar.gz";
- Aguarde algumas horas para que o arquivo do Kernel 2.4.9 seja copiado para o diretório que você escolheu na sua máquina;
- Logo após o arquivo ser totalmente copiado para o seu computador, desconecte-se da Internet e logue-se com o super-usuário (root);
- Estando logado como root no seu computador, deverá estar o prompt mais ou menos igual ao abaixo: [root@chicago /]#
- Acesse (entre) no diretório aonde você baixou o arquivo "linux-2.4.XX.tar.gz" [root@chicago /]#cd /diretorio-aonde-esta-o-arquivo
- Mova-o para o diretório /usr/src [root@chicago /diretorio-aonde-esta-o-arquivo]#mv linux-2.4.XX.tar.gz /usr/src
- Vamos acessar o diretório /usr/src [root@chicago /diretorio-aonde-esta-o-arquivo]#cd /usr/src
- Estando no diretório /usr/src exclua o LINK SIMBOLICO "linux" [root@chicago /src]#rm linux
- Agora, devemos descompactar o código fonte do Kernel 2.4.9 [root@chicago /src]#tar -zxvf linux-2.4.XX.tar.gz
- Note que será criado o diretório "linux". Vamos renomeá-lo [root@chicago /src]#mv linux linux-2.4.9XX
- Vamos criar um novo LINK SIMBOLICO chamado "linux" apontando para o diretório "linux-2.4.XX" [root@chicago /src]#ln -s linux-2.4.9 linux
- Vamos vizualizar os arquivos/diretórios que voce deve ter em /usr/src [root@chicago /src]#ls
linux linux-2.4.26 linux-2.4.27 rpm obs: linux-2.4.26 --> kernel antigo
- OK, vamos em frente. Acesse o LINK SIMBOLICO "linux"
[root@chicago /src]#cd linux
- Estando dentro do LINK SIMBOLICO "linux", vamos começar a gerar a imagem do Kernel 2.4.9 digitando uma das 2 opções abaixo:
A três maneiras de se compilar o kernel visualmente são elas:
1 OPÇÃO: veja imagem acima [root@chicago /linux]#make menuconfig DESCRIÇÃO: Se você digitar "make menuconfig" você poderá configurar as opções do Kernel 2.4.XX através de menus em modo texto (console).

2 OPÇÃO: veja imagem acima [root@chicago /linux]#mane xconfig DESCRIÇÃO: Se você digitar "make xconfig" você poderá configurar as opções do Kernel 2.4.9 através de uma interface gráfica com botões e menus. Você pode digitar esta opção se estiver em um ambiente gráfico (WindowMaker, Kde, Gnome etc).
3 OPÇÃO [root@chicago /linux] make config - essa opção é feita totalmente em modo texto, não é muito indicado caso você seja iniciante.
Exemplo utilizando o make menuconfig
- Na tela que surgir, selecione as opções que você achar necessário. Veja abaixo alguns aspectos antes de começar a selecionar cada item:
1 - = compilado dentro do kernel por padrão 2 - [ ] = não compilado 3 - = compilado como módulo 4 - <*> = compilado dentro do kernel 5 - < > = não compilado
- Quando se tem opções como colchetes [ ], você tem duas opções:
1) compilado dentro do kernel por padrão 2) não compilar
- Já quando se tem opções como < >, você pode: 3) compilar como módulo 4) compilar dentro do kernel 5) não compilar
- Uma descrição de algumas opções do kernel:
Code maturity level options Prompt for development and/or incomplete code/drivers Selecionando esta opção, você estará habilitando o suporte à dispositivos em desenvolvimento ou experimentais, podendo o seu kernel ficar instável. Não selecione esta opção a menos que você precise de algum suporte específico.
Loadable module support Enable loadable module support Selecionando esta opção, você poderá compilar parte do kernel como módulos separados que poderão ser carregados posteriormente no BOOT do PC. Selecione esta opção pois ela poderá ser útil no futuro.
General setup Kernel math emulation Selecione esta opção, caso você tenha um PC 386 ou um 486SX sem co-processador.
Networking support Esta opção é relacionada com o suporte à redes, é recomendável selecioná-la.
Limit memory to low 16MB Não selecione esta opção, a menos que você tenha uma motherboard (placa mãe) antiga, incapaz de reconhecer a memória acima de 16Mb.
PCI bios support Diga Sim se o seu micro tiver placas PCI.
System V IPC É recomendável selecionar esta opção, IPC é um protocolo de comunicação entre processos, usado por alguns programas.
Kernel support for ELF binaries Selecione esta opção, pois o ELF é o novo formato de executáveis no Linux. Se você não selecionar esta opção, você não conseguirá rodar quase nada no em seu PC.
Processor type Esta opção, trata do tipo de processador instalado em seu PC. Se processador for um Pentium, escolha "Pentium Classic", se for um Pentium II escolha "Pentium-Pro/ Celeron/Pentium-II" etc.
Floppy, IDE, and other block devices Normal floppy disk support Selecione esta opção para seu PC ter suporte ao uso de disquetes.
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support Selecione esta opção para habilitar o suporte à dispositivos IDE.
Use old disk-only driver on primary interface Selecione esta opção apenas se você possui um winchester muito antigo, como MFM ou RLL.
Include IDE/ATAPI CDROM support Selecione esta opção caso você possua um CD-ROM e sua interface for IDE.
Include IDE/ATAPI TAPE support Selecione esta opção caso você possua uma unidade de fita IDE.
Include IDE/ATAPI FLOPPY support (new) Selecione esta opção apenas se voce tiver um Floppy IDE.
SCSI emulation support Não selecione esta opção, a menos que você tenha algum dispositivo IDE que deva ter suporte SCSI, como por exemplo gravadores de CD.
Support removable IDE interfaces (PCMCIA) Selecione esta opção caso esteja usando o GNU/Linux em um em um notebook.
dditional Block Devices Loopback device support Não selecione esta opção, pois o Loopback é usado para se poder montar um arquivo como se fosse um filesystem completo. Se for útil para você, selecione.
Multiple devices driver support Não selecione esta opção, pois possibilita montar mais de um dispositivo físico (por exemplo, 2 winchesters) como semdo um único filesystem (sistema de arquivo). Se for útil para você, selecione.
RAM disk support Não selecione esta opção, pois possibilita a criação de um disco em RAM. É normalmente usado quando você gera um kernel para ser inserido em um disquete. Se for útil para você, selecione.
XT harddisk support Não selecione esta opção, a menos que você tenha um winchester antigo MFM ou RLL com uma placa controladora não IDE. Se for útil para você, selecione.
Networking options Network firewalls Não selecione esta opção, a menos que você esteja montando uma máquina com a função de firewall. Se for útil para você, selecione.
TCP/IP networking Selecione esta opção, mesmo que sua máquina não esteja interligada em rede, vários programas usam o protocolo TCP/IP para comunicação entre processos.
IP: forwarding/gatewaying Selecione esta opção apenas se sua máquina tiver a função de um roteador em uma rede de computadores.
IP: multicasting Não é necessária a seleção desta opção. Se for útil para você, selecione.
IP: syn cookies Selecione esta opção, pois previne sua máquina de um tipo de ataque conhecido como Syn Flood.
IP: accounting Não selecione esta opção, a menos que você precise das estatisticas geradas sobre o acesso à rede.
IP: optimize as router not host Não selecione esta opção, a menos sua máquina tiver a função de um roteador em uma rede de computadores.
IP: tunneling Não é necessária a seleção desta opção. Se for útil para você, selecione.
IP: PC/TCP compatibility mode IP: Reverse ARP IP: Disable Path MTU Discovery (normally enabled) IP: Drop source routed frames IP: Allow large windows (not recommended if <16Mb of memory)
Mantenha a seleção padrão para as 5 opções anteriores, como recomendado pelo próprio programa de configuração. Só altere as opções caso você saiba o que está fazendo.
The IPX protocol Não selecione esta opção, a menos que você queira rotear pacotes IPX (Novell)
Appletalk DDP Não selecione esta opção, a menos que você queira rotear pacotes Appletalk
Amateur Radio AX.25 Level 2 Não selecione esta opção, a menos que você queira rotear pacotes AX.25
Kernel/User network link driver Não selecione esta opção, a menos que você conheça a fundo o funcionamento do kernel.
SCSI support SCSI support Selecione esta opção caso seu PC possua algum dispositivo SCSI (ou um ZIP-DRIVE)
SCSI disk support Selecione esta opção caso seu PC possua winchester SCSI.
SCSI tape support Selecione esta opção caso seu PC possua algum dispositivo de fita SCSI.
SCSI CD-ROM support Selecione esta opção caso seu PC possua um CDROM SCSI.
SCSI generic support Selecione esta opção caso seu PC possua um outro tipo de dispositivo SCSI, como por exemplo um gravador de CDs.
Probe all LUNs on each SCSI device Selecione esta opção caso seu PC tenha um dispositivo SCSI que responda por mais de um endereço, como por exemplo JukeBox de CDs.
Verbose SCSI error reporting (kernel size +=12K) Selecionando esta opção, os possíveis erros da interface SCSI serão reportados em frases, e não numericamente.
7000FASST SCSI support Adaptec AHA152X/2825 support Adaptec AHA1542 support Adaptec AHA1740 support Adaptec AIC7xxx support AdvanSys SCSI support Always IN2000 SCSI support AM53/79C974 PCI SCSI support BusLogic SCSI support DTC3180/3280 SCSI support EATA-DMA (DPT, NEC, AT&T, SNI, AST, Olivetti, Alphatronix) support EATA-PIO (old DPT PM2001, PM2012A) support EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards) support Future Domain 16xx SCSI support Generic NCR5380/53c400 SCSI support NCR53c406a SCSI support NCR53c7,8xx SCSI support NCR53C8XX SCSI support IOMEGA Parallel Port ZIP drive SCSI support PAS16 SCSI support Qlogic FAS SCSI support Qlogic ISP SCSI support Seagate ST-02 and Future Domain TMC-8xx SCSI support Tekram DC-390(T) SCSI support Trantor T128/T128F/T228 SCSI support UltraStor 14F/34F support UltraStor SCSI support GDT SCSI Disk Array Controller support Selecione uma das opções acima caso seu PC possua estes tipos de placas.
Network device support Network device support Selecione esta opção caso você queira conectar seu PC a uma rede de computadores ou irá conectar-se à Internet através de um placa de fax-modem.
Dummy net driver support Selecione esta opção caso você for usar o protocolo SLIP.
EQL (serial line load balancing) support Não selecione esta opção, a menos que você tenha mais de uma linha serial interligando dois pontos e queira usá-las em conjunto.
PLIP (parallel port) support Não selecione esta opção, a menos que você queira conectar dois PCs em rede através da porta paralela.
PPP (point-to-point) support Selecione esta opção, pois ela é necessária para se conectar à Internet através de uma placa de fax-modem.
SLIP (serial line) support Selecione esta opção caso o seu provedor de acesso usar o protocolo SLIP ao invés do PPP.
Radio network interfaces Não selecione esta opção, a menos que seu PC possua uma placa de comunicação via radio amador.
Ethernet (10 or 100Mbit) Selecione esta opção caso seu PC possua uma placa de rede.
3COM cards AMD LANCE and PCnet (AT1500 and NE2100) support Western Digital/SMC cards Other ISA cards Cabletron E21xx support DEPCA, DE10x, DE200, DE201, DE202, DE422 support EtherWORKS 3 (DE203, DE204, DE205) support EtherExpress 16 support HP PCLAN+ (27247B and 27252A) support HP PCLAN (27245 and other 27xxx series) support HP 10/100VG PCLAN (ISA, EISA, PCI) support NE2000/NE1000 support SK_G16 support EISA, VLB, PCI and on board controllers Apricot Xen-II on board ethernet Intel EtherExpress/Pro 100B support DE425, DE434, DE435, DE450, DE500 support DECchip Tulip (dc21x4x) PCI support Digi Intl. RightSwitch SE-X support Pocket and portable adaptors Token Ring driver support FDDI driver support ARCnet support Selecione a(s) placa(s) de rede que seu PC possui. As placas mais comuns são cobertas pelo driver NE2000/NE1000 support.
ISDN subsystem Selecione esta opção caso você possua um acesso via linha de dados ISDN.
CD-ROM drivers (not for SCSI or IDE/ATAPI drives) Support non-SCSI/IDE/ATAPI CDROM drives Selecione esta opção apenas se o seu drive de CD-ROM não for interface IDE nem SCSI.
Aztech/Orchid/Okano/Wearnes/TXC/CyDROM CDROM support Goldstar R420 CDROM support Matsushita/Panasonic/Creative, Longshine, TEAC CDROM support Mitsumi (standard) [no XA/Multisession] CDROM support Mitsumi [XA/MultiSession] CDROM support Optics Storage DOLPHIN 8000AT CDROM support Philips/LMS CM206 CDROM support Sanyo CDR-H94A CDROM support Soft configurable cdrom interface card support Sony CDU31A/CDU33A CDROM support Sony CDU535 CDROM support Selecione o tipo do seu CD-ROM não IDE/SCSI. Os drives de CD-ROM mais comuns são conectado nas placas de som, neste caso, selecione a opção Matsushita.
Filesystems Quota support Selecione esta opção caso você use um sistema multi-usuário e queira definir cotas de espaço em disco e utilização da CPU para cada usuário.
Minix fs support Não selecione esta opção, a menos que você queira suporte a este filesystem.
Extended fs support Não selecione esta opção, a menos que você queira suporte a este filesystem.
Second extended fs support Selecione esta opção, pois este é o filesystem do GNU/Linux.
xiafs filesystem support Não selecione esta opção, a menos que você queira suporte a este filesystem.
DOS FAT fs support Selecione esta opção para você ter acesso a partições FAT16/32 usadas pelo Windows 9x/ME.
MSDOS fs support Selecione esta opção para você ter acesso a partições FAT.
umsdos: Unix like fs on top of std MSDOS FAT fs Não selecione esta opção, a menos que você esteja rodando o GNU/Linux em uma partição DOS.
ISO9660 cdrom filesystem support Selecione esta opção se o seu PC tiver um drive de CD-ROM.
VFAT (Windows-95) fs support Selecione esta opção para você ter acesso a partições FAT16/32 usadas pelo Windows 9x/ME.
/proc filesystem support Selecione esta opção para ter o filesystem virtual que é montado no diretório /proc, sem o qual vários programas não rodam.
NFS filesystem support Selecione esta opção caso você queira armazenar arquivos via NFS (filesystem em rede).
SMB filesystem support (to mount WfW shares etc..) Selecione esta opção caso você queira exportar/importar drives e impressoras para uma máquina Windows 9x/ME.
SMB Win95 bug work-around Selecione esta opção caso a opção acima seja selecionada.
NCP filesystem support (to mount NetWare volumes) Não selecione esta opção, a menos que você queira suporte a este filesystem.
OS/2 HPFS filesystem support (read only) Não selecione esta opção, a menos que você queira suporte a este filesystem.
UFS filesystem support (read only) Não selecione esta opção, a menos que você queira suporte a este filesystem.
Character devices Standard/generic serial support Selecione esta opção caso você queira suporte às suas seriais (ttyS0, ttyS1 etc)
Digiboard PC/Xx Support Selecione esta opção caso seu PC possua uma placa Digiboard.
Cyclades async mux support Selecione esta opção caso seu PC possua uma multiserial Cyclades.
Stallion multiport serial support Selecione esta opção caso seu PC possua multiserial Stallion.
SDL RISCom/8 card support Selecione esta opção caso seu PC possua uma multiserial SDL.
Parallel printer support Selecione esta opção caso você queira conectar uma impressora ao seu PC.
Specialix IO8+ card support Selecione esta opção caso seu PC possua este tipo de placa.
Mouse Support (not serial mice) Selecione esta opção caso seu PC possua um mouse não serial.
Enhanced Real Time Clock Support Selecione esta opção caso você queira suporte ao RTC em seu PC. É necessário no caso de ultiprocessamento.
Sound Sound card support Selecione esta opção caso seu PC possua uma placa de som.
ProAudioSpectrum 16 support Sound Blaster (SB, SBPro, SB16, clones) support Generic OPL2/OPL3 FM synthesizer support Gravis Ultrasound support MPU-401 support (NOT for SB16) 6850 UART Midi support PSS (ECHO-ADI2111) support 16 bit sampling option of GUS (_NOT_ GUS MAX) GUS MAX support Microsoft Sound System support Ensoniq SoundScape support MediaTrix AudioTrix Pro support Support for MAD16 and/or Mozart based cards Support for Crystal CS4232 based (PnP) cards Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers Selecione a placa de som que o seu PC possui.
/dev/dsp and /dev/audio support Selecione esta opção pois a maioria dos programas acessam a placa de som através destes arquivos.
MIDI interface support Selecione esta opção caso sua placa de som possua uma saída MIDI.
FM synthesizer (YM3812/OPL-3) support Selecione esta opção caso sua placa de som possua este sintetizador de som.
Kernel hacking Kernel profiling support Não selecione esta opção, a menos que voce seja um expert no GNU/Linux.
- Logo após, saia e salve a configuração e digite make dep
[root@chicago /linux]#make dep
- Logo após o comando make dep, digite: [root@chicago /linux]#make clean
- Devemos agora, compilar a imagem do Kernel 2.4.XX, será criado um arquivo chamado "bzImage" dentro do diretório /usr/src/linux/arch/i386/boot . Para compilar, digite: [root@chicago /linux]#make bzImage
- Depois de compilado, vamos gerar os módulos do novo kernel [root@chicago /linux]#make modules
e depois: [root@chicago /linux]#make modules_install
- É hora de copiar a imagem gerada do Kernel 2.4.27 para o diretório "/boot". Mas antes disso, iremos copiar a imagem gerada para o diretório raiz "/" [root@chicago /linux]#cp /usr/src/linux/arch/i386/boot/bzImage /
- Vamos sair do diretório "/usr/src/linux" e ir para o diretório raiz "/". Estando no diretório raiz, vamos renomear a imagem do Kernel 2.4.27 (bzImage) para "vmlinuz-2.4.27" [root@chicago /]#mv bzImage vmlinuz-2.4.27
- OK, agora vamos mover o arquivo vmlinuz-2.4.27 para o diretório "boot" [root@chicago /]#mv vmlinuz-2.4.9 /boot
Falta pouco, vamos lá! Acesse agora o diretório "/etc" e edite o arquivo lilo.conf [root@chicago /]#cd /etc [root@chicago /etc]#mcedit lilo.conf
- Acrescente as seguintes linhas no arquivo lilo.conf
image=/boot/vmlinuz-2.4.9 label=linux-2.4.9 root=/dev/hd?? read-only
- Repare na linha "root=/dev/hd??" Você deve substituir estes pontos de interrogação pelo dispositivo que o GNU/Linux está instalado, ou seja, o meu GNU/Linux Conectiva está instalado no hdb1, ou seja, O SEGUNDO WINCHESTER DA IDE PRIMARIA COMO SLAVE
- Veja o conteúdo do meu arquivo "lilo.conf" abaixo:
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=923 lba32 message=/boot/messagem-lilo append="mem=128M" image=/boot/vmlinuz-2.4.26 label=linux-kernel-antigo root=/dev/hdb1 read-only image=/boot/vmlinuz-2.4.27 label=linux-2.4.27-novo root=/dev/hdb1 read-only image=/boot/memtest86 label=memtest other=/dev/hda1 label=win98se table=/dev/hda
- Digite no console: [root@chicago /]#lilo
- Se não houver dado nenhum erro, vamos reiniciar o computador para testar o novo Kernel 2.4.9 [root@chicago /]#reboot
- Pronto! Agora, quando aparecer o lilo pedindo para que você digite o sistema operacional que você deseja iniciar, basta digitar: kernel-2.4.27
- Se deu algum erro e o Kernel 2.4.27 não inicializou, reinicie o computador e acesse o kernel antigo digitando quando o aparecer o lilo novamente: linux-kernel-antigo
|