NEBULA DAQの復旧

Scientific Linux 6.6を入れる。Linux 7.7だとkernel3.10でbabirlは対応していないのでダメ。(はじめなにも考えずにインストールしてしまった。。。) yum updateの途中でなぜかいきなり電源が落ちる?何? もとのHDDからファイルコピーしていたらまた落ちた! 結局今日だけで3回これに出くわした。 電源容量が足りなかったりするのか? 故障前の電源は600Wで、変更後も600W。さらにSBSのPCIボードが2枚減っているので、まあその可能性はないか? ケースの側面のふたを両方外していたけれど、片側に埃があった。これ?とりあえず取り除いて様子を見る。 あと考えられるのは熱か?確かにマザーボードやグラボのヒートシンクすごく熱い。

nbbq install

nbbq-may12-2015をダウンロード。ISERIESを使いたので、common.hでdefine。 rootでコンパイルすると以下のエラー。
[root@sdaq14 nbbq-may12-2015]# make
make -C bb-sbs620
make[1]: Entering directory `/home/daq/nbbq-may12-2015/bb-sbs620'
make -C /lib/modules/2.6.32-754.23.1.el6.i686/build SUBDIRS=/home/daq/nbbq-may12-2015/bb-sbs620 modules
make[2]: Entering directory `/usr/src/kernels/2.6.32-754.23.1.el6.i686'
  CC [M]  /home/daq/nbbq-may12-2015/bb-sbs620/bb-sbs620.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/daq/nbbq-may12-2015/bb-sbs620/bb-sbs620.mod.o
  LD [M]  /home/daq/nbbq-may12-2015/bb-sbs620/bb-sbs620.ko.unsigned
  NO SIGN [M] /home/daq/nbbq-may12-2015/bb-sbs620/bb-sbs620.ko
make[2]: Leaving directory `/usr/src/kernels/2.6.32-754.23.1.el6.i686'
cat Module.symvers >> ../Module.symvers
make[1]: Leaving directory `/home/daq/nbbq-may12-2015/bb-sbs620'
make -C bb-univ
make[1]: Entering directory `/home/daq/nbbq-may12-2015/bb-univ'
make -C /lib/modules/2.6.32-754.23.1.el6.i686/build SUBDIRS=/home/daq/nbbq-may12-2015/bb-univ modules
make[2]: Entering directory `/usr/src/kernels/2.6.32-754.23.1.el6.i686'
  CC [M]  /home/daq/nbbq-may12-2015/bb-univ/bb-univ.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "vme_dma_read2" [/home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko] undefined!
WARNING: "vme_dma_buffer_create" [/home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko] undefined!
WARNING: "vme_dma_buffer_phys_addr" [/home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko] undefined!
WARNING: "vme_dma_buffer_release" [/home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko] undefined!
WARNING: "vme_master_window_create" [/home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko] undefined!
WARNING: "vme_master_window_release" [/home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko] undefined!
WARNING: "vme_master_window_phys_addr" [/home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko] undefined!
  CC      /home/daq/nbbq-may12-2015/bb-univ/bb-univ.mod.o
  LD [M]  /home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko.unsigned
  NO SIGN [M] /home/daq/nbbq-may12-2015/bb-univ/bb-univ.ko
make[2]: Leaving directory `/usr/src/kernels/2.6.32-754.23.1.el6.i686'
cat Module.symvers >> ../Module.symvers
make[1]: Leaving directory `/home/daq/nbbq-may12-2015/bb-univ'
make -C nbbqvio
make[1]: Entering directory `/home/daq/nbbq-may12-2015/nbbqvio'
make -C /lib/modules/2.6.32-754.23.1.el6.i686/build SUBDIRS=/home/daq/nbbq-may12-2015/nbbqvio modules
make[2]: Entering directory `/usr/src/kernels/2.6.32-754.23.1.el6.i686'
  CC [M]  /home/daq/nbbq-may12-2015/nbbqvio/nbbqvio.o
