独自のDNSサーバー等を設定する場合は、resolv.confに記述します。 ただ、udhcpc(DHCPクライアント)が起動すると、resolv.confがクリアされます。 udhcpc起動の度に、resolv.confを編集するのは面倒ですので、udhcpc起動に 独自のresolv.confを簡易的に設定する方法を考えました。
下記の方法は、ROMのconfig領域(/etc/config/)に、独自のresolv.confをresolv.conf_customという名前で 保存しておいて、udhcpc起動時にresolv.conf_customをresolv.confに書きこむようにしています。
1.独自のresolv.conf
独自のDNSサーバー等を /etc/config/resolv.conf_custom というファイルに記述しておきます。 (ファイル名は任意でよい。今回は、例としてresolv.conf_customという名前にしてある。)
2.udhcpc起動時のスクリプトの編集
/etc/config/rc.localの末尾に
ifdown eth0
sleep 3
cp /usr/share/udhcpc/default.script /usr/share/udhcpc/default.script_org
sed -e "s!echo -n > \$RESOLV_CONF!cat /etc/config/resolv.conf_custom > /etc/config/resolv.conf!g" /usr/share/udhcpc/default.script_org > /usr/share/udhcpc/default.script
ifup eth0
を追加します。
補足)Armadillo起動時に自動実行される/etc/config/rc.localに、 udhcpc起動時のスクリプト /usr/share/udhcpc/default.script を修正して、udhcpcを再起動するスクリプトを追加しています。
オリジナルのdefault.scriptでは、udhcpc起動時に /etc/config/resolv.conf を新規ファイルで作成するようになっていますが、上記の修正で、udhcpc起動時に、 /etc/config/resolv.conf_custom の内容を /etc/config/resolv.conf にコピーするようになっています。
3.config領域(/etc/config/)の保存
上記手順で編集したconfig領域(/etc/config/)のファイルを flatfsd -s コマンドで、ROMに保存します。
次回のArmadillo起動以降、udhcpc(DHCPクライアント)起動時に独自のresolv.conf(上記例では、resolv.conf_custom)が反映されるようになります。