systemd:冻结 Yocto 中的执行

systemd:冻结 Yocto 中的执行

我们有一个具有以下配置的旧设备:

  • 芯片组架构:Intel NM10 express
  • 操作系统:Yocto 战士
  • CPU:Atom D2250 双核
  • 易失性内存:2GB DDR3
  • CPU 核心:4

我已经生成了 64 位版本core-image-sato并在我的设备上运行,但systemd执行时出现卡死暗号(如下所示)。请注意,32 位图像不会出现此问题

systemd[1]: Set hostname to <panther1>.
traps: systemd[1] trap invalid opcode ip:7f257b9b8bd7 sp:7ffe7bc63090 error:0 in libsystemd-shared-241.so[7f257b8b4000+12f000]
systemd[1]: Caught <ILL>, core dump failed (child 77, code=killed, status=4/ILL).
systemd[1]: Freezing execution.

我进一步调试并发现它发生在systemd尝试设置时机器编号。我查看了代码和函数流程,如下所示 =>machine_id_setup -> generate_machine_id -> sd_id128_randomize

sd_id128_随机化函数由以下几行组成,

/* Set UUID version to 4 --- truly random generation */
id[6] = (id[6] & 0x0F) | 0x40;
/* Set the UUID variant to DCE */
id[8] = (id[8] & 0x3F) | 0x80;

id[6] = (id[6] & 0x0F) | 0x40;就我的发现而言,这是执行冻结的地方。

对于发生这种情况的原因和解决方法,我们真的很感激任何帮助?

注意:lubuntu 在这个具有 systemd 的设备上运行良好。

相关内容