kernel相关内容
我是新来的Linux内核编程。我希望开发一个程序来读取像它的制造商名称,容量等我知道的描述及其属性的USB驱动器的信息。但我不明白如何枚举连接到系统的USB驱动器。我要寻找它启动内核和USB端口之间的连接功能。这怎么可能? 解决方案 您不需要的内核程序, - 实际上读取设备信息,你甚至不需要一个设备驱动程序 USB系统是较新的2.6内核不同,所以很多在线教程可能是过时的 - 但这里开始的
..
我需要建立一个操作系统,一个非常小的和基本的之一,实际上至少功能,codeD用C 也许,做一些内存管理,并具有至少一个文本编辑器和计算器中的崔操作系统,它只是将是一个如何使一个code,它拥有硬件全面和直接控制实验。 不过我会需要一个接口,这将需要像printf的输入/输出功能(安培;参数)和scanf(安培;参数)。现在我的基本问题是,我应该利用现有的标题或去从头开始实际的编码,和为何如此?
..
我写了一个简单的模块: 的#define __KERNEL__ #定义模块 #包括LT&;的Linux / kernel.h> #包括LT&; Linux的/ - module.h中GT;INT的init_module(无效) { printk的(“你好,世界\\ n”); 返回0; }虚空在cleanup_module(无效) { printk的(“再见\\
..
我试图从结构的sk_buff 中提取数据,但没有收到我期待的输出。所讨论的帧是34字节;一个14字节的以太网首部周围的8个字节(实验协议)报头包 结构monitoring_hdr { U8版本; U8型; U8保留; U8 haddr_len; U32时钟; } __packed; 这个头之后,有两种,可变长度的硬件地址(其长度由 haddr_len 字
..
我试图使用Linux内核链表实现,但我无法编译。我下面的这些来源正是没有结果( http://www.roman10.net / Linux的内核programminglinked列表/ 和 http://kernelnewbies.org/FAQ/LinkedLists) 该list.h内核宏LIST_HEAD_INIT如下: 的#define LIST_HEAD_INIT(名称){及(名称
..
我的目标是在任何时候都在内核内存数组或列表,因此它总是从内核空间访问。要,我使用netlink的插座为推荐这里做到这一点。我按照
..
我有这样的结构: typedef结构xyz_data { 无效* myfa; < -------正确 无效* myfb; < -------不正确 } 和这个函数的定义: asmlinkage为ssize_t(* real_sys_read)(unsigned int类型FD,焦炭__user * buf中,为size_t计数); asmlinkage ssiz
..
宣称: 静态状态的char [128] =“关\\ 0”; 和实施读功能:静态ssize_t供read_proc(结构文件* filep,焦炭__user * BUF, 为size_t LEN,参数loff_t *石油换食品计划) { ssize_t供CNT = strlen的(状态),RET; RET = copy_to_user(
..
我这样做没有任何参数的基本的helloWorld系统调用的例子,只是: INT的main() { 系统调用(__ NR_helloWorld); 返回0; } 但现在我试图找出如何实际参数传递给系统调用(即长)。什么是格式正好,我想: INT的main() { 长输入= 1; 长期结果=系统调用(__ NR_someSysCall,长期投入,长期); 返回0;
..
我正在写一个内核模块,我需要劫持/包一些SYS电话。我蛮力迫使sys_call_table的地址,我使用CR0禁用/启用页面保护。到目前为止好(我会让公众对整个code一旦做了,所以如果有人想我可以更新这个问题)。 不管怎么说,我已经注意到,如果我劫持 __ NR_sys_read 我得到一个内核哎呀,当我卸载内核模块,和所有konsoles(KDE)崩溃。请注意,这不符合 __ NR_sys_
..
我正在写需要到另一台设备上执行的ioctl内核驱动程序。我知道这不是处理code的最佳方式,但是这仅仅是一个临时的解决办法现在。我从我的函数调用ioctl找回错误code -22(参数无效),但我看不出有什么可能是错误的论点。以下是code的相关部分。 的#define GPIO74“的/ dev / GPIO / 74”结构文件* gpio74FD; 。 。 。 gpio74FD
..
我想写入从内核空间的日志文件。我可以创建,打开和放大器;关闭文件(/var/log/my_kern_module.log),但如果我尝试写一些东西进去,我的模块崩溃了...所以我知道读/写文件从内核空间是不好的,但我必须这样做此模块中。你有什么建议,以帮助我吗? THX 在这里您可以找到code谁是我的内核模块上执行写操作。它code运行到一个线程(KTHREAD) 的mutex_lock(安
..
我已经按照从内核调用用户的应用程序这个伟大的文档:
..
我是想了解各种的sysconf macros.I有如下编写的程序。 INT的main() { fprintf中(标准输出,“时钟数每秒滴答:%ld个\\ N”的sysconf(_SC_CLK_TCK)); 返回0; } 我总是得到的结果100.I我是主频为2.93GHz.What一个CPU上运行它数100恰恰意味着? 解决方案 这只是每秒滴答的时钟数,你的情况在内核配置
..
我在哪里可以找到源头code为杜和其他Linux工具? 解决方案 它与 GNU的coreutils 包。
..
我正在研究在GitHub上的https://github.com/umlaeute/v4l2loopback/blob/master/v4l2loopback.c并在这条线,这令我感到困惑就来了。这是一些令人难以置信的很酷的内核宏或GCC的功能,我不知道?什么是 = -1 吗? 静态INT video_nr [MAX_DEVICES] = {[0 ...(MAX_DEVICES-1)] = -1
..
假设我们要拦截退出系统调用和控制台上显示消息时的任何进程调用它。为了做到这一点,我们必须写我们自己的假退出系统调用,然后进行内核调用我们的假退出函数,而不是原来的出口通话。在我们的假退出通话结束的时候,我们可以调用原有的退出呼叫。为了做到这一点,我们必须操纵系统调用表数组(sys_call_table)找到。 与sys_call_table的阵列武装,我们可以操纵它使sys_exit切入点,我们
..
我试图创建Linux内核模块,这将检查传入数据包。此刻,我在提取数据包的TCP报头和阅读源和目的端口的过程 - >但是我得到不正确的值。我有钩子函数: unsigned int类型hook_func(unsigned int类型hooknum,结构的sk_buff * SKB, 常量结构的net_device *中, 常量结构的net_device *出来, INT(* okfn)(结构的s
..
我写一个小OS作为学校的assigment的一部分,但是当涉及到获取键盘输入(preSS键 - >在屏幕上显示出来)我被困。我使用从osdev.org梗概教程(GCC交叉编译器,GRUB引导装载程序,LD链接),因为我是在保护模式下无法使用BIOS中断输入,这就是为什么我写我自己的中断处理程序( ?),但我不知道怎么做,即使我读了一些osdev文章和论坛讨论。非常类似的问题( http://f
..
我试图从内部访问它 .eh_frame 正在运行的程序的部分内容(具体程序是Linux内核2.6.34.8)。在 .eh_frame 包含用于异常处理有用的数据,我想内核code内内部使用它。本节已经被写了 GCC ( readelf -a vmlinux.o 包含 .eh_frame ),问题是从code阅读。我是pretty确保ELF格式文档说 .eh_frame 为code执行期间访问。
..