Armadilloフォーラム

Armadillo-IOT-A6でMASQUERADEを有効にする方法

toki

2023年11月10日 17時58分

下記記事を確認しながら作業をしたのですが、初心者の為理解出来ず手詰まりになってしまいました。
https://armadillo.atmark-techno.com/forum/armadillo/12879

armadillo-iota6_product_manual_ja-1.6.2.pdfの中で、
  "11.3.1. 出荷状態のルートファイルシステムアーカイブを構築する"
   を参考にさせて頂き、ルートファイル構築を行いました。
このルートファイルの構築とはどのように実施すればよろしいのでしょうか?
Armadillo-IoT ゲートウェイ A6 開発用ツールをダウンロードしビルドまで実施したのですが、
おそらくaiota6_resources/ 以下にファイルやディレクトリ配置していないので現状と変わりありませんでした。

また、v4.14-at62のソースファイルをダウンロードし、試しにmenuconfigを実施したのですが
Networking support --->内に[*] Network packet filtering framework (Netfilter) --->という項目はありませんでした。

至らぬところばかりで申し訳ありませんが、詳しい設定方法のリンク等ご教示頂けますと助かります。

宜しくお願い致します。

コメント

at_keitaro.takahashi

2023年11月10日 18時33分

高橋です。

正しくは

Networking support  --->
    Networking options  --->
        Network packet filtering framework (Netfilter)  --->
            IP: Netfilter Configuration  --->
                iptables NAT support  --->
                    MASQUERADE target support

という順番になっています。
(「MASQUERADE target support」は、「iptables NAT support」をスペースキーで有効にすると出てきます。
その後、「MASQUERADE target support」も有効にしてください。)

該当のフォーラムの回答が不足しており申し訳ありません。
また、この変更(menuconfigによるコンフィギュレーションの変更)についてはルートファイルシステムアーカイブの構築は必要ありません。

高橋様
ご返信ありがとうございます。

Network packet filtering framework (Netfilter) --->
この部分で差異があります。

添付したスクリーンショットのように
IP: Netfilter Configuration --->
という項目が見つかりません。

現在、問題の原因を特定することができておらず、対応に苦慮しております。
専門的なご支援を賜れますと幸いです。

何卒宜しくお願い致します。

> 高橋です。
>
> 正しくは
>

> Networking support  --->
>     Networking options  --->
>         Network packet filtering framework (Netfilter)  --->
>             IP: Netfilter Configuration  --->
>                 iptables NAT support  --->
>                     MASQUERADE target support
> 

> という順番になっています。
> (「MASQUERADE target support」は、「iptables NAT support」をスペースキーで有効にすると出てきます。
> その後、「MASQUERADE target support」も有効にしてください。)
>
> 該当のフォーラムの回答が不足しており申し訳ありません。
> また、この変更(menuconfigによるコンフィギュレーションの変更)についてはルートファイルシステムアーカイブの構築は必要ありません。
>

ファイル ファイルの説明
スクリーンショット 2023-11-14 104434.png

at_keitaro.takahashi

2023年11月14日 11時20分

高橋です。

