Armadilloフォーラム

SDインストールイメージで書き込み中にLED点灯させたいがエラーとなる

naons

2024年9月10日 11時38分

IoT G3のSDインストールイメージの実行中に、書き込み状態やエラー判定用にLED点滅をさせたくブログ参考やG3Lのスクリプト参考に試しました。
(※参考:https://armadillo.atmark-techno.com/blog/1913/2426

ですが、実際のインストール中には、下記エラーがでてしまい、LED点灯ができませんでした。

/sbin/init: line 15: can't create /sys/class/leds/led3/brightness: nonexistent directory

実現したいことは、G3Lと同じように、インストーラ実行中のLED点灯などをさせたいです。
参考ブログを見た感じでもできそうな様子でしたが、実際はできませんでした。
OS環境(Debian12)の違いで何かKernel等の処理が何か異なっているからでしょうか??

コメント

at_keitaro.takahashi

2024年9月10日 14時00分

高橋です。

インストールディスクイメージ作成ツールに含まれている「core/p1/x1-minimal.dtb」を、
以下のファイルに置き換えてインストールディスクイメージを作成してみてください。
https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-g3/im…

Armadillo-IoT ゲートウェイ G3及びArmadillo-X1のインストールディスクでは、x1-minimal.dtbという必要最低限のデバイスのみ記載した
共通のデバイスツリーを使用しているため、LEDなど各製品に固有のデバイスについては使用できません。
上記の置き換えを行うことで、インストールディスク内でLEDにアクセスできるようになります。

ご参考いただいたブログ記事については、SDブートを行うためのSDを別途作成していただいた上での手順となっているのですが、
インストールディスクイメージ作成ツールがリリースされる前の記事のため、紛らわしい内容となってしまいました。
一部記載を修正いたします。

naons

2024年9月10日 16時11分

> 高橋です。
>
> インストールディスクイメージ作成ツールに含まれている「core/p1/x1-minimal.dtb」を、
> 以下のファイルに置き換えてインストールディスクイメージを作成してみてください。
> https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-g3/im…
>
> Armadillo-IoT ゲートウェイ G3及びArmadillo-X1のインストールディスクでは、x1-minimal.dtbという必要最低限のデバイスのみ記載した
> 共通のデバイスツリーを使用しているため、LEDなど各製品に固有のデバイスについては使用できません。
> 上記の置き換えを行うことで、インストールディスク内でLEDにアクセスできるようになります。
>
> ご参考いただいたブログ記事については、SDブートを行うためのSDを別途作成していただいた上での手順となっているのですが、
> インストールディスクイメージ作成ツールがリリースされる前の記事のため、紛らわしい内容となってしまいました。
> 一部記載を修正いたします。
>
dtbが最小構成だったんですね。
試してみます。
※ちなみに、Debian12(Kernel6.x)なので、こちらのファイルになりますよね?
https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-g3/im…

at_keitaro.takahashi

2024年9月10日 16時38分

高橋です。

インストールディスクイメージの中身はLinux 4.9となっています。
(イメージの書き換えスクリプトを実行できればよいので、Linux 4.9から特に更新しておりません。)

build.shで指定するイメージが意図したもの(今回の場合はDebian 12 + Linux 6.1)となっていれば問題ありません。

naons

2024年9月11日 16時03分

> 高橋です。
>
> インストールディスクイメージの中身はLinux 4.9となっています。
> (イメージの書き換えスクリプトを実行できればよいので、Linux 4.9から特に更新しておりません。)
>
> build.shで指定するイメージが意図したもの(今回の場合はDebian 12 + Linux 6.1)となっていれば問題ありません。
>
core/p1/x1-minimal.dtb ファイルを、Linux4.9のDTBファイルで書き換えました。
(スクリプト等でファイル名決め打ちしていたので、一旦既存ファイル名を使用)

その後、インストールイメージを起動させると、添付ファイルのように途中で止まってしまいました。
→linux4.9のDTBに入れ替える前のオリジナルx1-minimal.dtbの時は正常に書き換えまで完了し、Linux6.1で通常起動ができる様態でした。

他に留意点ありますか?

ファイル ファイルの説明
boot-error01.txt

at_keitaro.takahashi

2024年9月12日 16時24分

高橋です。

> その後、インストールイメージを起動させると、添付ファイルのように途中で止まってしまいました。
> →linux4.9のDTBに入れ替える前のオリジナルx1-minimal.dtbの時は正常に書き換えまで完了し、Linux6.1で通常起動ができる様態でした。
>
> 他に留意点ありますか?

インストールスクリプトが正常に動作していない状態と思われます。
お手数ですが、一度、インストールスクリプトの変更を戻していただき、
以下フォーラムの「build.sh」、「progress-iotg3_m1.sh」を使用してインストールディスクを作成していただけますでしょうか。
https://armadillo.atmark-techno.com/forum/armadillo/21681

naons

2024年9月13日 15時50分

> 高橋です。
>
> > その後、インストールイメージを起動させると、添付ファイルのように途中で止まってしまいました。
> > →linux4.9のDTBに入れ替える前のオリジナルx1-minimal.dtbの時は正常に書き換えまで完了し、Linux6.1で通常起動ができる様態でした。
> >
> > 他に留意点ありますか?
>
> インストールスクリプトが正常に動作していない状態と思われます。
> お手数ですが、一度、インストールスクリプトの変更を戻していただき、
> 以下フォーラムの「build.sh」、「progress-iotg3_m1.sh」を使用してインストールディスクを作成していただけますでしょうか。
> https://armadillo.atmark-techno.com/forum/armadillo/21681
>

上記スクリプトを使って試してみました。
上記スクリプトでは、"Init p1"へdtbコピーを明示的にG3-M1用を実施するようにしていると理解しました。
ただ、上記では、作成イメージのOSカーネルが"Ver4.9"の場合になるかと思います。
→自分の方では、作成イメージのOSカーネルは"Ver6.1"にしたいです。

そこで、上記build.shを使い、core/p1/x1-minimal.dtbのファイルを"Ver6.1用のDTB "で書き換えてイメージ作成しました。

作成イメージをSDカードに書いて、G3にインストールを試みました。
今度は、途中でKernel Panicが発生してしまいました。
(インストーラーで起動しているKenelは4.9だと思いますが、もしかするとインストーラとインストール後のカーネルバージョンが一致していないとやはりまずいのでしょうか?)
何か解決策をいただければと思います。

ファイル ファイルの説明
boot-error02.txt

at_keitaro.takahashi

2024年9月25日 15時52分

高橋です。

回答が遅れ誠に申し訳ありません、誤って別のフォーラムに返信してしまっていました。
https://armadillo.atmark-techno.com/forum/armadillo/21681

改めてここに回答いたします。(内容は上記フォーラムの返信と同じです)
----------------------------
> 上記スクリプトでは、"Init p1"へdtbコピーを明示的にG3-M1用を実施するようにしていると理解しました。
> ただ、上記では、作成イメージのOSカーネルが"Ver4.9"の場合になるかと思います。
> →自分の方では、作成イメージのOSカーネルは"Ver6.1"にしたいです。

この場合の「p1」は、「インストールディスク(インストーラー)のパーティション1」を指しています。
インストールディスクは、パーティション1に配置したuImageとデバイスツリーでLinuxを起動したあと、
パーティション2のimagesディレクトリに配置した、「build.shで指定したu-boot, uImage, dtb, ユーザーランド」を
Armadillo本体にコピーします。
インストール後、Armadilloを通常起動する際はこのコピーされた各種イメージが使用されるため、
インストールディスク内のイメージのバージョンは関係ありません。

> そこで、上記build.shを使い、core/p1/x1-minimal.dtbのファイルを"Ver6.1用のDTB "で書き換えてイメージ作成しました。
>
> 作成イメージをSDカードに書いて、G3にインストールを試みました。
> 今度は、途中でKernel Panicが発生してしまいました。
> (インストーラーで起動しているKenelは4.9だと思いますが、もしかするとインストーラとインストール後のカーネルバージョンが一致していないとやはりまずいのでしょうか?)
> 何か解決策をいただければと思います。

申し訳ありません、書き換えていただいたbuild.shですが、1箇所ミスがありました。
(というより、x1-minimal.dtbを置き換える場合は変更の必要がありませんでした。)

build.shの変更を戻した状態で、x1-minimal.dtbも4.9用のものに戻してもう1度試していただけますでしょうか。
----------------------------