我试图升级我的守护程序代码,而不是一个可执行文件,它将成为一个内核模块,但即使使用一个简单的例子,我仍然有困难。
这是我尝试的代码:
#include <linux/module.h> #include <linux/kernel.h> int init_module(void){ printk("Hello world 1.n"); return 0; } void cleanup_module(void){ printk(KERN_ALERT "Goodbye world 1.n"); }
而且因为我明白我不能直接编译代码,所以我试图复制并稍微修改makefile,如下所示:
WARN := -W -Wall -Wstrict-prototypes -Wmissing-prototypes INCLUDE := -isystem /lib/modules/`uname -r`/build/include CFLAGS := -O2 -DMODULE -D__KERNEL__ ${WARN} ${INCLUDE} CC := gcc OBJS := ${patsubst %.c,%.o,${wildcard *.c}} all: ${OBJS}
然后在命令行上执行“make”,期望安装程序:
我只能在特定的Python版本下导入Stripe Python库
具有多个文件的内核模块 – 未知的符号
如何编写更改组成员身份的PAM模块?
eax在pt_regs结构中的位置是什么? 只有斧头是存在的
这是我的输出:
gcc -O2 -DMODULE -D__KERNEL__ -W -Wall -Wstrict-prototypes -Wmissing-prototypes -isystem /lib/modules/`uname -r`/build/include -c -o do dc In file included from /lib/modules/2.6.21.5-smp/build/include/asm/thread_info.h:16,from /lib/modules/2.6.21.5-smp/build/include/linux/thread_info.h:21,from /lib/modules/2.6.21.5-smp/build/include/linux/preempt.h:9,from /lib/modules/2.6.21.5-smp/build/include/linux/spinlock.h:49,from /lib/modules/2.6.21.5-smp/build/include/linux/module.h:9,from dc:1: /lib/modules/2.6.21.5-smp/build/include/asm/processor.h:82: error: 'CONfig_X86_L1_CACHE_SHIFT' undeclared here (not in a function) /lib/modules/2.6.21.5-smp/build/include/asm/processor.h:82: error: requested alignment is not a constant In file included from /lib/modules/2.6.21.5-smp/build/include/linux/sched.h:51,from /lib/modules/2.6.21.5-smp/build/include/linux/utsname.h:35,from /lib/modules/2.6.21.5-smp/build/include/asm/elf.h:12,from /lib/modules/2.6.21.5-smp/build/include/linux/elf.h:7,from /lib/modules/2.6.21.5-smp/build/include/linux/module.h:15,from dc:1: /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:33:3: error: #error You lose. /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if /lib/modules/2.6.21.5-smp/build/include/linux/jiffies.h:225:31: error: division by zero in #if In file included from /lib/modules/2.6.21.5-smp/build/include/linux/module.h:21,from dc:1: /lib/modules/2.6.21.5-smp/build/include/asm/module.h:62:2: error: #error unkNown processor family make: *** [do] Error 1
为什么当我只处理两个有据可查的function时,我应该得到所有这些错误? 我的makefileclosures了吗? 请指教?
VLC:导入错误无模块命名的appscript
ImportError:尝试导入祝福时,没有名为“_curses”的模块
如何在Ubuntu的启动时加载自定义模块?
linux模块编译错过文件夹asm
没关系。 我发现自己的答案是:
https://www.kernel.org/doc/Documentation/kbuild/modules.txt
它指出:
To build against the running kernel use: $ make -C /lib/modules/`uname -r`/build M=$PWD Then to install the module(s) just built,add the target "modules_install" to the command: $ make -C /lib/modules/`uname -r`/build M=$PWD modules_install
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。