我正在尝试简单地从内核模块读取内核环缓冲区。也称为/proc/kmsg和dmesg输出。环顾四周,似乎调用的是sys_syslog();据我所知,dmesg使用syslog(),syslog()使用do_syslog(),后者驻留在printk.c。我使用grep查看,发现do_syslog()是在linux/syslog.h中定义的,所以我包含了这个文件。测试模块中对do_syslog()的实际调用如下所示:
read_bytes = d
我按照论坛()中的步骤获得linux内核源代码,并交叉编译我的模块。的内核版本与论坛中的版本完全相同。我最初用我的测试模块hello-1.ko进行了测试,该模块成功地安装在android设备上。但是当我使用insmod在android设备上安装模块ec.ko时,我会得到以下错误。apurva@apurva-Inspiron-1464:~/$亚行壳
$ cd sdcard&
但是当我第二天早上回来的时候,NAS做了一个系统更新.脚本消失了,在重新创建它们之后,我得到了无法加载NAT内核模块的错误。为了将问题与insmod隔离开来,我能够确定哪些模块失败了,并发现这是因为“未知的符号”。下面是我看到的(请注意,这里的变量是在上面链接的脚本中定义的):
# for MODULE in ${KERNEL_