Armadilloフォーラム

Linuxカーネルの自動アップデートの停止方法について

imai98

2023年7月27日 15時02分

お世話になっております。

しばらく操作していなかったデバイスにシリアルコンソールでログインし、インターネットに接続してrebootした際に、Linuxカーネルのバージョンが
Alpine Linux 3.17 Kernel 5.10.164-0-at
から
Alpine Linux 3.17 Kernel 5.10.185-0-at
に自動でアップデートされました。

以下のArmadillo Base OSのアップデート
https://armadillo.atmark-techno.com/news/20230629/update-aiotg4
が適用されたものだと思われますが、この自動でのアップデートを停止する方法を教えていただきたいです。
Linuxカーネルを変更する開発を考えており、自動でアップデートされてしまうのは少し都合が悪いという状況です。

ドキュメント、フォーラム内を探してみたのですが記載が見つからずお伺いしました。既出でしたら申し訳ありません。

よろしくお願いいたします。

コメント

at_dominique.m…

2023年7月27日 16時15分

imai98さん

> しばらく操作していなかったデバイスにシリアルコンソールでログインし、インターネットに接続してrebootした際に、Linuxカーネルのバージョンが
> Alpine Linux 3.17 Kernel 5.10.164-0-at
> から
> Alpine Linux 3.17 Kernel 5.10.185-0-at
> に自動でアップデートされました。
>
> 以下のArmadillo Base OSのアップデート
> https://armadillo.atmark-techno.com/news/20230629/update-aiotg4
> が適用されたものだと思われますが、この自動でのアップデートを停止する方法を教えていただきたいです。

その自動アップデートの説明は分かりにくいですが、マニュアル「10.10.3. イメージのインストール」の「 ウェブサーバーからの定期的な自動インストール 」に説明されています:
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…

そこに有効の説明しかないですが、無効化も単純にサービスを無効にするだけですので以下のコマンドで無効 / 停止できます:

armadillo# persist_file -d /etc/runlevels/default/swupdate-url
armadillo# rc-service swupdate-url stop

(SWU で無効化したいばあいは、「swdesc_command rc-update del swupdate-url」だけでいいです。)

ちなみに、Armadillo のデフォルト状態では自動アップデートが無効になっています。
mkswu --init を実行した際に、「自動アップデートしますか?」と聞かれたはずで、そこでどのスケジュールでアップデートを確認するかを決めれますので、恐らくその時に有効にしてくれたと思いますので、新しい機会に initial_setup が必要な場合は ATDE の ~/mkswu/initial_setup.desc から swupdate-url の有効コマンドをはずして、再び mkswu で swu を更新してください。

> Linuxカーネルを変更する開発を考えており、自動でアップデートされてしまうのは少し都合が悪いという状況です。

Armadillo Base OS の設計としてはアップデートしても影響にならないように開発していますが、具体的に困っている点を教えていただけたら助かります。
例えば、再起動でコンテナの状態をなくした場合はボリュームを適切に使えば保存したいデーターを eMMC に残せます。
他の場合も、ちょっとだけ情報あれば回避できると思いますので、マニュアル等の見直しのためにも意見を共有していただけたら幸いです。

よろしくお願いします。

imai98

2023年7月28日 9時46分

> そこに有効の説明しかないですが、無効化も単純にサービスを無効にするだけですので以下のコマンドで無効 / 停止できます:
>

> armadillo# persist_file -d /etc/runlevels/default/swupdate-url
> armadillo# rc-service swupdate-url stop
> 

> (SWU で無効化したいばあいは、「swdesc_command rc-update del swupdate-url」だけでいいです。)
早急なご対応ありがとうございます。停止できたようです。
また、ドキュメントに確かに記載がありました、確認不足で失礼しました。

> mkswu --init を実行した際に、「自動アップデートしますか?」と聞かれたはずで、そこでどのスケジュールでアップデートを確認するかを決めれますので、恐らくその時に有効にしてくれたと思いますので、新しい機会に initial_setup が必要な場合は ATDE の ~/mkswu/initial_setup.desc から swupdate-url の有効コマンドをはずして、再び mkswu で swu を更新してください。
次回以降機会がありましたらそのようにさせていただきます。ありがとうございます。

> Armadillo Base OS の設計としてはアップデートしても影響にならないように開発していますが、具体的に困っている点を教えていただけたら助かります。
> 例えば、再起動でコンテナの状態をなくした場合はボリュームを適切に使えば保存したいデーターを eMMC に残せます。
> 他の場合も、ちょっとだけ情報あれば回避できると思いますので、マニュアル等の見直しのためにも意見を共有していただけたら幸いです。
こちらですが、主に研究目的での開発を行っており、opteeのドライバの実装を部分的に変更することを考えているためLinuxカーネルのバージョンが一定である方がありがたいという次第です。現状カーネルモジュールの開発であり、Linux本体に手を加えるような開発ではありませんが、opteeのドライバのソースコードがLinuxカーネルのバージョンによってかなり変更されているがゆえに、カーネルモジュールからフックする関数が削除・変更されてまうと困るというものです。

ご対応大変お手数おかけしました。
ありがとうございます。

at_dominique.m…

2023年7月28日 13時38分

imai98さん、

マルティネです。

さっそくの返事ありがとうございます。

> > Armadillo Base OS の設計としてはアップデートしても影響にならないように開発していますが、具体的に困っている点を教えていただけたら助かります。
> > 例えば、再起動でコンテナの状態をなくした場合はボリュームを適切に使えば保存したいデーターを eMMC に残せます。
> > 他の場合も、ちょっとだけ情報あれば回避できると思いますので、マニュアル等の見直しのためにも意見を共有していただけたら幸いです。
>
> こちらですが、主に研究目的での開発を行っており、opteeのドライバの実装を部分的に変更することを考えているためLinuxカーネルのバージョンが一定である方がありがたいという次第です。現状カーネルモジュールの開発であり、Linux本体に手を加えるような開発ではありませんが、opteeのドライバのソースコードがLinuxカーネルのバージョンによってかなり変更されているがゆえに、カーネルモジュールからフックする関数が削除・変更されてまうと困るというものです。

optee とご自分のカーネルモジュールを開発/研究していますね。了解しました。
参考までに、カーネルの方は、最近の「/usr/share/mkswu/examples/kernel_update_plain.install.sh でのカーネルインストール」を使った場合に、カーネルのファイル(/boot と /lib/modules)が swupdate_preserve_files の仕組みで永続化されてますので OS アップデートの場合でも保存します。
今回は imx-boot/optee もアップデートしないようにする必要がありますが、boot イメージを「フリーズ」する方法がないので、自動アップデートを無効化して正解だと思います。secure boot 等と同じですね、アップデートの手間がどうしても出ています…

また何かあったらまた聞いてください。