Monday, June 29, 2009

Computer::KUROBOX - VPNサーバ構築開始

朝飯食ってから就寝する生活を続けていたせいか、
口の中が風邪を引いたときみたいな感じで乾いています、最近。

さて、いよいようちのKUROBOXにVPNサーバを走らせてやろうとおもい、
カーネルの再構築を行ってみました。
今度は.configのCONFIG_TUNをYにして再コンパイルです。
こちら(Buffalo @ NAS-Central)に書いてある手順を若干はしょり、
make uImageを実行してできたイメージでは起動できず。
ちゃんと書いてあるとおりzImageをuImageに変換したら起動できました。
うーん、以前再構築したときそんな手順ふんだんだっけか。

再構築したカーネルで起動させる前に、tunデバイスを作っちゃいました。
こちらに記載してあるとおりに、mknodコマンドでtunを作ります。

ここまででTUN/TAPサポートを有効にできたのですが、
VPN接続の形態をどうするか、です。

自宅のネットワークに参加させるかたちにしたいので、
そうするとブリッジ接続だよなぁ・・・という話になりました。
ん?そうするとNICが二枚いるような。
KUROBOXにはもともとNICはひとつしか載っていません。
あー追加か。
ということで、USBハブとUSB接続のネットワークアダプタをAmazonで発注。
ネットワークアダプタはもちろん1000BASE-T対応。
せっかくネットワークにつながっている機器全部がジャンボフレームに対応してるんですから。
1000BASE-Tにしないともったいない。

あとできることとして、bridge-utilsをインストールしました。
ソースをダウンロードしてきて、configureかと思いきや、
autoconfなのですねー。
autoconfを実行するも、autom4teがないとかいわれます。
いや、単にautom4teが呼び出してるperlのパスが違うだけでしたが。
あとautom4teで呼び出してるm4のパスも違っていました。
/usr/bin/perl => /usr/bin/local/perlに書き直すだけでOKです。
m4も同様。

あとはconfigure & makeで終了。

次は発注したものが届いてから、VPNサーバ構築再開ですね。

Sunday, June 21, 2009

Work::SoftwareDevelopment - 社長の日本語が最近いよいよヤバいですよ


最近社長の日本語がますますやばい気が。
何かというと端折りすぎな感があります。
ま、それで通じると思ってらっしゃるのでしょうが、
私の持てる背景知識を総動員してやっとこさ理解できる程度です。
ほかのメンバーはかなりちんぷんかんぷんっぽいです。
ちょっと意地悪して、社長と会話していて困っている後輩を放置してみました。
会話がまったく進まなくなってきたときに、助け舟を出してあげましたが。
開発にかかわるなら、もうちょいきちんと話をしてほしいなー
と思いつつ、これが普通なんでしょうねー社会ってもんは。。。
とか思ったりしてしまいます。

Saturday, June 20, 2009

Work::SoftwareDevelopment - 相当負荷がかかってたようです


タブレットを買ったので、日常の一コマを描いてみました。

私が受け持ってる三つのプロジェクトのうち、
二つに参加している開発メンバーの後輩君。
C#をやったことがないってことで、日々ひぃひぃ言ってます。
ある程度の習熟レベルになるまではひぃひぃ言い続けるんでしょうなぁ。

