kernel-module

    1热度

    1回答

    我正在写一个内核模块,我需要定期触发一个函数。该函数将访问队列并处理其元素。队列中元素的数量是动态的,因此处理时间也是如此。 在下面的代码中,我添加了1ms睡眠来表示处理时间。我得到这个错误:[116588.117966] BUG: scheduling while atomic: systemd-journal/408/0x00010000。如果我的理解是正确的,那么发生这种情况是因为当hr_t

    0热度

    1回答

    我需要建立mmc_block.ko但MMC_BLOCK_MINORS=16。我不想构建整个内核。我正在使用Ubuntu 15.10。我该怎么做呢?

    0热度

    2回答

    我一直试图拦截连接系统调用,试图重写tcp请求的目标ip地址。我想我成功地从符号表中检索到连接系统调用的地址并拦截它。我的结论是基于我的函数被内核调用的事实。但是,我不太确定我的代码是否实际上拦截了连接系统调用。为了验证我试图打印出源或目的地的IP地址。但每当我尝试访问套接字缓冲区结构时,内核崩溃。您可以在hijackConnect函数中看到该代码段,并将它们注释掉。我想知道我在做什么错误,我如何

    2热度

    1回答

    我想写一个module读取文件(在内核模式)。 然而,问题是内核版本2.6.30和做后,不出口SYS_READ() 我已经改变了代码 struct file* file_open(const char* path, int flags, int rights) & int file_read(struct file* file, unsigned long long offset, unsigne

    0热度

    1回答

    对于我的大学项目,我正在做一个模块,它允许或禁止进程执行系统调用(例如一个可加载的selinux)。现在我掌握了控制系统调用的代码。对于每个进程,我存储指向包含权限配置的结构的链接。但是,现在我只是硬编码了两个配置:一个是默认的(允许所有),另一个是允许除了打开'/ testfile'之外的所有内容。 我的问题是如何动态加载配置? 我有一个配置文件的解析器,但我读过从内核访问文件是个坏主意。 我应

    0热度

    1回答

    我有一个非常缓慢的模拟系统,其中linux需要很多时间才能启动。 我想在这个系统上开发一个设备驱动程序,但重新启动它来添加一个修改后的.ko并不是一个选项。 我正在寻找的是一种无需重新启动即可更新我的.ko文件的方法。我应该提到我没有任何外部接口,除了DRAM,所以我使用的是ramfs 但是我可以暂停系统并向DRAM中注入任何内容。所以我想也许我可以.ko加载到规定的存储区域和地图,所以我可以从文

    0热度

    1回答

    我一直在试图学习Linux内核调试,并创建了一些带有一些导出符号的示例模块。 int rday_3 = 30; EXPORT_SYMBOL(rday_3); 做insmod的之后,我能看到我的初始化模块的dmesg和命令给我装的象征。但是,当我运行命令gdb /boot/vmlinuz-3.5.0-23-generic /proc/kcore,它给出了一个警告从/boot/vmlinuz-3.5.

    1热度

    3回答

    我从linux源码克隆了最新的git树。我运行在虚拟框中的所有(第一个内存是4096 MB,因为seg-fault我增加到8096 MB,然后也是相同的错误)。眼下VM已3.19.0安装 >clone latest git tree >make localmodconfig >make -j1 >sudo make mosules_install All install work fin

    0热度

    1回答

    我的目的很简单:测量时间流逝: unsigned long start, end; int init_module (void) { start = jiffies; printk("Hello Modules\n"); end = jiffies; printk("Measuring time lapses: %lu\n", (end - start) * 1

    -1热度

    1回答

    我想从linux内核开源中单独构建一个linux内核模块。 源文件是mm/ksm.c。下面发生 make -C /usr/src/linux-headers-3.16.0-30-generic/ M=/home/wei/module modules make[1]: Entering directory `/usr/src/linux-headers-3.16.0-30-generic'