web-dev-qa-db-fra.com

Installer RT Patch Linux pour Ubuntu

Essayer de transformer mon Ubuntu générique en Ubuntu en temps réel en modifiant le noyau en corrigeant/installant RT Linux mais n'a pas pu trouver une configuration simple. Quelqu'un peut-il aider avec les étapes?

10
Abhay Nayak

Étape 0 - Créez un répertoire de travail

Créer un répertoire de travail

#Move to working directory
mkdir ~/kernel && cd ~/kernel

Étape 1 - Télécharger le noyau et le patch

Allez sur https://www.kernel.org/pub/linux/kernel/ et téléchargez la version souhaitée du noyau dans ~/kernel. De même, accédez à https://www.kernel.org/pub/linux/kernel/projects/rt/ et téléchargez le patch RT avec la même version que le version du noyau téléchargée. Le noyau et le correctif que j'ai utilisés étaient linux-4.9.115.tar.gz et patch-4.9.155-rt93.patch.gz.

Étape 2 - Décompressez le noyau

tar -xzvf linux-4.9.115.tar.gz

Étape 3 - Patcher le noyau

#Move to kernel source directory
cd linux-4.9.115
gzip -cd ../patch-4.9.115-rt93.patch.gz | patch -p1 --verbose

Étape 4 - Activer le traitement en temps réel Cette étape nécessite libncurses-dev

Sudo apt-get install libncurses-dev libssl-dev

La commande suivante lance un menu graphique dans le terminal pour générer le fichier de configuration.

make menuconfig

Accédez à l'emplacement et effectuez les modifications en conséquence

##Graphical Menu##

Processor type and features ---> [Enter]
Preemption Model (Voluntary Kernel Preemption (Desktop)) [Enter]
Fully Preemptible Kernel (RT) [Enter] #Select

[Esc][Esc]

Kernel hacking --> [Enter]
Memory Debugging [Enter]
Check for stack overflows #Already deselected - do not select


[Esc][Esc]


[Right Arrow][Right Arrow]

<Save> [Enter]

.config

<Okay> [Enter]

<Exit> [Enter]


[Esc][Esc]


[Right Arrow]
<Exit> [Enter]

Étape 5 - Compilation du noyau

make -j20
Sudo make modules_install -j20
Sudo make install -j20

Étape 6 - Vérifiez et mettez à jour Vérifiez que initrd.img-4.9.115-rt93, vmlinuz-4.9.115-rt93 et ​​config-4.9.115 -rt93 sont générés dans le répertoire/boot et mettent à jour le grub.

cd /boot
ls
Sudo update-grub

Vérifiez qu'il existe une entrée de menu contenant le texte "entrée de menu 'Ubuntu, avec Linux 4.9.115-rt93'" dans /boot/grub/grub.cfg fichier

Pour modifier le noyau par défaut dans grub, modifiez le GRUB_DEFAULT valeur dans /etc/default/grub au noyau souhaité.

REMARQUE: 0 est la 1ère entrée de menu

7 - Redémarrez et vérifiez

Sudo reboot

Une fois le système redémarré, ouvrez le terminal et utilisez uname -a pour vérifier la version du noyau, elle devrait ressembler à ceci

Linux abhay-home 4.9.115-rt93 #1 SMP PREEMPT RT Mon May 13 03:32:57 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux

Remarque: "SMP PREEMPT RT" valide que votre système exécute le noyau en temps réel.

13
Abhay Nayak

Après avoir installé le nouveau noyau (comme @Abhay Nayak publié), je suis entré dans une panique du noyau. Le problème était que l'image initrd était trop grande. J'ai résolu cela avec:

Étape 1 - Supprimez les modules du noya

cd /lib/modules/<new_kernel>
find . -name *.ko -exec strip --strip-unneeded {} +

Étape 2 - Modifier la compression initramfs

Editez le fichier /etc/initramfs-tools/initramfs.conf:

