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

内核kmemleak无法启动,执行echo scan提示Operation not permitted求助

问题与解决方案

问题概述

硬件部署Yocto镜像后出现内核内存泄漏,计划启用kmemleak排查,但遇到以下问题:

  • 执行cat /sys/kernel/debug/kmemleak无输出,dmesg显示kmemleak: Kernel memory leak detector disabled
  • 执行echo scan > /sys/kernel/debug/kmemleak提示-sh: echo: write error: Operation not permitted
  • 内核编译时已开启kmemleak相关配置,debugfs正常挂载,启动参数无kmemleak=off

已验证的配置与操作

内核配置(zcat /proc/config.gz | grep CONFIG_DEBUG_KMEMLEAK)

CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=2048
CONFIG_DEBUG_KMEMLEAK_TEST=m
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN=y

系统状态检查输出

$ dmesg | grep kmemleak
kmemleak: Kernel memory leak detector disabled

$ mount -t debugfs nodev /sys/kernel/debug/
mount: /sys/kernel/debug: nodev already mounted or mount point busy.

$ cat /proc/mounts | grep debugfs
debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0

$ ls -l /sys/kernel/debug/kmemleak
-rw-r--r--    1 root     root             0 Jan  4 04:30 /sys/kernel/debug/kmemleak

$ mount | grep debug
cgroup on /sys/fs/cgroup/debug type cgroup (rw,nosuid,nodev,noexec,relatime,debug)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)

启动参数(cat /proc/cmdline)

BOOT_IMAGE=/boot/bzImage root=/dev/sda2 console=tty0,115200n8 console=ttyS0,115200n8 console=ttyO0,115200n8 console=ttyAMA0,115200n8 rootwait

解决步骤

  1. 修改内核默认启用配置
    当前CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y会让kmemleak默认禁用,将其改为CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=n,重新编译内核并更新Yocto镜像,kmemleak会在系统启动时自动启用。

  2. 临时启用kmemleak(无需重新编译场景)
    尝试先写入start命令启用kmemleak,再执行扫描:

    echo start > /sys/kernel/debug/kmemleak
    echo scan > /sys/kernel/debug/kmemleak
    

    若仍提示权限问题,检查安全模块状态:

    • 查看SELinux状态:getenforce,若为Enforcing,临时关闭:setenforce 0后重试
    • 若启用AppArmor,检查是否有规则限制debugfs写入权限
  3. 排查隐性启动参数
    检查U-Boot环境变量中的bootargs,确认是否存在kmemleak=off或其他抑制kmemleak的隐性参数。

  4. 优化内存池配置
    针对架构调整CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE:32位系统建议不超过4096,64位系统可调高至8192,确保内核编译无警告。


内容的提问来源于stack exchange,提问作者Alexander Tony

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:23:22