Hệ điều hành

Một phần của tài liệu Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS (Trang 47)

Hệ điều hành Linux: Ubuntu 10.04

4.1.3. Các phầm mềm đƣợc sử dụng

Comedi: Cung cấp các trình điều khiển, thƣ viện hàm, và API giao tiếp với phần cứng truy nhập tín hiệu. Hỗ trợ hàm trăn cá thiết bị khác nhau.

www.comedi.org.

RTAI: Real-Time Application Interface (RTAI) là bản vá nhân Linux. RTAI

trèn một nhân phụ ở đó nhiệm vụ thời gian thực có thể thực hiện, bộ nhớ FIFOs và bộ nhớ chia sẻ có thể sử dụng để truyền dữ liệu giữa cá tiến không gian ngƣời dùng và không gian nhân.www.rtai.org.

RTAI-LIB: RTAI-Lib cho phép bạn biên dịch các sơ đồ khối với cơ cấu chấp hành và cảm biến thành ứng dụng có thể thực thi. Nó cung cấp giao tiếp giữa RTAI và phầm cứng truy nhận dữ liệu. Nó có trong sẵn gói phần mềm RTAI.

QRTAILab: QRTAILab giống nhƣ phần mềm hiện sóng, nó có thể kết nối với cá ứng dụng thời gian thực của bạn và cho bạn giám sát tín hiệu trên màn hình.

Nó cũng cho phép bạn điều chỉnh các thông số của ứng dụng thời gian thực trong

khi chạy. http://qrtailab.sourceforge.net

Matlab: Matlab là phầm mềm cho phép thiết kế mô phỏng hệ thống điều

46

4.2. Các bƣớc tiến hành cài đặt hệ điều hành thời gian thực RTAI.

4.2.1. Chuẩn bị các gói phần mềm cần thiết phục vụ cài dặt các phần mềm. 4.2.1.1. Các gói phục vụ chung cho tất cả phần mềm. 4.2.1.1. Các gói phục vụ chung cho tất cả phần mềm.

Bảng 4.1: Cài đặt các gói phần mềm phục vụ cài đặt chung cho hệ thống.

Tên gói phần mềm cvs

subversion build-essential

Lệnh thực hiện sudo apt-get install cvs subversion build-essential 

4.2.1.2. Các gói phục vụ cho cài đặt nhân.

Bảng 4.2: Các gói phần mềm phục vụ cài đặt cho nhân hệ thống.

Tên gói phần mềm kernel-package linux-source libncurses5-dev

Lệnh thực hiện sudo apt-get install kernel-package linux-source libncurses5-

dev 

4.2.1.3. Các gói phục vụ cho cài đặt rtai.

Bảng 4.3: Các gói phần mềm phục vụ cài đặt cho bản vá thời gian thực RTAI.

Tên gói phần mềm Libtool automake

Lệnh thực hiện sudo apt-get install libtool automake 

4.2.1.4. Các gói phục vụ cho cài đặt comedi-lib.

Bảng 4.4: Các gói phần mềm phục vụ cài đặt thƣ viện trình điều khiển Comedi.

Tên gói phần mềm bison flex

Lệnh thực hiện sudo apt-get install bison flex 

4.2.1.5. Các gói phục vụ cho cài đặt comedi-calibrate.

Bảng 4.5: Các gói phần mềm phục vụ cài đặt kiểm thử trình điều khiển Comedi.

Tên gói phần mềm libboost-dev

libboost-program-options-dev libgsl0-dev

47

dev libgsl0-dev 

4.2.1.6. Các gói phục vụ cho cài đặt qrtailab.

Bảng 4.6: Các gói phần mềm phục vụ cài đặt phần mềm giám sát quá trình QRTAILAB.

Tên gói phần mềm libqt4-dev libqwt5-qt4-dev

Lệnh thực hiện sudo apt-get install libqt4-dev libqwt5-qt4-dev 

4.2.2. Chuẩn bị các bộ cài cho hệ thống thời gian thực 4.2.2.1. Bộ cài Nhân. 4.2.2.1. Bộ cài Nhân.

Bảng 4.7: Các lệnh cài đặt nhân hệ thống.

Tên phần mềm Kernel

Địa chỉ website http://www.kernel.org