今日メールで血尿が出たって言ってたんで、
ちょっと負荷をかけすぎてたのかもしれません(汗
まー先日学会の原稿の締め切りでして、
そのまま休む暇もなく開発開発なので、
予想以上にストレスたまってたのかも。
血尿の原因がストレスって決まったわけじゃないのであれですが。
(今日検査に行ったようです。結果はまだ聞いてません。)

もうちょい余裕が持てるようなスケジューリングにしてあげようかな
とか思いました。

Thursday, June 18, 2009

Computer::KUROBOX - DNSサーバ(続)

何か数分おきにnamedが死ぬー、なんでやー、とわめいていました。
あれこれいじくった結果、/etc/named.confのrecursionをnoにすればOKでした。

yesにすれば、再帰的な問い合わせをする。
ようは外部DNSの問い合わせ結果をキャッシュしておいて、
そのキャッシュから検索してくることで外部DNSとの通信を減らすそうで。
http://www.ipa.go.jp/security/awareness/administrator/secure-web/chap4/4_bind.html

ん?てことはキャッシュの更新に失敗していたとか?
でも書き込み権限あるしなぁ。

まぁ目的が内部ネットワークの名前解決をやりたかったので、
別にキャッシュが働かなくても今までとかわらない。

内部向けDNSサーバもたったので、やっぱりぼちぼちVPNサーバでしょうか。

Tuesday, June 16, 2009

Computer::KUROBOX - DNSサーバ

TinyDNSのほうが入れにくかったという。
普通にBINDが入りました。

時間が少々たってしまっているので、
本当にこれが正しい手順かどうかは不明ですが。
以前、BINDのソースを落としてきてconfigure、make、make installをしたんです。
で、今日なんとなーくWebを巡回していて、BINDでmake testをして・・・
という文を見かけました。
make testあるのかー、じゃやってみようかと思い、実行してみたら
ことごとくtestに失敗していました。
えぇぇぇと思いながら何気なくmakeを実行してみたら
何かゴリゴリmakeし始めてます。

以前makeしたとき、makeし切れていなかった?

よくわかりませんが、とにかくmakeを実行してみたら
最後まで実行できました。

あとはこちらとかを参考にしながら
せっせせっせと設定ファイルを作成。
あ、上記サイトを流れに沿って作ったら途中で失敗しました、起動に。
こうやったら失敗しましたというのも記載されているという。

スタートアップスクリプトも掲載してくださっているので、
/etc/init.d以下に作成して、/etc/init.d/rcSに、起動時に作成したスクリプトを
呼び出すような記述をします。

digコマンドやらnamed-checkconfやらnamed-checkzoneやらで動作確認。
問題なしです。
別のPCから名前解決できるかどうか確認してみてもばっちり。

素の玄箱から育ててきていますが、ついにDNSサーバも導入することができました。
・・・そろそろホントにメモリがやばいかな?
空きメモリあとだいたい5M。
とにかく、やりたかった内向きDNSサーバの構築もこれで完了です。

あと入れたいのはVPNサーバですかね。
一応今仕事では立てなくてもよい体制を作ったので、
VPNサーバを立てることは急務ではないんですよね。
SSHが使えれば、まぁだいたいやりたいこともまかなえますし。

ほかには以前チャレンジして挫折したメールサーバ構築ですかね。
でも今以上にメールアカウント増やしても使い道が・・・
BSDマニアなうちの准教授が、こういうのって立てること自体が楽しいよね~と
おっしゃってました。
また確かに立てること自体は面白いんですが。
立てるからには何かしら役に立てたい。


ほかにやりたいことっていえば、
研究室のマシンやうちの玄箱が死んだときの予備マシンの構築ですね。
でもお金が・・・(汗

ほかには・・・もう一台玄箱購入してHeartbeat導入とかw
もともとディスクレスなうちの玄箱を冗長化て。
耐故障性どんだけたかいねんっていう。

でもやるにしてもNICを増やさないといけないんですよね・・・
次は冗長化でも試してみましょうか。
お金に余裕ができたら、ですけどね。

Work::Discussion - 社長の書き込み

話の流れをまるで把握していない、質問の意図をまるで理解していない、
日本語の誤字脱字は日常茶飯事、自分しかわからない略語・・・

そんな書き込みを見ていちいちいらだってる私は
きっとまだまだ若造なんでしょうね。

立派な経営者目指して、精進しますです、はい。

Friday, June 12, 2009

Computer::Availability - アベイラビリティを高くしたいんですが

酒好きなのに、焼酎が苦手だったので、飲めるようになりたいー
ってことで今晩は焼酎を飲んでおります。

と、関係のない話で書き始めてみましたが。
私が管轄のサーバのアベイラビリティを高くしたいという欲求が高まってまいりしまして。

いや、一昨日開発用サーバが一台お亡くなりになったんですよね。
思うに電源かマザーボードが逝ったんだと思います。
IDEのハードディスクにUSBで接続できるキットを使い、
何とかデータはサルベージしました。
ハードディスクが生きてるんで、たぶん上記のどちらかじゃないかなぁと
思うわけです。

お亡くなりになったサーバ、こいつはWindows XPが入っていて、
SQL ServerとIISのFTPが動いていたのです。
先代の開発者の方が、こやつら依存のシステムを書いていたのです。
私はLinuxのほうが得意なのになぁ・・・と思いつつも、
顧客が病院なので、Windows系がいいのかなぁとも思いつつ。
まぁWindowsのほうが安心感があるといえばありますし、
顧客が使用しているOSが基本的にWindowsのみというのもあります。

Linux入る余地なーしですはい。

まぁそこを嘆いていても仕方ないので。
おかげでWindows Serverに触れる機会もできましたし。

話を戻しますと、サーバがお亡くなりになったので、
何とか早急に復旧しないことには開発が滞ります。
いやまぁ滞るというほどでもないかもしれませんけど。
というのも、このサーバにかかわっているメンバーが
このプロジェクトに入りたてなので、一日単位の開発効率はまぁまだ緩やかなものです。
とはいえ納期は決まっているので、
納期のことを考えると一日でもおしい。
必死こいて復旧しましたよ、ええ。

代替機が用意できない
(というかバイト用に研究室のマシンを拝借するのは少々気が引ける)ので
仮想マシンでサーバを構築することにしました。
ま、その仮想マシンはどこで走ってるんだってい(ry

なんとか復旧できましたが、私の開発時間がそがれたという事実が残ります。
あぁサーバ停止時間なくしたい!!という欲求が沸きます。
別プロジェクトでサーバの冗長化は経験してるので、
冗長化の手段は知っています。
・・・それを研究室でできるか?
いや、バイト用マシンを増設するのはだめでしょう。
研究目的ならともかく。

じゃあ自宅?
部屋の気温と電気代があがる・・・
いや、電気代は今のプロジェクトの報酬でまかなうか?
どうせ今の流れでいくと我が家は事務所化しそうなので。
騒音が増えるのはいやなので、マシンのチョイスがむずいところですね。

Friday, June 05, 2009

Computer::Network - VPNもうちょいがんばってみる?

自宅にVPN張って、大学のPCをVPNに接続する。
で、VPNに参加してきてる大学のPCへ自宅からリモートログインして
TeXで論文を書きまくる。
研究室へ行かなくてもよい図ができあがり!

・・・っていうのはだめなんでしょうね、
セキュリティポリシー的に。

いや、研究室が最近騒がしすぎて、
部屋にいたくねーと思うときがほんと多くて。
たまに私たちも騒がしくするときがあるので、
あんま人のこと言えないんです。

まーうちの研究室のネットワークを牛耳っているのは私なので、
上記のVPNうんぬんかんぬんはやれるんですが、
学科のポリシーとしてはアウトなでしょうねぇ。

そこまでやらなくとも、自宅のサーバたちにはつなぎたい。
OneNoteのファイルとかはバックアップとったり、
私のノートPCと同期を取りやすくする意味合いでもつなぎたいですね。

また近いうちに、KUROBOX-PROにOpenVPNを入れる挑戦をしてみましょうか。
カーネルの再構築が必要くさいので、
やな予感するんですよねー。
先日、なんだったっけかな・・・
なんか再構築してみて、そのカーネルでのブートに失敗して。
シリアルコンソールで動作をのぞいてなかったので、
何でブートに失敗したのかさっぱりわからないままですが。
あぁもっと正確にカーネル再構築手順を記録しておけばよかったと
いまさら後悔。

KUROBOX-PROが死亡した時のプランも想定しておかないとまずーですよね。
構築手順をなるだけ明確にドキュメント化して・・・
って段々のりが仕事調になってきてたりして。
ハードディスクはRAIDだから大丈夫だとして。
ソフト開発プロジェクトを二つ背負ってますから、うちのKUROBOXは。
・・・あれ、冗長化したほうがいいのか?w
私の部屋の温度がどんどん上がっていきそうな悪寒。

Wednesday, June 03, 2009

Computer::VMware - Vista on VMwareでワイドな解像度








どうやって1600x900の解像度にするんだろう?と思ってたんですが、
Vistaのレジストリエディタで
上記のキャプチャ画像のキーとバイナリ値を追加するとOKでした。
Linux上でVistaが走って、しかも解像度も適切に設定でき、
うっはうはですね。

1600x900の解像度でMS Office Project使うとすっごい気持ちいいですね。

Computer::Network - WZR-HP-G300NHでVPNやりたかったけど

BUFFALOのWZR-HP-G300NHでVPNが一応できるにはできたんですが、
VPNで接続した状態ではポート変換が無効にならないんですね。
Amazonのレビューにも書いてあります。
私が発注したときには書いてあったっけか。
とかくあまり評判を調べずに買ってしまったので、
若干後悔。

仕方ないので、研究室のマシンから自宅のKUROBOXに対してfuseのsshfsを使って
マウントするようにしました。
研究室のマシンとKUROBOXに対してsshのトンネルを掘ろうかと思ったんですけど
80はうまくいきました。
445、139がうまくいかず。
うーん、何でなんだろう。何かまずったかな。

とりあえず研究室のマシンにOneNoteのファイルをKUROBOXにsshfs経由でコピーさせて、
KUROBOXにNASへバックアップをとらせてます。cronで。
VPNを張ることができない状態になったので、
開発メンバーサイドからすればわずらわしい操作が一個減りました。
PC起動時にVPN接続しなくてよいんですから。


WZR-HP-G300NHの評判を調べてみたところ、
高性能だけど不具合が大量の様子ですね。
ファームウェアのアップデートに期待です。
アップデートでVPN利用時にはポート変換を無効にする機能が搭載されなかったら、
私としてはルータが一個無駄になってしまいます
(古いルータを置き換えるしかなくなり、古いのが無駄になります)。

VPNがまともに使えるようになるのはBUFFALOさんしだいなので
VPNには過度の期待はせず。
なんかルータの面白い使い道ないかなぁ。
無駄にネットワークが二つある我が家w

WOLが使えるので、Linux機を置いて、研究用マシンを作るとおもろいかなぁと
考えています。
うるさいマシンを置いても、普段は電源を切っておけばいいんですから。
使いたいときは、外部ネットワークから起動させて、リモートログイン。

最近研究室内の人口密度があがりやすいので、
自宅でも研究やれたらなー、なんて。
研究のデータを、
研究室のネットワーク外に置くのはちょっと気持ち悪いですけどね。

Tuesday, June 02, 2009

Computer::KUROBOX-PRO - cronで定期バックアップ

ここのブログとソフト開発でのソースコードバックアップをかねて、
crontabを書いてみることにしました。
デフォルトではcrontabが書けないみたいなので、
http://www.asahi-net.or.jp/~EA7K-SMMR/kurobox.htm
を参考に設定してみました。

mkdir -p /etc/cron/crontabs

をやらんといかんのですね。
で、上記のを参考にバックアップスクリプト書いてたんですが、
なんかdate -d がうまく動きません。
仕方ないのでPerlで日付文字列を生成するようにして、
tar+gzで必要なディレクトリを固めてNASにおくようにしました。
外部のサーバにあるsvnリポジトリを定期的にtarで固めて、
wgetでKUROBOX-PROに落としてくる。
その二時間後ぐらいにでもRAIDのNASに移動させてやるかなーと考えています。
もちろん外部のサーバにはKUROBOX-PROからしかアクセスできないよう
アクセス制限かけてます。
(開発環境用ネットワークからもアクセス可能にしてますけどね)
OneNoteのファイルもKUROBOX-PROにおいてるので、
それもtarで固めてます。

外部においてるサーバ、RAID構成にしたいんですが、
買い替え要求出したら許可下りなかったんでね。。。
いや、必要性を理解してもらえなかっただけなのかも。
今日話をしてたら、別に金欠ではないらしいので。
ソースコードとデータベースの安全性は、うちのKUROBOXに任せるとして。
アベイラビリティは知らんよーほんと。

しかしながら、PPTPサーバ立てられるBUFFALOのルータとRAID USBディスク、
KUROBOX-PRO、RAID NASディスクのコンボはすごいです。
素のKUROBOX-PROからいろいろ弄繰り回しているので、
いろいろ不便はありますけどね。

Tuesday, May 26, 2009

Computer::Network - ファイアウォールを越えてファイルサーバにアクセスしたい

ファイアウォールを越えてファイルサーバにアクセスしたいなぁ
と考えると夜も眠れない日々が続いています。

sshクライアントを使ったポートフォワーディングでトンネル掘って、
自宅のファイルサーバにつなごうとしたのですがうまくいかず。
というのも、クライアントがvistaだとうまくいかないようです。
というかうまくいかないのです。

443とか139番ポートを占領しちゃってるようで、
自宅のSambaサーバにアクセスできません。
vista、嫌いじゃないんですけどファッキン。

そこで、方針を変えてVPNを構築しよう!と思い、
KUROBOX-PROにOpenVPNを仕込むことにしました。
BusyBox搭載で、素の状態からこつこつと育てている私の玄箱くんは
KernelでTUNとかTAPをサポートしていませんでした。
CIFSを有効にしたときみたいに、有効にしてリビルドするかー
と思ったのですが、出来上がったカーネルイメージでは動作しませんでした。

うむむ、何かミスったんかなぁ・・・
と一瞬だけ悩んでそっこうであきらめました(笑
あきらめることに踏ん切りがついた理由は二つありまして、
ひとつは、すでにいろいろプログラムを走らせている玄箱に、
VPNサーバとか立てるのも何か気持ち悪いというのがありました。
(今のところは、まだスワップが発生してないですけどね)

もうひとつは、
うちの開発チームで私の自宅ファイルサーバのうちのひとつを
使いたいと思ってたので、VPNサーバ立てるようだったら
自宅の中でネットワークを二つに分離したいというのがありました。
VPNで自宅に入ってこられて、私の遊び用マシンとか遊び用ファイルサーバを
覗き見られるのはちょっとアレですし。
二つに分離するっていうとちょっと違うのですが、
正確にはモデムにぶら下がっているネットワークに対して
また違うネットワークをぶら下げます。
一番奥のネットワークが私のプライベート領域。

あれやこれや夜な夜な考えてたのですが、
結局PPTPサーバ機能がついたルータを購入することにしました。
まさか自宅に二台のルータが設置されることになろうとは。

Monday, May 18, 2009

Computer::KUROBOX-PRO - 外付けRAIDディスクのフォーマット

前回の記事からちょこちょこ、USB接続の外付けRAIDディスクの話をしておりますが、
これも実はフォーマットするときにちょっとどきどきだったのです。
やはりこれも中でLinuxが走っているんでしょうか。
そこらへんはわからんのですけど、
RAID0やらRAID1やら、RAID無効やらにするにはWindows側からやりざるを得ない。
BUFFALOが提供する(ディスク購入とともについてくる)アプリケーションを使って
RAIDのモードを切り替えないといけない。
ちなみに私が今回購入したのはBUFFALOのHD-W1.0TIU2/R1です。
開封後に早速RAID1に変更して、KUROBOX-PROに接続。
fdiskで中身を見てみると、なにやらsdb1とsdb5が見えます。
sdb1はパーティションタイプがW95 Ext'd(LBA)、sdb5がW95 FAT32。
・・・なぜ割れている・・・

っていうかExt'dって何?とか思いつつ。
こ、これ消していいんか?
Linuxパーティションにしちゃってええんか?
と思ってWebで情報を集めるものの、ext3でフォーマットしました!
みたいな情報はあまり集まらず。
以前、ext3でフォーマットできたよーとかいう情報をちらっと見たことがあったので、
このディスクを購入しているわけです。

ま、おかしくなってもどーにかなるだろう、と思い、
パーティションテーブルをまっさらにしてLinuxパーティションを作成しました。
まぁよくよく見てみたらトータルで1TBのこのディスクが
500GBで認識されているので、KUROBOX-PROからはRAIDかどうかは見えていないようです。
RAID関係の処理は、この外付けディスクの中で完結しているようなので、
さくっとLinuxパーティションを作成、ext3でフォーマットしておきました。
これで私の正面には、
USB接続のRAIDディスク、KURBOX-PRO、NASのRAIDディスクが並ぶことになりました。

Computer::KUROBOX-PRO - swapファイルを作っておこう

KUROBOX-PROのメモリがいっぱいいっぱいになったことは(おそらく)ないんですが、
メモリが小さいのは事実なわけです。
ということで、スワップ領域を作ります。

/home以下はUSB接続の外付けハードディスク(BUFFALOのRAID1ディスク)なので、

dd if=/dev/zero of=/home/sys/swap bs=1024 count=131072

とやってスワップファイルを作ります(ちなみにこちらを参考にやってました)
次に

swapon /home/sys/swap

とやればスワップが有効になります。
ブートごとに有効にしてほしいので、/etc/fstabに

/home/sys/swap swap swap defaults

と書いておきます。
今回の場合ですと128MBのスワップ領域が確保されたことになります。
スワップアウトが発生するようなことをやるのだろうか。
でもスワップ作る前にfreeで確認したら残り2MBくらいしか空きメモリなかったし。
あれこれKUROBOXを使うなら、確保しといたほうがいいのかもしれませんね。

Sunday, May 17, 2009

Computer::KUROBOX-PRO - いまさらカーネルの再構築について書いてみる

えー、もうほとんど二ヶ月ちかく前の話になるので、
結構忘れてきちゃってます。
なので、覚えている範囲でちょこちょこと書いておこうと思います。

まず私のやりたかったことは、

・ハードディスクレスでKUROBOX-PROを動かす
・カーネルのCIFSサポートを有効にする
・Postfix/Dovecotを走らせる
・このサイトをKUROBOX-PROで運営

です。結論から書きますと、Postfix/Dovecotはあきらめました(笑
狭いディスクスペースをNASでまかなおうとしたのですが、
パーミッションがどうしてもnobodyになる。
これがPostfix/Dovecotをインストールする際の弊害になってました。
インストール作業を進めると、いろいろエラーをはいてくれるので。

最初にやりたかったハードディスクレスですが、
ようはフラッシュメモリからブートできるようにしたい、というお話。
エレキジャックさんのところを参考にしながらすすめていきました。
(私はDebian化はしてないので)
フラッシュメモリからのブートにはシリアルコンソールケーブルが必要で、
普通に玄人志向のものを購入してもよかったのですが、
いや、ここは自作だろうということで自作しました。
コネクタ部はこちらを参考にしながら、
シリアル・USB変換モジュールにはFT232RLを秋月で購入しました。
ドライバとかが必要なのですが、モジュールの説明書とこちらを参考にしながらPCのセットアップも行いました。
コネクタ部の作成についてですが、誤ってUSBコネクタメスBを購入してしまい、
金具部抽出に猛烈に苦戦しました。
あとはユニバーサル基盤を加工して、コネクタの土台を作成。
(ガラスエポキシは加工が難しい・怪我しやすいそうなので避けました。)
金具、ケーブル、基板を半田付けし、その上からホットボンドで保護。
一応これで完成です。
KUROBOX-PROの底にある、何かはまりそうな穴にブスっとさして使います。
なんとこのコネクタ。
押し込みきると導通しなくなるという(爆
うまい位置で押し込むのをとめないと、うまく通信できません。
自作感満載ですね。

さて、これでKUROBOXとシリアル通信ができるようになったわけです
(通信するときには、ボーレートを115200にすることを忘れずに。。。)。
次にUSBフラッシュからの起動ですが、
これはハードディスクブートのセットアップ手順と同じで、
気をつけるべきはu-boot環境変数。
エレキジャックさんとこでも書かれていますが、
rootreadyを書いておかないとうまくブートできません。

2GBのフラッシュメモリを用意して、
フラッシュメモリからブートできるようにセットアップしていきます。
ここらへんの作業はごちゃごちゃやってて記憶が薄いのではしょります。
あーでもエレキジャックさんとこはDebian化してるのが前提で、
私は最初っから入っているLinuxを利用。
この、フラッシュメモリからのブートでも何か引っかかったような・・・
すいません、記憶があやふやです。

フラッシュメモリからブートできるようにしたら、
次はカーネルのCIFSサポート有効化です。
これがホント悩みました。
Debian化だのGentoo化だの、Fedora化だのしていれば楽勝だったんでしょうけど。
なんせKUROBOX付属の開発環境ではカーネルの再構築ができない。
ドキュメントにのっていたクロスコンパイル環境を構築しても
何か変なのです。
運よく起動しても、pingが返ってきたり来なかったりという現象に遭遇。
だ、だれか素の状態のLinuxでカーネルを再構築している人いませんかぁぁぁ
と探しまくってたら、まぁクロスコンパイル環境を構築している人自体少ない。
んなことせずに、とっととDebian化しろ、って話でしょうか。
いや、屈しないよ私は!と探しに探したところ。
BUFFALOのNASをハックしよう!というサイトでしょうか。
海外サイトですが、こちら(Buffalo @ NAS-Central)にクロスコンパイル環境の構築方法が記載されていました。
クロスコンパイル環境を構築するOSは、
私のWindowsマシン上でVMware Playerを使って走らせたFedoraに構築しました。
FedoraはWeb上にあった仮想マシンイメージを使ってます。
(ここらへんの話はhttp://www.still-ai.net/blog/2009/02/computerkurobox-pro.htmlでも書きました)
このFedora上に、上記のクロスコンパイル環境を構築。
devioがFedoraに入っていなかったので、Webから適当に探してきてインストール。
あとはCIFSサポートを有効にして、
Buffalo @ NAS-Centralに掲載されている手順でビルドすればOKです。
(追記:エレキジャックさんとこに記載のとおり,カーネルにパッチを当てないと
 コンパイルできなかったことを忘れてました)

で、ですよ。
ちょいちょいカーネルをビルドしては起動を試していては
フラッシュメモリの寿命を縮めていくので気持ちが悪い
(知れてるかもしれませんけど)。
TFTP経由でカーネルイメージをダウンロードしてきてブートですよここで。
TFTPDをWindowsにインストールして、NAS上にカーネルイメージをおき、
TFTPDで公開するフォルダをカーネルイメージを置いたフォルダにする。
という妙ちくりんな構成にしてあります。
ここでTFTPDマシンのIPアドレスを192.168.1.2、
KUROBOXのIPアドレスを192.168.1.4として、
私のKUROBOXのu-bootの設定は下記のようになりました。


baudrate=115200
loads_echo=0
rootpath=/nfs/arm
cpuName=926
CASset=min
MALLOC_len=4
bootargs_end=:::DB88FXX81:eth0:none
ethact=egiga0
ethaddr=00:16:01:A4:F0:99
buffalo_ver=BOOTVER=1.091
build_time=18:10:02
initrd=initrd.buffalo
kernel=uImage.buffalo
nand_uImage_offset=20000
def_tftp=tftp $(default_kernel_addr) $(kernel); tftp $(default_initrd_addr) $(initrd); setenv bootargs $(bootargs_base) $(bootargs_root) rw initrd=0x02000040,20M panic=5 $(buffalo_ver); bootm $(default_kernel_addr) $(default_initrd_addr)
nand_boot=no
default_initrd_addr=0x02000000
default_kernel_addr=0x00100000
bootargs_base=console=ttyS0,115200
bootargs_root=root=/dev/sda2 rw rootdelay=15 panic=5
ipaddr=192.168.1.4
bootcmd=tftp $(default_kernel_addr) $(kernel); bootm $(default_kernel_addr)
serverip=192.168.1.2
bootargs=console=ttyS0,115200 root=/dev/sda1 rootdelay=15 rw panic=5 BOOTVER=1.091
stdin=serial
stdout=serial
stderr=serial
enaMonExt=no
enaFlashBuf=yes
enaCpuStream=no
ethprime=egiga0
bootdelay=3
disaMvPnp=no
overEthAddr=no
usb0Mode=host
usb1Mode=host


あとはHTTPサーバ、FTPサーバのセットアップなのですが、
付属のthttpdとproftpdでまかないます。
thttpdは/etc/thttpd.confでcharset=""にしておきます
(そうでないと文字化けしまくりでした。)

最後にルータにいくつか穴をあけて
(HTTP通信を許可するとかポートフォワードさせるとか)
完了です。

上記の作業以外にPostfixをインストールしようとして
挫折している過程もあります。
一月か二月くらいかけてなんとか上記のセットアップが終わりました。
まぁ、夜な夜な1、2時間しか時間が避けなかったので
進行速度は非常にゆっくりでした。

最近ではUPSも購入して、結構頑健なサーバ稼動環境になった気がします。
サーバ本体はディスクレス、外部ストレージはRAID1のディスク、
電源はUPS、停電時はUPSからNASのほうへシグナルが飛んで
自動的にシャットダウン。
KUROBOXは停電時に自動的にシャットダウンしてくれないので、
NASに定期的にpingを飛ばして、返ってこなかったら停電していると判断し、
自動でシャットダウンさせる、といったスクリプトを書きますかねー。

前の記事でも書きましたけど、今はSubversionもインストールして
プロジェクトでの開発にも使おうかと考えています。
LDAPサーバ立ち上げて、アドレス帳の一元管理もよいですね。
あまりサーバ立ち上げまくるとメモリがなくなりそうで怖いですが(汗

Computer::KUROBOX-PRO - sshでlocalhostに入れない

KUROBOX-PROにsshでログインして、その後さらにlocalhostへ入ろうとすると入れない。
何でこんなまねをしようとしているのかといいますと、
今日KUROBOX-PROにSubversionをインストールしたのです
(ちなみにこちらを参考にしてビルドしました。
 最新版のSubversionだとconfigureでこけちゃいますので要注意です。
 上記のサイトと同様に、1.4.3をビルドしました。)。
svn+sshで外部からリポジトリを触りたいなぁと思って、
テストでリポジトリを作ってみてました。

で、svn+sshでリポジトリにインポートできるかと思いきや、
Host key verification failedとか言われ。
もう、ええぇぇぇぇって感じでしたけど、
こちらに掲載されているとおり、ttyのパーミッションを666に変更してやればOKでした。

BUFFALOのUSB接続のRAIDディスクも購入したので、
このディスクは/homeにマウント。
これで後はうちのチームのメンバーのアカウントを作れば
ファイル置き場は私んちのKUROBOX-PRO、開発は外部で、
っていう体制での開発環境が整います。

Tuesday, April 28, 2009

Laboraltory::Dissidents - 静かに反乱ですよ

あなたは今の現状をどれだけ把握しているのですか、と問いたかったですね。
本日のゼミで。
どういうディスカッションが行われ、
どういうプランが練られ、どこへ向かおうとしているのか。
それを知らずにただひたすらせかす教授。

私を含め、8名が教官陣に反感を持ってます。
日本人学生が20人ちょいで、そのうち10名ほどが新入生なわけですから、
そらもう結構な割合です。

あと40名ほど留学生がいらっしゃいます。
留学生の方は教授に対してほぼイエスマンなので
まぁいいとして。

日本人の間で先生に対する支持率が激下がりです。
ゼミでも後輩が研究の話を先生方にするんですけど、
あー言いたいことが伝わってねー・・・とか私目線だと思うわけです。
私は後輩のやりたいことを重々聞いているので。

で、いやいや、先生のそのコメントはずれてるよ、
っていうか研究の内容の議論になってねーよ、って思うわけです。
持論を展開してるだけやん、と。時間の無駄だと。
私は後輩の研究の内容の詳細を知ってるので、
あー先生に対する説明のしかたを失敗したね、
というコメントを後輩に対して、ゼミ中にすることになったのですが。

いい加減、一人頭20人の面倒をみることができない
ということに気づけと言いたい。
20種類の研究の内容と進捗の管理を、
雑用で超多忙なあなた方ができるのか。
広げすぎた風呂敷をいい加減畳め、といいたい。
反論してみれば、よくわけの変わらない日本語で反論してきますし。
教授の発言を聞いていると、
いや、そこの話をしてるんじゃない、とか、
私の話ちゃんと聞いてました?と思う発言があったりとかありますので。

めんどくさくなったので、反論するのを途中でやめましたけど。
もう、うちの研究室の教官陣は敬うべきかたがたではなく。
研究を進める上での壁だ!とか思うようになりました。

私らがどんだけ異論を唱えたところで、
単位を出す出さないは向こうの権限なので、
はむかえる範囲もある程度決まってそうな気がします。

ああいうのが大学気質なのかなぁと最近思います。

Sunday, April 26, 2009

Work::LifeWork - 仕事が趣味ってこんな感じ?

最近自ら休みを潰しにかかっています。
ま、世の中にはそういった方はごまんといらっしゃるでしょう。
やりたいことがてんこ盛りなので、
休みの日に頭のスイッチをOFFにするのはもったいない!!

と思ってたのですが、
いやーまた右目が痙攣し始めてきたのでちょっとヤバスですね。
気分も少々優れず。

明日は一日中ミーティングです。
ベンチャー、勉強会、研究、コーパス開発プロジェクト。
ははっ、結構おなかいっぱいになれるネタぞろいなのです。
楽しいのでぜんぜんオッケーです。

ベンチャーミーティングでは、感性事業に関する調査報告が
明日の主なトピックです。
いろんな分野で感性というキーワードが飛び交ってますね。
ブログで簡単にまとめておくと面白いかもとか思いました。
そんな暇あるんかいって話ですけど。
いつかまとめたいと思います。

勉強会については、集団で思考するときのテクニックについてです。
そう・・・今われわれの研究室にとても必要なことだ!
と非常に思います。
60数人の学生がいる我々の研究室。
いったいどこに向かってるのか、
研究室所属5年目になるドクターの私もよくわからない。
ってことで、勝手にチーム作ってるわけなんですけどね。
誰かこの研究室の手綱を握れよ!俺は握りたくない!(笑
握った瞬間に研究室の運営でいっぱいいっぱいになる、
というのが目に見えます。

研究計画書第二弾を書けっていう命令が学生に教授から下ったのですが、
ほんとに見るの?と激しく疑わしい。
先生三人だとしても、一人頭20人。
そのうちに占めるドクターの割合も結構異常なんですけど。

結構ぶーぶー言いたくなる仕事が舞い降りてきたので、
いや!ほかの事に注力したいんですよ!
とわめきたいですね。わめいてますけど。いろんな人に。


しかしながら、仕事が趣味状態になってます。
以前はもっと時間に余裕を持たせるんだ!とか言って、
一日三食、全部自宅のキッチンで調理していたんですがねー。
最近一日一食から二食になってしまい。
野菜をきちんと取れてんのか心配になります。

将来社会を生き抜くための勉強やら仕事なので
めちゃくちゃ楽しいんですけど、
家にいたらプライベートなことといえば
音楽聴くかニコ動見てるかしかない状況はどうなんだろう(苦笑

Friday, April 17, 2009

Computer::KUROBOX-PRO - 稼動してます

現在このサイトも、 KUROBOX-PROをホストとして運営してます。
当初の希望通り、といっても完全にではありませんが、
ある程度やりたかったとおりの構造でサイト運営できています。

まず絶対的にやりたかったのが、
・KUROBOX-PROのハードディスクレス化
・書き込みが頻発するデータはNASにおく
です。
二つ目を実現するためには、NASをマウントできる必要がありました。
BUFFALOのNAS(RAID1)を利用していたのですが、
マウントするためにはsmbfsサポートを有効にする必要がありました。

この流れでいくと、DebianだとかFedoraとかをインストールするのは無理。
使える領域がKUROBOX-PROのフラッシュメモリとNASだけですから。
というかカーネルをsmbfs有効で再構築できれば問題ないので、
どこぞのディストリビューションを入れる必要はまったくなし!


つまり問題はカーネルの再構築。
これができればOK。
だったのですが、クロスコンパイル環境を構築してもうまくいかず。
起動はするもののpingが返ってきたり、返ってこなかったり。

最終的にはうまくいって、このサイトも運営できてるわけなんですが。
グローバルIPアドレスも取得しましたしね。

シリアル通信ケーブル自作したり、
TFTPDからカーネルイメージをダウンロードできるようにし、
フラッシュメモリ上にカーネルがなくてもブートできるようにしたり。
いろいろやったので、近いうちブログにメモ書き残したいと思います。

Monday, April 13, 2009

Laboratory::Meeting - 日曜日はミーティング日和だ!

今日は日曜日でしたが,朝10時から18時まで,大学でミーティングやってました.
というか前回書いた小ゼミなんですけどね.
まずは今進めている,コーパス開発プロジェクトの進捗報告および構築計画の修正.
次に後輩の研究アイデアについてのディスカッション.
開発したいシステムと,そのシステムが解決する現実の問題点,
ターゲットとするユーザ,システムを開発するために解決しなければならない問題点,
学生の間に開発するアルゴリズム.
さらには我々の間で相互利用できる手法について,我々の共通目標について.
そして小ゼミの運用方針.

昼にコンビニへ昼飯を買いに行き,休憩を入れたのちに再開.
これとあと一回しか休憩をはさんでいませんでした.
正直若干酸欠状態でした(汗

間に雑談が入りはしますが,すっごい濃密なディスカッションでした.
マインドマップすげー,ですね.
うまく使えば話は発散しませんし,話の道筋が非常にわかりやすくなる.

小ゼミの運用方針では,研究の進捗報告に加え,討論ももちろんしますし,
勉強会もします.
我々の研究分野に関する論文の勉強会ももちろんしますが,
研究に役立ちそうな他の分野のことや,
将来やりたいと考えているベンチャーに関する勉強会もやる予定です.

毎週日曜日に朝10時から18時までやろうという話になりました.
いやー普通こんなこと言いだすと確実に嫌がれるところですが,
そこに乗ってきてくれる後輩二人.
非常にありがたい存在です.