<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog ngohaibac&#187; Hệ thống thời gian thực</title>
	<atom:link href="http://www.ngohaibac.net/category/open-source/realtime-embedded-system/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ngohaibac.net</link>
	<description>Hãy chia sẻ để được chia sẻ.</description>
	<lastBuildDate>Sat, 15 Oct 2011 14:02:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Demo sử dụng RTAI, ComediLib kết hợp với Matlab/Simulink/RTW</title>
		<link>http://www.ngohaibac.net/demo-su-dung-rtai-comedilib-ket-hop-voi-matlabsimulinkrtw/</link>
		<comments>http://www.ngohaibac.net/demo-su-dung-rtai-comedilib-ket-hop-voi-matlabsimulinkrtw/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 10:36:45 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Hệ thống thời gian thực]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Comedi]]></category>
		<category><![CDATA[RTAI]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/?p=810</guid>
		<description><![CDATA[Sau khi tốn một thời gian config linh tinh với Ubuntu 8.04 cuối cùng cài đặt xong RTAI và ComediLib nhân diện được xong cái PCI6220 của NI. Đến phần cài cái trình để biên dịch mô hình thành mã C thì thằng Scilab/Scicos chạy tốn quá nhiều CPU, move 1 cái mô hình là [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/make-exe-file-in-matlab/' rel='bookmark' title='Tạo file .exe trong Matlab dùng Matlab Compiler'>Tạo file .exe trong Matlab dùng Matlab Compiler</a></li>
<li><a href='http://www.ngohaibac.net/matlab-tinh-toan-thoi-gian-chay-ung-dung-mot-ham/' rel='bookmark' title='Matlab - tính toán thời gian chạy ứng dụng, một hàm'>Matlab - tính toán thời gian chạy ứng dụng, một hàm</a></li>
<li><a href='http://www.ngohaibac.net/rtai-beginners-guide/' rel='bookmark' title='RTAI - Beginner&#039;s Guide'>RTAI - Beginner's Guide</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Sau khi tốn một thời gian config linh tinh với Ubuntu 8.04 cuối cùng cài đặt xong RTAI và ComediLib nhân diện được xong cái PCI6220 của NI. Đến phần cài cái trình để biên dịch mô hình thành mã C thì thằng Scilab/Scicos chạy tốn quá nhiều CPU, move 1 cái mô hình là 100% CPU luôn, đơ cả máy. Thế là quay sang dùng Matlab/Simulink/RTW.</p>
<p>Dùng<a href="http://www.mathworks.com/products/rtw/" target="_blank"> Real-Time Workshop</a> để biên dịch, rồi dùng QRtaiLab để chạy kết hợp Real-Time. Thằng QRtaiLab có ưu điểm hơn hẳn so với xrtaiLab. Xem <a href="http://qrtailab.sourceforge.net/performance.html" target="_blank">sự so sánh </a></p>
<p>Differences between xrtailab and qrtailab:</p>
<table border="1">
<tbody>
<tr>
<td></td>
<td>xrtailab</td>
<td>qrtailab</td>
</tr>
<tr>
<td>saving process</td>
<td>Is blocked by the GUI.</td>
<td>Is not blocked by the GUI as the scope thread is a hard real time thread. saving cannot be disturbed. Because of this qrtailab can block the keybord, if qrtailab consumes to much cpu power.</td>
</tr>
<tr>
<td>plotting much data</td>
<td>the plotting and saving is not in realtime</td>
<td>plotting and saving is in realtime</td>
</tr>
<tr>
<td>cpu load for q(x)rtailab (example 1)</td>
<td>90%</td>
<td>20%</td>
</tr>
<tr>
<td>cpu load for netrpc (example 1)</td>
<td>1.3%</td>
<td>25%</td>
</tr>
<tr>
<td>cpu load for X (example 1)</td>
<td>3%</td>
<td>40 %</td>
</tr>
</tbody>
</table>
<p>Mới đầu demo cái testing của nó, không dính gì đến phần cứng cả, hôm sau gắn cái connector cẩn thận demo giao tiếp với board PCI6220 dùng thư viện driver của ComediLib.</p>
<p style="text-align: center;"><a href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Wordpress%20Blog/RTAI_Simulink_test.png" rel="shadowbox[sbpost-810];player=img;"><img class="aligncenter" title="RTAI_Simulink_test.png" src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Wordpress%20Blog/RTAI_Simulink_test.png" alt="" width="600" height="456" /></a></p>
<p>Mô hình là cái hình nằm phía dưới bên trái test.mdl (sử dụng Simulink), còn mấy cái khác là của QRtaiLab. Tât cả các tham số của mô hình, .. đều setup được thông qua cửa sổ <strong>Parameters Manager</strong>.</p>
<p>Đây là screenshot để chứng tỏ đã detect được board PCI 6220:</p>
<p><a href="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Wordpress%20Blog/Screenshot-bioroboticbiorobotic-lab.png" rel="shadowbox[sbpost-810];player=img;"><img class="alignnone" title="Screenshot-bioroboticbiorobotic-lab.png" src="http://i280.photobucket.com/albums/kk189/ngohaibac_dot_net/Wordpress%20Blog/Screenshot-bioroboticbiorobotic-lab.png" alt="" width="598" height="328" /></a></p>
<p>Note: Chia sẻ Matlab R2008b cho Unix từ server của mình (gần 4GB): <a class="dir" href="ftp://220.68.68.142/Softwares/Mathworks.Matlab.R2008b.UNIX.DVD.ISO-TBE">Mathworks.Matlab.R2008b.UNIX.DVD.ISO-TBE</a></p>
<p>Chúc anh em thành công.</p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=810&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/make-exe-file-in-matlab/' rel='bookmark' title='Tạo file .exe trong Matlab dùng Matlab Compiler'>Tạo file .exe trong Matlab dùng Matlab Compiler</a></li>
<li><a href='http://www.ngohaibac.net/matlab-tinh-toan-thoi-gian-chay-ung-dung-mot-ham/' rel='bookmark' title='Matlab - tính toán thời gian chạy ứng dụng, một hàm'>Matlab - tính toán thời gian chạy ứng dụng, một hàm</a></li>
<li><a href='http://www.ngohaibac.net/rtai-beginners-guide/' rel='bookmark' title='RTAI - Beginner&#039;s Guide'>RTAI - Beginner's Guide</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/demo-su-dung-rtai-comedilib-ket-hop-voi-matlabsimulinkrtw/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>RTAI - Beginner&#039;s Guide</title>
		<link>http://www.ngohaibac.net/rtai-beginners-guide/</link>
		<comments>http://www.ngohaibac.net/rtai-beginners-guide/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 02:37:41 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Hệ thống thời gian thực]]></category>
		<category><![CDATA[RTAI]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/?p=784</guid>
		<description><![CDATA[Tài liệu nói một chút về khái niệm Real-Time và giới thiệu về cách viết Module cho Kernel, ... các module RTAI. Mình chuyển ra file .pdf từ tài liệu này Chúc các bạn thành công. 17/04/2009: Update lại file. Related posts:Nhật kí cài đặt RTAI Comedi Scilab trên Ubuntu 8.10 Ubuntu Pocket Guide and [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/nhat-ki-cai-dat-rtai-comedi-scilab-tren-ubuntu-810/' rel='bookmark' title='Nhật kí cài đặt RTAI Comedi Scilab trên Ubuntu 8.10'>Nhật kí cài đặt RTAI Comedi Scilab trên Ubuntu 8.10</a></li>
<li><a href='http://www.ngohaibac.net/ubuntu-pocket-guide-and-reference/' rel='bookmark' title='Ubuntu Pocket Guide and Reference'>Ubuntu Pocket Guide and Reference</a></li>
<li><a href='http://www.ngohaibac.net/cac-tinh-chat-cua-cac-dieu-khien-trong-gui-matlab/' rel='bookmark' title='C&#225;c t&#237;nh chất của c&#225;c điều khiển trong GUIDE Matlab'>C&#225;c t&#237;nh chất của c&#225;c điều khiển trong GUIDE Matlab</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Tài liệu nói một chút về khái niệm Real-Time và giới thiệu về cách viết Module cho Kernel, ... các module RTAI. Mình chuyển ra file .pdf từ <a href="https://www.rtai.org/index.php?module=documents&amp;JAS_DocumentManager_op=viewDocument&amp;JAS_Document_id=3">tài liệu này</a></p>
<a class="downloadlink" href="http://www.ngohaibac.net/download/rtai_beginner_guide.pdf" title=" downloaded 333 times" >RTAI_Beginner_Guide.pdf (333)</a>
<p>Chúc các bạn thành công.</p>
<p>17/04/2009: Update lại file.</p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=784&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/nhat-ki-cai-dat-rtai-comedi-scilab-tren-ubuntu-810/' rel='bookmark' title='Nhật kí cài đặt RTAI Comedi Scilab trên Ubuntu 8.10'>Nhật kí cài đặt RTAI Comedi Scilab trên Ubuntu 8.10</a></li>
<li><a href='http://www.ngohaibac.net/ubuntu-pocket-guide-and-reference/' rel='bookmark' title='Ubuntu Pocket Guide and Reference'>Ubuntu Pocket Guide and Reference</a></li>
<li><a href='http://www.ngohaibac.net/cac-tinh-chat-cua-cac-dieu-khien-trong-gui-matlab/' rel='bookmark' title='C&#225;c t&#237;nh chất của c&#225;c điều khiển trong GUIDE Matlab'>C&#225;c t&#237;nh chất của c&#225;c điều khiển trong GUIDE Matlab</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/rtai-beginners-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real Time and Embedded Guide</title>
		<link>http://www.ngohaibac.net/real-time-and-embedded-guide/</link>
		<comments>http://www.ngohaibac.net/real-time-and-embedded-guide/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 06:24:59 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Hệ thống thời gian thực]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RTAI]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/?p=755</guid>
		<description><![CDATA[Bài hướng dẫn này rất hay được link từ trang rtai.org, đọc Abstract sau, có lẽ cũng rất hiểu về bài báo muốn nói gì rồi. Thấy quá hay, không thể nào mà không giới thiệu cho các bạn được. Bài hướng dẫn có các bản dưới dạng DocBook hoặc .pdf. Bài viết của các [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/cac-bai-bao-hay-ve-real-time-control/' rel='bookmark' title='Các bài báo hay về Real-Time Control'>Các bài báo hay về Real-Time Control</a></li>
<li><a href='http://www.ngohaibac.net/quick-start-your-embedded-design-with-microblaze-32-bit-soft-processor/' rel='bookmark' title='Quick Start Your Embedded Design with MicroBlaze 32-bit Soft Processor'>Quick Start Your Embedded Design with MicroBlaze 32-bit Soft Processor</a></li>
<li><a href='http://www.ngohaibac.net/hoc-master-ve-embedded-system-tai-han-quoc/' rel='bookmark' title='Học Master về Embedded Programming tại Hàn Quốc'>Học Master về Embedded Programming tại Hàn Quốc</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Bài hướng dẫn này rất hay được link từ trang rtai.org, đọc Abstract sau, có lẽ cũng rất hiểu về bài báo muốn nói gì rồi. Thấy quá hay, không thể nào mà không giới thiệu cho các bạn được. Bài hướng dẫn có các bản dưới dạng DocBook hoặc .pdf.</p>
<p>Bài viết của các tác giả <a href="http://people.mech.kuleuven.ac.be/%7Ebruyninc">Herman Bruyninckx</a>,  K.U.Leuven, Belgium với tựa đề Real Time and Embedded Guide("rtHOWTO"). Bài hướng dẫn được xuất bản dưới giấy phép GNU.</p>
<h3>Abstract</h3>
<p>This Guide explains the fundamentals of real-time and embedded programming and operating systems (focusing mostly on their differences with general purpose operating systems such as Linux). Everything is illustrated with free software examples, mainly <a href="http://www.rtai.org/">RTAI</a>.</p>
<h3>Available formats</h3>
<ul>
<li><a href="http://people.mech.kuleuven.be/%7Ebruyninc/rthowto/toc.pdf">Table of contents</a> (three pages of PDF).</li>
<li><a href="http://people.mech.kuleuven.be/%7Ebruyninc/rthowto/rtHOWTO.pdf">PDF</a> (derived from XML source, by db2pdf; 1.1MB).</li>
<li><a href="http://people.mech.kuleuven.be/%7Ebruyninc/rthowto/rtHOWTO.xml">DocBook XML</a> (XML source file, 570KB).</li>
<li><a href="http://people.mech.kuleuven.be/%7Ebruyninc/rthowto/rtHOWTO.tgz">rtHOWTO.tgz</a> (XML source + figures, tarred, gzipped, 220KB).</li>
<li>No HTML available, because db2html doesn't work properly. I use DocBook-utils version 0.6.12 (jw version 1.1). I also don't succeed in getting the index compiled... Give me a sign, if you manage to get these things working.</li>
</ul>
<p>The current version is 0.04, build 20021211-1496, December 2002.</p>
<h3>TODO</h3>
<p>About 95 percent of what I would like to see in the Version 1.0 edition of the Guide is already there. I've placed  "TODO" paragraphs inside the current text, outlining what I think is still missing.</p>
<p>Feedback and contributions are very welcome!</p>
<hr />[Download not found]</p>
<p>Nguồn: <a href="http://people.mech.kuleuven.be/~bruyninc/rthowto/" target="_blank">http://people.mech.kuleuven.be/~bruyninc/rthowto/</a></p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=755&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/cac-bai-bao-hay-ve-real-time-control/' rel='bookmark' title='Các bài báo hay về Real-Time Control'>Các bài báo hay về Real-Time Control</a></li>
<li><a href='http://www.ngohaibac.net/quick-start-your-embedded-design-with-microblaze-32-bit-soft-processor/' rel='bookmark' title='Quick Start Your Embedded Design with MicroBlaze 32-bit Soft Processor'>Quick Start Your Embedded Design with MicroBlaze 32-bit Soft Processor</a></li>
<li><a href='http://www.ngohaibac.net/hoc-master-ve-embedded-system-tai-han-quoc/' rel='bookmark' title='Học Master về Embedded Programming tại Hàn Quốc'>Học Master về Embedded Programming tại Hàn Quốc</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/real-time-and-embedded-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Các bài báo hay về Real-Time Control</title>
		<link>http://www.ngohaibac.net/cac-bai-bao-hay-ve-real-time-control/</link>
		<comments>http://www.ngohaibac.net/cac-bai-bao-hay-ve-real-time-control/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 08:27:09 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Hệ thống thời gian thực]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/?p=530</guid>
		<description><![CDATA[Một vài báo hay cũng như tutorial mình đọc tại đây Documents Introduction to Linux for Real-Time Control, a document prepared for NIST by Aeolean Inc. that describes the various real-time Linux approaches. [PDF, 740K]: bài báo này giới thiệu cực kì hay và ta có cái nhìn tổng quan về Real-Time Linux áp dụng [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/real-time-and-embedded-guide/' rel='bookmark' title='Real Time and Embedded Guide'>Real Time and Embedded Guide</a></li>
<li><a href='http://www.ngohaibac.net/quick-start-your-embedded-design-with-microblaze-32-bit-soft-processor/' rel='bookmark' title='Quick Start Your Embedded Design with MicroBlaze 32-bit Soft Processor'>Quick Start Your Embedded Design with MicroBlaze 32-bit Soft Processor</a></li>
<li><a href='http://www.ngohaibac.net/huong-dan-su-dung-drupal-de-xay-dung-ung-dung-web/' rel='bookmark' title='Hướng dẫn sử dụng Drupal để xây dựng ứng dụng web'>Hướng dẫn sử dụng Drupal để xây dựng ứng dụng web</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Một vài báo hay cũng như tutorial mình đọc <a href="http://www.isd.mel.nist.gov/projects/rtlinux/">tại đây</a></p>
<p align="left">
<h3>Documents</h3>
<p align="left"><a href="http://www.isd.mel.nist.gov/projects/rtlinux/intro-rtl.pdf">Introduction to Linux for Real-Time            Control</a>, a document prepared for NIST by Aeolean Inc. that describes            the various real-time Linux approaches. [PDF, 740K]: bài báo này giới thiệu cực kì hay và ta có cái nhìn tổng quan về Real-Time Linux áp dụng trong điều khiển tự động.</p>
<p align="left">
<p align="left"><a href="http://www.isd.mel.nist.gov/projects/rtlinux/measuring-rtl-perf.pdf">Measuring Performance            in Real-Time Linux</a>, a presentation at the Third Real-Time Linux            Workshop in Milan Italy in October 2001 that describes techniques to            measure software timing. [PDF, 632K] <a href="http://www.isd.mel.nist.gov/projects/rtlinux/perf-paper.pdf">The            accompanying paper</a>. [PDF, 236K]</p>
<p align="left"><a href="http://www.isd.mel.nist.gov/projects/rtlinux/motor-jitter.pdf">Real-time Operating System            Timing Jitter and its Impact on Motor Control</a>, proceedings of the            2001 SPIE Conference on Sensors and Controls for Intelligent Manufacturing            II. [PDF, 106K]</p>
<p align="left"><a href="http://www.isd.mel.nist.gov/projects/rtlinux/cable-robots.pdf">Embedded Real-Time Linux            for Cable Robot Control</a>, a presentation at the ASME Computers in            Engineering conference in Montreal Canada in October 2002 that describes            embedded- and real-time Linux and a cable robot application. [PDF, 1M]            <a href="http://www.isd.mel.nist.gov/projects/rtlinux/cable-paper.pdf">The accompanying paper</a>. [PDF, 98K]</p>
<p align="left"><a href="http://www.isd.mel.nist.gov/projects/rtlinux/egovos.pdf">Real-Time and Embedded Linux for            Manufacturing and Robotics</a>, a presentation at the March 2003 eGov            Open Source Conference in Washington DC that describes real-time and            embedded systems and some applications. [PDF, 2.5M]</p>
<p align="left"><a href="http://www.isd.mel.nist.gov/projects/rtlinux/dod-mitre-report.pdf">Use of Free and Open-Source            Software (FOSS) in the U.S. Department of Defense</a>, a document prepared            for the Defense Information Systems Agency (DISA) by The MITRE Corporation.            [PDF, 4.2M]</p>
<p align="left"><a href="http://www.isd.mel.nist.gov/projects/rtlinux/swedish-open-source.pdf">Free and open source            software</a>, a document prepared by the Swedish Agency for Public Management            (STATSKONTORET) that describes open source software in general. [PDF,            94K]</p>
<h3>Articles</h3>
<p align="left"><a href="http://linuxdevices.com/articles/AT3479098230.html">A comparison of hard real-time Linux alternatives,</a> by Peter Laurich for LinuxDevices.com, 19 November 2004.</p>
<p align="left">
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=530&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/real-time-and-embedded-guide/' rel='bookmark' title='Real Time and Embedded Guide'>Real Time and Embedded Guide</a></li>
<li><a href='http://www.ngohaibac.net/quick-start-your-embedded-design-with-microblaze-32-bit-soft-processor/' rel='bookmark' title='Quick Start Your Embedded Design with MicroBlaze 32-bit Soft Processor'>Quick Start Your Embedded Design with MicroBlaze 32-bit Soft Processor</a></li>
<li><a href='http://www.ngohaibac.net/huong-dan-su-dung-drupal-de-xay-dung-ung-dung-web/' rel='bookmark' title='Hướng dẫn sử dụng Drupal để xây dựng ứng dụng web'>Hướng dẫn sử dụng Drupal để xây dựng ứng dụng web</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/cac-bai-bao-hay-ve-real-time-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nhật kí cài đặt RTAI Comedi Scilab trên Ubuntu 8.10</title>
		<link>http://www.ngohaibac.net/nhat-ki-cai-dat-rtai-comedi-scilab-tren-ubuntu-810/</link>
		<comments>http://www.ngohaibac.net/nhat-ki-cai-dat-rtai-comedi-scilab-tren-ubuntu-810/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 22:08:25 +0000</pubDate>
		<dc:creator>ngohaibac</dc:creator>
				<category><![CDATA[Hệ thống thời gian thực]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Comedi]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[RTAI]]></category>
		<category><![CDATA[scilab]]></category>

		<guid isPermaLink="false">http://www.ngohaibac.net/?p=513</guid>
		<description><![CDATA[Đây là dạng nhật kí, ghi lại quá trình cài đặt, sử dụng RTAI, Comedi Lib, Scilab,... trên Ubuntu 8.10. Xin lắng nghe mọi ý kiến đóng góp. 02/01/2009 Có dự định nghiên cứu về hệ điều hành RealTime và ứng dụng của thư viện quản lý phần cứng Comedi, nhưng cứ mất thời gian [...]


Related posts:<ol><li><a href='http://www.ngohaibac.net/rtai-beginners-guide/' rel='bookmark' title='RTAI - Beginner&#039;s Guide'>RTAI - Beginner's Guide</a></li>
<li><a href='http://www.ngohaibac.net/phen-mem-xem-dinh-dang-chm-tot-nhat-tren-ubuntu/' rel='bookmark' title='Phần mềm xem định dạng CHM tốt nhất trên Ubuntu'>Phần mềm xem định dạng CHM tốt nhất trên Ubuntu</a></li>
<li><a href='http://www.ngohaibac.net/cai-dat-va-cau-hinh-tftpd-tren-ubuntu/' rel='bookmark' title='Cài đặt và cấu hình TFTPD trên Ubuntu'>Cài đặt và cấu hình TFTPD trên Ubuntu</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Đây là dạng nhật kí, ghi lại quá trình cài đặt, sử dụng RTAI, Comedi Lib, Scilab,... trên Ubuntu 8.10. Xin lắng nghe mọi ý kiến đóng góp.</p>
<p><strong>02/01/2009</strong></p>
<p>Có dự định nghiên cứu về hệ điều hành RealTime và ứng dụng của thư viện quản lý phần cứng Comedi, nhưng cứ mất thời gian vào làm cái Davinci project nên bây giờ mới triển khai được.</p>
<p><strong>RTAI là gì ?</strong></p>
<p>Homepage: https://www.rtai.org/</p>
<p><em>This is the homepage of <strong>RTAI</strong> - the <strong>RealTime Application Interface</strong> for <strong>Linux</strong> - which lets you write applications with strict timing constraints for your favourite operating system. Like Linux itself this software is a community effort. If you are interested in what it does just join our mailing list and help our team!</em></p>
<p><em>RTAI supports several architectures:<br />
</em></p>
<ul type="disc">
<li><em>x86 (with and without FPU and TSC)</em></li>
<li><em>x86_64</em></li>
<li><em>PowerPC</em></li>
<li><em>ARM (StrongARM; ARM7: clps711x-family, Cirrus Logic EP7xxx, CS89712, PXA25x)</em></li>
</ul>
<p><em> The RTAI distribution includes <a href="https://www.rtai.org/index.php?module=pagemaster&amp;PAGE_user_op=view_page&amp;PAGE_id=8"> RTAI-Lab</a>, a tool chain to convert block diagrams into RTAI executables and to monitor their operation on various targets.</em></p>
<p>Nói đơn giản, Linux kernel lúc mới chào đời hoàn toàn không hướng đến tính Real Time, theo quá trình phát triển đòi hỏi nhu cầu Real Time thì các bản vá cho kernel này ra đời, RTAI là một thể, free rất được ưa chuộng. Các biến thể khác sẽ không được bàn ở đây, có thể trong bài viết khác.</p>
<p>RTAI là bản vá của nhân (kernel), bản thân nó là hệ điều hành nhỏ, nhưng không chạy độc lập mà được cài đặt trên một hệ điều hành Linux mẹ. Cụ thể ở đây là Ubuntu.</p>
<p><strong>Mục đích của quá trình học</strong></p>
<p>Ý định thực thi một vài demo dựa trên <a href="https://www.rtai.org/RTAILAB/RTAI-Lab-tutorial.pdf">Tutorial này</a> (Title:RTAI-Lab tutorial: Scilab, Comedi, and real-time control  ). <a href="https://www.rtai.org/RTAILAB/RTAI-Lab-tutorial.tgz">[Tar archive with files]</a></p>
<p>Tài liệu viết bằng Latex rất chuẩn.</p>
<p><strong>Cài đặt</strong></p>
<p>Các bản distributions như Debian, Fedora, Ubuntu, Mandriva, .. đều thích hợp. Tuy nhiên, tác giả chỉ mới có kinh nghiệm với Ubuntu nên khi dùng với Fedora hơi vất vả, cái này nghiên cứu sau.</p>
<p>Quá trình cài đặt trên Ubuntu có thể diễn ra theo sự hướng dẫn trong tutorial trên hoặc theo hướng dẫn <a href="https://www.rtai.org/RTAILAB/RTAI-UbuntuGutsy-Matlab.txt">RTAI-UbuntuGutsy-Matlab</a> Tuy nhiên sẽ gặp những trục trặc, những lỗi linh tinh :d.</p>
<p><strong>1. Cài đặt hết tất cả các gói phát triển được list sau đây</strong> (từ file text trên)</p>
<pre> cvs
 subversion            --&gt; libapr1 libaprutil1 libpq5 libsvn1
 build-essential       --&gt; dpkg-dev g++ g++-4.1 libc6-dev libstdc++6-4.1-dev linux-libc-dev patch
 automake              --&gt; autoconf autotools-dev m4
 checkinstall
MesaLib:
 x11proto-xext-dev     --&gt; libxau-dev x11proto-core-dev x11proto-input-dev
 xlibs-static-dev      --&gt; libfontenc-dev libfreetype6-dev libx11-dev libxdmcp-dev libxfont-dev x11proto-fonts-dev x11proto-kb-dev xtrans-dev zlib1g-dev
 libxext-dev
 libxt-dev             --&gt; libice-dev libsm-dev
EFLTK:
 gettext
Linux Kernel:
 libncurses5-dev
 fakeroot
 kernel-package        --&gt; intltool-debian po-debconf
Comedilib
 swig
 python-dev            --&gt; python2.5-dev
 libtool
Comedi Calibrate:
 libboost-program-options-dev  --&gt; libboost-dev libboost-program-options1.34.1
 libgsl0-dev
RTAI
 libxmu-dev            --&gt; libxmu-headers
 libxi-dev</pre>
<p>Nếu cái gói bên trái không có trong Synaptics thì nhìn sang bên phải, cài đặt hết các gói đó là được.</p>
<p><strong>2. Cài đặt Mesa library</strong></p>
<p>Thằng này được dùng để cài đặt thư viện EFLTK. Bọn này k có bản đóng gói mà chỉ có mã nguồn.</p>
<p>Cái này download MesaLib-7.2 từ http://www.mesa3d.org, dịch theo hướng dẫn là ok.</p>
<p><strong>3. Cài đặt EFLTK library</strong></p>
<p>Thằng này được dùng cho xrtailib (thằng này là gì ? Giải thích lúc dùng, ngại thì search google hoặc trong site rtai.org).</p>
<p>Thực hiện tất cả theo hướng dẫn. Khi dịch đến đoạn <strong>./emake</strong> sẽ gặp lỗi liên quan đến hàm <strong>copy_row</strong>, tìm cả ngày lung tung cuối cùng vào site của nó thấy bản <a href="http://nutyx.meticul.eu/2008/src/lib/efltk/gcc432.patch">patch này</a>. Thế là dịch ngon rồi.</p>
<p><strong>Update 01/02/2009</strong><br />
Update cái patch lên cho dễ dùng nào:<br />
<strong>03/01/2009(4AM)</strong></p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">---</span> efltk.<span style="color: #202020;">orig</span><span style="color: #339933;">/</span>src<span style="color: #339933;">/</span>core<span style="color: #339933;">/</span>fl_stretch.<span style="color: #202020;">cpp</span>	<span style="color: #0000dd;">2007</span><span style="color: #339933;">-</span><span style="color: #0000dd;">11</span><span style="color: #339933;">-</span><span style="color: #0000dd;">16</span> <span style="color: #0000dd;">13</span><span style="color: #339933;">:</span><span style="color: #0000dd;">17</span><span style="color: #339933;">:</span><span style="color:#800080;">52.000000000</span> <span style="color: #339933;">+</span><span style="color: #208080;">0000</span>
<span style="color: #339933;">+++</span> efltk.<span style="color: #202020;">new</span><span style="color: #339933;">/</span>src<span style="color: #339933;">/</span>core<span style="color: #339933;">/</span>fl_stretch.<span style="color: #202020;">cpp</span>	<span style="color: #0000dd;">2008</span><span style="color: #339933;">-</span><span style="color: #0000dd;">12</span><span style="color: #339933;">-</span><span style="color: #0000dd;">11</span> <span style="color: #0000dd;">21</span><span style="color: #339933;">:</span><span style="color: #0000dd;">20</span><span style="color: #339933;">:</span><span style="color:#800080;">56.000000000</span> <span style="color: #339933;">+</span><span style="color: #208080;">0000</span>
@@ <span style="color: #339933;">-</span><span style="color: #0000dd;">36</span><span style="color: #339933;">,</span><span style="color: #0000dd;">7</span> <span style="color: #339933;">+</span><span style="color: #0000dd;">36</span><span style="color: #339933;">,</span><span style="color: #0000dd;">7</span> @@
     <span style="color: #009900;">&#40;</span>defined<span style="color: #009900;">&#40;</span>i386<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> defined<span style="color: #009900;">&#40;</span>__GNUC__<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;&amp;</span>amp<span style="color: #339933;">;</span> <span style="color: #339933;">!</span>DISABLE_ASM
 <span style="color: #339933;"># define USE_ASM_STRETCH</span>
 <span style="color: #339933;">#endif</span>
<span style="color: #339933;">-</span>
<span style="color: #339933;">+</span><span style="color: #339933;">#undef USE_ASM_STRETCH</span>
 <span style="color: #339933;">#ifdef USE_ASM_STRETCH</span>
&nbsp;
 <span style="color: #339933;">#if defined(_WIN32) || defined(i386)</span>
<span style="color: #339933;">---</span> efltk.<span style="color: #202020;">orig</span><span style="color: #339933;">/</span>tools<span style="color: #339933;">/</span>ecalc<span style="color: #339933;">/</span>Main.<span style="color: #202020;">h</span>	<span style="color: #0000dd;">2007</span><span style="color: #339933;">-</span><span style="color: #0000dd;">11</span><span style="color: #339933;">-</span><span style="color: #0000dd;">16</span> <span style="color: #0000dd;">13</span><span style="color: #339933;">:</span><span style="color: #0000dd;">17</span><span style="color: #339933;">:</span><span style="color:#800080;">53.000000000</span> <span style="color: #339933;">+</span><span style="color: #208080;">0000</span>
<span style="color: #339933;">+++</span> efltk.<span style="color: #202020;">new</span><span style="color: #339933;">/</span>tools<span style="color: #339933;">/</span>ecalc<span style="color: #339933;">/</span>Main.<span style="color: #202020;">h</span>	<span style="color: #0000dd;">2008</span><span style="color: #339933;">-</span><span style="color: #0000dd;">12</span><span style="color: #339933;">-</span><span style="color: #0000dd;">11</span> <span style="color: #0000dd;">21</span><span style="color: #339933;">:</span><span style="color: #0000dd;">20</span><span style="color: #339933;">:</span><span style="color:#800080;">31.000000000</span> <span style="color: #339933;">+</span><span style="color: #208080;">0000</span>
@@ <span style="color: #339933;">-</span><span style="color: #0000dd;">4</span><span style="color: #339933;">,</span><span style="color: #0000dd;">5</span> <span style="color: #339933;">+</span><span style="color: #0000dd;">4</span><span style="color: #339933;">,</span><span style="color: #0000dd;">5</span> @@
 <span style="color: #339933;">#define Main_h</span>
 <span style="color: #339933;">#include</span>
 <span style="color: #339933;">#include &quot;SciCalc.h&quot;</span>
<span style="color: #339933;">-</span><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> ac<span style="color: #339933;">,</span><span style="color: #993333;">char</span> <span style="color: #339933;">*</span>av<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">+</span><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> ac<span style="color: #339933;">,</span><span style="color: #993333;">char</span> <span style="color: #339933;">**</span>av<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 <span style="color: #339933;">#endif</span>
<span style="color: #339933;">---</span> efltk.<span style="color: #202020;">orig</span><span style="color: #339933;">/</span>tools<span style="color: #339933;">/</span>ecalc<span style="color: #339933;">/</span>Main.<span style="color: #202020;">cpp</span>	<span style="color: #0000dd;">2007</span><span style="color: #339933;">-</span><span style="color: #0000dd;">11</span><span style="color: #339933;">-</span><span style="color: #0000dd;">16</span> <span style="color: #0000dd;">13</span><span style="color: #339933;">:</span><span style="color: #0000dd;">17</span><span style="color: #339933;">:</span><span style="color:#800080;">53.000000000</span> <span style="color: #339933;">+</span><span style="color: #208080;">0000</span>
<span style="color: #339933;">+++</span> efltk.<span style="color: #202020;">new</span><span style="color: #339933;">/</span>tools<span style="color: #339933;">/</span>ecalc<span style="color: #339933;">/</span>Main.<span style="color: #202020;">cpp</span>	<span style="color: #0000dd;">2008</span><span style="color: #339933;">-</span><span style="color: #0000dd;">12</span><span style="color: #339933;">-</span><span style="color: #0000dd;">11</span> <span style="color: #0000dd;">21</span><span style="color: #339933;">:</span><span style="color: #0000dd;">20</span><span style="color: #339933;">:</span><span style="color:#800080;">25.000000000</span> <span style="color: #339933;">+</span><span style="color: #208080;">0000</span>
@@ <span style="color: #339933;">-</span><span style="color: #0000dd;">2</span><span style="color: #339933;">,</span><span style="color: #0000dd;">7</span> <span style="color: #339933;">+</span><span style="color: #0000dd;">2</span><span style="color: #339933;">,</span><span style="color: #0000dd;">7</span> @@
&nbsp;
 <span style="color: #339933;">#include &quot;Main.h&quot;</span>
&nbsp;
<span style="color: #339933;">-</span><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> ac<span style="color: #339933;">,</span><span style="color: #993333;">char</span> <span style="color: #339933;">*</span>av<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #339933;">+</span><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> ac<span style="color: #339933;">,</span><span style="color: #993333;">char</span> <span style="color: #339933;">**</span>av<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
   SciCalc <span style="color: #339933;">*</span>calc <span style="color: #339933;">=</span> new SciCalc<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   	calc<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>run<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   	delete calc<span style="color: #339933;">;</span></pre></div></div>

<p>Làm theo cái hướng dẫn của tutorial trên và guide hướng dẫn cài đặt trên Ubuntu trên không ổn, đến bước dịch kernel thì gặp nhiều vấn đề. Nghĩ là mình config không đúng, nên thử đi thử lại. Cuối cùng cố gắng đi tìm tài liệu liên quan đến cài đặt trên Ubuntu.</p>
<p>Search Google với từ khóa: <strong>install rtai ubuntu</strong></p>
<p>Tìm được các tài liệu quí giá sau, đem về ngâm cứu tiếp, hi vọng sẽ dịch thành công. Mấy cái hướng dẫn này là áp dụng với Ubuntu 8.04, có lẽ là không khác nhiều so với áp dụng trên Ubuntu 8.10</p>
<p class="r"><a onmousedown="return clk(this.href,'','','res','1','')" href="http://sweet.ua.pt/%7Ea27470/howtoinstallrtai.pdf" target="_blank">How to install RTAI in UBUNTU/KUBUNTU</a></p>
<p class="r"><a onmousedown="return clk(this.href,'','','res','2','')" href="https://woc.uc.pt/deec/getFile.do?tipo=2&amp;id=5690" target="_blank">How-to Install RTAI in Ubuntu Hardy</a></p>
<p class="r"><a onmousedown="return clk(this.href,'','','res','12','')" href="http://willdickson.com/wiki/moin.cgi/Installing_RTAI_and_Comedi_on_Ubuntu_Hardy" target="_blank">Installing RTAI and Comedi on Ubuntu Hardy - Will Dickson's Wiki</a></p>
<p class="r"><strong>03/01/2009 (10PM)<br />
</strong></p>
<p class="r">Làm theo hướng dẫn <a onmousedown="return clk(this.href,'','','res','2','')" href="https://woc.uc.pt/deec/getFile.do?tipo=2&amp;id=5690" target="_blank">How-to Install RTAI in Ubuntu Hardy</a> , đến bước cài đặt file .deb thì gặp mấy lỗi, vẫn chưa sửa được. Có lẽ xảy ra trên Ubuntu 8.10. Cách hay là cài thằng 8.04 riêng hẳn và chỉ dùng cho RTAI thôi.</p>
<blockquote>
<p class="r">run-parts: executing /etc/kernel/postinst.d/dkms<br />
run-parts: executing /etc/kernel/postinst.d/nvidia-common<br />
run-parts: /etc/kernel/postinst.d/nvidia-common exited with return code 20<br />
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.24.7-rtai-3.6.2.postinst line 1181.<br />
dpkg: error processing linux-image-2.6.24.7-rtai-3.6.2 (--install):<br />
subprocess post-installation script returned error exit status 2<br />
Errors were encountered while processing:<br />
linux-image-2.6.24.7-rtai-3.6.2</p></blockquote>
<p>Search trên Google thấy có nhiều thằng cũng gặp vấn đề này, mà chưa có patch cho nó. Nên quyết định cài lại, và thực hiện trên Ubuntu 8.04.</p>
<p><strong>30/01/2009</strong></p>
<p>Hôm nay đúng sinh nhật người yêu, làm việc thành công luôn về việc cấu hình RTAI và cài đặt trên Ubuntu 8.04.</p>
<p>Hôm qua, lấy cái Desktop Dell Pentium 4 3.0G cũ của Lab, cài đặt thằng Ubuntu 8.04 lên và làm theo hướng dẫn <a onmousedown="return clk(this.href,'','','res','2','')" href="https://woc.uc.pt/deec/getFile.do?tipo=2&amp;id=5690" target="_blank">How-to Install RTAI in Ubuntu Hardy</a> thì thành công.</p>
<p>Thực hiện với:</p>
<ul>
<li>RTAI 3.6 CV</li>
<li>Linux kernel 2.6.24-7</li>
</ul>
<p>Không thể thohẳn trong Tutorial, ở bước thứ 6 <strong>RTAI Configuration and Installation</strong> thì tham số <strong>Linux Source Tree</strong> trỏ vào cái source cũ, chứ không phải header.</p>
<p>Thế là ngọt ngào rồi đó.</p>
<p><strong>04/02/2009</strong></p>
<p>Dịch cái Comedi 0.7.76 bản CVS: <a href="http://www.comedi.org/cgi-bin/viewcvs.cgi/comedi.tar.gz?view=tar">Current Comedi CVS snapshot</a></p>
<p>Nếu không config gì thì khi dịch sẽ báo lỗi nhiều, do đó sau khi tìm hiểu thì patch như sau: Mở file <strong>comedi_rt_timer.c</strong> trong thư mục <strong>/usr/local/src/comedi/comedi/drivers </strong>tìm đoạn sau:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>112
113
114
115
116
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#if RTAI_VERSION_CODE &lt; RTAI_MANGLE_VERSION(3,3,0)</span>
<span style="color: #339933;">#define comedi_rt_task_context_t	int</span>
<span style="color: #339933;">#else</span>
<span style="color: #339933;">#define comedi_rt_task_context_t	long</span>
<span style="color: #339933;">#endif</span></pre></td></tr></table></div>

<p>thay bằng dòng lệnh sau:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#define comedi_rt_task_context_t	long</span></pre></div></div>

<p>Sau khi add và config cái board PCI 6220 và gõ lệnh sau, nó ra cái này:</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">$ sudo tail -f /var/log/messages
&nbsp;
Feb  4 11:24:02 biorobotic-lab kernel: [45083.455301] RTAI[tasklets]: loaded.
&nbsp;
Feb  4 11:24:21 biorobotic-lab kernel: [45102.833445] comedi: version 0.7.76 - http://www.comedi.org
&nbsp;
Feb  4 11:24:21 biorobotic-lab kernel: [45102.833482] rt_pend_tq: RT bottom half scheduler initialized OK
&nbsp;
Feb  4 11:28:02 biorobotic-lab kernel: [45323.450672] Available NI device IDs: 0x70b0
&nbsp;
Feb  4 11:28:02 biorobotic-lab kernel: [45323.457877] comedi0: ni_pcimio: pci-6220MITE:0xdfafe000 mapped to f8d2c000 DAQ:0xdfaff000 mapped to f8d2e000
&nbsp;
Feb  4 11:28:02 biorobotic-lab kernel: [45323.457937] mite: version = 1, type = 4, mite mode = 1, interface mode = 3
&nbsp;
Feb  4 11:28:02 biorobotic-lab kernel: [45323.457939] mite: num channels = 8, write post fifo depth = 1, wins = 0, iowins = 2
&nbsp;
Feb  4 11:28:02 biorobotic-lab kernel: [45323.457947] mite: fifo size is 64.
&nbsp;
Feb  4 11:28:02 biorobotic-lab kernel: [45323.478646]  ( irq = 17 )
&nbsp;
Feb  4 11:52:48 biorobotic-lab -- MARK --</pre></div></div>

<p>Chúc các bạn thành công.</p>
<img src="http://www.ngohaibac.net/?ak_action=api_record_view&id=513&type=feed" alt="" />

<p>Related posts:<ol><li><a href='http://www.ngohaibac.net/rtai-beginners-guide/' rel='bookmark' title='RTAI - Beginner&#039;s Guide'>RTAI - Beginner's Guide</a></li>
<li><a href='http://www.ngohaibac.net/phen-mem-xem-dinh-dang-chm-tot-nhat-tren-ubuntu/' rel='bookmark' title='Phần mềm xem định dạng CHM tốt nhất trên Ubuntu'>Phần mềm xem định dạng CHM tốt nhất trên Ubuntu</a></li>
<li><a href='http://www.ngohaibac.net/cai-dat-va-cau-hinh-tftpd-tren-ubuntu/' rel='bookmark' title='Cài đặt và cấu hình TFTPD trên Ubuntu'>Cài đặt và cấu hình TFTPD trên Ubuntu</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.ngohaibac.net/nhat-ki-cai-dat-rtai-comedi-scilab-tren-ubuntu-810/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

