Handbook:MIPS/Blocks/Kernel/pt-br

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:MIPS/Blocks/Kernel and the translation is 100% complete.


Preparando a configuração

Importante
Nas máquinas Origin 200/2000, Indigo2 Impact (R10000), Octane/Octane2 e O2, é necessário um kernel 64 bits para dar boot. Para essas máquinas, faça emerge sys-devel/kgcc64 para criar compilador cruzado ("cross-compiler") para a compilação de kernels 64 bits.

Muitos dos sistemas suportados tem arquivo .configs de exemplo no fonte do kernel. Nem todos os sistemas tem arquivo de configuração distribuído dessa forma. Aqueles que tem podem ser configurados usando os comandos descritos na tabela abaixo.

Sistema Comando de configuração
Servidores Cobalt make cobalt_defconfig
Indy, Indigo2 (R4k), Challenge S make ip22_defconfig
Origin 200/2000 make ip27_defconfig
Indigo2 Impact (R10k) make ip28_defconfig
O2 make ip32_defconfig

Todas as imagens de instalação do Gentoo provêm o arquivo de opções de configuração do kernel como parte da imagem em si, acessível como /proc/config.gz. Ele pode ser usado em muitos casos. É melhor, entretanto, que os fontes do kernel correspondam os mais próximo possível do kernel em execução. Para extraí-lo, simplesmente use o zcat como mostrado abaixo.

root #zcat /proc/config.gz > .config
Importante
Essa configuração do kernel é feita para uma imagem de boot de rede. Isto é, ela espera encontrar uma imagem de sistema de arquivo root por perto, seja como um diretório para initramfs ou um dispositivo de loopback para initrd. Ao executar o make menuconfig, não se esqueça de ir em General Setup e desabilitar as opções para initramfs.

Customizando a configuração

Uma vez encontrado o arquivo de configuração, copie-o para o diretório dos fontes do kernel e renomeie-o para .config. A partir daí, rode make oldconfig para que tudo seja atualizado conforme as instruções acima, e customize a configuração antes de compilar.

root #cd /usr/src/linux
root #cp /path/to/example-config .config
root #make oldconfig

Por enquanto apenas tecle ENTER (ou Return) em cada prompt para aceitar os defaults...

root #make menuconfig
Importante
Na seção Hackeando o Kernel há uma opção chamada "Você Está Usando um Compilador Cruzado?". Ela instrui aos arquivos Makefile do kernel para acrescentar "mips-linux-" (ou mipsel-linux ... etc) ao gcc como comandos ao compilar o kernel. Isso deve ser desligado, mesmo em compilação cruzada. Em vez disso, se for necessário o uso de um compilador cruzado, especifique o prefixo usando a variável CROSS_COMPILE como mostrado na próxima seção.
Importante
Existe um problema conhecido com o JFS e o ALSA em sistemas Octane no qual o ALSA não funciona. Dada a natureza experimental do JFS no MIPS, recomenda-se evitar o uso do JFS por enquanto.

Compilando e instalando

Agora que o kernel está configurado, é hora de compilá-lo e instalá-lo. Saia da configuração e inicie o processo de compilação:

Nota
Em máquinas de 64 bits, especifique CROSS_COMPILE=mips64-unknown-linux-gnu- (ou mips64el-... se for um sistema little endian) para usar o compilador de 64 bits.

Para compilar nativamente:

root #make vmlinux modules modules_install

Para compilação cruzada na máquina-alvo, ajuste mips64-unknown-linux-gnu- de acordo:

root #make vmlinux modules modules_install CROSS_COMPILE=mips64-unknown-linux-gnu-

Quando compilando em outra máquina, tal como uma x86, use os seguintes comandos para compilar o kernel e instalar os módulos em um diretório específico para ser transferido para a máquina-alvo:

root #make vmlinux modules CROSS_COMPILE=mips64-unknown-linux-gnu-
root #make modules_install INSTALL_MOD_PATH=/somewhere
Importante
Quando compilar um kernel de 64 bits para a Indy, Indigo2 (R4000), Challenge S ou O2, use o alvo vmlinuz.32 em vez de vmlinux, ou a máquina não serã capaz de dar boot. Isso é para contornar o fato da PROM não entender o formato ELF64.
root #make vmlinux.32
Nota
É possível habilitar a compilação paralela usando make -jX com X sendo o número de tarefas em paralelo que o processo de compilação é permitido disparar. Isso é similar às instruções sobre o /etc/portage/make.conf vistas anteriormente, com a variável MAKEOPTS.

O comando acima irá criar o vmlinux.32, que é o kernel final.

Quando o kernel terminar de ser compilado, copie sua imagem para o /boot/.

Nota
Em servidores Cobalt, o gerenciador de boot esperará encontrar uma imagem de kernel compactada. Lembre-se de compactar o arquivo com gzip -9 após colocá-lo em /boot/.
root #cp vmlinux /boot/kernel-3.16.5-gentoo

Em servidores Cobalt, compacte a imagem do kernel:

root #gzip -9v /boot/kernel-3.16.5-gentoo