Kconfig 和 LKM
我正在内核树之外使用 LKM,我想为我的模块使用一些编译选项,例如 MYLKM_CONFIG_{something}。我知道这可以使用 C 预处理来完成(#define // #ifdef …
内核模块在 Android 设备上找不到固件文件;它应该在哪里?
我在 Android 设备上正确放置固件时遇到问题,我不断收到: <3>[ 3590.997375] usb 3-1.4: ath9k_htc: Firmware - htc_7010.fw not found 如果在…
如何从 Linux 内核模块的 init_module 代码创建设备节点?
我正在为 Linux 内核编写一个模块,我想在 init() 函数中创建一些设备节点: int init_module(void) { Major = register_chrdev(0, DEVICE_NAME, &…
如何从Linux内核中的任意地址获取struct page
我现有的代码采用 struct page * 列表并构建描述符表以与设备共享内存。该代码的上层当前期望使用 vmalloc 或从用户空间分配缓冲区,并使用 vmalloc_t…
将用户空间缓冲区传递给内核
我想比较使用 DMA 和普通 skb_copy_datagram_iovec() 将 skb 从内核复制到用户空间时的性能。我创建一个模块来测试。有人可以告诉我如何从用户空间创…
我可以在内核中使用 protobufs 吗?
我需要使用 Linux 设备驱动程序定义通信协议。 Protobufs 看起来非常不错,并且有一个 活动 C 端口。 是否可以在 Linux 设备驱动程序中使用 protobuf…
如何确定 Linux 内核模块是否泄漏内存
为了测试内核泄漏内存时的行为,我正在编写一个连续分配内存的内核模块,例如代码如下所示 int bytesLeaked = 128000 char *var = kmalloc(bytesLeake…
使用 Pipe 在 Linux 中优化 Web 服务器
我编写了一个 Web 服务器,它读取请求的文件并写入套接字。 当我读取文件时,我将文件的内容放入操作系统的用户空间,并且, 当我再次将其写入套接字…