Criando Kernel RT Ubuntu 12.04

De LCAD
Ir para: navegação, pesquisa

As informações abaixo são baseadas em: https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

Atualize o apt-get:

# apt-get update

Baixe o kernel da versão desejada de http://www.kernel.org/pub/linux/kernel/v3.x

Você deve escolher um kernel da mesma versão que o seu, mas um pouco mais novo (ex. se o seu é 3.8.0, pode pegar um 3.8.13). Para instalar o RT, você vai, na verdade, atualizar seu kernel usando os fontes de um novo kernel, um pouco mais novo que o seu - o RT é um patch em um fonte de kernel existente.

Nos exemplos abaixo, o kernel escolhido é o 3.4.52:

$ wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.52.tar.bz2

Baixe o patch RT para o kernel escolhido de http://www.kernel.org/pub/linux/kernel/projects/rt/ Se não existir, escolha outro kernel (ver acima). No exemplo abaixo, o patch é para o kernel 3.4.52:

$ wget http://www.kernel.org/pub/linux/kernel/projects/rt/3.4/patch-3.4.52-rt67.patch.bz2

Logo após, instale os pacotes abaixo:

$ sudo apt-get install gcc libncurses5-dev

Após instalar os pacotes, digite:

$ sudo su
# cd /usr/src/
# cp /< diretório onde voce baixou seu kernel>/linux-3.4.52.tar.bz2 .
# cp /< diretório onde voce baixou seu patch>/patch-3.4.52-rt67.patch.bz2 .

Descompacte o kernel:

# tar -jxvf linux-3.4.52.tar.bz2

Mude para o diretório do kernel:

# cd linux-3.4.52

Faca o patch do kernel:

# bzcat ../patch-3.4.52-rt67.patch.bz2 | patch -p1

Obtenha a configuração atual no novo kernel:

# make oldconfig

O make vai fazer algumas perguntas, responda com o padrão EXCETO sobre as opções real time e modo debug. Ou seja, quando perguntado por:

  • "Preemption Model"
    • Escolha "5. Fully Preemptible Kernel (RT) (PREEMPT_RT_FULL) (NEW)"
  • "Debug preemptible kernel (DEBUG_PREEMPT)"
    • Escolha "n"

Caso tenha algo a mudar no kernel, use o comando abaixo e mude de acordo com seu interesse nos menus.

# make menuconfig

Ao finalizar, salve as configurações e continue como descrito abaixo (alguns dos comandos abaixo demoram dezenas de minutos para terminar):

# make bzImage
# make modules
# make modules_install

Após finalizar sem erro, copiar o kernel para /boot:

# cp arch/x86_64/boot/bzImage /boot/vmlinuz-3.4.52-rt67
# cp System.map /boot/System.map-3.4.52-rt67
# cp .config /boot/config-3.4.52-rt67

Gere a imagem:

# cd /boot
# mkinitramfs -o initramfs-3.4.52-rt67.img 3.4.52-rt67

Atualize o grub:

# grub2-mkconfig -o /boot/grub2/grub.cfg
ou
# update-grub

Reinicie o computador para verificar se tudo está certo. Deve aparece o kernel com real time. Exemplo (Linux car01 3.8.13-rt16 #1 SMP PREEMPT RT)

# uname -a


Para instalar a placa de video NVIDIA siga esses passos:

Baixe o driver NVIDIA-Linux-x86_64-352.41.run no site da nvidia

Faça o Download do patch do nvidia https://dl.dropboxusercontent.com/u/1015089/online-ref/nvidia-352.41-rt.patch

Instalei o ssh

 $ sudo apt-get install ssh
 

Descompacte o driver da nvidia

 $ cd ~/Downloads  
 $ sudo sh ./NVIDIA-Linux-x86_64-352.41.run --extract-only

Aplique o patch

 $ less nvidia-352.41-rt.patch | patch NVIDIA-Linux-x86_64-352.41/kernel/nv-linux.h

Faça a instalação do driver Atenção!!! Nesse momento o driver vai apresentar um erro, não se preocupe continue com a instalação. O driver vai perguntar se deseja criar um arquivo para desabilitar o nouveau, aceite esse opcão. Termine os passos e reincie o pc.

 pressione Ctrl+Alt+F1 para entrar no modo texto
 $ sudo service lightdm stop 
 $ cd NVIDIA-Linux-x86_64-352.41
 $ sudo sh ./nvidia-installer
Renicie a maquina

Agora acesse a maquina por outro pc via ssh para continuar a instalação

$ ssh usuario@ip

Entre em modo super usuário

$ sudo su 

Mate o lightdm

# sudo service lightdm stop

Instale o driver (Será feitas algumas perguntas, fique atento sobre a execução do nvidia-xconfig, escolha yes)

# export IGNORE_PREEMPT_RT_PRESENCE=1
# cd ~/Download/NVIDIA-Linux-x86_64-352.41
# sudo sh ./nvidia-installer

Quando terminar inicie novamente o servidor X e volte a usar a maquina

# sudo service lightdm start

Verifique se o driver foi instalado corretamente, deve mostrar as informações da placa de video

$ nvidia-settings