分解したら
先日DIAG6回点滅で沈黙した玄箱を停止して、ふたを開けてみた。
ホコリがスリットというスリットに詰まりまくっていた。
どうやら、ホコリのせいで換気ができず、筺体内部が過熱したせいのようだった。
とりあえず掃除をしたが、まだ組み立ててはない。まぁ、現在環境移植中だから、しばらくはこのままかも。
先日DIAG6回点滅で沈黙した玄箱を停止して、ふたを開けてみた。
ホコリがスリットというスリットに詰まりまくっていた。
どうやら、ホコリのせいで換気ができず、筺体内部が過熱したせいのようだった。
とりあえず掃除をしたが、まだ組み立ててはない。まぁ、現在環境移植中だから、しばらくはこのままかも。
自宅の初代玄箱を再起動しようとしたところ、いきなり「カチン」という音とともに電源が落ち、何とDIAGランプが点滅しだしてしまった。しかも6回点滅。
「こいつはやばそう」ということでググってみることに。すると「HDD異常」らしい。「やばそう」ではなくて「やばい」だった。
ちょうど2台目の玄箱PROに中身を移行させようかと思っていた矢先だったので、データサルベージができればよいのだが。
「HDDを十分冷却すれば元に戻ることもある」なんて情報もあるようだけど、とりあえずあとでHDDをはずしてみることにする。
久々の玄箱ネタがこれとは、トホホ....。
玄箱/Proをつつき始めて、ようやくDebian化にこぎつけた。実は、玄箱PROのDebian Etch化の手順を基にフルスクラッチビルドしたかったのだが、wgetのビルドがどうしてもできない。というわけなので、次のような作戦に打って出ることにした。というか、元ネタのシリアルコンソールなしにハックキットそのまんまなんだが(爆)。
ということなのだが、一応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にでもしておこうかな? 余裕があったら公開してもいいかも。
ちょっと寄り道して、Samba 3.0のSWATをSSL化するネタを公開してみる。ちなみに内部を LinkStation/玄箱 をハックしようの著者が製作されたハックキット 2.0alphaを使って、Vine Linux 3.1相当にしてある。
SWAT自体はinetdなんかのスーパーサーバを使うことが前提になっているので、daemontoolsとtcpserver(ucspi-tcp)+SSLパッチを使うことにする。で、それぞれをダウンロード。
daemontoolsとucspi-tcp(djb謹製アプリケーションはほぼすべてらしい)には、glibcのバージョンが2.3.1以上だと正常にコンパイルできないという不具合(というべきだろう)があるため、ucspi-tcp-0.88.errno.patchとdaemontools-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化された。これで野良にしても大丈夫...か?
玄箱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環境)を構築したいなぁ。
さまざまなところで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実行させればいいのでは、ことなのだが、今日は疲れたのでそれは次の日以降の宿題にすることにして、今日は寝ることにする。
う〜む、やっぱりRPM系のディストリビューションはよくわからん。ということなのでほとんど何もうごいていなかったこともあって、すっぱりDebianに戻した。というか、最初からディスクの切り直しになるんだけど。
Debianイメージは既に用意していたので、ディスクを初期化してファームウェアをインストールした後、そいつを改めてインストールするだけだったので、イージーに終わる。
ただ、去る2007年4月8日に4.0(etch)がリリースされたためか、apt-lineをstableにしてそのままアップグレードを行ってもエラーになる。アップグレードに挑戦しようかとも思ったが、カーネル回りのアップグレードも考慮しなければならないようなので、ちょいと危険か? ということで、ひとつ前(oldstableと言うそうな)のsargeにapt-lineをあわせてパッケージをアップデートしてみた。
システムの入れ換えが粗方終わったので、apt-getでプログラムのコンパイルに必要なパッケージを片っ端からインストールしていく。
というところで、作業はひと段落。次は何を入れようかな?
Vine 2.6への変更はスムーズに終わったので、ちょっと欲を出して3.1相当にしてみることにした。やり方自身はハックキットを Vine 3.1 にアップデートしようで作者自身が解説されているとおりにしただけなんだけど、一番の肝であるglibcのパッチあては、丸々半日かかった。
しかし、こんなにも時間がかかるとは思っていなかったけど、おかげで独自RPMの作り方が少し理解できたように思う。ただ、厄介なのがSPECファイル。どうやってあれを記述したものかと思っていたら、世の中には便利なものがありますな、その名もCheckInstall。普通のソースアーカイブから、半自動的にRPMやdebパッケージを生成する代物らしい。
こう書いてても、実はまだ使ったことがないので評価のしようがないんだけど、OpenLDAPが片がついたらちょっとつついてみようと思う。
いつの間にかDebian化していた玄箱のルートパーティションが満タンになっていたので、これを機に以前やりかけて止めてしまったVine Linux化をやってみた。ちょうど山下康成氏著の玄箱をハックしよう!を持っていたので、手順通りにやればすんなりできてしまった。
おかげでftpコマンドの使いかたとかを覚えたけど、Vine化した後いつも使っていたVimをインストールしようと思ってapt-cacheしてみたら、2.6相当ではjvim-3.0しかパッケージ登録されていない。むぅ、困ったぞ。
思い切って3.1相当へのアップグレードに挑戦してみるか?
ちなみにシステムを入れ替えたばかりなので、中にはほとんど何も走ってない。
玄箱のHDDも手狭になってきたので、思い切って入れ替えることにしてみた。Western Digital製のCaviar SE WD3200JBが約1万円で売られていたので、そいつをチョイス。NAS領域のデータをすべて退避させたあと、入れ替えにかかる。
中身のLinuxは、例によって玄箱うぉううぉう♪で配布されているDebianイメージを利用させてもらった。
作業そのものは手馴れたもので、ほんの1時間もかからずDebian化とベースディストリビューションのアップデートまで終了。とりあえず早くNASとして使えるようにしないと………。
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
最近のコメント