« 2007年5月 | トップページ | 2007年7月 »

2007年6月29日 (金)

Vista沈黙

 やっぱりというか、Vistaが沈黙してしまった。起動しようとすると、あの「死の青画面(Blue Screen Of Death)」になってしまう、というやつだ。なんのエラーかちゃんと検証したかったのだが、あまりに早く画面が消えてしまうので、原因が特定できないでいる。これじゃあいくらなんでもお手上げだ。

 まぁ、普通なら「こんなこともあろうかと」ってな感じでバックアップを書き戻して終わりなんだけど、「Complete PC バックアップ」でとったバックアップがうまく書き戻せない。うちはUltimateなので使えて当然、なはずなのだが。ローカルディスクではなく、USB接続のHDDにバックアップを作ったのがまずかったのだろうか?

 Complete PC 復元がUSB接続のHDDをちゃんと認識しないのでは、話にならない。しかたないので、一度Vistaを標準インストールし、Windows上から改めてComplete PC 復元を試みることにした。ちょうど、XPやServer 2003のASR復元みたいな感じだ。

 これを書いているまさに今、復元を試みているんだけどうまくいくんだろうか? Microsoft製のバックアップツールなんて使ったことがないもんで、とても不安。

| | コメント (0) | トラックバック (0)

2007年6月 6日 (水)

なんとかEtch化

 玄箱/Proをつつき始めて、ようやくDebian化にこぎつけた。実は、玄箱PROのDebian Etch化の手順を基にフルスクラッチビルドしたかったのだが、wgetのビルドがどうしてもできない。というわけなので、次のような作戦に打って出ることにした。というか、元ネタのシリアルコンソールなしにハックキットそのまんまなんだが(爆)。

  1. ターゲットにするHDDと作業用のHDDの2台とSerial ATA用のUSB接続ディスクケースを用意する。
  2. 付属CD-ROMのhddrootfs.tar.gzとファームウェア1.02のuImage.buffaloを使って、両方のディスクにHDDブート環境を作る。
  3. 作業用HDを玄箱に、ターゲットHDをディスクケースにそれぞれ入れ、ターゲットHDの第2領域をマウント、そこに書かれているファイルをすべて消去する。
  4. sushi-k日記2 >> KURO-BOX/PRO Debian化決定版?で公開されているDebian etchのルートイメージを、ターゲットHDの第2領域に展開する。
  5. ターゲットHDのetc以下を、自宅のネットワーク環境に合うようにカスタマイズする。
  6. 終わったらディスクを入れ替え、ターゲットHDで玄箱を起動する。

 ということなのだが、一応Debianが起動してくれた。あとはapt-getでアプリケーションをインストールするだけなのだが、apt-get updateを実行すると、GPG errorなんていわれる。この辺をググってみると、有効なGPG鍵がないことが原因らしいことが判明。あれ? etchって今年出たんじゃなかったっけ? と思ったんだが、apt-key listを実行すると、gpg: key 2D230C5F was created 1136285233 seconds in the future (time warp or clock problem)、だなんていってくる。

 clock problemぅ? もしやと思い、システムの時計をdateコマンドで表示させると、Thu Jan 1 09:25:24 JST 1970をさしている。そういえば時計合わせをしてなかったっけ。ということでntpdateを強制インストールして、ntpdate-debianでとりあえず時計あわせ。で、再度apt-get updateを実行すると、今度は何事もなかったかのようにapt-lineをあたってくれた。

 apt-getもちゃんと動くようになったので、これで煮るなり焼くなり好きにできるわけなんだけど、今日はこの状態でとりあえずやめておく。今度は、ディスクを入れ替えてこのルートイメージをtarballにでもしておこうかな? 余裕があったら公開してもいいかも。

| | コメント (0) | トラックバック (0)

2007年6月 5日 (火)

SWATをSSL化するネタ

 ちょっと寄り道して、Samba 3.0のSWATをSSL化するネタを公開してみる。ちなみに内部を LinkStation/玄箱 をハックしようの著者が製作されたハックキット 2.0alphaを使って、Vine Linux 3.1相当にしてある。

