获取“调用‘__bad_copy_to’”声明属性错误:复制目标大小太小”禁用优化后
这是Linux设备驱动程序的一部分。 uint32_t val = 0; static long axpu_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { ... copy_…
错误:几乎没有参数来函数‘ blk_get_request’
在块设备驱动程序编码中,我试图在文件代码上实现磁盘,但出现错误: In function ‘mydisk_request’: /home/lab/DD/main.c:223:20: error: too few …
Linux中映射到磁盘文件的脏页如何刷新到文件中?
我正在尝试弄清楚 Linux IO 的内部结构。 在一个应用程序中,我将磁盘文件映射到用户空间虚拟地址,并将一些数据写入虚拟地址。我认为 Linux 中触发了…
'结构mm_struct'没有名为“mmap_sem”的成员从 5.4.21 切换到 5.10.0-rc5 后模块构建中出现错误
我一直在我的 Linux 设备驱动程序中使用这个函数。这是为了将用户页面固定为用户虚拟地址(所需的页面数量)并获取其内核地址。顺便说一下,它是在lin…
为 5.10.0-rc5 构建内核,但当我执行 insmod 时,它抱怨它是 5.4.21
我曾经针对 5.4.21 构建内核模块,但今天我针对 5.10.0-rc5 构建它。 但是当我在虚拟机中启动 linux 5.10.0-rc5 后执行 insmod 时,它会这样抱怨。 /t…
sg_set_page() 是否支持零字节?
sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf)); 函数 sg_set_page() 对于非零缓冲区大小工作正常,但我的 Linux 驱动程序在接收…
如何从用户空间(linux i2c-dev)读取i2c适配器类(例如I2C_CLASS_DDC)?
在笔记本电脑之外,更改显示器的亮度等需要 DDC/CI。我相信,这最好在用户空间中完成。加载i2c-dev(内核模块)可以访问/dev/i2c-下的i2c总线。不幸的…
Kconfig:当特定的 CONFIG_* 开关导致问题时,如何阻止它?
Kconfig 中的 depends on 是否有相反的意思?当设置特定的 CONFIG_* 开关时,至少会打印一条警告,在 make 之后写入完整配置 (.config) 后,该开关不…
PCI_GET_DEVICE 返回 NULL
我正在为 PCI 设备编写一个简单的模块 pci_get_device 在调用时不返回任何内容 #include #include #include #include MODULE_LICENSE("GPL"); MODULE_…
使用 kgdb 调试 Linux 内核时堆栈跟踪中的行号错误
我正在尝试通过串行使用 kgdb 在 Linux 内核中调试 Ethernet-MAC 的驱动程序。 我通过在代码中的所需位置调用“kgdb_breakpoint()”来停止执行,并重…
如何为其他设备映射内存?为什么我的驱动程序的 mmap() 没有被调用?
驱动程序的 mmap() 入口点未被调用。 这是我的设备驱动程序的源代码: struct miscdevice my_dev = { .minor = MISC_DYNAMIC_MINOR, .name = "mymma",…
错误设备树:无法请求资源区域 [mem 0x01c20800-0x01c20aff]
错误显示: [ 156.303744] blinkled: loading out-of-tree module taints kernel. [ 156.303871] blinkled: module verification failed: signature a…
(缺少 .modinfo 部分或名称字段):在对象中找不到模块
我正在尝试运行内核模块,但是当我尝试使用 insmod 加载它时,我得到了无效的模块格式 insmod:错误:无法插入模块 mymodule.ko:模块格式无效 运行 d…