예전에는 정기적으로 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
;이 모든 것이 잘 진행되었으며 생성된 패키지를 오류 없이 설치했습니다. 그러나 시스템은 여전히 원래 커널로 부팅됩니다. 다양한 데비안 문서에서 볼 수 있듯이 나는 이미 필요한 모든 것을 갖추고 있으므로 뭔가 잘못하고 있는 것이 분명합니다. 하지만 무엇입니까?
Stephen Kitt의 의견에 대한 편집자의 답변
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;
};