http://chronoslinux.org/wiki/index.php?title=Special:Contributions&feed=atom&target=Aclindsa
ChronOS Linux - User contributions [en]
2024-03-28T20:20:16Z
From ChronOS Linux
MediaWiki 1.15.1
http://chronoslinux.org/wiki/Main_Page
Main Page
2012-07-05T23:49:49Z
<p>Aclindsa: /* ChronOS Real-time Linux */</p>
<hr />
<div>__NOTOC__<br />
<br />
<div align="center"><br />
[[File:Chronos-logo.png]]<br />
</div><br />
<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#dcf5ff; align:right;"><br />
= ChronOS Real-time Linux=<br />
ChronOS is a real-time Linux patch created by the [http://www.real-time.ece.vt.edu Real-time Systems Lab] at [http://www.vt.edu Virginia Tech]. It builds upon the [http://rt.wiki.kernel.org CONFIG_PREEMPT_RT] patch and is designed to provide a Linux kernel testbed for real-time scheduling and resource management research on multicore platforms. It also supports distributed real-time scheduling and resource management.<br />
<br />
The current version of ChronOS is '''ChronOS 3.0''' which is based on Linux kernel 3.0.24 and the <tt>CONFIG_PREEMPT_RT</tt> patch.<br />
<br />
=Installation Guide=<br />
<br />
To download ChronOS Linux, please refer to [[Downloading ChronOS Linux]]<br />
<br />
For installation instructions, please refer to the [[Installation Guide]].<br />
<br />
For common installation problems and their solutions, please refer to [[Common Installation Problems]].<br />
<br />
=Documentation=<br />
<br />
* For architecture details, please see [[About ChronOS Linux]]<br />
* For more information about distributed threads on ChronOS, please see [[ChronOS Distributed Threads]].<br />
* For documentation of the user-space APIs provided by ChronOS, please look at [[ChronOS Userspace Docs]].<br />
* For kernel programming tips and other related documentation, please look at [[Kernel Programming Tips]]<br />
<br />
=Getting the Code=<br />
<br />
In addition to the packages made available on our downloads page, the ChronOS source code is available in the form of git repositories, available [http://git.chronoslinux.org here].<br />
<br />
= Publications =<br />
* [http://chronoslinux.org/papers/acm-jea-2012.pdf An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, Aaron Lindsay, and Binoy Ravindran, ACM Journal on Experimental Algorithmics, 2012, ©ACM, 2012. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://chronoslinux.org/papers/rtdvfs_emb_tech.pdf Quantitative Evaluation of Single and Multicore Real-Time DVFS Schedulers in Linux], A. Barbalace and B. Ravindran, Technical Report, April 2012<br />
<br />
* [http://www.real-time.ece.vt.edu/systor12-paper63.pdf An Experimental Evaluation of Real-Time DVFS Scheduling Algorithms], S. Saha and B. Ravindran, 5th Annual International Systems and Storage Conference (SYSTOR), June 2012<br />
<br />
* [http://www.real-time.ece.vt.edu/dac12.pdf STM Concurrency Control for Embedded Real-Time Software with Tighter Time Bounds], M. El-Shambakey and B. Ravindran, ACM Design Automation Conference (DAC), June 2012 (full version of the paper is available as a [http://www.real-time.ece.vt.edu/tech-report-rt-stm-cm11.pdf Technical Report])<br />
<br />
* [http://chronoslinux.org/papers/sac11.pdf Implementing Distributable Real-Time Threads in the Linux Kernel: Programming Interface and Scheduling Support], S. Fahmy, B. Ravindran, and E. D. Jensen, ACM Symposium on Applied Computing, Track on Operating Systems, March 2012, to appear.<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-09122011-125316/ An Experimental Evaluation of Real-Time DVFS Scheduling Algorithms], Sonal Saha, MS Thesis, September 2011<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05122011-142219/ An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, MS Thesis, April 2011<br />
<br />
* [http://chronoslinux.org/papers/dac2011.pdf ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel], Matthew Dellinger, Piyush Garyali, and Binoy Ravindran, ACM Design and Automation Conference (DAC 2011), June 2011, To appear. ©ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://www.real-time.ece.vt.edu/opodis10-gua.pdf On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, Matthew Dellinger, and Binoy Ravindran, International Conference On Principles Of Distributed Systems (OPODIS 2010), December 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-07222010-114202/ On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, MS Thesis, July 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05072010-074318/ Collaborative Scheduling and Synchronization of Distributable Real-Time Threads], Sherif F. Fahmy, PhD Dissertation, May 2010<br />
<br />
Past publications on distributed threads and real-time scheduling are available [[Publications | here]].<br />
</div> <br />
| width="50%" style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=ChronOS News=<br />
<br />
===Latest Development News===<br />
* April 16, 2012 - ChronOS [http://chronoslinux.org/repo/pandaboard RT-DVFS Pandaboard].<br />
* March 20, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0.tar.bz2 3.0]. [[3.0 Changelog | (''Changelog'')]].<br />
* February 22, 2012 - ChronOS [http://chronoslinux.org/repo/rtdvfs/chronos_rtdvfs_i5.tar.gz RT-DVFS Intel i5] and ChronOS [http://chronoslinux.org/repo/rtdvfs/chronos_zacate.tar.gz RT-DVFS AMD Zacate].<br />
Note that these ChronOS releases contain experimental implementations of RT-DVFS schedulers for the designated target processor. <br />
* January 21, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0-rc1.tar.bz2 3.0-rc1].<br />
* October 28, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.8.tar.bz2 Beta 2.8] Released. [[Beta-2.8 Changelog | (''Changelog'')]]. <br />
Note that if you downloaded this release before November 4th, 2011, there was an error in the libchronos that shipped with the release, and you should re-download it to get the fixed version.<br />
* April 12, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.7.tar.bz2 Beta 2.7] Released. [[Beta-2.7 Changelog | (''Changelog'')]].<br />
* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. [[Beta-2.6 Changelog | (''Changelog'')]].<br />
* [[Archived ChronOS Versions]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=Contact Information=<br />
===IRC Channel===<br />
You can find us in the #chronoslinux channel on [http://freenode.net/ freenode].<br />
<br />
===Faculty Advisor===<br />
[http://www.ece.vt.edu/faculty/ravindran.php Binoy Ravindran] [mailto:binoy@vt.edu binoy@vt.edu]<br />
<br />
=== Current Maintainer ===<br />
*Ben Shelton [mailto:beshelto@vt.edu beshelto@vt.edu]<br />
<br />
===Other Developers===<br />
*[http://aclindsay.com Aaron Lindsay] [mailto:aaron.lindsay@vt.edu aaron.lindsay@vt.edu]<br />
*Antonio Barbalace [mailto:antoniob@vt.edu antoniob@vt.edu]<br />
<br />
===Past Contributors===<br />
* Sonal Saha (M.S., 2011)<br />
* Matthew Dellinger [mailto:matthew@mdelling.com matthew@mdelling.com] (M.S., 2011)<br />
*[http://andersoj.org/ Jonathan Anderson] [mailto:andersoj@andersoj.org andersoj@andersoj.org]<br />
* [http://www.linkedin.com/in/garyali Piyush Garyali] [mailto:piyushg@vt.edu piyushg@vt.edu] (M.S., 2010)<br />
* Sherif Fahmy [mailto:fahmy@vt.edu fahmy@vt.edu] (PhD., 2010)<br />
* Caleb Hopkins (B.S., 2009)<br />
* Surry Shome (B.S., 2009)<br />
</div><br />
|}<br />
<br />
This work is supported in part by US National Science Foundation CNS 0915895 and CNS 1130180, and US NSWC under Grant N00178-09-D-3017-0011. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or US NSWC.</div>
Aclindsa
http://chronoslinux.org/wiki/Main_Page
Main Page
2012-05-10T14:53:39Z
<p>Aclindsa: /* Publications */</p>
<hr />
<div>__NOTOC__<br />
<br />
<div align="center"><br />
[[File:Chronos-logo.png]]<br />
</div><br />
<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#dcf5ff; align:right;"><br />
= ChronOS Real-time Linux=<br />
ChronOS is a real-time Linux patch created by the [http://www.real-time.ece.vt.edu Real-time Systems Lab] at [http://www.vt.edu Virginia Tech]. It builds upon the [http://rt.wiki.kernel.org CONFIG_PREEMPT_RT] patch and is designed to provide a Linux kernel testbed for real-time scheduling and resource management research on multicore platforms. It also supports distributed real-time scheduling and resource management.<br />
<br />
The current version of ChronOS is '''Beta 2.8''' which is based on Linux kernel 2.6.33.9 and the <tt>CONFIG_PREEMPT_RT</tt> patch.<br />
<br />
=Installation Guide=<br />
<br />
To download ChronOS Linux, please refer to [[Downloading ChronOS Linux]]<br />
<br />
For installation instructions, please refer to the [[Installation Guide]].<br />
<br />
For common installation problems and their solutions, please refer to [[Common Installation Problems]].<br />
<br />
=Documentation=<br />
<br />
* For architecture details, please see [[About ChronOS Linux]]<br />
* For more information about distributed threads on ChronOS, please see [[ChronOS Distributed Threads]].<br />
* For documentation of the user-space APIs provided by ChronOS, please look at [[ChronOS Userspace Docs]].<br />
* For kernel programming tips and other related documentation, please look at [[Kernel Programming Tips]]<br />
<br />
=Getting the Code=<br />
<br />
In addition to the packages made available on our downloads page, the ChronOS source code is available in the form of git repositories, available [http://git.chronoslinux.org here].<br />
<br />
= Publications =<br />
* [http://chronoslinux.org/papers/acm-jea-2012.pdf An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, Aaron Lindsay, and Binoy Ravindran, ACM Journal on Experimental Algorithmics, 2012, ©ACM, 2012. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://chronoslinux.org/papers/rtdvfs_emb_tech.pdf Quantitative Evaluation of Single and Multicore Real-Time DVFS Schedulers in Linux], A. Barbalace and B. Ravindran, Technical Report, April 2012<br />
<br />
* [http://www.real-time.ece.vt.edu/systor12-paper63.pdf An Experimental Evaluation of Real-Time DVFS Scheduling Algorithms], S. Saha and B. Ravindran, 5th Annual International Systems and Storage Conference (SYSTOR), June 2012<br />
<br />
* [http://www.real-time.ece.vt.edu/dac12.pdf STM Concurrency Control for Embedded Real-Time Software with Tighter Time Bounds], M. El-Shambakey and B. Ravindran, ACM Design Automation Conference (DAC), June 2012 (full version of the paper is available as a [http://www.real-time.ece.vt.edu/tech-report-rt-stm-cm11.pdf Technical Report])<br />
<br />
* [http://chronoslinux.org/papers/sac11.pdf Implementing Distributable Real-Time Threads in the Linux Kernel: Programming Interface and Scheduling Support], S. Fahmy, B. Ravindran, and E. D. Jensen, ACM Symposium on Applied Computing, Track on Operating Systems, March 2012, to appear.<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-09122011-125316/ An Experimental Evaluation of Real-Time DVFS Scheduling Algorithms], Sonal Saha, MS Thesis, September 2011<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05122011-142219/ An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, MS Thesis, April 2011<br />
<br />
* [http://chronoslinux.org/papers/dac2011.pdf ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel], Matthew Dellinger, Piyush Garyali, and Binoy Ravindran, ACM Design and Automation Conference (DAC 2011), June 2011, To appear. ©ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://www.real-time.ece.vt.edu/opodis10-gua.pdf On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, Matthew Dellinger, and Binoy Ravindran, International Conference On Principles Of Distributed Systems (OPODIS 2010), December 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-07222010-114202/ On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, MS Thesis, July 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05072010-074318/ Collaborative Scheduling and Synchronization of Distributable Real-Time Threads], Sherif F. Fahmy, PhD Dissertation, May 2010<br />
<br />
Past publications on distributed threads and real-time scheduling are available [[Publications | here]].<br />
</div> <br />
| width="50%" style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=ChronOS News=<br />
<br />
===Latest Development News===<br />
* April 16, 2012 - ChronOS [http://chronoslinux.org/repo/pandaboard RT-DVFS Pandaboard].<br />
* March 20, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0.tar.bz2 3.0]. [[3.0 Changelog | (''Changelog'')]].<br />
* February 22, 2012 - ChronOS [http://chronoslinux.org/repo/rtdvfs/chronos_rtdvfs_i5.tar.gz RT-DVFS Intel i5] and ChronOS [http://chronoslinux.org/repo/rtdvfs/chronos_zacate.tar.gz RT-DVFS AMD Zacate].<br />
Note that these ChronOS releases contain experimental implementations of RT-DVFS schedulers for the designated target processor. <br />
* January 21, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0-rc1.tar.bz2 3.0-rc1].<br />
* October 28, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.8.tar.bz2 Beta 2.8] Released. [[Beta-2.8 Changelog | (''Changelog'')]]. <br />
Note that if you downloaded this release before November 4th, 2011, there was an error in the libchronos that shipped with the release, and you should re-download it to get the fixed version.<br />
* April 12, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.7.tar.bz2 Beta 2.7] Released. [[Beta-2.7 Changelog | (''Changelog'')]].<br />
* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. [[Beta-2.6 Changelog | (''Changelog'')]].<br />
* [[Archived ChronOS Versions]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=Contact Information=<br />
===IRC Channel===<br />
You can find us in the #chronoslinux channel on [http://freenode.net/ freenode].<br />
<br />
===Faculty Advisor===<br />
[http://www.ece.vt.edu/faculty/ravindran.php Binoy Ravindran] [mailto:binoy@vt.edu binoy@vt.edu]<br />
<br />
=== Current Maintainer ===<br />
*Ben Shelton [mailto:beshelto@vt.edu beshelto@vt.edu]<br />
<br />
===Other Developers===<br />
*[http://aclindsay.com Aaron Lindsay] [mailto:aaron.lindsay@vt.edu aaron.lindsay@vt.edu]<br />
*Antonio Barbalace [mailto:antoniob@vt.edu antoniob@vt.edu]<br />
<br />
===Past Contributors===<br />
* Sonal Saha (M.S., 2011)<br />
* Matthew Dellinger [mailto:matthew@mdelling.com matthew@mdelling.com] (M.S., 2011)<br />
*[http://andersoj.org/ Jonathan Anderson] [mailto:andersoj@andersoj.org andersoj@andersoj.org]<br />
* [http://www.linkedin.com/in/garyali Piyush Garyali] [mailto:piyushg@vt.edu piyushg@vt.edu] (M.S., 2010)<br />
* Sherif Fahmy [mailto:fahmy@vt.edu fahmy@vt.edu] (PhD., 2010)<br />
* Caleb Hopkins (B.S., 2009)<br />
* Surry Shome (B.S., 2009)<br />
</div><br />
|}<br />
<br />
This work is supported in part by US National Science Foundation CNS 0915895 and CNS 1130180, and US NSWC under Grant N00178-09-D-3017-0011. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or US NSWC.</div>
Aclindsa
http://chronoslinux.org/wiki/Main_Page
Main Page
2012-03-24T01:52:36Z
<p>Aclindsa: /* Contacts */</p>
<hr />
<div>__NOTOC__<br />
<br />
<div align="center"><br />
[[File:Chronos-logo.png]]<br />
</div><br />
<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#dcf5ff; align:right;"><br />
= ChronOS Real-time Linux=<br />
ChronOS is a real-time Linux patch created by the [http://www.real-time.ece.vt.edu Real-time Systems Lab] at [http://www.vt.edu Virginia Tech]. It builds upon the [http://rt.wiki.kernel.org CONFIG_PREEMPT_RT] patch and is designed to provide a Linux kernel testbed for real-time scheduling and resource management research on multicore platforms. It also supports distributed real-time scheduling and resource management.<br />
<br />
The current version of ChronOS is '''Beta 2.8''' which is based on Linux kernel 2.6.33.9 and the <tt>CONFIG_PREEMPT_RT</tt> patch.<br />
<br />
=Installation Guide=<br />
<br />
To download ChronOS Linux, please refer to [[Downloading ChronOS Linux]]<br />
<br />
For installation instructions, please refer to the [[Installation Guide]].<br />
<br />
For common installation problems and their solutions, please refer to [[Common Installation Problems]].<br />
<br />
=Documentation=<br />
<br />
* For architecture details, please see [[About ChronOS Linux]]<br />
* For more information about distributed threads on ChronOS, please see [[ChronOS Distributed Threads]].<br />
* For documentation of the user-space APIs provided by ChronOS, please look at [[ChronOS Userspace Docs]].<br />
* For kernel programming tips and other related documentation, please look at [[Kernel Programming Tips]]<br />
<br />
=Getting the Code=<br />
<br />
In addition to the packages made available on our downloads page, the ChronOS source code is available in the form of git repositories, available [http://git.chronoslinux.org here].<br />
<br />
= Publications =<br />
<br />
* [http://www.real-time.ece.vt.edu/dac12.pdf STM Concurrency Control for Embedded Real-Time Software with Tighter Time Bounds], M. El-Shambakey and B. Ravindran, ACM Design Automation Conference (DAC), June 2012 (full version of the paper is available as a [http://www.real-time.ece.vt.edu/tech-report-rt-stm-cm11.pdf Technical Report])<br />
<br />
* [http://chronoslinux.org/papers/sac11.pdf Implementing Distributable Real-Time Threads in the Linux Kernel: Programming Interface and Scheduling Support], S. Fahmy, B. Ravindran, and E. D. Jensen, ACM Symposium on Applied Computing, Track on Operating Systems, March 2012, to appear.<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-09122011-125316/ An Experimental Evaluation of Real-Time DVFS Scheduling Algorithms], Sonal Saha, MS Thesis, September 2011<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05122011-142219/ An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, MS Thesis, April 2011<br />
<br />
* [http://chronoslinux.org/papers/dac2011.pdf ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel], Matthew Dellinger, Piyush Garyali, and Binoy Ravindran, ACM Design and Automation Conference (DAC 2011), June 2011, To appear. ©ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://www.real-time.ece.vt.edu/opodis10-gua.pdf On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, Matthew Dellinger, and Binoy Ravindran, International Conference On Principles Of Distributed Systems (OPODIS 2010), December 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-07222010-114202/ On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, MS Thesis, July 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05072010-074318/ Collaborative Scheduling and Synchronization of Distributable Real-Time Threads], Sherif F. Fahmy, PhD Dissertation, May 2010<br />
<br />
Past publications on distributed threads and real-time scheduling are available [[Publications | here]].<br />
</div> <br />
| width="50%" style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=ChronOS News=<br />
<br />
===Latest Development News===<br />
* March 20, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0.tar.bz2 3.0]. [[3.0 Changelog | (''Changelog'')]].<br />
* February 22, 2012 - ChronOS [http://chronoslinux.org/repo/rtdvfs/chronos_rtdvfs_i5.tar.gz RT-DVFS Intel i5] and ChronOS [http://chronoslinux.org/repo/rtdvfs/chronos_zacate.tar.gz RT-DVFS AMD Zacate].<br />
Note that these ChronOS releases contain experimental implementations of RT-DVFS schedulers for the designated target processor. <br />
* January 21, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0-rc1.tar.bz2 3.0-rc1].<br />
* October 28, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.8.tar.bz2 Beta 2.8] Released. [[Beta-2.8 Changelog | (''Changelog'')]]. <br />
Note that if you downloaded this release before November 4th, 2011, there was an error in the libchronos that shipped with the release, and you should re-download it to get the fixed version.<br />
* April 12, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.7.tar.bz2 Beta 2.7] Released. [[Beta-2.7 Changelog | (''Changelog'')]].<br />
* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. [[Beta-2.6 Changelog | (''Changelog'')]].<br />
* [[Archived ChronOS Versions]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=Contact Information=<br />
===IRC Channel===<br />
You can find us in the #chronoslinux channel on [http://freenode.net/ freenode].<br />
<br />
===Faculty Advisor===<br />
[http://www.ece.vt.edu/faculty/ravindran.php Binoy Ravindran] [mailto:binoy@vt.edu binoy@vt.edu]<br />
<br />
=== Current Maintainer ===<br />
Matthew Dellinger [mailto:matthew@mdelling.com matthew@mdelling.com]<br />
<br />
===Other Developers===<br />
*[http://aclindsay.com Aaron Lindsay] [mailto:aaron.lindsay@vt.edu aaron.lindsay@vt.edu]<br />
*Ben Shelton [mailto:beshelto@vt.edu beshelto@vt.edu]<br />
*Antonio Barbalace [mailto:antoniob@vt.edu antoniob@vt.edu]<br />
<br />
===Past Contributers===<br />
*[http://andersoj.org/ Jonathan Anderson] [mailto:andersoj@andersoj.org andersoj@andersoj.org]<br />
* [http://www.linkedin.com/in/garyali Piyush Garyali] [mailto:piyushg@vt.edu piyushg@vt.edu] (M.S., 2010)<br />
* Sherif Fahmy [mailto:fahmy@vt.edu fahmy@vt.edu] (PhD., 2010)<br />
* Caleb Hopkins (B.S., 2009)<br />
* Surry Shome (B.S., 2009)<br />
</div><br />
|}<br />
<br />
This work is supported in part by US National Science Foundation CNS 0915895 and CNS 1130180, and US NSWC under Grant N00178-09-D-3017-0011. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or US NSWC.</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-03-21T03:31:30Z
<p>Aclindsa: </p>
<hr />
<div>The changes made between Beta 2.8 and 3.0 follow. ChronOS 3.0 is a fairly major release, including a rebase to a new kernel, solidifying code which had to change with the move to the different kernel version, and many bug fixes and many new userspace features and improvements.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.24, and updated to the 3.0.24-rt42 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.24 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Ported to ARM architecture.<br />
** Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging (including warning when a ChronOS task blocks inside its RT segment, and when it exits prematurely).<br />
* Converted all scheduler-managed lists to Linux's 'struct list_head' style lists, and added '#define' constants for referencing them by name.<br />
* United the initialization of the /proc/chronos/ entries, so that directory is guaranteed to always be created, and made /proc/chronos/schedulers always available, even if scheduling statistics are not enabled.<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Add array-walk (forwards, backwards, and random), linked list and BST traversal workloads for memory-intensive testing.<br />
** Improve accuracy of slope-generation mechanism.<br />
** Add ability to configure groups of threads, which all share memory, and allow that working set size to be configurable via the taskset files.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-03-21T03:31:11Z
<p>Aclindsa: </p>
<hr />
<div>The changes made between Beta 2.8 and 3.0 follow. ChronOS 3.0 is a fairly major release, signifying a rebase to a new kernel, solidifying code which had to change with the move to the different kernel version, and many bug fixes and many new userspace features and improvements.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.24, and updated to the 3.0.24-rt42 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.24 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Ported to ARM architecture.<br />
** Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging (including warning when a ChronOS task blocks inside its RT segment, and when it exits prematurely).<br />
* Converted all scheduler-managed lists to Linux's 'struct list_head' style lists, and added '#define' constants for referencing them by name.<br />
* United the initialization of the /proc/chronos/ entries, so that directory is guaranteed to always be created, and made /proc/chronos/schedulers always available, even if scheduling statistics are not enabled.<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Add array-walk (forwards, backwards, and random), linked list and BST traversal workloads for memory-intensive testing.<br />
** Improve accuracy of slope-generation mechanism.<br />
** Add ability to configure groups of threads, which all share memory, and allow that working set size to be configurable via the taskset files.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-03-21T03:29:22Z
<p>Aclindsa: </p>
<hr />
<div>Changes made between Beta 2.8 and 3.0.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.24, and updated to the 3.0.24-rt42 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.24 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Ported to ARM architecture.<br />
** Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging (including warning when a ChronOS task blocks inside its RT segment, and when it exits prematurely).<br />
* Converted all scheduler-managed lists to Linux's 'struct list_head' style lists, and added '#define' constants for referencing them by name.<br />
* United the initialization of the /proc/chronos/ entries, so that directory is guaranteed to always be created, and made /proc/chronos/schedulers always available, even if scheduling statistics are not enabled.<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Add array-walk (forwards, backwards, and random), linked list and BST traversal workloads for memory-intensive testing.<br />
** Improve accuracy of slope-generation mechanism.<br />
** Add ability to configure groups of threads, which all share memory, and allow that working set size to be configurable via the taskset files.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/Main_Page
Main Page
2012-03-21T03:27:51Z
<p>Aclindsa: /* Latest Development News */</p>
<hr />
<div>__NOTOC__<br />
<br />
<div align="center"><br />
[[File:Chronos-logo.png]]<br />
</div><br />
<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#dcf5ff; align:right;"><br />
= ChronOS Real-time Linux=<br />
ChronOS is a real-time Linux patch created by the [http://www.real-time.ece.vt.edu Real-time Systems Lab] at [http://www.vt.edu Virginia Tech]. It builds upon the [http://rt.wiki.kernel.org CONFIG_PREEMPT_RT] patch and is designed to provide a Linux kernel testbed for real-time scheduling and resource management research on multicore platforms. It also supports distributed real-time scheduling and resource management.<br />
<br />
The current version of ChronOS is '''Beta 2.8''' which is based on Linux kernel 2.6.33.9 and the <tt>CONFIG_PREEMPT_RT</tt> patch.<br />
<br />
=Installation Guide=<br />
<br />
To download ChronOS Linux, please refer to [[Downloading ChronOS Linux]]<br />
<br />
For installation instructions, please refer to the [[Installation Guide]].<br />
<br />
For common installation problems and their solutions, please refer to [[Common Installation Problems]].<br />
<br />
=Documentation=<br />
<br />
* For architecture details, please see [[About ChronOS Linux]]<br />
* For more information about distributed threads on ChronOS, please see [[ChronOS Distributed Threads]].<br />
* For documentation of the user-space APIs provided by ChronOS, please look at [[ChronOS Userspace Docs]].<br />
* For kernel programming tips and other related documentation, please look at [[Kernel Programming Tips]]<br />
<br />
=Getting the Code=<br />
<br />
In addition to the packages made available on our downloads page, the ChronOS source code is available in the form of git repositories, available [http://git.chronoslinux.org here].<br />
<br />
= Publications =<br />
<br />
* [http://www.real-time.ece.vt.edu/dac12.pdf STM Concurrency Control for Embedded Real-Time Software with Tighter Time Bounds], M. El-Shambakey and B. Ravindran, ACM Design Automation Conference (DAC), June 2012 (full version of the paper is available as a [http://www.real-time.ece.vt.edu/tech-report-rt-stm-cm11.pdf Technical Report])<br />
<br />
* [http://chronoslinux.org/papers/sac11.pdf Implementing Distributable Real-Time Threads in the Linux Kernel: Programming Interface and Scheduling Support], S. Fahmy, B. Ravindran, and E. D. Jensen, ACM Symposium on Applied Computing, Track on Operating Systems, March 2012, to appear.<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-09122011-125316/ An Experimental Evaluation of Real-Time DVFS Scheduling Algorithms], Sonal Saha, MS Thesis, September 2011<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05122011-142219/ An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, MS Thesis, April 2011<br />
<br />
* [http://chronoslinux.org/papers/dac2011.pdf ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel], Matthew Dellinger, Piyush Garyali, and Binoy Ravindran, ACM Design and Automation Conference (DAC 2011), June 2011, To appear. ©ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://www.real-time.ece.vt.edu/opodis10-gua.pdf On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, Matthew Dellinger, and Binoy Ravindran, International Conference On Principles Of Distributed Systems (OPODIS 2010), December 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-07222010-114202/ On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, MS Thesis, July 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05072010-074318/ Collaborative Scheduling and Synchronization of Distributable Real-Time Threads], Sherif F. Fahmy, PhD Dissertation, May 2010<br />
<br />
Past publications on distributed threads and real-time scheduling are available [[Publications | here]].<br />
</div> <br />
| width="50%" style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=ChronOS News=<br />
<br />
===Latest Development News===<br />
* March 20, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0.tar.bz2 3.0]. [[3.0 Changelog | (''Changelog'')]].<br />
* February 22, 2012 - ChronOS [http://chronoslinux.org/repo/rtdvfs/chronos_rtdvfs_i5.tar.gz RT-DVFS Intel i5] and ChronOS [http://chronoslinux.org/repo/rtdvfs/chronos_zacate.tar.gz RT-DVFS AMD Zacate].<br />
Note that these ChronOS releases contain experimental implementations of RT-DVFS schedulers for the designated target processor. <br />
* January 21, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0-rc1.tar.bz2 3.0-rc1].<br />
* October 28, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.8.tar.bz2 Beta 2.8] Released. [[Beta-2.8 Changelog | (''Changelog'')]]. <br />
Note that if you downloaded this release before November 4th, 2011, there was an error in the libchronos that shipped with the release, and you should re-download it to get the fixed version.<br />
* April 12, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.7.tar.bz2 Beta 2.7] Released. [[Beta-2.7 Changelog | (''Changelog'')]].<br />
* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. [[Beta-2.6 Changelog | (''Changelog'')]].<br />
* [[Archived ChronOS Versions]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=Contacts=<br />
===Faculty Advisor===<br />
[http://www.ece.vt.edu/faculty/ravindran.php Binoy Ravindran] [mailto:binoy@vt.edu binoy@vt.edu]<br />
<br />
=== Current Maintainer ===<br />
Matthew Dellinger [mailto:matthew@mdelling.com matthew@mdelling.com]<br />
<br />
===Other Developers===<br />
*[http://aclindsay.com Aaron Lindsay] [mailto:aaron.lindsay@vt.edu aaron.lindsay@vt.edu]<br />
*Ben Shelton [mailto:beshelto@vt.edu beshelto@vt.edu]<br />
*Antonio Barbalace [mailto:antoniob@vt.edu antoniob@vt.edu]<br />
<br />
===Past Contributers===<br />
*[http://andersoj.org/ Jonathan Anderson] [mailto:andersoj@andersoj.org andersoj@andersoj.org]<br />
* [http://www.linkedin.com/in/garyali Piyush Garyali] [mailto:piyushg@vt.edu piyushg@vt.edu] (M.S., 2010)<br />
* Sherif Fahmy [mailto:fahmy@vt.edu fahmy@vt.edu] (PhD., 2010)<br />
* Caleb Hopkins (B.S., 2009)<br />
* Surry Shome (B.S., 2009)<br />
</div><br />
|}<br />
<br />
This work is supported in part by US National Science Foundation CNS 0915895 and CNS 1130180, and US NSWC under Grant N00178-09-D-3017-0011. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or US NSWC.</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-21T03:25:48Z
<p>Aclindsa: </p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0. ([[Installation Guide 2.8|Installation Guide for ChronOS 2.8]])<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.24.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.24 linux-3.0.24-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.24-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.24-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.24-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.24-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.24-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions ought to have kernel config files available as well; try the <tt>/boot</tt> directory, check if <tt>/proc/config.gz</tt> exists, and if all else fails, consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.24-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.24-chronos<br />
'''sudo cp''' .config /boot/config-3.0.24-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.24-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.24-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.24-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-03-21T03:21:53Z
<p>Aclindsa: </p>
<hr />
<div>Changes made between Beta 2.8 and 3.0.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.24, and updated to the 3.0.24-rt42 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.24 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Ported to ARM architecture.<br />
** Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging (including warning when a ChronOS task blocks inside its RT segment, and when it exits prematurely).<br />
* Converted all scheduler-managed lists to Linux's 'struct list_head' style lists, and added '#define' constants for referencing them by name.<br />
* United the initialization of the /proc/chronos/ entries, so that directory is guaranteed to always be created, and made /proc/chronos/schedulers always available, even if scheduling statistics are not enabled.<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Add array-walk and linked list traversal workloads for memory-intensive testing.<br />
** Improve accuracy of slope-generation mechanism.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide_2.8
Installation Guide 2.8
2012-03-21T03:10:13Z
<p>Aclindsa: </p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 2.8 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS Beta 2.8.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your kernel working folder <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-2.6.33.9.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-2.6.33.9 linux-2.6.33.9-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_Beta_2.8/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux | download instructions]]).<br />
<br />
<code> '''cd''' linux-2.6.33.9-chronos </code> <br />
<code> '''bzcat''' ../patch-2.6.33.9-rt31.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-2.6.33.9-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos </code><br />
<br />
If you're running Ubuntu, you may wish to copy over your previous configuration, since the default kernel config may not have the right options selected. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-33-generic</code>, and you should copy it to <code>.config</code> in the kernel directory, like this:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-33-generic .config </code><br />
<br />
Then, to update the Ubuntu config to match the current kernel version, you should run the following:<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
<br />
Once this works successfully, it should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>'''General Setup > Group CPU Scheduler >''' ''Group Scheduling'': ['''n''']<br />
'''Processor Types and Features >''' ''Tickless System (Dynamic Ticks)'': ['''*''']<br />
'''Processor Types and Features >''' ''High Resolution Timer Support'': ['''*''']<br />
'''Processor Types and Features >''' ''Symmetric multi-processing support'': ['''*''']<br />
'''Processor Types and Features > Preemption Mode >''' ''Complete Preemption (Real-Time)'': ['''*''']<br />
'''Power Management Options > CPU Frequency Scaling >''' ''CPU Frequency Scaling'': ['''n''']<br />
'''Device Drivers > Network Device Support >''' ''Network Console Logging Support'': ['''M''']<br />
'''CHRONOS >''' ''ChronOS real-time scheduling'': ['''*''']<br />
'''CHRONOS >''' ''Scheduling statistics for real-time schedulers'': ['''*''']<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux 2.8 | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux 2.8 | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux 2.8 | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux 2.8 | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux 2.8 | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux 2.8 | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-21T03:09:20Z
<p>Aclindsa: 3.0.17 -> 3.0.24</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0. ([[Installation Guide 2.8|Installation Guide for ChronOS 2.8]])<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.24.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.24 linux-3.0.24-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.24-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.24-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.24-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.24-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.24-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.24-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.24-chronos<br />
'''sudo cp''' .config /boot/config-3.0.24-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.24-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.24-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.24-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-21T03:07:56Z
<p>Aclindsa: </p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0. ([[Installation Guide 2.8|Installation Guide for ChronOS 2.8]])<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Downloading_ChronOS_Linux
Downloading ChronOS Linux
2012-03-21T03:07:30Z
<p>Aclindsa: </p>
<hr />
<div>== Linux Kernel ==<br />
<br />
Create a directory to keep your ChronOS-related code in, and navigate to it.<br />
<br />
<tt>'''mkdir''' chronos<br />
'''cd''' chronos </tt><br />
<br />
Download the <tt>3.0.24</tt> kernel to your <tt>chronos</tt> directory.<br />
<br />
<tt>'''wget''' http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.24.tar.bz2</tt><br />
<br />
== Everything Else (PREEMPT_RT and ChronOS Kernel Patches, Userspace Libraries, etc.) ==<br />
<br />
Download the latest version of the ChronOS archive which contains the latest PREEMPT_RT and ChronOS kernel patches, associated libraries, and the middleware test application called <tt>sched_test_app</tt> from the [http://chronoslinux.org/repo/releases/ repository]. The current version is [http://chronoslinux.org/repo/releases/ChronOS_3.0.tar.bz2 ChronOS 3.0].<br />
<br />
Extract the contents of this folder and move them to the 'chronos' folder you created above.<br />
<br />
<tt>'''tar xf''' ChronOS_3.0.tar.bz2<br />
'''mv''' ChronOS_3.0/* chronos/</tt><br />
<br />
Continue with the [[Installation Guide]].<br />
<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Downloading_ChronOS_Linux
Downloading ChronOS Linux
2012-03-21T03:07:14Z
<p>Aclindsa: </p>
<hr />
<div>== Linux Kernel ==<br />
<br />
Create a directory to keep your ChronOS-related code in, and navigate to it.<br />
<br />
<tt>'''mkdir''' chronos<br />
'''cd''' chronos </tt><br />
<br />
Download the <tt>3.0.24</tt> kernel to your <tt>chronos</tt> directory.<br />
<br />
<tt>'''wget''' http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.24.tar.bz2</tt><br />
<br />
== Everything Else (PREEMPT_RT and ChronOS Kernel Patches, Userspace Libraries, etc.) ==<br />
<br />
Download the latest version of the ChronOS archive which contains the latest PREEMPT_RT and ChronOS kernel patches, associated libraries, and the middleware test application called <tt>sched_test_app</tt> from the [http://chronoslinux.org/repo/releases/ repository]. The current version is [http://chronoslinux.org/repo/releases/ChronOS_3.0.tar.bz2 ChronOS 3.0].<br />
<br />
Extract the contents of this folder and move them to the 'chronos' folder you created above.<br />
<br />
<tt>'''tar xf''' ChronOS_3.0.tar.bz2<br />
'''mv''' ChronOS_3.0/* chronos/</tt><br />
<br />
Continue with the [[Installation Guide 3.0]].<br />
<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Downloading_ChronOS_Linux_3.0
Downloading ChronOS Linux 3.0
2012-03-21T03:06:53Z
<p>Aclindsa: moved Downloading ChronOS Linux 3.0 to Downloading ChronOS Linux:&#32;ChronOS 3.0 Release</p>
<hr />
<div>#REDIRECT [[Downloading ChronOS Linux]]</div>
Aclindsa
http://chronoslinux.org/wiki/Downloading_ChronOS_Linux
Downloading ChronOS Linux
2012-03-21T03:06:53Z
<p>Aclindsa: moved Downloading ChronOS Linux 3.0 to Downloading ChronOS Linux:&#32;ChronOS 3.0 Release</p>
<hr />
<div>== Linux Kernel ==<br />
<br />
Create a directory to keep your ChronOS-related code in, and navigate to it.<br />
<br />
<tt>'''mkdir''' chronos<br />
'''cd''' chronos </tt><br />
<br />
Download the <tt>3.0.17</tt> kernel to your <tt>chronos</tt> directory.<br />
<br />
<tt>'''wget''' http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.17.tar.bz2</tt><br />
<br />
== Everything Else (PREEMPT_RT and ChronOS Kernel Patches, Userspace Libraries, etc.) ==<br />
<br />
Download the latest version of the ChronOS archive which contains the latest PREEMPT_RT and ChronOS kernel patches, associated libraries, and the middleware test application called <tt>sched_test_app</tt> from the [http://chronoslinux.org/repo/releases/ repository]. The current version is [http://chronoslinux.org/repo/releases/ChronOS_3.0.tar.bz2 ChronOS 3.0].<br />
<br />
Extract the contents of this folder and move them to the 'chronos' folder you created above.<br />
<br />
<tt>'''tar xf''' ChronOS_3.0.tar.bz2<br />
'''mv''' ChronOS_3.0/* chronos/</tt><br />
<br />
Continue with the [[Installation Guide 3.0]].<br />
<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Downloading_ChronOS_Linux_2.8
Downloading ChronOS Linux 2.8
2012-03-21T03:06:20Z
<p>Aclindsa: moved Downloading ChronOS Linux to Downloading ChronOS Linux 2.8:&#32;ChronOS 3.0 Release</p>
<hr />
<div>== Linux Kernel ==<br />
<br />
Create and navigate to your kernel working folder<br />
<br />
<tt>'''mkdir''' chronos<br />
'''cd''' chronos </tt><br />
<br />
Download the <tt>2.6.33.9</tt> kernel to your working kernel folder<br />
<br />
<tt>'''wget''' http://mirrors.med.harvard.edu/linux/kernel/v2.6/longterm/v2.6.33/linux-2.6.33.9.tar.bz2</tt><br />
<br />
== CONFIG_PREEMPT_RT and ChronOS Kernel Patches, Libraries, and Test Application ==<br />
<br />
Download the latest version of the archive which contains the latest PREEMPT_RT and ChronOS kernel patches, associated libraries, and the middleware test application called <tt>sched_test_app</tt> from the [http://chronoslinux.org/repo/releases/ repository].<br />
<br />
Extract the contents of this folder and move them to the 'chronos' folder you created above.<br />
<br />
<tt>'''tar xf''' ChronOS_Beta_2.8.tar.bz2<br />
'''mv''' ChronOS_Beta_2.8/* chronos/</tt><br />
<br />
Continue with the [[Installation Guide]].<br />
<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide_2.8
Installation Guide 2.8
2012-03-21T03:05:52Z
<p>Aclindsa: </p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 2.8 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS Beta 2.8.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your kernel working folder <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-2.6.33.9.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-2.6.33.9 linux-2.6.33.9-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_Beta_2.8/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux | download instructions]]).<br />
<br />
<code> '''cd''' linux-2.6.33.9-chronos </code> <br />
<code> '''bzcat''' ../patch-2.6.33.9-rt31.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-2.6.33.9-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos </code><br />
<br />
If you're running Ubuntu, you may wish to copy over your previous configuration, since the default kernel config may not have the right options selected. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-33-generic</code>, and you should copy it to <code>.config</code> in the kernel directory, like this:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-33-generic .config </code><br />
<br />
Then, to update the Ubuntu config to match the current kernel version, you should run the following:<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
<br />
Once this works successfully, it should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>'''General Setup > Group CPU Scheduler >''' ''Group Scheduling'': ['''n''']<br />
'''Processor Types and Features >''' ''Tickless System (Dynamic Ticks)'': ['''*''']<br />
'''Processor Types and Features >''' ''High Resolution Timer Support'': ['''*''']<br />
'''Processor Types and Features >''' ''Symmetric multi-processing support'': ['''*''']<br />
'''Processor Types and Features > Preemption Mode >''' ''Complete Preemption (Real-Time)'': ['''*''']<br />
'''Power Management Options > CPU Frequency Scaling >''' ''CPU Frequency Scaling'': ['''n''']<br />
'''Device Drivers > Network Device Support >''' ''Network Console Logging Support'': ['''M''']<br />
'''CHRONOS >''' ''ChronOS real-time scheduling'': ['''*''']<br />
'''CHRONOS >''' ''Scheduling statistics for real-time schedulers'': ['''*''']<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-21T03:05:29Z
<p>Aclindsa: add link to old Installation Guide</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0. ([[Installation Guide 2.8|Installation Guide for ChronOS 2.8]])<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide_3.0
Installation Guide 3.0
2012-03-21T03:03:04Z
<p>Aclindsa: moved Installation Guide 3.0 to Installation Guide:&#32;3.0 ChronOS Release</p>
<hr />
<div>#REDIRECT [[Installation Guide]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-21T03:03:04Z
<p>Aclindsa: moved Installation Guide 3.0 to Installation Guide:&#32;3.0 ChronOS Release</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide_2.8
Installation Guide 2.8
2012-03-21T03:02:29Z
<p>Aclindsa: moved Installation Guide to Installation Guide 2.8:&#32;3.0 release of ChronOS</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS Beta 2.8.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your kernel working folder <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-2.6.33.9.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-2.6.33.9 linux-2.6.33.9-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_Beta_2.8/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux | download instructions]]).<br />
<br />
<code> '''cd''' linux-2.6.33.9-chronos </code> <br />
<code> '''bzcat''' ../patch-2.6.33.9-rt31.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-2.6.33.9-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos </code><br />
<br />
If you're running Ubuntu, you may wish to copy over your previous configuration, since the default kernel config may not have the right options selected. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-33-generic</code>, and you should copy it to <code>.config</code> in the kernel directory, like this:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-33-generic .config </code><br />
<br />
Then, to update the Ubuntu config to match the current kernel version, you should run the following:<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
<br />
Once this works successfully, it should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>'''General Setup > Group CPU Scheduler >''' ''Group Scheduling'': ['''n''']<br />
'''Processor Types and Features >''' ''Tickless System (Dynamic Ticks)'': ['''*''']<br />
'''Processor Types and Features >''' ''High Resolution Timer Support'': ['''*''']<br />
'''Processor Types and Features >''' ''Symmetric multi-processing support'': ['''*''']<br />
'''Processor Types and Features > Preemption Mode >''' ''Complete Preemption (Real-Time)'': ['''*''']<br />
'''Power Management Options > CPU Frequency Scaling >''' ''CPU Frequency Scaling'': ['''n''']<br />
'''Device Drivers > Network Device Support >''' ''Network Console Logging Support'': ['''M''']<br />
'''CHRONOS >''' ''ChronOS real-time scheduling'': ['''*''']<br />
'''CHRONOS >''' ''Scheduling statistics for real-time schedulers'': ['''*''']<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-14T03:32:47Z
<p>Aclindsa: Undo revision 123 by Aclindsa (Talk)</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-14T03:32:27Z
<p>Aclindsa: Undo revision 124 by Aclindsa (Talk)</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-14T03:27:56Z
<p>Aclindsa: /* Configuring the Kernel */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Mode > Complete Preemption (Real-Time) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-03-14T03:26:46Z
<p>Aclindsa: /* Configuring the Kernel */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-01-28T15:36:02Z
<p>Aclindsa: </p>
<hr />
<div>Changes made between Beta 2.8 and 3.0.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.17, and updated to the 3.0.17-rt33 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.17 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Ported to ARM architecture.<br />
** Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging (including warning when a ChronOS task blocks inside its RT segment, and when it exits prematurely).<br />
* Converted all scheduler-managed lists to Linux's 'struct list_head' style lists, and added '#define' constants for referencing them by name.<br />
* United the initialization of the /proc/chronos/ entries, so that directory is guaranteed to always be created, and made /proc/chronos/schedulers always available, even if scheduling statistics are not enabled.<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Add array-walk and linked list traversal workloads for memory-intensive testing.<br />
** Improve accuracy of slope-generation mechanism.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/Main_Page
Main Page
2012-01-21T19:13:15Z
<p>Aclindsa: /* Latest Development News */</p>
<hr />
<div>__NOTOC__<br />
<br />
<div align="center"><br />
[[File:Chronos-logo.png]]<br />
</div><br />
<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#dcf5ff; align:right;"><br />
= ChronOS Real-time Linux=<br />
ChronOS is a real-time Linux patch created by the [http://www.real-time.ece.vt.edu Real-time Systems Lab] at [http://www.vt.edu Virginia Tech]. It builds upon the [http://rt.wiki.kernel.org CONFIG_PREEMPT_RT] patch and is designed to provide a testbed for real-time and distributed task scheduling and resource management research on multicore platforms.<br />
<br />
The current version of ChronOS is '''Beta 2.8''' which is based on Linux kernel 2.6.33.9 and the <tt>CONFIG_PREEMPT_RT</tt> patch.<br />
<br />
=Installation Guide=<br />
<br />
To download ChronOS Linux, please refer to [[Downloading ChronOS Linux]]<br />
<br />
For installation instructions, please refer to the [[Installation Guide]].<br />
<br />
For common installation problems and their solutions, please refer to [[Common Installation Problems]].<br />
<br />
=Documentation=<br />
<br />
* For architecture details, please see [[About ChronOS Linux]]<br />
* For more information about distributed threads on ChronOS, please see [[ChronOS Distributed Threads]].<br />
* For documentation of the user-space APIs provided by ChronOS, please look at [[ChronOS Userspace Docs]].<br />
* For kernel programming tips and other related documentation, please look at [[Kernel Programming Tips]]<br />
<br />
=Getting the Code=<br />
<br />
In addition to the packages made available on our downloads page, the ChronOS source code is available in the form of git repositories, available [http://git.chronoslinux.org here].<br />
<br />
= Publications =<br />
<br />
* [http://chronoslinux.org/papers/sac11.pdf Implementing Distributable Real-Time Threads in the Linux Kernel: Programming Interface and Scheduling Support], S. Fahmy, B. Ravindran, and E. D. Jensen, ACM Symposium on Applied Computing, Track on Operating Systems, March 2012, to appear.<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05122011-142219/ An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, MS Thesis, April 2011<br />
<br />
* [http://chronoslinux.org/papers/dac2011.pdf ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel], Matthew Dellinger, Piyush Garyali, and Binoy Ravindran, ACM Design and Automation Conference (DAC 2011), June 2011, To appear. ©ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://www.real-time.ece.vt.edu/opodis10-gua.pdf On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, Matthew Dellinger, and Binoy Ravindran, International Conference On Principles Of Distributed Systems (OPODIS 2010), December 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-07222010-114202/ On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, MS Thesis, July 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05072010-074318/ Collaborative Scheduling and Synchronization of Distributable Real-Time Threads], Sherif F. Fahmy, PhD Dissertation, May 2010<br />
<br />
Past publications on distributed threads and real-time scheduling are available [[Publications | here]].<br />
</div> <br />
| width="50%" style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=ChronOS News=<br />
<br />
===Latest Development News===<br />
* January 21, 2012 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_3.0-rc1.tar.bz2 3.0-rc1]. [[3.0 Changelog | (''Changelog'')]]. <br />
* October 28, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.8.tar.bz2 Beta 2.8] Released. [[Beta-2.8 Changelog | (''Changelog'')]]. <br />
Note that if you downloaded this release before November 4th, 2011, there was an error in the libchronos that shipped with the release, and you should re-download it to get the fixed version.<br />
* April 12, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.7.tar.bz2 Beta 2.7] Released. [[Beta-2.7 Changelog | (''Changelog'')]].<br />
* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. [[Beta-2.6 Changelog | (''Changelog'')]].<br />
* [[Archived ChronOS Versions]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=Contacts=<br />
===Faculty Advisor===<br />
[http://www.ece.vt.edu/faculty/ravindran.php Binoy Ravindran] [mailto:binoy@vt.edu binoy@vt.edu]<br />
<br />
=== Current Maintainer ===<br />
Matthew Dellinger [mailto:matthew@mdelling.com matthew@mdelling.com]<br />
<br />
===Other Developers===<br />
*[http://aclindsay.com Aaron Lindsay] [mailto:aaron.lindsay@vt.edu aaron.lindsay@vt.edu]<br />
*Ben Shelton [mailto:beshelto@vt.edu beshelto@vt.edu]<br />
<br />
===Past Contributers===<br />
*[http://andersoj.org/ Jonathan Anderson] [mailto:andersoj@andersoj.org andersoj@andersoj.org]<br />
* [http://www.linkedin.com/in/garyali Piyush Garyali] [mailto:piyushg@vt.edu piyushg@vt.edu] (M.S., 2010)<br />
* Sherif Fahmy [mailto:fahmy@vt.edu fahmy@vt.edu] (PhD., 2010)<br />
* Caleb Hopkins (B.S., 2009)<br />
* Surry Shome (B.S., 2009)<br />
</div><br />
|}<br />
<br />
This work is supported in part by US National Science Foundation CNS 0915895 and CNS 1130180, and US NSWC under Grant N00178-09-D-3017-0011. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or US NSWC.</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T18:56:23Z
<p>Aclindsa: /* Installing Benchmarks */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T18:56:13Z
<p>Aclindsa: /* Installing Test Cases */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>sudo ./all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T18:55:59Z
<p>Aclindsa: /* Installing Benchmarks */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks.sh</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T18:55:51Z
<p>Aclindsa: /* Installing Test Cases */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases.sh</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T18:55:21Z
<p>Aclindsa: /* Installing Sched_Test_App */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''sched_test_app'''</code> is a userspace application written in <code>C</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, simply run <tt>'''make'''</tt>. To install it, run <tt>sudo make install</tt> script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T18:49:22Z
<p>Aclindsa: /* Applying Patches */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide_2.8
Installation Guide 2.8
2012-01-21T18:48:49Z
<p>Aclindsa: Undo revision 103 by Aclindsa (Talk)</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS Beta 2.8.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your kernel working folder <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-2.6.33.9.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-2.6.33.9 linux-2.6.33.9-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_Beta_2.8/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux | download instructions]]).<br />
<br />
<code> '''cd''' linux-2.6.33.9-chronos </code> <br />
<code> '''bzcat''' ../patch-2.6.33.9-rt31.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-2.6.33.9-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos </code><br />
<br />
If you're running Ubuntu, you may wish to copy over your previous configuration, since the default kernel config may not have the right options selected. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-33-generic</code>, and you should copy it to <code>.config</code> in the kernel directory, like this:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-33-generic .config </code><br />
<br />
Then, to update the Ubuntu config to match the current kernel version, you should run the following:<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
<br />
Once this works successfully, it should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>'''General Setup > Group CPU Scheduler >''' ''Group Scheduling'': ['''n''']<br />
'''Processor Types and Features >''' ''Tickless System (Dynamic Ticks)'': ['''*''']<br />
'''Processor Types and Features >''' ''High Resolution Timer Support'': ['''*''']<br />
'''Processor Types and Features >''' ''Symmetric multi-processing support'': ['''*''']<br />
'''Processor Types and Features > Preemption Mode >''' ''Complete Preemption (Real-Time)'': ['''*''']<br />
'''Power Management Options > CPU Frequency Scaling >''' ''CPU Frequency Scaling'': ['''n''']<br />
'''Device Drivers > Network Device Support >''' ''Network Console Logging Support'': ['''M''']<br />
'''CHRONOS >''' ''ChronOS real-time scheduling'': ['''*''']<br />
'''CHRONOS >''' ''Scheduling statistics for real-time schedulers'': ['''*''']<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide_2.8
Installation Guide 2.8
2012-01-21T18:40:16Z
<p>Aclindsa: /* Applying Patches */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS Beta 2.8.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your kernel working folder <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-2.6.33.9.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-2.6.33.9 linux-2.6.33.9-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_Beta_2.8/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux | download instructions]]).<br />
<br />
<code> '''cd''' linux-2.6.33.9-chronos </code> <br />
<code> '''bzcat''' ../patch-2.6.33.9-rt31.patch.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-2.6.33.9-chronos.patch.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos </code><br />
<br />
If you're running Ubuntu, you may wish to copy over your previous configuration, since the default kernel config may not have the right options selected. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-33-generic</code>, and you should copy it to <code>.config</code> in the kernel directory, like this:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-33-generic .config </code><br />
<br />
Then, to update the Ubuntu config to match the current kernel version, you should run the following:<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
<br />
Once this works successfully, it should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>'''General Setup > Group CPU Scheduler >''' ''Group Scheduling'': ['''n''']<br />
'''Processor Types and Features >''' ''Tickless System (Dynamic Ticks)'': ['''*''']<br />
'''Processor Types and Features >''' ''High Resolution Timer Support'': ['''*''']<br />
'''Processor Types and Features >''' ''Symmetric multi-processing support'': ['''*''']<br />
'''Processor Types and Features > Preemption Mode >''' ''Complete Preemption (Real-Time)'': ['''*''']<br />
'''Power Management Options > CPU Frequency Scaling >''' ''CPU Frequency Scaling'': ['''n''']<br />
'''Device Drivers > Network Device Support >''' ''Network Console Logging Support'': ['''M''']<br />
'''CHRONOS >''' ''ChronOS real-time scheduling'': ['''*''']<br />
'''CHRONOS >''' ''Scheduling statistics for real-time schedulers'': ['''*''']<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T16:49:31Z
<p>Aclindsa: /* Configuring the Kernel */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
General setup > RCU Subsystem > RCU Implementation > Preemptible tree-based hierarchical RCU (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T16:44:35Z
<p>Aclindsa: /* Compiling and Installing the Kernel */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-3.0.17-chronos<br />
'''sudo cp''' .config /boot/config-3.0.17-chronos<br />
'''sudo cp''' System.map /boot/System.map-3.0.17-chronos<br />
'''sudo update-initramfs''' -c -k 3.0.17-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-3.0.17-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T16:39:23Z
<p>Aclindsa: /* Configuring the Kernel */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): [*]<br />
Processor Types and Features > High Resolution Timer Support: [*]<br />
Processor Types and Features > Symmetric multi-processing support: [*]<br />
Processor Types and Features > Preemption Model > Fully Preemptible Kernel (RT) (X)<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: [n]<br />
ChronOS Real-time Scheduling > ChronOS real-time scheduling: [*]<br />
ChronOS Real-time Scheduling > Scheduling statistics for real-time schedulers: [*]<br />
ChronOS Real-time Scheduling > Locking statistics for scheduler-managed locks: [*]<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T16:29:06Z
<p>Aclindsa: /* Configuring the Kernel */</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>General Setup > Control Group support > Group CPU scheduler > Group scheduling for SCHED_RR/FIFO: [n]<br />
Processor Types and Features > Tickless System (Dynamic Ticks): ['''*''']<br />
Processor Types and Features > High Resolution Timer Support: ['''*''']<br />
Processor Types and Features > Symmetric multi-processing support'': ['''*''']<br />
Processor Types and Features > Preemption Mode > Complete Preemption (Real-Time)'': ['''*''']<br />
Power Management Options > CPU Frequency Scaling > CPU Frequency Scaling: ['''n''']<br />
Device Drivers > Network Device Support > Network Console Logging Support: ['''M''']<br />
CHRONOS > ChronOS real-time scheduling: ['''*''']<br />
CHRONOS > Scheduling statistics for real-time schedulers: ['''*''']<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T16:01:37Z
<p>Aclindsa: </p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
'''Note''': other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
You should now update this <tt>.config</tt> file to work with the ChronOS kernel version. To update it with the defaults for every option which has been added between your distribution's kernel's release and the ChronOS kernel's release, run the following (omit the <tt>yes "" |</tt> portion to pick the value of each option by hand. Beware: this can be time consuming):<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
This should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>'''General Setup > Group CPU Scheduler >''' ''Group Scheduling'': ['''n''']<br />
'''Processor Types and Features >''' ''Tickless System (Dynamic Ticks)'': ['''*''']<br />
'''Processor Types and Features >''' ''High Resolution Timer Support'': ['''*''']<br />
'''Processor Types and Features >''' ''Symmetric multi-processing support'': ['''*''']<br />
'''Processor Types and Features > Preemption Mode >''' ''Complete Preemption (Real-Time)'': ['''*''']<br />
'''Power Management Options > CPU Frequency Scaling >''' ''CPU Frequency Scaling'': ['''n''']<br />
'''Device Drivers > Network Device Support >''' ''Network Console Logging Support'': ['''M''']<br />
'''CHRONOS >''' ''ChronOS real-time scheduling'': ['''*''']<br />
'''CHRONOS >''' ''Scheduling statistics for real-time schedulers'': ['''*''']<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Installation_Guide
Installation Guide
2012-01-21T15:57:27Z
<p>Aclindsa: Created page with 'This guide assumes you have already followed the download instructions and have a recent Linux distribution installed. This documentation is …'</p>
<hr />
<div>This guide assumes you have already followed the [[Downloading ChronOS Linux 3.0 | download instructions]] and have a recent Linux distribution installed.<br />
<br />
This documentation is current as of ChronOS 3.0.<br />
<br />
== Install Required packages ==<br />
<br />
In order to compile the kernel, the build tools need to be installed. On Ubuntu, these can be installed from the package manager with the following command:<br />
<br />
<code>'''sudo apt-get''' install build-essential libncurses5-dev </code><br />
<br />
== Installing the Kernel ==<br />
<br />
=== Applying Patches ===<br />
<br />
The first step is to apply the two patches -- <tt>CONFIG_PREEMPT_RT</tt> and <tt>ChronOS</tt>.<br />
<br />
* Navigate to your ChronOS directory (created as part of the download instructions) <br /><br />
<code> '''cd''' chronos </code><br />
<br />
* Extract the downloaded kernel tarball. <br />
<br />
<code> '''tar''' xjvf linux-3.0.17.tar.bz2 </code><br />
<br />
* Rename the extracted folder<br />
<br />
<code> '''mv''' linux-3.0.17 linux-3.0.17-chronos </code><br />
<br />
* Navigate into the renamed kernel folder and apply the patches in order. (Note: these patch files should have been placed in the chronos/ folder by the <code>mv ChronOS_3.0/* chronos/</code> command you executed at the end of the [[Downloading ChronOS Linux 3.0 | download instructions]]).<br />
<br />
<code> '''cd''' linux-3.0.17-chronos </code> <br />
<code> '''bzcat''' ../patch-3.0.17-rt33.bz2 | '''patch''' -p1 </code><br />
<code> '''bzcat''' ../patch-3.0.17-chronos.bz2 | '''patch''' -p1 </code><br />
<br />
=== Configuring the Kernel ===<br />
<br />
First, navigate into the kernel directory (if you're not already there):<br />
<br />
<code>'''cd''' linux-3.0.17-chronos </code><br />
<br />
You may wish to copy over your previous configuration, since the default kernel config may not have the correct options selected for your distribution or hardware. You should copy the most recent config for your distribution to a <tt>.config</tt> file in this <tt>linux-3.0.17-chronos</tt> directory. For Ubuntu 10.04, this configuration is located at <code>/boot/config-2.6.32-37-generic</code>, and you may copy it to <code>.config</code> in the kernel directory, like so:<br />
<br />
<code>'''cp''' /boot/config-2.6.32-37-generic .config </code><br />
<br />
Note: other distributions probably have kernel config files available as well, try <tt>/boot</tt>, or consult your distribution's documentation.<br />
<br />
Then, to update this <tt>.config</tt> with the default options for every option which has been added since your distribution's kernel, run the following:<br />
<br />
<code> yes "" | '''make''' oldconfig </code><br />
<br />
The next step is to configure the kernel. To do this, run <br />
<br />
<code>'''make''' menuconfig </code><br />
<br />
<br />
<br />
Once this works successfully, it should bring up a set of menus. You need to mark/unmark the following options: <br><br />
<br />
<code>'''General Setup > Group CPU Scheduler >''' ''Group Scheduling'': ['''n''']<br />
'''Processor Types and Features >''' ''Tickless System (Dynamic Ticks)'': ['''*''']<br />
'''Processor Types and Features >''' ''High Resolution Timer Support'': ['''*''']<br />
'''Processor Types and Features >''' ''Symmetric multi-processing support'': ['''*''']<br />
'''Processor Types and Features > Preemption Mode >''' ''Complete Preemption (Real-Time)'': ['''*''']<br />
'''Power Management Options > CPU Frequency Scaling >''' ''CPU Frequency Scaling'': ['''n''']<br />
'''Device Drivers > Network Device Support >''' ''Network Console Logging Support'': ['''M''']<br />
'''CHRONOS >''' ''ChronOS real-time scheduling'': ['''*''']<br />
'''CHRONOS >''' ''Scheduling statistics for real-time schedulers'': ['''*''']<br />
</code><br />
<br />
===Compiling and Installing the Kernel===<br />
<br />
* Compile the kernel and the modules and then install the modules.<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''make''' bzImage<br />
'''make''' modules<br />
'''sudo make''' modules_install </code><br />
<br />
* Install the kernel image to the <code>/boot</code>, create an <code>initramfs</code> image for the kernel and update <code> grub </code><br />
<code>'''sudo cp''' arch/x86/boot/bzImage /boot/vmlinuz-2.6.33.9-chronos<br />
'''sudo cp''' .config /boot/config-2.6.33.9-chronos<br />
'''sudo cp''' System.map /boot/System.map-2.6.33.9-chronos<br />
'''sudo update-initramfs''' -c -k 2.6.33.9-chronos<br />
'''sudo update-grub''' </code><br />
<br />
In order to make the compilation and installing processor simpler on the x86 architecture, we have provided a bash script called <code>'''kinst'''</code> in the kernel folder. You will have to <code>'''chmod''' </code> this script before running it.<br />
<br />
<code>'''cd''' linux-2.6.33.9-chronos<br />
'''chmod''' +x kinst<br />
'''sudo''' ./kinst </code><br />
<br />
The script compiles the '''bzImage''' (kernel image), the kernel modules, and then installs the modules. It then copies the kernel image, system map, and kernel config to the <code>/boot</code> directory, generates the initramfs, and updates the grub menu. If you are on a non-x86 architecture, you'll have to change the directory to copy the kernel image from.<br />
<br />
Note that if you run into an error building one of the modules, you may need to go back to <code>'''make''' menuconfig</code> and unselect the module causing the build error.<br />
<br />
==Installing Libraries and Utilities==<br />
<br />
===Installing Libchronos===<br />
Libchronos is the shared userspace library which provides the hooks and headers files to interface with the ChronOS kernel.<br />
<br />
Then you need to install libchronos before installing any other userspace components. To install, simply run a <tt>make all</tt> followed by a <tt>sudo make install</tt> in the libchronos folder inside the chronos directory.<br />
<br />
If you are using a version of ChronOS before Beta 2.1, there is no libchronos, since the userspace APIs were provided by C/C++ headers.<br />
<br />
The most recent version of libchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App===<br />
<code>'''Sched_Test_App'''</code> is a userspace application written in <code>QT4\C++</code> designed to provide an interface for testing real-time schedulers.<br />
<br />
To compile it, run <tt>'''qmake'''</tt> followed by <tt>'''make'''</tt>. To install it, run the included install script. More details can be found in the README file.<br />
<br />
The most recent version of Sched_Test_App is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Libjchronos===<br />
Libjchronos is the shared userspace library which provides the hooks and class files to interface with the ChronOS kernel from Java.<br />
<br />
Then you need to install libjchronos before installing Sched_Test_App_Java, or exercising the ChronOS scheduler through Java. To install, simply run a <tt>make</tt> followed by a <tt>sudo make install</tt> in the libjchronos folder inside the chronos directory.<br />
<br />
Libjchronos was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of libjchronos is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Sched_Test_App_Java===<br />
<code>'''Sched_Test_App_Java'''</code> is a userspace application written in <code>Java/SWT</code> designed to provide an interface for testing real-time schedulers in Java.<br />
<br />
To compile it, run <tt>'''make'''</tt>. To install it, run <tt>'''sudo make install'''</tt>.<br />
<br />
Sched_Test_App_Java was not a part of ChronOS before Beta 2.6, so to use it, you just download 2.6 or a later version.<br />
<br />
The most recent version of Sched_Test_App_Java is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Test Cases===<br />
The ChronOS test cases provide an easy way to verify that a ChronOS Linux system is functioning correctly. Note that you will need to install Sched_Test_App and libchronos before running the test cases, since the slope computed during the installation of Sched_Test_App is used by the test cases.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_test_cases</tt>. Use the <tt>-v</tt> flag for a detailed output.<br />
<br />
The most recent version of the test cases is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
===Installing Benchmarks===<br />
Several benchmarking programs are included with ChronOS to provide measurements of ChronOS specific calls and comparisons with standard Linux calls.<br />
<br />
Compile the test cases with <tt>make</tt> and run them with <tt>all_benchmarks</tt>.<br />
<br />
The most recent version of the benchmarks is included in the main ChronOS archive, which you extracted as part of the [[Downloading ChronOS Linux | download instructions]].<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/Downloading_ChronOS_Linux
Downloading ChronOS Linux
2012-01-21T15:45:01Z
<p>Aclindsa: Created page with '== Linux Kernel == Create a directory to keep your ChronOS-related code in, and navigate to it. <tt>'''mkdir''' chronos '''cd''' chronos </tt> Download the <tt>3.0.17</tt> k…'</p>
<hr />
<div>== Linux Kernel ==<br />
<br />
Create a directory to keep your ChronOS-related code in, and navigate to it.<br />
<br />
<tt>'''mkdir''' chronos<br />
'''cd''' chronos </tt><br />
<br />
Download the <tt>3.0.17</tt> kernel to your <tt>chronos</tt> directory.<br />
<br />
<tt>'''wget''' http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.17.tar.bz2</tt><br />
<br />
== Everything Else (PREEMPT_RT and ChronOS Kernel Patches, Userspace Libraries, etc.) ==<br />
<br />
Download the latest version of the ChronOS archive which contains the latest PREEMPT_RT and ChronOS kernel patches, associated libraries, and the middleware test application called <tt>sched_test_app</tt> from the [http://chronoslinux.org/repo/releases/ repository]. The current version is [http://chronoslinux.org/repo/releases/ChronOS_3.0.tar.bz2 ChronOS 3.0].<br />
<br />
Extract the contents of this folder and move them to the 'chronos' folder you created above.<br />
<br />
<tt>'''tar xf''' ChronOS_3.0.tar.bz2<br />
'''mv''' ChronOS_3.0/* chronos/</tt><br />
<br />
Continue with the [[Installation Guide 3.0]].<br />
<br />
<br />
----<br />
Back to [[Main Page | main page]]</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-01-21T15:30:00Z
<p>Aclindsa: </p>
<hr />
<div>Changes made between Beta 2.8 and 3.0.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.17, and updated to the 3.0.17-rt33 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.17 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Ported to ARM architecture.<br />
** Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging (including warning when a ChronOS task blocks inside its RT segment, and when it exits prematurely).<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Add array-walk and linked list traversal workloads for memory-intensive testing.<br />
** Improve accuracy of slope-generation mechanism.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-01-21T15:23:43Z
<p>Aclindsa: </p>
<hr />
<div>Changes made between Beta 2.8 and 3.0.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.17, and updated to the 3.0.17-rt33 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.17 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Ported to ARM architecture.<br />
** Made MCS Lock implementation more generic. This will allow for easier porting of ChronOS to additional platforms. While the current 'generic' implementation is optimized for x86_64, it has been done in a way that encourages optimized architecture-specific versions.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging.<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Add array-walk and linked list traversal workloads for memory-intensive testing.<br />
** Improve accuracy of slope-generation mechanism.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-01-21T15:17:06Z
<p>Aclindsa: 3.0.14->3.0.17</p>
<hr />
<div>Changes made between Beta 2.8 and 3.0.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.17, and updated to the 3.0.17-rt33 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.17 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Made MCS Lock implementation generic.<br />
* Ported to ARM architecture.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging.<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Improve accuracy of slope-generation mechanism.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/3.0_Changelog
3.0 Changelog
2012-01-20T04:42:31Z
<p>Aclindsa: </p>
<hr />
<div>Changes made between Beta 2.8 and 3.0.<br />
<br />
==Kernel==<br />
* Moved from kernel version 2.6.33.9 to 3.0.14, and updated to the 3.0.14-rt31 version of the PREEMPT_RT patch.<br />
* Fixed several bugs resulting from changes made between the 2.6.33.9 and 3.0.14 kernels.<br />
* Allow processes to exit gracefully, even if inside a real-time segment.<br />
* Made MCS Lock implementation generic.<br />
* Ported to ARM architecture.<br />
* Added DEBUG_CHRONOS config option which adds several checks in the kernel which are useful for debugging.<br />
<br />
==Userspace==<br />
* Re-wrote entire sched_test_app for better modularity, portability, and expandability.<br />
** Remove dependence on QT<br />
** Add three timing methods: WCET, average-case, and timer-polling.<br />
** Improve accuracy of slope-generation mechanism.<br />
* Ported to ARM (fixed several overflow and type issues)</div>
Aclindsa
http://chronoslinux.org/wiki/Main_Page
Main Page
2012-01-20T01:14:12Z
<p>Aclindsa: </p>
<hr />
<div>__NOTOC__<br />
<br />
<div align="center"><br />
[[File:Chronos-logo.png]]<br />
</div><br />
<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#dcf5ff; align:right;"><br />
= ChronOS Real-time Linux=<br />
ChronOS is a real-time Linux patch created by the [http://www.real-time.ece.vt.edu Real-time Systems Lab] at [http://www.vt.edu Virginia Tech]. It builds upon the [http://rt.wiki.kernel.org CONFIG_PREEMPT_RT] patch and is designed to provide a testbed for real-time and distributed task scheduling and resource management research on multicore platforms.<br />
<br />
The current version of ChronOS is '''Beta 2.8''' which is based on Linux kernel 2.6.33.9 and the <tt>CONFIG_PREEMPT_RT</tt> patch.<br />
<br />
=Installation Guide=<br />
<br />
To download ChronOS Linux, please refer to [[Downloading ChronOS Linux]]<br />
<br />
For installation instructions, please refer to the [[Installation Guide]].<br />
<br />
For common installation problems and their solutions, please refer to [[Common Installation Problems]].<br />
<br />
=Documentation=<br />
<br />
* For architecture details, please see [[About ChronOS Linux]]<br />
* For more information about distributed threads on ChronOS, please see [[ChronOS Distributed Threads]].<br />
* For documentation of the user-space APIs provided by ChronOS, please look at [[ChronOS Userspace Docs]].<br />
* For kernel programming tips and other related documentation, please look at [[Kernel Programming Tips]]<br />
<br />
=Getting the Code=<br />
<br />
In addition to the packages made available on our downloads page, the ChronOS source code is available in the form of git repositories, available [http://git.chronoslinux.org here].<br />
<br />
= Publications =<br />
<br />
* [http://chronoslinux.org/papers/sac11.pdf Implementing Distributable Real-Time Threads in the Linux Kernel: Programming Interface and Scheduling Support], S. Fahmy, B. Ravindran, and E. D. Jensen, ACM Symposium on Applied Computing, Track on Operating Systems, March 2012, to appear.<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05122011-142219/ An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, MS Thesis, April 2011<br />
<br />
* [http://chronoslinux.org/papers/dac2011.pdf ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel], Matthew Dellinger, Piyush Garyali, and Binoy Ravindran, ACM Design and Automation Conference (DAC 2011), June 2011, To appear. ©ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://www.real-time.ece.vt.edu/opodis10-gua.pdf On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, Matthew Dellinger, and Binoy Ravindran, International Conference On Principles Of Distributed Systems (OPODIS 2010), December 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-07222010-114202/ On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, MS Thesis, July 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05072010-074318/ Collaborative Scheduling and Synchronization of Distributable Real-Time Threads], Sherif F. Fahmy, PhD Dissertation, May 2010<br />
<br />
Past publications on distributed threads and real-time scheduling are available [[Publications | here]].<br />
</div> <br />
| width="50%" style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=ChronOS News=<br />
<br />
===Latest Development News===<br />
* October 28, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.8.tar.bz2 Beta 2.8] Released. [[Beta-2.8 Changelog | (''Changelog'')]]. <br />
Note that if you downloaded this release before November 4th, 2011, there was an error in the libchronos that shipped with the release, and you should re-download it to get the fixed version.<br />
* April 12, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.7.tar.bz2 Beta 2.7] Released. [[Beta-2.7 Changelog | (''Changelog'')]].<br />
* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. [[Beta-2.6 Changelog | (''Changelog'')]].<br />
* [[Archived ChronOS Versions]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=Contacts=<br />
===Faculty Advisor===<br />
[http://www.ece.vt.edu/faculty/ravindran.php Binoy Ravindran] [mailto:binoy@vt.edu binoy@vt.edu]<br />
<br />
=== Current Maintainer ===<br />
Matthew Dellinger [mailto:matthew@mdelling.com matthew@mdelling.com]<br />
<br />
===Other Developers===<br />
*[http://aclindsay.com Aaron Lindsay] [mailto:aaron.lindsay@vt.edu aaron.lindsay@vt.edu]<br />
*Ben Shelton [mailto:beshelto@vt.edu beshelto@vt.edu]<br />
<br />
===Past Contributers===<br />
*[http://andersoj.org/ Jonathan Anderson] [mailto:andersoj@andersoj.org andersoj@andersoj.org]<br />
* [http://www.linkedin.com/in/garyali Piyush Garyali] [mailto:piyushg@vt.edu piyushg@vt.edu] (M.S., 2010)<br />
* Sherif Fahmy [mailto:fahmy@vt.edu fahmy@vt.edu] (PhD., 2010)<br />
* Caleb Hopkins (B.S., 2009)<br />
* Surry Shome (B.S., 2009)<br />
</div><br />
|}<br />
<br />
This work is supported in part by US National Science Foundation CNS 0915895 and CNS 1130180, and US NSWC under Grant N00178-09-D-3017-0011. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or US NSWC.</div>
Aclindsa
http://chronoslinux.org/wiki/Archived_ChronOS_Versions
Archived ChronOS Versions
2012-01-19T20:40:02Z
<p>Aclindsa: </p>
<hr />
<div>* February 20, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.5.tar.bz2 Beta 2.5] Released. [[Beta-2.5 Changelog | (''Changelog'')]].<br />
* November 17, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.4.tar.bz2 Beta 2.4] Released. [[Beta-2.4 Changelog | (''Changelog'')]].<br />
* October 12, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.3.tar.bz2 Beta 2.3] Released. [[Beta-2.3 Changelog | (''Changelog'')]].<br />
* September 22, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.2.tar.bz2 Beta 2.2] Released. [[Beta-2.2 Changelog | (''Changelog'')]].<br />
* August 28, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.1.tar.bz2 Beta 2.1] Released. [[Beta-2.1 Changelog | (''Changelog'')]].<br />
* July 22, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.tar.bz2 Beta 2] Released.<br />
* April 15, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_1.1.tar.bz2 Beta 1.1] Released.<br />
* March 25, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_1.tar.bz2 Beta 1] Released.</div>
Aclindsa
http://chronoslinux.org/wiki/Main_Page
Main Page
2012-01-19T20:39:48Z
<p>Aclindsa: /* ChronOS News */</p>
<hr />
<div>__NOTOC__<br />
<br />
<div align="center"><br />
[[File:Chronos-logo.png]]<br />
</div><br />
<br />
{| width="100%"<br />
|-<br />
|style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#dcf5ff; align:right;"><br />
= ChronOS Real-time Linux=<br />
ChronOS is a real-time Linux patch created by the [http://www.real-time.ece.vt.edu Real-time Systems Lab] at [http://www.vt.edu Virginia Tech]. It builds upon the [http://rt.wiki.kernel.org CONFIG_PREEMPT_RT] patch and is designed to provide a testbed for real-time and distributed task scheduling and resource management research on multicore platforms.<br />
<br />
The current version of ChronOS is '''Beta 2.8''' which is based on Linux kernel 2.6.33.9 and the <tt>CONFIG_PREEMPT_RT</tt> patch.<br />
<br />
=Installation Guide=<br />
<br />
To download ChronOS Linux, please refer to [[Downloading ChronOS Linux]]<br />
<br />
For installation instructions, please refer to the [[Installation Guide]].<br />
<br />
For common installation problems and their solutions, please refer to [[Common Installation Problems]].<br />
<br />
=Documentation=<br />
<br />
* For architecture details, please see [[About ChronOS Linux]]<br />
* For more information about distributed threads on ChronOS, please see [[ChronOS Distributed Threads]].<br />
* For full documentation of the user-space APIs provided by ChronOS, please look at [[ChronOS Userspace Docs]].<br />
* For kernel programming tips and other related documentation, please look at [[Kernel Programming Tips]]<br />
<br />
=Getting the Code=<br />
<br />
In addition to the packages made available on our downloads page, the ChronOS source code is available in the form of git repositories, available [http://git.chronoslinux.org here].<br />
<br />
= Publications =<br />
<br />
* [http://chronoslinux.org/papers/sac11.pdf Implementing Distributable Real-Time Threads in the Linux Kernel: Programming Interface and Scheduling Support], S. Fahmy, B. Ravindran, and E. D. Jensen, ACM Symposium on Applied Computing, Track on Operating Systems, March 2012, to appear.<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05122011-142219/ An Experimental Evaluation of the Scalability of Real-Time Scheduling Algorithms on Large-Scale Multicore Platforms], Matthew Dellinger, MS Thesis, April 2011<br />
<br />
* [http://chronoslinux.org/papers/dac2011.pdf ChronOS Linux: A Best-Effort Real-Time Multiprocessor Linux Kernel], Matthew Dellinger, Piyush Garyali, and Binoy Ravindran, ACM Design and Automation Conference (DAC 2011), June 2011, To appear. ©ACM, 2011. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.<br />
<br />
* [http://www.real-time.ece.vt.edu/opodis10-gua.pdf On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, Matthew Dellinger, and Binoy Ravindran, International Conference On Principles Of Distributed Systems (OPODIS 2010), December 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-07222010-114202/ On Best-Effort Utility Accrual Real-Time Scheduling on Multiprocessors], Piyush Garyali, MS Thesis, July 2010<br />
<br />
* [http://scholar.lib.vt.edu/theses/available/etd-05072010-074318/ Collaborative Scheduling and Synchronization of Distributable Real-Time Threads], Sherif F. Fahmy, PhD Dissertation, May 2010<br />
<br />
Past publications on distributed threads and real-time scheduling are available [[Publications | here]].<br />
</div> <br />
| width="50%" style="vertical-align:top" |<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=ChronOS News=<br />
<br />
===Latest Development News===<br />
* October 28, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.8.tar.bz2 Beta 2.8] Released. [[Beta-2.8 Changelog | (''Changelog'')]]. <br />
Note that if you downloaded this release before November 4th, 2011, there was an error in the libchronos that shipped with the release, and you should re-download it to get the fixed version.<br />
* April 12, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.7.tar.bz2 Beta 2.7] Released. [[Beta-2.7 Changelog | (''Changelog'')]].<br />
* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. [[Beta-2.6 Changelog | (''Changelog'')]].<br />
* [[Archived ChronOS Versions]]<br />
</div><br />
<br />
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#fff0e0; align:right;"><br />
<br />
=Contacts=<br />
===Faculty Advisor===<br />
[http://www.ece.vt.edu/faculty/ravindran.php Binoy Ravindran] [mailto:binoy@vt.edu binoy@vt.edu]<br />
<br />
=== Current Maintainer ===<br />
Matthew Dellinger [mailto:matthew@mdelling.com matthew@mdelling.com]<br />
<br />
===Other Developers===<br />
*[http://aclindsay.com Aaron Lindsay] [mailto:aaron.lindsay@vt.edu aaron.lindsay@vt.edu]<br />
*Ben Shelton [mailto:beshelto@vt.edu beshelto@vt.edu]<br />
<br />
===Past Contributers===<br />
*[http://andersoj.org/ Jonathan Anderson] [mailto:andersoj@andersoj.org andersoj@andersoj.org]<br />
* [http://www.linkedin.com/in/garyali Piyush Garyali] [mailto:piyushg@vt.edu piyushg@vt.edu] (M.S., 2010)<br />
* Sherif Fahmy [mailto:fahmy@vt.edu fahmy@vt.edu] (PhD., 2010)<br />
* Caleb Hopkins (B.S., 2009)<br />
* Surry Shome (B.S., 2009)<br />
</div><br />
|}<br />
<br />
This work is supported in part by US National Science Foundation CNS 0915895 and CNS 1130180, and US NSWC under Grant N00178-09-D-3017-0011. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or US NSWC.</div>
Aclindsa
http://chronoslinux.org/wiki/Archived_ChronOS_Versions
Archived ChronOS Versions
2012-01-19T20:39:35Z
<p>Aclindsa: Created page with '* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. (''Changelog''). * February 20, 2011 - Chr…'</p>
<hr />
<div>* March 21, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.6.tar.bz2 Beta 2.6] Released. [[Beta-2.6 Changelog | (''Changelog'')]].<br />
* February 20, 2011 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.5.tar.bz2 Beta 2.5] Released. [[Beta-2.5 Changelog | (''Changelog'')]].<br />
* November 17, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.4.tar.bz2 Beta 2.4] Released. [[Beta-2.4 Changelog | (''Changelog'')]].<br />
* October 12, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.3.tar.bz2 Beta 2.3] Released. [[Beta-2.3 Changelog | (''Changelog'')]].<br />
* September 22, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.2.tar.bz2 Beta 2.2] Released. [[Beta-2.2 Changelog | (''Changelog'')]].<br />
* August 28, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.1.tar.bz2 Beta 2.1] Released. [[Beta-2.1 Changelog | (''Changelog'')]].<br />
* July 22, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_2.tar.bz2 Beta 2] Released.<br />
* April 15, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_1.1.tar.bz2 Beta 1.1] Released.<br />
* March 25, 2010 - ChronOS [http://chronoslinux.org/repo/releases/ChronOS_Beta_1.tar.bz2 Beta 1] Released.</div>
Aclindsa