FON開発環境 on Debian
2007.09.29 Saturday 03:50
シリアルコンソールが使えるようになってからDD-WRTをインストールしてクライアント接続ができるところまでは先日確認した.
本日はいよいよLinuxでFONのソフトウェア構築に挑戦してみることにする.結論としては配布されているパッケージをそのままコンパイルしてKernelおよびファイルシステムを作るところまではできた.
あとはそれを実機に入れて起動するかどうか.
本日はいよいよLinuxでFONのソフトウェア構築に挑戦してみることにする.結論としては配布されているパッケージをそのままコンパイルしてKernelおよびファイルシステムを作るところまではできた.
あとはそれを実機に入れて起動するかどうか.
Linuxでシリアル接続
新調したPCにはシリアルポートがない.正確にはマザーボードには実装されているが,ピンが立っているだけでD-SUB 9pinのコネクタが無い.
あ,もしかしたら昔のATマザーに付いていたシリアルコネクタが使えるかも!と思いついた(自分メモ).しかしM/Bの説明書にピン配置が記載されていないのはいかがなものか.
ASUSマザーCOM2コネクタのピンアサインというのは後日ケーブルが入手できたら試すことにして,USB接続を検討する.
これで当たりだとうれしい.
2 4 6 8 -
1 3 5 7 9
1:CD 2:RD 3:TD 4:DTR 5:GND 6:DSR 7:RTS 8:CTS 9:RI
USBにシリアルを接続する変換器はいろいろ販売されているが,Linuxで使用可能とは普通書いてない.だが,こちらのページによれば,PL-2303 を使っている製品であればLinuxから認識するとのこと.該当する製品としてELECOMのUC-SGTとアイ・オー・データ機器のUSB-RSAQ2が挙げられている.
試しにDebian Linux/GNU(x86_64)を起動してUSBにUC-SGTを接続したところ,きちんと認識された.lsusb コマンドでELECOMという名前が見える.また,
dmesg | grep tty
で,ttyの名前を確認できる.自分が試したところでは /dev/ttyUSB0 という名前が付いていた.
Serial Terminal on Linux
Windowsで使えるシリアルターミナルといえばTera Term Proが定番だが,Linuxでシリアルターミナル使うのは初めてだ.適当にDebian Packageでそれらしいものを探して使ってみた.
- cutecom: 入力と出力が分離しているのでターミナルっぽくない.ログ機能がある.
- gtkterm: 一般的なターミナルに近い.デフォルトは黒地に白だが色は変更可能.ログ機能無し.マクロあり.
操作を記録するためのログ機能は是非欲しいところ.今後も調査を継続することにして,とりあえずはgtktermを使うことにする.
FONソースコードと構築
FON公式blogエントリに書かれているリンクからダウンロード可能.80MB位ある.ダウンロードして適当な空のディレクトリに展開する(Linuxで).
展開されて出てくるREADMEには
make menuconfigを最初に行うように指示があるのだが,その通り実行しても何も起こらない.svnコマンドが見つからない旨のエラーメッセージが出たのでdebian packageでsubversionをインストールするも状況は変わらず.
docsディレクトリにオリジナルのOpenWRTの構築方法が書かれていたのでOpenWRTのソースを取得してmake menuconfigを行い,ncursesが見つからない旨のエラーが出たところで原因に気がついた.
fonのパッケージにはコンパイル済みのバイナリ(x86)が含まれている.しかし,x86_64ではncursesの32bitライブラリがインストールされていなかった.パッケージマネージャで32bit版ncursesをインストールしてから再度実行したらメニュー画面が出るようになった.
(この辺はx86版Linuxでは発生しない問題)
make menuconfigで何を選べばFONオリジナルのファームになるのかがよくわからないところではあるが,FON独自のパッケージがリストに見えるので,初期値設定済みと期待して何もさわらずにExit→保存.これで.config が作成される.
そしておもむろに make とすると構築が始まる.まず最初にdl/に入っているソースコードとtoolchain/に入っている各種パッチを使って toolchain_build_mips ディレクトリにクロスコンパイル用のバイナリが作られるようだ.コンパイルが終わるとstaging_dir_mips/ にインストールされていく.
USBの外付けHDDにDebianをインストールして使っているのだが,どうもアクセスが遅い.ディスクアクセスが発生すると時々画面が固まる.USB2.0として認識されているはずなのに.とりあえずは気長に待つことにする.
待っていたら途中でエラーになった.
make V=99で詳細なログを見ることができる.今回は「flexが無いよ!」というものだったので,パッケージでflexをインストールして再度makeする.すると今度は「yaccが無い」と言うので,bisonをインストールしたら先に進んだ.
そのまま終了するまで待つ.最終的には bin/ の中にKernelとファイルシステムが生成された.詳しいディレクトリ構成はOpenWRTのドキュメントに書かれている.
Comments