June 28, 2011

ちょっとワロタw

$ sl
プログラム 'sl' はまだインストールされていません。  次のように入力することでインストールできます:
sudo apt-get install sl
ワロタw
あるのかよw

Ubuntu10.10で"右クリックのコンテキストメニューからTerminal起動"をできるようにする

意外となかったので、メモ。
$ sudo aptitude install nautilus-actions
$ nautilus-actions-config-tool
でnautilus-actionsを導入して起動
"File"から"NewAction"で新規アクション追加
Actionタブで"Display item in selection context menu"と"Display item in location context menu"にチェックを入れて適当なContext label名をつける。
Commandタブで好きなコマンドを入力する。(私の場合はPATH:"/usr/bin/terminator" Parameter:"--working-directory=~/")

以上

Ubuntu10.10にGoogle日本語入力Mozcを導入する

新しい環境を作っているのでメモ。
$ sudo aptitude install ibus-mozc
$ killall ibus-daemon
$ ibus-daemon -d -x &
$ ibus-setup
で出てきたウィンドウの"インプットメソッド"タブを選択
"インプットメソッドの選択"から日本語→Mozcを選択
"追加"ボタンをクリック
Mozcを選択して"上へ"ボタンをクリック
で完了。

June 23, 2011

Ubuntu10.10 での OpenCV2.3RC with CUDA4.0 の導入

前回はOpenCV2.2のsvn版をつかってCUDA対応のOpenCVを導入してみたが、
OpenCV2.3RCが出たのでインストールしてみる。
RCがとれたのでやってみたのはこっち。

環境としては
OS:Ubuntu10.10 desktop 64bit
OpenCV:OpenCV-2.3.0RC
CUDA:4.0

CUDA4.0の導入についてはこの記事を参照

まずは依存を解決する。
$ sudo apt-get install libtbb2 libtbb-dev libgtk2.0-dev build-essential pkg-config libpng12-0 libpng12-dev libpng3 libpng3-dev libpnglite-dev libpngwriter0-dev libpngwriter0c2 zlib1g-dbg zlib1g zlib1g-dev libjasper-dev libjasper-runtime libjasper1 pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools  libjpeg62 libjpeg62-dev libjpeg62-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev openexr libswscale0 libswscale-dev libeigen2-dev libopenexr-dev subversion subversion-tools doxygen doxygen-gui python-sphinx cmake
また、今回からgtestが必要になったようなのでそちらも導入。
$ sudo aptitude install libgtest-dev

あとはソースをsourceforgeから落としてきて導入。
また、途中でCMakeLists.txtをsedで編集している。これはUbuntuのPythonがsite-packagesを見にいかないため。
さらにdebで管理するためにCheckInstallでdeb化して導入する。RHELと異なりaptitudeで導入できる。
$ mkdir -p ~/local/src
$ cd ~/local/src
$ wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.3/OpenCV-2.3.0rc.tar.bz2
$ tar jxvf OpenCV-2.3.0rc.tar.bz2
$ cd OpenCV-2.3.0
$ sed -i s/site-packages/dist-packages/g CMakeLists.txt
$ mkdir release
$ cd release
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BULD_PYTHON_SUPPORT=ON -D WITH_TBB=ON -D WITH_QT=ON -D WITH_QT_OPENGL=ON -D WITH_CUDA=ON -D BUILD_DOXYGEN_DOCS=ON ../
$ make -j2
$ sudo aptitude install checkinstall
$ sudo checkinstall
$ sudo ldconfig
checkinstall中にいろいろきかれるが適宜答えておく。
checkinstallにいろいろ聞かれるのが煩わしい人はcheckinstallの代わりに"make install"とでもしておけば良い。
これで導入は完了。

opencv_test_gpuがきちんと終わらないのは変わらないなー。
RCでも変化がないということはこちらの設定ミスを疑ってみる。
追々チェックしていく。

せっかくなので、このページにかかれているサンプルをコンパイルしてみる。
コンパイルは
$ g++ -I/usr/local/include/opencv2 -L/usr/local/lib -lopencv_gpu test.cpp
で通る。
これは問題なく動いている。

June 21, 2011

Ubuntu10.10 での OpenCV2.2 with CUDA4.0 の導入

::OpenCV2.3RCの導入法はこちら

以前にもOpenCVを導入したが、
今回はCUDA対応を施しインストールする。(他にも些細な改善をする)

環境としては
OS:Ubuntu10.10 desktop 64bit
OpenCV:OpenCV-2.2.0
CUDA:4.0

CUDAの導入については前回を参照

