リアルタイムLinuxプロジェクト

最終更新日2004/01/04

プロジェクト日記を更新

 

rt-linux
                    

kurtlinux

LinuxをリアルタイムOSに!

と言ってもx86マシンじゃつまらないのでって言うか、古いドライバーをサポートするとリアルタイム処理のじゃまになるので。。。。

なんて言ってたけど、古いドライバー、基本的には継承する方向に方針変更!、たった一人のプロジェクトは柔軟なのです。(2000/10/28)

プロジェクト日記 

sh4-linux

sh4-itron

litron(linux+itron)

sh4-rtlinux

 sh-linux用BIOS

 

          現在のターゲット!いつの間にかこんなに増えて、ほんとはもう少しあるのだけどなーー!

日立
MS7750SE01(sh4)

CQReeksh4+isaBase

京都マイコン
KZP−01

なぞのVME版sh4

日立
MS7709SE01(sh3)

りぬくす工房さん
sh3

なぞのsh4その2


成果物!

                          


組み込み用sh4linux  

ベースボール

sh4simg_020622.tar.gz セルフコンパイル用です、90Mbyte近くあります。swaponでも16Mbyteくらいでは少し大きいソースですとコンパイルは旨く動きません、メインメモリー64Mbyte用と考えてください。Xをコンパイルすると22時間くらいかかりました。

ディスク容量8Mbyte以下を目標!にまとめたものです。webサーバー、telnet.ftpが動きます。と言ってましたが、最近は8MのCFは入手できないので、どうせなら16MのCF用にしました(2001/10/23)。新バージョンはbusyboxは止めにして、unix?らしく動くようなパッケージにしました。

sh4base.020327.tgz(2001/10/28版とおなじです。czvfでボールにしたもので、約4Mbyteです。)

sh4base.011028.tar.gz
(2001/10/28版、gcc3.01,glibc2.2.4)--- 2001/10/23版より大きくなっただけ?
               これ、tar.gzとなってますが、ただのtarファイルですーー!(2002/03/27)

sh4base.011023.tar.gz(2001/10/23版、gcc2.97,glibc2.2.2)ーーー16MのCFで動くようにまとめたものです(このパッケージ自信は10M位)。loginのパスワードはroot、guestともshlinuxで、今回はユーザーの追加とパスワードの変更もできます。shutdownはunix?らしく、shutdown -h nowで停止させます。旧バージョンのftpはkermitと言うか、MacのNCSAのtelenetみたいに、telenetでloginして、逆方向にftpしないとだめだったのを普通?に動くようにしています。相変わらず、GCCは2.97、glibcじゃ2.2.2です。

sh4base.010425.tgz(2001/04/25版)ーーー24版はdateが2000年までしか設定できません。そしてechoがちょっと機能不足、最悪なのがconsoleがttySC0だけのユニットだとloginできない。以上のバグの修正版です。

sh4base.010424.tgz(2001/04/24版)ーーーglibc2.2.2版です。kernelを除いて、6Mbyteです。収録内容

base.taz(2.3Mbyte,2000/11/03版)ーーーsh4linuxのベースボール?です。ext2で初期化したターゲットディスクに展開します。 <−−glibc2.1.3

 

カーネル

vmlinux.s1.gz(2002/01/06版)ーーー日立の評価キット(MS7750SE01)用のkernel version2.4.17です。IDEがrootデバイスになってます。

vmlinux.s1.gz(2001/04/25版)ーーー日立の評価キット(MS7750SE01)用のkernel version2.4.2です。手持ちのCF、どれでも動きました版。

vmlinux.cq.gz(400kbyte)ーーーCqreeksh4ユニット用のkernel

vmlinux.s1.gz(500kbyte)ーーー日立の評価キット(MS7750SE01)用のkernel

 

ブートプログラム

cqSh4bios.sr.gz(20kbyte,2000/11/12版)ーーーCqreek用bios、IDEからのBootです。

s1Sh4bios.sr.gz(20kbyte,2000/11/12版)ーーー日立の評価キット(MS7750SE01)用bios,PCMCIAのスロットからのbootです。

tamanoi_bios.zip ーーーCqreekに付いてくる機能限定版PARTNERでフラッシュromに書き込めるCqreek用biosです。玉ノ井さん(tamanoi@po.d-b.ne.jp)が作ってくれました。

 

