以前は定期的に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 ドキュメントに見られるように、私はすでに必要なものすべてを持っているので、何か間違っていることは明らかです。しかし、何ですか?
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;
};