Lệnh thực hiện cd /usr/src 

sudo wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-

2.6.32.11.tar.bz2 

sudo tar xjvf linux-2.6.32.11.tar.bz2 

sudo ln –s linux-2.6.32.11 linux 

4.2.2.2. Bộ cài RTAI.

Bảng 4.8: Các lệnh cài đặt phần mềm thời gian thực.

Tên phần mềm RTAI

Địa chỉ website https://www.rtai.org

Lệnh thực hiện cd /usr/src 

sudo cvs -d:pserver:anonymous@cvs.gna.org:/cvs/rtai co magma

sudo ln –s magma rtai 

4.2.2.3. Bộ cài COMEDI.

Bảng 4.9: Các lệnh cài đặt trình điều khiển thiết bị Comedi.

Tên phần mềm COMEDI

Địa chỉ website http://www.comedi.org

Lệnh thực hiện cd /opt 

48 login  sudo cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedi  sudo cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedilib  sudo cvs -d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedi_calibrate  sudo cvs –d :pserver:anonymous@cvs.comedi.org:/cvs/comedi co comedi-nonfree-firmware  4.2.2.4. Bộ cài QRTAILab

Bảng 4.10: Các lệnh cài đặt phần mềm giám sát quá trình QRTAILAB.

Tên phần mềm QRTAILab

Địa chỉ website http://www.qrtailab.sf.net

Lệnh thực hiện cd /opt 

sudo svn co

https://qrtailab.svn.sourceforge.net/svnroot/qrtailab/trunk qrtailab



4.2.3. Thực hiện cài đặt các phần mềm.

Sau khi cài hệ điều hành Ubuntu 10.4, Thì hệ thống sử dụng gói phần mềm grub 2 để quản lý các hệ điều hành có trên hệ thống. Tuy nhiên, do g bản vá thời gian thực RTAI chƣa tƣơng thích với gói phần mềm này, nên cần phải đƣa về sử dụng phiên bản cũ hơn đó là Grub Legacy (GRUB 0.97).

4.2.3.1. Thực hiện cài đặt phiên bản quản lý hệ điều hành GRUB 0.97 Bảng 4.11: Các lệnh thực hiện lƣu lại cấu hình phiên bản Grub 2. Bảng 4.11: Các lệnh thực hiện lƣu lại cấu hình phiên bản Grub 2.

Lệnh sudo cp /etc/default/grub /ect/default/grub.old 

sudo cp –R /ect/grub.d /etc/grub.d.old 

sudo cp –R /boot/grub /boot/grub.old 

Mục đích Lƣu lại cấu hình cài đặt của phiên bản Grub 2 để có thể khôi phục khi xảy ra lỗi.

Bảng 4.12: Các lệnh thực hiện gỡ bỏ gói phần mềm Grub 2. Lệnh sudo apt-get purge grub2 grub-pc 

49

Mục đích Gỡ bỏ gói phần mềm quản lý khởi động của các hệ điều hành.

Lúc này hệ thống sẽ không thể khởi động cho tới khi gói phần mềm quản lý khởi động khác đƣợc cài vào.

Bảng 4.13: Các lệnh thực hiện cài đặt gói phần mền grub legacy (GRUB 0.97).

Lệnh sudo apt-get install grub 

Mục đích Cài đặt gói phần mền grub legacy (GRUB 0.97).

Lúc này hệ thống đã có thể khởi động. Tuy nhiên để có thể lựa chọn các hệ điều hành để thực hiện hệ thống thì phải tạo cấu hình lại hệ thống.

Bảng 4.14: Các lệnh thực hiện tạo file cấu hình khởi động cho hệ thống.

Lệnh sudo update-grub 

sudo grub-install /dev/sdX 

echo “grub hold” | sudo dpkg –set-selections 

sudo reboot 

Mục đích Trong đó: /dev/sdX: là phần vùng đặt root của linux (có thể là sda, sdb …)

Tạo ra các file cấu hình lựa chọn hệ điều hành khở động: menu.lst và stage1/stage2.

Khởi động lại máy để hoàn thành cài đặt gói phần mềm GRUB 0.97

4.2.3.2. Thực hiện cài đặt bản vá nhân hỗ trợ thời gian thực. Bảng 4.15: Các lệnh thực hiện sửa đổi mã nguồn của nhân. Bảng 4.15: Các lệnh thực hiện sửa đổi mã nguồn của nhân.

