1.查看主设备号,次设备号
进入/dev目录执行ls -l,第四,五列分别为主次设备号,10,180,1,5,这些是主设备号,而60,63这些就是次设备号
130|shell@android:/dev # ls -l
crw-rw-r-- system radio 10, 60 1969-12-31 21:00 alarm
crw-rw-rw- root root 10, 63 1969-12-31 21:00 ashmem
crw-rw-rw- root root 10, 59 1969-12-31 21:00 binder
crw-rw-rw- root root 180, 194 1969-12-31 21:00 btusb0
2.保存设备编号
在linux/types.h中定义了dev_t来保存设备编号:
typedef __u32 __kernel_dev_t;
typedef __kernel_dev_t dev_t;
这是个32位的数,前12位保存主设备号,后20位保存次设备号
MAJOR(dev_t dev)获取主设备号
MINOR(dev_t dev)获取次设备号
MKDEV(int major,int minor)将主次设备号转换成dev_t类型
3.建立一个字符设备
首先要获得设备编号
//liunux/fs.h
extern int register_chrdev_region(dev_t, unsigned, const char *);