ブログ

Armadillo-IoT: dnsmasqをインストールする

at_ito
2015年6月8日 5時57分

Armadillo-IoTには有線LAN、無線LANや3Gが搭載されており、ルーターとしても使用できます。ルーターにはIPマスカレード、DHCPサーバー、DNSサーバー等の機能が必要になります。

ここでは、DNSキャッシュサーバーとDHCPサーバーとして利用できるdnsmasqをインストールする方法を紹介します。

環境

  • Linuxカーネル: linux-2.6.26-at24
  • Atmark Dist: atmark-dist-20150424
  • ATDE: atde5-amd64-20150428

依存ライブラリのインストール

dnsmasqを使用するには、以下のライブラリが不足しています。そのため必要なライブラリをATDEにインストール、またはユーザーランドイメージに直接追加します。

以下のコマンドを実行して必要なdebianパッケージをダウンロードしてください。

[atde]$ wget http://ftp.jp.debian.org/debian/pool/main/libn/libnfnetlink/libnfnetlink0_1.0.0-1_armel.deb
[atde]$ wget http://ftp.jp.debian.org/debian/pool/main/libn/libnetfilter-conntrack/libnetfilter-conntrack3_1.0.1-1_armel.deb

以下のコマンドを実行して、ダウンロードしたふぁいるをクロスライブラリに変換後、ATDEにインストールしてください。

[atde]$ dpkg-cross -b -a armel libnfnetlink0_1.0.0-1_armel.deb 
[atde]$ dpkg-cross -b -a armel -M libnetfilter-conntrack3_1.0.1-1_armel.deb
[atde]$ sudo dpkg -i libnfnetlink0-armel-cross_1.0.0-1_all.deb
[atde]$ sudo dpkg -i libnetfilter-conntrack3-armel-cross_1.0.1-1_all.deb

dnsmasqのインストール

dnsmasqのdebianパッケージをダウンロードし、インストールします。

以下のコマンドを実行し、dnsmasqパッケージをダウンロードしてください。

[atde]$ wget http://security.debian.org/debian-security/pool/updates/main/d/dnsmasq/dnsmasq_2.62-3+deb7u3_all.deb
[atde]$ wget http://security.debian.org/debian-security/pool/updates/main/d/dnsmasq/dnsmasq-base_2.62-3+deb7u3_armel.deb

以下のコマンドを実行し、パッケージを展開してください。

[atde]$ dpkg -x dnsmasq_2.62-3+deb7u3_all.deb .
[atde]$ dpkg -x dnsmasq-base_2.62-3+deb7u3_armel.deb .

以下のコマンドを実行し、不要なファイルを削除した後、dnsmasqをAtmark Distにコピーシてください。

[atde]$ rm -rf usr/share/doc usr/share/man
[atde]$ for d in  usr etc lib var; do cp -a $d $HOME/atmark-dist/romfs; done

dnsmasqの起動スクリプトを修正

atmark-dist/romfs/etc/init.d/dnsmasqを以下のように修正し、dnsmasqを起動するユーザー名とグループ名を変更します。

(省略)
 
DNSMASQ_USER="root"                # ← この行を追加
if [ ! "$DNSMASQ_USER" ]; then
   DNSMASQ_USER="dnsmasq"
fi
 
(省略)
 
        # /var/run may be volatile, so we need to ensure that
        # /var/run/dnsmasq exists here as well as in postinst
        if [ ! -d /var/run/dnsmasq ]; then
           mkdir /var/run/dnsmasq || return 2
           chown root:root /var/run/dnsmasq || return 2    # ← この行を修正
        fi
 
(省略)

ユーザーランドイメージの作成

ここまでの手順で必要なファイルをromfsに追加しましたので、dnsmasq実行に必要なライブラリをユーザーランドイメージに追加するために、以下のコマンドを実行してください。

[atde]$ make romfs

以下のコマンドを実行し、romfsに配置されたディレクトリ、ファイルを元にユーザーランドイメージを作成してください。

[atde]$ make image

上記で作成したユーザーランドイメージをArmadilloに書き込んでください。

dnsmasqの起動

dnsmasqを起動する場合は、Armadillo上で以下のコマンドを実行します。

[armadillo]# /etc/init.d/dnsmasq start