組込みLinux用ネットワーク設定クラス(C++)

組込みLinuxC++でネットワークインターフェース(有線LAN/無線LAN)の設定を行なうクラスを作成しました。といっても、ほとんど ifup/ifdown/ifconfig/iwconfigなどのコマンドをC++から叩いてるだけの超テキトーなラッパーです。

ソース

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に含まれています。

注意点&メモ

  • ifconfigはオワコンという噂ですが、まあ組込み用ということでひとつ…
  • /etc/network/interfaces を書き換えます。
  • 無線LANに関してはまだ作りかけです…
  • WPAに対応するには wpa_supplicant を使いますが、未対応です。
  • WEPが許されるのは小学生までだよねー。キモーイ。キャハハハハハハ。
  • 無線LANアダプタによっては、iwprivによる独自コマンドでWPAに対応している場合があります。
  • popen関数で実行されるコマンドは非同期動作になるので、usleepでごまかしてます。