/home/daq/nbbq-may12-2015/nbbqvio/nbbqvio.c: In function 'nbbqvio_ioctl':
/home/daq/nbbq-may12-2015/nbbqvio/nbbqvio.c:232: error: implicit declaration of function 'sbs620_set_amsr_i'
/home/daq/nbbq-may12-2015/nbbqvio/nbbqvio.c:238: error: implicit declaration of function 'sbs620_vread16_i'
/home/daq/nbbq-may12-2015/nbbqvio/nbbqvio.c:245: error: implicit declaration of function 'sbs620_vread32_i'
/home/daq/nbbq-may12-2015/nbbqvio/nbbqvio.c:253: error: implicit declaration of function 'sbs620_vwrite16_i'
/home/daq/nbbq-may12-2015/nbbqvio/nbbqvio.c:260: error: implicit declaration of function 'sbs620_vwrite32_i'
make[3]: *** [/home/daq/nbbq-may12-2015/nbbqvio/nbbqvio.o] Error 1
make[2]: *** [_module_/home/daq/nbbq-may12-2015/nbbqvio] Error 2
make[2]: Leaving directory `/usr/src/kernels/2.6.32-754.23.1.el6.i686'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/daq/nbbq-may12-2015/nbbqvio'
make: *** [all] Error 2
そういえばいくつか修正した気がする。以下を加える。 nbbqvio/bb-vme.hの以下のコメントを外す。
// added -->
extern void set_amsr_i(unsigned char am,int dn);
extern void vread16_i(unsigned int addr,short *data,int dn);
extern void vread32_i(unsigned int addr,int *data,int dn);
extern void vwrite16_i(unsigned int addr,short *data,int dn);
extern void vwrite32_i(unsigned int addr,int *data,int dn);
extern int get_irq_i(int dn);
//<--
bb-sbs620.cに以下を追加。
EXPORT_SYMBOL(sbs620_dma_vread32_store);
EXPORT_SYMBOL(sbs620_read_intvector);
// added -->
#ifdef ISERIES
EXPORT_SYMBOL(sbs620_set_amsr_i);
EXPORT_SYMBOL(sbs620_vread16_i);
EXPORT_SYMBOL(sbs620_vread32_i);
EXPORT_SYMBOL(sbs620_vwrite16_i);
EXPORT_SYMBOL(sbs620_vwrite32_i);
#endif
// <--
#endif
これでコンパイルが通る。 さらにMakefileを以下のように変更。
install :
#       mknod -m 0666 /dev/nbbqvio c 126 0
        mknod -m 0666 /dev/nbbqvio2 c 126 2
        mknod -m 0666 /dev/nbbqvio3 c 126 3
installをすると、/dev/nbbqvio2,3が現れる。これをテストするとPCがフリーズするかもしれないので後日。 なんとなくlogを見てみると以下のメッセージが!
Oct 17 20:35:21 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 17 21:08:30 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 17 22:27:50 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 17 22:32:12 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 17 23:11:55 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 17 23:37:05 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 18 00:16:51 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 18 00:25:51 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 18 01:30:07 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 18 01:38:13 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 18 03:18:48 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 18 03:40:59 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 18 04:50:11 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 18 05:05:29 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 18 06:21:12 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 18 06:25:31 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 18 07:17:32 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 18 07:25:30 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
Oct 18 09:22:22 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (92 C) went below the 'downclock' threshold
Oct 18 09:34:39 sdaq14 kernel: nouveau 0000:01:00.0: therm: temperature (95 C) hit the 'downclock' threshold
やっぱり温度が高すぎるみたい。。。しかしなぜこの時間帯だけ?いずれにせよ突然PCが落ちたのはこのせいだと思われる。 うーん、対策しないと。CPUファンを変える?もしくはグリースを塗りなおすだけで解決するのかな?フロントのケースファンをあるもので間に合わせるために小さ目のものを使っているせいもあるかも。HDD死亡前はケースファンがカッチカチだったからCPUファンも硬くなっていても不思議じゃない。(そこの摩擦で発熱しているかも?) CPUの型番が分からんと適合するCPUファンを探せない。。。 今日は終了。

CPUのグリース塗り替える前に、どれくらい温度が高くなるのかチェック。 ケース片側OPENの状態でBIOSでモニター。 大体この辺で落ち着く。 CPUというよりは他のボード のせいか? MBのGIGABYEと書いてあるヒートシンクより、グラボのヒートシンクのほうが熱い。 グラボには実はファンがついていることが発覚。それが回っていない。手でサポートすると回りだすけど。 SYSTEM FAN2(front)は単に電源とつないでいるだけなので、回転数制御されない。なんでこんな接続の仕方なのだろうか?
改善策:グラボを買い替える。ケースファンを大きいものにして、MBにさしてコントロール可能なようにする。 12㎝x12cmのファンを前面につけて、MBのSYSTEM FAN2につなぐ。 小さいファンを背面側へ。
FAN2が動かない…MBのSYSTEM FANが機能していない…だからわざわざ変換コネクタで電源側につないであったのか。。。 古いDELLのグラボがあったのでそれをつけてみる。これで温度どこまで上がるのか? BIOSの設定でfan controlをdisableにして常に全力投球にする。 12㎝のファンを側面へ仮止め。 これで温度を見る。 System temp 30 CPU temp 32 よく冷えてる! とりあえずこれで作業しよう。 nbbqのインストールの続き。 再起動すると、/dev/nbbqvio2がない。/etc/init.d/nbbqを変更する必要がある。 もとのnbbqのディレクトリのnbbqをコピーしているのでこれを変更。
rm -rf /usr/nbbq
cd /home/daq/nbbq-may12-2015.mod/
make install
reboot
これでちゃんとnbbqvio2,3がある。 vmestat-iためしたらPCが再起動。ん? 昔のメモを見ていると、bb-sbs620/sbs620.hのSBS620_REMOTE_SIZEを半分にとある。これを試す。 /etc/init.d/nbbqを整備。実際には/home/daq/nbbq-may12-2015.mod/nbbqを編集して、
make update
で更新する。
/etc/init.d/nbbq restart
dmesg
でケーブルが正しくささっているか確認できる。どうもケーブルの1がMB側らしい。 でもvmestat-iをやるとPCが落ちて再起動… グラボをもとに戻して試す。PC落ちない!だが、対応するVMEクレートのモジュールは光らない。。。
気分転換にbabirlをインストールして、rvmestatを使えるようにした。 ちゃんとsdaq33、34のモジュールが反応する。こちらは問題ない様子。 グラボを交換したらどうやって設定しなおすのだっけ? いっそのことインストールしなおしたほうが早いかな? これまでついていたのは
[daq@sdaq14 ~]$ lspci |grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 210] (rev a2)

IRQがへん?

うーんと思いながらいろいろ調べていると、IRQがdmesgに表示されているメッセージと、lspciで出てくるもので違う番号になっていることに気づく。
[root@sdaq14 vmeutil]# /etc/init.d/nbbq restart
[root@sdaq14 vmeutil]# dmesg|tail -n15
SBS620 is power off or cable is not connected.
nbbqvio : nbbqvio was installed.
nbbqvio: nbbqvio was unregistered.
0 : SBS620 found at 0x0000df00 0xf9ff0000 0xf9fe0000 0xf6000000 on irq 18.
0 c000
1 d000
2 e000
3 f000
1 : SBS620 found at 0x0000de00 0xf9fd0000 0xf9fc0000 0xf4000000 on irq 16.
0 98000
1 99000
2 9a000
3 9b000
SBS620 is power off or cable is not connected.
nbbqvio : nbbqvio was installed.
[root@sdaq14 vmeutil]# lspci -vb
(中略)
05:02.0 Bridge: SBS Technologies VME Bridge Model 618 (rev 45)
        Flags: bus master, slow devsel, latency 32, IRQ 3
        I/O ports at df00
        Memory at f9ff0000 (32-bit, non-prefetchable)
        Memory at f9fe0000 (32-bit, non-prefetchable)
        Memory at f6000000 (32-bit, non-prefetchable)
        Kernel driver in use: SBS620

05:03.0 Bridge: SBS Technologies VME Bridge Model 618 (rev 45)
        Flags: bus master, slow devsel, latency 32, IRQ 11
        I/O ports at de00
        Memory at f9fd0000 (32-bit, non-prefetchable)
        Memory at f9fc0000 (32-bit, non-prefetchable)
        Memory at f4000000 (32-bit, non-prefetchable)
        Kernel driver in use: SBS620
また、IRQの一覧は/proc/interruptにあるが、ここにはSBSはない? いくつかお告げを受けたので試す。 (1)
rmmod nbbqvio
rmmod bb-sbs620
insmod bb-sbs620.ko
dmesg
変わらない。
(2)
chkconfig irqbalance off
reboot
だめ、変わらない。
(3) BIOSでいろいろdisableにしてみる。 いろいろ見ていると、PCI IRQ Assignmentとかある。とりあえずこれを試す前に上の3つ変えただけでどうなるか? lspci -vbで出てくるIRQが5と11に変わった。でてもdmesgは変わらず18と16。
(4) BIOSでPCI3 IRQ 14, PCI4 IRQ 15にする。(16-18は選べない。)
lspci -vbすると、14と11になっている。なんで11にしたがるのだろうか? 挿すところを変えてみるか? dmesgのほうは相変わらず16と18。
MBのPCI4にささっていたのをPCI5にさす。 BIOSでPCI4->Auto, PCI5->15にする。
lspciで14,7になる。dmesgで18,20になる。 だめ。
BIOSでPCI3->4, PCI5->7にする。つまりシリアルに割り当てられていたやつ。 lspciで18,20。dmesgでも18,20!
でもvmestatしてもうんともすんとも。。。 cmdvme-i 0 -wr 0x00fe cmdvme-i 1 -wr 0x010000fe でも0しか返ってこない。。。
(4-1)
ケーブルが生きているか確認。VME側で抜いてnbbq restartをすると、ちゃんとSBS620 is power off or cable is not connectedと出てくる。片方は反応しないが、光ケーブルの1,2を入れ替えて同じ事をやるとちゃんとケーブルが生きていることは確認できた。
(4-2)
ISEIRESでない通常のように動かしてみる。
cmdvme -wr 0x00fe
libnbbqvio.c: nbbqvio_val[1]=000001e0
0x01e0  / 480
なんかちゃんと読める!問題はISERIESか。 ようやくできた!

nbbq ISERIES改造箇所

以下、いじったところをまとめておく。下記以外にnbbqvio-i.cやcmdvme-i, vmestat-iなどを用意する必要がある。

bb-sbs620.h(なくても動いた)
#ifdef ISERIES
extern void sbs620_set_amsr_i(unsigned char am, int dn);
extern void sbs620_vread16_i(unsigned long addr,short *data, int dn);
extern void sbs620_vread32_i(unsigned long addr,long *data, int dn);
extern void sbs620_vwrite16_i(unsigned long addr,short *data, int dn);
extern void sbs620_vwrite32_i(unsigned long addr,long *data, int dn);
extern void sbs620_dma_vread32_start_i(unsigned int addr,int size, int dn);
#endif
bb-sbs620.c
#define ISERIES
#ifdef ISERIES
EXPORT_SYMBOL(sbs620_set_amsr_i);
EXPORT_SYMBOL(sbs620_vread16_i);
EXPORT_SYMBOL(sbs620_vread32_i);
EXPORT_SYMBOL(sbs620_vwrite16_i);
EXPORT_SYMBOL(sbs620_vwrite32_i);
#endif
nbbqvio/bb-vme.h
extern void set_amsr_i(unsigned char am,int dn);
extern void vread16_i(unsigned int addr,short *data,int dn);
extern void vread32_i(unsigned int addr,int *data,int dn);
extern void vwrite16_i(unsigned int addr,short *data,int dn);
extern void vwrite32_i(unsigned int addr,int *data,int dn);
extern int get_irq_i(int dn);
nbbq
#       if [ ! -e /dev/nbbqvio ]; then
#           mknod -m 0666 /dev/nbbqvio c 126 0
#       fi
        if [ ! -e /dev/nbbqvio0 ]; then
            mknod -m 0666 /dev/nbbqvio0 c 126 0
            mknod -m 0666 /dev/nbbqvio1 c 126 1
        fi
common.h
#define ISERIES

その他

グラボを再度交換。
[daq@sdaq14 nbbq-may12-2015.mod]$ lspci|grep -i vga
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV370 [Radeon X300]
再起動問題はきっとIRQのせいかな?再交換後はとくに問題ない。 東工大の捨てる予定だったPCからはぎ取ってきたファンを取り付け。
新たに購入したHDDをデータディスク用として取り付け。フォーマットして/etc/fstabに追加。
nebulaアカウントを作成。 旧HDDから/home/nebula以下のゴミでないファイルをコピー。

HV listのプログラム

HVWrapperをコピーして下記に置き、コンパイル。
[root@sdaq14 Linux]# pwd
/home/nebula/build/CAENHVWrapper/Linux
[root@sdaq14 Linux]# make clean
rm -f HVWrapperDemo/MainWrapp.o HVWrapperDemo/CmdWrapp.o HVWrapperDemo/console.o HVWrapperDemo/HVWrappdemo
[root@sdaq14 Linux]# make install
install lib/libcaenhvwrapper.so.5.52 lib/hscaenetlib.so.1.7 /usr/lib
ln -sf /usr/lib/libcaenhvwrapper.so.5.52 /usr/lib/libcaenhvwrapper.so
ln -sf /usr/lib/hscaenetlib.so.1.7 /usr/lib/libhscaenet.so
ldconfig
make all
make[1]: Entering directory `/home/nebula/build/CAENHVWrapper/Linux'
gcc -DUNIX -DLINUX -I./HVWrapperDemo/ -I./include/ -o HVWrapperDemo/MainWrapp.o -c HVWrapperDemo/MainWrapp.c
gcc -DUNIX -DLINUX -I./HVWrapperDemo/ -I./include/ -o HVWrapperDemo/CmdWrapp.o -c HVWrapperDemo/CmdWrapp.c
HVWrapperDemo/CmdWrapp.c: In function 'HVTstBdPres':
HVWrapperDemo/CmdWrapp.c:1008: warning: passing argument 4 of 'CAENHV_TestBdPresence' from incompatible pointer type
./include/CAENHVWrapper.h:318: note: expected 'char **' but argument is of type 'char (*)[15]'
HVWrapperDemo/CmdWrapp.c:1008: warning: passing argument 5 of 'CAENHV_TestBdPresence' from incompatible pointer type
./include/CAENHVWrapper.h:318: note: expected 'char **' but argument is of type 'char (*)[80]'
gcc -DUNIX -DLINUX -I./HVWrapperDemo/ -I./include/ -o HVWrapperDemo/console.o -c HVWrapperDemo/console.c
gcc -DUNIX -DLINUX  -o HVWrapperDemo/HVWrappdemo HVWrapperDemo/MainWrapp.o HVWrapperDemo/CmdWrapp.o HVWrapperDemo/console.o\
                        -L /usr/lib -lcaenhvwrapper -lncurses -lpthread -ldl -lm
