Buildroot启动报错:/etc/init.d/S98modules文件未找到排查求助
Buildroot脚本存在却提示"not found"的排查方向
行尾格式不兼容
若脚本在Windows环境编辑,行尾是CRLF格式,而Linux系统仅识别LF。可通过dos2unix S98modules转换格式,或在编辑器中将换行设置为Unix模式后重新保存。这类格式问题会导致系统无法正确解析脚本的shebang,进而抛出找不到文件的错误。Shebang指定错误
检查脚本第一行的解释器路径(如#!/bin/sh):- 若指定
#!/bin/bash但Buildroot未启用bash组件(仅默认安装ash),会因找不到解释器报错; - 路径拼写错误也会引发同样问题,需确保解释器在目标rootfs中真实存在。
- 若指定
缺少可执行权限
脚本未设置可执行权限时,系统无法执行,会抛出类似"not found"的混淆报错。需在本地overlay目录中执行chmod +x etc/init.d/S98modules,Buildroot会保留文件权限并打包到rootfs中。Overlay目录结构错误
确认overlay的目录层级是否与rootfs对应:脚本需放在overlay的etc/init.d/子目录下,而非overlay根目录。若结构错误,rootfs中脚本实际路径不符,你本地检查的文件和系统加载的不是同一个。Buildroot缓存或打包异常
旧缓存可能导致overlay文件未正确同步到rootfs,可执行make clean清理后重新编译。同时确认QEMU启动时加载的是最新生成的rootfs镜像,避免使用旧版本镜像。
内容的提问来源于stack exchange,提问作者Claudio Bertacchini
相关产品推荐
相关产品推荐

