问题标签 [linux-device-driver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
usb - 如何在 Linux 中开发 USB 大容量存储模拟器?
我是 USB 编程新手。我想在 Linux 中为 USB 大容量存储设备开发一个模拟器。如果您分享链接,我将不胜感激。
io - 以零长度调用 write() 的后果是什么?
在 Linuxwrite()
函数中相当高的级别,它过滤掉写入 0 长度缓冲区的请求。这是有道理的。谁愿意让操作系统浪费时间钻透层层以确定没有工作要做?
嗯……我。
它与Linux Kernel 中的 I2C 写确认轮询有关;并且发现如果握手错误时地址(在数据之前在总线上发送)将给出错误,则位碰撞 I2C 驱动程序将给出一个潜在有用的返回代码。
可以在地址之后发送虚拟数据,但不能使用我正在使用的设备。(也许我会尝试阅读......)。
所以问题是:如果内核允许零 (0) 长度写入,将会释放什么样的地狱?
eclipse - linux usb-hid:将 libhid 库添加到 eclipse(C++) 或 netbeans IDE 或本机 input.h 或 hiddev.h?
我对libhid有疑问。
我发现有 2 方式 4 访问linux 中的 usb-hid
1) linux 默认库,如input.h和hiddev.h和 ...
2)使用libhid
我发现 libhid 有些令人困惑并尝试使用 input.h 但我对那个 2 有问题。
我不知道如何从 ubuntu 获取有关我的设备的信息
我使用 open() 打开设备
然后使用 ioctl 获取信息
但它给了我错误的供应商和产品 ID
然后我尝试使用 libhid 但知道如何在 eclipse 或 netbeans 中使用 libhid (或任何其他库)
你能告诉我你是如何编译你的代码的,比如 eclipse 或 netbeans 或者只是使用终端和 gcc?或者如何使用 ioctl() 和 open() ?
我的整个示例代码:
linux - 开放固件设备树概述/参考手册
我正在尝试为嵌入式 PowerPC 板设置驱动程序,而今天正确的方法是使用 OpenFirmware 设备树数据结构(.dtb 文件,从 .dts 文件编译而来)。创建树非常容易,但是如何让设备驱动程序找到它的节点和其中的数据?我还没有找到任何好的参考资料,像“Linux 设备驱动程序”这样的书籍在 x86 领域中的内容太多,对主要与基于 Power Architecture 的机器(Linux 内核中的 arch powerpc)相关的设备树有很大帮助术语)。
linux - 我如何学习为 Linux 编写字符设备驱动程序?
如何在 Linux 中编写 char 设备驱动程序?
git - 外部可加载模块的 git commit 哈希
我正在 Linux 源代码树之外(以标准方式)开发一个 Linux 内核模块,并试图自动将驱动程序的 git commit 哈希包含在模块加载期间打印的版本字符串中。Makefile 使用命令计算 git 哈希
但这会获取 Linux 树的 git 哈希,而不是我的驱动程序。您能否告诉 git 在执行命令时查看特定目录,或者是否有更好的方法来解决此问题?
这是使用 git 1.5.4.5 和 Linux 2.6.28
multithreading - Linux 内核线程之间的通信
我正在将一个应用程序/PCI 驱动程序从 vxWorks 移植到 Linux,如果可能的话,我希望保持相同的架构。当前驱动程序有 2 个使用消息队列相互通信的任务(线程)。是否有机制在内核线程之间进行通信?消息队列用于传递缓冲区地址和大小信息,因此任务可以使用 DMA 移动大量数据。
linux - 编译linux内核时出错
我试图编译 linux 内核,但遇到了一些错误。在运行顶级 Makefile 时,我收到以下错误:-
在构建之前,我配置了使用 make oldconfig
似乎错误日志中的文件应该在配置期间生成。但不知何故,它们没有被生成,因此错误。搜索了网络,但仍然无法修复错误。我对内核编程很陌生。任何帮助将不胜感激。
谢谢。
linux-kernel - 为外部内核模块运行 ctags(或从单独的相关项目中提取标签)
我正在构建一个“外部”模块(设备驱动程序),即它不在 Linux 内核源代码树中,而是在一个单独的不相关源代码树中。
我想使用 ctags 浏览通过头文件从内核中提取的变量/函数声明和定义。
例如假设我有:
并且我已经make tags
为内核运行,那么如何对我的模块运行 ctags 以便它从不同目录树中有效的单独项目中获取标签,在这种情况下是 Linux 内核源代码?