Diferenças entre edições de "Compilação do Kernel"

Fonte: TecPorto
Saltar para a navegação Saltar para a pesquisa
Linha 104: Linha 104:
 
  sudo apt update
 
  sudo apt update
 
  sudo apt upgrade
 
  sudo apt upgrade
 +
 +
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.
 +
mount | grep "MyDistro"
  
  
 
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.
 
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.
 +
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://<ip_máquina_virtual>/<pasta>).
  
 
= Gentoo =
 
= Gentoo =

Revisão das 16h10min de 7 de agosto de 2018

Genérico / Vanilla

Fazer o download do kernel e do BusyBox

Kernel Vanilla

BusyBox

Instalação de pacotes adicionais

  • build-essential
  • libncurses-dev
  • bison
  • flex
  • libelf-dev

Pré-configuração

  • Criação de um directório de trabalho
 mkdir MyDistro


  • Mover os downloads efectuados para o directório anteriormente criado
 mv Transferências/linux-4.17.12.tar.xz MyDistro/
 mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/
 cd MyDistro


  • Descompactar os downloads
 tar -jxf busybox-1.29.2.tar.bz2
 tar -Jxf linux-4.17.12.tar.xz

Compilação do Kernel

  • Entrar no directório descompactado do Kernel
cd MyDistro/linux-4.17.12


  • Limpar a pasta do código fonte de todas as configurações e objectos já construídos.
make mrproper


Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.

  • Entrar no menu de configuração do Kernel.
make menuconfig


Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.

  • Compilar o novo Kernel.
make 


ou

make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) 


ou

time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)
  • Verificar tamanho do novo Kernel
ls -l arch/x86/boot

Verificar o tamanho do ficheiro bzImage.

Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.

Compilação do BusyBox

Entrar no directório BusyBox previamente descompactado

  • Entrar no menu de configuração do BusyBox
make menuconfig


Importante: Adicionar no menu Settings -> Build Options -> Build static binary (no shared libs)

  • Compilar o BusyBox
make 


ou

make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) 


ou

time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)


  • Verificar o tamanho do novo BusyBox
ls -l 

Verificar o tamanho do ficheiro busybox.

Preparação da máquina de teste

O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.

  • 8GB para o sistema base
  • 2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)

Após a instalação da máquina é necessário executar os comandos de update e upgrade:

sudo apt update
sudo apt upgrade

Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.

mount | grep "MyDistro"


Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual. Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://<ip_máquina_virtual>/<pasta>).

Gentoo

Ubuntu

CentOS