我们有一个具有以下配置的旧设备:
- 芯片组架构: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 的设备上运行良好。