2012年11月22日木曜日

Scientific Linuxのdropboxが落ちた!

dropboxが落ちていた。

zipimport.ZipImportError: not a Zip file: '/usr/libexec/dropbox/library.zip'
 
というメッセージを吐いている。 
 google先生に聞いてみると、よくあることらしい。

# yum reinstall dropboxであっさり復活。

https://forums.dropbox.com/topic.php?id=39093

2012年11月21日水曜日

Scientific Linux 6.3でGPIB: ナノボルトメータと通信 ibtest編

先日の続きです.

Pythonはいろいろパスの設定とかめんどくさそうだったので,この際あきらめて,素直につながっているかどうかテスト.

まず,NI-USB-GPIB-HSをつなぐ.
dmesgで確認すると,


見えてます.
lsmodしてもしっかり見えていました.
それでは,rootで

# gpib_config

とタイプ.
設定が認識されて,使えるようになりました.


ibtestをつかいます.
きちんとパスの通ったところにインストールされているので,

# ibtest

で動きます.

グループ"gpib"に,GP-IBをたたきたいユーザを加えておけば,ここから先は一般ユーザでもオッケーでした.

$ ibtest


このibtestの使い方がイマイチめんどくさい.
起動すると,ボードと通信する(b)かデバイスと通信する(d)か聞いてきます.
とりあえずアジレントのナノボルトメータ(アドレス22)だけつないであるので,dと答え,アドレス22を入力.
(以下,私の入力は赤モジで示します.)


$ ibtest
Do you wish to open a (d)evice or an interface (b)oard?
(you probably want to open a device): d
enter primary gpib address for device you wish to open [0-30]: 22
trying to open pad = 22 on /dev/gpib0 ...

すると,つらつらと使い方が表示され,プロンプト”:”が表示され入力待ちになりました.
とりあえず,"*IDN?"を送ってみたいので,

