Poradnik z cyklu dla programist�w. Wykonywanie zada� w czasie rzeczywistym nie jest �atwe . Niestety system operacyjny robi swoje przekazuj�c sterowanie do wielu proces�w na nim uruchomionych skutecznie zwalniaj�c inne procesy. Co zrobi�, aby zatem dok�adnie zmierzy� czas wykonania jakiej� operacji ? Potrzeba pomiar�w w czasie rzeczywistym. A to nie jest �atwe na zwyk�ym systemie . W tym miejscu przydaje si� Linux z j�drem czasu rzeczywistego z wykorzystaniem projektu RTAI.
W tym przypadku wszystko polega na tym, �e j�dro otrzymuje najni�szy z mo�liwych priorytet�w, za� nasze zadanie staje si� najwa�niejsze .
Jest kilka ciekawych projekt�w zwi�zanych z czasem rzeczywistym. Pierwszym jest RTLinux, jednak niestety zosta� on do�� dawno zawieszony . Innym rozwi�zaniem jest RTAI.
W poradniku tym poka�� jak zainstalowa� Linuksa czasu rzeczywistego, co wbrew pozorom nie jest �atwe, a zgodne wykonywanie polece� z instrukcj� dawan� przez autor�w ko�czy si� fiaskiem.
Ca�y proces zostanie zademonstrowany na
RTAI 3.8 oraz najnowszej dystrybucji Slackware.
Proces instalacji RTAI Linux:
1. Zainstaluj Linuksa
Instalacja ca�ego systemu jest prosta, jednak zwr�� uwag�, �e chcesz mie� system RT (Real Time), wi�c nie instaluj �mieci. Zainstaluj tylko samo j�dro, programy do konsoli (przyda si� np MC), biblioteki. Nie instaluj �r�de� j�dra, s� zb�dne oraz X�w. Jako g��wny system plik�w wybierz EXT3.
2. �ci�gnij j�dro Linux 2.6.32.2. To najnowsze j�dro w pe�ni zgodne z RTAI. J�dro to znajdziesz na serwerze kernel.org
J�dro wypakuj do folderu
/usr/src/linux
To wa�ne, gdy� instalator RTAIa tam b�dzie go szuka�.
3. �ci�gnij
RTAI 3.8 i wypakuj go do
/usr/src/rtai/
4. Z katalogu
/usr/src/rtai/base/arch/x86/ bierzemy patcha dla naszego j�dra i kopiujemy go do folderu
/usr/src/
Dla u�atwienia zmie� mu nazw� na
patch
5. Wchodzimy do
/usr/src/linux/ i tam wywo�ujemy polecenie
patch -p1 < ../patch
W tym momencie nasze j�dro zostanie zmodyfikowane do u�ywania go w trybie RT.
6. Wykonujemy
make menuconfig
W��czamy obs�ug� USB, systemu plik�w EXT3 i inne potrzebne nam opcje. Wa�ne aby tak�e wybra� odpowiedni procesor. Liczb� rdzeni mo�na zostawi� domy�lnie na 8 chyba, �e mamy wi�cej.
Zapisz konfiguracj� .config
5. W zapisanym .config zmieni� trzeba r�cznie kilka opcji
CONFIG_SPARSE_IRQ=n
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_EXT3_FS_SECURITY=y
Ustaw te zmienne, gdy� inaczej j�dro si� nie skompiluje lub te� nie b�dzie si� chcia�o uruchomi�.
Na razie j�dro pozostaw takie jakie jest.
6. Przejd� do folderu z RTAI czyli
/usr/src/rtai/
Co najwa�niejsze to ustaw prawa dost�pu na 777 poleceniem
chmod
7. Niestety makefile posiada b��d w sk�adni przez co nie uruchomi si� on do ko�ca. Trzeba go edytowa�.
W linijce mniej wi�cej o numerze 133 znajdziesz all
%::
Zmie� to na
all ::
8. Teraz mo�na ju� swobodnie wykona� polecenie
make menuconfig
W opcjach ustaw dok�adn� liczb� posiadanych rdzeni procesora.
9. Wykonaj kolejno komendy
make i
make install
W tym momencie RTAI ju� si� zainstaluje. Czas zatem wr�ci� do instalacji j�dra.
10. Przejd� do folderu
/usr/src/linux/
11. Wykonaj kolejno polecenia:
make dep
make clean
make bzImage
make modules
make modules_install
cp arch/i386/boot/bzImage /boot/rtlinuz
Dzi�ki temu stworzysz nowe j�dro, kt�re nast�pnie umie�cisz w folderze rozruchowym. Teraz pozosta�o doda� opcje uruchamiania systemu w trybie RT
12. Otw�rz
/etc/lilo.conf i na samym ko�cu edytuj bootowanie dodaj�c startowanie nowego j�dra. Zwr�� uwag� co mia�o podane normalne j�dro w pozycji root, musisz doda� tak samo. W moim przypadku doda�em nast�puj�ce pozycje:
image = boot/rtlinuz
label=RTAILinux
root = dev/sda2
read-only
Po zapisaniu zostaje ju� tylko stworzenie nowego punktu �adowania, a wi�c w konsoli wydaj polecenie
lilo
W tym momencie powinno wszystko zosta� zako�czone, wystarczy komenda reboot aby na nowo w��czy� komputer i sprawdzi� czy RTAI dzia�a. Je�li nie ruszy, uruchom system na zwyk�ym j�drze. Je�li nie da�e� sobie rady napisz na naszym
FORUM.
Je�li jednak dzia�a wszystko, czas na test. Wpisz
cd /usr/realtime/modules
sudo insmod rtai_hal.ko
sudo insmod rtai_lxrt.ko
I ju� wszystko b�dzie jasne. Nie mo�esz mie� oczywi�cie �adnych b��d�w.
A wi�c mi�ego u�ytkowania i pozdrawiam.
Wszelkie prawa zastrze�one