我是内核编程的新手,而且我坚持不懈,所以我会感激一些帮助。如果之前有过类似的问题,我会事先道歉,我没有找到任何相关的帖子,并且可以在网上找到解释,这些解释对于我这个领域中没有经验的人来说很容易理解。
我想试验我自己的ext2版本。 我从kernel.org获得了源文件,并进行了适当的更改。没什么好看的,只是为了检查一下我的想法。
现在我想将它插入我的linux内核(ubuntu 2.6.31-14-generic-pae,如果重要的话)。 我怎么能这样做?
我(显然是天真的)最初的想法是简单地使用随附的makefile(在手动设置各种标志之后,在需要的地方有obj-m / obj-y)并将其编译为内核模块。
但是我在编译期间一直遇到关于重新加工宏,函数的隐式声明等的错误。例如
ext2.h:181:1: warning: "ext2_find_first_zero_bit" redefined
balloc.c:574: error: implicit declaration of function dquot_free_block_nodirty
显然这不是要走的路。我想最糟糕的情况是再次编译整个内核(使用我修改的ext2代码而不是原始代码),因此它使用我自己的ext2创建相关库,并从新映像重新启动。我发现很难相信这是最好的方法。
是否可以将新文件系统作为内核模块插入?
Myabe我应该将修改后的ext2代码放在/ usr / src中,并以某种方式只编译包含当前ext2代码的相关库?
无论如何,我很感激你应该做些什么的帮助。
谢谢
答案 0 :(得分:0)
使用ext2
或其他类似内容搜索并替换my_awesome_filesystem
。