Lệnh cd /usr/src/linux 

sudo su

patch -p1 < /usr/src/rtai/base/arch/x86/patches/hal-linux-2.6.32.11-x86-

2.6-03.patch 

Mục đích Thực hiện sử đổi mã nguồn của nhân để nhân có thể hỗ trợ hệ thống thực hiện thời gian thực

Bảng 4.16: Các lệnh thực hiện tạo file cấu hình biên dịch nhân. Lệnh sudo cp /boot/config-`uname –r` .config 

cd /usr/src/linux 

50

Mục đích Thực hiện tạo ra file cấu hình để biên dịch nhân hỗ trợ thời gian thực. Những lựa chọn ở đây sẽ ảnh hƣởng đến hiệu năng thực hiện thời gian thực của hệ thống.

Giao diện để cấu hình nhân:

Hình 4.1: Giao diện cấu hình biên dịch nhân.

Để cấu hình cho hệ thống thời gian thực ở đây ta phải loại bỏ các yếu tố dẫn đến việc hệ thống loại bỏ trễ. Có thể lựa chọn cấu hình nhƣ ở dƣới:

 Enable loadable module support:

o chọn “Enable module support”.

o bỏ chọn “Module versioning support”

 Processor type and features:

o Bỏ chọn “Tickless System”.

o Chọn cấu máy là PC-Compatible

o Chọn dòng của bộ xử lý Due 2 core.

o Chọn « Preemption Model (Preemptible kernel (Low-Latency

Desktop))”

51

o bỏ chọn “CPU Frequency scaling”.

Bảng 4.17: Các lệnh thực hiện biên dịch nhân.

Lệnh cd /usr/src/linux 

sudo make-kpkg clean 

sudo make-kpkg --initrd kernel_image kernel_headers kernel_source 

Mục đích Thực hiện biên dịnh mã nguồn nhân thành file có thể thực hiện trong môi trƣờng Linux.

Bảng 4.18: Các lệnh thực hiện vài đặt nhân. Lệnh cd /usr/src 

sudo dpkg -i linux-headers-2.6.32.11-rtai_2.6.32.11-rtai-

10.00.Custom_i386.deb 

sudo dpkg -i linux-image-2.6.32.11-rtai_2.6.32.11-rtai-

10.00.Custom_i386.deb 

sudo update-initramfs –c –k 2.6.32.11-rtai 

sudo reboot 

Mục đích Thực hiện cài đặt phiên bản nhân đã biên dịch.

Khởi động lại hệ thống và chọn phiên bản nhân hỗ trọ thời thực này.

4.2.3.3. Cài đặt các module hỗ trợ lập trình thời gian thực RTAI Bảng 4.19: Các lệnh thực hiện cài đặt bản vá thời gian thực RTAI. Bảng 4.19: Các lệnh thực hiện cài đặt bản vá thời gian thực RTAI.

Lệnh cd /usr/src/rtai 

sudo make menuconfig 

sudo make 

sudo make install 

sudo sed -i 's/\(PATH=\"\)/\1\/usr\/realtime\/bin:/' /etc/environment

'export PATH=/usr/realtime/bin:$PATH' 

Mục đích Thự hiện cài đặt các module hỗ trợ thời gian thực của hệ thống. Chú ý:

Trong trƣờng hợp xảy ra lỗi nhƣ: “../../../base/include/asm/rtai_leds.h:24:20: error:asm/io.h: No such file or directory” thì xóa bỏ dòng “#include <asm/io.h>” trong file rtai_leds.h và thực hiện lại lệnh make.

52

4.2.3.4. Cài đặt trình điều khiển thiết bị cho các thiết bị mở rộng COMEDI Bảng 4.20: Các lệnh thực hiện cài đặt trình điều khiển thiết bị truy nhập dữ liệu.

Lệnh cd /opt/comedi 

sudo sh autogen.sh 

sudo ./configure --with-linuxdir=/usr/src/linux --with-

rtaidir=/usr/realtime 

sudo make 

sudo make install 

sudo make dev 

Mục đích Cài đặt trình điều khiển cho các thiết bị truy nhập dữ liệu đƣợc bổ xung vào hệ thống.

