linux - “sysfs:无法创建重复的文件名” - insmod 时出错
问题描述
下面是问题的执行顺序,我正在编写一个新的平台驱动程序,它也创建了 sysfs 条目
- insmod 作品
- 没有来自用户空间的 sysfs 读/写
rmmod 工作
insmod 作品
- sudo bash -c "echo xxx > /sys/devices/platform/xphy/chipname"
rmmod 有效 - 但不会删除符号链接 /sys/bus/platform/devices/xphy -> ../../../devices/platform/xphy
insmod 失败 - 因为 - sysfs: cannot create duplicate filename '/bus/platform/devices/xphy'
下面在模块/驱动程序退出期间调用时不起作用..
//sysfs_remove_link(&device->dev.kobj, "xphy");
//sysfs_remove_link(&device->dev.kobj, "bus/platform/devices/xphy");
ks = bus_get_kset(device->dev.bus);
ko = kset_find_obj(ks, "xphy");
sysfs_remove_link(ko, "xphy");
ko = kset_find_obj(bus_get_kset(device->dev.bus), "xphy");
if (ko) {
printk(KERN_DEBUG "dereferencing xphy sysfs kernel object!\n");
kobject_put(ko);
printk(KERN_DEBUG "deleting xphy sysfs kernel object!\n");
kobject_del(ko);
}
解决方案
推荐阅读
- python - 在python3中使用flask上传多个文本文件
- python - 导入模块,因为它是更高级别
- datetime - 如何使用 md bootstrap 创建一个显示日期选择器的可点击图标?
- javascript - 计算 contenteditable 的字符数
- c++ - ifstream >>内存和OpenGL纹理的C ++奇怪问题
- java - 为什么Service继承自Android中的Context?
- python - 我在保存用户键入的文本时遇到问题
- python - 试图摆脱 Django 中的帮助文本会导致错误:列表索引必须是整数或切片,而不是 str
- python - 有多少独特元素的子序列是可能的?
- mbedtls - 如何使用 mbedtls 逐块散列大文件?