linux-kernel相关内容
来自 [linux\fs.h] 的 unregister_chrdev() 调用用于在成功时返回 0,否则返回 问题:有没有什么办法可以知道 unregister_chrdev() 调用是否成功? 解决方案 void 的返回是通过 changeset 完成的:e53252d97e670a38b1d2e9723b48077bba11ddda 提交 e53252d97e670a38b1d
..
我正在尝试在 LDD3 中运行 tiny_tty.当我使用“cat/dev/ttty0"读取时,没有输出,命令被阻塞. 检查跟踪,我注意到 tty_insert_flip_char() 和 tty_flip_buffer_push() 都被调用了.但是,数据不是由 tty 核心发送给用户的.相反,它被发送回 tiny_tty 驱动程序的 tiny_write() 回调函数.有什么问题吗?
..
过去几个小时我一直在尝试安装具有以下输出的 RMongo 包: >install.packages("RMongo")安装包到‘/usr/local/lib/R/site-library’(因为“lib"未指定)--- 请选择在此会话中使用的 CRAN 镜像 ---尝试 URL 'https://repo.bppt.go.id/cran/src/contrib/RMongo_0.0.25.tar
..
我正在寻找将 PID 值从用户空间复制到内核空间,这是我的代码快照. 内核模块: #include #include #include #include #include #include #include #include MODULE_LICENSE(“GPL");struct siginfo sinfo;pid_t pid;struct task_struct *task;int i
..
我刚刚开始在 Linux 内核线程上编程.我有一个问题想和大家分享.我的代码是: void do_big_things(void *data){//做一些非常大的事情}struct task_struct *t1;struct task_struct *t2;void call_fucntion(){for(j =0; j 现在我对这个问题的结论(我可能是错的)是线程 t1 和 t2 是由内
..
我正在 Linux 上测试接口的吞吐量.我正在使用 DMA 进行数据传输.DMA 需要连续的内存位置.但是 kmalloc 无法分配超过 1MB 的空间.有没有其他方法可以创建高达 100M Bytes 的大缓冲区位置? 解决方案 我以为 kmalloc 不能分配超过 128kB,你是怎么让它分配 1MB 的? 无论如何,假设您在新启动的系统上工作,您最多可以保留 2048 个连续页
..
我试图在 USB 连接和断开连接时收到通知.所以我正在尝试实现信号.我在 debugfs 中创建了一个文件“file1".然后我提供了一个简单的写文件操作. 在用户空间有一个用户空间应用程序,它将把它的PID写在debugfs的“file1"中. 在内核空间中,我可以使用上面提到的写入方法获取传递的 PID.但我想在不同的内核模块中使用这个 PID.所以我尝试使用 EXPORT_SYM
..
我在这里阅读了答案:触发内核中断处理程序:如何?这是一个很好的,但不是我需要的. 我正在对处理中断的 RNG 函数进行微基准测试,因此我需要一种好方法来人为地和可重复地生成中断.例如,我可以将某些内容重定向到 Procfs 接口,该接口会生成 300 个中断或类似内容. 是否像在内核中运行某种产生中断的函数一样简单? 是否有某种类型的中断实际上不做“任何事情",但仍然通过整个中断
..
我正在研究原始套接字.我使用 IP_HDRINCL 选项来构建我自己的 IP 标头.在 IP 标头之后,我正在构建一个 UDP 标头.然后我将数据包发送到我系统的环回地址.我有另一个程序正在运行,它会在 UDP 数据包到来时捕获它们.为了检查数据包是否正确形成和接收,我有另一个正在读取原始 IP 数据报的进程正在运行.我的问题是,虽然第二个进程(读取原始数据报)运行良好(所有 IP 和 UDP
..
当我收到此错误时,我正在将一些驱动程序嵌入到 Linux 内核中(我正在板文件中添加设备并注册它): error: 'kxtf9_get_slave_descr' 未在此处声明(不在函数中) 我在驱动文件中找到了上面的函数 struct ext_slave_descr *kxtf9_get_slave_descr(void){返回 &kxtf9_descr;}出口符号(kxtf9_get_s
..
我希望能够直接从 Linux 内核 GIT 存储库中区分文件/目录,而无需下载完整的源代码. 具体来说,我对两种可能的解决方案感兴趣: 能够通过网络浏览器 (firefox) 进行差异化 适用于 Ubuntu 的 GUI 实用程序,可以执行远程差异. 如何设置选项 #2 的教程 编辑 作为我正在寻找的示例,我曾经使用 CrossVC 作为CVS 存储库中的上述任务.
..
我最近在学习linux网络驱动,不知道如果我的板上有很多同类型的网卡,内核是如何驱动它们的?内核是否需要多次加载同一个驱动程序?我认为这是不可能的,insmod 不会这样做,那么我怎样才能让所有同类卡片同时工作? 问候 解决方案 每张卡的状态(I/O 地址、IRQ、...)都存储到一个特定于驱动程序的结构中,该结构被传递(直接或间接)到驱动程序的每个入口点,可以通过这种方式区分卡.这
..
如果我想在 Linux 内核空间中执行用户程序(而不是内核模块),我有哪些选择? 我已经看过 KML(内核模式 linux),但这是特定于 IA-32 架构的.我想要一个跨平台的解决方案,可以在嵌入式 linux 系统上工作. 解决方案 用户程序不在内核空间中执行 - 这就是使它们成为用户程序的原因. 如果您想在内核空间中执行代码,您有两个选择:将其构建到内核中,或者使用内核模
..
正在阅读 Robert Love 的书,关于系统调用的第 5 章,发现这个简单的例子有点问题: asmlinkage long sys_silly_copy(unsigned long *src, unsigned long *dst, unsigned long len){无符号长缓冲区;如果(copy_from_user(&buf,src,len))返回 -EFAULT;...} 正如我们
..
我查看了 内核 API,第 1 部分:调用用户 -来自内核的空间应用程序,以及执行用户- 来自内核空间的空间函数 - 堆栈溢出 - 这是一个小的内核模块,callmodule.c,证明: //http://people.ee.ethz.ch/~arkeller/linux/code/usermodehelper.c#include #include #include #include #incl
..
我有一个简单的 sysfs 设备属性,它显示在我的 sysfs 目录下,并在调用 read 时返回一个内核空间变量.我想在这个属性上调用 poll 以允许我的用户空间线程阻塞,直到属性显示的值发生变化. 我的问题是 poll 似乎没有阻止我的属性——它一直返回 POLLPRI,即使属性显示的值没有改变.事实上,我在内核模块中根本没有调用 sysfs_notify,但用户空间调用 poll 仍
..
我有一段用户空间代码,它正在解析/proc/PID/task/TID/stat 以获取 cpu 使用情况.我可以使用 HZ 获得每秒 jiffies,但此代码可以移动到另一台具有不同配置值的机器.有没有办法在运行时从用户空间获取HZ的值? 解决方案 你把它除以你从 sysconf(_SC_CLK_TCK) 得到的数字. 然而,我认为在 Linux 下这可能总是 100,不管实际时钟滴
..
我已经为 y 配置了所有 CONFIG_DEBUG_ 相关选项,但是当我尝试调试内核时,它说没有找到调试符号: gdb/usr/src/linux-2.6.32.9/vmlinux/proc/kcore从/usr/src/linux-2.6.32.9/vmlinux 读取符号...(未找到调试符号)...完成. 为什么? 解决方案 这是我目前最好的猜测:我不知道,也没关系. 我不
..
你好 Linux 内核驱动程序大师! 我正在为使用串行接口进行配置的相机编写 v4l2 驱动程序.我希望驱动程序能够配置相机,因为它可以使不同相机型号的客户端代码保持一致.问题是:从驱动程序模块访问相机串行接口的最佳方式是什么? 据我所知,从内核驱动程序访问文件是一个很大的禁忌,但它可以做到.因此,我目前正在使用以下代码片段,但感觉像是一个黑客. oldfs = get_fs();s
..
我只想知道System.map文件和/proc/kallsyms的区别. 我正在使用 Linux 3.16 通用内核.我知道两者都是内核符号表.当我对这些文件进行比较时,两者的内容相同. 那么有什么必要同时拥有? 解决方案 /proc/kallsyms 有动态加载模块的符号以及静态代码,System.map 是只有静态代码的符号表. 您无法确定 System.map 在您的系统上
..