内核模块
驱动开发步骤
1.vser.c 写驱动代码
2.编写对应makefile文件
3.make modules_install编译最新文件make vser,生成.ko文件
depmod 更新模块
4.加载到内核 modprbe vser 自动加载多模块
或insmod vser.ko 安装单个模块
dmesg vser 查看信息
rmmod vser 清除退出
modinfo vser.ko查看模块信息
make clean 清除所有模块
字符设备驱动
ls-l /dev 查看设备文件
==“b”表示块设备,“c”表示字符设备==
ret = register_chrdev_region(dev, VSER_DEV_CNT, VSER_DEV_NAME);--静态设备号
int alloc_chrdev_region(dev_t dev,unsigned baseminor,unsigned count,const char name)动态分配设备*
字符驱动开发:
- 要有对应的c开发的文件
- 将设备写入到内核
- 构造cdev结构
字符设备驱动操作
mknod /dev/vser0 c 256 0
make是make node的缩写 ---- 创建一个节点
mknod /dev/vser0 c 256 0---------创建设备文件
make
make modules_install
depmod
modprobe vser
echo "test" > /dev/vser0或vser1...
- cat /dev/vser0或vser1......
- cat /proc/devices----查看设备号vser是否注册成功
过程 :1.0创建一个设备节点(一个节点代表一个文件),
2.0 mknod = make node
3.0这个节点号在文件系统中是唯一的
4.0将初始化的节点写入磁盘
==open== 打开文件函数
==close== 关闭文件----(一个)
==release== 动态关闭所有(指令集)文件函数 ---(全部)
接口
open (fp,属性,权限)