トップページlinux
981コメント337KB

リアルタイムリナックスについて

■ このスレッドは過去ログ倉庫に格納されています
0001wait_npNGNG
リアルタイムリナックス(RT-Linux)について語り合うスレです。
素朴な疑問やくだらない質問も受け付けます。

RT-Linux  http://rtlinux.cs.nmt.edu
ART-Linux http://www.etl.go.jp/etl/robotics/Projects/ART-Linux

わかることは答えます。わからないことは皆さんが答えてください。
0713login:Penguin2005/07/20(水) 21:37:14ID:COp3cVuM
>>712
その金額には、単にOSだけではなく、サポートも含まれていると思います。
自分でKernel2.6やRTAIのフリー版などを使った場合は、100万円出さなくて
済むかわりに、いろいろな調査や設定などで「時間」や「手間」など、
個人の場合は直接お金として表われてこない「コスト」がかかるかもしれません。

それから、今のTimeSysはどうなのか知りませんが、2年ぐらい前は100万円も
出さずに買えるケースがありましたよ。
Pentium用の基本セットなら、$875で買えました。日本でもそれに
準じた金額でした。
http://web.archive.org/web/20031008120542/http://www.timesys.com/

商用版だからといって高いとは限りませんよ。
0714login:Penguin2005/07/20(水) 23:31:30ID:0vP2x2nP
>>713
おお!いいじゃないですか!$875なら。
x86(PC-AT)しか使わないのでいけるかも?
RTAIのフリー版しか選択の余地無しと思っていましたが。
日新はそんなこといってなかったのに…
今はいくらなんだろ?
ありがとうございました。
0715login:Penguin2005/07/22(金) 07:27:20ID:F28odBST
物知りなみなさんに質問でつ。

ユーザープロセスのスケジューリングポリシーや優先度は
sched_setscheduler() で設定できるけど、
ドライバなんかで生成した Kernel Thread のそれは
どうやったら設定できるのかな。
sched.c::sched_setscheduler() を直接呼ぶの?

pthread API は使えるわけ無いし、ググってもほとんど情報がない。。。
0716login:Penguin2005/07/23(土) 18:29:54ID:dRSqAEeO
>>715
pidを持つスレッドであれば、schedのsetscheduler関係のものが使えるのでは?
試してみればいかがでしょう?

タスクレットとかだと、普通のKernel 2.4では優先度とかを設定するのは
無理なような気がします。
Kernel 2.6のO(1)スケジューラとか、MontaVista、TimeSys、RTAIとかだと
タスクレットに対しても優先度とかを設定できるんですかねぇ?
0717login:Penguin2005/07/24(日) 08:17:20ID:2uHKuXyj
>>716
もともとは、ユーザープロセスのほうで SCHED_FIFO とかにしても
Kernel Thread の影響で全体のスケジューリングにどういう影響が
あるかを調べてます。

kernel/sched.c とか kthread.c を見てる限りではプロセスと
同じ扱いみたいだからできそうなんだけど、時間の都合で
まだ試せてないんです。

あと sched_yield() はユーザープロセスオンリー?な気もして
引き続き調べ中。 ちなみに 2.6.11 でつ。
0718login:Penguin2005/07/24(日) 10:55:19ID:aAm3ZTIw
>>717
カーネルスレッドがSCHED_OTHER(2.6では名前変わったんでしたっけ?)なら
SCHED_FIFO/SCHED_RRスレッドのスケジューリングには影響ないでしょう。
SCHED_FIFOのスレッドが影響を受けてしまったら、SCHED_FIFOの意味が
薄れてしまいますよね。プライオリティの設定にもよる気がしますが。

それからカーネルスレッド内のクリティカルセクションが長いとユーザプロセス
に影響が出てしまいますが、どうスケジューリングされるのかということだけ測定
するのであれば、そういう条件はあまり関係ないかもしれませんね。

あと、sched_yield()のようにCPUをあけ渡してスケジューリングしたいのなら、
カーネルモードではschedule()を呼べばいいと思います。
0719login:Penguin2005/07/24(日) 10:58:30ID:aAm3ZTIw
む、そうか、だからカーネルスレッドのスケジューリングポリシーとか
優先度を設定したいんですね。
SCHED_FIFOにすれば、ユーザモードでもカーネルモードでも関係ない
ような...
0720login:Penguin2005/07/24(日) 22:14:29ID:2uHKuXyj
>>718-719
さんくす。

ユーザープロセスも Kernel Thread との間に越えられない壁はなくて、
Kernel Thread が全部 SCHED_OTHER(SCHED_NORMAL)なら問題なさそう
ってことでつね。
# どやって調べようか。。。うーむ

ちなみに、以下調べたことチラシの裏書き。

FIFO/RR は静的優先度1-99 で、OTHER は 0。 OTHER は OTHER の中で別に
動的優先度(NICE値)を持っており、各プロセスに平等にCPU が行き渡るように
スケジューラが動的優先度を随時調整している。

静的優先度と動的優先度は、変数としては同じところに保持されていて、優先度の参照の際には
スケジューリングポリシーを参照してオフセットを足して使い分けている。
(静的[0..MAX_RT_PRIO-1]、動的[MAX_RT_PRIO..MAX_RT_PRIO+40])