SWAT自体はinetdなんかのスーパーサーバを使うことが前提になっているので、daemontoolstcpserver(ucspi-tcp)+SSLパッチを使うことにする。で、それぞれをダウンロード。

 daemontoolsとucspi-tcp(djb謹製アプリケーションはほぼすべてらしい)には、glibcのバージョンが2.3.1以上だと正常にコンパイルできないという不具合(というべきだろう)があるため、ucspi-tcp-0.88.errno.patchdaemontools-0.76.errno.patch もダウンロードしておいた。それぞれにパッチを当て、コンパイル開始。

 daemontoolsは正常終了。起動も問題なし。で、ucspi-tcpなのだが、tcpserver SSL/TLS patchにはすでにerrnoのパッチが取り込まれていたので、SSLパッチだけ当ててmake。...ってエラーを吐いてとまる。パッチなしの状態だとmakeが普通に通るので、「もしかして?」ということでSSLパッチを当てた後、errnoパッチをリバースパッチとして当ててみた。すると正常終了。make setup checkも問題なし。なんだかなぁ。

 ucspi-tcp-0.88のディレクトリでmake certを実行して、SSLのサーバ証明書を生成する。ファイル名はcert.pemになってしまうが、別に問題はなかろう。

 このcert.pemをdaemontoolsのswat サービスディレクトリにコピーして、runを書く。こんな感じ。

  #!/bin/sh

  SAMBA_PREFIX=/usr/local/samba
  PATH=$PATH:$SAMBA_PREFIX/sbin:/$SAMBA_PREFIX/bin
  export PATH

  # tcpserver(8) environment
  # ACL ectry file
  ACLS=/usr/local/etc/acls/default.cdb
  # run as this user
  USER=root
  # my linstening address or host
  HOST=0
  # my linstening port or service name
  PORT=10901
  # run this program
  PROG=swat

  exec 2>&1
  exec tcpserver -vRHl0 -s -n ./cert.pem -x $ACLS \
      -u `id -u $USER` -g `id -g $USER` \
      $HOST $PORT $PROG

 自己証明書なので証明書を無条件で受け入れてくれないのだが、https://{玄箱のIPアドレス}:10901/で、ちゃんとSSL化された。これで野良にしても大丈夫...か?

| | コメント (0) | トラックバック (0)

2007年6月 4日 (月)

ディスクブートにしたが

 玄箱Proをディスクブートにしてみた。やり方は付属のCDなんかに掲載されているとおりなんだが、うまいこといかない。

 なんで? って疑問に思っていたんだが、玄箱Proの情報をいろいろググっていると、ファームウェアのバージョンが/etc/kurobox_releaseに書いているとのことなので、読んでみた。

  VERSION=1.02
  SUBVERSION=HDD 0.08
  PRODUCTID=0x00001003

 なんだ、1.02じゃん。これで初期ロットではないということが判明したので、CDのカーネルイメージが使えないことが判明した。ということで玄人志向からファームウェア書き換えキットをダウンロードして、こっちのuImage.buffaloを使ってみる。ディスクスライスを切りなおすので相当時間がかかるが、普通にディスクブート環境ができた。

 SMB環境はそのまま使えるので、ソースをWindowsから転送してアプリをコンパイル、といきたかったのだが、いろんなところでコンパイルエラーをはきまくるので、これでは使えない。

 今回は本格的にいじり倒すつもりだったので、玄箱Proを買った後すぐにシリアルコンソールキットのSCON-KIT/PROをオーダー。昨日それがついて早速取り付けた。

 これでシリアルコンソールが使えるようになったので、CDの製品仕様書と玄人志向公開のu-boot環境変数の初期値例を参考にFlashブート環境に書き戻すことにした。

 一応これで元に戻るには戻ったのだが、次はまともな開発環境(というかDebian環境)を構築したいなぁ。

| | コメント (0) | トラックバック (0)

2007年6月 1日 (金)

温度管理ネタを

 さまざまなところでhddtempを使った温度管理ネタが披露されているので、夏も近いことだしやってみることにした。

 よくあるRPMやdebを取得してインストール、というやつではなく、まじめに(?)ソースからビルドした。ソースは同プロジェクトのダウンロードページ(Download Area)から、hddtemp-0.3-beta15.tar.bz2を取得。

 tarballを展開して、まずINSTALLに目を通す。HDDのデータベースファイルが必要らしい。こいつもwgetで取得する。./configureを実行する際、データベースのパスを指定できるようだ。デフォルトでは/usr/share/misc/hddtemp.dbをサーチするようになっているんだが、インストールプリフィックスが/usr/localなので./configure --with-db-path=/usr/local/etc/hddtemp.dbで./configureを実行。忘れずに/usr/local/etcにデータベースファイルhddtemp.dbをコピーしておく。

 ということで、後は何の芸もなくmake; make installでインストールは一通り終了。hddtempは/usr/local/sbinにインストールされた。

 とりあえず温度を取得してみる。

  [root@pai root]# hddtemp /dev/hda
  /dev/hda: WDC WD3200JB-00KFA0: 39°C

 山下氏の解析結果によると、AVRマイコンへ送る情報でファンの回転速度を調整できる、ということなので、

  • まず現在の温度を取得し、
  • それが閾値以上であればファンを高速で回転させ、
  • 閾値以下になればファンの回転速度を下げる

 といったシェルスクリプトを書いてcron実行させればいいのでは、ことなのだが、今日は疲れたのでそれは次の日以降の宿題にすることにして、今日は寝ることにする。

| | コメント (0) | トラックバック (0)

« 2007年5月 | トップページ | 2007年7月 »