Bảng 4.21: Các lệnh thực hiện cài đặt các thƣ việc hỗ trợ lập trình để khai thác thiết bị truy nhập dữ liệu (thƣ việc COMEDILIB).

Lệnh cd /opt/comedilib 

sudo sh autogen.sh 

sudo ./configure 

sudo make 

sudo make install 

sudo mkdir /usr/local/include/linux 

Mục đích Cài đặt thƣ viện hỗ trợ lập trình giao tiếp với thiết bị truy nhập dữ liệu.

Bảng 4.22: Các lệnh thực hiện cài đặt các công cụ căn chỉnh, kiểm định thiết bị truy nhập dữ liệu(COMEDI-CALIBRATE).

Lệnh cd /opt/comedi_calibrate 

sudo autoreconf -i -B m4 

sudo ./configure 

sudo make 

sudo make install 

Mục đích Cài đặt các công cụ căn chỉnh thiết bị truy nhập dữ liệu. Căn chỉnh phạm vi, giá trị quy chiếu của các cổng vào/ra.

53

4.2.3.5. Cài đặt các module hỗ trợ thời gian thực RTAI, cập nhập hỗ trợ thêm module truy nhập dữ liệu COMEDI

Bảng 4.23: Thêm các thƣ viện của trình điều khiển truy nhập dữ liệu mở rộng vào bản vá thời gian thực RTAI.

Lệnh sudo cp /opt/comedi/include/linux/comedi.h /usr/local/include/ 

sudo cp /opt/comedi/include/linux/comedilib.h /usr/local/include/ 

sudo ln -s /usr/local/include/comedi.h 

/usr/local/include/linux/comedi.h 

sudo ln -s /usr/local/include/comedilib.h 

/usr/local/include/linux/comedilib.h 

cd /usr/src/rtai 

sudo make menuconfig 

Mục đích Thêm các module điều khiển truy nhập dữ liệu mở rộng và thực hiện cấu hình để RTAI hỗ trợ module điều khiển.

Để cấu hình RTAI hỗ trợ module điều khiển. thực hiện nhƣ sau;

Trong mục “Add-Ons” chọn “Real Time COMEDI support in user space”

54

Hình 4.2: Giao diện cấu hình biên dịch các module RTAI.

Bảng 4.24: Thực hiện biên dịch và cài lại các module RTAI đã tích hợp trình điều khiển Comedi.

Lệnh sudo ./configure 

sudo make 

sudo make install 

Mục đích Thực hiện cài đặt các module hỗ trợ lập trình thời gian thƣc RTAI sau khi thêm module hỗ trợ các bo mạch truy nhập dữ liệu mở rộng

Bảng 4.25: Tải các module RTAI vào nhân.

Lệnh /sbin/insmod /usr/realtime/modules/rtai_smi.ko  /sbin/insmod /usr/realtime/modules/rtai_hal.ko  /sbin/insmod /usr/realtime/modules/rtai_lxrt.ko  /sbin/insmod /usr/realtime/modules/rtai_fifos.ko  /sbin/insmod /usr/realtime/modules/rtai_sem.ko  /sbin/insmod /usr/realtime/modules/rtai_mbx.ko 

55 /sbin/insmod /usr/realtime/modules/rtai_msg.ko  /sbin/insmod /usr/realtime/modules/rtai_netrpc.ko  /sbin/insmod /usr/realtime/modules/rtai_shm.ko  modprobe comedi  modprobe kcomedilib  modprobe comedi_fc  modprobe ni_mio_cs  insmod /usr/realtime/modules/rtai_comedi.ko 

comedi_config -v /dev/comedi0 ni_mio_cs 0x0100 

comedi_calibrate –calibrate 

chmod a+rw /dev/comedi0 

Mục đích Thực hiện tải các module hỗ trợ thời gian thực vào nhân để các ứng dụng có thể thực hiện đƣợc các nhiệm vụ thời gian thực.

Chú ý: Để các hệ thống có thể chạy đƣợc thời gian thực thì các module này phải đƣợc tải lại mỗi khi khở động.

Cài đặt tải tự động các module thời gian thực mỗi khi khởi động hệ thống.

 Tạo file start_rtai trong /usr/local/bin/start_rtai chứa các lệnh thực

