Chargement...
 
Skip to main content

Historique: Tuto Compiler un noyau Temps-Réel

Aperçu de cette version: 128

Le noyal

Le noyau
Le noyau RT
Compiler un noyau 2.6 "Temps-Réel"

---------
D'autres optimisations


Avant propos :

Cette documentation, peut-être plus concrète que la précédente, vous guidera pas-à-pas dans la compilation d'un noyau temps réel.

1. Présentation


Pour une présentation de ce qu'est le noyau RT, vous pouvez aller lire sa page dédiée.

Vous le comprenez, compiler et changer un noyau n'est pas sans risque : en cas d'erreur, votre système refusera de démarrer.
Il vous faudra aussi surement trifouiller un petit moment dans la configuration du noyau. Vous êtes donc prévenus ! Ce mini guide s'adresse aux utilisateurs avancés qui souhaitent tester de nouvelles choses et personnaliser un maximum leur système !


L'idéal sera donc de faire en sorte que l'image résultant de la compilation ne remplace pas celle par laquelle vous démarrez habituellement, faisant de noyau RT un noyau secondaire, et de votre noyau habituel une roue de secours en cas de compilation infructueuse.

Il vous sera proposé ici d'autres options permettant également d'accroître les performances de votre système (optimisation en fonction de votre processeur, désactivation des options inutiles voire préjudiciables, etc.).

Il vous faudra donc installer les sources du noyau (et non le noyau lui-même) de votre choix pour pouvoir le configurer à votre guise.

Canal IRC d'aide : #linux-rt sur freenode.net

Le temps réel, explication chez fedora très intéressante : http://doc.fedora-fr.org/wiki/Fedora_et_le_Temps_Réel

2. Choix du noyau

