Showing posts with label KUROBOX. Show all posts
Showing posts with label KUROBOX. Show all posts

Friday, July 03, 2009

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

Computer::KUROBOX - VPNサーバ構築開始(2)の続き。

GU-1000TをKUROBOXで動かすため、ASIXのサイトからドライバを落としてきて、
仮想マシン上のFedoraでクロスコンパイルを試みてみました。
うん、コンパイルできない。
Makefileもすごい簡潔に書かれています。
カーネルのモジュールのディレクトリに最終的にドライバが突っ込まれるのかー。
ふーん・・・と眺めていましたら。

そういえばこちらで、
最近のカーネルは、普通にasixモジュールで認識されて・・・
と記載されていることを思い出しました。
・・・あそうか、カーネルモジュールか。
カーネルは再構築したけどモジュールはコンパイル・インストールしてないわ。

再びこちら(Buffalo @ NAS-Central)を見ながら、
モジュールをコンパイルしてインストール。
コンパイルされているものをみていくと、なにやらいっぱいありますね。
もしかしてUSBのBluetoothアダプタも使えるようになるんかな。

とりあえずモジュールをインストールして
modprobe asix
を実行。
認識されました。きゃほーい。
ifconfigでIPアドレスも割り当てることができたので、
/etc/init.d/networking.shに、起動時にIPアドレスを割り当てるよう書いておきました。

よーし、ちょっとだけOpenVPNサーバ立ち上げやってみるかぁ。
と思ったんですが、brctlで何かこけます。
どうやらカーネルがブリッジの動作をサポートしていないみたいで。
あーまたカーネル再構築かぁぁぁ・・・

ということで、次回はまた再構築やります。
それができれば、今度こそOpenVPNの立ち上げかな。

Wednesday, July 01, 2009

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

Computer::KUROBOX - VPNサーバ構築開始で書いたとおり、
KUROBOX/PROへのNIC追加を始めました。
今日はなんかがんばる気力が起きなくて、家でだらだらしていたら
宅配便が着まして。
いつも不在届けを差し込んでいくおっちゃんが、珍しいなーとおっしゃってました。

Amazonで購入したのは、
PLANEX USB2.0/1.1 4ポート USBハブ バスパワー PL-UH401
PLANEX ギガビット USB LANアダプタ GU-1000T
の二つ。

ハブくらい動くだろうという思いと、
いや、KUROBOXだから動かないかも、とかいう変な不安を持ちながら接続。
ハブにつないだ外付けハードディスクは無事に使うことができました。
この外付けがhomeにマウントされるディスクなので、
動いてもらわないと非常に困ります。

さて、LANアダプタのほうはといいますと。
認識しませんねぇ。

むぅ、甘かったか。
ということで、GU-1000Tとlinuxでぐぐってみたところ、
こちらによると、ドライバを落としてきて、コンパイルしないといけないっぽいですね。
またまたクロスコンパイルしないといけない、と。

ということで、次回はドライバをクロスコンパイルしてインストールし、
動作確認をしてみたいと思います。

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サーバ構築再開ですね。

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

Friday, June 05, 2009

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

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

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

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

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

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

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

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

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からいろいろ弄繰り回しているので、
いろいろ不便はありますけどね。

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、開発は外部で、
っていう体制での開発環境が整います。

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, February 23, 2009

Computer::KUROBOX-PRO - /etc/resolv.confの記述が

玄箱が名前解決できていない!と思って/etc/resolv.confにルータのIPアドレスを書いておいたのですが,
玄箱を再起動させると/etc/resolv.confの中身が空っぽに.
なんでやねん!と思って,resolv.confを触ってるやからがおるんかということで,
grepをかけてみたところ,/etc/init.d/networking.shが起動時にいじくってる様子.
/etc/netinfoにmy_dns1の値を設定してやれば,ちゃんとresolv.confの中身が作成されました.

