RTAI et RTnet à partir des sources |
Installation de RTAI sous Debian (depuis les sources)Pour une installation automatisée à partir de paquets déjà compilés, cliquez ici.Installation des paquets Debiansu - aptitude update && aptitude safe-upgrade aptitude install kernel-package \ build-essential dh-make module-assistant \ libncurses5-dev zlib1g-dev dh-kpatches \ fakeroot autoconf UdevLes modules RTAI créent les périphériques rtai_sham et rtf* à leur lancement. Il faut créer le fichier suivant pour ces périphériques.touch /etc/udev/rules.d/92-rtai.rulesEditer ensuite ce fichier comme suit : ACTION!="add|change", GOTO="rtai_end" KERNEL=="rtf*", MODE="0666" KERNEL=="rtai*", MODE="0666" LABEL="rtai_end" Memlock SizeLa quantité par défaut de mémoire verrouillée dans l'espace d'adresse est 32Kb sous Debian. Il convient de l'augmenter pour une utilisation temps réel. Editer /etc/security/limits.conf pour ajouter cette ligne à la fin :* hard memlock 8192 Ajout de l'utilisateur au groupe srcAjouter votre compte au groupe src pour avoir accès au répertoire /usr/srcadduser your_user_name srcDéconnectez-vous et reconnectez-vous pour permettre aux changements de prendre effet. Récuperation des paquets sourcesUtilisez un compte utilisateur normal pour les actions suivantes.cd mkdir rtai cd rtai Récupération des sources du noyauwget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.5.tar.bz2 tar xjf linux-2.6.30.5.tar.bz2 -C /usr/src ln -s linux-2.6.30.5/ /usr/src/linux Récupération des sources de RTAIwget http://trainsim.ebvmultimedia.net/dl/rtai_3.7.1.orig.tar.gz tar zxf rtai_3.7.1.orig.tar.gz Récupération du patch pour Debianwget http://trainsim.ebvmultimedia.net/dl/rtai_3.7.1-2.diff.gz cd rtai-3.7.1/ gunzip -c ../rtai_3.7.1-2.diff.gz | patch -p1 --dry-run gunzip -c ../rtai_3.7.1-2.diff.gz | patch -p1 chmod u+x debian/rules Construction des paquets RTAIdpkg-buildpackage -rfakeroot -ucLes fichiers suivants vont être crées dans le dossier supérieur : - librtai1_3.7.1-2_i386.deb - librtai-dev_3.7.1-2_i386.deb - rtai_3.7.1-2.diff.gz - rtai_3.7.1-2.dsc - rtai_3.7.1-2_i386.changes - rtai_3.7.1-2_i386.deb - rtai-doc_3.7.1-2_all.deb - rtai-source_3.7.1-2_i386.deb Installation des paquets RTAIcd .. su dpkg -i librtai1_3.7.1-2_i386.deb dpkg -i librtai-dev_3.7.1-2_i386.deb dpkg -i rtai-source_3.7.1-2_i386.deb exit Construction des modules noyaucd /usr/src/linux make-kpkg clean time fakeroot make-kpkg --initrd \ --append-to-version -rtai \ --revision r1 \ --added-patches rtai \ --config menuconfig \ kernel-image \ kernel-headers \ kernel-source Configuration du noyauEnable loadable module support ---> enabled [*]Loadable module support ---> Module versioning support ---> disabled Processor type and features ---> HPET Timer Support ---> disabled Processor type and features ---> Interrupt pipeline ---> enabled [*] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> enabled [*] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Deprecated /proc/acpi files ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Deprecated power /proc/acpi directories ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Future power /sys interface ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Deprecated /proc/acpi/event support ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> AC Adapter ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Battery ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Button ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Video ---> module [M] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Fan ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Dock ---> enabled [*] Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Processor ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Disable ACPI for systems before Jan 1st this year ---> 0 Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Debug Statements ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> PCI slot detection driver ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Container and Module Devices ---> disabled Power management and ACPI options ---> ACPI (Advanced Configuration and Power Interface) Support ---> Smart Battery System ---> disabled Power management and ACPI options ---> APM (Advanced Power Management) BIOS support ---> disabled Power management and ACPI options ---> CPU Frequency scaling ---> disabled Choisissez le processeur qui correspond à votre machine : Processor type and features ---> Processor family ---> ... Si vous avez un processeur multi-coeur (SMP), ne choisissez pas une famille de processeur qui n'a pas de TSC (time stamp counter). NOTE: Aucun besoin de désactiver High Memory Support pour RTAI 3.7.1 et suivants. NOTE: Aucun besoin de désactiver Symmetric multi-processing support pour les machines mono-processeur pour RTAI 3.7.1 et suivants. Pour finir, sauvegarder la configuration et quitter menuconfig. Installation des paquets du noyaucd /usr/src su dpkg -i linux-image-2.6.30.5-rtai_r1_i386.deb dpkg -i linux-headers-2.6.30.5-rtai_r1_i386.deb rm linux ln -s linux-headers-2.6.30.5-rtai linux NOTE: Si vous avez un système multi-coeurs (SMP system), dédier le dernier coeur/CPU aux tâches temps réel peut augmenter les performances. Editer /boot/grub/menu.lst et ajouter le paramètre isolcpus à la fin de la ligne du noyau RTAI. La valeur du paramètre est le numéro du dernier processeur (le compteur commence à 0) : 1 pour un double-coeur, 3 pour un quadri-coeur kernel /vmlinuz-2.6.30.5-rtai root=/dev/sda5 ro isolcpus=1Rebootez votre ordinateur. rebootBooter avec le noyau RTAI. Contruction des modules noyau RTAIcd /usr/src tar jxf rtai-source.tar.bz2 cd /usr/src/linux fakeroot make-kpkg --append-to-version -rtai --added-modules rtai \ --config menuconfig modules_image Configuration des modules noyau RTAIAugmenter le nombre de processeurs :Machine (x86) ---> Number of CPUs (SMP-only) ---> 8 Base system ---> Other features ---> Mathfuns support in kernel ---> enabled Laisser les valeurs par défaut pour les autres paramètres, sauvegarder et quitter menuconfig. Installation des modules noyau RTAIcd /usr/src su dpkg -i rtai-modules-2.6.30.5-rtai_3.7.1-2+r1_i386.deb Regénérer les dépendances des modules du noyau linuxcd /usr/src/linux cp Module.symvers Module.symvers.old cat /usr/realtime/modules/Module.symvers >> Module.symvers ln -s /usr/realtime/modules/ /lib/modules/2.6.30.5-rtai/rtai depmod -a Tests RTAIcd /usr/realtime/testsuite/user/latency; time ./run cd /usr/realtime/testsuite/user/preempt/; time ./run cd /usr/realtime/testsuite/user/switches/; ./run cd /usr/realtime/testsuite/kern/latency/; time ./run cd /usr/realtime/testsuite/kern/preempt/; time ./run cd /usr/realtime/testsuite/kern/switches/; ./run RTnetInstallationEffectuer l'installation de RTAI d'abord. cd /usr/src wget http://trainsim.ebvmultimedia.net/dl/rtnet-0.9.11.tar.bz2 tar xvjf rtnet-0.9.11.tar.bz2 cd rtnet make menuconfigChoississez RTAI dans la configuration. make su make install run mknod /dev/rtnet c 10 240 Tests/sbin/rtnet start rtping |