La plupart des distributions offrent un noyau qu'elles ont patché pour lui attribuer de nouvelles fonctionnalités ("fbsplash" par ex, qui vous affiche un bel écran de bienvenue au démarrage de l'ordinateur...). Cependant, s'il ne s'agit pas d'une distribution spécialisée, il est peu probable que le patch "realtime preemption" (patch RT) ait été appliqué.
Par contre, certaines vous proposent d'autres versions de noyau, dont des versions déjà "patchées-RT", ou "lowlatency" : ce qui vous économisera l'étape "patchage du noyau".
Pour Mandriva, vous pouvez utiliser le noyau standard qui a le mérite d'avoir un timer 1000Hz mais qui est en mode 'voluntary preemtion'. Les noyaux multimedia ont été abandonnés depuis la version 2008.1. Le kernel-desktop fonctionne très bien avec des latences jack autour de 10ms tout en incluant un grand support matériel, et il est à préférer au kernel-laptop. Mandriva inclut également un noyau avec realtime preemption activée : ce sont les paquets kernel-rt. Ces noyaux sont des noyaux vanilla avec comme seul patch appliqué le patch rt. Il peut s'avérer problématique avec certains composants matériels. Note : le métapaquet "kernel-...-latest" permet de garder à jour le dernier kernel disponible, et à chaque mise à jour l'ancien noyau reste bootable jusqu'à sa désinstallation. C'est très confortable et sûr. Néanmoins, pour une vraie et complète utilisation MAO, nous vous recommandons de prendre le kernel vanilla et de le patcher en suivant les explications de cette page (à noter que la page Mandriva présente le patch sur un noyau 2.6.17)
Vous avez donc les choix suivants :
  • Installation des sources du noyau ("kernel-sources") fourni par votre distribution auquel vous appliquerez le "patch RT". Pour connaître la version du noyau que vous utilisez et installer les sources correspondantes, entrez la commande "uname -r" dans un terminal. Cette solution est à privilégier car elle vous permettra de conserver les patchs déjà appliqués sur votre distribution (pas loin de 180 patchs pour Ubuntu par exemple ❗. Certains noyaux étant trop différents des sources d'origines, des erreurs peuvent cependant apparaître lors de l'application du patch RT. Il faut alors se rabattre sur les "vanilla-sources".
  • Installation des sources d'un noyau déjà patché "RT" fourni par votre distribution. Il s'agit par exemple pour Gentoo des "rt-sources", etc.
  • Installation des "vanilla-sources". Il s'agit des sources telles qu'elles sont livrées par les développeurs du noyau. Disponibles ici : http://www.kernel.org/. Choisir la dernière version stable ! Cette solution sera privilégiée notamment si vous rencontrez des difficultés pour patcher le noyau de votre distribution, ou si elle ne vous fournit pas de noyau déjà patché "RT".



3. Installation des sources

Utilisez le gestionnaire de paquets de votre distribution. Exemple sous Gentoo:
Copy to clipboard
emerge rt-sources

etc.

Pour les "vanilla-sources", placez-vous dans le répertoire "/usr/src" (en "root"), téléchargez les sources et décompressez-les. Exemple avec le noyau 2.6.31.12 (dernière version stable le 17/06/09; vérifier s'il existe une version plus récente) :
Copy to clipboard
cd /usr/src wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.12.tar.bz2 tar -jxf linux-2.6.31.12.tar.bz2


Vous devrez également créer, toujours dans le répertoire "/usr/src", un lien symbolique nommé "linux" et pointant vers les sources que vous venez d'installer. Exemple :
Copy to clipboard
ln -sf linux-2.6.31.12 linux


Enfin, si vous voulez recompilez des sources déjà installées, sauvegarder le fichier de configuration (/usr/src/linux/.config) et faites un peu de ménage :
Copy to clipboard
cd /usr/src/linux make clean




4. "Patchage" du noyau


4.1. Principe

Cette étape n'est indispensable que si vous n'utilisez pas un noyau déjà patché RT.
Le "patch RT" était développé par Ingo Molnar, un des développeurs du noyau.
Maintenant, c'est Thomas Gleixner qui s'en occupe (après Steven Rostedt).
Il est disponible ici

➡️ Le patch RT est susceptible de faire bugger quelques programmes assez importants dépendant du noyau comme HAL (programme évitant de passer en root pour monter les clés usb), et bien sûr les drivers ATI pour ceux qui ne sont pas encore passé à nvidia 😂. Sur des distributions comme gentoo où l'on compile son noyau soi-même, il est FORTEMENT recommandé de faire une sauvegarde des sources de votre noyau avant de l'appliquer !!!

Il convient de choisir une version correspondant aux sources que vous venez d'installer. Évitez par exemple d'utiliser un patch prévu pour un noyau 2.6.29 sur un noyau 2.6.30 !!
Ainsi, "patch-2.6.31.12-rt21" signifie patch version 21 (oui, son auteur le modifie souvent) applicable sur un noyau 2.6.31.12.


4.2. Exemple

Téléchargez donc le bon patch et placez-le dans le répertoire "/usr/src".
Vérifiez aussi la présence du lien symbolique "linux" pointant sur les sources que vous souhaitez patcher (voir ci-dessus). La dernière version stable est la version "2.6.31.12-rt21".
Télécharger le patch :
Copy to clipboard
cd /usr/src wget http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.31.12-rt21.bz2


Tester si le patch fonctionne :
Copy to clipboard
cd /usr/src/linux bzcat ../patch-2.6.31.12-rt21.bz2 | patch -p1 --dry-run


Si le test se passe bien, appliquer le patch pour de bon :
Copy to clipboard
bzcat ../patch-2.6.31.12-rt21.bz2 | patch -p1


Vous obtiendrez sans doute des alertes ("warnings") sans trop d'importance. Par contre, si le patch refuse de s'appliquer, installez les vanilla-sources, vérifiez les versions (noyau/patch) et recommencez !


Nous allons ensuite renommer le répertoire de ces sources modifiées pour bien les repérer (facultatif). Puisque dans notre exemple précédent nous avons appliqué le patch "rt21" au noyau 2.6.31.12, nous renommerons ces sources "2.6.31.12-rt21" (c'est original 😉)
Ne pas oublier de modifier également le lien symbolique :
Copy to clipboard
cd /usr/src/ mv linux-2.6.31.12 linux-2.6.31.12-rt21 ln -sf linux-2.6.31.12-rt21 linux




5. Configuration


5.1. Le principe

Il est plus rapide de récupérer la configuration du noyau que vous utilisez, puis de l'affiner, c'est à dire enlever tout ce qui n'est pas indispensable en laissant tout ce qui est nécessaire !
Regardez si vous disposez d'un fichier nommé ".config" soit dans le répertoire "/boot", soit dans le répertoire "/usr/src/linux-2.x.x" d'un noyau précédemment installé.
Enfin, il est possible de trouver une sauvegarde de cette configuration dans /proc/config.gz. Utiliser la commande "make oldconfig" pour la récupérer :
Copy to clipboard
cd /usr/src/linux gunzip -c /proc/config.gz > .config make oldconfig


Pour configurer le noyau en mode "graphique", utilisez la commande :
Copy to clipboard
cd /usr/src/linux make xconfig

ou
Copy to clipboard
make menuconfig


Selon votre matériel, il faudra adapter votre fichier de configuration, aussi il n'est pas possible de donner un modèle utilisable par tous ! La commande "lspci -v" (lspcidrake -v sur Mandriva ) vous donnera des renseignements indispensables sur votre matériel, pour pouvoir en activer le support dans le noyau.
Il est conseillé de compiler "en dur" tout ce qui est nécessaire au démarrage de l'ordinateur (accès à la partition qui comporte votre système en particulier).
Le reste peut facilement être placé en module. Le fichier "/etc/modprobe.conf" vous permettra de choisir les modules à charger automatiquement au démarrage de la machine.

N' oubliez pas d'éditer le MakeFile afin de changer le nom du noyau qui va être créer, si vous souhaitez utiliser les mêmes sources pour compiler divers noyaux.

5.2. Exemple illustré

Voici quelques conseils, en rappelant que d'une version à l'autre du noyau, et surtout en fonction des patchs appliqués ou non, l'organisation et la liste des options change ! N'oubliez pas non plus que certaines options n'apparaissent que si vous en activez d'autres ! (ex : sans support ISA activé, pas de carte-son ISA dans ALSA ...).

La première partie est essentielle, elle définit le cœur de votre système. Adaptez-là à votre classe de processeur, et suivez les options recommandées :

General setup --->
   Local version - append to kernel release                               (pour donner un nom particulier
                                                                           à votre super noyau de la mort !)
   [*] Support for paging of anonymous memory (swap)                      (active la swap)

                             [...]

   [*] Kernel .config support                                             (utile pour pouvoir récupérer la
   [*] Enable access to .config through /proc/config.gz                    configuration du noyau dans /proc)
   [ ] Optimize for size                                                  (à désactiver)
   [ ] Configure standard kernel features (for small systems) --->        (à désactiver)

Loadable module support --->
   [*] Enable loadable module support                                     (utile pour pouvoir charger ...
   [*] Module unloading                                                    ... et décharger des modules)
   [ ] Forced module unloading
   [*] Module versioning support
   [*] Automatic kernel module loading                                    (pour charger automatiquement les
                                                                           dépendances des modules nécessaires)

Block layer --->
   IO Schedulers --->                                                     (activer les 3 ordonnanceurs)
      <*> Anticipatory I/O scheduler
      <*> Deadline I/O scheduler
      <*> CFQ I/O scheduler
      Default I/O scheduler (CFQ)                                         (CFQ est utilisé par Demudi)

Processor type and features --->
   Subarchitecture Type (PC-compatible) --->
      [*] PC-compatible  
   Processor family --->
      [*] VOTRE_TYPE_DE_PROCESSEUR                                        (choisir votre type de processeur)
   [ ] Generic x86 support                                                (à désactiver, le choix du processeur
                                                                           ci-dessus est préférable car + précis)
   [*] HPET Timer Support                                                 (à activer)
   [*] High Resolution Timer Support
   (1000) High Resolution Timer resolution (nanoseconds)
   [ ] Symmetric multi-processing support                                 (à activer et configurer si vous avez
      [ ] Maximum number of CPUs (2-255)                                   un système multi-processeurs ...
      [ ] SMT (Hyperthreading) scheduler support                           ... veinards !)

   Preemption Model --->
      [ ] No Forced Preemption (Server)
      [ ] Voluntary Kernel Preemption (Desktop)
      [ ] Preemptible Kernel (Low-Latency Desktop)
      [*] Complete Preemption (Real-Time)                                 (voilà l'option que nous rajoute le
                                                                          "patch RT" ... INDISPENSABLE !)
   --- Thread Softirqs                                                    (options à activer si vous n'utilisez
   --- Thread Hardirqs                                                     pas la "Complete Preemption")
   [ ] Preempt The Big Kernel Lock

                             [...]

   High Memory Support --->                                               (selon votre quantité de mémoire vive)
      [*] off                                                             (si vous avez moins de 1 Go)
      [ ] 4GB                                                             (si vous avez entre 1 et 4 Go)
      [ ] 64GB                                                            (hum ... si vous avez plus de 4 Go !)

                             [...]

   [ ] Math emulation                                                     (inutile sur les processeurs actuels)
   [*] MTRR (Memory Type Range Register) support                          (accélère les bus PCI et AGP)

                             [...]

   Timer frequency --->                                                   (à ce sujet, voir la discussion sur
      [ ] 100 HZ                                                           le site d'[http://ardour.org/node/117|Ardour]
      [ ] 250 HZ                                                           1000Hz semble préférable)
      [*] 1000 HZ                                                          

                             [...]

Ensuite, vous intègrerez le support des composants de votre carte mère, souvent sous forme de module. La commande "lspci" vous aidera à en établir la liste. Si vous avez un doute sur une option, compilez-la en module.
Notez en particulier les choix conseillés et déconseillés pour le support IDE (pour limiter les goulots d'étranglement), et adaptez la partie son à votre matériel.
Selon vos besoins, vous placerez aussi en module le support Firewire (disque dur externe ou autre), Carte réseau (choisir votre modèle), USB (selon ce que vous utilisez, clé usb, souris, etc.) et "en dur" les éventuels supports SATA dont vous avez besoin. Selon votre type de carte son, il faudra activer le bus correspondant (PCI, ISA, USB) pour la voir apparaître dans la liste d'ALSA (section "Sound").
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->                            (support PCI)
   PCI support --->
      PCI access mode --->
         [ ] BIOS
         [ ] MMConfig
         [ ] Direct
         [*] Any                                                          (fonctionne pour la plupart des cas)
      [ ] PCI Express support                                             (à activer si votre carte mère en a !)
      [ ] ISA support                                                     (requis pour certaine cartes sons)

                             [...]

Networking --->                                                           (pour configurer notamment le "Network
                                                                           packet filtering" (pare-feu et cie)
                                                                           consulter les sites spécialisés !)

                             [...]

Device Drivers --->                                                       (pour installer la prise en charge
                                                                           de vos périphériques. A adaptez à votre
                                                                           matériel. Seuls les points spécifiques
                                                                           MAO sont détaillés ci-dessous)

                             [...]

  Block devices --->
     <*> RAM disk support
     (16)  Default number of RAM disks
     (4096) Default RAM disk size (kbytes)
     [*]   Initial RAM disk (initrd) support 

                             [...]

   ATA/ATAPI/MFM/RLL support                                              (cochez en particulier :)
      <*> ATA/ATAPI/MFM/RLL support
         <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
            <*> Include IDE/ATA-2 DISK support                            (support IDE)
            [*] Use multi-mode by default
            [*] Include IDE/ATAPI CDROM support

                             [...]

            [ ] IDE Taskfile Access                                       (ces 2 options sont à désactiver
            < > generic/default IDE chipset support                        pour des raisons de performances)

                             [...]

               PCI IDE chipset support --->
                  [ ] Generic PCI IDE Chipset Support                     (désactiver, préférer le support
                                                                           spécifique ci-dessous)
                  [*] Generic PCI bus-master DMA support --->             (support DMA, à activer !)
                     [*] Use PCI DMA by default when available            (à activer)
                     <*> Cocher_le_support_de_VOTRE_chipset               (commande lspci pour vérifier votre puce.
                                                                           À mettre "en dur" et non pas en module)

                             [...]
			     
   SCSI device support --->
      <*> SCSI device support                                             (choisir les périphériques SCSI que vous
         SCSI low-level drivers --->                                       avez. À compiler "en dur" si votre
	    [*] LE(S)_DRIVER(S)_SATA_DONT_VOUS_AVEZ_BESOIN                 système est placé dessus)

                             [...]
			
   Multi-device support (RAID and LVM) --->                               (À configurer si vous souhaitez utiliser
                                                                           plusieurs disques durs en mode RAID.
                                                                           Compilez en dur et non pas en module
                                                                           si votre système est placé sur le RAID)

                             [...]

   IEEE 1394 (FireWire) support --->                                      (à activer si besoin, en module)

                             [...]

   Network device support --->                                            (activer vos cartes réseaux, en module)

                             [...]

   Character devices --->
      <M> Enhanced Real Time Clock Support                                (utilisé par certaines applications comme ((MusE)))
      <M> Generic /dev/rtc emulation
         [*] Extended RTC operation

                             [...]

      [* ou M] /dev/agpgart (AGP Support) --->                            (activer l'AGP de VOTRE puce, paraît-il
         [* ou M] AGP_DE_VOTRE_CHIPSET                                     recommandé même avec les cartes PCIe)
      [* ou M ou non] Direct Rendering Manager --->                       (activer le support DRI pour VOTRE
                                                                           carte graphique. Les possesseurs de
                                                                           cartes graphiques NVidia ou ATI DOIVENT
                                                                           désactiver cette option si ils veulent
                                                                           utiliser la 3D avec les pilotes
                                                                           propriétaires, et choisir M ou * pour les
                                                                           pilotes libres)

                             [...]

      [*] HPET - High Precision Event Timer --->                          (si quelqu'un peut (in/con)firmer
         [*] HPET Control RTC IRQ                                          l' (in)utilité de ces options ...)
         [*] Allow mmap of HPET

                             [...]

   I2C support --->                                                       (à adapter à votre matériel, en module.
      <M> I2C support                                                      Utile notamment pour les modules des
         <M> I2C device interface                                          capteurs de la carte-mère - température,
	    I2C Hardware Bus support --->                                  ventillateurs, etc.)
	       <M> VOTRE_CHIPSET
   
                             [...]

   Hardware Monitoring support --->                                       (Utile pour éviter la surchauffe du processeur.
       <*> Hardware Monitoring support                                     Voir aussi I2C support ci-dessus)
       <M> VOS_CAPTEURS_CARTE-MERE

                             [...]

   Graphics support --->                                                  (drivers cartes graphiques à adapter à
      [* ou M ou non]VOTRE_CARTE_GRAPHIQUE                                 votre matériel. Il s'agit ici des pilotes
                                                                           libres, les possesseurs de C.G. NVIDIA et
                                                                           ATI récentes préfèreront sans doute
                                                                           installer les drivers non-libres pour en
                                                                           tirer le meilleur. Et dans ce cas il est
                                                                           préférable d'avoir le support ici sous
                                                                           forme de modules pour avoir le choix
                                                                           plus tard, ou même aucun si on est sûr
                                                                           de soi)

   Sound --->                                                             (La partie intéressante)
      <*> Sound card support                                              (INDISPENSBLE)
         <*> Advanced Linux Sound Architecture --->                       (INDISPENSBLE)
            <*> Sequencer support 
               <M> Sequencer dummy client
            <M> OSS Mixer API                                             (compatibilité avec le système obsolète OSS)
            <M> OSS PCM (digital audio) API                               (idem)
            [*] OSS Sequencer API                                         (idem)
            <M> RTC Timer support
               [*] Use RTC as default sequencer timer
            [*] Support old ALSA API
            Generic devices --->
               <M> Virtual MIDI soundcard                                 (utile si vous n'avez pas de carte midi)
               < > MOTU MidiTimePiece AV multiport MIDI                   (à mettre en module si vous avez besoin
               < > UART16550 serial MIDI driver                            de ces périphériques. Ex : ports MIDI
               < > Generic MPU-401 UART driver                             compatibles avec interfaces RolandMPU-401)
            ISA devices --->                                              (mettre en module le driver pour VOTRE
            PCI devices --->                                               carte son ISA, PCI ou USB et activer le
            USB devices --->                                               support du port correspondant ISA/PCI/USB)
         < > Open Sound System (DEPRECATED)                               (puisqu'on nous dit qu'OSS est obsolète...)

   USB support --->                                                       (à adapter à votre matériel, en module.)


La dernière partie vous permettra de choisir les supports pour les systèmes de fichiers que vous utilisez, ainsi que leurs options.
Les "Magic SysRq key" vous permettront de redémarrer proprement votre système en cas de plantage (c'est très rare, mais pas impossible, surtout avec un noyau RT).
"Realtime Capabilities" doit IMPERATIVEMENT être compilé sous forme de module pour installer "realtime-lsm" (voir applis RT).

File systems --->                                                         (activer ceux que vous utilisez, Ext2,
                                                                           Ext3, Reiserfs et XFS. A compiler "en dur"
                                                                           au moins pour la partition racine)
   [*] CD-ROM/DVD Filesystems --->                                        (à activer selon vos besoins)
   [*] DOS/FAT/NT Filesystems --->                                        (à activer selon vos besoins)
   [*] Pseudo filesystems --->
      [*] Virtual memory file system support (former shm fs)              (utile pour ((JACK)) - support tmpfs)
   [*] Miscellaneous filesystems --->
      <*> Compressed ROM file system support
   Native Language Support --->                                           (choisir ISO 8859-15 ou UTF8 par défaut)
      [*] Codepage 850 (Europe)
      [*] NLS ISO 8859-1 (Latin 1; Western European Languages)
      [*] NLS ISO 8859-15 (Latin 9; Western European Languages with Euro) 
      [*] NLS UTF8

                             [...]

Kernel hacking --->
   [*] Magic SysRq key                                                    (utile pour les "reboot" d'urgence)

                             [...]

Cryptographic options --->                                                (utile pour vérifier les sommes de
   <*> MD5 digest algorithm                                                contrôle de tout ce que vous téléchargez,
   <*> SHA1 digest algorithm                                               images ISO, etc.)
   <*> SHA256 digest algorithm


5.3. 💡 Pour aller plus loin...

Voici une documentation très complete et très bien expliquée sur la configuration des différents modules du noyau.
Je vous recommande les sections 8 et 9 pour toutes questions spécifiques au matériel (pci, disque dur, usb, firewire, etc.). Ainsi vous pourrez vous faire une config au poil.

http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/index.html

6. Compilation et Installation du noyau


6.1. Commandes générales

Sauvegardez votre configuration et lancez la compilation :
Copy to clipboard
make && make modules_install

En cas d'erreur, regarder le module qui pose problème et désactivez-le s'il n'est pas nécessaire. Si tout s'est bien passé, installez votre nouveau noyau.
Copy to clipboard
cp arch/i386/boot/bzImage /boot/VOTRE_NOUVEAU_NOYAU

note : donnez lui le nom qui vous arrange, mais évitez de lui donner le même nom que le noyau sur lequel vous êtes, afin que ce dernier vous serve de roue de secours si le noyau RT refuse de démarrer
Copy to clipboard
cp System.map /boot/VOTRE_SYSTEM.MAP (IDEM) cp .config /boot/VOTRE_CONFIG (sauvegarde)


6.2. Commandes pour Mandriva

Copy to clipboard
make mrproper make xconfig make make modules_install make install
et tout sera prêt, compilé et installé, y compris votre chargeur de boot (lilo ou grub)


6.3. Commandes spécifiques à Debian et dérivés :

Copy to clipboard
apt-get install kernel-package make-kpkg clean make-kpkg modules_clean make-kpkg --revision 1 --initrd kernel_image kernel_headers modules_image cd .. dpkg -i kernel-image-2.6.15.6-rt21_1_i386.deb


Il y a un tutoriel très clair et simple, quoiqu'en anglais, sur cette page :
http://forums.debian.net/viewtopic.php?t=17035

À noter, à ce jour (02 juillet 2008), le lien indique pour télécharger le patch RT n'est plus valable. Je vous conseille donc d'aller directement sur cette page pour télécharger le noyau de votre choix :
http://kernel.org/pub/linux/kernel/v2.6/
et sur celle-ci pour télécharger le patch qui lui correspond : http://www.kernel.org/pub/linux/kernel/projects/rt/

Pour ceux qui ne savent pas (c'était mon cas), unp est disponible dans les dépôts. C'est un petit script en PERL qui facilite l'extraction d'archives.

Le problème de cette méthode, c'est que le noyau ainsi obtenu s'il est temps réel n'est pas un noyau Debian (le noyau Debian contient des patchs supplémentaires compare au noyau de base de linux.org). Voici donc comment j'ai procédé, je suis allé sur cette page :

http://ftp.fr.debian.org/debian/pool/main/l/linux-2.6/

J'ai téléchargé le paquet linux-source-2.6.24_2.6.24-7_all.deb (vous pouvez bien sur en choisir un autre, assurez vous bien qu'il y ait un patch RT qui lui correspond).
Je l'ai dépaqueté ainsi :

Copy to clipboard
unp linux-source-2.6.24_2.6.24-7_all.deb


Dans les répertoires ainsi obtenus j'ai récupéré linux-source-2.6.24.tar.bz2 qui contient le noyau Debian, et ce sans avoir à modifier mon sources.list .

Sur cette page :
http://www.kernel.org/pub/linux/kernel/projects/rt/older/

J'ai récupéré le patch RT patch-2.6.24.7-rt16.bz2

Ensuite j'ai applique la méthode du didacticiel indique plus haut et dont je rappelle la page:
http://forums.debian.net/viewtopic.php?t=17035



6.4. Pour finir


➡️ Il est préférable de ne pas écraser l'ancien noyau et de conserver son entrée dans votre bootloader (Lilo ou Grub), pour pouvoir démarrer dessus en cas de problème (un kernel-panic est si vite arrivé...) Éditer /etc/lilo.conf ou /boot/grub/grub.conf pour y ajouter l'entrée correspondant à votre nouveau noyau. Si vous utilisez Lilo, relancez la commande "lilo". Ceci n'est pas nécessaire pour Mandriva, c'est fait automatiquement

➡️ Attention : si vous avez changé la version de votre noyau, certaines applications dépendantes du noyau doivent être réinstallées : c'est notamment le cas des pilotes propriétaires des cartes graphiques Nvidia et ATI, des modules comme realtime-lsm... Ceci n'est pas non plus nécessaire pour Mandriva : utilisez simplement les modules dkms : ils se chargeront de replacer automatiquement ces modules pour votre nouveau kernel (dkms-nvidia & dkms-ati sont disponibles par le PLF - http://plf.zarb.org/mirrors.php -> configurer ces repositories PLF très simplement avec http://easyurpmi.zarb.org - D'autres, comme dkms-vloopback, sont inclus).

Redémarrez ... croisez les doigts ...

Si ça plante, utilisez votre ancien noyau que vous n'avez pas supprimé pour redémarrer et corriger ce qui coince...

Installation d'un noyau temps réel 2.6.33.7-rt29 sur Ubuntu 10.10


La version Ubuntu 10.10 ne supporant pas le temps réel, il est possible assez facilement de compiler un noyau temps réel pour cette version.

Voici la démarche à suivre :

  1. Aller à l'adresse http://www.kernel.org/pub/linux/kernel/projects/rt/ récupérer le fichier patch le plus récent ( le jour de l'écriture de cette documentation c'était patch-2.6.33.7-rt29.gz) Attention de ne pas prendre un fichier signature )
  2. Allez à l'adresse http://www.kernel.org/pub/linux/kernel/v2.6/ et récupérer le noyau correspondant à votre patch ( pour moi c'est donc linux-2.6.33.7.tar.gz )
  3. se mettre en root ( pour moi sudo su)
  4. cd /usr/src
  5. tar zxvf /home/gilles/Download/linux-2.6.33.7.tar.gz
  6. ln -s linux-2.6.33.7 linux
  7. cp /home/gilles/Download/patch-2.6.33.7-rt29.gz /usr/src (moi c'est gilles et le fichier téléchargé est dans Download, vous changerez les chemin)
  8. cd linux
  9. zcat ../patch-2.6.33.7-rt29.gz | patch -p 1
  10. cp /boot/config-2.6.35-22-generic .config
  11. vi .config mettre STAGING à n (car les drivers en cours de développement en avril 2010 ne compilaient pas tous)
  12. make oldconfig (là il va poser une dizaine de questions répondre à celle sur le noyau temps réel répondre qu'on veut un noyau temps réel choix 4) pour les autres choix qui ne sont que des nouveautés on peut répondre non, c'est à dire taper entrer, ces questions portant sur les paramètres 2.6.35 qui ont changé de format depuis la 2.6.33)
  13. make (c'est assez long)
  14. make modules_install
  15. make install
  16. update-initramfs -c -k 2.6.33.7-rt29
  17. dans le fichier /boot/grub/menu.lst ajouter les lignes

title Ubuntu Manuel RealTime kernel 2.6.33.7-rt29
uuid 9d2eaf3a-d613-4b89-996b-4b6c61a81572
kernel /boot/vmlinuz-2.6.33.7-rt29 root=UUID=9d2eaf3a-d613-4b89-996b-4b6c61a81572 ro quiet splash
initrd /boot/initrd.img-2.6.33.7-rt29
quiet

NB :

  1. moi j'utilise un grub.conf car ma version 10.10 a été upgradée de version en version. Il est possible qu'il y ait un autre méchanisme grub2, il faut dans ce cas aller voir comment mettre à jour en grub2
  2. uuid 9d2eaf3a-d613-4b89-996b-4b6c61a81572 doit être remplacé par l'uuid de votre disque, c'est à dire celui présent sur les autres noyau de votre grub
en mettant bien l'uuid de votre partition et pas la mienne
  1. le noyau RT permet de descendre à des latences de quelques millisecondes
  2. le noyau ainsi compilé convient à toutes les machines, on pourrait le compiler en s'amusant à supprimer l'ensemble des périphériques dont on n'a pas besoin

Commentaires

Des noyaux RT packagés pour la famille debian chez pengutronix :
Copy to clipboard
deb http://debian.pengutronix.de/debian/ sid main contrib non-free


Historique

Avancé
Information Version
Fri 06 Nov 2015 14:47 olinuxx Recherche et remplacement en masse 168
Afficher
Wed 06 mai 2015 00:58 chapolin 167
Afficher
Wed 06 mai 2015 00:57 chapolin 166
Afficher
Wed 06 mai 2015 00:57 chapolin 165
Afficher
Tue 05 mai 2015 12:55 chapolin 164
Afficher
Tue 05 mai 2015 12:55 chapolin 163
Afficher
Tue 05 mai 2015 12:53 chapolin 162
Afficher
Tue 05 mai 2015 12:49 chapolin 161
Afficher
Tue 05 mai 2015 12:48 chapolin 160
Afficher
Fri 05 Sep 2014 19:18 olinuxx Recherche et remplacement en masse 159
Afficher
Fri 05 Sep 2014 19:12 olinuxx Recherche et remplacement en masse 158
Afficher
Fri 30 mai 2014 13:22 chuck_maurice 157
Afficher
Fri 30 mai 2014 13:21 chuck_maurice 156
Afficher
Fri 30 mai 2014 09:10 chuck_maurice 155
Afficher
Wed 03 Jul 2013 15:27 pianolivier structure par défaut 154
Afficher
Tue 02 Apr 2013 07:45 utilisateur_anonyme2 153
Afficher
Wed 27 Feb 2013 22:07 utilisateur_anonyme2 152
Afficher
Mon 21 mai 2012 11:04 pianolivier modif lien(s) interne(s) 151
Afficher
Sat 19 mai 2012 19:41 pianolivier renommage de la page +alias(Compiler un noyau 2.6RT)) 150
Afficher
Mon 09 Apr 2012 16:38 pianolivier +BOX 149
Afficher
Sun 08 Apr 2012 15:32 pianolivier modif fil d'ariane 148
Afficher
Wed 21 Mar 2012 19:39 pianolivier fil d'ariane [retour à la version 145] 147
Afficher
Sun 08 Apr 2012 15:29 pianolivier modif bannière 146
Afficher
Wed 21 Mar 2012 19:39 pianolivier fil d'ariane 145
Afficher
Tue 20 Mar 2012 22:06 pianolivier suppression BOX (début de réorga du dossier) 144
Afficher
Sun 11 Mar 2012 14:49 pianolivier 143
Afficher
Sun 11 Mar 2012 14:23 pianolivier mise en page petits ecrans 142
Afficher
Sun 11 Mar 2012 14:22 pianolivier mise en page petits ecrans 141
Afficher
Sun 11 Mar 2012 14:21 pianolivier mise en page 140
Afficher
Mon 25 Jul 2011 20:56 pianolivier marquage de la page comme en cours de ré-écriture 139
Afficher
Wed 15 Dec 2010 17:49 olinuxx mise à jour BOX 138
Afficher
Mon 06 Dec 2010 11:29 olinuxx changement lien interne 137
Afficher
Mon 06 Dec 2010 11:28 olinuxx changement lien interne 136
Afficher
Sun 05 Dec 2010 09:00 olinuxx déplacement infos 135
Afficher
Sun 05 Dec 2010 08:58 olinuxx 134
Afficher
Sun 05 Dec 2010 08:58 olinuxx 133
Afficher
Sun 05 Dec 2010 08:57 olinuxx 132
Afficher
Sun 05 Dec 2010 08:55 olinuxx 131
Afficher
Sun 05 Dec 2010 08:53 olinuxx 130
Afficher
Sun 05 Dec 2010 08:52 olinuxx 129
Afficher
Sun 05 Dec 2010 08:52 olinuxx taille BOX 128
Afficher
Sun 05 Dec 2010 08:52 olinuxx 127
Afficher
Sun 05 Dec 2010 08:51 olinuxx BOX 126
Afficher
Sun 05 Dec 2010 08:10 olinuxx 125
Afficher
Sun 05 Dec 2010 08:07 olinuxx déplacement infos 124
Afficher
Sun 07 Nov 2010 21:55 olinuxx 123
Afficher
Sun 07 Nov 2010 21:45 olinuxx 122
Afficher
Sun 07 Nov 2010 21:43 olinuxx 121
Afficher
Sun 07 Nov 2010 21:43 olinuxx 120
Afficher
Sun 07 Nov 2010 21:38 pianolivier 119
Afficher
  • «
  • 1 (en cours)
  • 2