make[1]: Leaving directory `/home/nebula/build/CAENHVWrapper/Linux'
rm -f HVWrapperDemo/MainWrapp.o HVWrapperDemo/CmdWrapp.o HVWrapperDemo/console.o
次に~/exp/util/bbhvsyに移動してコンパイル。
[nebula@sdaq14 bbsyhv]$ make clean
rm -f *.o
[nebula@sdaq14 bbsyhv]$ make
gcc -Wall -Iinclude   -c -o bbsy_getnames.o bbsy_getnames.c
gcc -Wall -Iinclude   -c -o bbcaenhvlib.o bbcaenhvlib.c
gcc   bbsy_getnames.o bbcaenhvlib.o -Llib -lcaenhvwrapper -lhscaenet -lpthread -lm -ldl  -o bbsy_getnames
gcc -Wall -Iinclude   -c -o bbsy_setname.o bbsy_setname.c
gcc   bbsy_setname.o bbcaenhvlib.o -Llib -lcaenhvwrapper -lhscaenet -lpthread -lm -ldl  -o bbsy_setname
gcc -Wall -Iinclude   -c -o bbsy_getchinfo.o bbsy_getchinfo.c
gcc   bbsy_getchinfo.o bbcaenhvlib.o -Llib -lcaenhvwrapper -lhscaenet -lpthread -lm -ldl  -o bbsy_getchinfo
gcc -Wall -Iinclude   -c -o bbsy_setchparam.o bbsy_setchparam.c
gcc   bbsy_setchparam.o bbcaenhvlib.o -Llib -lcaenhvwrapper -lhscaenet -lpthread -lm -ldl  -o bbsy_setchparam
gcc -Wall -Iinclude   -c -o bbsy_hvon.o bbsy_hvon.c
gcc   bbsy_hvon.o bbcaenhvlib.o -Llib -lcaenhvwrapper -lhscaenet -lpthread -lm -ldl  -o bbsy_hvon
gcc -Wall -Iinclude   -c -o bbsy_hvoff.o bbsy_hvoff.c
gcc   bbsy_hvoff.o bbcaenhvlib.o -Llib -lcaenhvwrapper -lhscaenet -lpthread -lm -ldl  -o bbsy_hvoff
gcc -Wall -Iinclude   -c -o bbsy_listall.o bbsy_listall.c
bbsy_listall.c: In function 'main':
bbsy_listall.c:29: warning: unused variable 'nch_slot'
gcc   bbsy_listall.o bbcaenhvlib.o -Llib -lcaenhvwrapper -lhscaenet -lpthread -lm -ldl  -o bbsy_listall

ROOTのインストール

cmakeをyumで入れる。
[nebula@sdaq14 root-6.18.04-build]$ wget https://root.cern/download/root_v6.18.04.source.tar.gz
[nebula@sdaq14 root]$ tar zxvf root_v6.18.04.source.tar.gz
[nebula@sdaq14 root]$ pwd
/home/nebula/build/root
[nebula@sdaq14 root]$ mkdir root-6.18.04-build
[nebula@sdaq14 root]$ cd root-6.18.04-build
[nebula@sdaq14 root-6.18.04-build]$ cmake /home/nebula/build/root/root-6.18.04
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.9 or higher is required.  You are running version 2.8.12.2


-- Configuring incomplete, errors occurred!
そんな。。。
[nebula@sdaq14 cmake]$ pwd
/home/nebula/build/cmake
[nebula@sdaq14 cmake]$ wget https://github.com/Kitware/CMake/releases/download/v3.16.0-rc3/cmake-3.16.0-rc3.tar.gz
[nebula@sdaq14 cmake]$ tar zxvf cmake-3.16.0-rc3.tar.gz
[nebula@sdaq14 cmake-3.16.0-rc3]$ ./bootstrap 
---------------------------------------------
CMake 3.16.0-rc3, Copyright 2000-2019 Kitware, Inc. and Contributors
Found GNU toolchain
C compiler on this system is: gcc   
---------------------------------------------
Error when bootstrapping CMake:
Cannot find a C++ compiler that supports both C++11 and the specified C++ flags.
Please specify one using environment variable CXX.
The C++ flags are "".
They can be changed using the environment variable CXXFLAGS.
See cmake_bootstrap.log for compilers attempted.
---------------------------------------------
Log of errors: /home/nebula/build/cmake/cmake-3.16.0-rc3/Bootstrap.cmk/cmake_bootstrap.log
---------------------------------------------
むうー。ハマりたくないので、root_v5.34.38にする。 必要なものを入れる。
yum install libX11-devel
yum install libXpm-devel
yum install libXft-devel
yum install libXext-devel
pwd
/usr/local/src/root-v5.34.38
./configure --prefix=/usr/local/lib/root_v5.34.38
make
勢いでmakeしてしまったが、どれくらいで終わるのだろうか?make installを終わったあとしないといけないのだけれど。
翌日make install。.bashrcにthisroot.shの実行を加えた後ちゃんと動いた。 anaroot_v.4.5.36をインストール。 ~/exp/anaroot/anaroot_v4.5.36に入れる。 その前に下記が必要。
[root@sdaq14 anaroot_v4.5.36]# yum install libxml2-devel
コンパイルすると下記のようなエラー。
include/TArtBigRIPSParameters.hh:10: error: forward declaration of 'struct TXMLNode'
ROOTを入れる前にxmlをインストールしておかないといけないかな? rootのconfigureをやり直すと、xmlを感知する。もう一度make, make install。 だめ。どうもヘッダーファイル見つけられていない。なぜ?
/usr/local/lib/include/root を消去してmake installしなおすとコピーされる。
ANAROOTコンパイルできた! rootlogon.Cとかは後日で。