binfmt_misc 未使用内核模块
binfmt_misc kernel module not used
我正在评估基于 NXP iMX.8(即 arm64v8)的开发板。评估套件带有 5.10.72 Linux 内核,但没有 binfmt_misc
内核模块。联系供应商后,他们提供了与内核版本匹配的所需模块。我把它放在 /lib/modules/$(uname -r)/kernel/drivers/fs/binfmt_misc.ko
然后 echo binfmt_misc >> /etc/modules && /sbin/depmod && systemctl reboot
.
重新启动后,lsmod | grep binfmt
显示模块现在已加载,但“Use By 0”。此外,journalctl -u proc-sys-fs-binfmt_misc.mount
出现 mount: /proc/sys/fs/binfmt_misc: mount point does not exist.
错误,我通过 ls -al /proc/sys/fs/binfmt_misc
.
确认不存在
由于我无法在 /proc
中创建任何目录,缺少什么魔法才能让它工作?
似乎模块是单独编译的,内核本身不是在启用 CONFIG_BINFMT_MISC
的情况下构建的,因此应该创建此挂载点的代码仍然被排除在外:https://elixir.bootlin.com/linux/v5.10.72/source/kernel/sysctl.c#L3304
也许可以将 binfmt_misc 挂载到其他位置并从那里使用它?或者向 Teh Vendor 索要更新的内核镜像?
如果未定义CONFIG_BINFMT_MISC
,kernel/sysctl.c 将不会在procfs 中创建挂载点。拥有模块没有帮助,因为它不会创建安装点。您将需要使用 CONFIG_BINFMT_MISC=m
(或 Y)重建内核。
参见:https://elixir.bootlin.com/linux/v5.16.18/source/kernel/sysctl.c#L3367
我正在评估基于 NXP iMX.8(即 arm64v8)的开发板。评估套件带有 5.10.72 Linux 内核,但没有 binfmt_misc
内核模块。联系供应商后,他们提供了与内核版本匹配的所需模块。我把它放在 /lib/modules/$(uname -r)/kernel/drivers/fs/binfmt_misc.ko
然后 echo binfmt_misc >> /etc/modules && /sbin/depmod && systemctl reboot
.
重新启动后,lsmod | grep binfmt
显示模块现在已加载,但“Use By 0”。此外,journalctl -u proc-sys-fs-binfmt_misc.mount
出现 mount: /proc/sys/fs/binfmt_misc: mount point does not exist.
错误,我通过 ls -al /proc/sys/fs/binfmt_misc
.
由于我无法在 /proc
中创建任何目录,缺少什么魔法才能让它工作?
似乎模块是单独编译的,内核本身不是在启用 CONFIG_BINFMT_MISC
的情况下构建的,因此应该创建此挂载点的代码仍然被排除在外:https://elixir.bootlin.com/linux/v5.10.72/source/kernel/sysctl.c#L3304
也许可以将 binfmt_misc 挂载到其他位置并从那里使用它?或者向 Teh Vendor 索要更新的内核镜像?
如果未定义CONFIG_BINFMT_MISC
,kernel/sysctl.c 将不会在procfs 中创建挂载点。拥有模块没有帮助,因为它不会创建安装点。您将需要使用 CONFIG_BINFMT_MISC=m
(或 Y)重建内核。
参见:https://elixir.bootlin.com/linux/v5.16.18/source/kernel/sysctl.c#L3367