Function 内核版本2.6.24和2.6.32
我正在使用函数创建设备设备\u create() 但是它在Ubuntu 8.04内核版本2.6.24中创建了一个警告: 警告:格式参数太多 以下是我如何使用此功能:Function 内核版本2.6.24和2.6.32,function,linux-kernel,device,Function,Linux Kernel,Device,我正在使用函数创建设备设备\u create() 但是它在Ubuntu 8.04内核版本2.6.24中创建了一个警告: 警告:格式参数太多 以下是我如何使用此功能: device_create(my_class, NULL, MKDEV(major, 0), NULL, "my_dev"); 同样的代码在Ubuntu10.04内核版本2.6.32上运行良好,但在Ubuntu8.04内核版本2.6.24上创建了一个警告 有人能帮我更正一下,删除那个警告吗 先谢谢你。 Sindhu用于此的旧API
device_create(my_class, NULL, MKDEV(major, 0), NULL, "my_dev");
同样的代码在Ubuntu10.04内核版本2.6.32上运行良好,但在Ubuntu8.04内核版本2.6.24上创建了一个警告
有人能帮我更正一下,删除那个警告吗
先谢谢你。
Sindhu用于此的旧API没有drvdata的第四个参数,您提供的参数为NULL。所以去掉空值,你就会没事了 这就是说,其他API也发生了变化,所以预计会出现其他问题。考虑定义一些在内核版本中做正确事情的预处理器宏。例如:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
#define my_device_create(a, b, c, d) device_create(a, b, c, NULL, d)
#else
#define my_device_create(a, b, c, d) device_create(a, b, c, d)
#endif
用于此的旧API没有drvdata的第四个参数,您提供的参数为NULL。所以去掉空值,你就会没事了 这就是说,其他API也发生了变化,所以预计会出现其他问题。考虑定义一些在内核版本中做正确事情的预处理器宏。例如:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
#define my_device_create(a, b, c, d) device_create(a, b, c, NULL, d)
#else
#define my_device_create(a, b, c, d) device_create(a, b, c, d)
#endif