Recently in computer Category
Debianパッケージの作成プロセスを自動化するコマンドであるdpkg-buildpackageのメモ。dpkg-buildpackageは以下の手順でパッケージを作成する。
- 環境変数の準備。dpkg-architectureでBuild archやHost arch等を設定し、またCCFLAGS、CXXFLAGS、LDFLAGS等を設定
- build-dependencyとbuild-conflictsのチェック。(-d でスキップ)
- debian/rule clean (-nc でスキップ)
- dpkg-source (-b, -B, -A のいずれかが設定されているとスキップ)
- -b, -B, -Aオプションによって以下のいずれかに分岐
- debian/rules build (デフォルトまたは-b)
- debian/rules binary-arch (-B)
- debian/rules binary-indep (-A)
- dscファイルを署名 (-us でスキップ)
- dpkg-genchanges でchangesファイルを生成
- changesファイルを署名 (-uc でスキップ)
- もしも-tcが指定されていたら、debian/rules clean
-j で、並列に動かすCPUの数を指定することができる。はしょったところもあるので、dpkg-buildpackage(1)を確認のこと。
そんな必要がどこにあるのかといわれそうだが、今日届いたUPSが、運用中の古いTera Stationに対応していなかったのだ。なので停電のときくらいしかシャットダウンしないFreeBSDのホストに、Tera Stationを落とすrcスクリプトを書いた。
やったことは、Tera StationのWeb設定画面のHTMLを読んで、シャットダウンボタンを押した時のブラウザの要求をwgetで再現しているだけ。SERVERとADMIN_PASSWORDを変更すれば、普通に使えるだろう。試験したわけではないがLinuxでも動くはずだ。
#!/bin/sh
#
# rc script to shutdown Tera Station by knakao
#
#REQUIRE LOGIN
SERVER=fileserver #ファイルサーバーのホスト名
ADMIN_PASSWD=password #adminのパスワード
URL="http://$SERVER/cgi-bin/ts.cgi"
POST="page=maintenance&mode=shutdown&type=setup"
USER=admin
WGET=/usr/local/bin/wget
ts_down()
{
OPT="--http-user=$USER --http-password=$ADMIN_PASSWD --post-data=$POST"
OPT="$OPT -o /dev/null -q -T 5"
URL="$URL?$POST"
$WGET $OPT $URL
}
case $1 in
start)
;;
stop)
ts_down;
;;
esac
2009-02-17 追記
私はLinuxユーザなのでついwgetを使ってしまうが、FreeBSDな方々はcurlを使うのかな。ということで後日curlバージョンを。って必要ないか。
netatalk 2.0.5rc1で、Time Machineをサポートするようになったので、MacBook ProのディスクをTime Machineでバックアップするようにしてみた。
今回使用したLinux BoxのOSはLinuxで、Ubuntu 8.04LTSを使用した。ちなみにUbuntuのデスクトップ版は、ログインしたときしかネットワークに繋がないのでサーバ用途には使えない。迷わずServer Editionを使用のこと。必要なのはavahi-daemon とnetatalk。ただし2009年9月23日現在、Ubuntu、Debian共にTime Machineをサポートしているnetatalk 2.0.5rcはパッケージになっていないので、tarballからコンパイルする。まずはavahi-daemonとnetatalkのコンパイルに必要なパッケージをインストール
$ sudo aptitude install avahi-daemon cracklib2-dev fakeroot libssl-dev
$ sudo apt-get build-dep netatalk
sourceforgeからnetatalk 2.0.5rc1をダウンロードして、make install。将来、パッケージ化されることを期待して、/opt/netatalk にインストールすることにする。
$ tar jxvf netatalk-2.0.5rc1.tar.bz2
$ cd netatalk-2.0.5rc
$ ./configure --prefix=/opt/netatalk
$ make
$ sudo make install
まずはnetatalkの設定。/opt/netatalk/etc/netatalk/ にある、afpd.conf と AppleVolumes.default を編集する。afpd.confは、デフォルトのままでOKだったので、編集しないで良かった。ホームディレクトリにTimeMachineというディレクトリを作り、そこをTime Machine用のディレクトリとすることにすると、AppleVolumes.defaultは以下のようになる。
~/TimeMachine "Time Machine" options:usedots,upriv,tm
次にavahi-daemonの設定。/etc/avahi/services に、afpd.service というファイルを作り、以下の内容にする。
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>homefs</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>
このファイルのname要素は、Finderに表示されるサーバー名になる。最後にafpd, と avahi-daemon を起動。の前に、afpd の rcスクリプトを書いておく。
2009-09-26 追記
HAT氏のコメントによると、rcスクリプトは自動生成されるようだ。デフォルトでは /etc/init.dにインストールされてしまう。まぁデフォルトでもよいのだが、最後まで/optにこだわることにする。ここで、--enable-debian のオプションを付けて configureを実行し、initscript のテンプレートが格納されているディレクトリに移動し、rcスクリプトを生成する。すなわち distrib/initscript に移動しmake する。HATさん、有用なコメントありがとうございました。
$ ./configure --prefix=/opt/netatalk --enable-debian
$ cd distrib/initscripts
$ make
生成されたrcスクリプト atalk を/opt/netatalk/etc/init.d にコピー
$ sudo mkdir -p /opt/netatalk/etc/init.d
$ sudo cp atalk /opt/netatalk/etc/init.d
そして起動。
$ sudo /opt/netatalk/etc/init.d/netatalk start
$ sudo /etc/init.d/avahi-daemon start
Mac 側でFinderを立ち上げ、[Command] + K を押しネットワークドライブをマウントする。アドレスは afp://サーバのホスト名。ユーザ名とパスワードで認証したら、Time Machineという共有ディレクトリが見えているはずだ。そして Mac で Time Machine を設定すればよい。
この記事は、HowTo: Make Ubuntu A Perfect Mac File Server And Time Machine Volume [Update6]、およびTime Machine with Netatalkを参考にした。
このファイルサーバのために、新たにAtom 330を使った小さいLinux Boxを新調した。1TBのディスク2台でRAID 1のアレイを構築。なんかえらい安かった。秋葉原のドスパラですべてのパーツを調達したら3万円ちょっとだった。普通にNASを買ってもそのくらいしそうだし、Mediatombを入れてメディアサーバにできたり、常時稼働するLinux BoxとしてIPv6だなんだで、いろいろごにょごにょできる。
そういえば一ヶ月ほど、記事を書いていなかった。この間、海外出張したり色々あったが、まぁ気が向いたらおいおい書いていくことにする。
ひょんなことで、ボイスレコーダで録音した音声をオーディオCDに焼く必要があったので、そのメモ。使用したボイスレコーダは、Olympus Voice-Trec DS-50。これはUSBでPCに接続するとUSBストレージに見えて WMAフォーマットで、録音した音声をファイルとして取り込む事ができる。 さてこれをどうやってオーディオCDにするか。まずWMAをWAVファイルに変換する。mplayerを使う。
% mplayer -ao pcm sound.wma
こうするとsound.wmaというファイルがWAVに変換されて、audiodump.wavというファイルに保存される。次にCDオーディオファイル形式に変換する。ここではsoxを使う。
% sox sound.wav sound.cdr
こうすると、sound.wavが、オーディオCD形式に変換され、sound.cdrというファイルに保存される。これをcdrecordで焼く。全てのトラックのcdrファイルを用意してrootになり、
# cdrecord -audio -dev=.... *.cdr
とやれば良い。-devオプションは、各自の環境で。おそらく
# cdrecord -dev=help
とやれば、-devオプションに必要な情報が得られるだろう。 私が使用したmacbook (OSX tiger)では
# cdrecord -audio -dev=IODVDSercices/0 -driveropts=burnfree *.cdr
だった。cdrecordはwavを喰わせてもよさそうなので、soxでCDR形式にする必要はないかもしれない。オーディオ用のデジタルレコーダならもっと簡単だろう。

