You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yocto构建的32位系统如何处理2038年问题

处理Yocto与Linux内核2038年问题时的故障排查与求助

已执行操作

  • 添加编译选项:TARGET_CPPFLAGS += "-D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64"
  • 针对zlib的_TimeBits问题打补丁

出现的问题

完成上述修改后,系统可正常启动且能通过date命令修改时间,但出现以下异常:

  1. /var/log/messages中存在混乱的时间戳,日志示例:
Jan  1 00:00:10 XXX daemon.info avahi-daemon[1696]: Server startup complete. Host name is XXX.local. Local service cookie is 1686369141.
Dec 31 23:59:59 XXX daemon.err collectd[1697]: network plugin: sendto failed: Cannot assign requested address. Closing sending socket.
Aug 14 10:31:47 XXX daemon.info avahi-daemon[1696]: Joining mDNS multicast group on interface docker0.IPv4 with address 172.17.0.1.
Jan 22 10:32:00 XXX daemon.info avahi-daemon[1696]: New relevant interface docker0.IPv4 for mDNS.
May  5 06:36:58 XXX daemon.info avahi-daemon[1696]: Registering new address record for 172.17.0.1 on docker0.IPv4.
Dec 31 23:59:59 XXX daemon.err collectd[1697]: network plugin: sendto failed: Cannot assign requested address. Closing sending socket.
Dec 31 23:59:59 XXX daemon.err collectd[1697]: network plugin: sendto failed: Cannot assign requested address. Closing sending socket.
Dec 31 23:59:59 XXX daemon.err collectd[1697]: network plugin: sendto failed: Cannot assign requested address. Closing sending socket.
  1. PostgreSQL数据库连接失败,提示"connection refused"

尝试的解决措施及新故障

尝试以下操作后出现内核panic:

  • 禁用32位time_t系统调用
  • 禁用CONFIG_COMPAT_32BIT_TIME

内核panic日志:

[    6.808240] systemd[1]: System time before build time, advancing clock.
[    6.836919] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004

求助方向

  1. 内核配置方面:是否遗漏了其他启用64位时间支持的必要选项?
  2. Glibc配置方面:除已操作外,还有哪些需要检查或配置的内容?

背景信息

  • 平台:i.MX6UL
  • 系统:基于Yocto构建
  • 内核版本:5.10.47
  • Systemd版本:250.5+
  • Glibc版本:2.35

内容的提问来源于stack exchange,提问作者SBifi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 10:17:27