You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller only)
send (d)evice clear (device only)
change remote (e)nable line (system controller only)
(g)o to standby (release ATN line, system controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
: w
enter a string to send to your device: *IDN?
sending string: *IDN?

gpib status is: 
ibsta = 0x2100  < END CMPL >
iberr= 0

ibcnt = 6


どうやらうまく聞いてくれたようです.
それでは,お返事を聞いてみましょう.
お話を聞くコマンドは"r"らしいので,入力.その後,すぐに何バイト??と聞いてくるので,とりあえず100と答えてみた.


: r
enter maximum number of bytes to read [1024]: 100
trying to read 100 bytes from device...
received string: 'HEWLETT-PACKARD,34420A,0,9.0-5.0-2.0
'
Number of bytes read: 37
gpib status is:
ibsta = 0x2100  < END CMPL >
iberr= 0

ibcnt = 37

青モジがナノボルの答えです.
おそらく,最後に"\n"がはいっているために改行されてしまうのでしょう,そこはご愛嬌ということで.

このあと,ナノボルトメータといろいろ世間話を楽しみました.
君,今のファンクションは??
今,VOLTっす
"そっか,じゃぁ,レンジはどのくらい??"
"+1.00000000E+00っすね."
って感じで(^^)v

2012年11月14日水曜日

Scientific Linux 6.3でGPIB: ナノボルトメータと通信

まずは/etc/gpib.confを編集し,アドレスが22,型番34420Aを登録します.
一応USBからGPIBインターフェースをぬいて,再起動.

起動後に,もう一度USBにGPIBアダプタをさす.
dmesgとLEDを確認.

さてさて,インタープリタで扱う方がテストとしてはやりやすいので,pythonから使えるかな?という甘い考えを抱き,Pythonでテスト.
しかし....


>>> import Gpib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named Gpib
>>>


...そんなモジュールないとか言い出す.
きっとパスが通ってないに違いない,と思い,


>>> import sys
>>> sys.path
['', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/gst-0.10', '/usr/lib/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info', '/usr/lib/python2.6/site-packages/webkit-1.0']
>>>

やっぱり.
linux-gpib関係はすべて/usr/local/libの下にいます.
そこで,環境変数PYTHONPATHを設定してみた.

$ export PYTHONPATH=/usr/local/lib:/usr/local/lib/python2.6/:/usr/local/lib/python2.6/site-packages/

再びPythonを起動してチェック.
$ python
Python 2.6.6 (r266:84292, Jun 18 2012, 09:59:14) 
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib', '/usr/local/lib/python2.6', '/usr/local/lib/python2.6/site-packages', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/gst-0.10', '/usr/lib/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info', '/usr/lib/python2.6/site-packages/webkit-1.0']

理屈の上ではこれで大丈夫なはず.
もう一度リベンジ!

>>> import Gpib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/site-packages/Gpib.py", line 2, in <module>
    import gpib
ImportError: libgpib.so.0: cannot open shared object file: No such file or directory
>>> 

しんどいなぁ.....
今日は帰ろう.



Scientific Linux 6.3でGPIB

昨日予告したように,Scientific Linux 6.3上でGP-IBを使うためのドライバーをインストールしました.

Linux GPIBのウェブサイトから,現時点での最新版をダウンロードしてきます.
今日の時点での最新版は,linux-gpib-3.2.16でした.
/usr/local/srcにダウンロードしたファイルをコピーして.

# tar zxvf linux-gpib-3.2.16.tar.gz
# cd linux-gpib-3.2.16
# ./configure
# make
# make install

と,なんだか怖いほどすんなり.
本当に動いているのかなぁ,と半信半疑でNIのGPIB-USB-HSをUSBポートに接続.
すると,なんと,きちんとREADYのLEDがオレンジ色に光るではないか!!

念のためdmesgを確認してみると,



無事にGPIB-USB-HSが読み込まれたとのメッセージが!!!!
嬉しい.

それでは,実際に動くかどうかはまた明日.

Scientific Linux 6.3にdropboxをインストール

いや,簡単.
"ソフトウエアの追加/削除でインストール"からyumでインストール出来る.


私はすでにアカウントを持っていたので,初回起動時に既存のアカウントへログインすると.再起動後にシンクがはじまった.
あっという間でした.

これで,過去の資産をローカルで簡単に使えます!

さて,むかし書いた三角格子ハイゼンベルグ反強磁性の帯磁率を求めるプログラムをコンパイルし直し,さっそく実行!

gnuplotで絵まで描いてご満悦


2012年11月13日火曜日

SL6.3上にmusrfitをインストール!!!本番

いきなりですが,ssh -Xでlinuxマシンにログインしてmusrviewを起動した画像です.



VNC経由で動かすよりもサクサクしてるので,こちらの方が良いです.
で,どうやってここまでこぎつけたかというと.
ROOTさえ入ってしまえばあとはそれほど大したことありませんでした.

指示通り,SVNでソースをコピーします.
自分の好きなディレクトリで,

$ svn co svn+ssh://svn@savannah.psi.ch/repos/nemu/lem/trunk/analysis/musrfit musrfit

と打つ.

すると,パスワードを二回聞いてくるので,二回とも,PSIの指示通りのパスワードを入力します.
それから,

$ svn up musrfit

でローカルのコピーを最新にアップデートします.
さて,それではビルドに入ります.

残念ながらNeXusは読み込めない可能性が高いので,ここは安パイをとってNeXusは有効にしないことにします.

$ cd musrfit
$ sh autogen.sh
$ . /configure --prefix=$ROOTSYS
$ make

ここまでうまくいったら,スーパーユーザー権限で,

# make install
# /sbin/ldconfig

そして最後に,環境変数MUSRFITPATHを.bashrcと.bash_profileにかき込んで終わり.
冒頭のように,exampleディレクトリの下にあるスペクトルをmusrviewで見ることができました,というわけです.

さて,明日は朝から講義.おわったらGPIBドライバのセットアップに入ろうかと思っています.



2012年11月12日月曜日

SL6.3上にmusrfitをインストール!!!の前にROOT

予告の通り,musrfitをインストールしましたので,ご報告と,備忘のために記録します.

ずっと色々なことをMacOSXで頑張って来たのですが,Linuxを使えるとなると,欲が出てしまうものです.
MacOSX上にmusrfitをビルドした時も四苦八苦して,やっと出来たのにmusrT0がうまく動かず,結局スペクトルを見る程度しか出来なかったので,今回はかなり期待して作業開始です.
(もちろん,私よりウデのある方がビルドすれば動くとは思います...)

まずは,例のページにアクセス!

Scientific Linuxなら実はyumでROOTがインストール出来るはずなのですが,yumで入れたROOTはインストールされている場所の問題なのか,musrfitをmakeするときにコンパイラがライブラリをうまくリンク出来ませんでした.
(私が未熟なんだと思います)

そこで,Setting up musrfit on Different Platformのページに従い,まずはROOTからインストールします.

まずその前に,

# yum install boost boost-devel gsl gsl-devel fftw3 fftw3-devel libxml2 libxml2-devel qt qt-devel

として,必要なパッケージをインストールします.
それから,NeXusフォーマットを読みたかったので,mxml,hdf4とhdf5をインストールしようとしました.
ところが,mxmlのパッケージが見つかりません.
しょうがないのでNeXusはとりあえずスキップして,とにかくROOTを動かすことに目標を置きます.

まずは,/opt/root-system/というディレクトリを作ります.
そこにパッケージを展開するはずなのですが,ちょっとした手違いで,/opt/root-system/rootというディレクトリに展開されてしまいました.

まぁ,くよくよしても仕方ないので,
$ cd /opt/root-system/root
$ .  configure
で,
$ make
$ su
# make install

っとやってしまいました.
すると,そもそもminuit2とかすら使えないと言う驚きの結果に.

そこで,基本に立ち返り,上述のサイトを見ると,configureの際にいろいろオプションつけなきゃいけないとのこと.

そこで,
$ . configure linux --gminimal --enable-asimage --enable-mathmore --enable-minuit2 --enable-xml
とやると,いろいろ作ってくれるみたいです.

次に,コンパイル時にライブラリをリンク出来るように,
# echo "/opt/root-system/root/lib" >> /etc/ld.so.conf.d/root-system.conf
# /sbin/ldconfig

最後に,bashに環境変数を設定します.
下の二行を.bashrcまたは.bash_profileに追加して,再度ログインします.
export ROOTSYS=/opt/root-sytstem/root
export PATH=$ROOTSYS/biin:$PATH

これで,
$ echo $ROOTSYS
$ echo $PATH
と打って,それぞれのパスが通っていればオッケー



次はいよいよmusrfitのインストールです.

<次に続く>

ScientificLinux6.3でVNCのためにやったこと

ここに書いてあることは,ほとんどの内容が前にも出て来た先輩,M渕先生に教わったことをもとにやっています.
大学院修士課程のころからなので,もはや10年以上のおつきあいです.

まず,yumでtigervncをインストール.

その後,/etc/sysconfig/vncserversをバックアップしてsuで以下のように変更
その後,一般ユーザにもどり.
$ vncpasswd
Password: ********
Verify: ********

$ cd .vnc/
$ vi xstartup

内容はこれだけ.

#! /bin/sh
gnome-session &

実行出来るようにします.

$ chmod +x xstartup

# service vncservice restartとするも,ポート5901番でVNCに入れない.
そこで,いくつかの変更を施す.

まず,保護されたローカルネットワークの中にいるので, この際ファイアウォールを外す.

# /etc/rc.d/init.d/iptables stop
# /etc/rc.d/init.d/ip6tables stop

起動時に起動しないように.

# chkconfig iptables off
# chkconfig ip6tables off

確かめる.

# chkconfig --list

SELinuxをpermissiveモードへ

# setenforce 0

確かめる.

# getenforce
(Permissiveと表示される)

こちらも起動時に起動しないように/etc/sysconfig/selinuxを編集



permissiveモードは,SELinuxは有効だがアクセスは制限しない,と言うモード.
怪しいアクセスはログに記録されるらしい.

さて,それでは接続.
Finderから,


無事に接続.


ちなみに,このmusrfitのインストールについてはまた後日.