コード的に動的優先度の数(-20〜20の40個)より静的優先度の数(0〜99 の100個)の方が
大きい前提で比較を行っている if 文がありそうなので、sched.h の MAX_USER_RT_PRIO を
いじるときは注意。

sched_setscheduler() などでスケジューリングポリシーを設定するときに
FIFO/RR なら OTHER から CPU を奪って FIFO/RR にタスクスイッチする。
優先度の判定もしていて、優先度が current より高ければ、同様にタスクスイッチ
する。
0721login:Penguin2005/08/06(土) 03:14:59ID:TACiXhq1
リアルタイムタスクで採取したデータをGUI画面にグラフ表示したいのですが、ディストリビューション(GUI)何使ってますか?
Fedora4使ってる人いますか?
0722login:Penguin2005/08/10(水) 01:16:20ID:IMW3UDZu
>>715
> sched.c::sched_setscheduler() を直接呼ぶの?

CPU migration thread なんかの kernel thread は、
pid を 0 にして sched_setscheduler() で、
呼び出した thread 自身のスケジューリング設定をやってるね。

あと、sched_yield() したければ、schedule() でも良いかもしれんが、
yield() ってのも有る。これだと、set_current_state() とかでの
前準備しなくて良いのでは。
0723login:Penguin2005/10/08(土) 13:46:20ID:ng3C5EQG
もう10月か。
0724松井→サントスは必要なかった2005/10/08(土) 21:54:34ID:vgSIfNSb
松井→サントスは必要なかった
0725YAHOO出品情報でし2005/10/10(月) 14:36:38ID:9ddrRvAC
富士通FMV-6500CL4 を中古出品しました。
開始¥3300ですので、よろしければ入札してみてくだせ!
Linux CUI環境に最適!

http://page13.auctions.yahoo.co.jp/jp/auction/r20112912
0726login:Penguin2005/11/02(水) 21:57:24ID:OP6gpXTW
MS Officeを動作させる話題の"David"搭載、2年ぶりの待望のメジャーバージョンアップ
新製品「Turbolinux FUJI」発表

2005年11月25日より販売開始

ターボリナックス株式会社


同新製品は、2003年10月にリリースされ、リナックスOS分野で前人未踏の
52週(1年間)連続売上第一位(BCN調べ)を記録し、
数年来国内売上シェア第一位を誇るターボリナックスの
基幹デスクトップ製品「Turbolinux 10 Desktop」(以下10D)
の後継製品にあたり、 国産OSならではの完成された日本語環境はもちろん、
10Dで提唱したWindowsとの互換性をさらに強め、安全性、 安定性に優れた
デスクトップ環境を提供します。Windows環境との共存の強化により、Linux
とWindowsの優位性を融合した ハイブリッド・デスクトップリナックスOSとして、
企業、官公庁、自治体、教育機関などへの導入をより一層スムーズなものとします。
FUJIではOS本体とプラグインという新しいビジネスモデルを展開します。
これにより、ユーザーは基幹OSであるFUJIを入手すれば、
用途に応じてプラグインを足すだけで自分だけに特化したOSを利用することが可能となります。
現時点において、ビジネスユース向けプラグイン、 ホームユース向けプラグインやURLフィル
タリングソフトなど、セキュリティ関連プラグインの提供を予定していますが、都度ユーザー
ニーズを 市場から汲み取り、タイムリーに新しいプラグインを提供することがFUJIの価値を高
めるものと考えています。なお、FUJI発売と同時に プラグイン第一弾としてサイバーリンク社
の「PowerDVD for Linux」が決定しており、これら各種プラグインは新ツール"Turboプラス"経
由で提供し、 ユーザーは簡単に購入、ダウンロード、インストールができるようになります。

http://www.turbolinux.co.jp/cgi-bin/newsrelease/index.cgi?date2=20050920033408&mode=syosai
0727login:Penguin2005/11/04(金) 23:40:35ID:3YE2b6zq
>>726
ちっともリアルタイムじゃねーべナ。

プラグインのスケジューラで自作の奴とか試したエロイ人はおらんのか?
0728login:Penguin2005/11/24(木) 03:25:01ID:bxMMMkbf
突然ですが、質問させてください。

EPSON から出ているポータブルストレージP-2000には、イーソルという会社のµITRON4.0準拠OS
が搭載されているようです。
…そこで、本体のHDD(40GB)を例えば160GBの物に換装する事は可能でしょうか?
120GBへの換装の成功例は有ります。
137GBの壁は現在のハードでも有るのでしょうか?
0729login:Penguin2005/11/24(木) 04:14:56ID:Cn8YF6mC
なぜTRON?
0730割込ハンドラ@優先順位2005/11/24(木) 11:43:07ID:b7no7JmM
rtlinux-3.2-pre3を使っています。
rtl_request_irq(irq, handler)関数で登録した割込ハンドラの
優先順位はどうなるのでしょうか?
私の環境では、割込ハンドラ関数実行中に、SCHED_FIFOで生成した
別のスレッドがレディー状態になると、そのスレッドにCPUの使用権が
移てしまいます。
割込ハンドラ関数を最優先に処理させる為の方法はあるのでしょうか?
0731割込ハンドラ@優先順位2005/11/25(金) 09:12:08ID:PGju3YQA
>>730
割込みハンドラの処理が間違っていました。