まずは依存を解決する。
$ sudo apt-get install libtbb2 libtbb-dev libgtk2.0-dev build-essential pkg-config libpng12-0 libpng12-dev libpng3 libpng3-dev libpnglite-dev libpngwriter0-dev libpngwriter0c2 zlib1g-dbg zlib1g zlib1g-dev libjasper-dev libjasper-runtime libjasper1 pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools  libjpeg62 libjpeg62-dev libjpeg62-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec52 libavformat52 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev openexr libswscale0 libswscale-dev libeigen2-dev libopenexr-dev subversion subversion-tools doxygen doxygen-gui python-sphinx cmake
あとはソースをsubversionから落としてきて導入。
tar版はCUDA4.0に対応していないため。
また、途中でCMakeLists.txtをsedで編集している。これはUbuntuのPythonがsite-packagesを見にいかないため。
さらにdebで管理するためにCheckInstallでdeb化して導入する。RHELと異なりaptitudeで導入できる。
$ mkdir -p ~/local/src
$ cd ~/local/src
$ mkdir OpenCV-2.2.0-svn
$ cd OpenCV-2.2.0-svn
$ svn checkout https://code.ros.org/svn/opencv/trunk/
$ cd trunk/opencv/
$ sed -i s/site-packages/dist-packages/g CMakeLists.txt
$ mkdir release
$ cd release
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BULD_PYTHON_SUPPORT=ON -D WITH_TBB=ON -D WITH_QT=ON -D WITH_QT_OPENGL=ON -D WITH_CUDA=ON -D BUILD_DOXYGEN_DOCS=ON ../
$ make -j2
$ sudo aptitude install checkinstall
$ sudo checkinstall
$ sudo ldconfig
checkinstall中にいろいろきかれるが適宜答えておく。
checkinstallにいろいろ聞かれるのが煩わしい人はcheckinstallの代わりに"make install"とでもしておけば良い。
これで導入は完了。

opencv_test_gpuでいくつか通らないテストがあるのだけどどうしたもんかな…
来月にはOpenCVの新しいヴァージョンも出るらしいので、それに期待かな。
ま、追々対応していく。とりあえず完了。

せっかくなので、このページにかかれているサンプルをコンパイルしてみる。
コンパイルは
$ g++ -I/usr/local/include/opencv2 -L/usr/local/lib -lopencv_gpu test.cpp
で通る。
一応動いているみたいで一安心。

Ubuntu10.10 での CUDA4.0 導入

以前、GPUを換装したので、CUDA環境をインストールしてみる。

前提とする環境は
OS:Ubuntu10.10 desktop 64bit
GPU:GeForce GTX 560Ti
CUDA:4.0

まず、公式サイトからCUDA関連ファイルをDLしておく。
必要なのは
・Developer Drivers for Linux : devdriver_4.0_linux_64_270.41.19.run
・CUDA Toolkit for Ubuntu Linux 10.10 : cudatoolkit_4.0.17_linux_64_ubuntu10.10.run
・GPU Computing SDK code samples : gpucomputingsdk_4.0.17_linux.run
・CUDA Tools SDK : cudatools_4.0.17_linux_64.run
の4つ。サンプルとかは適当に。

大まかな流れとしては
・依存の解決
・ドライバの導入
・Toolkitの導入
・SDKの導入
となる。

まず、依存関係をクリアする。
Ubuntu11.4の場合はこれの他に、gcc-4.4,g++-4.4の(バージョンを明記した)導入が必要(11.4は4.5系)
$ sudo aptitude install libxi-dev libxmu-dev freeglut3-dev libglut3-dev g++
で、ディスプレイドライバをいじるのでXを落として、セットアップスクリプトを実行。
$ sudo service gdm stop
$ sudo sh devdriver_4.0_linux_64_270.41.19.run
色々聞かれるが適度に妥当に答える。
おわったら"startx"などでグラフィカルモードにもどる。

次にCUDAのToolkitを導入する。
$ sudo ./cudatoolkit_4.0.17_linux_64_ubuntu10.10.run
これでCUDAのライブラリ等も導入された。
ライブラリを登録する。
/etc/ld.so.conf.d/以下にcuda.confというファイルを作成し、
/lib/local/cuda/lib
/lib/local/cuda/lib64
と編集する。編集が終わったら、"sudo ldconfig"で反映しておく。
また、"/usr/loca/cuda/bin"をPATHに追加しておく。
追加の仕方は各自調査のこと。

また、cudatoolsも導入しておく。
$ sudo sh cudatools_4.0.17_linux_64.run