しかしながらこれだけでは名前解決ができず.
こちらを参考にしてみましたところ,/etc/nsswitch.confでhost: files dnsとすればOKだということがわかりました.
これでntpで時間合わせができますね.

Friday, February 20, 2009

Computer::KUROBOX-PRO - dovecotのconfigureがやっと通った

こちらを参考にして,
dovecotのconfigureが,OpenSSLを有効にした状態でやっとこさ通りました.
下記のコマンドを実行しました.
lnを実行してるところが,ちょっと無理やりな感じがあります.

ln -s /usr/local/ssl/include .
CFLAGS=-I/usr/local/ssl/include/ LDFLAGS=-L/usr/local/ssl/lib/ SSL_CFLAGS=-I/usr/local/ssl/include/ SSL_LIBS=-L/usr/local/ssl/lib/ ./configure --with-ssldir=/usr/local/ssl --with-ssl=openssl --disable-ipv6 --without-ldap --without-vpopmail --without-pgsql --without-mysql --without-sqlite --without-pop3d

どうしてもopenssl/ssl.hとopenssl/err.hが見つからないとかいわれるんで,
無理やりシンボリックリンクで参照できるようにしてやりました.

configureが通ったので,makeしてみたところ,こちらも無事通りました.

ということで,OpenSSLを玄箱にインストールしようと思い,chrootをexitして,
下記のコマンドを実行してみました.

cd /mnt/disk1/root/openssl-0.9.8j
/mnt/disk1/usr/bin/make install

すると,perlがないといわれちゃいました.
てなわけで,現在Perlをコンパイル中です.
makeは通って,今make testを実行中.
玄箱へはインストールできますかね~.

Wednesday, February 18, 2009

Computer::KUROBOX-PRO - OpenSSLのコンパイル

昨日はopensslをコンパイルしたので,dovecotをコンパイルしよーと思ったら失敗します.
configureの-lsslでこけてます.
なんでやねん!と思ったら,opensslのsharedライブラリがありません.
てことで,opensslを,
./config shared && make && make install
でもっかいインストール.
明日dovecotのコンパイルに再挑戦です.

Computer::KUROBOX-PRO - Dovecotのコンパイル

現在,dovecot-1.1.11をソースからビルドしているところなのですが,
玄箱上ではconfigureに失敗します.
なので,fedora上でクロスコンパイルしていたのですが,
--with-epoll=dpollだかのオプションをセットしつつ,configureを修正しつつ.
なんとか無理やりconfigureを通したものの,makeに失敗する.
くそーdovecotは無理なんか!?
と思ったんですが,今日なんとなく玄箱上で再度configureを実行.
/lib/cppでfails sanity checkとかでてexitしちゃってるってことは,
exitしないようにしちゃえば?と思い,configureを修正.
あれよあれよとconfigureが通っちゃいました.

これはもしかしてコンパイルできそう?とか思ったのですが,
configureの結果をみると,どうもSSLが使えない様子.
imapsが使えないなんていやだ!!
ということで,opensslをソースから玄箱上でビルドしてます.
バージョンは0.9.8jです.
./config && make && make install
を実行することで,opensslは問題なくインストールできました.
ただしhddrootfs.tar.gzを展開してchrootした開発環境下で,ですが.

openssl,dovecot,postfixが,
玄箱内臓のフラッシュメモリに入りきるんかという心配もあったりしますが,
今日は眠いんでここらで終了.
明日はdovecotのコンパイルです.

Sunday, February 15, 2009

Computer::KUROBOX-PRO - BerkleyDBとPostfixのクロスコンパイル

現在も,ノーマル状態の玄箱Proを相手に格闘しております.

Postfixのソースコードを玄箱Pro用にコンパイルするためにはBerkeleyDBがいる!と思い,
ソースコードからFedoraでクロスコンパイルしてみました.
いや, 結論からいえば,すでにBerkeleyDBが玄箱用の開発環境に含まれていたんで,
BerkeleyDBをコンパイル,インストールする必要はまったくなかったんですが.