割込み処理の中で,関数 pthread_wakeup_np() を使って,
スレッドを起動しようとしていたのですが,
この関数を使うと,ただちに(割込み処理の途中で)
スレッドが実行されていました。

スレッドを起動する処理に,関数 pthread_kill() を使うと,
割込み処理が終了した後で,スレッドが実行されるようになりました。

【変更前】割込みハンドラ
unsigned int intr_handler(unsigned int irq, struct pt_regs *regs)
{
:
pthread_wakeup_np(thread_id);
:
return 0;
}

【変更後】割込みハンドラ
unsigned int intr_handler(unsigned int irq, struct pt_regs *regs)
{
:
pthread_kill(thread_id, RTL_SIGNAL_WAKEUP);
:
rtl_schedule();
return 0;
}
0732login:Penguin2005/12/02(金) 20:30:55ID:X1Af1hb4
>>728
スレ違いだが、P2000側のドライバが 48bit LBA なんて
対応して無いだろ。 やめとけ。
07337282005/12/08(木) 00:41:16ID:75QTVwcK
>>732
了解。Thx!
0734login:Penguin2005/12/27(火) 00:35:29ID:Odg3gsOR
最近、この業界の営業になったんですが、VxWorksって
どんなOSですか?かなりいいOSとは聞くのですが、情報は
ありませんか?教えて下さい
0735login:Penguin2005/12/27(火) 00:42:18ID:Odg3gsOR
最近、この業界の営業になったんですが、VxWorksって
どんなOSですか?かなりいいOSとは聞くのですが、情報は
ありませんか?教えて下さい
0736login:Penguin2005/12/27(火) 13:55:55ID:1SQYWINh
>>735
まず、あなたの社名と営業所名を書いて下さい。
話はそれからです。
0737login:Penguin2005/12/27(火) 18:50:13ID:etMJ9ITS
735です。社名、営業所名はさすがに言えないですよー。
VxWorkってかなり開発環境がいいって聞いているのですが・・
情報を教えて下さい。
0738login:Penguin2005/12/27(火) 19:38:55ID:4xI3gVfp
基本的にはお金払わないと情報は一切出てきません。
会員制クラブみたいな感じ。あと小口もあまり対応しないはず。

ここはペンギン板なので他の方を代弁しますね。

かえれ。
0739login:Penguin2005/12/28(水) 00:13:50ID:FBPxkGUI
VIA EPIA-M10000にRT Linux 3.2-pre1入れたんだが動かないっす…
VIA C3プロセッサは相性わるいんかな?
insmodしてもrmmodすると落ちる…
RT-Linux3.2-pre3ってどこに落ちてる?
ART-Linuxってどうよ?ダウソするのに氏名やら住所,使用目的をメールせないかんのけど…
わけわかんね。
0740login:Penguin2005/12/28(水) 01:43:15ID:ERfm6VHA
ART誰か再配布してくんないかな?
0741login:Penguin2005/12/28(水) 22:32:04ID:4bTtfVys
RTAIはどう?。実験装置の制御に使っているけど問題ないし、新しいカーネルに対応している。詳しくは、www.rtai.orgで。ただ、Kernel 2.6.12だとRTAI 3.2のコンパイルに失敗するけど。
0742login:Penguin2005/12/30(金) 14:33:20ID:khrfGdI6
>>739
本家(FSMlabs)からRTLinux Freeのdownloadへ行けばOKじゃないんですか?

RTLinuxFree - fsmlabs.com
http://www.fsmlabs.com/rtlinuxfree.html
Home - www.rtlinuxfree.com
http://www.rtlinuxfree.com/

1年前は、pre2がDLできてたけど、流石に今はpre3じゃないかなぁ?
最近試してないんで知らないけど。;-)
0743login:Penguin2006/01/04(水) 16:00:17ID:GCA5+gu6
>>742
www.rtlinuxfree.comのrtlinux-3.2-rc1.tgzを落とせばいいんですよね?
これ落としてビルドしたけど,やっぱ止まる…(ToT)
configurationが問題かな?
CPUのタイプやら,その他のオプションをいろいろ変えているけど,なかなか…
ちなみに,カーネルは2.4.20,RedHat9です。カーネルはkernel.orgから落としました。
RTのdoc読むとkgccを使ってますよね?gccではダメなんですか?
あと,gccって,このカーネルではこのgccのバージョンじゃないとダメ!ってありますか?
0744login:Penguin2006/01/04(水) 16:18:31ID:o2qi2kX+
>>740
持っているぞ。必要なら教えて。
0745login:Penguin2006/01/05(木) 16:01:52ID:hDtsW4j7
>>735 インターフェースのバックナンバー買え。
↓これでしょ?

ttp://www.cqpub.co.jp/interface/contents/2005/200503.htm
●「VxWorks」を使ったRTOS技術の基礎と応用(第11回,最終回)
 組み込みシステムのデバッグ(後編)――ビジュアライゼーション・ツール
