VMELinux Web Site. から配布キットをダウンロードしてください。
VME 用に取っておいたディレクトリにファイルを置きます - 名前は /universe を推奨します。zipped/tarred ファイルを以下のコマン ドを入力して解凍します。
tar -xzf VMELinux_08a.tar.gz
3 つのディレクトリができます。そして driver は ca91c042 へのシンボリック・リンクです。
ca91c042 vmeshell vmeutils driver
ca91c042 のディレクトリには、以下のファイルがあります -
ca91c042/ ca91c042/Makefile ca91c042/ca91c042.c ca91c042/ca91c042.h ca91c042/README ca91c042/e ca91c042/ins ca91c042/stat ca91c042/uns
vmeshell のディレクトリには、以下のファイルがあります -
vmeshell/vmer vmeshell/README vmeshell/vmeseek vmeshell/cmd.vme vmeshell/vmew vmeshell/vmeregw vmeshell/vmeregr vmeshell/vmefa vmeshell/vmecall vmeshell/e vmeshell/ec vmeshell/fa.vme vmeshell/map.vme vmeshell/tmp.vme vmeshell/vmedb vmeshell/vmedl vmeshell/vmedw vmeshell/vmemap vmeshell/vmerb vmeshell/vmerf vmeshell/vmerl vmeshell/vmerw vmeshell/vmewb vmeshell/vmewf vmeshell/vmewl vmeshell/vmeww
vmeutils のディレクトリには、以下のファイルがあります -
vmeutils/commands.cpp vmeutils/commands.h vmeutils/universe.h vmeutils/Makefile vmeutils/vmeutils.h vmeutils/unilib.h vmeutils/unilib.cpp vmeutils/vmeutils.cpp vmeutils/README
ca91c042 ディレクトリに入って、VMELinux デバイスドライバ・モジュール を作ります。
make
この時点で、 /dev にいくつかドライバ・ファイルを作らなければなりま せん。以下のようにタイプしてください -
make devices
make が終了すると、ディレクトリの中に「ca91c042.o」というファイルが できているでしょう。これはローダブルなモジュールです。下記のロード するための情報を見てください。それと /dev ディレクトリに数個の「vme... 」ファイルができているでしょう。
デバイスファイルを /dev ディレクトリに作ったら、それらのパーミ ッションを変更しなくてはいけません。以下のようにタイプしてください -
cd /dev chmod 666 vme*ファイルがどのように見えているべきか示します。
hostname:/dev# ls -l vme* crw-rw-rw- 1 root root 70, 8 Jul 30 10:51 vme_ctl crw-rw-rw- 1 root root 70, 0 Jul 30 10:51 vme_m0 crw-rw-rw- 1 root root 70, 1 Jul 30 10:51 vme_m1 crw-rw-rw- 1 root root 70, 2 Jul 30 10:51 vme_m2 crw-rw-rw- 1 root root 70, 3 Jul 30 10:51 vme_m3 crw-rw-rw- 1 root root 70, 4 Jul 30 10:51 vme_s0 crw-rw-rw- 1 root root 70, 5 Jul 30 10:51 vme_s1 crw-rw-rw- 1 root root 70, 6 Jul 30 10:51 vme_s2 crw-rw-rw- 1 root root 70, 7 Jul 30 10:51 vme_s3 hostname:/dev#
「vmeutils」ディレクトリへ移ってそこで「make」と入力します。
make
これで「vmeutils」プログラムがコンパイルされます。このプログラムは直接カーネ ル・ドライバと対話します。これは直接ドライバと対話する プログラムを自分で書きたいと思っている人のための参考となるものです。
「vmeutils」を、ユーザのバイナリ・ファイルを置くディレクトリへコピーし てください。我々のシステムでは、これは「/usr/local/bin」です。 あるいは、「vmeutils」プログラムをユーザのバイナリ・ファイルを置く ディレクトリへリンクすることもできます。
「vmeshell」ディレクトリへ移ります。ここにはコンパイルするファイルは ありません。「vmeutils」プログラムを使って VMEbus へアクセスするため のシェル・プログラムがあります。「vme」で始まる全てのファイルは 「/usr/local/bin」ディレクトリへリンクかコピーされていなければなり ません。
これでドライバを使うための準備ができました。
あなたが root であることを確認してください。そして 以下のように Universe チップ用の VMELinux カーネル・モジュールを組み込み(ロード)し ます。
insmod ca91c042
もしくは「ins」とだけタイプして、あとはシェルスクリプトにまかせましょう。 終了したら、以下のようにタイプしてください -
stat画面にこのようなレジスタのリストが表示されるでしょう。
Universe driver info: Control Pointer = 0000 Stats reads = 0 writes = 0 ioctls = 0 LSI0_CTL = 00800000 LSI1_CTL = 00800000 LSI0_BS = C0000000 LSI1_BS = 00000000 LSI0_BD = C0010000 LSI1_BD = 00000000 LSI0_TO = 40009000 LSI1_TO = 00000000 LSI2_CTL = 00800000 LSI3_CTL = 00800000 LSI2_BS = 00000000 LSI3_BS = 00000000 LSI2_BD = 00000000 LSI3_BD = 00000000 LSI2_TO = 00000000 LSI3_TO = 00000000 image_va0 = 00000000 image_va1 = 00000000 image_va2 = 00000000 image_va3 = 00000000 Driver Program Status: DMACTL 0 = 00000000 DMACTL 1 = 00000000 DMACTL 2 = 00000000 DMACTL 3 = 00000000 OkToWrite 0 = 0 OkToWrite 1 = 0 OkToWrite 2 = 0 OkToWrite 3 = 0 Mode 0 = 0 Mode 1 = 0 Mode 2 = 0 Mode 3 = 0もし、上記と異なっていれば何か間違っています。
Universe ドライバは PCI bus 上できちんと Universe チップを探しだして くれますが、ボードの設計が違うと探しだせないかもしれません。我々は Xycom 社の XVME-655 ボードで全てのルーチンをテストしました。 Universe 社の PCI-VME ブリッジチップと PCI bus をもつ他の Intel ボードでも、これが動かない原因はほとんどないはずです。もし、あなたが 問題に出会ったらどうか我々へお知らせください。 - The VMELinux Project (vmelinux@va.net)