yasuda0108
2021年12月23日 16時36分
「9.1.4章 入出力デバイスを扱う」にて、「デバイスツリーファイルを適切に設定してください」とありますが、
設定方法はどこかに記載がありますでしょうか。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
コメント
yasuda0108
at_akihito.irie
入江です。
> こちらで生成したDTS/DTBファイルは、どのようにボードに反映させるのでしょうか?
SWUpdateを用いて更新します。
SWUpdateの使用方法については、以下のマニュアルを参照してください。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
SWUpdateを用いてArmadillo上のdtbを書き換える方法の一例は以下のとおりです。
以下の例では、書き込みたいdtbの名前をoriginal.dtbとしています。
[ATDE ~/]$ cd swupdate-mkimage [ATDE ~/swupdate-mkimage]$ mkdir update-dtb # 作業ディレクトリ作成 [ATDE ~/swupdate-mkimage]$ cp examples/kernel_update_plain.desc \ /path/to/original.dtb \ update-dtb/ # サンプルのdescファイルと、Armadiiloに配置したいdtbをコピー [ATDE ~/swupdate-mkimage]$ ln -s armadillo_iotg_g4-nousb.dtb update-dtb/armadillo.dtb # armadillo.dtbというdtbへのsymlinkを作成 [ATDE ~/swupdate-mkimage]$ vi update-dtb/kernel_update_plain.desc # サンプルのdescファイルを編集(以下の★の行を書き換える) [ATDE ~/swupdate-mkimage]$ cat update-dtb/kernel_update_plain.desc # 以下、編集後のdescファイル # write over files in /boot # any different version from current system's (based on sw-versions) # will be installed swdesc_files --version extra_os.kernel 5.10.0-1 --dest /boot \ "original.dtb" "armadillo.dtb" ★この行を書き換え # add the kernel to files to be preserved on OS update swdesc_command --version extra_os.kernel 5.10.0-1 \ 'grep -qE "^POST /boot" /etc/swupdate_preserve_files || echo -e "POST /boot/original.dtb\nPOST /boot/armadillo.dtb" >> /etc/swupdate_preserve_files' ★この行を書き換え [ATDE ~/swupdate-mkimage]$ ./mkimage.sh -o update-dtb.swu update-dtb/kernel_update_plain.desc # swuイメージ生成 [ATDE ~/swupdate-mkimage]$ ls update-dtb.swu # 生成されたことを確認する update-dtb.swu
出来上がったupdate-dtb.swuは、USBメモリや、webサーバを経由して
Armadilloのアップデートに使用できます。
SWUpdateの実行方法についても、製品マニュアルを参照してください。
以上です。
yasuda0108
yasuda0108
お世話になります。
update-dtb.swuの作成を試みているのですが、ご教示いただいた例の「mkimage.sh」が存在しません(find / で見つかりません)。
ディレクトリ内にあった「swupdate_post.sh」を実行してみましたが、エラ-が出ます。
解決方法をお教えいただけますでしょうか。
以下現在の状況です。
#ディレクトリ構成 atmark@atde9:/usr/share/mkswu$ ls examples hawkbit mkswu.conf.defaults scripts swupdate-onetime-public.key swupdate-onetime-public.pem swupdate_post.sh update-dtb #update-dtb構成 atmark@atde9:/usr/share/mkswu$ ls -l update-dtb 合計 68 lrwxrwxrwx 1 root root 92 2月 14 13:41 armadillo.dtb -> /home/atmark/linux-5.10-5.10.93-r0/arch/arm64/boot/dts/freescale/armadillo_iotg_g4-nousb.dtb -rw-r--r-- 1 root root 59915 2月 14 13:35 armadillo_iotg_g4-at-dtweb.dtb #デバイスツリーの作成で生成 -rw-r--r-- 1 root root 1093 2月 14 13:25 kernel_update_plain.desc #.desc編集内容 atmark@atde9:/usr/share/mkswu$ sudo cat update-dtb/kernel_update_plain.desc # We expose `--install-if different` here in two different ways for # demonstration purpose (either using the switch or setting the variable) # Anything below the variable being set will have the switch automatically # set unless they specify --install-if higher manually # Note that if a component is installed in both modes, the swu generation # will fail. # write over files in /boot swdesc_files --version extra_os.kernel 5.10.82-1 \ --install-if different --dest /boot \ "armadillo_iotg_g4-at-dtweb.dtb "armadillo.dtb" install_if=different # if you have modules, also remove old ones and ship new ones swdesc_command --version extra_os.kernel 5.10.82-1 \ 'rm -rf /lib/modules' # (install with INSTALL_MOD_PATH=..../inst make modules_install) swdesc_files --version extra_os.kernel 5.10.82-1 --dest /lib/modules \ "inst/lib/modules" # add the kernel to files to be preserved on OS update swdesc_command --version extra_os.kernel 5.10.82-1 \ 'grep -qE "^POST /boot" /etc/swupdate_preserve_files || echo -e "POST /boot/armadillo_iotg_g4-at-dtweb.dtb\nPOST /boot/armadillo.dtb" >> /etc/swupdate_preserve_files' #エラ-内容 atmark@atde9:/usr/share/mkswu$ ./mkimage.sh -o update-dtb.swu update-dtb/kernel_update_plain.desc bash: ./mkimage.sh: そのようなファイルやディレクトリはありません #ディレクトリ内にあったswupdate_post.shを実行 atmark@atde9:/usr/share/mkswu$ ./swupdate_post.sh -o update-dtb.swu update-dtb/kernel_update_plain.desc ./swupdate_post.sh: 6: .: cannot open /var/tmp/scripts/common.sh: No such file
> 入江です。
>
> > こちらで生成したDTS/DTBファイルは、どのようにボードに反映させるのでしょうか?
>
> SWUpdateを用いて更新します。
>
> SWUpdateの使用方法については、以下のマニュアルを参照してください。
> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
>
> SWUpdateを用いてArmadillo上のdtbを書き換える方法の一例は以下のとおりです。
> 以下の例では、書き込みたいdtbの名前をoriginal.dtbとしています。
>
>
> [ATDE ~/]$ cd swupdate-mkimage > [ATDE ~/swupdate-mkimage]$ mkdir update-dtb # 作業ディレクトリ作成 > [ATDE ~/swupdate-mkimage]$ cp examples/kernel_update_plain.desc \ > /path/to/original.dtb \ > update-dtb/ # サンプルのdescファイルと、Armadiiloに配置したいdtbをコピー > [ATDE ~/swupdate-mkimage]$ ln -s armadillo_iotg_g4-nousb.dtb update-dtb/armadillo.dtb # armadillo.dtbというdtbへのsymlinkを作成 > [ATDE ~/swupdate-mkimage]$ vi update-dtb/kernel_update_plain.desc # サンプルのdescファイルを編集(以下の★の行を書き換える) > [ATDE ~/swupdate-mkimage]$ cat update-dtb/kernel_update_plain.desc # 以下、編集後のdescファイル > # write over files in /boot > # any different version from current system's (based on sw-versions) > # will be installed > swdesc_files --version extra_os.kernel 5.10.0-1 --dest /boot \ > "original.dtb" "armadillo.dtb" ★この行を書き換え > > # add the kernel to files to be preserved on OS update > swdesc_command --version extra_os.kernel 5.10.0-1 \ > 'grep -qE "^POST /boot" /etc/swupdate_preserve_files || echo -e "POST /boot/original.dtb\nPOST /boot/armadillo.dtb" >> /etc/swupdate_preserve_files' ★この行を書き換え > > [ATDE ~/swupdate-mkimage]$ ./mkimage.sh -o update-dtb.swu update-dtb/kernel_update_plain.desc # swuイメージ生成 > [ATDE ~/swupdate-mkimage]$ ls update-dtb.swu # 生成されたことを確認する > update-dtb.swu >
>
> 出来上がったupdate-dtb.swuは、USBメモリや、webサーバを経由して
> Armadilloのアップデートに使用できます。
> SWUpdateの実行方法についても、製品マニュアルを参照してください。
>
> 以上です。
>
at_dominique.m…
お世話になってます。
アットマークテクノのマルティネです。
> #エラ-内容 > atmark@atde9:/usr/share/mkswu$ ./mkimage.sh -o update-dtb.swu update-dtb/kernel_update_plain.desc > bash: ./mkimage.sh: そのようなファイルやディレクトリはありません > > #ディレクトリ内にあったswupdate_post.shを実行 > atmark@atde9:/usr/share/mkswu$ ./swupdate_post.sh -o update-dtb.swu update-dtb/kernel_update_plain.desc > ./swupdate_post.sh: 6: .: cannot open /var/tmp/scripts/common.sh: No such file
分かりにくくて申し訳ございません、1月のアップデートで mkimage.sh は mkswu にリネームされました。「./mkimage.sh」の代わりに「mkswu」を使っていただければイメージ作成できるはずです。
「/usr/share/mkswu」が存在するので、すでにインストールして以前作成していただいた証明鍵を「mkswu --import」でロードしていただきましたね?
なお、atmarkのユーザーが/usr/share/mkswuに書き込む権利がないので、変更したファイルをホームか ~/mkswu にコピーした方がスムースに使えると思います。
新しいマニュアルはこちらです:
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
お手数ですが、確認の上まだエラーがありましたらまたご連絡ください。
yasuda0108
早速のご回答ありがとうございます。
ご指摘の通り、~/mkswuに作成したupdate-dtbをコピーし、mkswuを実行しましたが、エラーとなりました。
ご対応方法をお教えいただけますでしょうか。
#update-dtbフォルダごとコピー atmark@atde9:~$ cd /home/atmark/mkswu atmark@atde9:~/mkswu$ ls initial_setup.desc initial_setup.swu mkswu.conf swupdate.aes-key swupdate.key swupdate.pem update-dtb #.swu作成エラ- atmark@atde9:~/mkswu$ mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc /usr/bin/mkswu: 25: ./kernel_update_plain.desc: Syntax error: Unterminated quoted string #マニュアル参考に実行でエラ- atmark@atde9:~/mkswu$ mkswu initial_setup.desc update-dtb/kernel_update_plain.desc /usr/bin/mkswu: 25: ./kernel_update_plain.desc: Syntax error: Unterminated quoted string
ちなみにですが、マニュアル9.7.2-1 tipsに記載の「mkswu」とはどのようなコマンドなのでしょうか。
> お世話になってます。
> アットマークテクノのマルティネです。
>
>
> > #エラ-内容 > > atmark@atde9:/usr/share/mkswu$ ./mkimage.sh -o update-dtb.swu update-dtb/kernel_update_plain.desc > > bash: ./mkimage.sh: そのようなファイルやディレクトリはありません > > > > #ディレクトリ内にあったswupdate_post.shを実行 > > atmark@atde9:/usr/share/mkswu$ ./swupdate_post.sh -o update-dtb.swu update-dtb/kernel_update_plain.desc > > ./swupdate_post.sh: 6: .: cannot open /var/tmp/scripts/common.sh: No such file >
>
> 分かりにくくて申し訳ございません、1月のアップデートで mkimage.sh は mkswu にリネームされました。「./mkimage.sh」の代わりに「mkswu」を使っていただければイメージ作成できるはずです。
> 「/usr/share/mkswu」が存在するので、すでにインストールして以前作成していただいた証明鍵を「mkswu --import」でロードしていただきましたね?
>
> なお、atmarkのユーザーが/usr/share/mkswuに書き込む権利がないので、変更したファイルをホームか ~/mkswu にコピーした方がスムースに使えると思います。
>
> 新しいマニュアルはこちらです:
> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
>
> お手数ですが、確認の上まだエラーがありましたらまたご連絡ください。
>
at_dominique.m…
yasuda0108さん、
> atmark@atde9:~/mkswu$ mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc > /usr/bin/mkswu: 25: ./kernel_update_plain.desc: Syntax error: Unterminated quoted string
このエラーですと、kernel_update_plain.descファイルのどこかに終端されてない文字列があります。
先ほどに表示されたファイルを拝見したところ、この部分ですね:
swdesc_files --version extra_os.kernel 5.10.82-1 \ --install-if different --dest /boot \ "armadillo_iotg_g4-at-dtweb.dtb "armadillo.dtb"
「"armadillo_iotg_g4-at-dtweb.dtb」を「armadillo_iotg_g4-at-dtweb.dtb」か「"armadillo_iotg_g4-at-dtweb.dtb"」にしないと読み取れません。
> ちなみにですが、マニュアル9.7.2-1 tipsに記載の「mkswu」とはどのようなコマンドなのでしょうか。
「mkswu --import」で ~/swupdate-mkimage にあらかじめ作成された証明鍵(今 ~/mkswu/swupdate.key, swupdate.pem, swupdate.aes-key)とコンフィグファイル(今 ~/mkswu/mkswu.conf) をコピーして、mkswuでイメージ作成ができたら ~/swupdate-mkimage を安全に消すことができます。
swuイメージをまだインストールしなかった場合は必要のないコマンドですが、initial_setup.swuは(初期化しないかぎり)一度しか使えないので、鍵をなくさないように注意が必要です。
(なくした場合、手動でarmadilloの/etc/swupdate.pemと/etc/swupdate.aes-keyを更新する必要がありますので、致命的ではないが手間がかかります)
よろしくお願いします。
yasuda0108
ご回答ありがとうございます。
初歩的なミスがあり、大変失礼致しました。
修正後に実行しましたが、下記のエラ-が発生します。
お手数ですがご確認いただけますでしょうか。
atmark@atde9:~/mkswu$ pwd /home/atmark/mkswu atmark@atde9:~/mkswu$ mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc ERROR: inst/lib/modules が存在しません。 atmark@atde9:~/mkswu$ sudo mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc ERROR: コンフィグファイルが見つかりませんでした。 mkswu --init で作成してください。 atmark@atde9:~/mkswu$ ls initial_setup.desc initial_setup.swu mkswu.conf swupdate.aes-key swupdate.key swupdate.pem update-dtb
また、mkswuコマンドについて、ご説明ありがとうございました。
> yasuda0108さん、
>
>
> > atmark@atde9:~/mkswu$ mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc > > /usr/bin/mkswu: 25: ./kernel_update_plain.desc: Syntax error: Unterminated quoted string >
>
> このエラーですと、kernel_update_plain.descファイルのどこかに終端されてない文字列があります。
>
> 先ほどに表示されたファイルを拝見したところ、この部分ですね:
>
> swdesc_files --version extra_os.kernel 5.10.82-1 \ > --install-if different --dest /boot \ > "armadillo_iotg_g4-at-dtweb.dtb "armadillo.dtb" >
> 「"armadillo_iotg_g4-at-dtweb.dtb」を「armadillo_iotg_g4-at-dtweb.dtb」か「"armadillo_iotg_g4-at-dtweb.dtb"」にしないと読み取れません。
>
>
> > ちなみにですが、マニュアル9.7.2-1 tipsに記載の「mkswu」とはどのようなコマンドなのでしょうか。
>
> 「mkswu --import」で ~/swupdate-mkimage にあらかじめ作成された証明鍵(今 ~/mkswu/swupdate.key, swupdate.pem, swupdate.aes-key)とコンフィグファイル(今 ~/mkswu/mkswu.conf) をコピーして、mkswuでイメージ作成ができたら ~/swupdate-mkimage を安全に消すことができます。
>
> swuイメージをまだインストールしなかった場合は必要のないコマンドですが、initial_setup.swuは(初期化しないかぎり)一度しか使えないので、鍵をなくさないように注意が必要です。
> (なくした場合、手動でarmadilloの/etc/swupdate.pemと/etc/swupdate.aes-keyを更新する必要がありますので、致命的ではないが手間がかかります)
>
> よろしくお願いします。
at_dominique.m…
マルティネです。
> atmark@atde9:~/mkswu$ mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc > ERROR: inst/lib/modules が存在しません。
あ、入江さんの desc ファイルではなく新しいバージョンの kernel_update_plain.desc から作りましたね。説明されてからアップデートが挟まって説明の時から差ができました。
このエラーはただ、kernel_update_plain.desc に 「swdesc_files ... inst/lib/modules」でinst/lib/modulesディレクトリを組み込む命令があるのにファイルが存在しないというエラーですね。
yasuda0108さんはカーネルのアップデートしたいわけではないので、この部分は不要です。
armadillo_iotg_g4-at-dtweb.dtb を送りたい場合は例えば以下のコマンドをdescファイルに記載してください。
# 起動するdtbの選択するarmadillo.dtbリンクと # 作成したdtbファイルを送ります swdesc_files --version extra_os.kernel 5.10.0-1 --dest /boot \ armadillo.dtb armadillo_iotg_g4-at-dtweb.dtb # 作成したdtbファイルがアップデートで消されないように # 保存設定ファイルに記載します swdesc_command --version extra_os.preserve_dtb 1 \ 'echo /boot/armadillo_iotg_g4-at-dtweb.dtb >> /etc/swupdate_preserve_files'
また、update-dtbのarmadillo.dtbのリンクが/home/...のパスへリンクするのでarmadilloに送っても動かないと思います。作成し直してからmkswuでイメージを作成してください。
atmark@atde9:~/mkswu$ rm -f update-dtb/armadillo.dtb atmark@atde9:~/mkswu$ ln -s armadillo_iotg_g4-at-dtweb.dtb update-dtb/armadillo.dtb atmark@atde9:~/mkswu$ ls -l update-dtb/ 合計 84 lrwxrwxrwx 1 atmark atmark 30 2月 15 13:42 armadillo.dtb -> armadillo_iotg_g4-at-dtweb.dtb -rw-r--r-- 1 atmark atmark 78032 2月 15 13:38 armadillo_iotg_g4-at-dtweb.dtb -rw-r--r-- 1 atmark atmark 470 2月 15 13:44 update_dtb.desc atmark@atde9:~/mkswu$ mkswu update-dtb/update_dtb.desc update-dtb/update_dtb.swu を作成しました。
このswuをインストールしたら、armadilloの/bootを確認して無事に新しいdtbが入ってる(armadillo.dtbのリンク先)かどうかを確認してください。何かアップデートで再起動できなくなる場合は自動的にインストール前のシステムに戻りますので、swupdateが成功しても最終確認が必要です。
> atmark@atde9:~/mkswu$ sudo mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc > ERROR: コンフィグファイルが見つかりませんでした。 mkswu --init で作成してください。
こちらのエラーはただ root ユーザの環境で証明鍵等の設定ファイルが作成されなかっただけです。mkswu に sudo が必要ないので、無視してください。
よろしくお願いします。
yasuda0108
ご回答ありがとうございます。
ご指摘いただいた通り試してみましたが、エラ-が出力されてしまいます。
どこか内容に不備がありますでしょうか。
以下現在の状況です。
#作業ディレクトリ atmark@atde9:~/mkswu$ pwd /home/atmark/mkswu atmark@atde9:~/mkswu$ ls initial_setup.desc initial_setup.swu mkswu.conf swupdate.aes-key swupdate.key swupdate.pem update-dtb atmark@atde9:~/mkswu$ ls -l update-dtb 合計 64 lrwxrwxrwx 1 root root 30 2月 16 08:49 armadillo.dtb -> armadillo_iotg_g4-at-dtweb.dtb -rw-r--r-- 1 root root 59915 2月 14 15:16 armadillo_iotg_g4-at-dtweb.dtb -rw-r--r-- 1 root root 690 2月 16 09:37 kernel_update_plain.desc #.descファイル書き換え後内容 atmark@atde9:~/mkswu$ cat update-dtb/kernel_update_plain.desc # We expose `--install-if different` here in two different ways for # demonstration purpose (either using the switch or setting the variable) # Anything below the variable being set will have the switch automatically # set unless they specify --install-if higher manually # Note that if a component is installed in both modes, the swu generation # will fail. # armadillo.dtb link send カーネルバージョンは元記載あったものを使用 swdesc_files --version extra_os.kernel 5.10.82-1 --dest /boot\ armadillo.dtb armadillo_iotg_g4-at-dtweb.dtb # add the kernel to files to be preserved on OS update swdesc_command --version extra_os.preserve_dtb 1 \ 'echo /boot/armadillo_iotg_g4-at-dtweb.dtb >> /etc/swupdate_preserve_files' #mkswu実行 atmark@atde9:~/mkswu$ mkswu update-dtb/kernel_update_plain.desc mkdir: ディレクトリ `update-dtb/.kernel_update_plain' を作成できません: 許可がありません
ご指摘内容の下記コード記載の、「update-dtb/update_dtb.desc」が存在しない為、
元々exampleからコピーしていた「kernel_update_plain.desc」の内容を変更しています。
※renameはエラ-がでてできませんでした。
> マルティネです。
>
>
> > atmark@atde9:~/mkswu$ mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc > > ERROR: inst/lib/modules が存在しません。 >
>
> あ、入江さんの desc ファイルではなく新しいバージョンの kernel_update_plain.desc から作りましたね。説明されてからアップデートが挟まって説明の時から差ができました。
> このエラーはただ、kernel_update_plain.desc に 「swdesc_files ... inst/lib/modules」でinst/lib/modulesディレクトリを組み込む命令があるのにファイルが存在しないというエラーですね。
> yasuda0108さんはカーネルのアップデートしたいわけではないので、この部分は不要です。
>
> armadillo_iotg_g4-at-dtweb.dtb を送りたい場合は例えば以下のコマンドをdescファイルに記載してください。
>
> # 起動するdtbの選択するarmadillo.dtbリンクと > # 作成したdtbファイルを送ります > swdesc_files --version extra_os.kernel 5.10.0-1 --dest /boot \ > armadillo.dtb armadillo_iotg_g4-at-dtweb.dtb > > # 作成したdtbファイルがアップデートで消されないように > # 保存設定ファイルに記載します > swdesc_command --version extra_os.preserve_dtb 1 \ > 'echo /boot/armadillo_iotg_g4-at-dtweb.dtb >> /etc/swupdate_preserve_files' >
>
> また、update-dtbのarmadillo.dtbのリンクが/home/...のパスへリンクするのでarmadilloに送っても動かないと思います。作成し直してからmkswuでイメージを作成してください。
>
> atmark@atde9:~/mkswu$ rm -f update-dtb/armadillo.dtb > atmark@atde9:~/mkswu$ ln -s armadillo_iotg_g4-at-dtweb.dtb update-dtb/armadillo.dtb > atmark@atde9:~/mkswu$ ls -l update-dtb/ > 合計 84 > lrwxrwxrwx 1 atmark atmark 30 2月 15 13:42 armadillo.dtb -> armadillo_iotg_g4-at-dtweb.dtb > -rw-r--r-- 1 atmark atmark 78032 2月 15 13:38 armadillo_iotg_g4-at-dtweb.dtb > -rw-r--r-- 1 atmark atmark 470 2月 15 13:44 update_dtb.desc > atmark@atde9:~/mkswu$ mkswu update-dtb/update_dtb.desc > update-dtb/update_dtb.swu を作成しました。 >
>
> このswuをインストールしたら、armadilloの/bootを確認して無事に新しいdtbが入ってる(armadillo.dtbのリンク先)かどうかを確認してください。何かアップデートで再起動できなくなる場合は自動的にインストール前のシステムに戻りますので、swupdateが成功しても最終確認が必要です。
>
>
> > atmark@atde9:~/mkswu$ sudo mkswu -o update-dtb.swu update-dtb/kernel_update_plain.desc > > ERROR: コンフィグファイルが見つかりませんでした。 mkswu --init で作成してください。 >
> こちらのエラーはただ root ユーザの環境で証明鍵等の設定ファイルが作成されなかっただけです。mkswu に sudo が必要ないので、無視してください。
>
> よろしくお願いします。
at_dominique.m…
yasuda0108さん、
> #mkswu実行 > atmark@atde9:~/mkswu$ mkswu update-dtb/kernel_update_plain.desc > mkdir: ディレクトリ `update-dtb/.kernel_update_plain' を作成できません: 許可がありません
一時的な処理のために `update-dtb/.kernel_update_plain` を作成しようとしましたが、エラーに書いてあるとおりにmkdirの許可がありません。
「ls -l update-dtb」の出力をみると、このディレクトリはrootユーザーのものなので、atmarkユーザーでは許可がたりてないですね。以前/usr/share/mkswuに変更を行っていたのでその時の影響でしょう。
このディレクトリを「chown」で atmark ユーザーに譲るとイメージ作成ができると思います。以下のコマンドで直してからもう一度mkswuを試してみてください。
sudo chown -R atmark: /home/atmark/mkswu
よろしくお願いします
yasuda0108
ありがとうございます。
権限移行し実行しましたが、下記エラ-が出力されます。
.descの記述内容が問題あるのでしょうか。
#error atmark@atde9:~/mkswu$ mkswu update-dtb/kernel_update_plain.desc ERROR: Usage: swdesc_files [options] file [files...] #kernel_update_plain.desc atmark@atde9:~/mkswu$ cat update-dtb/kernel_update_plain.desc # We expose `--install-if different` here in two different ways for # demonstration purpose (either using the switch or setting the variable) # Anything below the variable being set will have the switch automatically # set unless they specify --install-if higher manually # Note that if a component is installed in both modes, the swu generation # will fail. # armadillo.dtb link send swdesc_files --version extra_os.kernel 5.10.82-1 --dest /boot\ armadillo.dtb armadillo_iotg_g4-at-dtweb.dtb # add the kernel to files to be preserved on OS update swdesc_command --version extra_os.preserve_dtb 1 \ 'echo /boot/armadillo_iotg_g4-at-dtweb.dtb >> /etc/swupdate_preserve_files'
> yasuda0108さん、
>
>
> > #mkswu実行 > > atmark@atde9:~/mkswu$ mkswu update-dtb/kernel_update_plain.desc > > mkdir: ディレクトリ `update-dtb/.kernel_update_plain' を作成できません: 許可がありません >
>
> 一時的な処理のために `update-dtb/.kernel_update_plain` を作成しようとしましたが、エラーに書いてあるとおりにmkdirの許可がありません。
>
> 「ls -l update-dtb」の出力をみると、このディレクトリはrootユーザーのものなので、atmarkユーザーでは許可がたりてないですね。以前/usr/share/mkswuに変更を行っていたのでその時の影響でしょう。
> このディレクトリを「chown」で atmark ユーザーに譲るとイメージ作成ができると思います。以下のコマンドで直してからもう一度mkswuを試してみてください。
>
>
> sudo chown -R atmark: /home/atmark/mkswu >
>
> よろしくお願いします
yasuda0108
.descに半角スペースが存在していました。
無事swuファイル作成に成功しました。
ご丁寧にご対応ありがとうございました。
> ありがとうございます。
> 権限移行し実行しましたが、下記エラ-が出力されます。
> .descの記述内容が問題あるのでしょうか。
>
>
> #error > atmark@atde9:~/mkswu$ mkswu update-dtb/kernel_update_plain.desc > ERROR: Usage: swdesc_files [options] file [files...] > > #kernel_update_plain.desc > atmark@atde9:~/mkswu$ cat update-dtb/kernel_update_plain.desc > # We expose `--install-if different` here in two different ways for > # demonstration purpose (either using the switch or setting the variable) > # Anything below the variable being set will have the switch automatically > # set unless they specify --install-if higher manually > # Note that if a component is installed in both modes, the swu generation > # will fail. > > > # armadillo.dtb link send > swdesc_files --version extra_os.kernel 5.10.82-1 --dest /boot\ > armadillo.dtb armadillo_iotg_g4-at-dtweb.dtb > > # add the kernel to files to be preserved on OS update > swdesc_command --version extra_os.preserve_dtb 1 \ > 'echo /boot/armadillo_iotg_g4-at-dtweb.dtb >> /etc/swupdate_preserve_files' > >
>
> > yasuda0108さん、
> >
> >
> > > #mkswu実行 > > > atmark@atde9:~/mkswu$ mkswu update-dtb/kernel_update_plain.desc > > > mkdir: ディレクトリ `update-dtb/.kernel_update_plain' を作成できません: 許可がありません > >
> >
> > 一時的な処理のために `update-dtb/.kernel_update_plain` を作成しようとしましたが、エラーに書いてあるとおりにmkdirの許可がありません。
> >
> > 「ls -l update-dtb」の出力をみると、このディレクトリはrootユーザーのものなので、atmarkユーザーでは許可がたりてないですね。以前/usr/share/mkswuに変更を行っていたのでその時の影響でしょう。
> > このディレクトリを「chown」で atmark ユーザーに譲るとイメージ作成ができると思います。以下のコマンドで直してからもう一度mkswuを試してみてください。
> >
> >
> > sudo chown -R atmark: /home/atmark/mkswu > >
> >
> > よろしくお願いします
yasuda0108
at_akihito.irie
入江です。
> マニュアルの9.8.2 2.Linux カーネルディレクトリの選択にて、
> 「コンフィギュレーション済みの Linux カーネルディレクトリを選択」とありますが、
> こちらはどのような手順で用意するのでしょうか。
マニュアルの以下の箇所を実行していただくと当該ディレクトリを用意できます。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
yasuda0108
ありがとうございます。
無事デバイスツリーの設定が実行できました。
ビルド後のDTS/DTBファイルですが、マニュアルに記載のリンク内容/ファイル名と若干異なりますが、問題ございませんでしょうか。
【マニュアル】
[ATDE ~/linux-5.10]$ ls arch/arm64/boot/dts/armadillo-iotg-g4-expansion-interface.dtsi armadillo-iotg-g4-expansion-interface.dtsi [ATDE ~/linux-5.10]$ ls arch/arm64/boot/dts/armadillo_iotg_g4-at-dtweb.dtb armadillo_iotg_g4-at-dtweb.dtb
【生成データ】
atmark@atde9:~/linux-5.10-5.10.93-r0$ ls arch/arm64/boot/dts/freescale/armadillo_iotg_g4-expansion-interface.dtsi arch/arm64/boot/dts/freescale/armadillo_iotg_g4-expansion-interface.dtsi atmark@atde9:~/linux-5.10-5.10.93-r0$ ls arch/arm64/boot/dts/freescale/armadillo_iotg_g4-at-dtweb.dtb arch/arm64/boot/dts/freescale/armadillo_iotg_g4-at-dtweb.dtb
at_akihito.irie
yasuda0108
yasuda0108
作成した.swfファイルをUSBメモリにコピーし、G4に接続しましたが、自動アップデートが起動しませんでした。
手動でアップデートを実行しましたが、9.7.3記載の「①証明が間違ったメッセージ」と同様のエラ-が出ました。
こちらはどのように対処すればよいでしょうか。
#USB確認 atmark@atde9:~/mkswu$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 udev 950M 0 950M 0% /dev tmpfs 195M 1.4M 194M 1% /run /dev/mapper/atde9--vg-root 30G 14G 15G 50% / tmpfs 975M 0 975M 0% /dev/shm tmpfs 5.0M 8.0K 5.0M 1% /run/lock /dev/sda1 470M 217M 229M 49% /boot tmpfs 195M 96K 195M 1% /run/user/1000 /dev/sdb1 29G 96K 29G 1% /media/atmark/6C23-ABC1 #USBメモリ #vfatフォーマット atmark@atde9:~/mkswu$ sudo mkfs.vfat -F 32 /dev/sdb1 mkfs.fat 4.2 (2021-01-31) mkfs.vfat: /dev/sdb1 contains a mounted filesystem. #作成した.swfをUSBメモリへコピー atmark@atde9:~/mkswu/update-dtb$ cp kernel_update_plain.swu /media/atmark/6C23-ABC1 atmark@atde9:~/mkswu/update-dtb$ ls /media/atmark/6C23-ABC1 'System Volume Information' kernel_update_plain.swu atmark@atde9:~/mkswu/update-dtb$ umount /media/atmark/6C23-ABC1 #armadilloへUSBメモリ接続 rmadillo:~# [ 3141.257393] usb 2-1: USB disconnect, device number 2 [ 4033.756023] usb 2-1: new SuperSpeed Gen 1 USB device number 3 using xhci-hcd [ 4035.179067] usb-storage 2-1:1.0: USB Mass Storage device detected [ 4035.186117] scsi host0: usb-storage 2-1:1.0 [ 4036.195414] scsi 0:0:0:0: Direct-Access Innostor Innostor 1.00 PQ: 0 ANSI: 6 [ 4036.205790] sd 0:0:0:0: [sda] 60436480 512-byte logical blocks: (30.9 GB/28.8 GiB) [ 4036.213578] sd 0:0:0:0: [sda] Write Protect is off [ 4036.218513] sd 0:0:0:0: [sda] Write cache: disabled, read cache: disabled, doesn't support DPO or FUA [ 4036.250886] sda: sda1 [ 4036.255209] sd 0:0:0:0: [sda] Attached SCSI removable disk #自動でアップデートされないため、手動で実施 armadillo:~# mount -t vfat /dev/sda1 /mnt armadillo:~# ls /mnt 'System Volume Information' kernel_update_plain.swu #証明書間違い?によるアップデート失敗 armadillo:~# swupdate -i /mnt/kernel_update_plain.swu Swupdate v2021.04.0 Licensed under GPLv2. See source distribution for detailed copyright notices. [INFO ] : SWUPDATE started : Software Update started ! 281473099782928:error:2E099064:CMS routines:cms_signerinfo_verify_cert:certificate verify error:crypto/cm s/cms_smime.c:252:Verify error:self signed certificate [ERROR] : SWUPDATE failed [0] ERROR : Signature verification failed [ERROR] : SWUPDATE failed [0] ERROR : Compatible SW not found [ERROR] : SWUPDATE failed [1] Image invalid or corrupted. Not installing ... [INFO ] : No SWUPDATE running : Waiting for requests...
at_akihito.irie
入江です。
> 作成した.swfファイルをUSBメモリにコピーし、G4に接続しましたが、自動アップデートが起動しませんでした。
> 手動でアップデートを実行しましたが、9.7.3記載の「①証明が間違ったメッセージ」と同様のエラ-が出ました。
> こちらはどのように対処すればよいでしょうか。
swuパッケージを生成した際に使用した秘密鍵と、Armadilloに配置されている
公開鍵が異なるペアであるため、エラーが起こっています。
頂いているログを見る限り、initial_setup.swuが生成されているようですが、
こちらはArmadilloに適用しましたでしょうか。
initial_setup.swuは、ATDE上で生成した公開鍵をArmadilloに配置します。
そのため、最初にArmadilloに対してinitial_setupを適用しなければ、自作の
swuパッケージをインストールできません。
以上、よろしくお願いいたします。
yasuda0108
ありがとうございます。
initial_setupを適用→自作swuの流れになるのですね。理解いたしました。
ご教示いただいたとおり、initial_setupを使用することで、自動アップデート実行→再起動されました。
at-dtwebにてGPIOコネクタにUARTを追加したdtbファイルを使用し、アップデートした結果、
/dev/ttymxc2が追加されましたので、無事完了していると考えられます。
ご丁寧にご対応ありがとうございました。
> 入江です。
>
> > 作成した.swfファイルをUSBメモリにコピーし、G4に接続しましたが、自動アップデートが起動しませんでした。
> > 手動でアップデートを実行しましたが、9.7.3記載の「①証明が間違ったメッセージ」と同様のエラ-が出ました。
> > こちらはどのように対処すればよいでしょうか。
>
> swuパッケージを生成した際に使用した秘密鍵と、Armadilloに配置されている
> 公開鍵が異なるペアであるため、エラーが起こっています。
>
> 頂いているログを見る限り、initial_setup.swuが生成されているようですが、
> こちらはArmadilloに適用しましたでしょうか。
>
> initial_setup.swuは、ATDE上で生成した公開鍵をArmadilloに配置します。
> そのため、最初にArmadilloに対してinitial_setupを適用しなければ、自作の
> swuパッケージをインストールできません。
>
> 以上、よろしくお願いいたします。
>
at_shinya.koga
2021年12月23日 18時33分
アットマークテクノの古賀です。
yasuda0108さん:
>「9.1.4章 入出力デバイスを扱う」にて、「デバイスツリーファイルを適切に設定してください」とありますが、
>設定方法はどこかに記載がありますでしょうか。
>
>https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
デバイスツリーファイルの内容変更ということであれば、「9.8. Device Treeをカスタマイズする」をご覧になってみて下さい:
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
いかがでしょうか?