linux-kernel相关内容

内核冻结:如何调试?

我有一个带有数千行内核模块的嵌入式板,该模块冻结在随机和复杂的用例上,并具有随机的时间.我尝试调试的解决方案是什么? 我已经尝试了不可思议的System Request,但是它不起作用.我想这可能是因为我处于禁用硬件中断的代码的循环或死锁中? 谢谢, eva. 解决方案 通常,嵌入式板具有对于内核锁定情况,您可以将看门狗与用作跟踪缓冲区的某些 fallow memory 结合使 ..
发布时间:2020-04-25 11:17:09 其他开发

linux/module.h:没有这样的文件或目录

我是一个初学者,我正在尝试一些Linux内核编程的基础知识.今天早上,我已经在VIM中打开了module.h文件,并且在没有保存任何更改的情况下关闭了文件.之后,我将无法编译任何代码.我收到以下错误消息 [root@localhost helloworld]# cc helloworld.c helloworld.c:1:25: error: linux/module.h: No such ..
发布时间:2020-04-25 11:17:07 其他开发

Linux内核中的USB鼠标使用哪些驱动程序?

我从LDD3第14章读到了有关热插拔驱动程序的信息.我需要编写一个USB鼠标驱动程序,在插入硬件时会加载该驱动程序.现在,通过做一些实验,我知道有一个名为"hid-generic"的驱动程序,在拔出插头时会被调用. [ 6654.232046] usb 3-1: new low-speed USB device number 3 using uhci_hcd [ 6654.462061] u ..
发布时间:2020-04-25 11:17:01 服务器开发

Linux中进程的步行页面表

我正在尝试浏览Linux中某个进程的页表.在内核模块中,我实现了以下功能: static struct page *walk_page_table(unsigned long addr) { pgd_t *pgd; pte_t *ptep, pte; pud_t *pud; pmd_t *pmd; struct page *page = NULL; ..
发布时间:2020-04-25 11:16:46 服务器开发

如何在Linux内核2.6中使用CryptoAPI

我一直在寻找一些时间,但是在足够的文档/示例中找不到如何使用linux附带的CryptoAPI来创建syscalls/在内核领域的示例. 如果有人知道一个好的资源,请告诉我,我想知道如何仅在内核空间中做SHA1/MD5和Blowfish/AES. 解决方案 内核中有几个使用加密模块的地方:eCryptfs文件系统(linux/fs/ecryptfs/)和802.11无线协议栈( li ..
发布时间:2020-04-25 11:16:01 其他开发

在用户空间从程序调用内核模块函数

我开发了一个内核模块及其上的一些功能.现在,我需要在用户空间中开发一个程序,并调用内核模块中的某些函数. 我还需要在用户空间访问程序的内核模块中的某些全局变量. 解决方案 关于linux-kernel模块和用户空间程序交互的完整概述, http://wiki.tldp.org/kernel_user_space_howto "内核空间,用户空间接口",作者:Ariane Keller ..
发布时间:2020-04-25 11:15:48 服务器开发

如何使用Linux内核中的lockdep功能进行死锁检测

我有一个Linux内核驱动程序和一个与其交互的用户应用程序.内核驱动程序中有一个死锁.我在名为" lockdep 的linux内核中遇到此功能. .我能够配置它并重新编译内核(并且我确实在/proc中看到lockdep文件夹).但是我不知道该如何推断该工具的输出或如何使用该工具调试驱动程序.任何帮助将不胜感激. 谢谢! 解决方案 要启用lockdep功能,请通过menuconfig编辑.c ..
发布时间:2020-04-25 11:15:11 服务器开发

上下文切换内部

我想借助这个问题来学习并弥补我的知识空白. 因此,用户正在运行一个线程(内核级),并且它现在调用yield(我认为是系统调用). 调度程序现在必须将当前线程的上下文保存在TCB中(该线程存储在内核中的某个位置),并选择另一个线程来运行并加载其上下文并跳转至其CS:EIP. 为了缩小范围,我正在研究在x86体系结构上运行的Linux.现在,我想详细介绍一下: 因此,首先我们有一个系统调用 ..
发布时间:2020-04-25 11:15:00 其他开发

内核空间和用户空间有什么区别?

内核空间和用户空间有什么区别?内核空间,内核线程,内核进程和内核堆栈是否具有相同的含义?另外,为什么我们需要这种差异化? 真的简化的答案是,内核运行在内核空间中,普通程序运行在用户空间中.用户空间基本上是沙盒的一种形式-它限制了用户程序,因此它们不会弄乱其他程序或OS内核拥有的内存(和其他资源).这样会限制(但通常不能完全消除)他们执行坏事(例如使机器崩溃)的能力. 内核是操作系统的核心. ..
发布时间:2020-04-25 11:14:58 其他开发

从Linux内核发送UDP数据包

即使已经存在一个类似的话题,我也注意到它可以追溯到两年前,因此我认为打开一个新话题更合适. 我试图弄清楚如何从Linux内核(3.3.4)发送UDP数据包,以便监视随机数生成器(/drivers/char/random.c)的行为.到目前为止,由于sock_create和sock_sendmsg函数,我已经设法监视了一些事情.您可以在此消息的末尾找到我使用的典型代码. (您可能还想在此处下载 ..
发布时间:2020-04-25 11:14:48 服务器开发

在netfilter挂钩中查找可执行文件发送数据包的名称

我正在编写一个内核模块,该模块使用netfilter挂钩过滤TCP数据包,并且需要找出发送数据包的可执行文件的路径.到目前为止,我已经使用了以下方法,但是它显示的名称似乎与所使用的可执行文件无关(/usr/lib/firefox/firefox , usr/bin/telnet.netkit >和/usr/bin/wget ). pid_t pid = current->pid; struc ..
发布时间:2020-04-23 11:35:55 服务器开发

linux内核中的PTE结构

我一直在尝试在Linux源代码中查找与禁用PAE的x86系统上的PTE对应的结构/联合.到目前为止,我仅在arch/x86/include/asm/page_32.h 中找到以下内容 typedef union { pteval_t pte; pteval_t pte_low; } pte_t; 我现在有点困惑,因为我面前已经打开了英特尔参考手册第3A卷,而 ..
发布时间:2020-04-23 11:34:15 服务器开发

“模块中的未知符号";尽管有EXPORT_SYMBOL,但仍可插入模块

我正在尝试编译并插入r8169 realtek以太网驱动程序.我的内核版本是 ebin@sony:~$ uname -r 4.2.0-rc3-custom 我的本​​地磁盘上有完整的源代码,该磁盘用于安装当前内核.当我运行make -C /lib/modules/ uname -r /build M= pwd modules 时,模块编译成功 但是当我插入模块时,它会显示 ebi ..
发布时间:2020-04-23 11:33:40 服务器开发

linux newbie有关嵌入式linux设备驱动程序的问题

我最近一直在研究linux驱动程序, 就像我读过的那些文章所说,设备驱动程序模块很可能会由内核按需自动加载,因此我想知道内核如何确定特定设备(声卡,I2C/spi设备,等),我也无法完全想象内核在启动时如何检测到每个硬件设备. 首选与嵌入式linux相关的答案,也欢迎PC linux! 3Q 解决方案 我认为您正在混合两种不同的东西,即硬件检测和按需加载模块. 在某些情况 ..
发布时间:2020-04-23 11:33:18 服务器开发