Ir ao conteúdo
  • Cadastre-se

Kernel


Visitante

Posts recomendados

Ola wrpn, beleza???

bom, vou colocar aqui umas dicas de como compilar, porém estou fazendo como se fosse no slackware, pode ser q na sua distro alguns caminhos de arquivos ou diretorios estejam diferente, mas nada impossivel de fazer. Bom, já vou avisando que depois de você recompilar, pode ser q seu linux não funcione.. hehehe ai você usa o backup... isso é comum nas primeiras vezes, pois você tem q fuçar para aprender.. hehe

Aconselho q alem do q eu colocar aqui, você procure mais informações e documentações, pois aqui sera um básico do básico...

Bom, antes de começar, vou colocar aqui só um resumo dos make's:

make clean

make mrprober

make menuconfig

make dep

make bzImage

make modules

make modules_install

make install

Agora vamus lá... boa sorte!

Compilar o kernel do linux tem sido encarado como um grande trabalho por parte dos usuários Linux mais novos. Na verdade, se seguirmos algumas regras simples, a tarefa de compilar o kernel pode ser bastante proveitosa, pois, além de ajustar opções como o tipo de processador correto para a máquina em uso, adequações ao hardware específico da máquina

quase sempre resultam em um kernel menor e num sistema mais rápido e estável.

Apesar de o kernel do Linux ser uma peça de software relativamente complicada, afirmam os estudiosos que é um dos projetos de kernel de 32 bits mais simples em uso atualmente.

Na verdade, para que um sistema Linux funcione bem, não é imprescindível a recompilação do kernel após a primeira instalação. Mas logo o usuário irá, por necessidade ou apenas a boa e velha curiosidade, interessar-se por colocar esta ou aquela "feature" em ação, como, por exemplo, fazer

funcionar aquela nova unidade CDR, uma placa de rede específica ou mesmo adequar a máquina às funções de proxy transparente.

A última versão do kernel do Linux pode ser baixada do endereço

http://www.kernel.org

Após o download da versão atualizada do kernel, é necessário descompactar os fontes. Isto é feito no diretório /usr/src, com o usuário logado

como "root":

a. copie o arquivo linux-2.4.10.tar.gz para /usr/src:

[root@locutus]:~# cp linux-2.4.10.tar.gz /usr/src

b. em /usr/src, exclua o link simbólico "linux":

[root@locutus]:~# rm linux

c. descompacte os fontes do kernel copiado em /usr/src - será criado um

diretório chamado "linux":

[root@locutus]:~# tar -zxvf linux-2.4.10.tar.gz

d. renomeie o diretório "linux" recém descompactado:

[root@locutus]:~# mv /usr/src/linux /usr/src/linux-2.4.10

e. crie um novo link simbólico "linux", desta vez apontando para o novo

diretório linux-2.4.10:

[root@locutus]:~# ln -s /usr/src/linux-2.4.10 linux

Neste ponto voce deve ter, em /usr/src, os seguintes diretórios e um

symlink:

       

[root@locutus]:~# pwd

/usr/src

[root@locutus]:~# ls

linux@        linux-2.4.5    linux-2.4.10    rpm     sendmail

Essa é a listagem em /usr/src em meu sistema.

Considere linux-2.4.5 como o diretório dos fontes do seu kernel atual.

O link simbólico deve apontar para o diretório linux-2.4.10. É nele que

o trabalho a seguir deve ser feito. Não delete o diretório dos fontes

anteriores ainda, voce pode precisar dele mais tarde.

Antes de alterarmos a configuração do novo kernel, vamos salvar em um

arquivo as configurações de seu kernel anterior.

Suponhamos que você já tenha configurado algumas coisas no kernel, e que

esta não seja sua primeira compilação. Você já tem funcionando aquela

placa

de rede ou outro hardware, ou mesmo algumas opções especiais do netfilter,

e quer que o novo kernel as mantenha.

Para tanto, você deve salvar as configurações atuais de seu kernel.

SALVANDO SUAS CONFIGURAÇÕES ANTERIORES (SE FOR O CASO)

Entre no diretório dos fontes anteriormente intalados (fontes originais,

no exemplo, linux-2.4.5):

[root@locutus]:~# cd /usr/src/linux-2.4.5

[root@locutus]:~# make menuconfig

a. Na tela que se apresentar, role a tela para baixo e escolha a opção

"Save Configuration to An Alternative File" e tecle ;

b. Escolha um nome para o arquivo a ser salvo, no final do "path" onde