インストール方法

インストール手順


組み込み用マイクロITRON  itron001204.taz(約28kbyte)

001204版---あまりにもみっともないバグなので急いで修正?、ってことで表通りは動きますバージョン!。なぜか3つ目のプロセスの先頭にdbprintf()を入れないと落ちる。排他制御をバグってるパターン?かな!

sh-linux-gnu-gccでコンパイルできるiTRONで、CqReekSH4用にできてます。それ以外オリジナル(日立の評価キットMS7750SE01用)のままです。これitron+linuxのベースにするつもり?



rtlinux

A&D(はかりのメーカ)さんが移植したsh版rtlinuxのを公開してくれました。

ftp://ftp.aandd.co.jp/pub/linuxsh/rtlinux/current/

せっかくですので、お試し版(kernelバージョン2.4.4、2001/06/26作成)をつくりました。日立の評価キット(MS7750SE01)で動きます。8Mにぎりぎり入りませんので16Mbyte以上のCFが必要です。ブートプログラムと合わせって使います。

お約束のhello、nanosleep、regressionが動きます。regressionはテスト回数が高速なPentium用?になっているので全てのテストには30分くらいかかります。SH4とSH3のアーキテクチャーの違いにはふれなかったつもりなのですが、SH3では動きません。あとPSCの機能はA&Dさんは使わないとのことで。。。ちょっと怪しい振る舞いがあります。

補足、login時のパスワードはshlinuxです。

sh3版rtlinux−−−ちゃんと動きました。kernel2.4.4、SRレジスタ。。。の話は関係なくて、それ以前に、sh3のMMU管理のバグが原因だったようです。モジュールの動作を確認してみればよかったのに、基本的な段取りを手抜きすると、以下のような嘘を書いてしまうわけであります!

りぬっくす工房の海老原さんが教えてくれたパッチ
fault.c
/* Set PTEL register */
pteval &= _PAGE_FLAGS_HARDWARE_MASK; /* drop software flags */
+pteval &= ~2;

SH3版RTLinuxーーーP3領域(モジュールがロードされる場所)でSRレジスターのBLとかMDビットをいじってしまうのが動かない原因のようなので、対応版に挑戦してみたのですが手強いですーー!、rtl.o、rtl_time.o、rtl_sched.oまでをP2に持って行けば動くのは解っているのだけど、うーーーん私の美意識が。。。。。


SH-linuxBIOS

bios-060726.tgz(bios-030528版と同等です。サーバダウン時紛失につき,再作成)
bios-030528.tgz(romに書き込んだZimageのロード機能の追加とバグ修正)
CFからブートするときは f /vmlinux
HDDからブートするときは b /vmlinux
CDROMからブートするときは c /vmlinux
ROMからブートするときは  
コンソールは9600bpsです。

MS7751SE01、用になってますが、MS7750SE01、Cqreeksh4、MS7709SE01でもMakefileをちょこっと直せば動くはずです。動作未確認!!

確認済みのbootデバイス

CF

SanDisk

16Mbyte

Hitachi

48Mbyte,160Mbyte,320Mbyte

IBM

MicroDrive 340Mbyte

HDD

富士電機

540Mbyte(FK320A-540Z)

IBM

20Gbyte(DTLA-305020)

CD

TEAC

CD-W54E

動かないCD

ミツミ

4倍速

注)DOCの中の*.txtは窓OSで見てください。
PCI対応版(京都マイコンKZP01)用  

KZP01用kernel

 KZP-010621.tgz

 2つのkernelが入ってます。1つはHDD用のvmlinux.hd、もう一つはCDROM用です。

 

kernelソースの差分です。ベースはlinux-2.4.2

 kzp-linux.diff.010717.gz

ethernetが動かないよ!って噂があるのですが、調査してくれた方が教えてくれました。結論として10Mでないと動かないようです。私の環境が10Mですので気がつかなかったのですが、100M対応のハブなどに接続して動かない方は、10M専用ハブと接続してみてください。改修予定はありません。2002/06/26

動きませんよーー!って話があるので、人力差分をやめました。ターゲットの*.Oと.*を消して、diffしたものです。

これでもコンパイルできないって話があります。include/asmに空っぽのsegment.hを作ってください。これで完璧? 評価してくださった方に感謝します。