Recently in computer Category

 Debianパッケージの作成プロセスを自動化するコマンドであるdpkg-buildpackageのメモ。dpkg-buildpackageは以下の手順でパッケージを作成する。

  1. 環境変数の準備。dpkg-architectureでBuild archやHost arch等を設定し、またCCFLAGS、CXXFLAGS、LDFLAGS等を設定
  2. build-dependencyとbuild-conflictsのチェック。(-d でスキップ)
  3. debian/rule clean (-nc でスキップ)
  4. dpkg-source (-b, -B, -A のいずれかが設定されているとスキップ)
  5. -b, -B, -Aオプションによって以下のいずれかに分岐
    • debian/rules build (デフォルトまたは-b)
    • debian/rules binary-arch (-B)
    • debian/rules binary-indep (-A)
  6. dscファイルを署名 (-us でスキップ)
  7. dpkg-genchanges でchangesファイルを生成
  8. changesファイルを署名 (-uc でスキップ)
  9. もしも-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だなんだで、いろいろごにょごにょできる。

 そういえば一ヶ月ほど、記事を書いていなかった。この間、海外出張したり色々あったが、まぁ気が向いたらおいおい書いていくことにする。

PHOTO: The display of FT-817

 ひょんなことで、ボイスレコーダで録音した音声をオーディオ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形式にする必要はないかもしれない。オーディオ用のデジタルレコーダならもっと簡単だろう。

参考文献

CD-Writing HOWTO

About Me

中尾 圭佐(chomy)
千葉県船橋市在住のモノクロ写真に目覚めた研究者。
Twitter ID: jm6xxu
Skype: chomy

My Tweets

jm6xxu: Yesterday, I joined the summer school at Tsukuba. I could join only one day but i feel it is wonderful to know not knowing.

jm6xxu: VHDLは院生の時に書いたなぁ。簡単なロジックだったけど。最近は、Cからも論理合成できるらしい。RT @habutarou: HDLも大きく2種類あったな。おいらはVHDLを習った。なつかしい… RT @jm6xxu ま、その前にVHDLを思い出さなきゃいけないがな。

jm6xxu: ま、その前にVHDLを思い出さなきゃいけないがな。と思ったら、emacsにverilogモードなんてものがある。debパッケージにもなってるし、Verilogにするか。

jm6xxu: 9月なので本気出す。本格的にFPGAでデバイスを作ることにする。純正ダウンロードケーブルもSuzakuも注文したし、WebPack ISEもダウンロード中。再来週には無料セミナーにも行く。

jm6xxu: 四次元空間はドラえもんのらポケットの中の世界だって? 30点。パイロットは6次元で航空機を制御してる。所詮地ベタて満足してるヤツは自由度がもう一つあるコトを死ぬまで気づかないものさ

About this Archive

This page is a archive of recent entries in the computer category.

book review is the previous category.

diary is the next category.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.261