deseja salvá-lo.

Por exemplo, digite "/config" para salvar o arquivo config no diretório

raiz do sistema. Tecle ;

c. Saia sem salvar, retornando ao prompt do console.

Com isso, será possível carregar este arquivo de configuração

posteriormente.

MODIFICANDO O NOVO KERNEL

Continuando, os próximos passos DEVEM ser executados em /usr/src/linux;

[root@locutus]:~# cd /usr/src/linux

[root@locutus]:~# make menuconfig

O comando acima iniciará a configuração em modo gráfico do kernel.

Opcio nalmente, estando em algum ambiente X (KDE, Windowmaker, Blackbox

...), o comando poderá ser:

       

[root@locutus]:~# make xconfig

Se, por algum motivo, você quiser apagar todas as configurações deste novo

kernel, antes de entrar com o comando acima, digite (em /usr/src/linux):

[root@locutus]:~# make mrproper

Isto apagará a configuração anterior do kernel no sistema.

Geralmente, este passo não é necessário em compilações normais.

Em seguida, novamente:

[root@locutus]:~# make menuconfig (ou make xconfig, se for o caso)

Já nas telas de configuração do novo kernel, é possível selecionar as

opções desejadas

referentes aos recursos que se deseja implementar.

Este é o momento de carregar as configurações do arquivo anteriormente

salvo. Escolha a opção

"Load ..."

na tela principal do programa de configuração, e aponte o caminho e o

nome do arquivo salvo. As opções de configuração do kernel anterior serão

carregadas.

Após fazer as alterações desejadas, é hora de salvar o kernel e sair

novamente para o console.

Aqui começa a compilação de seu novo kernel.

COMPILANDO

Novamente no prompt, é hora de compilar o novo kernel. Para isso, digite:

[root@locutus]:~# make dep

É normal este comando demorar alguns minutos, dependendo da velocidade da

máquina.

Depois:

[root@locutus]:~# make clean

Este comando é mais rápido que o anterior. Quando o prompt for liberado,

digite:

[root@locutus]:~# make bzImage

Isto construirá a nova imagem do kernel, em /usr/src/linux/arch/i386/boot,

em um arquivo chamado bzImage.

Os comandos acima criaram as dependências necessárias, limparam arquivos

temporários e de instalação e criaram a imagem compactada do novo kernel.

Após algum tempo (que varia de acordo com a máquina), a imagem é gerada

e gravada no diretório acima referido.

Vá agora para o diretório /lib/modules.

O comando ls dá a listagem do conteúdo:

[root@locutus]:~# cd /lib/modules

[root@locutus]:~# ls

   

2.4.5

Como visto, há um diretório com o nome do kernel anterior à esta nova

compilação.

Caso você esteja instalando um novo kernel, não é necessário alterá-lo,

pois a instalação dos módulos, como veremos a seguir, criará uma nova

árvore de diretórios aqui (no exemplo, 2.4.10).

Entretanto, se você estiver realizando apenas uma recompilação de um

kernel já instalado, será necessário renomear este diretório existente.

[root@locutus]:~# mv 2.4.5 2.4.5-old

[root@locutus]:~# ls

2.4.5-old

Isto feito, passemos à criação dos módulos.

6. CRIANDO E INSTALANDO OS NOVOS MÓDULOS

a. Retorne ao diretório de compilação:

[root@locutus]:~# cd /usr/src/linux

b. Digite os comandos:

[root@locutus]:~# make modules

Para construir os módulos selecionados na configuração do kernel.

Depois:

[root@locutus]:~# make modules_install

Os comandos acima criarão e instalarão os novos módulos em /lib/modules.

O trabalho de criação dos módulos pode demorar um pouco, dependendo do

tipo de máquina (processador, RAM disponível, etc).

INSTALANDO O NOVO KERNEL

Após o prompt ser novamente liberado mova a imagem compactada do

kernel, de /usr/src/linux/arch/i386/boot para o diretório raiz (/):

[root@locutus]:~# mv /usr/src/linux/arch/i386/boot/bzImage /

Vá para o diretório raiz, e renomeie o novo kernel recém compilado

para um nome facilmente identificável:

[root@locutus]:~# cd /

[root@locutus]:~# mv bzImage vmlinuz-2.4.10

O novo kernel, agora, terá o nome acima, vmlinuz-2.4.10.

Observe que será necessário indicar ao LILO,  qual a imagem compactada

