Criando Kernel RT Ubuntu 12.04

De LCAD
(Redirecionado de Criando Kernel RT linux)
Ir para: navegação, pesquisa

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

Arquivos para Download https://drive.google.com/open?id=0B28GajqdPp8_VGZmcVc3dEJYWjQ

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"

Use o comando abaixo para mudar as opções do kernel.

make menuconfig

Configure o IP_TABLES NAT support:

No Kernel Configuration vá para o menu:
 Networking support > Networking Options > Network packet filtering framework (Netfilter) > IP: Netfilter Configuration
 Encontre a opções listadas abaixo e se não estiverem marcadas, marque com <M>
 	<M>iptables NAT support''  
 Outras opções irão aparecer:
	<M> MASQUERADE target support
	<M> NETMAP tarrget support
	<M> REDIRECT target support
 salve e exit
 

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

Para instalar o cuda siga as instruções do Getting_Started: http://developer.download.nvidia.com/compute/cuda/6_5/rel/docs/CUDA_Getting_Started_Linux.pdf

Use o instador .run

Na instalação vai aparecer algumas perguntas, Siga essas respostas.

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 340.29? ((y)es/(n)o/(q)uit): n
Install the CUDA 6.5 Toolkit? ((y)es/(n)o/(q)uit): y
Enter Toolkit Location [ default is /usr/local/cuda-6.5 ]: 
Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y
Install the CUDA 6.5 Samples? ((y)es/(n)o/(q)uit): y
Enter CUDA Samples Location [ default is /home/car01 ]: 


Refêrencias http://linuxaudioproduction.blogspot.com.br/2015/09/how-to-patching-and-compiling-nvidia.html


Possíveis problemas

Error NVRM/VGA com o driver da nvidia:

use o comando: sudo dmesg | tail Se ocorrer os seguintes erros:

[   15.458823] NVRM: Your system is not currently configured to drive a VGA console
[   15.458830] NVRM: on the primary VGA device. The NVIDIA Linux graphics driver
[   15.458834] NVRM: requires the use of a text-mode VGA console. Use of other console
[   15.458838] NVRM: drivers including, but not limited to, vesafb, may result in
[   15.458841] NVRM: corruption and stability problems, and is not supported.

Adicione a seguinte linha no arquivo /boot/grub/grub.cfg ao fim da linha do kernel

video=vesa:off vga=normal

e.g.

menuentry 'Ubuntu' --class ubuntu...

(...)

linux /boot/vmlinuz-4.1.5-rt5 root=UUID=f5a99a1a-15a4-4a83-a3fb-2adbee7f8311 ro quiet splash $vt_handoff video=vesa:off vga=normal

(..)

verificar nesse link

https://bbs.archlinux.org/viewtopic.php?id=143569

Erro na resolução do monitor. Entre na configurações da nvidia como super usuário

$ sudo nvidia-settings 

Em X Server Display Configuration, restaure a configuração do X server clicando no botão de "Reset". Após isso reinicie a maquina.

Feito isso, volte na mesma aba da nvidia-settings. Verifique no campo "Selection" se o aparece o seu monitor. Depois mude a resolução do monitor para uma configuração maior e salve a configuração em "Save to X Configuration File".