May 25, 1998 onl5v4: Solaris 2.5.1 cc ドライバのデバッグ. cc ドライバの実行 ~~~~~~~~~~~~~~~~~~~ (http://www-online.kek.jp/~inoue/CAMAC/ onl5v4-sol2.5.1/camac-step02.txt) 高エネルギー加速器研究機構 素粒子原子核研究所 物理、オンライングループ 井上 栄二 (1). 現状確認 (A). Soalris2.5.1 が届いた。 (B). Soalris2.5.1 のシステムをインストールした。 (C). /etc の下の各設定、および /export/home のリストアをやった。 (D). sendmail のバージョン・アップをやった。 (E). Solaris2.5.1 にシステム・パッチをあてた。 (F). Solaris2.5用の VMEドライバ、sol2.5-vme-driver-v2.0.2 を インストールした。 (注. FORCE は Solaris2.5.1用の VMEドライバは 提供していない。) (G). ccドライバをインストールする。 (2). ここでやるべきこと onl5v4 のボードのみに VMEドライバおよび CAMACドライバをインストール し、さらに slave window の設定をやった。 この状態でCAMAC の実行を 行う。 (3). テスト環境 スロット #1 #2 #3 #4 #5 #6 +----------------------------------------------------+ |+--+ +--+ +--++--+ | || | | | | || | | || | | | | || | | || | | | | || | | || | | | | <------- スロット#5 のボードは | || | | | | || | 引き抜いた。 | || | | | | || | | || |+--+| |+--+| || | | || || || || || || | | || || || || || || | | || || || || || || | | || || || || || || | | || |+--+| |+--+| || | | |+--+ +--+ +--++--+ | +----------------------------------------------------+ スロット#1: SPARC CPU-7V(onl7v1)、Solaris2.5.1 VMEドライバ、CAMACドライバはなし。 スロット#2: このスロットはスロット#1のCPU-7VのSBusに差した FastEthernetボードが占有している。 スロット#3: SPARC CPU-5V(onl5v4)、Solaris2.5.1 VMEドライバは V2.0.2あり、CAMACドライバあり。 slavewindow が設定してある。 スロット#4: このスロットはスロット#3のCPU-5VのSBusに差した FastEthernetボードが占有している。 スロット#5: SPARC CPU-7V(onl7v2)、Solaris2.6 VMEドライバは V2.2.2あり、CAMACドライバあり。 slavewindow が設定してある。 このボードは抜いてある。 スロット#6: K2917 (4). ネットワークの設定 onl5v4# ifconfig -a lo0: flags=849 mtu 8232 inet 127.0.0.1 netmask ff000000 hme0: flags=863 mtu 1500 inet 130.87.217.112 netmask fffffc00 broadcast 130.87.219.255 ether 0:80:42:b:2d:5c le0: flags=863 mtu 1500 inet 130.87.153.49 netmask fffffc00 broadcast 130.87.155.255 ether 0:80:42:b:2d:5c onl5v4# netstat -rn Routing Table: Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 127.0.0.1 127.0.0.1 UH 0 0 lo0 130.87.216.0 130.87.217.112 U 2 4 hme0 130.87.152.0 130.87.153.49 U 3 4 le0 224.0.0.0 130.87.153.49 U 3 0 le0 default 130.87.152.1 UG 0 7 onl5v4# route delete net 130.87.216.0 130.87.217.112 delete net 130.87.216.0: gateway 130.87.217.112 onl5v4# route add host 130.87.217.113 130.87.217.112 0 add host 130.87.217.113: gateway 130.87.217.112 onl5v4# netstat -rn Routing Table: Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 127.0.0.1 127.0.0.1 UH 0 0 lo0 130.87.217.113 130.87.217.112 UH 2 0 hme0 130.87.152.0 130.87.153.49 U 3 4 le0 224.0.0.0 130.87.153.49 U 3 0 le0 default 130.87.152.1 UG 0 7 onl5v4# netstat -r Routing Table: Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- localhost localhost UH 0 0 lo0 onl7v1fast onl5v4fast UH 2 0 hme0 130.87.152.0 onl5v4 U 3 4 le0 BASE-ADDRESS.MCAST.NET onl5v4 U 3 0 le0 default ICCFG1 UG 0 7 onl5v4# (5). サンプル・プログラムを使った ccドライバの動作テスト (5-1). camacシングル・アクション 24ビット read/write テスト camacクレートのスロット番号3に差したスイッチ・レジスタ・モジュールに 対して、camacシングル・アクション 24ビット read/write を実行する。 onl5v4[66]% cam1 5 Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:000000(Hex) 00000000(Dec) Input n a f (data)>3 0 16 7777 N=3 A=0 F=16 Q=1 X=1 Data:001E61(Hex) 00007777(Dec) Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:001E61(Hex) 00007777(Dec) Input n a f (data)>3 0 16 0 N=3 A=0 F=16 Q=1 X=1 Data:000000(Hex) 00000000(Dec) Input n a f (data)>3 0 0 N=3 A=0 F=0 Q=1 X=1 Data:000000(Hex) 00000000(Dec) onl5v4[67]% ok. 正常に実行できた。 (5-2). camac LAM 割り込み処理テスト camacクレートのスロット番号3に差したスイッチ・レジスタ・モジュール から LAM 割り込みを発生させて、 LAM 割り込みが正しく処理できるかどうか 調べる。 onl5v4[68]% cam3 *** Now waiting LAM ... N=3 Loop=10 Timeout=0 sec Interrupted !! count=1 Interrupted !! count=2 Interrupted !! count=3 Interrupted !! count=4 Interrupted !! count=5 Interrupted !! count=6 Interrupted !! count=7 Interrupted !! count=8 Interrupted !! count=9 Interrupted !! count=10 *** cam3 nomal end. onl5v4[69]% cam3 *** Now waiting LAM ... N=3 Loop=10 Timeout=0 sec Interrupted !! count=1 Interrupted !! count=2 Timeout !! count=3 <-- ここで、故意にタイム・アウトを起こしてみた。 Timeout !! count=4 <-- ここで、故意にタイム・アウトを起こしてみた。 Interrupted !! count=5 Interrupted !! count=6 Timeout !! count=7 <-- ここで、故意にタイム・アウトを起こしてみた。 Timeout !! count=8 <-- ここで、故意にタイム・アウトを起こしてみた。 Timeout !! count=9 <-- ここで、故意にタイム・アウトを起こしてみた。 Interrupted !! count=10 *** cam3 nomal end. onl5v4[70]% ok. 正常に実行できた。 (5-3). camacブロック転送 16ビット read/write テスト camacクレートのスロット番号3に差したスイッチ・レジスタ・モジュールに 対して camacブロック転送 16ビット read/write を実行する。 onl5v4[70]% cam2 Input transfer mode (1:word 2:long word) >1 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 0 0x 0(Hex) Data( 2)= 0 0x 0(Hex) Data( 3)= 0 0x 0(Hex) Data( 4)= 0 0x 0(Hex) Data( 5)= 0 0x 0(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >17185 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 17185 0x 4321(Hex) Data( 2)= 17185 0x 4321(Hex) Data( 3)= 17185 0x 4321(Hex) Data( 4)= 17185 0x 4321(Hex) Data( 5)= 17185 0x 4321(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 17185 0x 4321(Hex) Data( 2)= 17185 0x 4321(Hex) Data( 3)= 17185 0x 4321(Hex) Data( 4)= 17185 0x 4321(Hex) Data( 5)= 17185 0x 4321(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >0 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 0 0x 0(Hex) Data( 2)= 0 0x 0(Hex) Data( 3)= 0 0x 0(Hex) Data( 4)= 0 0x 0(Hex) Data( 5)= 0 0x 0(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 0 0x 0(Hex) Data( 2)= 0 0x 0(Hex) Data( 3)= 0 0x 0(Hex) Data( 4)= 0 0x 0(Hex) Data( 5)= 0 0x 0(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) onl5v4[71]% ok. 正常に実行できた。 (5-4). camacブロック転送 24ビット read/write テスト camacクレートのスロット番号3に差したスイッチ・レジスタ・モジュールに 対して camacブロック転送 24ビット read/write を実行する。 onl5v4[71]% cam2 Input transfer mode (1:word 2:long word) >2 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -16777216 0x FF000000(Hex) Data( 2)= -16777216 0x FF000000(Hex) Data( 3)= -16777216 0x FF000000(Hex) Data( 4)= -16777216 0x FF000000(Hex) Data( 5)= -16777216 0x FF000000(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >6636321 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 6636321 0x 654321(Hex) Data( 2)= 6636321 0x 654321(Hex) Data( 3)= 6636321 0x 654321(Hex) Data( 4)= 6636321 0x 654321(Hex) Data( 5)= 6636321 0x 654321(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -10140895 0x FF654321(Hex) Data( 2)= -10140895 0x FF654321(Hex) Data( 3)= -10140895 0x FF654321(Hex) Data( 4)= -10140895 0x FF654321(Hex) Data( 5)= -10140895 0x FF654321(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 16 Input data >0 MODE=1 N= 3 A= 0 F=16 len= 5 lenr= 5 error= 0(Hex) Data( 1)= 0 0x 0(Hex) Data( 2)= 0 0x 0(Hex) Data( 3)= 0 0x 0(Hex) Data( 4)= 0 0x 0(Hex) Data( 5)= 0 0x 0(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) Input n a f >3 0 0 MODE=1 N= 3 A= 0 F= 0 len= 5 lenr= 5 error= 0(Hex) Data( 1)= -16777216 0x FF000000(Hex) Data( 2)= -16777216 0x FF000000(Hex) Data( 3)= -16777216 0x FF000000(Hex) Data( 4)= -16777216 0x FF000000(Hex) Data( 5)= -16777216 0x FF000000(Hex) Data( 6)= 0 0x 0(Hex) Data( 7)= 0 0x 0(Hex) Data( 8)= 0 0x 0(Hex) Data( 9)= 0 0x 0(Hex) Data(10)= 0 0x 0(Hex) onl5v4[72]% ok. 正常に実行できた。 --- (6). 項目タイトル (6-1). サブ項目タイトル (6-1-1). サブサブ項目タイトル