que deverá ser inicializada no boot da máquina. Vá para /etc e edite o

arquivo "lilo.conf":

[root@locutus]:~# mcedit /etc/lilo.conf

Meu lilo.conf se parece com isto:

---

# LILO configuration file

#

# Start LILO global section

boot = /dev/hda

message = /boot/boot_message.txt

prompt

timeout = 20

vga = normal

image = /vmlinuz

 root = /dev/hda1

 label = Linux

 read-only

# Linux bootable partition config ends

---

Veja que apenas uma imagem pode ser inicializada. Para adicionar a nova

imagem, na seção:

#image = /vmlinuz

 root = /dev/hda1

 label = Linux

 read-only

adicione mais uma entrada:

image = /vmlinuz-2.4.10

 root = /dev/hda1

 label = Teste

 read-only

       

O arquivo lilo.conf deve ficar assim:

---

# LILO configuration file

# generated by 'liloconfig'

#

# Start LILO global section

boot = /dev/hda

message = /boot/boot_message.txt

prompt

timeout = 20

vga = normal

image = /vmlinuz

 root = /dev/hda1

 label = Linux

 read-only

image = /vmlinuz-2.4.10

 root = /dev/hda1

 label = Teste

 read-only

# Linux bootable partition config ends

---

Salve o arquivo lilo.conf. No prompt, digite:

[root@locutus]:~# lilo

para salvar as alterações. Você poderá ver:

Added

Linux *

Teste

indicando que a imagem vmlinuz-2.4.10 poderá ser inicializada no boot

da máquina digitando-se "Teste" no prompt do lilo.

Posteriormente você poderá eliminar a imagem antiga (vmlinuz) em "/" e

deletar o diretório /lib/modules/2.4.5.

Mas espere alguns dias, e observe se não ocorrem erros em módulos, e

se todas as funcionalidades estão operantes (ppp, etc).

Efetue um reboot na máquina, e a nova inicialização deverá apresentar

Welcome to linux 2.4.10

indicando que tudo correu como devia e o novo kernel está instalado.

8. SE AS COISAS DEREM ERRADO

Observe as mensagens de inicialização, à procura de alguma mensagem de

erro.

É possível voltar ao antigo kernel (no caso, 2.4.5) simplesmente

desfazendo as alterações.

Lembre-se que o label "Linux" no prompt do lilo inicializa a imagem

que for necessária, a nova ou a antiga.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

O redhat 7.3 tem algum problema pra recompilar ?

uso o arquivo de configuração config-2.4.18-3 como base para recompilar no menuconfig... para aproveitar as configurações do meu kernel... recompilo sem erros.. mas na hora q tá carregando o novo kernel na inicialização... trava tudo... tem uma mensagem dizendo q o kernel tá em panico ;-)

panico tô é eu... hehehe... independente do q faço é do q retiro o problema é o mesmo...

Só pra desencargo de consciência resolvi recompilar somente alterando o processador... pra minha surpresa... apareceu o mesmo problema... num artigo o morimoto fala q os kerneis do mandrake e conectiva podem ter problemas usando o gcc para recompilar... daí ele fala q é só usar um tal de kgcc... será q fazendo isso resolve ?

Será q tem algum problema no pacote kernel-source do redhat 7.3 ?

