Mudanças entre as edições de "Criando Kernel RT Ubuntu 12.04"

De LCAD
Ir para: navegação, pesquisa
 
(23 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
As informações abaixo são baseadas em: https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO
 
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:
 
Atualize o apt-get:
Linha 5: Linha 7:
 
  # apt-get update
 
  # apt-get update
  
Baixe o kernel da versão desejada de http://www.kernel.org/pub/linux/kernel/v3.x . Nos exemplos abaixo, o kernel é o 3.4.52:
+
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
 
  $ wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.52.tar.bz2
Linha 39: Linha 45:
 
  # make oldconfig
 
  # make oldconfig
  
O make vai fazer algumas perguntas, responda com o padrão EXCETO sobre as opções real time e modo debug. As orientações do site original são:
+
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:
 
 
* enable CONFIG_PREEMPT_RT
 
* activated the High-Resolution-Timer Option (Attention, the amount of supported platforms by the HR timer is still very limited. Right now the option is only supported on x86 systems, PowerPC and ARM Support are however in queue.)
 
* disabled all Power Management Options like ACPI or APM (not all ACPI functions are "bad", but you will have to check very carefully to find out which function will affect your real time system. Thus it's better to simply disable them all if you don't need them. APM, however, is a no-go.) NOTE: Since rt patch 2.6.18-rt6 you will probably have to activate ACPI option to activate high resolution timer. Since the TSC timer on PC platforms, as used in the previous versions, are now marked as unsuitable for hrt mode due to many lacks of functionalities and reliabilities, you will need i.E. pm_timer as provided by ACPI to use as clock source. To activate the pm_timer, you can just activate the ACPI_SUPPORT in menuconfig and deactivate all other sub modules like "fan", "processor" or "button". If you have an old pc, which lacks ACPI support, you might have problems using the high resolution timer.
 
 
 
* Further interesting options can be found under the "Kernel Hacking" menu entry This menu lists options for system debugging and performance measurement. Keep in mind that the debug options may either increase the kernel size or cause higher latencies. If you do not want to debug the kernel or get some automatically produced histograms, make sure that you don't activate any unnecessary options here. If you have activated any latency critical options the kernel will warn at boot time.
 
 
 
  
Logo após isso, execute o comando:
+
* "Preemption Model"
 +
** Escolha "5. Fully Preemptible Kernel (RT) (PREEMPT_RT_FULL) (NEW)"
 +
* "Debug preemptible kernel (DEBUG_PREEMPT)"
 +
** Escolha "n"
  
  # make menunconfig
+
Use o comando abaixo para mudar as opções do kernel.
 +
  make menuconfig
 +
Configure o IP_TABLES NAT support:
 +
<pre>
 +
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
 +
</pre>
  
Caso tenha algo a mudar no kernel, mude nesses menus.
+
Ao finalizar, salve as configurações e continue como descrito abaixo (alguns dos comandos abaixo demoram dezenas de minutos para terminar):
  
Ao finalizar, salve as configurações e continue como descrito abaixo:
+
# make bzImage
 +
# make modules
 +
# make modules_install
  
# make bzImage && make modules && make modules_install
+
Após finalizar sem erro, copiar o kernel para /boot:
 
 
Vai demorar, por isso espere.
 
 
 
Após finalizar sem erro, agora é copiar o kernel para /boot:
 
  
 
  # cp arch/x86_64/boot/bzImage /boot/vmlinuz-3.4.52-rt67
 
  # cp arch/x86_64/boot/bzImage /boot/vmlinuz-3.4.52-rt67
Linha 77: Linha 90:
 
  # update-grub
 
  # update-grub
  
Reinicie o computador para verificar se tudo está certo.
+
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:
 +
<pre>
 +
[  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.
 +
</pre>
 +
 
 +
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".

Edição atual tal como às 20h34min de 11 de outubro de 2016

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".