2005-08 << 2005-09 >> 2005-10

2005-09-23 (金)

*Linux on BBR-4MG NAT動いてます

NAT動きました.今はLinux経由でインターネットに繋いでいます.ルータを再起動したりすると,もとのファームウェアに戻りますが….

BusyBoxを最新の1.01にする.完全に同じオプションで無いので確かではないですが,最新版の方がサイズが小さいですね.まだ実際には転送してませんがtftpも動きそうです.udhcpもbusyboxに組み込まれたものを使うことにする.さらにカーネルモジュールを別に入れておく余裕はない気がするので,insmodとかも消す.

これで,40KB以上サイズが小さくなりました.圧縮した状態だと25KBくらいですが….あと80KB小さくなればBBR-4MG用ファームウェアが作れるのだけど(笑).やっぱり一度,シリアル経由でイメージを転送して,Linuxからフラッシュメモリの使ってない領域にデータを書いて次回からそっちを使って起動するようにするのが正攻法かな.そうすれば,webサーバくらいは入れられるかもしれない.

dnrdってresolv.confを参照してくれないんだ.IPを設定しなければいけないということは,DHCPのスクリプトに書いておくのが良いかな.

そろそろ,NATを動かしてみようかと思ってパケットのフォワードはどうやるんだろうと思って調べると,/proc/sys/net/ipv4/ip_forwardにってCONFIG_SYSCTLなんかカーネルが大きくなるので入れてません.ネットワークの設定変えるためだけに入れなければいけないの?何処を見ても,sysctlするか,/proc/sys/net/ipv4/ip_forwardに設定を書き込めと書いてある.

とりあえず,SYSCTLを有効にしてカーネルをコンパイル.ちゃんとパケットを転送してるようです.試しに,WANポートをインターネットに繋いで,DHCPでIPを貰って,NATを設定.ついでに,dnrdを起動.普通にインターネットに繋がります….でもカーネルサイズが25KB増加.あうぅ.圧縮してもカーネルが512KBを超えている…これじゃBBR-4MGのブートローダから起動できない.

ってか,デフォルトでIP forwardingを有効にする設定は無いんですか?それかCONFIG_SYSCTが無くてもsysctl(3)が使えたりしないのかな….よく分からないので,net/ipv4/devinit.cを書き換え.これでカーネルサイズを維持できる.

それにしても,何でBBR-4MGはフラッシュメモリ領域のど真ん中に起動パラメータがあるかな….使うときはそこを避けて使わないといけない….製造番号だとかデフォルトMACアドレスとかの情報が書かれてるだけだから,このデータは壊しても動いてくれると思うのですが….アクセスしやすいようにMTDのパーティションで領域を分けておく.

Edimaxからダウンロードしたソースを使っているのだけど,ずいぶんとメモリを贅沢に使う仕様ですね….まぁ,こっちの製品はBBR-4MGの倍のメモリを積んでるのですが….

フラッシュにインストールできそうだし,そろそろ手順を公開して投げだすかも.いい加減,疲れたし.