问题描述
我在没有MMU的ARM平台上使用Linux,因此普通的ELF文件将无法工作,我应该使用FDPIC_ELF可执行文件。但是我的内核无法执行fdpic可执行文件(错误-8(ENOEXEC))。
我已决定在 binfmt_elf_fdpic.c printk()
函数中放置一些->init()
调用以进行跟踪。但这行不通。
static int __init init_elf_fdpic_binfmt(void)
{
printk(" Mahyar: elf_fdpic: init started\n"); // delete me later!
register_binfmt(&elf_fdpic_format);
printk(" Mahyar: elf_fdpic: init finished\n"); // delete me later!
return 0;
}
static void __exit exit_elf_fdpic_binfmt(void)
{
unregister_binfmt(&elf_fdpic_format);
}
core_initcall(init_elf_fdpic_binfmt);
module_exit(exit_elf_fdpic_binfmt);
For seeing the complete code on github click here!
我已启用menuconfig-> executable-formats中的fdpic ELF支持作为内置功能(不是内核模块)。另外,我的内核日志级别是15(最高级别(应该打印所有内容))。
当我更改 binfmt_elf_fdpic.c 文件中的内容并运行make
命令时,它将再次编译该文件。因此,这意味着该文件应该可以工作。
但是为什么启动时不会将其加载到内核中?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)