kernel-module相关内容

如何编写内核模块来查找内核中的路由表和arp缓存?

我想写一个模块来查找内核中获取网关ip的路由表,并使用ip查找arp缓存来获取网关的mac地址。 解决方案 fib_lookup :查找路由表。定义在 net / ipv4 / route.c 。 ipv4_neigh_lookup :使用struct邻居(ARP协议由邻居子系统实现)发送SKB。 通过 ip_route_input_slow 有关路由表和邻居子系统的更多详细信 ..
发布时间:2017-08-15 20:51:39 服务器开发

omap_udc.c g_hid.c hid gadget在beagleboard与angstrom linux

要使用beagleboard xm作为HID外设,我计划执行以下操作: 发现如何用埃及构建东西。 / li> 获取内核源码2.6.32。 编译omap_udc和g_hid 将这些模块插入内核 编辑gadget_hid.txt中的示例 使用hid_gadget_test / dev / hidg0键盘发送键盘命令 这是一个很好的方法来做我想要的东西? http://www ..
发布时间:2017-08-15 20:50:58 HTML/CSS

Docker加载内核模块

我试图安装一个内核模块, xfsprogs 。它已成功安装在容器内。这真的是令人惊讶的,但是 lsmod 不会在容器或主机系统中列出这个模块。 如何将新的内核模块加载到容器中?( CentOS 容器, Ubuntu 主机) p> 解决方案 容器通过系统调用与内核进行交互,不要在容器内部包含内核或内核模块的任何部分。这就是为什么集装箱设计重量轻便携带的原因之一。另外xfsprogs是用户空 ..
发布时间:2017-06-10 22:37:03 Linux/Unix

将驱动程序编译为内核的一部分,而不是模块

我想为嵌入式设备创建一个简约的Linux。这意味着编译内核和驱动程序的必要性。一个驱动程序由它的创建者直接写入设备的板,因此它不是存储库。它可以编译为内核模块。 然而,由于Linux的不可变性和对内存使用极小的要求,我不想使用模块。我想要所有的驱动程序内置在内核中。所以我的问题是如何编译一个特殊的驱动程序到内核? 所有搜索都没有为我提供解决方案 - 所有的都只是作为模块编译。 感 ..
发布时间:2016-12-22 13:10:46 服务器开发

linux内核模块链接器警告:“*** Warning:< function> [< module>] undefined!“ - 以任何方式摆脱他们?

在编译依赖于彼此的Linux内核模块时,链接器会提供未定义的符号警告,例如 构建模块,阶段2。 MODPOST ***警告:“function_name1”[module_name] undefined! ***警告:“function_name2”[module_name] undefined! ***警告:“function_name3”[module_name] und ..
发布时间:2016-10-22 18:08:19 服务器开发

修改控制寄存器内核模块中

下面这个简单的内核模块设置CR4寄存器的第13位( CR4.VMXE ),一旦它被加载并清除在退出该位。 vmx.c 的#include&LT; Linux的/ - module.h中GT; #包括LT&;的Linux / kernel.h&GT; #包括LT&; Linux的/ init.h中&GT;MODULE_LICENSE(“GPL”);静态内联uint64_t中getcr4(无效 ..
发布时间:2016-08-25 09:16:24 服务器开发

如何优雅地禁用无内核崩溃的中断线路?

我实现了一个程序,从keyboad读取和扫描code和放入微进程。该微进程放开的read()。因此,我的QT应用程序可以读取数据,如果发现L的扫描code,它触发回调到Qt的WebKit的。然而,当我做我的性格司机rmmod的。整个内核崩溃。什么是我的性格驱动程序的问题。 的#include&LT; Linux的/ init.h中&GT; #包括LT&; Linux的/ - module.h ..
发布时间:2016-08-24 15:12:02 C/C++

如何杀死内核模块中的等待队列?

