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

编译BeagleBone Black内核模块时出现arm_ssp_per_task_plugin.so符号未定义错误

解决BeagleBone Black内核模块编译插件加载错误的方法

核心原因

该错误源于你使用的交叉编译器版本,与编译BBB内核时所用的GCC版本不匹配,导致内核生成的arm_ssp_per_task_plugin.so插件无法被当前交叉编译器加载(出现符号缺失)。

具体解决步骤

1. 确认内核编译时的GCC版本

进入内核源码目录,执行以下命令获取内核编译时的GCC版本:

cat ${KERNEL}/.config | grep GCC_VERSION

也可以直接查看内核编译日志中的GCC版本记录。

2. 更换匹配版本的交叉编译器

  • 卸载当前的linaro 6.5.0交叉编译器,下载并安装与内核编译版本一致的arm-linux-gnueabihf交叉工具链。
  • 例如内核若用GCC 7.x编译,就对应下载linaro 7.x版本的工具链。

3. 更新Makefile的交叉编译器路径

修改Makefile中的CROSS变量,指向新安装的匹配版本工具链路径,示例:

CROSS=/home/thanh/work/bbb/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

4. 临时禁用GCC插件(应急方案)

如果暂时无法获取匹配编译器,可临时关闭内核的GCC插件功能:

  • 进入内核源码目录,执行make menuconfig
  • 找到Compiler options -> GCC plugins,取消勾选Enable GCC plugins
  • 保存配置后,或直接修改.config文件将CONFIG_GCC_PLUGINS=y改为CONFIG_GCC_PLUGINS=n,再重新编译模块。

5. 重新编译模块

先执行make clean清理旧编译产物,再运行make重新编译内核模块。


内容的提问来源于stack exchange,提问作者Mr.T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 19:22:44