0746login:Penguin2006/01/05(木) 17:26:40ID:+yMnItYH
質問なのですがRT-Linux上でスレッドの周期を随時変更することは
可能なのでしょうか?

pthread_make_periodic_np(pthread_self(),gethrtime(),X*1000*1000);
そのスレッドの最後でXを返すことでスレッドの次の実行周期を
変更できると考えていたのですが上手くいかないので
どなたかわかる方教えていただけませんか?
0747login:Penguin2006/01/05(木) 18:50:11ID:xmEkQvVD
735です。ありがとうございます。早速購入して、勉強したいと思います。
営業的に説明が難しくて・・・・。
何かご存知のことがあれば教えて下さい。

よろしkお願いします。
0748login:Penguin2006/01/08(日) 17:50:13ID:Ga3TjZNr
>>743
RH9のgcc(3.2でしたっけ?)で無問題と思います。
少なくとも、pre2, pre3で試した時は、RTLinuxのレグレッションテストを通りました。

kgccを使う必要があったのは、RH7.X/8.X系の時の話で、9.0では問題に突き当たった
経験は無かったです。

> configurationが問題かな?
そうですね、変にチューニングしようとすると、おかしな状態になるケースが多いはずです。

基本方針としては、
・変なチューニングを施さない
 (最適化させるのは、最低ラインのビルドが成功してから徐々に変える)
・エラーが出たら、大抵の場合特定のモジュールのビルドに失敗しているのでビルド対象から外す
 (Gイーサとか、Gイーサとか、Gイーサとか…(笑))
ってな感じかな?
0749login:Penguin2006/01/11(水) 13:32:29ID:Wn8rLbzA
>>748
遅くなってすいませんm(_ _)m
んじゃ,gccを使用する場合は
CC=$(CROSS_COMPILE)gcc
から
CC=$(CROSS_COMPILE)kgcc
にする必要はないってことですね?
CPUの問題と思って色々種類を変えてビルドしてたんですが,やっぱり変化無しで…
やっと起動した〜!と思ったら,その後のレギュレッションでフリズったり(ToT)
泣く泣くハードリセットかけて再起動して…
とりあえずネットワーク機能は切ってビルドしてみます。
早速,試してみます。
ありがとうございました
0750login:Penguin2006/02/05(日) 22:19:43ID:nKb5tm0A
リアルタイムリナックスって μITRON の一タスクで動かせる?

普通の Linux は動かしてるベンダーあるみたいなんだが。
0751login:Penguin2006/02/06(月) 11:19:43ID:6e2aa/2o
>>750
出来るとは思うが。
リアルタイムスケジューラーを二階建てにする意味があるのか?
0752login:Penguin2006/02/06(月) 14:14:20ID:rV6ufK08
>>751
きれいにリアルタイムと非リアルタイムの分業ができてない
へぼアーキなんすよ。 全部μITRON にもどせば良いじゃねーかと
いわれないためには、Linux もある程度リアルタイム性を維持して
おいしいところ使えますよっていう話を見せないとね。

Linux 屋さんからμITRON 屋さんにもどるっていう選択肢もあるけど
最近 Linux に情が移って。。。
0753login:Penguin2006/03/26(日) 02:30:27ID:NU/QeSmU
RTで値を計算させて、FIFOでユーザ側に送って、3Dグラフィックスをグリグリ動かすのはやっぱりきついですかね?
0754login:Penguin2006/03/26(日) 17:28:11ID:c9l8/p/A
わざわざRT側で計算する理由がわからん。
0755login:Penguin2006/03/26(日) 17:35:48ID:YZaB3/Ez
おれならリアルタイムOS入れずにハードでOpenGL出来るビデオカード探す
07567532006/04/03(月) 09:49:37ID:eVyguM6R
入力デバイスがRTで値が取得できるので・・・。
グラフィックス動かすのがメインなので、普通のジョイスティックで入力でいいとは思うんですけど。
0757login:Penguin2006/04/03(月) 10:45:43ID:X1jpCbuv
その読んできたデータをFIFOで送ればいいんでは?
ものすごい量のデータで受渡しに時間がかかり過ぎるなら
計算して減らすという手もあるが。

まあRT側は極力単純にするべきだと思うわけですが。
0758login:Penguin2006/04/04(火) 02:05:24ID:s96GIfzQ
問題なのは、
計算? その結果の転送? 実際の描画?
07597532006/04/06(木) 09:48:57ID:9JjD6Rdi
描画がカクカクなんです。
入力値をグラフィックに与える値にする算も複雑なものではないく、送るデータの量も少ないです。
なので、RTを使うこと自体が影響してるのかなと思いまして。
0760login:Penguin2006/04/06(木) 10:10:14ID:7QNr34MX
描画部分を単体で動かして確かめた方がいいんでは?
RTタスクの影響でそこまで重くなったら、システムが破綻すると思う。

0761login:Penguin2006/04/08(土) 01:00:23ID:16XmyeZg
>>759
DMA使ってる?

