kernel-module相关内容
我想写一个模块来查找内核中获取网关ip的路由表,并使用ip查找arp缓存来获取网关的mac地址。 解决方案 fib_lookup :查找路由表。定义在 net / ipv4 / route.c 。 ipv4_neigh_lookup :使用struct邻居(ARP协议由邻居子系统实现)发送SKB。 通过 ip_route_input_slow 有关路由表和邻居子系统的更多详细信
..
要使用beagleboard xm作为HID外设,我计划执行以下操作: 发现如何用埃及构建东西。 / li> 获取内核源码2.6.32。 编译omap_udc和g_hid 将这些模块插入内核 编辑gadget_hid.txt中的示例 使用hid_gadget_test / dev / hidg0键盘发送键盘命令 这是一个很好的方法来做我想要的东西? http://www
..
我试图安装一个内核模块, xfsprogs 。它已成功安装在容器内。这真的是令人惊讶的,但是 lsmod 不会在容器或主机系统中列出这个模块。 如何将新的内核模块加载到容器中?( CentOS 容器, Ubuntu 主机) p> 解决方案 容器通过系统调用与内核进行交互,不要在容器内部包含内核或内核模块的任何部分。这就是为什么集装箱设计重量轻便携带的原因之一。另外xfsprogs是用户空
..
我想为嵌入式设备创建一个简约的Linux。这意味着编译内核和驱动程序的必要性。一个驱动程序由它的创建者直接写入设备的板,因此它不是存储库。它可以编译为内核模块。 然而,由于Linux的不可变性和对内存使用极小的要求,我不想使用模块。我想要所有的驱动程序内置在内核中。所以我的问题是如何编译一个特殊的驱动程序到内核? 所有搜索都没有为我提供解决方案 - 所有的都只是作为模块编译。 感
..
在编译依赖于彼此的Linux内核模块时,链接器会提供未定义的符号警告,例如 构建模块,阶段2。 MODPOST ***警告:“function_name1”[module_name] undefined! ***警告:“function_name2”[module_name] undefined! ***警告:“function_name3”[module_name] und
..
下面这个简单的内核模块设置CR4寄存器的第13位( CR4.VMXE ),一旦它被加载并清除在退出该位。 vmx.c 的#include< Linux的/ - module.h中GT; #包括LT&;的Linux / kernel.h> #包括LT&; Linux的/ init.h中>MODULE_LICENSE(“GPL”);静态内联uint64_t中getcr4(无效
..
我实现了一个程序,从keyboad读取和扫描code和放入微进程。该微进程放开的read()。因此,我的QT应用程序可以读取数据,如果发现L的扫描code,它触发回调到Qt的WebKit的。然而,当我做我的性格司机rmmod的。整个内核崩溃。什么是我的性格驱动程序的问题。 的#include< Linux的/ init.h中> #包括LT&; Linux的/ - module.h
..
我新的内核模块。使用一个等待队列,我阻塞线程,直到缓冲区中有数据。使用 hrtimer ,我会定期唤醒队列中。现在,问题是即使我删除了内核模块,我可以看到这个过程“线程1”仍在运行。我认为这个问题是在等待队列永远等待,这个过程来到这里受阻。请帮我,我怎么能杀的等待队列,当我删除我的模块。 无效线程1(无效) { 而(thread_running){ ... wait_event_inter
..
在一个Linux内核模块是否有一种方式来获得从文件名/路径unsigned int类型FD ? 我知道这个答案:
..
我有一些困难,呼吁从一个Linux内核模块内部的系统调用。系统调用已经过测试,从一个标准的C用户空间程序正常工作,但我似乎无法获得内核模块编译和运行它们。 在我的用户我的程序包括以下code和系统调用的作品: 的#include< Linux的/ unistd.h中> #定义__NR_sys_mycall 343EXTERN长整型_syscall(长int_sysno,...)__
..
考虑这个code: INT procmon_state = 0; 静态结构ctl_table_header * procmon_table_header;静态ctl_table state_table [] = { { .procname =“状态”,.mode = 0666, .proc_handler =安培; proc_dointvec_minma
..
我写一个C守护进程,它取决于两个内核模块的存在,以完成其工作。程序不直接使用这些(或任何其他)的模块。它只需要他们存在。 因此,我想以编程方式检查是否这些模块都已经加载与否,以提醒用户在运行时。 在我开始做的事情一样解析的/ proc /模块或 lsmod的输出,做了效用函数已经存在的地方? 类似 is_module_loaded(为const char *名称); 我是pretty相
..
我想传递一个字符串> 1024个字符到我的模块(文件系统)。 由于内核参数被限制为1024个字符,
..
我正在写一个内核模块,我需要劫持/包一些SYS电话。我蛮力迫使sys_call_table的地址,我使用CR0禁用/启用页面保护。到目前为止好(我会让公众对整个code一旦做了,所以如果有人想我可以更新这个问题)。 不管怎么说,我已经注意到,如果我劫持 __ NR_sys_read 我得到一个内核哎呀,当我卸载内核模块,和所有konsoles(KDE)崩溃。请注意,这不符合 __ NR_sys_
..
我试图编译内核模块内核3.13我得到这个错误: 错误:函数隐式声明“create_proc_read_entry'[-Werror =隐函数声明] 我google一下,并没有发现任何回应。这里是code是指此错误的部分:#如果(LINUX_VERSION_ $ C $℃下KERNEL_VERSION(2,6,24)) PROC = proc_net_create(KAODV_QUEU
..
我想用文件stdlib.h 的系统()函数在我的C code。其实我工作的内核编程。 每当我想它使用系统(),它给错误文件stdlib.h 说没有这样的文件中找到。 解决方案 这很简单! 的#include< Linux的/ kmod.h>的char * envp [] = {“HOME = /”,NULL}; 的char * argv的[] = {“/斌/ LS”,NUL
..
我检讨这个页 在程序中使用的read_proc如下: INT fortune_read(字符*页,焦炭**开始,off_t关, 诠释计数,诠释* EOF,无效*数据){ INT LEN; 如果(关闭大于0){ * EOF = 1; 返回0; } / *环绕式* / 如果(next_f
..
什么是标准的方式一个内核模块中获得秒当前时间(从epoch)? 我已经看到越来越涉及技术xtime的,这是非常啰嗦,涉及while循环和锁。必须有一个更好的办法。 [这不是重复。我已经通过previous问题,看着左右。许多的这些问题的答案要么不指定使用的功能,或者不正确地参阅time.h中未在内核允许] 解决方案 您可以使用 getnstimeofday 为 / * getnst
..
我怎样才能得到它触发了我的内核模块的 file_operation.read 程序(用户进程的PID即哪些进程正在读的/ dev / mydev的)? 解决方案 当你读功能执行时,它这样做在发行系统调用的进程上下文。你应该这样PE能够使用电流,即电流 - 方式> PID
..
我有一个内核模块捕获传出的互联网流量(Netfilter的钩子:LOCAL_OUT) 在这个钩子,还是有没有以太网头。 我建的以太网帧头,它已经准备好使用,但如何将其连接到 SKB ,这样我可以整个SKB结构发送到 dev_queue_xmit() ? 是否有关于如何处理sk_buff的数据,你可以给我提供进一步信息的任何指导? 作为一个样本,我尝试做什么,我想所有的ICMP ECHO交通
..