hiện tải các module vào nhân ở trên.

 Thay đổi thực tính để file này có thể thực hiện trong môi trƣờng

Linux bằng lệnh: sudo chmod a+x /usr/local/bin/start_rtai.

 Mở file /etc/rc.local bằng lệnh sudo gedit /etc/rc.local để thêm lệnh

nạp các module RTAI vào. Sau khi mở file /etc/rc.local, chèn dòng lệnh „/usr/local/bin/start_rtai‟ vào trƣớc lệnh „exit 0‟. Các lệnh nằm trong dấu nháy đơn.

 Khởi động lại máy, hoàn tất quá trình cài đặt hệ điều hành thời gian

thực RTAI.

 Để kiểm tra các module đƣợc nạp vào nhân chƣa có thể thông qua

56

Hình 4.3: Kết quả kiểm tra các module RTAI đƣợc nạp bằng lệnh dmesg.

4.2.3.6. Cài đặt công cụ giám sát các thông số của hệ thống QRTAILAB Bảng 4.26: Cài đặt phần mềm giám sát quá trình Qrtailab. Bảng 4.26: Cài đặt phần mềm giám sát quá trình Qrtailab.

Lệnh cd /opt/qrtailab 

sudo qmake-qt4 

sudo make 

sudo make install 

Mục đích Cài đặt công cụ giám sát các thông số của ứng dụng thời gian thực. Nó có thể thực hiện thay đổi các thuộc tính của đối tƣợng thời gian thực. Giao diện của chƣơng trình qrtailab:

57

Hình 4.4: Giao diện của phần mềm giám sát QRTAILAB.

4.2.3.7. Cài đặt môi trƣờng phát triển ứng dụng thời gian thực Matlab

Matlab đƣợc lƣu trữ trong file matu2k8b.iso có định dạng ISO (là định dạng file ảnh của đĩa DVD-ROM).

Bảng 4.27: Tạo đƣờng dẫn cho phép truy nhập vào file matu2k8b.iso.

Lệnh sudo mkdir /media/matlab_iso 

sudo mount –o loop /path_to_iso_file/matu2k8b.iso 

Mục đích Tạo thƣ mục để có thể truy nhập đƣợc vào file matu2k8b.iso. nhƣ một thƣ mục thông thƣờng để có thể thực hiện các file cài đặt bên trong matu2k8b.iso.

„path_to_iso_file‟ là đƣờng dẫn tới thƣ mục lƣu trữ file matu2k8b.iso.

Bảng 4.28: Cài đặt matlab.

Lệnh cd /media/matlab_iso 

58

Mục đích Thực hiện chạy chƣơng trình cài đặt để tiến hành cài matlab.

Chƣơng trình cài đặt sẽ cho ra giao diện đồ họa để tiến hành cài đặt, thực hiện theo chỉ dẫn của chƣơng trình này để có thể cài matlab. Ở đây ta đặt đƣờng dẫn tới chƣơng trình matlab là: „/usr/local/matlabR2008b‟

Giao diện đồ hoạt cài đặt matlab:

Hình 4.5: Giao diện cài đặt phần mềm matlab.

Bảng 4.29: Tải mã nguồn của bản vá RTAI vào thƣ viện toolbox của matlab.

Lệnh sudo cp –r /usr/src/rtai/rtai-lab/matlab /usr/local/matlabR2008b 

Mục đích Chuẩn bị mã nguồn của các module RTAI mà matlab hỗ trợ. Thêm các module RTAI vào matlab.

Biên dịch các thƣ việc để có thể thực hiện đƣợc matlab.

 vào thƣ mục cài matlab: „cd /usr/local/matlabR2008b‟

 chạy phầm mềm matlab: „sudo matlab‟

 Cho file setup.m trong thƣ mục

/usr/local/matlabR2008b/rtw/c/rtai/setup.m thực hiện bằng công cụ thự thi dành cho file .m của matlab.

Sau khi biên dịch các thƣ viện cho các module RTAI tích hợp trong matlab. Trong thƣ viện toolbox của Simulink của thêm các module của RTAI nhƣ hình dƣới:

59

Một phần của tài liệu Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS (Trang 47)

Tải bản đầy đủ (PDF)

(104 trang)