miedaの備忘録

わすれないように

CentOS6.5 で Ceres-Solverを使う

以下のパッケージを手動でインストール

glog
yumからglog-develが見えなくなった(私だけか?)ので手動で入れます。
https://code.google.com/p/google-glog/
ファイルを落としてきて
# ./configure
# make
# make install

SuiteSparse
yumで入るsuitesparseはバージョンが古いらしくて不整合を起こすため、手動で入れます。
こちらをメインに参照
meritを入れること
コマンドは次に変更

make CC=gcc CPLUSPLUS=g++ F77=gfortran CFLAGS="-I../Include -O3 -fno-tree-vectorize -fPIC -fexceptions -m64 -mfpmath=sse -msse4.2 -march=native" F77FLAGS="-O3 -fno-tree-vectorize -fPIC -fexceptions -m64 -mfpmath=sse -msse4.2 -march=native" BLAS="-L/usr/lib64/atlas -lptf77blas -latlas -L/usr/local/lib -lmetis -lpthread -lgfortran  -lm" LAPACK="-llapack"


Ceres-Solver
http://ceres-solver.org/building.html#linux
基本的にサイト通り。
cmake のところだけ、.soファイルを生成しないとめんどくさいので次のように変更

cmake -DGLOG_LIB=/usr/local/lib/libglog.so -DEIGEN_INCLUDE_DIR=/usr/local/include/eigen -DBUILD_SHARED_LIBS=ON ..

CentOSにしました

ここ数日やってたDebian
何故かsshからrebootすると立ち上がらない
chinachuのストリーミング視聴中にネットワークが不調を起こす
など、解決できない不具合が多発したために
使い慣れたCentOSに戻ることにしました。

/etc/inittab を編集して runlevel を 3 にする

epel repos 取得
http://ftp.riken.jp/Linux/centos/6/extras/x86_64/Packages/epel-release-6-8.noarch.rpm
バージョンは適宜変えてね

gcc の比較的新しいバージョンを使えるようにする。
以下を参照
CentOS 6.5にGCC 4.8.2をレポジトリで入れてみた - 以下省略!
消えたとき用メモ
$ wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
$ yum install devtoolset-2-gcc devtoolset-2-binutils
$ yum install devtoolset-2-gcc-c++ devtoolset-2-gcc-gfortran
$ /opt/rh/devtoolset-2/root/usr/bin/gcc --version
$ scl enable devtoolset-2 bash
$ gcc --version


ICカードリーダー
参考はこちら

rpmforge repos 取得
$wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
ファイル名はここをみつつ適宜変更
$ rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

$ yum install pcsc-lite pcsc-lite-devel pcsc-lite-libs
$ yum install ccid
$ yum install --enablerepo=rpmforge perl-Gtk2

pcsc-perlとpcsc-toolsのrpmfedoraから入手
$ wget http://ftp.riken.jp/Linux/fedora/releases/13/Everything/x86_64/os/Packages/pcsc-tools-1.4.16-1.fc13.x86_64.rpm
$ wget http://ftp.riken.jp/Linux/fedora/releases/13/Everything/x86_64/os/Packages/pcsc-perl-1.4.8-2.fc13.x86_64.rpm
$ rpm -Uvh xxx
$ service pcscd start
$pcsc_scan
この後は前の記事と同じ(多分エラーは出ない)

◆ recpt1
基本的には前と一緒
$ yum install
b25を入れる
$ cd ~
$ hg clone http://hg.honeyplanet.jp/pt1 -r b25 pt1_b25
$ cd pt1_b25/arib25/src
$ make
$ make install PREFIX=/usr
recpt1を入れる
$ cd ~
$ hg clone http://hg.honeyplanet.jp/pt1
$ apt-get install autoconf automake
$ ./autogen.sh
$ ./configure --prefix=/usr --enable-b25
$ cp pt1_dev.h pt1_dev.h.org
pt1_dev.h内の/dev/pt1を/dev/pt3に置換
$ make
$ make install

◆ pt3ドライバ
やっぱり基本的には前と一緒
$ cd ~
$ echo "blacklist earth-pt1" >> /etc/modprobe.d/blacklist.conf
$ git clone https://github.com/m-tsudo/pt3.git
$ cd pt3
$ make
$ make install
$ reboot
$ ls -l /dev/pt3*
=> /dev/pt3video[0-3]が出れば成功
録画試験
$ recpt1 -b25 --strip 27 10 test.ts

◆ chinachu
$yum install yasm-devel
$ scl enable devtoolset-2 bash
実行しないとgccのバージョンが古いまま

あとは基本的に前と一緒

ただし、自動起動関連はdebianじゃないのでinsservではなくchkconfigでやる
$ sudo chkconfig -add chinachu-operator
$ sudo chkconfig -add chinachu-wui
$ sudo chkconfig chinachu-operator on
$ sudo chkconfig chinachu-wui on