:(  :(  :(

Link para o comentário
Compartilhar em outros sites

Eu recompilei o meu kernel exatamente como indicado e não tive problemas, depois atualizei para o 2.4.19 e também tudo correu certinho, o único problema foi que eu salvei as configurações do 2.4.18-3 e carreguei na configuração do 2.4.19 e tinha algumas coisas que o 2.4.18-3 não estava dando suporte nativo (ISDN e outras coisas), mas aí ativei e tudo se resolveu..... dá uma olhada de novo nos passos, de repente você esqueceu alguma coisa....

falou....

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...
  • 5 meses depois...
  • 4 semanas depois...

parabens pelo topico!!

tá super bem explicado, e funciona mt bem!!!

tipo... uso o RH7.3...

baixei o kernel 2.4.21 da net... alguem pode me dizer se ele é bom (melhor q o 2.4.18 q vem no RH)!? mais estavel?!

ouvi falar q kernels com final impar (.21) sao meio instaveis, é preferivel pegar os kernels pares (.20 p. ex.)... isso é vero!??!?!?

fiz o processo de compilação aqui, com o kernel 2.4.21 e funcionou deboa.... ficou até mais leve e rápido na inicialização.... só tem um problema...

dps da recompilação, meu ADSL não funciona mais!!

alguem tem alguma dica pra resolver isso!??

valeu!

t++

:)

Link para o comentário
Compartilhar em outros sites

  • mês depois...
  • 3 meses depois...

Quem for compilar o kernel 2.6 agora tem que fazer uma pequena modificação o modutils, agora se chama module-init-utils, você tem que pegar o source e compilar depois e possivel compilar o kernel 2.6, [module-init-tools_3.0-pre9.orig.tar.gz] pegue esse pacote nessa pagina http://packages.debian.org/unstable/admin/module-init-tools , compile e você estara pronto pra usar o kernel 2.6

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

eu estou tentando estalar o kernel 2.6. Descompactei o arquivo e mandei a pasta para o deretóiro /usr/src. Tentei usar o comando make xconfig mas não deu certo.

Vi que tem que ter um link com o nome linux para a pasta decompactada. Como funciona isso? Não é so descompactar a pasta e mandar ela para esse diretório?

Explica melhor esse negócio do link!

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

cd /usr/src

tar jxvf linux-2.6.1.tar,bz2

ln -s linux-2.6.1 linux

cd linux

make menuconfig, caso tenha instalado tk e tcl use make xconfig, se quiser uma opção de cada vez use so make

quando sair use:

make , no caso do 2.4.24 use make dep, make clean e make bzImage

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz

make modules

make modules_install

caso use lilo make bzlilo

init 6

Eu recomendo pra quem ta começando no GNU/Linux usar o kernel 2.4.24, pois ele e mais fácil de configurar que o 2.6 devido algumas coisas que não foram totalmente resolvidas para desktop.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...
  • 4 semanas depois...

só para esclarecer, o material do k0d31n3 ficou muito bom mesmo.

Em poucas coisas, queria adicionar que:

Quando estamos compilando com NOVO kernel, não perdemos o antigo (a não ser que se apague ou qualquer outra coisa do genero). Ou seja: tente compilar o seu kernel! Se aprende muito lendo os docs em geral. Procure no www.kernel.org por documentos originais.

Ainda vale lembrar que apesar de muitas dists não estarem oficialmente com o kernel 2.6.x, ele já é estavel. Existem rpms com os kernels 2.6 para diversas dists, que facilitam o trabalho. Quem usa o yum, pode adicinar servidores que tambem instalam o kernel 2.6. Fica tranquilo daí.

Foi só um toque, teh mais

Link para o comentário
Compartilhar em outros sites

Pessoal,

Simplesmente BEM EXPLICADO esse tópico parabéns,

Apenas uma dúvida estou com um 'serio problema com o kernel-source (instalação com pau) dessa maneira não tenho como fazer um save das configurações do meu kernel 2.4.3 para fazer load no 2.6.3 e dessa maneira opções essenciais como QM_MODULES (que não faço a menor ideia de onde acho, e olha que procurei) não estão marcadas, Como fazer pra dar load ou resolver o problema

Muito Obrigado

Fernando

Link para o comentário
Compartilhar em outros sites

Desculpe pessoal, estava verificando achei várias opções e informações, mas como visto em um tutorial de kernel era para ta marcado a opção _Loadable modules support:_ e a minha estava todas assim como o pcte instalado modutils e não funcionou o QM_MODULES está assim o meu kernel

[*] Enable loadable module support

│ │ [*] Module unloading

│ │ [*] Forced module unloading

│ │ [*] Module versioning support (EXPERIMENTAL)

│ │ [*] Automatic kernel module loading

Todas marcadas e também da erro quando tento via parte gráfica o make xconfig só da pra ir pelo make menuconfig, não me importo mas terá relação?

Tenho o kernel 2.4.21 e tento compilar o 2.6.3 e o conectiva 9.0

Muito Obrigado

Fernando

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

segui todos os passos e compilei o kernel

porém, o meu pc ainda da o boot no kernel antigo

eu sei que devi alterar o arquivo lilo.conf mas o meu linux não tem esse arquivo.

o mais proximo disso é lilo.conf.anaconca

cujo corpo é o seguinte:

prompt

timeout=50

default=DOS

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

message=/boot/message

lba32

image=/boot/vmlinuz-2.4.20-8

label=linux

initrd=/boot/initrd-2.4.20-8.img

read-only

append="hdc=ide-scsi root=LABEL=/"

other=/dev/hda1

optional

label=DOS

o que eu devo fazer para rodar o novo kernel?

[]s

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...