umaiboy
2025年5月19日 15時49分
==========
製品型番:AX1110-U00Z
Debian/ABOSバージョン:Debian12(bookworm)
※インストールディスクイメージ install_disk_sd_bookworm_20250221_x1.img使用
カーネルバージョン:6.1.128-at14
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
以下のような状況となっており、WireGuardが起動できません。
お気づきの点あればご教示をお願いします。
■wireguard導入(Armadillo作業)
・# apt install wireguard-tools
・/etc/wireguradに設定ファイルを作成、配置
■wireguard起動⇒失敗(Armadillo作業)
# systemctl start wg-quick@wg0
Job for wg-quick@wg0.service failed becauser the control process exited with erro code.
See "systemctl status wg-quick@wg0.servivce" and "journalctl -xeu wg-quick@wg0.service" ro details
■カーネルの状態確認(ATDE作業)
https://armadillo.atmark-techno.com/resources/software/armadillo-x1/lin…
よりLinuxカーネル(Linux 6.1対応)をダウンロード
ファイル:uImage-x1-v6.1-at16
ATDEにコピー展開の上、make menuconfigでWireGuard関連モジュールを確認
下記のようになっていた
Kernel Configuration
=====
> Device Drivers > Network device support > "M" WireGuard secure network tunnel
※WireGuard secure network tunnelにはブランク、*ではなく"M"が付いていたため、modprobe等でモジュールを読み込めば起動できると判断
■再度起動確認(Armadillo作業)
# modprobe wireguard
modprobe: FATAL: Module wireguard not found in directory /lib/modules/6.1.128-at14
wireguardモジュールが存在しないのか、別の場所に存在するのか確認
# find / name wireguard*
(省略)
/usr/lib/modules/6.1.0-32-rt-armmp/kernel/drivers/net/wireguard
/usr/lib/modules/6.1.0-32-rt-armmp/kernel/drivers/net/wireguard/wireguard.ko
(省略)
※wireguardモジュールは別ディレクトリに存在しているよう
■今後について
現在の状態を脱してWireGuardを起動するために必要な作業等をご教示ください。
以下考えている事は下記2案ですが、より良い対応方法をご教示頂けますと幸甚です。
・Armadillo /lib/modules/6.1.128-at14配下に/usr/lib/modules/6.1.0-32-rt-armmp/kernel/drivers/net/wireguardのシンボリックリンクを張る
⇒カーネルバージョンが異なるため動作保証なし、エラーやカーネルパニックの可能性もあり
・Kernel Configurationにて現在の WireGuard secure network tunnelを<*> WireGuard secure network tunnelへ
変更、ビルドしたものでインストールイメージを作成しArmadilloへ導入
以上
コメント
umaiboy
マルティネさん
ご回答ありがとうございました。
先日のご回答を踏まえ、改めて目的、実施した作業、質問を記載します。
実施した作業が誤りの場合は質問以前の問題なのでその旨ご指摘をお願いします。
目的に対して実施した内容に問題なければ質問への回答をお願いします。
■目的
Armadillo X1でWireGuardを使いたい。そのため、
・WireGuardを有効にしたカーネルを作成したい
それ以外は標準提供されているインストールディスクイメージで使用されているカーネルと同じ構成、パラメータにしたい
・カスタマイズしたカーネルを使用したインストールディスクイメージを作成したい
■実施した作業
Armadillo-X1製品マニュアル Debian GNU/Linux 12 (bookworm) 対応
10.2. Linuxカーネルをビルドする を参照し作業
https://manual.atmark-techno.com/armadillo-x1/armadillo-x1_product_manu…
以下3手順はマニュアル通りのコマンドを実行
1.アーカイブの展開
2.initramfsアーカイブへのシンボリックリンク作成
3.コンフィギュレーション
"4.ビルド"実施前に以下作業を実施
$ make menuconfig
.config - Linux/x86 6.1.140-at17 Kernel Configuration にて
Device Drivers > [*] Network device support > < > WireGuard secure network tunnel を
<*> WireGuard secure network tunnel
[*] Debugging cheks and verbose messages
に変更、< Exit > ⇒ < Exit > ⇒ < Exit >
生成された.configを見て
$ grep WIREGUARD .config
CONFIG_WIREGUARD=y
CONFIG_WIREGUARD_DUGUG=y となっていることを確認
次に4.ビルド 記載のコマンドを実行すると、
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
以下表示となります。
SYNC include/config/auto.conf.cmd
*
* Restart config...
*
*
* Configure standard kernel features (expert users)
*
Configure standard kernel features(expert users) (EXPERT) [Y/n/?] y ←ここ勝手にyが入る
Enable 16-bit UID system calls (UID16) [Y/n/?] (NEW)
※以降、各種パラメータについて同種設問が続くと想定
■質問
"■目的"に書いた通り、ここで作るカーネルはWireGuardの追加以外は標準提供されている
インストールディスクイメージと同じものとしたいです。
"$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-"によって次々と表示される
設問について何を選択すれば、目的のものとなるでしょうか?
全てデフォルト(つまり設問毎に全てEnter押下)を選択すればいい?
以上
at_dominique.m…
マルティネです
menuconfig 実行時のコマンドの問題です:
> $ make menuconfig
こちらのコマンドで確かに設定を変更できますが、kbuild (カーネルのビルドシステム)ではコンフィグ設定はアーキやコンパイラーによってことなりますので、menuconfig を実行するときも ARCH/CROSS_COMPILE の環境変数を設定する必要があります。
defconfig も再実行してもう一度 wireguard を有効してください
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- x1_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage <code> (<code>export
コマンドで環境変数として設定してもいいですが、明確に設定していただくと確認しやすいのでそちらの方法をマニュアルで説明しています)
> <*> WireGuard secure network tunnel
> [*] Debugging cheks and verbose messages
ちなみにですが debian 等ではこちらの Debugging checks オプションが無効になてちますので、Armadillo でも無効のままでいいと思います。
> 設問について何を選択すれば、目的のものとなるでしょうか?
> 全てデフォルト(つまり設問毎に全てEnter押下)を選択すればいい?
Enter 押下でビルドすると x1_defconfig と離れたコンフィグレーションでカーネルがビルドされますので、起動できるかもしれませんが保証できません。
一度 arch/cross無しの設定で menuconfig を実行したことで多くの設定が Linux のデフォルト値に戻りましたので、x1_defconfig の再実行からお願いします。
上記のコマンドでしたらこういう質問はないはずです。聞いて頂いてよかったです。
よろしくお願いします
umaiboy
マルティネさん
ご教示ありがとうございました。
下記コマンドを実行しました(menuconifigにて、WireGuard secure network tunnelのみ有効にしました)
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- x1_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
次にビルドを掛け、下記のような結果となりました。
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage
(中略)
Image Name: Linux-6.1.140.at17
Created: Web Jun 11 11:27:43 2025
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 16116904 Bytes = 15739.16 KiB = 15.37 MiB
Loar Address: 80008000
Entry Point: 80008000
Kernel: arch/arm/boot/uImage is ready
その後、"イメージファイルの生成確認"に従いファイルが生成されているか確認したのですが、
$ pwd
/home/atmark/linux-6.1.-x1-at17
$ ls arch/arm/boot/uImage
uImage
$ ls arch/arm/boot/dts/armadillo_x1.dtb
ls: 'arch/ar/dts/armadillo_x1.dtb" にアクセスできません: そのようなファイルやディレクトリはありません。
$ ls arch/arm/boot/dts/armadillo_x1.*
arch/arm/boot/dts/armadillo_x1.dts
このようにarmadillo_x1.dtbは生成されていないようです。
作業内容とこの結果から、armadillo_x1.dtbが何故生成されないかお気づきの点はあるでしょうか?
以上、よろしくお願いいたします。
umaiboy
at_dominique.m…
マルティネです。
> $ ls arch/arm/boot/dts/armadillo_x1.dtb
> ls: 'arch/ar/dts/armadillo_x1.dtb" にアクセスできません: そのようなファイルやディレクトリはありません。
>
> $ ls arch/arm/boot/dts/armadillo_x1.*
> arch/arm/boot/dts/armadillo_x1.dts
>
> このようにarmadillo_x1.dtbは生成されていないようです。
>
> 作業内容とこの結果から、armadillo_x1.dtbが何故生成されないかお気づきの点はあるでしょうか?
すみません、 マニュアルからコマンドをすべてコピーしてませんでした。
dtb はマニュアルのこの行でビルドされます:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
(具体的にデフォルトターゲットの中の make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
でもいいですが…)
menuconfig 以外はマニュアル通りでいいです。
確認したら他の製品の Armadillo Base OS 向けのマニュアルは「 カーネルコンフィギュレーションの変更 」のステップも書いてますね、今後のアップデートに Armadillo X1 のマニュアルにもコピーします。
よろしくお願いします
at_dominique.m…
2025年5月19日 16時10分
umaiboyさん
お世話になっています、
マルティネです。
> https://armadillo.atmark-techno.com/resources/software/armadillo-x1/lin…
> よりLinuxカーネル(Linux 6.1対応)をダウンロード
> ファイル:uImage-x1-v6.1-at16
>
> ATDEにコピー展開の上、make menuconfigでWireGuard関連モジュールを確認
> 下記のようになっていた
make menuconfig
だけではデフォルトの x86_64 のコンフィグになりますので、実際に Armadillo 上に実行されているカーネルのコンフィグではありません。https://manual.atmark-techno.com/armadillo-x1/armadillo-x1_product_manu… のビルド手順(x1_defconfig の適用、または ARCH と CROSS_COMPILE 変数の設定)を確認してください。
カーネルに含まれているコンフィグを参考にすると無効化されています:
ちなみに、モジュールでも明示的に modprobe する必要はありませんが、
弊社の debian 製品ではカーネルを単独ファイルとして提供していますのでモジュールを利用した場合のインストール・アップデートは難しいです。
(かと言って、みんなさんが wireguard を使っているわけではないので標準のカーネルでは =y として有効化してません)
他の Armadillo Base OS 製品では wireguard はモジュールとして有効化しています。
> ・Armadillo /lib/modules/6.1.128-at14配下に/usr/lib/modules/6.1.0-32-rt-armmp/kernel/drivers/net/wireguardのシンボリックリンクを張る
> ⇒カーネルバージョンが異なるため動作保証なし、エラーやカーネルパニックの可能性もあり
はい、標準では /usr/lib/modules/6.1.0-32-rt-armmp のディレクトリはないので何かのパッケージでインストールされたと思われます。
違うカーネルでビルドされたので、ロードできない・強制ロードしても正常に動作しないと思われます。
> ・Kernel Configurationにて現在の WireGuard secure network tunnelを<*> WireGuard secure network tunnelへ
> 変更、ビルドしたものでインストールイメージを作成しArmadilloへ導入
はい、上記の手順通りに CONFIG_WIREGUARD=y でカーネルをビルドしていただいてそのカーネルを利用していただければと思います。
お手数ですがよろしくお願いします