Fedora 10 AOSにインストールしたコンパイラはSourcery G++
Fedoraのホームディレクトリのkurobox/usr/local以下にインストールすることを前提として
(後でkurobox以下を玄箱にコピーする予定でした),
build_unixディレクトリで,下記のコマンドでビルドできました.

% ../dist/configure --host=arm-none-linux-gnueabi --enable-pthread_api --prefix=$HOME/kurobox/usr/local CC=arm-none-linuxx-gnueabi-gcc
% make && make install

んで玄箱にコピーして,

Postfixをコンパイルするときに,
BerkeleyDBのバージョンが違うとかいわれて
うそーん,とか思いつつ,なにげなく/usr/localの中みてみたらBerkeleyDB.4.2なるものが.
あぁいらんかったんかーまぁちょっと面白かったけど,と思いつつ,Postfixのコンパイルに入ります.

Postfixのソースコードをクロスコンパイルする上で修正しないといけないものは,
makedefsだけでした.
makedefsで指定しているincludeディレクトリを,/usr/local/include/dbにすればOKでした.

とりあえずPostfixのコンパイルはOK.
次はdovecotです.
現在苦戦しておりますが,どうなることやら.

Friday, February 13, 2009

Computer::KUROBOX-PRO - 公開サーバ化のためのクロスコンパイラ環境構築はじめ

KUROBOX-PROを先月購入しました.
固定IPアドレスを取得し,メールサーバなどなどを立ち上げるためです.
まぁせっかく独自ドメイン取得してるわけですから,
いろいろサーバの設定をいじくりまわしたいのです.
今レンタルさせていただいているサーバも,結構いろいろできるんですが,
やっぱ自分でいろいろやりたいですよね.

想定している構成は,玄箱にはハードディスクはのせず.
外部ストレージとしてBUFFALOのRAIDのLinkStationを利用.
稼働させるサーバとしてはApache,Postfix,Samba.

・・・をしたいんですが,まーWebを見て回っても,
ハードディスクにDebianだかGentooだかを載せてる方が大半の様子.
ハードディスクを利用してない方は結構苦戦してらっしゃるっぽいですね.
何が難しいってクロスコンパイル環境を構築するかセルフコンパイル環境を構築するか.
なんだかんだいってもセルフコンパイル環境のほうが楽ですけどね.
難しそうと思いつつ,挫折するまでチャレンジしてみたい.

てことで,4月からの稼働を目指して環境構築を開始しました.ゆっくりと.

とりあえず,外付けハードディスクを玄箱につないで付属ディスクに入っている開発環境をコピー.
chrootかましてセルフコンパイルはできるようにはしてみました.
が,マニュアルに書いてあるとおり,カーネルの再構築はできなかったのです.
なんで再構築するかといいますと,
Sambaプロトコルを用いて,ネットワーク上のディスクをマウントしたいんですが,
カーネルの再構築が必要くさくて.
あークロスコンパイル環境必要かー,ってことで,Linuxマシンを用意する必要性が出てきました.
大学ではもろにLinux使いまくりなんですが,自宅にはLinuxマシンはなく.
購入するかどうか迷ったんですが,
あ,仮想マシンでLinux使えるようにしたらええやん,と思い.
Fedora 10 AOS(Fedora 10 Appliance Operation System Distribution)をダウンロード.
現在このFedoraをいじり中です.

このFedora,とかくコンパクトなんで,
まーディスク容量少ないですしインストールされてるプログラムも少ないですし.
少ないのでコンパクトにおさまってるんですけどね.
他にもpasswd実行したらなんか失敗するとか,
コンパイラが入ってないとか,いろいろハードルあるんですが.

容量不足はqemu-img.exeで対処,
passwd実行したら失敗する問題はpwconvを実行して/etc/shadowを作成することで対処,
他に不足しているプログラムはyumでインストール.

あとはSourcery G++をインストールして,どこまでクロスコンパイルできるのか.
日曜に試しまくってみようと思います.