Year 2038 (Y2038) Timestamp Issue on NI Linux Real-Time Systems

Updated Jul 21, 2026

Environment

Software

  • NI Linux RT System Image

Operating System

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

Customers deploying NI Linux Real-Time systems in long-lifecycle applications need to understand whether NI Linux Real-Time OS is affected by the Year 2038 (Y2038) Unix timestamp overflow problem, and what NI has done to address it.

The Year 2038 problem affects Linux systems that store timestamps as a 32-bit signed integer — this value overflows on January 19, 2038 at 03:14:07 UTC. On NI Linux Real-Time OS, the specific risk was that ext4 filesystems on the target (mounted at /boot and /etc/natinst/share) were formatted with 128-byte inodes, which are limited to timestamps representable in 32 bits. Formatting with 256-byte inodes is required to support timestamps beyond the 2038 boundary.

Fix Status

This issue has been identified and resolved for x64-based NI Linux Real-Time targets:

  • The fix formats the affected filesystems with 256-byte inodes (mkfs.ext4 -I 256) during target provisioning.
  • The fix is included in NI Linux Real-Time OS 2022 Q3 and later.
  • To apply the fix, you must fully reprovision the target from a recovery USB drive using NI Linux RT 2022 Q3 or newer via the NI Linux RT Provisioning tool.

⚠️ Important: Simply installing a new Base System Image (BSI) or upgrading safemode is not sufficient to apply this fix. The inode size is set at filesystem format time and can only be changed by a full reprovision from a recovery USB drive.

Note: This fix applies to x64-based NI Linux Real-Time targets only. Y2038 compatibility has not been fully addressed on ARM32-based targets. You can determine your target's processor architecture by running uname -m over SSH.

 

Verifying Your Target is Protected

After fully reprovisioning with NI Linux RT 2022 Q3 or later, you can verify inode size on the target via SSH by  running the following command on all ext4 partitions (/dev/sda2, /dev/sda3, and /dev/sda4):

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

A result of Inode size: 256 confirms the fix is in place. A result of Inode size: 128 means the target has not been fully reprovisioned and remains affected.