さて、ここで、なぜか/usr/lib/libGL.soがリンク切れをしている。(mesaのパッケージに問題有るのかな?)
正しい解決方法を探すのが面倒だったので
$ sudo rm /usr/lib/libGL.so
$ sudo ln -s /usr/lib/libGL.so.1 /usr/lib/libGL.so
としておく。

これでSDKを導入する準備ができた。
SDKはデフォルトでは各自のホームディレクトリ以下に入る。
よって"sudo"する必要はない。
$ sh ./gpucomputingsdk_4.0.17_linux.run
導入が終わったら、
$ cd ~/NVIDIA_GPU_Computing_SDK
$ make
で一式をコンパイルする。

コンパイルが終わったら、
$ ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release/deviceQuery
で動作確認。

今後、Kernelアップデートするたびに、ドライバのインストールを繰り返す必要があるかも。
なにかオシャレな対策はないのかな…?

以上

OpenCVとの連携はこちらを参照のこと。

LinkedInのInvitationの取り下げ方

LinkedInに誘われたので入会してみた。
そうしたら、Gmailの履歴から友達にもInvitationを送れるぜ、というので試しにやってみた。
まさかページングされてると思わず…
気がつけば400通近いInvitationが飛んでいた…
そんな抜かったことをやらかしました。
つらい…

さて、そのことに気がついて、即LinkedInの
・Inbox→Sent→SentInvitation
を消しました。

あとはInvitationを送りつけた人たちに謝るだけだ、とおもっていたら…

数日後、
" Reminder about your invitation from XXXXXX XXXXXXX "という題名のメールが
前述のInvitationを送ってしまった人に、さらに飛んでいるらしい…

なんかこのリマインダというシステム自体が微妙に日本人の感性に会わない気がします。

さて、これはどう対処したらいいのか。
どうも
https://help.linkedin.com/app/answers/detail/a_id/26/session/L2F2LzEvdGltZS8xMzA4NjEzOTQxL3NpZC9Ha21ldSp3aw%3D%3D
のように対処をすべきだったようです。
つまり”招待の取り下げ”を先に行わないといけなかったようです。

とはいえ、もうInvitationをすべて消してしまったので自分で取り下げることもできません。
そこで
https://help.linkedin.com/app/answers/detail/a_id/3882
の下のほうにある"Contact us"リンクからメールフォームに飛んで、
必要事項を記入しYour Issue Typeに"Inbox/Invitation/message"を選んで
”Withdraw All Pending Invitations”と題名に入力して送信してください。

それで対処される”はず”です。

これでまだ招待が飛ぶならLinkedIn退会するかな。

ご迷惑をおかけしている方にはほんとに申し訳ない限りです…

June 14, 2011

ML110G6 に Windows7 を導入すると不明なデバイスが残る件

ML110G6にWindows7 x64を導入すると、不明なデバイスがひとつ残ってしまう。
コンバネから情報を調べると
ACPI\HPQ000B
とのこと。
何かと思って調べてみると、こんな情報があった。

これにしたがって、
HP ProLiant 100シリーズ マネジメント コントローラ ドライバ for Windows Server 2003/2008 x64 edition
をインストールする。
Windows7用ではないが問題はない。

これで不明なデバイスはなくなった。すっきり!

HP ProLiant ML110G6 に GeForceGTX560Ti を導入する

CUDA を使いたいので ML110 G6 にGPUを導入することにした。
GT430 とかでスモールスタートするのもいいが、もうちょっと気合を入れてみたい。
(ML110G6+1万円で組める激安CUDA環境はこちら)
お財布との相談の結果、 GeForceGTX560Ti をねらうことにする。
2万円前半台でそこそこ性能は良さそう。
560Tiを使うにはML110G6の電源は貧弱なので電源も換装することにした。

実際に購入した製品は
グラフィックカード:MSI:N560GTX-Ti TwinFrozrII
電源:Scythe:剛力短2 700W 80PLUSブロンズ SPGT2-700P

ML110 G6は電源はATXそのままなのだが、ケースの関係上ショートサイズの電源を選ぶ必要がある。

電源は何事もなく換装完了し、グラボの搭載をしようとしたのだが、どうにもうまく嵌らない。
というのもこのグラボ、2スロット占有であり、どうも拡張スロットのセパレータであるケースの突起が邪魔なようだ。
邪魔なのでペンチで突起ごとケースを歪ませて対応した。

LinuxでGPUのベンチをどう取ったらいいのか迷ったので、Windows7を導入。
FFXIVベンチを走らせてみた。
HighでもLowでも3000強。期待より低い。というかHighとLowで変化がないのは何でだぜ…