※ execsyncでエラーが出た時は
$ cd /home/chinachu/chunachu/.nave/installed/xxxx/bin
$ ./npm install execsync
でいけるかも?(今回は動いた)

Debian Memo 2 (PT3編)

PT3で録画できるようにするまで

◆ドライバインストール
/usr/local/src あたりで作業するのがよさげっぽい?
echo "blacklist earth-pt1" >> /etc/modprobe.d/blacklist.conf
apt-get install git linux-headers-amd64
git clone https://github.com/m-tsudo/pt3.git
cd pt3
make
sudo make install


ICカードリーダー周り
$ apt-get install pcscd pcsc-tools
上手く行けばこれだけ。

waiting for the first reader ... とか出た場合
libccid1.4.7以下のバージョンだと手持ちのSCR3310-NTTComがうまく動かない。
(
Linux/テレビ関連/libccid - PukiWiki Plus!
参照)
なので、なんとかしてアップデートする。
.debファイルを拾ってくるのが手っ取り早い
Index of /pub/Linux/ubuntu//pool/universe/c/ccid
から適当なものを選んでダウンロード
$ dpkg -i ./libccid_xxx
参考はこちら:Ubuntu 12.10 で SCR3310-NTTCom が認識されない件 | hirooka.pro

※この記事を書いてる時の最新版 libccid1.4.18 は libc6 Ver.2.15以上を要求してくる。
もし、libc6のバージョンが低い場合は
How to upgrade glibc from version 2.13 to 2.15 on Debian? - Stack Overflow
に倣ってlibc6のバージョンをあげるか、
libccid1.4.8のインストールに切り替えるかする。
(今回は前者でやったが、めっちゃしんどいので次から後者にかえる)

◆ recpt1 録画ソフト
$ apt-get install mercurial
b25を入れる
$ apt-get install libpcsclite-dev
$ hg clone http://hg.honeyplanet.jp/pt1 -r b25 pt1_b25
$ cd pt1_b25/arib25/src
$ make
$ make install PREFIX=/usr
recpt1を入れる
$ hg clone http://hg.honeyplanet.jp/pt1
$ apt-get install autoconf automake
$ ./autogen.sh
$ ./configure --prefix=/usr --enable-b25
$ cp pt1_dev.h pt1_dev.h.org
pt1_dev.h内の/dev/pt1を/dev/pt3に置換
$ make
$ make install

◆chinachu
基本的にはサイト通り
ただし、そのままではユーザー"chinachu"がチューナーへアクセス出来ないので
$ usermod -G tape chinachu
を実行
 "tape"は
ls -al /dev/ | grep pt3
の実行結果からグループ名を見つけた
※明日回す
for var in `seq 10 80` ; do recpt1 --b25 --strip $var 5 /mnt/video/$var.ts;done
ls -la /mnt/video

Debian memo

LVMを使用
プリントサーバー out
SSHサーバー in

◆sudo できるようにする
アクセサリ -> システム〜で端末を起動
$visudo
root ALL(ALL=ALL) ALL
の下に
xxx ALL(ALL=ALL) ALL
を追加 (xxxはユーザー名)
ctrl+oで書き込み、ctrl+xで終了

◆vi を vim に変更する
そのままapt-getでvimを入れようとすると、インストールディスクを要求してくる
回避するには
/etc/apt/source.list

deb cdrom:[ ...
カラムをコメントアウト (先頭に#をつける)
$ apt-get install vim
~/.bashrc に
alias vi=vim
を追加して保存
$ source ~/.bashrc

◆ パスワード認証+rootでsshログインできるようにする
/etc/ssh/sshd.confを次のように編集
PermitRootLogin no -> PermitRootLogin yes
PubkeyAuthentication yes -> PubkeyAuthentication no
PasswordAuthentication no -> PasswordAuthentication yes
$ service ssh restart


◆キーボード配列間違えて指定した時対策
/etc/default/keyboard を変更する。

# XKBMODEL="pc105"
# XKBLAYOUT="us"
# XKBVARIANT=""
# XKBOPTIONS=""

XKBMODEL="jp106"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""

CentOS上でPARDISO5.0を使う

gcc版の話

blaslapackをインストールしておく必要がある。
$ yum install atlas atlas-devel lapack-devel blas-devel

ほか、gcc内部のライブラリをいくつかリンクする必要がある。
詳細はマニュアルに書いてある。
ここでも後でまとめる

Sublime Text 3 でshift-jisとかを扱う。

デフォルトではshift-jisとかeuc-jpが文字化けして対応不能。
shift-jisとか滅びればいいのに

そこで
ConvertToUTF8
Codecs33
をpackage controlから入れる。
後者はMacOS特有なので注意。