あとは割り込みハンドラがゴージャスに作ってあるとか。
0762login:Penguin2006/04/13(木) 23:10:52ID:AvNZegIx
誰かXENOMAI(ttp://snail.fsffrance.org/www.xenomai.org/)を試したことある
人いますか? 安定度やリアルタイム性はいかがなものでしょう。
当方MPC82xx(PowerPC)で使いたいと思っています。kernel2.6系で動かしており、
最初はRTAIをと思ったのですが、RTAIはPowerPCはkernel2.4のみのサポートみ
たいで、kernel2.6に移植できるだけの技術力がありません。
XENOMAIはPowerPCもkernel2.6で動くみたいなので、使っている人がいれば情
報下さい。
0763age2006/05/20(土) 16:57:16ID:58hivAqv
MontaVistaみたいなところは、
どうやって利益出してるんでしょ?

Linuxカーネルベースに手を加えてもGPLならば
ソース公開しなければならないので、
いくらでもパクられそうな気がしますが。

RTOSを勉強するために通常Kernelとのdiffを
とってみたいのですが、どこにいけばMontaVistaの
ソースって見れます?

日本語サイトにはなかった
(FAQに入れなかった)

ちなみにLinux自体初心者です...
0764login:Penguin2006/05/20(土) 18:57:34ID:wRLJzgLe
>>763
MontaVistaと契約すればソースも見られると思いますよ。
金額はMontaVista JapanとかELTとかの営業さんに聞けば教えてくれます。

ユーザじゃない人にまでソースを公開しなければならないってことはないので、
誰でもアクセスできるところにはソースはないでしょう。
この辺が、GPLについてよく勘違いしてしまうところですね。

確か、パナソニックかNECのケータイにはGUI担当のCPUではLinuxが動いて
おり(通信用のCPUにはITRON系のOSを載せてた。最近の機種も同じかどうか
は知りません)、取説にソースコードダウンロードのURLが書いてあって、
そこにアクセスして製品のシリアル番号を入れるとダウンロードできた気がします。
0765login:Penguin2006/05/20(土) 19:13:27ID:wRLJzgLe
普通のRTOSを勉強したいなら、TRON系のOSで勉強してみては?
TOPPERSとか
http://www.toppers.jp/

ソフトリアルタイムで、あんまり割り込み応答性能にこだわらないので
あれば、kernel 2.6で十分イケるんでは?

RTOSの上でタスクの1つとしてLinuxを動かしているRTAIやRTLinuxという
のもあります。

この辺の性能についてはこことか参照。
http://www.atmarkit.co.jp/fembedded/rtos01/rtos01a.html

記事中に、970msとか、"ms"と表記されている部分が確かあったと思いますが、
間違いで、"μs"が正しいです。
>>684
0766login:Penguin2006/05/20(土) 20:24:39ID:58hivAqv
>>wRLJzgLe

無知な私に、レスありがとうございました。

近い将来、組み込みMontaVistaベースの仕事に
入りそうなので、聞いてみました。

開発経験は長いのですが、オープンソースというのは
初めてで、ライセンス等は疎いです。
このへんも学ばなければなないというところでしょうか。

仕事というのは通信機器関連なのですが、
Kernel2.6でもμのオーダでタスクディスパッチが出来るのなら
素晴らしいですが、Montaとも比較して性能検証
してみたいです。。。

モッサリと言われないためにも・・・
0767login:Penguin2006/05/21(日) 15:17:43ID:zaWHdAlc
リアルタイムパッチとかあてても普通につかってると
ディスパッチや usleep の誤差は jiffies 単位だよね?
より正確に jiffies 単位になるだけで。
0768login:Penguin2006/05/22(月) 23:25:25ID:K2lviSdL
>>767
「普通」ってどういう条件なのか不明ですが...
ディスパッチがjiffies単位でしか発生しないんでは、プロセスやスレッドは
めちゃくちゃ反応悪いしOSとしてまともに動かないと思いますよ。
というか「ディスパッチ」ってどういう意味で使ってます?
usleepの精度は確かにjiffies単位なので、正確なタイマが欲しければPOSIX
のリアルタイム拡張(1003.1bとか1003.1cでしたっけ?)を使うべきでしょう。
高精度タイマにするパッチとかってないんでしたっけ?
0769login:Penguin2006/05/23(火) 00:22:24ID:QbeUyqai
今は標準になってたような。
0770login:Penguin2006/05/23(火) 01:33:39ID:FRkGPqvH
最近 jiffies が 1ms になってるけど違いが体感できない。
正直なところ、リアルタイム性も大事だが、ゼロコピーとか
そういう処理効率を考えるほうがいいんじゃないかと。
0771login:Penguin2006/05/23(火) 07:07:17ID:wy0Cc+6E
1msなんて組み込み屋に言わせたら超長時間。マイクロのオーダで精度無いと使えん
0772login:Penguin2006/05/23(火) 08:16:09ID:sMe4PIZ0
usleepじゃなくて、nanosleepつかえば。
0773login:Penguin2006/05/23(火) 10:31:04ID:QbeUyqai
時間保証が無いので使えんということになると思いまふ。

0774login:Penguin2006/05/25(木) 00:07:00ID:Hcf3hZ1y
>>771
1msが超長時間って、そりゃ組込みでもモノによるわな。
それにjiffiesは「タイマの分解能」に影響を与えるだけであって、
「割り込み応答性能」じゃない。
「マイクロのオーダの精度」って、タイマ(タイムアウトによるイベント発生)
の分解能のことなのか、割り込み応答性能のことなのかで違ってくるね。
>>773
絶対に時間保証が必要なら、普通に「普通のRTOS」を使うべき。
タイマの分解能が1ms、割り込み応答性能がだいたい数10μs
(これもCPUやバスなどのアーキテクチャに依存するけど...)でいいん
なら、リアルタイム拡張されたLinuxも選択肢の1つになるね。
さらに、リアルタイム拡張Linuxでも、独自のRTOS Kernelで動く
RTLinuxやRTAIと、Kernelそのものをリアルタイム化した
Kernel2.6/MontaVista/TimeSysとでは機能や性能が違うから、
一概には判断できないね。
0775login:Penguin2006/05/31(水) 00:49:23ID:KXk12jEW
リアルタイム風拡張した Linux で Dynamic tick って使えるの?
0776login:Penguin2006/06/03(土) 09:03:08ID:6+tC3xDs
>>775
Kernel2.6ベースのものなら使えるのでは?

RTAIやRTLinuxでは、Linux側をがんばってもしょーがないので、
Linux Kernelそのものをリアルタイム化したタイプで、Kernel2.6
ベースのもので試してみたら?
0777login:Penguin2006/06/26(月) 13:31:41ID:qfWRMZi1
生物系の研究室でRTLinux使ってロボット制御することになったんですが,
今手に入るPentiumDとかのマルチコアやP4のハイパースレッド対応CPUで
RTLinuxカーネルって動くんでしょうか.

一応構成として
Turbolinux 8(Kernel2.4系)
RTLinuxFree 3.1
Interface社のDA,ADボード
Pentium4 3.2E
GigaByte GA-8IG1000-G

ってのを考えています.
0778login:Penguin2006/06/29(木) 16:01:28ID:l1BeWowD
>>777
Interfaceによれば、BIOSでHyper-Threadingを無効にし、
OSを再インストールしろとあります。

http://www.interface.co.jp/catalog/hyper_threading.asp

似たような構成で使ったことがありますが、
ハードウェア的には問題ないと思います。
ただHDDはSerialATAでないほうが楽でしょう。
0779login:Penguin2006/07/11(火) 14:18:25ID:n/PCoE3k
>>778
ご回答ありがとうございます.
Hyper-Threadingが用をなさないとのことで,
CeleronDとIDE-HDDの組み合わせで作業を行っています.
ちなみにTurboLinux8WはSerialATAの機能がONになっていると
IDEが見えないようでインストールすらできませんでした.
0780login:Penguin2006/09/07(木) 10:18:08ID:Pf/EFgCi
『Linux』をリアルタイム OS 化する取り組みが本格化
ttp://japan.internet.com/webtech/20060823/12.html
0781login:Penguin2006/09/18(月) 05:16:52ID:dbPQnzuk
現在情報系の研究室に所属中で、ロボットの制御を行うことになりました。
そこで制御用のマシンをこれから組むことになったのですが、
マシンの構成を決める上で、「パーツはこのようなものではRTLinuxが動かない」
といった特に気をつけなければならないことがあればご教授願えないでしょうか?
バージョンはRTLinuxFree3.1で、今のところはCore2Duoのような新しい物を使っていこうかという方針です
よろしくお願いします
0782login:Penguin2006/09/25(月) 21:02:47ID:zor5JUeZ
質問です。
RTLinuxにおいて、FIFOでモジュールからデータを取ってきて
プロセスで受け取り、その数値を表示させています。
黙ってみている分には問題ないのですが、
マウスを動かしたり、ちょっとした作業をしようとすると、ある変数だけ「NaN」になります。
その他の変数は引き続き問題なく表示されます。

FIFOバッファのサイズを大きくしてみたり、データ数を間引いて減らしたり
USBマウスを使わないようにしたりしてみましたが駄目でした。
何を疑ったらよいのでしょうか。

07837822006/09/25(月) 21:46:11ID:zor5JUeZ
続きです。
rtl_printfで問題の変数の内容を覗いてみたところ、
他の作業(といってもたいしたことの無い作業)をした瞬間におかしな数値になりました。
どうやらFIFOは悪くないようです。
周期実行を1msにしても状況は変わりません。

環境は、RTLinux2.4、RedHatLinux8、Pen3 1GHzです。
0784login:Penguin2006/09/29(金) 22:40:49ID:NAuj+ggl
>>783
RT FIFOの取得サイズが、実は想定より小さいケース(瞬間)が
あった。という事は、ありえませんか?

ところで、typoだと思うんですが、
 RTLinux 3.?
 kernel 2.4.??
 RedHat Linux 8
ですよね?
0785login:Penguin2006/09/29(金) 22:44:18ID:NAuj+ggl
>>781
とりあえず、>>778さんのが参考になるかと思います。

要するに、「少し枯れた構成が安定する」ですね。
0786login:Penguin2006/09/29(金) 22:47:39ID:NAuj+ggl
>>784
を書いた後に思い出しました。

当該の変数ってのは、浮動小数点数です?

うろ覚えですが、浮動小数点数を扱う際は、専用の初期化関数を
呼ぶんじゃありませんでしたっけ?
0787login:Penguin2006/10/02(月) 12:02:16ID:lh/RRGYB
初めまして
RTLinuxを使い始めたのですが、どのくらいの正確さでプログラムの周期を
行っているか調べたいのですがどのようにすれば良いのかわからりません。
ネット上には周期を測定したときのグラフなど上がっているのですが方法まで
載っているのがみつかりませんでした。
これは自分でプログラムを組んで測定するものなのでしょうか?
ちなみに1ms周期でプログラムを行うつもりです。
0788login:Penguin2006/10/03(火) 19:21:24ID:qKxrgjS6
>>787
RTLinuxの詳細を知りませんが、だいたい次のようにするのが簡単なんじゃないでしょうか?

* OSに対してタイマの精度(分解能)を設定。1msでいいなら1ms。
VxWorksなんかだと、デフォルトの精度が16.67msなので、これをやらないと
タイマAPIとかで「1ms周期」とか作れない。
* 1ms周期を設定した定周期タスクを生成。
定周期起動するAPIを使うか、1msのwait API(システムコール)を実行する
無限ループのタスクを生成。
* そのタスク内で、前回起動したときの時刻と、今回起動したときの時刻を比較。
時刻を取得するAPIは、RTLinuxにあるんじゃないでしょうか。
その時刻取得APIの精度が悪いなら、x86系CPUならインラインアセンブラとかで
RDTSC命令を使ってCPUのクロックから時間を計算。

タスクじゃなくて割り込みで実現したいなら、それでもいいですよね。
タイマ設定APIとかタスク生成APIとかはRTLinuxのドキュメントを調べてみてください。
そもそも、タスクって何?っていうことなら、適当にググるか本屋さんで組み込みや
リアルタイムOS関連の本を買ってきて勉強してみてください。

と、ここまで書いて@ITの記事を思いだして見てみました。
http://www.atmarkit.co.jp/fembedded/rtos02/rtos02b.html
http://www.atmarkit.co.jp/fembedded/rtos02/rtos02c.html
このへんにかなり詳しく書いてくれてる(上記の方法とは別の方法)ので、読んでみてください。
0789ぱあぷウ2006/11/28(火) 15:22:53ID:yfEB0eXs
なぜRTなのに遅延がばらつくのですか?
教えてください。
0790login:Penguin2006/11/28(火) 17:24:26ID:BUDaYi7C
RTの意味を調べてはいかがですか
0791login:Penguin2006/12/23(土) 02:08:55ID:0D9MBKc4
Scientific Linux 4.4でRTLinuxを使いたいんだけど、
2.6系には
http://www.rtlinuxfree.com/component/option,com_remository/Itemid,27/func,fileinfo/id,9/
を落とせとのこと。
で、メアドとか登録して数時間は待ってみたけど、
download先のURLとかが全く送られてこない。

メールが届くまでにどれくらいかかるか誰か知ってる?
それとも、どっかで再配布してないかな。
07927912006/12/23(土) 12:06:21ID:0D9MBKc4
12時間以上たってやっと届いた。
07937912006/12/24(日) 14:00:34ID:PZGMq9DI
やってみたんだが、
kernel再構築後にrebootすると、
Warning: unable to open an initial console
となって止まってしまう。
ググると、dev/consoleが開けないのでは?とかあるけど、
元のkernelでは問題なく立ち上がっている。

何を疑ってみればよいでしょうか?

SL 4.4 (kernel 2.6.9)です。

■やったこと
# mkdir /usr/src/rtlinux
# cd /usr/src/rtlinux
# tar zxvf ~/prepatched_linux_kernel-2.6.9-rtl.tgz
# cd linux-2.6.9-rtlfree
# make menuconfig <= CPUの設定だけPen IIIに変更
# make bzImage
# cp arch/i386/bzImage /boot/rtzImage
# emacs /etc/grub.conf
# reboot

■grub.confに追加した内容
title RTLinux v3.1
root (hd0,0)
kernel /rtzImage ro root=/dev/hda3 <= dfすると/になってる
07947912006/12/24(日) 14:21:56ID:PZGMq9DI
あと、make menuconfigするときに、
doc/Instalation.txtには"Disable local APIC support"って書いてあるんだけど、
patchあてたあとのmenuconfigだとlocal APICの項って出てこない。
だけど、.configには
CONFIG_X86_LOCAL_APIC=y
ってなってしまっている。
これはどうやって回避すればいいんでしょうか?
grub.confにnoapicをつけろってのと同義?
0795login:Penguin2006/12/24(日) 14:57:16ID:h4sPvLbw
>>791さん
2.6版はmake bzImageの後

make modules
make modules_install
make install

で、起動はできるようになったけど…


さらに起動後RTLinuxをコンパイルまではいけるけど
サンプルがちゃんと動いてないので自信はありません、ごめ
07967912006/12/24(日) 15:52:36ID:PZGMq9DI
>>795
あっ、
# make modules
# make modules_install
を書き忘れてました。

# make install
はしてないです。今から試してみます。
07977912006/12/24(日) 16:07:05ID:PZGMq9DI
# make install
すると、grub.confとか自動で書き換えるのか。
# mkinitrd /boot/initrd-2.6.9rtlfree.img
も自動でやっていて、それもgrub.confに追加されていた。

そのまま再起動すると、
LABEL=/がないと怒られたので、
root=/dev/hda3に書き直して再起動。

で、やはり同じく
Warning: unable to open an initial console.
と出て止まってしまうんだな。

swap 512MB
ext2 /dev/hda1 /boot 100MB
ext2 /dev/hda3 / 9GB
という構成。
0798login:Penguin2006/12/28(木) 18:25:16ID:QDAQeP2D
>>797
kernel config の Default Kernel Command line に
console= で何か指定してる?
0799login:Penguin2006/12/28(木) 22:57:19ID:vc2Jrznf
>>798
それは関係ない。

>>797
/dev/consoleあるか?

08007912006/12/29(金) 14:15:21ID:XTRI4iDw
>>798
やってないです。

>>799
/dev/consoleはちゃんと存在していて、
念のために作り直したけど駄目でした。

SL 3.08(kernel 2.4.21)上でRTを2.4.29で入れるのは、
同じマシンで問題なく進みました。
パーティション構成は同じ。

rtlinuxfree.comで登録したら、
相手のサポート(営業?)からメールが来て、
「rtlinuxfreeの中の人だけど何か聞きたいことある?」って言ってたので、
先日、ひとまず同じような内容を英語で質問してみた。
向こうもクリスマス休暇だろうから、
返事は来たとしても来年かな。
08017912007/01/07(日) 00:53:10ID:QdnpJTIA
さて、新年だがRTLinuxから返事は来ない。

# make menuconfig
のときに、設定を変更するようにしてみた。
元々のSL 4.4に入っているsourceでmenuconfigして、
その設定内容とほぼ同一になるようにRTLinuxのkernelでも設定した。
(どちらも2.6.9だけど、patchのせいで変化があるのと、
make時にerrorを吐くのでserial deviceのところだけ不一致にしてる)

それで
# make install
までやってrebootすると、

Uncompressing Linux... Ok, booting the kernel.
ACPI: BIOS age (2000) fails cutoff (2001), acpi=force is required to enable ACPI
audit(1168062126.381:0): initialized
Red Hat nash version 5.2.1.8 starting
mount: error 19 mounting ext3
mount error 2 mounting none
switchroot: mount failed: 22
umount /initrd/dev failed: 2
Kernel panic - not syncing: Attempted to kill init!

となってしまう。
前回と異なり、今回はext3にしているんだが、
/etc/fstabで/と/bootをext2に直しても同じ症状。

なにかお知恵を拝借できないでしょうか。
08027912007/01/07(日) 01:52:16ID:QdnpJTIA
ごめん。
# make oldconfig
してから一通りやり直してみたらrebootうまくいった。
どこで躓いてたのかよく分かんないけど、やっと進めます。
0803login:Penguin2007/01/10(水) 14:31:03ID:zye6L7wR
みんなCで書いてるの?
C++だとrtl_cpp.hをincludeしないと駄目なんだけど、
カーネル2.4.29だとinclude/linux以下のヘッダが色々と駄目で、
なんかC++で書くの面倒そうなんだけど。
(void *)で型変換してたりとか、
struct namespaceとかlong new;とか、
C++で駄目な書き方が結構使われてる。
examples/cppも手直ししないとmake通らないわ。
0804login:Penguin2007/02/22(木) 19:40:34ID:DQim9qZo
なんかこんなニュースありましたけど
http://japan.internet.com/webtech/20070221/10.html
0805login:Penguin2007/02/26(月) 11:24:08ID:w8jwJPew
米Wind River、リアルタイムOS「RTLinux」の特許と商標を獲得
http://journal.mycom.co.jp/news/2007/02/21/100.html

どうなっちゃうわけ?
http://www.windriver.com/
落せないっぽいんだが
0806login:Penguin2007/02/26(月) 11:25:40ID:w8jwJPew
>>803

ヘッダだけ extern C じゃいかんの?
0807login:Penguin2007/03/09(金) 19:08:59ID:1sSmg2d8
RTLinuxFree
     古ぃ

Free版は消えるのか否か・・・
0808login:Penguin2007/03/10(土) 01:49:52ID:wLITnnyN
WindRiver って,RTLinux がオープンソースではないことに魅力を感じて買ったんだろ?
0809login:Penguin2007/03/12(月) 12:07:48ID:7tn48g83
>>808
つまり
0810login:Penguin2007/03/12(月) 14:13:02ID:ImxgX9fH
RTOS で全部やるぜ!なお客には -> VxWorks
ハードリアルタイムが要るけど linux 環境じゃないと
一からプログラムしてられないよぉなお客 -> RTlinux
ということ?
0811login:Penguin2007/03/12(月) 18:07:48ID:2snl2MjO
ということ
0812login:Penguin2007/03/17(土) 19:40:51ID:7s3aOSjD
kernel-2.6.22からリアルタイム機能が大幅に強化されるからRTLinuxが独自性出すの大変そうだな。
■ このスレッドは過去ログ倉庫に格納されています