小さいケースに無理くり押し込んだ手前、温度上昇が気になる。
ベンチをループさせながらGPU-ZでGPUの温度変化を追ってみた。
・FanSpeed55%で温度60度で安定
・GPULoadがそもそも40%ぐらいまでしか上昇しない…
・30分実験継続して温度の上昇傾向なし
・ベンチを終了すると室温+10度程度で安定
LoadがMAXまでいかないのは、GPU以外が足を引っ張ってるからなのかな…
まぁ、暴走したら対策を考えよう。とりあえずは大丈夫そう。

あとは、CUDAの導入OpenCVのCUDA対応、PyCUDAの導入という流れを考えている。

June 7, 2011

CentOS5におけるPython2.6の導入

CentOS5(RHEL5)のPythonは2.4系で色々辛いのでPython2.6を導入する。
CentOS6になればPython2.6系になるのだけど…

迂闊な事をするとpythonをつかっているスクリプトに影響を与える可能性があるので注意。
可能性の中で一番辛いのはyumが死ぬこと。
要は現状のpython(/usr/bin/pythonと/usr/lib/python2.4以下)を傷つけなければ問題ない。
DLして解凍
# cd /usr/local/src
# wget http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz
# tar zxvf Python-2.6.7.tgz 
# cd Python-2.6.7
Modules/Setup.dist内のzlibに関するコメントアウトを解除する
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
↓
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
CheckInstallでrpm化して導入、libを登録
# ./configure --enable-shared
# make
# checkinstall
# rpm -ihv /usr/src/redhat/RPMS/x86_64/Python-2.6.7-1.x86_64.rpm 
# echo "/usr/local/lib" > /etc/ld.so.conf.d/python2.6.conf
# ldconfig
で、旧来のpython(/usr/bin/python)とは別に新しいpython(/usr/local/bin/python)が導入された。
PATHの設定にもよるが、デフォルトでは/usr/local/binが先に書かれているはずなので、
コマンドラインでpythonとだけ指定すると新しい方が呼ばれるはず。
最後にeasy_installが2.4系にしか入っていないので、新たに入れ直す。
# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py
これでeasy_installが2.6系でも使えるようになった。
と、ここまで書いてeasy_install自体もpacoで管理すれば良かったことに気がつくもときすでに遅し…
pacoって"make install"にあたる部位で-オプションをつけると
pacoへのオプションだと認識されてしまうようでにっちもさっちも!まぁいいか…
で、最後に便利系を入れておく。
# paco -p pip easy_install pip
# paco -p virtualenv easy_install virtualenv
# paco -p virtualenvwrapper easy_install virtualenvwrapper
以上

pacoの導入

前回CheckInstallを導入した。
"make install"するソフトはCheckInstallするとして、
easy_install経由でインストール方法をとるパッケージの管理をするために、pacoを導入する。
(他にも使えるだろうけど。ついでにいえばpip使えよって話かもだけど。)
これもcheckinstallでrpm化して導入する。
# cd /usr/local/src
# wget http://downloads.sourceforge.net/paco/paco-2.0.9.tar.gz
# tar zxvf paco-2.0.9.tar.gz 
# cd paco-2.0.9
# ./configure --disable-gpaco
# make
# checkinstall
# rpm -ihv /usr/src/redhat/RPMS/x86_64/paco-2.0.9-1.x86_64.rpm 
以上

CheckInstallの導入

ソースから導入するソフトウェアは一定数存在する。
しかしRHELではrpmでパッケージ管理を行っている。
可能ならばrpmですべてのパッケージ管理を行いたい。
そこでCheckInstallを導入する。
CheckInstallを使えば、"make install"する類のパッケージをrpm化することができる。
(Ubuntuなどで採用されているdeb形式にも出力できる)
rpmは/usr/src/redhat/RPMSに生成される。
# cd /usr/local/src/
# wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz
# tar zxvf checkinstall-1.6.2.tar.gz 
# cd checkinstall-1.6.2
# make
# make install
で導入する。
CheckInstall自体もrpmで管理するため、CheckInstallもrpm化して上書きする。
# checkinstall
# rpm -ihv /usr/src/redhat/RPMS/x86_64/checkinstall-1.6.2-1.x86_64.rpm
以上

June 1, 2011

" Can't remove open logical volume "対策

どこからも利用してない"はず"のLVMのLV"hoge"が Can't remove open logical volume "hoge" と言われて消去できない、
みたいなことがある。再起動したりしてみてもダメ…
そんなときは
# fuser /dev/VolGroupXX/hoge
で、どのプロセスが利用中なのか調べる。
プロセスIDがわかるのであとはpsでなんのプロセスなのか確認、対処する。

問答無用で殺したい時は
# fuser -km /dev/mapper/hogehoge
でok。