yasuda0108
2022年3月4日 10時48分
お世話になっております。
下記2点リンク先を参考にコンテナ自動起動を試しておりますが、再起動後コンテナが自動起動されません。
問題点がありましたらご教示頂けますでしょうか。
https://armadillo.atmark-techno.com/blog/15349/10743
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
以下現状です。
#Imageファイル armadillo:~# podman images REPOSITORY TAG IMAGE ID CREATED SIZE localhost/image_name qt-build_v0.1 10a0e7ad1a86 Less than a second ago 1.75 GB #コンテナ armadillo:~# podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6a6382bab95e localhost/image_name:qt-build_v0.1 ls / About a minute ago Exited (0) About a minute ago qt-auto #コンテナ(-aを付けない場合何も表示されない) armadillo:~# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES #コンテナ作成時コマンド # podman run -itd --name=qt-auto \ --env=LD_LIBRARY_PATH=/opt/firmware/usr/lib/aarch64-linux-gnu \ --env=QT_QPA_PLATFORM=linuxfb \ --device=/dev/dri \ --device=/dev/galcore \ --device=/dev/fb0 \ --volume=/sys:/sys \ --volume=/dev:/dev \ --volume=/run/udev:/run/udev \ --volume=/opt/firmware:/opt/firmware \ --privileged \ localhost/localhost/image_name:qt-build_v0.1 /bin/bash #confファイル #Windows上でメモ帳にて.conf作成後、G4へコピーし、viエディタで改行削除整備 #persist_fileにて永続化済のため、reboot後に消えていないことを確認済み armadillo:~# cat /etc/atmark/containers/qt-auto.conf image="localhost/image_name:qt-build_v0.1" volumes="/sys:/sys /dev:/dev /run/udev:/run/udev /opt/firmware:/opt/firmware" devices="/dev/dri /dev/galcore /dev/fb0" readonly=true autostart=yes append_args=--env=LD_LIBRARY_PATH=/opt/firmware/usr/lib/aarch64-linux-gnu,--env=QT_QPA_PLATFORM=linuxfb set_command ls / #再起動時の状態 Welcome to Alpine! The Alpine Wiki contains a large amount of how-to guides and general information about administrating Alpine systems. See <http://wiki.alpinelinux.org/>. Please note this system is READ-ONLY with a read-write overlayfs, after updating password make sure to save new password with # persist_file /etc/shadow You can change this message by editing /etc/motd. armadillo:~#
コメント
yasuda0108
at_dominique.m…
> #1 コンテナ起動 > armadillo:~# podman start -a qt-test > #2 ディレクトリ移動 > root@05bdef5007ed:/# cd /home/qttest > #3 実行 > root@05bdef5007ed:/# ./qttest
了解しました。
最終的には append_args -w /home/qtest
と set_command ./qttest
で実行することを推奨しますが、
先ほど提案した append_args -ti
と set_command bash
で実装可能です:
armadillo:~# cat /etc/atmark/containers/shell.conf
image=localhost/at-debian-image:latest
append_args -ti
set_command bash
armadillo:~# podman_start shell
Starting 'shell'
0620a7f12653c31017164bc6134b7c76d74e5c6ebb5eb03b67bbe1a204be2b28
armadillo:~# podman attach shell
root@0620a7f12653:/# cd ...
ctrl-p ctrl-q を入力 ("detach")
armadillo:~#
yasuda0108
at_dominique.m…
yasuda0108さん
お待たせしました。
fbsplashだけでも問題ないようです。サービスをsysinitで有効にすると綺麗に黒い画面からsplashイメージに変わって、その次にコンテナで起動したwestonに移ります。
画面が黒いままの時間は数秒ありますが、u-bootのHDMIドライバーに開発が必要ためにこれ以上早く表示することはできません。今後実装するかもしれませんが今のところに予定がないです。
# PCなどで好みのイメージをppmに変更して、Armadilloに転送します PC$ curl -O https://armadillo.atmark-techno.com/sites/armadillo.atmark-techno.com/files/2022-03/about_iot-gw_Armadillo-IoT_G4.png PC$ convert about_iot-gw_Armadillo-IoT_G4.png about_iot-gw_Armadillo-IoT_G4.ppm PC$ scp about_iot-gw_Armadillo-IoT_G4.ppm armadillo-g4:/boot/splash.ppm about_iot-gw_Armadillo-IoT_G4.ppm 100% 633KB 25.4MB/s 00:00 armadillo# cat /etc/init.d/fbsplash #!/sbin/openrc-run name="splash screen" start() { fbsplash -s /boot/splash.ppm } armadillo# chmod +x /etc/init.d/fbsplash armadillo# rc-update add fbsplash sysinit armadillo# persist_file -vP /etc/init.d/fbsplash /boot/splash.ppm /etc/runlevels/sysinit/fbsplash '/etc/init.d/fbsplash' -> '/mnt/etc/init.d/fbsplash' '/boot/splash.ppm' -> '/mnt/boot/splash.ppm' '/etc/runlevels/sysinit/fbsplash' -> '/mnt/etc/runlevels/sysinit/fbsplash' armadillo# reboot
よろしくお願いします
yasuda0108
ありがとうございます。
persist_fileのオプションが正しくない旨が表記されます。
こちらは、-rvでも問題ないのでしょうか?
armadillo:~# persist_file -vP /etc/init.d/fbsplash \ > /boot/pilerman.ppm /etc/runlevels/sysinit/fbsplash Illegal option -P Usage: /usr/bin/persist_file [options] file [more files...] Options: -l go lower in lower hierarchy, can be passed multiple times -r recursive copy -d delete path from layer for intermediate layer, this deletes any persistent copy and masks anything from the lower level -D delete path from layer, but do not mask it afterward -a apk mode: pass any argument after that to apk on rootfs -v verbose Note this directly manipulates overlayfs lower directories so might need a reboot to take effect
at_dominique.m…
> persist_fileのオプションが正しくない旨が表記されます。
> こちらは、-rvでも問題ないのでしょうか?
いいえ、-vP であっています。
-P は 2021年12月のアップデートで搭載されたので、アップデートしてください:
https://armadillo.atmark-techno.com/news/20220224/update-aiotg4
(アップデートの際にpersist_filesで保存したファイルは/etc/swupdate_preserve_filesに乗っていなかったら消えるのでご注意ください)
-P はまさに /etc/swupdate_preserve_files に自動的に追加するためのオプションなので、使わなくてもすぐ困るようなことはないと思いますが、更新あるいは自動更新しましょう。
今の手順をBaseOS 3.14版で行う場合は/bootにかけないと思いますので、その場合は別のところにしてください。
よろしくお願いします。
yasuda0108
at_dominique.m…
> アップデートについてですが、例えば
> /etc/atmark/containers/qt-auto.conf
> /boot/splash.ppm
> など、追加したファイルを/etc/swupdate_preserve_filesにコピーしておく必要があるという事でしょうか?
/etc/atmark下のファイルはデフォルトの設定では自動的にコピーされますので、コンテナのコンフィグファイルに関しては問題なく使いつづけます。
他のファイルは基本的に「変更されそう」なファイルだけをデフォルトに入れたので、/boot/splash.ppmはそちらに乗っていません。
マニュアルにちゃんとした手順を書いてサポートするやり方が決まればそのファイルを追加すると思いますが、今のところは自分で管理するしかありません。
デフォルトになっている詳細はこちらで確認できます:
https://github.com/atmark-techno/mkswu/blob/main/scripts/pre_rootfs.sh#…
(バージョン管理されてるので、バージョンの部分を変更しない限りは自由に足し引きできます)
何かまだ不明な点あったら聞いてください。
よろしくお願いします
yasuda0108
yasuda0108
お世話になっております。
リンク先のものにバージョンアップの実施を致しました。
https://armadillo.atmark-techno.com/news/20220224/update-aiotg4
その際、下記で対応頂いた内容が更新され、削除されました。
https://armadillo.atmark-techno.com/forum/armadillo/10684
https://armadillo.atmark-techno.com/forum/armadillo/11028
※デバイスツリーアップデート→USBドライバアップデートの際、swupdateで更新した内容については、上書き更新されませんでしたので、
今回も同様、更新されないものと考えてしまっていました。
以前作成したswuファイルを用いて復旧を試しましたが(フォーラム:デバイスツリーファイルについてにて作成)、
下記のようなエラーのため、アップデートできない状況です。
armadillo:~# mount -t vfat /dev/sda1 /mnt 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 ! [ERROR] : SWUPDATE failed [0] ERROR : ---------------------------------------------- [ERROR] : SWUPDATE failed [0] ERROR : /!\ Nothing to do -- failing on purpose to save bandwidth [ERROR] : SWUPDATE failed [0] ERROR : ---------------------------------------------- [ERROR] : SWUPDATE failed [0] ERROR : Command failed: sh -c 'rm -rf ${TMPDIR:-/var/tmp}/scripts && mkdir ${TMPDIR:-/var/tmp}/scripts && cd $ {TMPDIR:-/var/tmp}/scripts && tar x -vf $1 && ./swupdate_pre.sh' -- /var/tmp//scripts.tar.zst.enc [ERROR] : SWUPDATE failed [0] ERROR : Error streaming scripts.tar.zst.enc [ERROR] : SWUPDATE failed [1] Image invalid or corrupted. Not installing ... [INFO ] : No SWUPDATE running : Waiting for requests...
ついては、下記2点ご回答お願い致します。
①こちら復旧するためには、どのような手順を追っていくのが良いのでしょうか。
②アップデートの際に、過去実施したswupdateの内容が消えないようにするためには、どうすれば良いのでしょうか。
at_dominique.m…
yasuda0108さん、
お世話になっています。
> ※デバイスツリーアップデート→USBドライバアップデートの際、swupdateで更新した内容については、上書き更新されませんでしたので、
> 今回も同様、更新されないものと考えてしまっていました。
base_os 以外の物を更新するときに rootfs をそのままコピーして、swu の内容を足す形になりますが、
base_os を更新する度に空の状態からアップデートをインストールします。
その際、/etc/swupdate_preserve_files に記載されてる内容だけをアップデートの前後にコピーして、そのファイルだけが残ります。
> その際、下記で対応頂いた内容が更新され、削除されました。
> https://armadillo.atmark-techno.com/forum/armadillo/10684
> https://armadillo.atmark-techno.com/forum/armadillo/11028
この二つのリンクを見ると,「POST /boot」を/etc/swupdate_preserve_files に追加するので、手動で入れたカーネルやdtbが保存されます。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
の「9.7.5.1. swupdate_preserve_files について」に少し説明があります。
> [ERROR] : SWUPDATE failed [0] ERROR : ---------------------------------------------- > [ERROR] : SWUPDATE failed [0] ERROR : /!\ Nothing to do -- failing on purpose to save bandwidth > [ERROR] : SWUPDATE failed [0] ERROR : ----------------------------------------------
このエラーは「更新されるような内容がこのアップデートにありません」の意味で、
現在起動中の Armadillo にすでにこの swu をインストールしたときに表示されます。
今回、まったく同じ物でもいいので、/etc/sw-versions を手動で編集してこの swu のバージョン(extra_os*等)を消したらまたインストールできます。
swu だけで対応したい場合にはただ swu の中のバージョンを上げればまたインストールできます。
本来、extra_os.*のアップデートはその内容をswupdate_preserve_filesに載せるべきと考えていますので、
同じ swu を何回もインストールすることは少ないと思っています。
> ①こちら復旧するためには、どのような手順を追っていくのが良いのでしょうか。
> ②アップデートの際に、過去実施したswupdateの内容が消えないようにするためには、どうすれば良いのでしょうか。
この二つの質問に答えたと思いますが、何か不明な点があったらまた聞いてください。
よろしくお願いします。
yasuda0108
> base_os 以外の物を更新するときに rootfs をそのままコピーして、swu の内容を足す形になりますが、
> base_os を更新する度に空の状態からアップデートをインストールします。
> その際、/etc/swupdate_preserve_files に記載されてる内容だけをアップデートの前後にコピーして、そのファイルだけが残ります。
内容について、理解いたしました。
>
> この二つのリンクを見ると,「POST /boot」を/etc/swupdate_preserve_files に追加するので、手動で入れたカーネルやdtbが保存されます。
>
> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
> の「9.7.5.1. swupdate_preserve_files について」に少し説明があります。
>
>
> > [ERROR] : SWUPDATE failed [0] ERROR : ---------------------------------------------- > > [ERROR] : SWUPDATE failed [0] ERROR : /!\ Nothing to do -- failing on purpose to save bandwidth > > [ERROR] : SWUPDATE failed [0] ERROR : ---------------------------------------------- >
>
> このエラーは「更新されるような内容がこのアップデートにありません」の意味で、
> 現在起動中の Armadillo にすでにこの swu をインストールしたときに表示されます。
>
> 今回、まったく同じ物でもいいので、/etc/sw-versions を手動で編集してこの swu のバージョン(extra_os*等)を消したらまたインストールできます。
> swu だけで対応したい場合にはただ swu の中のバージョンを上げればまたインストールできます。
既にインストール済みと認識されてしまう為に、swuの再インストールが出来ないということですね。
現状の/etc/sw-versionsですが、下記extra_os.initial_setup 1以外を上書き消去すれば再インストールできるということでしょうか。
armadillo:~# ls /etc/sw-versions /etc/sw-versions armadillo:~# cat /etc/sw-versions base_os 3.15.0-at.3 extra_os.initial_setup 1 extra_os.kernel 5.10.82-1 extra_os.preserve_dtb 1 extra_os.firmware-moxa 1 other_boot 2020.04-at5 boot 2020.04-at5
> 本来、extra_os.*のアップデートはその内容をswupdate_preserve_filesに載せるべきと考えていますので、
> 同じ swu を何回もインストールすることは少ないと思っています。
デバイスツリー/USBドライバ設定にて実施したswupdateは、swupdate_preserve_filesに載っていないということでしょうか?
at_dominique.m…
> > このエラーは「更新されるような内容がこのアップデートにありません」の意味で、
> > 現在起動中の Armadillo にすでにこの swu をインストールしたときに表示されます。
> >
> > 今回、まったく同じ物でもいいので、/etc/sw-versions を手動で編集してこの swu のバージョン(extra_os*等)を消したらまたインストールできます。
> > swu だけで対応したい場合にはただ swu の中のバージョンを上げればまたインストールできます。
>
> 既にインストール済みと認識されてしまう為に、swuの再インストールが出来ないということですね。
はい。
手動インストールするだけであれば面倒に思えるかもしれませんが、自動インストールでは永遠に同じ物をダウンロードすると困ります。
> 現状の/etc/sw-versionsですが、下記extra_os.initial_setup 1以外を上書き消去すれば再インストールできるということでしょうか。
そうですね、今のswuに使われてるバージョンが分かりませんが恐らくインストールできます。
.descファイルに確認すれば確認できますが、以下のコマンドですでに作成された .swu でも確認できます:
$ cpio --quiet -i --to-stdout sw-description < usb_container_nginx.swu | grep VERSION #VERSION container_nginx 1 #VERSION extra_os.nginx 1
> > 本来、extra_os.*のアップデートはその内容をswupdate_preserve_filesに載せるべきと考えていますので、
> > 同じ swu を何回もインストールすることは少ないと思っています。
>
> デバイスツリー/USBドライバ設定にて実施したswupdateは、swupdate_preserve_filesに載っていないということでしょうか?
いいえ、インストール方法関係なくバージョンで許された部分は実行されます。
恐らくですが、最初にインストールした swu で swupdate_preserve_files の更新がなくて、それ以降の swu が同じバージョンで swupdate_preserve_files の部分が実行されませんでしょうか?
リンクしてくださったフォーラムの記事をもう一度よんでいたら、dtbの部分は「extra_os.kernel 5.10.0-1」で設定されてますが、現在の sw-versions に 5.10.82-1 が乗ってますので、swu の swupdate_preserve_files の部分が実行されなかったと思います。
念のため、swu でインストールした後に swupdate_preserve_files の内容を確認してください。
よろしくお願いします。
yasuda0108
ご指摘いただいた方法で、無事再インストールが完了しました。
ありがとうございました。
ちなみにですが、現在のetc/swupdate_preserve_filesは下記になります。
armadillo:~# cat /etc/swupdate_preserve_files ### Files listed here will be copied over when rootfs is updated ### You can freely add or remove files from the list, removed ### entries will not be added back as long as the below line is ### kept intact. Do not remove or change! PRESERVE_FILES_VERSION 2 # file can be prefixed with POST to be copied after rootfs is # extracted, e.g. #POST /boot # would preserve the installed kernel without rebuilding a custom # image if uncommented (destination is removed before copy) # v1 list: base files, swupdate, ssh and network config /etc/atmark /etc/fstab /etc/motd /etc/conf.d/overlayfs /etc/swupdate_preserve_files /etc/hwrevision /etc/swupdate.cfg /etc/swupdate.pem /etc/swupdate.aes-key /etc/runlevels/default/swupdate-hawkbit /etc/conf.d/swupdate-hawkbit /etc/runlevels/default/swupdate-url /etc/conf.d/swupdate-url /etc/swupdate.watch /etc/runlevels/default/sshd /etc/ssh /root/.ssh /home/atmark/.ssh /etc/hostname /etc/network /etc/resolv.conf /etc/NetworkManager/system-connections # v2 list: dtb symlink, ca-certificates, local.d /boot/armadillo.dtb /usr/local/share/ca-certificates /etc/local.d /etc/runlevels/default/local /boot/armadillo_iotg_g4-at-dtweb.dtb /boot/armadillo_iotg_g4-at-dtweb.dtb
デバイスツリー変更(kernel_update_plain.desc)の方は、/etc/swupdate_preserve_filesにコピーされているようです。
USBドライバ(kernel_firmware_update.desc)の方は、/etc/swupdate_preserve_filesにコピーできていないように見えます。
何か問題点がありましたら、ご指摘頂けますと幸いです。
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' atmark@atde9:~/mkswu$ cat for-moxa-uport1130/kernel_firmware_update.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. swdesc_files --version extra_os.kernel 5.10.82-1 \ --install-if different --dest /boot \ "Image" swdesc_command "apk add linux-firmware-moxa" --version extra_os.firmware-moxa 1 install_if=different swdesc_command --version extra_os.kernel 5.10.82-1 \ 'grep -qE "^POST /boot" /etc/swupdate_preserve_files || echo -e "POST /boot\nPOST /lib/modules" >> /etc/swupdate_preserve_files'
at_dominique.m…
swupdate_preserve_files: > /boot/armadillo_iotg_g4-at-dtweb.dtb > /boot/armadillo_iotg_g4-at-dtweb.dtb kernel_update_plain.desc: > swdesc_files --version extra_os.kernel 5.10.82-1 --dest /boot \ > armadillo.dtb armadillo_iotg_g4-at-dtweb.dtb > > swdesc_command --version extra_os.preserve_dtb 1 \ > 'echo /boot/armadillo_iotg_g4-at-dtweb.dtb >> /etc/swupdate_preserve_files' kernel_firmware_update.desc: > swdesc_files --version extra_os.kernel 5.10.82-1 \ > --install-if different --dest /boot \ > "Image" > > swdesc_command "apk add linux-firmware-moxa" --version extra_os.firmware-moxa 1 > > install_if=different > swdesc_command --version extra_os.kernel 5.10.82-1 \ > 'grep -qE "^POST /boot" /etc/swupdate_preserve_files || echo -e "POST /boot\nPOST /lib/modules" >> /etc/swupdate_preserve_files'
> デバイスツリー変更(kernel_update_plain.desc)の方は、/etc/swupdate_preserve_filesにコピーされているようです。
> USBドライバ(kernel_firmware_update.desc)の方は、/etc/swupdate_preserve_filesにコピーできていないように見えます。
> 何か問題点がありましたら、ご指摘頂けますと幸いです。
やはり、バージョンの問題でしょうか。
swupdate_preserve_files に kernel_update_plain の行が二回足されたので、そちらを2回とも(アップデートの前後)先にインストールしていですね。
そちらをインストールした時に、/etc/sw-versions に「extra_os.kernel 5.10.82-1」が記録されたので、次に「kernel_firmware_update」をインストールしたときに「extra_os.kernel > 5.10.82-1」の条件が満たされてなかったです。
こうなると、「extra_os.firmware-moxa」の部分だけがインストールされたので、恐らく前回と同じく/boot/Imageもインストールされなかったではないでしょうか?
前回何でインストールされなかったって疑問がありましたが、このバージョンの問題でしたね。
この「部分的にインストールする」機能はarmadilloが多い時にアップデートをスキップしても、swuに必要な物をすべて入れることで必要な物だけをインストールする機能の意味でしたが、こういう時には迷惑でしたね…こうならないように、できるだけ swu 一つ = バージョン 一つで管理すると楽だと思います。
当時に不便な物をおすすめして申し訳ございませんでした。直しましょう。
ちなみに、kernel_firmware_update の swupdate_preserve_files の部分は確かにカーネルを保存するようにしますが、ファームウェアの部分を保存しないので、この行が足されたとしてもアップデートの時にはシリアルを使えなくなったでしょう。
以下のコンフィグを使ってみてください。
swdesc_files --version extra_os.kernel_firmware_update 1 \ --dest /boot "Image" swdesc_command "apk add linux-firmware-moxa" --version extra_os.kernel_firmware_update 1 swdesc_command --version extra_os.kernel_firmware_update 1 \ 'echo -e "# kernel_firmware_update 1\nPOST /boot\nPOST /lib/modules\n/lib/firmware/moxa" >> /etc/swupdate_preserve_files'
違いは:
- バージョンをわかりやすく、swuファイルの名前にしました。
- swupdate_preserve_files の部分に /lib/firmware/moxa といつ足されたのコメントを足しました
- swupdate_preserve_files に「二回足さない」チェックを外しましたが、そちらはバージョンで管理するので必要ありません。
よろしくお願いします。
yasuda0108
> やはり、バージョンの問題でしょうか。
> swupdate_preserve_files に kernel_update_plain の行が二回足されたので、そちらを2回とも(アップデートの前後)先にインストールしていですね。
> そちらをインストールした時に、/etc/sw-versions に「extra_os.kernel 5.10.82-1」が記録されたので、次に「kernel_firmware_update」をインストールしたときに「extra_os.kernel > 5.10.82-1」の条件が満たされてなかったです。
> こうなると、「extra_os.firmware-moxa」の部分だけがインストールされたので、恐らく前回と同じく/boot/Imageもインストールされなかったではないでしょうか?
>
> 前回何でインストールされなかったって疑問がありましたが、このバージョンの問題でしたね。
> この「部分的にインストールする」機能はarmadilloが多い時にアップデートをスキップしても、swuに必要な物をすべて入れることで必要な物だけをインストールする機能の意味でしたが、こういう時には迷惑でしたね…こうならないように、できるだけ swu 一つ = バージョン 一つで管理すると楽だと思います。
>
> 当時に不便な物をおすすめして申し訳ございませんでした。直しましょう。
確かに、今回も/boot/Imageはインストールされませんでした。
/etc/sw-versionsへ先に更新があるものに対し、アップデートがかからないようになる前回お教えいただいた仕様によって、/boot/Imageが更新されなかったということですね。内容理解いたしました。
なるべく一つのswuで管理していくように進めていきます。
こちらの知識不足でお手数をお掛けする中、ご丁寧に解説して頂き、誠にありがとうございます。
> ちなみに、kernel_firmware_update の swupdate_preserve_files の部分は確かにカーネルを保存するようにしますが、ファームウェアの部分を保存しないので、この行が足されたとしてもアップデートの時にはシリアルを使えなくなったでしょう。
>
> 以下のコンフィグを使ってみてください。
>
> swdesc_files --version extra_os.kernel_firmware_update 1 \ > --dest /boot "Image" > > swdesc_command "apk add linux-firmware-moxa" --version extra_os.kernel_firmware_update 1 > > swdesc_command --version extra_os.kernel_firmware_update 1 \ > 'echo -e "# kernel_firmware_update 1\nPOST /boot\nPOST /lib/modules\n/lib/firmware/moxa" >> /etc/swupdate_preserve_files' >
>
> 違いは:
> - バージョンをわかりやすく、swuファイルの名前にしました。
> - swupdate_preserve_files の部分に /lib/firmware/moxa といつ足されたのコメントを足しました
> - swupdate_preserve_files に「二回足さない」チェックを外しましたが、そちらはバージョンで管理するので必要ありません。
>
確認しましたが、USBシリアル通信は確かに使用できませんでした。
お教えいただいたコンフィグファイルを使用し、再度トライしてみます。
at_dominique.m…
2022年3月4日 11時31分
yasuda0108さん、
アットマークテクノのマルティネです。 お世話になっています。
以下の行動は正しいと思います。
podman ps -a
の出力にls -a
のコマンドが実行された形跡があり、ls
のプロセスが終了されたのでコンテナも同時に終了されたとのことですね。何を実行しようとしてしていますか? 手動の実行と同じくただshellを開いて次に
podman attach
ができる状態にしたかったら、set_command bash
で同じく設定した上にappend_args -ti
で手動のコンテナと同じttyの作成命令を設定必要があります。テストのため、再起動しなくても
podman_start -a
で起動時のコンテナを立ち上がりますので、コンフィグファイルの作成の時に使ってみてください。ちなみに、コンフィグファイルですが:
append_args は環境変数ではなくコマンドとして扱うべきなので、
か
にしてください。
よろしくお願いします。