摘要:
“Attempted to kill init!”、“No working init found”... 这些令人血压升高的错误背后,都藏着哪些秘密?一篇让你从入门到“放弃”再到精通的内核调试指南。
作为一名软件工程师,我最近想深入研究 Linux 内核。本以为在 QEMU 里跑个 ARM64 虚拟机是分分钟的事,结果……差点被编译错误和内核恐慌(Kernel Panic)给整破防了。
如果你也正在这条路上“踩坑”,别慌!我把所有问题、解决方案和心路历程都整理出来了。这份 《QEMU + ARM64 内核构建避坑指南》,请你收好!
💣 坑一:
Meson 构建错误——“Subproject exists but has no meson.build”
错误现场:
ERROR: Subproject berkeley-softfloat-3 is buildable: NO
内心OS:”这啥玩意儿?我 clone 的代码不完整?“
问题根源:
QEMU 构建系统改用 Meson Wrap 机制来管理依赖(如 berkeley-softfloat-3),不再需要手动 git submodule update --init。这是构建系统的进步,但文档可能还没跟上。
解决方案:
- 1.
一键修复:运行
meson setup build/,Meson 会自动处理 Wrap 依赖,无需手动干预。 - 2.
网络问题:如果自动下载失败,可手动将
.wrap文件对应的源码包放到subprojects/packagecache/目录下。
知识点:现代开源项目(如 QEMU、Systemd)正从传统的 git submodule转向 meson wrap管


1493

被折叠的 条评论
为什么被折叠?



