= Real time PC setup for SUPER MICRO = == CentOS5.4 == *64bit版(x86_64)DVDを手に入れ、ドライブに入れ起動(32bit版だとRT Linux上のネットワークカードの認識のところで進まなくなる) *通常インストール *Japaneseを選択(あとでEnglishに変えた方がいいかも) *RAIDなどもあとで組めばいいので、できるだけデフォルトのシンプルなパーティションにする(LVM使用) *GRUBはきちんと目的のものが立ち上がるように設定 *networkはet0を選ぶこと、DHCPでよい ==== root setting ==== *root:xxxxxxxxxx ==== Packages ==== *GnomeとKDE両方とも選ぶ、他のServerなどは選ばなくてよい *追加のリポジトリも選ばなくてよい Formatting and rebooting ==== security ==== *fire wall: off *Selinux: PERMISSIVE ==== user setting ==== *controls:xxxxxxxx *controlsでログイン ==== repository ==== /etc/yum.repos.d/CentOS-Base.repoに {{{ #contrib - packages by Centos Users [contrib] name=CentOS-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 enabled=0 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5 }}} を追加 /etc/sudoersに {{{ controls ALL=(ALL) NOPASSWD:ALL }}} を追加しておくと便利 ==== gcc, g++ install ==== {{{ # yum -y install gcc }}} {{{ # yum -y install gcc-c++ }}} ==== lib ==== {{{ # yum -y install readline-devel }}} {{{ # yum -y install ncurses-devel.x86_64 }}} ==== For medm ==== {{{ # yum -y install openmotif }}} ==== For Matlab ==== {{{ # yum -y install libXp }}} === For /cvs/cds/kami/target/k1ctrepics/ === /usr/lib/libreadline.so.6はなかなか見つからないので、前にセットアップしたものからコピー。これがないとこのディレクトリのstartupK1が立ち上がらない。 === For dataviewer === libXpm-devel-3.5.5-3.i386 ==== yum update ==== {{{ # yum -y update }}} パッケージアップデーターを使っても同じことができる 再起動 == RT linux installation == *opt.tar.gzを/optにコピーして展開、rootが所有者であることを確認。もし違うなら {{{ sudo chown -R root:root /opt }}} <> *local-2.95.3.tarを/usr以下に展開 */framesのフォルダを作成 */opt/rtldk-2.2/rtlinux_kernel_2_6にいって {{{ # make modules_install install }}} */etc/grub.confのdefault=1をdefault=0に変更 *reboot *uname -aで確認 もしkernel panicで立ち上がらない時は、biosのIDEの設定をAHCIを疑うこと。AHCIはデフォルトでサポートされていないので、biosのIDEの設定をIDE/Compatibleにするとよい。kernelにAHCIモジュールを組み込むといいかもしれない(試していない)。 === network card (NIC)が認識されていない場合 === Rial timeでないkernelで立ち上げ直して、NICが認識されてから、intelのページにいって82575/6 and 82580 for Linuxドライバーをダウンロード {{{ tar xvf igb-2.1.9.tar.gz cd igb-2.1.9/src/ sudo make install sudo /sbin/insmod /lib/modules/2.1.16-rtl/kernel/drivers/net/igb/igb.ko }}} で認識されるはず。 menuのsystem,Administration,Networkから確認、もしくは/sbin/ifconfigからも確認できる。 === network setting === ネットワークはローカルなルーターを使い外にでないようにする。固定IPに設定。例えばシステム->管理->ネットワークからか、もしくは/etc/host/に {{{ IP:192.168.11.2 subnet mask:255.255.255.0 Gateway:192.168.11.1 DNS:192.168.11.1 }}} DNSに {{{ host name:kami2 DNS1:192.168.11.10 DNS2:192.168.11.1 DNS path:clio.km.icrr.u-tokyo.ac.jp }}} ホストに {{{ IP:192.168.11.2 name:kami2 }}} などと登録しないと、後にawgmantpが立ち上がらない。Firefox等できちんとネットワークがつながっているか確認。この時点で、 {{{ ssh -Y kami1 }}} などとできるはず。 === いらないサービスを停める === システム->管理->サービスから .auditid .autofs .avahi daemon .bluetooth .cpuspeed .cups .cups config .haldaemon .hidd .httpd .ip6tables .iptables .isdn .kudzu .sendmail .smartd .xfs .yum-updatesd ==== 再起動 ==== === Delキーでbiosを立ち上げ不要なデバイスを停止する === *parallel(一台目ではCDがパラレルでつながっていたのでCD/DVDが使えなくなった。二台目は設定がなかった) *serial ports(ただし、あとからピコモータを触りたい場合はserialは残しておいた方がいいかも。二台目はDisabledにしたらOSが立ち上がらなくなったので結局もとのままにした) *USB(ただし、USBはUSBメモリを使う場合は残しておいた方がいいかもしれない。二台目は設定がなかった) == Expansion Chassis == *電源を切りPCIeにケーブルコネクタカードをさし、ケーブルをつなぎ、Expansion Chassisと接続。 *65536HzのタイミングシグナルをADC/DACカードに入れる *先にExpansion Chassis電源を入れてから、PCの電源を入れる。PCの電源を入れるまではExpansion Chassisの電源は入らないので驚かないこと。 *ADC/DACに5Vの電源を供給してやらないと、全く立ち上がらないので注意 {{{ /sbin/lspci }}} で[[CLIO/Tasks/DigitalControl/RTCSetupMemo/lspci|こんなの]]が見えていたらOK。 == GDS software Installation == */(root)以下にcvs.tar.gzを展開 {{{ cd / sudo tar xvf cvs.tar.gz chown controls:root /cvs }}} * / 以下にapps.tar.gzを展開、rootが所有者であることを確認 *実際には/apps/Linux/gds以外はいらない *epics-3.14.10-RC2-i386.tarを/opt以下に展開、controlsが所有者であることを確認 *epics-3.14.7-i386.tarを/opt以下に展開、controlsが所有者であることを確認 *epics-3.14.9-linux.tarを/opt以下に展開、controlsが所有者であることを確認 */home/controls以下にcds.tar.gzを展開 *setup_shmem.rtlを/usr/bin/にコピー === /etc/fstab === /etc/fstabを必要に応じて直す {{{ /dev/sdb1 /frames ext3 defaults 1 1 rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0 }}} 必要に応じて再起動 === /frames === /frames以下を作成 {{{ sudo mkdir /frames chown controls;root /frames }}} /frames以下は[[CLIO/Tasks/DigitalControl/RTCSetupMemo/frames|このような]]ディレクトリ構造になるように、ディレクトリを作る。 こんな[[CLIO/Tasks/DigitalControl/RTCSetupMemo/mkdirp|スクリプト]]を書くと楽。 所有者は全てcontrolsになるように設定。 {{{ sudo chown controls:root /frames sudo chown controls:controls /frames/* }}} <> === /etc/rc.local に以下の行を加える === {{{ /opt/epics-3.14.10-RC2-i386/base/bin/linux-x86/caRepeater& /opt/rtldk-2.2/rtlinuxpro/modules/rtcore& sleep 5 /usr/bin/setup_shmem.rtl ctr& }}} === Add EPICS libraries to all paths === /etc/ld.so.conf.d/にfileを4つ追加 [[CLIO/Tasks/DigitalControl/RTCSetupMemo/epics-i386.conf|epics-i386.conf]] [[CLIO/Tasks/DigitalControl/RTCSetupMemo/gds-i386.conf|gds-i386.conf]] [[CLIO/Tasks/DigitalControl/RTCSetupMemo/epics-x86_64.conf|epics-x86_64.conf]] [[CLIO/Tasks/DigitalControl/RTCSetupMemo/root-i386.conf|root-i386.conf]] {{{ [controls@kami1 ld.so.conf.d]$ ls epics-i386.conf gds-i386.conf qt-x86_64.conf epics-x86_64.conf qt-i386.conf root-i386.conf }}} === /etc/inittab に以下の行を加え、daqdとnsdのスタートアップとrespawnを指定する旨を追加する === {{{ # Frame Builder fb:35:respawn:/cvs/cds/llo/target/fb/start_daqd.inittab nds:35:respawn:/cvs/cds/llo/target/fb/start_nds.inittab }}} === /etc/xinit.d にfileを3つ追加 === [[CLIO/Tasks/DigitalControl/RTCSetupMemo/diagconf|diagconf]] [[CLIO/Tasks/DigitalControl/RTCSetupMemo/leapconf|leapconf]] [[CLIO/Tasks/DigitalControl/RTCSetupMemo/chnconf|chnconf]] {{{ chmod 755 *conf }}} で実行権限を加える。 === xinetd === {{{ yum install xinetd }}} システム->管理->サービスからxinetdが立ち上がっていることを確認し、「オンデマンドのサービス」タブで .chnconf .diagonf .leapconf がきちんと立ち上がっているか確認。 === /etc/service === /etc/serviceに {{{ diagconf 5355/udp }}} を追加 === /etc/rpc === /etc/rpc に以下を追加 {{{ chnconf 822087685 leapconf 822087686 }}} == installation of gds == */cvs/cds/llo/scripts/startqts書き換え */cvs/cds/llo/target/fb/daqrc書き換え */cvs/cds/llo/target/gds/param以下を書き換え *awg.par書き換え *diag_L.confを書き換え *nds.par書き換え *testpoint.par書き換え === .bashrc or .cshrc === [[CLIO/Tasks/DigitalControl/RTCSetupMemo/bachrc|.bashrc]]を編集 [[CLIO/Tasks/DigitalControl/RTCSetupMemo/cshrc|.cshrc]]を編集 == 再起動、及びリアルタイムコードの開始 == 再起動後 {{{ startqts }}} {{{ medm //cvs/cds/llo/medm/l1/qts/L1QTS_GDS_TP.adl }}} でepicsが動いているか確認。 もし {{{ libXm.so.4: cannot open shared object file: No such file or directory }}} と出る場合は {{{ #yum -y install openmotif }}} もし、数値のところが真っ白なら {{{ daqconfig }}} と打って、epicsのチャンネル名がきちんと表示されているか確認。仮に表示されていても、特に初回は一度保存するといい時がある。 数値は表示されるが、とまっている時は左下のBURT Restoreのところに1をいれる。 === dataviewer === ==== LibXpm ==== {{{ [controls@kami2 ~]$ dataviewer /apps/Linux/dataviewer/dc3: error while loading shared libraries: libXpm.so.4: cannot open shared object file: No such file or directory }}} 解決策 {{{ #yum -y install libXpm }}} ==== hostname ==== {{{ [controls@kami2 ~]$ dataviewer Can't find hostname `teststand0' Can't find hostname `teststand0'; gethostbyname(); error=2 Warning: Not all children have same parent in XtManageChildren Error in obtaining chan info. Can't find hostname `teststand0' Can't find hostname `teststand0'; gethostbyname(); error=2 }}} 解決策 /apps/Linux/dataviewer/dataviewer のteststand0を自分のホスト名(例えばkami2)に変える。 === site を変えたいとき === ==== Construction of K1 model ==== *Matlab, simulinkで.mdlファイルのsiteをK1とする *grep -r lho /home/controls/cds/adLigo/src* で該当ファイルを探しsite=kamiを追加 *src/epics/util/feCodeGen.pl 一カ所 *src/epics/util/lib/Parameters.pm 一カ所 */home/controls/cds/advLigo/Makefileをlhoで検索して、kamiを2箇所追加 *make qts *make install-qts *make install-daq-qts */cvs/cds/kami/target/fb内にllo等からファイルをコピー、start_daqd.inittab, start_nds.inittab, master, daqdrcを書き換える */cvs/cds/kami/target/gds/param以下をllo等からコピーして以下を書き換え *testpoint.par *nds.par *awg.par *error.par *diag_L.confとかをdiag_K.confにファイル名を変える */cvs/cds/kami/target/gds/bin以下にawgtpmanをllo等からコピー * /etc/rc.local, /etc/inittabを書き換え */etc/xinet.d/以下を書き換え *diagconf書き換え *chnconf書き換え *leapconf書き換え *.bashrc(or .cshrc)でPATHの変更 *reboot */cvs/cds/kamioka/script/daqconfigを立ち上げ、data channelを追加 === rc.localでリアルタイムコードを自動的に立ち上げたいとき === rc.localに {{{ su -l controls -c "/cvs/cds/kami/scriptis/startctr" }}} 等と書く {{{ sudo: sorry, you must have a tty to run sudo }}} とかログに出る場合は、 /etc/sudoers の「Defaults requiretty」行を消すなりコメントアウトする。ただし書き込み不可になっている /etc/sudoers のパーミッションを一度変更して編集しなくてはならないが、通常は文法エラーなどをチェックしてくれる /usr/sbin/visudo コマンドを使うのが普通。直接編集してミスがあるとヤバイ事になる。vi が嫌いなら環境変数 EDITOR で変更が可能。 === Slow channelの登録 === dataviewerの信号選択でslowの欄には最初何も現れない。masterに {{{ /cvs/cds/kami/chans/daq/K1EDCU.ini }}} 等と書いて、 [[CLIO/Tasks/DigitalControl/RTCSetupMemo/K1EDCU_ini|/cvs/cds/kami/chans/daq/K1EDCU.ini]] を編集。 === 途中でIPアドレスを変えたくなったとき === ネットワーク設定から、アダプタのAddressのIPと右端のHostsのタブのIPを変更 /cvs/cds/xxx/target/gds/param/error.parを変更 === autoburtによるパラメータの自動記録 === 以下のディレクトリを作る {{{ mkdir /cvs/cds/kami/burt/ mkdir /cvs/cds/kami/burt/autoburt mkdir /cvs/cds/kami/burt/autoburt/logs mkdir /cvs/cds/kami/burt/autoburt/snapshots mkdir /cvs/cds/kami/burt/autoburt/snapshots mkdir /cvs/cds/kami/burt/autoburt/2010 }}} 2010年以降も2020年くらいまで作っておくとよい。 /cvs/cds/kami/burt/に[[CLIO/Tasks/DigitalControl/RTCSetupMemo/autoburt|autoburt.pl]]を作る。 controlsで {{{ crontab -e }}} とうち、 {{{ 43 * * * * /usr/bin/perl /cvs/cds/kami/burt/autoburt.pl }}} 等と入力。これは毎時43分にsnapshotがとられるという意味。 <> == その他トラブル == ==== sudoでどんなコマンドを実行しても,Connection refusedが出る ==== {{{ # sudo pwd audit_log_user_command(): Connection refused }}} 解決策 最新版のsudoを取って来てコンパイルする {{{ # wget http://www.sudo.ws/sudo/dist/sudo-1.7.2p5.tar.gz # tar xvf sudo-1.7.2p5.tar.gz # cd sudo-1.7.2p5 # ./configure # make # sudo make install }}} その際pamがないといわれるのでpam-devel-0.99.6.2-6.el5_4.1.x86_64をインストール。 ==== RPC ==== {{{ Starting RPC idmapd: FATAL: Module sunrpc not found. FATAL: Error running install command for sunrpc Error: RPC MTAB does not exist. }}} というエラーが出る。動作はしているようだ。 解決策 どうも/etc/fstabに以下のように書いておけばいいらしい。 {{{ rpc_pipefs /var/lib/nfs/rpc_pipefs rpc_pipefs defaults 0 0 }}} ディスクレス起動の時はカーネルにnfsを静的に取り込んであるが、nfsのsunrpcをモジュールだと仮定してロードしようとするらしい。 詳しくは[[http://linux-nfs.org/pipermail/nfsv4/2005-July/002246.html]] === medmの数値が全て真っ白 === 例えば {{{ ~>more /cvs/cds/kami/target/k1ctr/log.txt insmod: error inserting '/tmp/ctrfe.ko': -1 Unknown symbol in module ctrfe: Problem loading module }}} のようにリアルタイムコードが走らない場合等はたいてい[[#rclocal|/etc/rc.local]]がおかしい。 === libgeneral-0.so.5 === /cvs/cds/kami/target/fb/daqd.logに {{{ /cvs/cds/kami/target/fb/daqd: error while loading shared libraries: libgeneral-0.so.5: cannot open shared object file: No such file or directory }}} などと出ている場合は、[[#local2953|/usr/local-2.95.3]]が存在するかチェック === test point manager が立ち上がらないとき === /cvs/cds/kami/target/gds/startup_ctr.cmdを直接立ち上げると解決することがある {{{ more /cvs/cds/kami/target/gds/ctr.log 16 kHz system mmapped address is 0xf3eff000 Spawn testpoint manager no test point service registered Test point manager startup failed; -1 }}} となっているとき、/cvs/cds/llo以下が存在するか確かめる /cvs/cds/llo/target/gds/bin/awgtpmanが/cvs/cds/llo/target/gds/param/testpoint.parにアクセスしている。llo以下を移動してはだめ。根本的に解決するにはawgtpmanを再コンパイルする必要がある。 ==== diag ==== diag -iコマンドで {{{ [controls@kami2 ~]$ diag -i Diagnostics configuration: awg 0 0 192.168.11.2 822087682 1 192.168.11.2 tp 0 0 192.168.11.2 822087681 1 192.168.11.2 }}} だけしか表示されない場合はxinetdが立ち上がっていない可能性が高い。diagguiやawgguiでチャンネル名がでない時もこれらが関連している可能性が高い。 /ets/servicesの最後に {{{ diagconf 5355/udp }}} がきちんと書かれているかチェック /etc/xinit.dのchnconf,leapconf,diagconfをチェック、とくに最初の行のservice chnconf等が書いていない場合がある 後は、ネットがきちんと外につながっているかfirefox等できちんとチェック 正しい場合は以下のようになる。 {{{ [controls@kami2 ~]$ diag -i Diagnostics configuration: awg * 0 cobox0 5000 * 192.168.11.2 awg * 1 cobox0 5001 * 192.168.11.2 awg * 2 cobox1 5000 * 192.168.11.2 awg * 3 cobox1 5001 * 192.168.11.2 awg 0 0 192.168.11.2 822087682 1 192.168.11.2 chn * * 192.168.11.2 822087685 1 192.168.11.2 err 0 * 192.168.11.2 5353 * 192.168.11.2 err 1 * 192.168.11.2 5353 * 192.168.11.2 leap * * 192.168.11.2 822087686 1 192.168.11.2 nds * * 192.168.11.2 8088 * 192.168.11.2 ntp * * ntpServer * * 192.168.11.2 tp 0 0 192.168.11.2 822087681 1 192.168.11.2 tst * * gdsdmt 5354 * 192.168.11.2 }}} === dataviewerなどでchannel名が出てこない === daqdが走っていない {{{ /cvs/cds/kami/target/fb/start_daqd.inittab }}} と打って、直接daqdを立ち上げてやるといい。 === 過去のDAQ dataが見えない === チャンネル名等も全部見えて、リアルタイムのデータはdataviewer等で見えるのに、過去のデータが見えない時は/cvs/cds/kami/target/fbにjobsというディレクトリがあるかどうか確認すること。とくに、/cvs/cds/kami/target/fb/daqd.logに以下のようなメッセージが残されている場合は、jobsを作ると過去のデータまで見えるようになる。 {{{ [Thu Apr 8 17:55:09 2010] /cvs/cds/kami/target/fb/jobs/1270716909: NDS job spec file open failed }}} もしくはNDSが走っていない場合がある {{{ [controls@kami1 ~]$ ps -ef | grep nds controls 7067 7025 0 08:53 pts/5 00:00:00 /cvs/cds/kami/target/fb/nds /cvs/cds/kami/target/fb/pipe controls 13284 13201 0 09:14 pts/8 00:00:00 grep nds }}} とならない場合は、 {{{ /cvs/cds/kami/target/fb/start_nds.inittab }}} と打って、直接NDSを立ち上げてやるといい。 === medm でfontがないと怒られる === Reference manualに解決策が書いてある。font pathは/usr/share/X11/fonts/miscだった。 {{{ Aliased Fonts in X Windows Copy the following lines into your miscellaneous fonts.alias file. Beware that if you are in Windows then this may introduce CR-LF’s, which must be converted to LF’s. The standard place is /usr/lib/X11/fonts/misc/fonts.alias. You can get your own particular font path from “xset q”. Note that these specifications are the standard MEDM font specifications as used at the Advanced Photon Source, but you are free to define another set of font specifications that gives better results for your machine or your own preferences. Keep in mind that displays may not look good if the fonts used are significantly different from those used by the designer of the display. widgetDM_4 -misc-fixed-medium-r-normal--8-60-100-100-c-50-iso8859-1 widgetDM_6 -misc-fixed-medium-r-normal--8-60-100-100-c-50-iso8859-1 widgetDM_8 -misc-fixed-medium-r-normal--9-80-100-100-c-60-iso8859-1 widgetDM_10 -misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-1 widgetDM_12 -misc-fixed-medium-r-normal--13-100-100-100-c-70-iso8859-1 widgetDM_14 -misc-fixed-medium-r-normal--14-110-100-100-c-70-iso8859-1 widgetDM_16 -misc-fixed-medium-r-normal--15-120-100-100-c-90-iso8859-1 widgetDM_18 -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1 widgetDM_20 -misc-fixed-medium-r-normal--20-140-100-100-c-100-iso8859-1 widgetDM_22 -sony-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1 widgetDM_24 -sony-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1 widgetDM_30 -adobe-times-medium-r-normal--25-180-100-100-p-125-iso8859-1 widgetDM_36 -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 widgetDM_40 -adobe-helvetica-bold-r-normal--34-240-100-100-p-182-iso8859-1 widgetDM_48 -adobe-helvetica-bold-r-normal--34-240-100-100-p-182-iso8859-1 widgetDM_60 -adobe-helvetica-bold-r-normal--34-240-100-100-p-182-iso8859-1 Then run “xset fp rehash” to install them. On Linux you may need to run “/etc/init.d/xfs restart” to restart the X font server. You can see if the fonts are there with “xlsfonts” or “xlsfonts | grep widgetDM”. You can get more information from any of the general-purpose books on X Windows. }}} でもかっこわるいので、こんなaliasを作った。 {{{ alias medm "medm -displayFont -adobe-helvetica-medium-r-normal--34-240-100-100-p-176-iso8859-1 -x /cvs/cds/kami/medm/k1/ctr/menu.adl &" }}} === daqconfig設定し忘れ === frameが立ち上がる前にとなんとかのエラーが出た場合は/cvs/cds/kami/scripts/daqconfigでDAQチャンネルを定義する === MEDMの数値が動かない === GDS_TP.adlの左下が全て0になっている場合は発信器からのタイミングに問題がある。--(矩形波で32768Hzで0Vを中心に9Vpp出ているか確認する。)-- もしくは/cvs/cds/llo/scripts/daqconfigでチャンネルを定義する。 もしくはmake uninstall-daq-qtsを試して、モデルを再コンパイルと解決する場合が多い。 === kami1ではdiagguiが動くが、portaで動かない === portaのdiagguiでチャンネル名が見えなかったり、見えてもtime outなどで測定ができない。kami1上のdiagguiは測定まできちんとできる。 原因と解決策:portaの時刻が時間とともに狂ってきている。portaにNTPクライアントを入れて時刻を合わせたら解決。