我新的内核模块。使用一个等待队列,我阻塞线程,直到缓冲区中有数据。使用 hrtimer ,我会定期唤醒队列中。现在,问题是即使我删除了内核模块,我可以看到这个过程“线程1”仍在运行。我认为这个问题是在等待队列永远等待,这个过程来到这里受阻。请帮我,我怎么能杀的等待队列,当我删除我的模块。 无效线程1(无效) { 而(thread_running){ ... wait_event_inter ..
发布时间:2016-08-24 14:16:37 C/C++

如何使用从Linux内核模块Linux系统调用

我有一些困难,呼吁从一个Linux内核模块内部的系统调用。系统调用已经过测试,从一个标准的C用户空间程序正常工作,但我似乎无法获得内核模块编译和运行它们。 在我的用户我的程序包括以下code和系统调用的作品: 的#include&LT; Linux的/ unistd.h中&GT; #定义__NR_sys_mycall 343EXTERN长整型_syscall(长int_sysno,...)__ ..
发布时间:2016-08-23 10:47:17 C/C++

编程方式检查一个Linux内核模块是否存在在运行时

我写一个C守护进程,它取​​决于两个内核模块的存在,以完成其工作。程序不直接使用这些(或任何其他)的模块。它只需要他们存在。 因此,我想以编程方式检查是否这些模块都已经加载与否,以提醒用户在运行时。 在我开始做的事情一样解析的/ proc /模块或 lsmod的输出,做了效用函数已经存在的地方? 类似 is_module_loaded(为const char *名称); 我是pretty相 ..
发布时间:2016-08-22 16:52:33 C/C++

劫持SYS电话

我正在写一个内核模块,我需要劫持/包一些SYS电话。我蛮力迫使sys_call_table的地址,我使用CR0禁用/启用页面保护。到目前为止好(我会让公众对整个code一旦做了,所以如果有人想我可以更新这个问题)。 不管怎么说,我已经注意到,如果我劫持 __ NR_sys_read 我得到一个内核哎呀,当我卸载内核模块,和所有konsoles(KDE)崩溃。请注意,这不符合 __ NR_sys_ ..
发布时间:2016-08-22 15:08:16 服务器开发

错误:函数“create_proc_read_entry'[-Werror =隐函数声明]的隐式声明

我试图编译内核模块内核3.13我得到这个错误: 错误:函数隐式声明“create_proc_read_entry'[-Werror =隐函数声明] 我google一下,并没有发现任何回应。这里是code是指此错误的部分:#如果(LINUX_VERSION_ $ C $℃下KERNEL_VERSION(2,6,24)) PROC = proc_net_create(KAODV_QUEU ..
发布时间:2016-08-21 22:43:11 服务器开发

如何在内核编程执行shell命令?

我想用文件stdlib.h 的系统()函数在我的C code。其实我工作的内核编程。 每当我想它使用系统(),它给错误文件stdlib.h 说没有这样的文件中找到。 解决方案 这很简单! 的#include&LT; Linux的/ kmod.h&GT;的char * envp [] = {“HOME = /”,NULL}; 的char * argv的[] = {“/斌/ LS”,NUL ..
发布时间:2016-08-21 22:14:19 C/C++

获取当前时间内核模块以秒为单位

什么是标准的方式一个内核模块中获得秒当前时间(从epoch)? 我已经看到越来越涉及技术xtime的,这是非常啰嗦,涉及while循环和锁。必须有一个更好的办法。 [这不是重复。我已经通过previous问题,看着左右。许多的这些问题的答案要么不指定使用的功能,或者不正确地参阅time.h中未在内核允许] 解决方案 您可以使用 getnstimeofday 为 / * getnst ..
发布时间:2016-08-21 21:15:45 C/C++

获取写Linux内核模块,当用户进程的PID

我怎样才能得到它触发了我的内核模块的 file_operation.read 程序(用户进程的PID即哪些进程正在读的/ dev / mydev的)? 解决方案 当你读功能执行时,它这样做在发行系统调用的进程上下文。你应该这样PE能够使用电流,即电流 - 方式&gt; PID ..
发布时间:2016-08-21 21:09:11 服务器开发

使用sk_buff中添加以太网帧头

我有一个内核模块捕获传出的互联网流量(Netfilter的钩子:LOCAL_OUT) 在这个钩子,还是有没有以太网头。 我建的以太网帧头,它已经准备好使用,但如何将其连接到 SKB ,这样我可以整个SKB结构发送到 dev_queue_xmit() ? 是否有关于如何处理sk_buff的数据,你可以给我提供进一步信息的任何指导? 作为一个样本,我尝试做什么,我想所有的ICMP ECHO交通 ..
发布时间:2016-08-21 20:42:08 C/C++