Guida all installazione di RTAI Gianluca Palli DEIS - Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna Viale Risorgimento 2, 40136 Bologna, Italy gianluca.palli@unibo.it Breve guida per l installazione di RTAI RTAI, Linux, sistemi real time. 23 aprile 2009 Sommario Index Terms I. INTRODUZIONE La procedura è complessa e non esente da inconvenienti tipo errori di compilazione e quanto altro, comunque se seguite la mia ricetta dovreste cavarvela abbastanza bene... Premetto che la probabilità di successo utilizzando i pacchetti delle varie distribuzioni è prossima allo zero assoluto!!! Il modo più semplice consiste nel copiare i sorgenti che trovate all interno del CD di RTAI- Knoppix [1] nella cartella /usr/src/ e ricompilare il tutto nella sequenza corretta. II. IL COMPILATORE Prima di tutto, il compilatore: ho sperimentato in passato alcuni problemi con le ultime versioni del gcc (4.X), quindi consiglio di utilizzare il gcc-3.3 (o gcc-3.4). Con i comandi: gcc --version g++ --version vericate quale versione del compilatore avete sulla vostra macchina (segue una spiegazione algoritmica della procedura da seguire :) ). if versione = 3.XX ; then potete procedere senza problemi; if la versione è 4.XX ; then vericate se è installata anche una versione precedente; cd /usr/bin/ #questa directory potrebbe richiedere qualche aggiustamento a seconda della distribuzione, vericate in quale cartella siano il compilatore con il comando "which gcc"
if [ -x gcc-3.* ] \&\& [ -x g++-3.* ] ; then rm gcc; #tranquilli, è un link simbolico ln -s gcc-3.xx gcc; #sostituire con la versione 3 più recente rm g++; #tranquilli, anche questo è un link simbolico ln -s g++-3.xx g++; #sostituire con la versione 3 più recente else installate il gcc-3.3.x e g++-3.3.x; #per essere sicuri che anche i link vengano sostituiti rm gcc; #sempre link simbolico ln -s gcc-3.xx gcc; #sostituire con la versione 3 più recente rm g++; #link simbolico ln -s g++-3.xx g++; #sostituire con la versione 3 più recente ; if la versione è 2.XX ; then #consiglio; aggiornate il sistema!!! :) installate il gcc-3.3.x e g++-3.3.x; III. COPIA DEI SORGENTI (SE USATE IL CD DI RTAI-KNOPPIX) Copiate il contenuto delle cartelle (se usate il cd di RTAI-Knoppix) /usr/src/linux-2.6.17.11 /usr/src/rtai-3.4 /usr/src/comedi /usr/src/comedilib /usr/src/mesa-6.2 /usr/src/efltk /usr/realtime nelle corrispondenti cartelle sul vostro HD. Create sul vostro HD i link simbolici ln -s /usr/src/linux-yourversion /usr/src/linux ln -s /usr/src/rtai-yourversion /usr/src/rtai IV. PREPARAZIONE DEI SORGENTI (SE NON USATE IL CD DI RTAI-KNOPPIX) Scaricate le versioni del kernel Linux e RTAI desiderate. Nell eseguire questa operazione, consiglio di prendere l ultima versione stabile di RTAI (al momento della scrittura di questo documento è disponibile la versione 3.7) e vericare quali versioni del kernel Linux sono supportate dalle patch fornite con RTAI. Di conseguenza, scaricate una versione compatibile del kernel di Linux (è consigliabile la versione più recente). Scaricate e scompattate i sorgenti di Linux e di RTAI: mv linux-yourversion.tar.gz /usr/src
mv rtai-yourversion.tar.gz /usr/src cd /usr/src tar xfvz linux-yourversion.tar.gz tar xfvz rtai-yourversion.tar.gz Create sul vostro HD i link simbolici: ln -s /usr/src/linux-yourversion /usr/src/linux ln -s /usr/src/rtai-yourversion /usr/src/rtai Applicate la patch di RTAI ai sorgenti del kernel Linux: cd linux patch -p1 < /usr/src/rtai/base/arch/i386/patches/hal-linux-yourkernelversion Per la congurazione del kernel si rimanda a riferimenti specici [2] [5]. Nel seguito sostituite la versione del kernel di Linux (2.6.17.11) e la versione di RTAI (3.4) con le versioni da voi selezionate. La descrizione della procedura di installazione procede assumendo le versioni disponibili nel CD di RTAI-Knoppix. Sul vostro pc eseguite V. COMPILAZIONE DEL KERNEL cd /usr/src/linux Se volete ricongurare qualcosa nel kernel, compilare particolari moduli ecc... [2] [5] menucong Compilazione e installazione: modules_install Eventualmente generate un opportuno initrd per il vostro sistema. Questa operazione è fortemente dipendente dal vostro hardware e dalla congurazione del kernel che avete scelto. Per informazioni man mkinitrd man update-initramfs Abbiate cura di ricongurare opportunamente il vostro bootloader per avviare il nuovo kernel. A tale proposito consultate i manuali del vostro bootloader (normalmente nei PC vengono installati LILO (nei sistemi vecchi) oppure GRUB).
man lilo man grub Ora potete riavviare la macchina con il nuovo kernel e vericare che il sistema funzioni correttamente. Con il comando uname -r dovrebbe comparirvi la scritta 2.6.17.11 che indica che avete caricato il kernel corretto, altrimenti signica che qualcosa è andato storto... VI. COMPILAZIONE LIBRERIE GRAFICHE MESA cd /usr/src/mesa-6.2 linux Viene avviato uno script interattivo di installazione. Al primo avvio utilizzate le impostazioni di default premendo invio ad ogni rischiesta. Una volta terminato rilanciate e scegliete come directory di installazione /usr/x11r6/include e /usr/x11r6/lib Al termine dello script lanciate il comando VII. COMPILAZIONE EFLTK cd /usr/src/efltk./congure./e./e
Usate il comando VIII. COMPILAZIONE DI RTAI menucong per visualizzare le opzioni di congurazione di RTAI [6]. Compilazione e installazione: dev cp -r /usr/realtime/modules /lib/modules/2.6.9-adeos/rtai depmod -ae IX. LE LIBRERIE COMEDI cd /usr/src/comedi dev cd /usr/src/comedilib X. CONLUSIONI Spero di non essermi dimenticato nulla e di avervi dato le istruzioni nell ordine corretto. Segnalatemi eventuali problemi (gianluca.palli@unibo.it), cercherò di risolverli. Buon divertimento... :) RIFERIMENTI BIBLIOGRAFICI [1] http://www-lar.deis.unibo.it/people/gpalli/les/rtai_knoppix.iso [2] http://www.opennet.ru/docs/howto/kernel-howto-11.html [3] http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/ch04.pdf [4] http://tldp.org/howto/remote-serial-console-howto/congure-kernel.html [5] http://www.linux.org/docs/ldp/howto/ppp-howto/kernel-conguration.html [6] http://www.cse.iitb.ac.in/ cs684/rtatutors/rtai_install.pdf [7] https://www.rtai.org/rtailab/rtai-lab-tutorial.pdf