Debian 12:为什么我无法安装从源代码构建的内核?

Debian 12:为什么我无法安装从源代码构建的内核?

我过去经常构建和安装 Linux 内核,所以我对现在看起来如此困难感到惊讶。

故事:我正在尝试为 Debian 12 构建一个lustre客户端;第一步是运行configure脚本,但失败并显示:

checking if Linux kernel was built with CONFIG_FHANDLE in or as module... no
configure: error: 

Lustre fid handling requires that CONFIG_FHANDLE is enabled in your kernel.

这就是为什么我需要编译一个新内核:make deb-pkg;这一切进展顺利,然后我安装了生成的包,没有错误。但系统仍然以原始内核启动。据我从各种 Debian 文档中看到,我已经拥有了我需要的一切,所以我有点困惑;我一定做错了什么,但是什么?

编辑回复斯蒂芬·基特的评论

root@debian12:~# grep FHANDLE /boot/config-$(uname -r)
CONFIG_FHANDLE=y

我可以在configure脚本中看到他们似乎检查了这段代码:

cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

#include <linux/kernel.h>
#include <linux/module.h>

#if defined(NEED_LOCKDEP_IS_HELD_DISCARD_CONST) \
 && defined(CONFIG_LOCKDEP) \ 
 && defined(lockdep_is_held)
#undef lockdep_is_held
        #define lockdep_is_held(lock) \
                lock_is_held((struct lockdep_map *)&(lock)->dep_map)
#endif


        #include <$AUTOCONF_HDIR/autoconf.h>

int
main (void)
{
  
        #if !(defined(CONFIG_FHANDLE) || defined(CONFIG_FHANDLE_MODULE))
        #error CONFIG_FHANDLE and CONFIG_FHANDLE_MODULE not #defined
        #endif

  ;
  return 0;
};

相关内容