COMPRESS=xz

Étape 3 - Mettre à jour initramfs

Sudo update-initramfs -u
Sudo update-grub2
3
mrRo8o7

Voici pour Ubuntu 19.10 et supérieur et j'ai patché le patch du noyau Linux 5.4.5 rt car Linux 5.3 - la base d'Ubuntu 19.10 - n'a pas de patch du noyau rt.

0. Créer un répertoire de travail

# Make dir and move to working directory
$ mkdir ~/kernel && cd ~/kernel

1. Télécharger le noyau et le patch

Téléchargez le noyau et le patch rt depuis https://www.kernel.org/ . Vous pouvez les obtenir ci-dessous:

(noyau) https://www.kernel.org/pub/linux/kernel/
(patch rt) https://www.kernel.org/pub/linux/kernel/projects/rt/

Notez que la version du patch rt et du noyau doit être la même. J'ai utilisé linux-5.4.5.tar.gz et patch-5.4.5-rt3.patch.gz.

Si vous les téléchargez sur le ~/kernel, passez ci-dessous et passez à l'étape 2.

# Move these Zip file to ~/kernel
$ cd ~/Download
$ mv linux-5.4.5.tar.gz patch-5.4.5-rt3.patch.gz ~/kernel/.

2. Extraire les sources du noyau et patcher le noyau rt

# Extract kernel sources
$ cd ~/kernel
$ tar xvzf linux-5.4.5.tar.gz

# Patch rt kernel
$ cd linux-5.4.5
$ gzip -cd ../patch-5.4.5-rt3.patch.gz | patch -p1 --verbose {}

3. Installer les packages requis

Pour utiliser GUI menuconfig, libncurses-dev est requis. flex et bison seront nécessaires lors de la compilation du noyau.

# For using gui
$ Sudo apt install libncurses-dev libssl-dev

# For compiling kernel
$ Sudo apt install flex bison

4. Configurer le noyau pour RT

$ make menuconfig

et entrez dans l'interface utilisateur menuconfig.

# Make preemptible kernel setup
General setup ---> [Enter]
Preemption Model (Voluntary Kernel Preemption (Desktop)) [Enter]
Fully Preemptible Kernel (RT) [Enter] #Select

# Select <SAVE> and <EXIT>
# Check .config file is made properly

Notez qu'il n'y a pas de Check for stack overflows option sur la configuration de l'interface graphique. Vous pouvez le vérifier en recherchant "débordement". Type / et overflow dans le menu graphique.

5. Compilez le noyau

$ make -j20
$ Sudo make modules_install -j20
$ Sudo make install -j20

6. Rendre les images du noyau plus légères

Comme @ mrRo8o7 l'a dit plus tôt, une grande image initrd peut provoquer une panique du noyau. Vous pouvez donc résoudre ce problème en:

# Strip unneeded symbols of object files
$ cd /lib/modules/5.4.5-rt3  # or your new kernel
$ Sudo find . -name *.ko -exec strip --strip-unneeded {} +

# Change the compression format
$ Sudo vi /etc/initramfs-tools/initramfs.conf
# Modify COMPRESS=lz4 to COMPRESS=xz (line 53)

COMPRESS=xz 

[:wq]

puis mettez à jour initramfs

$ Sudo update-initramfs -u

7. Vérifier et mettre à jour grub

Vérifiez ce répertoire et mettez à jour le grub.

# Make sure that initrd.img-5.4.5-rt3, vmlinuz-5.4.5-rt3, and config-5.4.5-rt3 are generated in /boot
$ cd /boot
$ ls

# Update grub
$ Sudo update-grub

8. Redémarrez et vérifiez

$ Sudo reboot

# After the reboot
$ uname -a

alors vous pouvez vérifier votre nouvelle version du noyau

Linux [Prompt] 5.4.5-rt3 …
2
Aiden Yeomin Nam