menuconfigなど、イメージをカスタマイズする作業については、Armadilloの開発環境であるATDE
(https://armadillo.atmark-techno.com/guide/atde)
の使用を前提としています。上記URLからATDE(Version 8)をダウンロードしたあと、

Armadillo-IoT ゲートウェイ A6 製品マニュアル 「4.5.1. ATDEのセットアップ」
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…

及び

「22.2. イメージをカスタマイズする」
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…

など参考にもう1度作業を行っていただけますでしょうか。
また、何らかのコマンドを実行する際は実行したコマンドそのものについても、
(今回だと「make ARCH=arm menuconfig」などのコマンドを実行したかと思います)
フォーラムに記載していただけると、サポートが行いやすくなります。

高橋様

Armadilloの開発環境ご教授ありがとうございます。
ATDEを使用して再度「make menuconfig」を実施しましたが、項目に変わりはありませんでした。

事前に何か特別な準備が必要なのでしょうか?
現在、ソースファイルは /usr/src に配置し、そこでコマンドを実行しております。
また、現在のカーネルバージョン(4.14-at61)とソースファイルのバージョン(4.14-at62)の相違が影響している可能性はありますでしょうか?

お手数をお掛けして申し訳ございませんが、再度ご確認お願い致します。

ファイル ファイルの説明
スクリーンショット 2023-11-16 100539.png

at_keitaro.takahashi

2023年11月16日 11時44分

高橋です。

おそらくATDE Version 9をご使用かと思いますが、前の回答にもある通り
Armadillo-IoTゲートウェイ A6用の開発環境は、ATDE Version 8となります。

また、今回行うイメージのカスタマイズ・ビルドについては、ATDEのコンソール内で行う作業となっており、
Armadilloを接続する必要はありません。
(勿論、カスタマイズ・ビルドを行ったあとは別途Armadillo上に配置する作業が必要となります。)

ATDEの中でカーネルのソースファイルをダウンロードした上で、
改めて製品マニュアルに記載されているコマンドを実行してください。

Armadillo-IoT ゲートウェイ A6 製品マニュアル 「22.2.1. イメージをカスタマイズ」
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…

高橋様

すぐに理解することが出来ず、大変申し訳ございませんでした。
ATDE Version 8「make menuconfig」を実行し、MASQUERADE target supportを有効にすることが出来ました。

しかし製品マニュアル 「22.2.1. イメージをカスタマイズ」に記載されてある
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x82000000 uImage
を実行し、選択画面をデフォルト通り選択していったら下記のエラーが発生しました。

make[1]: *** 'certs/x509_certificate_list' に必要なターゲット 'debian/certs/debian-uefi-certs.pem' を make するルールがありません.  中止.
make: *** [Makefile:1068: certs] エラー 2

コンフィギュレーションの変更では「IPv4 connection tracking support (required for NAT) 」という項目を有効にすることによって
MASQUERADE target supportの項目が表示されたので、変更箇所はここだけです。
ビルド時の選択時に全てデフォルト値を入力したのが、問題だったのでしょうか?

ご確認の程、宜しくお願い致します

at_keitaro.takahashi

2023年11月16日 17時30分

高橋です。
ATDE上で以下のコマンドを実行し、結果を送ってもらえますでしょうか。

history |grep make
ls /usr/share/images/atde

高橋様

コマンド結果を下記に記載します。

atmark@atde8:~$ history |grep make
   48  make menuconfig
   49  sudo make menuconfig
   51  sudo make menuconfig
   53  sudo make menuconfig
   54  make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x82000000 uImage
   55  sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x82000000 uImage
   56  sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
   58  sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
   59  sudo make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
   60  sudo make menuconfig
   69  sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
   70  sudo make menuconfig
   71  sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
   72  sudo make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
   73  sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x82000000 uImage
   78  make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
   79  sudo make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
   80  sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x82000000 uImage
   81  sudo make menuconfig
   82  sudo make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
   83  sudo make menuconfig
   84  history |grep make
atmark@atde8:~$ ls /usr/share/images/atde
atde.xml  atde8.jpeg

宜しくお願い致します。

at_keitaro.takahashi

2023年11月17日 13時13分

高橋です。
コマンド結果の取得ありがとうございます。

menuconfig実行時に、マニュアル通り「ARCH=arm」を指定してコマンドを実行してください。

make ARCH=arm armadillo-iotg-a6_defconfig
make ARCH=arm menuconfig

高橋様

「ARCH=arm」の指定でコマンドを実行したところ、無事イメージファイルができました。
マニュアルを十分に読まずに進めてしまい、ご迷惑をお掛けしてしまい申し訳ございません。
root権限でビルドを実行すべきところをユーザー権限で実行してしまい、その際にも多々エラーが発生しておりました。

作成したイメージファイルをArmadillo-IoT-A6に配置する方法について、配置する手順に関するマニュアルやフォーラムの記事があれば教えて頂けますと幸いです。
お手数をお掛けしますが、何卒宜しくお願い致します。

at_keitaro.takahashi

2023年11月17日 16時36分

高橋です。

> root権限でビルドを実行すべきところをユーザー権限で実行してしまい、その際にも多々エラーが発生しておりました。

「/usr」などの「/」以下のディレクトリは基本的にrootユーザーの持ち物なので、
一般ユーザー(ATDEを起動する際にログインするatmarkユーザーなど)だとsudoコマンドなどによるroot権限が必要になります。

基本的に、ATDEで行う作業はユーザーのホームディレクトリ(ATDEで「端末(terminal)」を開いたときに最初にいるディレクトリ)
で行うことをオススメします。

なお、製品マニュアル内で、「~/」となっている箇所はユーザーのホームディレクトリを表しています。
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…

> 作成したイメージファイルをArmadillo-IoT-A6に配置する方法について、配置する手順に関するマニュアルやフォーラムの記事があれば教えて頂けますと幸いです。
> お手数をお掛けしますが、何卒宜しくお願い致します。

USBメモリが使用できる環境なら、最初はUSBメモリ(またはmicro SDカード)でデータを移動するのが楽かと思われます。
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…

ArmadilloとATDE(を起動しているPC)が同一のネットワークに接続されているなら、ATDE上にサーバーを構築してsshやwgetコマンドでダウンロードするのもオススメです。
以下、「/usr/src/linux-v4.14-at62/arch/arm/boot/uImage」にビルドしたuImageが配置されている場合の例です。

・scpコマンド(sshを利用したファイル転送)の例
1. ATDE上でopenssh-serverをインストール
sudo apt install openssh-server
2. ATDEのIPアドレスを確認
hostname -I
(基本「10.x.x.x」、「192.168.x.x」、「172.x.x.x」などの形式になっているかと思います。)
3. Armadillo上でscpコマンドを実行
scp atmark@<ATDEのIPアドレス>:/usr/src/linux-v4.14-at62/arch/arm/boot/uImage .
例えばATDEのIPアドレスが192.168.0.11の場合、コマンドは
scp atmark@192.168.0.11:/usr/src/linux-v4.14-at62/arch/arm/boot/uImage .
となります。

scpコマンド実行後、「Are you sure you want to continue connecting (yes/no)?」と表示されたら
「yes」を入力してEnterを押してください。(初回のみ)

その後、「atmark@'s password:」
と表示されるので、ATDEのatmarkユーザーのパスワード(初期値は「atmark」です)を入力してEnterを押すと、
Armadillo上にファイルが転送されます。

・wgetコマンドでダウンロードする例
1. ATDE上で以下のコマンドを実行してサーバー上にファイルを配置
sudo cp /usr/src/linux-v4.14-at62/arch/arm/boot/uImage /var/www/html/
2. ATDEのIPアドレスを確認
hostname -I
3. Armadillo上でwgetコマンドを実行
wget <ATDEのIPアドレス>/uImage
ATDEのIPアドレスが192.168.0.11の場合、コマンドは
wget 192.168.0.11/uImage -O uImage
となります。

いずれかの方法でファイルを転送したあと、必要に応じて「Linuxカーネルイメージの書き換え」などの作業を行ってください。
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…

了解しました。以下は、ご指摘に基づき修正した文章です:

高橋様

遅ればせながらのご連絡となり、誠に申し訳ございません。

お知らせいたしますと、カーネルイメージの書き換え及びMASQUERADEの設定を無事完了することができました。
これもひとえに、高橋様の丁寧なご指導とご支援のおかげです。
私の手違いや至らない点が多々あり、ご迷惑をおかけしてしまいましたが、その都度、忍耐強くご対応いただき、深く感謝申し上げます。

また何かありましたらご連絡させて頂きます。