NI-Linuxリアルタイムシステムにおける2038年問題

更新しました Jul 21, 2026

環境

ソフトウェア

  • NI Linux RT System Image

オペレーティング・システム

  • LabVIEW Real-Time (NI Linux Real-Time)

NI Linux Real-Time システムを長期運用する場合、NI Linux Real-Time OS が2038年問題の影響を受けるかどうか、また NI がどのような対策を行ったかを理解することは重要です。

2038年問題は、タイムスタンプを 32 ビット符号付き整数で保持する Linux システムに影響します。この値は 2038 年 1 月 19 日 03:14:07 UTC にオーバーフローします。NI Linux Real-Time OS では、ターゲット上の ext4 ファイルシステム(/boot および /etc/natinst/share にマウントされるパーティション)が 128 バイト inode でフォーマットされていたことが主なリスクでした。128 バイト inode は 32 ビットで表現可能な範囲のタイムスタンプに制限されます。2038 年以降のタイムスタンプをサポートするには、256 バイト inode でフォーマットする必要があります。

修正状況

この問題は、x64 ベースの NI Linux Real-Time ターゲットについて確認されており、すでに修正されています。

  • ターゲットのプロビジョニング時に、影響を受けるファイルシステムを 256 バイト inode(mkfs.ext4 -I 256) でフォーマットするよう修正されました。
  • この修正は、 NI Linux Real-Time OS 2022 Q3以降に含まれています。
  • この修正を適用するには、NI Linux RT Provisioningツールを使用して、リカバリ用USBドライブからNI Linux RT 2022 Q3以降のバージョンを使用してターゲットを完全に再プロビジョニングする必要があります。

⚠️重要:新しい Base System Image(BSI)をインストールするだけ、あるいは Safemode をアップグレードするだけでは、この修正は適用されません。inode サイズはファイルシステムのフォーマット時に決定されるため、変更するにはリカバリ USB ドライブを使用した完全な再プロビジョニングが必要です。

注:この修正は x64 ベースの NI Linux Real-Time ターゲットのみに適用されます。ARM32 ベースのターゲットについては、2038年問題対応がまだ完全には実施されていません。ターゲットのプロセッサアーキテクチャは、SSH 接続後にuname -m コマンドを実行することで確認できます。

 

ターゲットが保護されていることの確認方法

NI Linux RT 2022 Q3 以降を使用して完全に再プロビジョニングした後、SSH 経由でターゲットに接続し、すべての ext4 パーティション(/dev/sda2、/dev/sda3、/dev/sda4)に対して以下のコマンドを実行することで inode サイズを確認できます。

 tune2fs -l /dev/sda2 | grep "Inode size"
tune2fs -l /dev/sda3 | grep "Inode size"
tune2fs -l /dev/sda4 | grep "Inode size"

結果がInode size: 256の場合、修正が適用済みであることを示します。

結果がInode size: 128の場合、ターゲットは完全な再プロビジョニングが行われておらず、引き続きこの問題の影響を受ける状態です。