PCI_GET_DEVICE 返回 NULL
我正在为 PCI 设备编写一个简单的模块 pci_get_device
在调用时不返回任何内容
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/pci.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("ME");
MODULE_DESCRIPTION("A simple example Linux module.");
MODULE_VERSION("0.01");
#define VENDOR_ID 0x8086
#define DEVICE_ID 0x8d10
#define BAR 0
static struct pci_dev *dev = NULL;
static int __init lkm_example_init(void) {
dev= pci_get_device(VENDOR_ID , DEVICE_ID , dev);
if (dev == NULL) {
printk(KERN_INFO "Device Not found !\n");
return -1;
}
// code
return 0;
}
static void __exit lkm_example_exit(void) {
printk(KERN_INFO "EXIT KERNEL!\n");
}
module_init(lkm_example_init);
module_exit(lkm_example_exit);
我已经获得了 VENDOR_ID
和 DEVICE_ID
来自lspci -nn
但我知道为什么我无法在模块运行时检测到它们
I am writing a simple module for PCI devices pci_get_device
return nothing when it is called
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/pci.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("ME");
MODULE_DESCRIPTION("A simple example Linux module.");
MODULE_VERSION("0.01");
#define VENDOR_ID 0x8086
#define DEVICE_ID 0x8d10
#define BAR 0
static struct pci_dev *dev = NULL;
static int __init lkm_example_init(void) {
dev= pci_get_device(VENDOR_ID , DEVICE_ID , dev);
if (dev == NULL) {
printk(KERN_INFO "Device Not found !\n");
return -1;
}
// code
return 0;
}
static void __exit lkm_example_exit(void) {
printk(KERN_INFO "EXIT KERNEL!\n");
}
module_init(lkm_example_init);
module_exit(lkm_example_exit);
I already got the VENDOR_ID
and the DEVICE_ID
from lspci -nn
but I do know why I can not detect them with the module running
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论