VMIVME
MEMO(VME-7807RC)
- Ethernet の LAN cable は G2 につなぐ。10/100 につなぐと、以下のメッセージが出る。
PXE-E61: Media test failure, check cable
- VME-7807RC の特定の個体では IRQ の番号が以下のように eth0 とかぶる場合がある。
# cat /proc/interrupts CPU0 0: 1335818 XT-PIC timer 2: 0 XT-PIC cascade 11: 12181 XT-PIC eth0, babildrv NMI: 0 ERR: 0
- このような場合、インタラプトがかかっているかどうかをデバッグする際に面倒になる(thanks to 久保田君)。なぜなら、DAQ でインタラプトがかかっているのか、ネットワークのインタラプトがかかっているのかわからなくなるため。例えば、 DAQ の IRQ がかかっているかどうかをチェックする場合、driver の babildrv.c の babildrv_interrupt() という関数の中に、
printk("babildrv: interrupt occur!");
- といったメッセージを書いて、インタラプトがかかっているかを確認する。しかし、eth0 と IRQ がかぶっている場合、DAQ からのインタラプトが無くても、上記メッセージが出力されてしまう。久保田君曰く、これを変えるのは難しいらしい。他のVMIVME を使うのか良い。
- SAMURAI のネットワークのルータ (型番確認) に SHARAQ の VMIVME を Ethernet ケーブルで直接つなぐと、IP をとってこないことがあった。なぜか Ethernet HUB をかませると、IP アドレスとちゃんと取得して PXEブートした。なんで?
RIBF のネットワークで PXE boot をした場合、g01 の /home/daq/daqconfig/<host name> というディレクトリを NFS でマウントする。さらに、シェルスクリプト g01:/home/daq/daqconfig/<host name>/init/daqbootrc を実行する。このスクリプトの中身は以下のようになる。
#/bin/sh echo 5 > /proc/sys/kernel/panic /usr/babirl/bin/babimo /usr/babirl/bin/babies -l <EFN> /home/daq/daqconfig/<host name>/init/daqinitrc
ここで、シェルスクリプト /home/daq/daqconfig/<host name>/init/daqinitrc を実行しているが、このシェルスクリプトに問題があると以下のところで止まる。
... bb-universe : registerd nbbqvio : nbbqvio was installed. bi-tcp.mktcpsock: Can't bind socket. : Address already in use babies: normal linux mode babildrv : babildrv was installed (irq 11).
- 正しく起動すると、以下のようなプロンプトが出る。
<host name> login:_
- VMIVME がちゃんとささってないと、/usr/nbbq/bin/cmdvme が途中で止まったり、正しい値を読んでこなかったりする。
# /usr/nbbq/bin/cmdvme -lr 0x38000004 0x38200110 / 941621520