linux 建立節點方式

2022-09-12 23:18:16 字數 2148 閱讀 7138

1 使用device_attr初始化device_attribute,或直接初始化該結構體

static device_attr(fw_version,s_irugo,mxt_fw_version_show, mxt_fw_version_store);
2 呼叫device_create_file建立屬性節點

ret = device_create_file(&pdev->dev, &dev_attr_fw_version.attr);
3 刪除節點

if(ret) 

device_remove_file(&pdev->dev, &dev_attr_fw_version.attr);

檢視**,其實device_create_file最終也呼叫了sysfs_create_file;一般是下一種方法用的多。

這種情況,建立的節點的dev和platform驅動中的dev不是乙個

1 首先定義裝置:

static device_attr(fw_version,s_irugo,mxt_fw_version_show, mxt_fw_version_store);
2 增加結構體:

static struct attribute *mxt_attrs =

static const struct attribute_group mxt_attr_group =

3 建立kobject

kobj = kobject_create_and_add("name", struct kobject *parent);
4 建立節點:

ret = sysfs_create_file(&kobj.&dev_attr_fw_version.attr);//或

ret = sysfs_create_group(&kobj.&mxt_attr_group);

5 刪除節點:

if(kobj == null)

kobject_del(kobj);

if(ret)

sysfs_remove_file(&kobj.&dev_attr_fw_version.attr);//或

sysfs_remove_group(&kobj.&mxt_attr_group);

1 建立目錄

struct proc_dir_entry *dir=null;

dir= proc_mkdir("dir_name",parent_name);

2 建立節點

proc_create("node_name", 0664, dir, &nod_fops);//0664是許可權,fops是file_fops
3 刪除節點

remove_proc_entry("node_name", dir);
這種方式沒有用到kobject的show、store,所以需要自己填充cdev_ops

dev_class = class_create(this_module, dev_name);

dev_device = device_create(dev_class, null, dev_id, null, dev_name);

3 刪除

is_err(dev_device)==1;//發生錯誤

device_destroy(dev->lclass,id);

is_err(dev_class)==1;//發生錯誤

class_destroy(dev->class);

···

mknod /dev/name c id_major id_minor 字元裝置的

rm 一切皆檔案 xiu a

···int sysfs_create_link(struct kobject *kobj, struct kobject *target,const char *name)

void sysfs_remove_link(struct kobject *kobj, char *name);

linux自動建立裝置節點

在有2.6系列版本中支援udev管理裝置檔案可以方便的建立裝置節點,不必使用mknod來建立 主要用到的四個方法在linux device.h定義 建立類和釋放類的函式 建立成後將建立 sys class name資料夾 extern struct class class create struct...

ROS建立節點

首先是自己第一次接觸ros遇到了好多的坑就想讓大家避免入坑,還有就是普及正確的東西首先我要抨擊一下這篇文章,讓許多人走了彎路浪費了大家的時間,對待發部落格一點都不嚴謹錯誤太多以下是位址按照我的做你會發現其實錯誤很簡單。很簡單就是幾條linux命令 mkdir p catkin ws src cd c...

《Linux裝置節點建立》手動與自動建立裝置節點

android2.3及linux2.6.29核心模擬器版本編譯與除錯 一 手動建立 1.驅動模組 test driver.c include include include include include include include include define test major 240 動...