systemd 在 clock_gettime 后中止
systemd aborts in clock_gettime
在 5.4 内核或更高版本的 32 位内核上启动 systemd 时 CPU,systemd 中止:
Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at ../src/basic/time-util.c:55, function now(). Aborting.
为什么?
在构建 Linux 内核时启用 CONFIG_COMPAT_32BIT_TIME
。这样做将启用相关的系统调用。当系统调用不可用时,它将 return -ENOSYS
触发断言。
在 5.4 左右禁用变得更容易,现在可以通过 allnoconfig
来禁用。
在 5.4 内核或更高版本的 32 位内核上启动 systemd 时 CPU,systemd 中止:
Assertion 'clock_gettime(map_clock_id(clock_id), &ts) == 0' failed at ../src/basic/time-util.c:55, function now(). Aborting.
为什么?
在构建 Linux 内核时启用 CONFIG_COMPAT_32BIT_TIME
。这样做将启用相关的系统调用。当系统调用不可用时,它将 return -ENOSYS
触发断言。
在 5.4 左右禁用变得更容易,现在可以通过 allnoconfig
来禁用。