組込みLinuxのC++でネットワークインターフェース(有線LAN/無線LAN)の設定を行なうクラスを作成しました。といっても、ほとんど ifup/ifdown/ifconfig/iwconfigなどのコマンドをC++から叩いてるだけの超テキトーなラッパーです。
ソース
- NetIf.h
- NetIf.cc
- testNetIf.cc (簡単なテストプログラム)
busyboxについて
- このクラスは、busybox版のifup/ifdown/ifconfig/iwconfigを使う環境で動作確認しました。
- busybox版のifupは、DHCP設定の場合にはudhcpcを起動します。
- ifupによるudhcpcの起動時のオプションが -b (バックグラウンド実行)となるようにします。
- それには、busyboxのビルド時に CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS に -b を設定します。
- (たぶん。じつは、面倒なのでビルド済みのbusyboxをバイナリーエディタで改竄して使いました。)
- オプションが -n だと、IPアドレスを即時取得できないとudhcpcが終了してしまいます。
- udhcpcもbusyboxに含まれています。