author:张继飞

写在前面,逆水行舟不进则退。

整合程序时,发现一个error,很是兴奋,原来open  /dev/下的设备时,No such file or directory,看来需要自己创建一个了,忽然忘了 mknod如何使用了。。。杯具。。翻翻以前的文章吧。

子曾经曰过:遇到问题先man一下。

# mknod --h
Usage: mknod [OPTION]... NAME TYPE [MAJOR MINOR]
Create the special file NAME of the given TYPE.

-Z, --context=CONTEXT   set security context (quoted string)
Mandatory arguments to long options are mandatory for short options too.
  -m, --mode=MODE   set file permission bits to MODE, not a=rw - umask
      --help     display this help and exit
      --version  output version information and exit

Both MAJOR and MINOR must be specified when TYPE is b, c, or u, and they
must be omitted when TYPE is p.  If MAJOR or MINOR begins with 0x or 0X,
it is interpreted as hexadecimal; otherwise, if it begins with 0, as octal;
otherwise, as decimal.  TYPE may be:

b      create a block (buffered) special file
  c, u   create a character (unbuffered) special file
  p      create a FIFO

Report bugs to <bug-coreutils@gnu.org>.

如上,OPTION 为可选项,一般是 -m 给节点设备设置permission,(可以用创建之后用chmod 设置)

说下权限,老生常谈,

×××(所有者\组用户\其他用户)

×=4 读权限

×=2 写权限

×=1 执行权限

600 ××× (只有所有者有读和写的权限)

644 ××× (所有者有读和写的权限,组用户其他用户只有读的权限)

777 ××× (每个人都有读和写以及执行的权限)

TYPE(必选项)  表示该设备的类型为字符型还是块设备,一般来说使用ioctl 都用字符设备 也就是 c。

[MAJOR MINOR](可选项) ,主设备号与次设备号。主设备号表示某一类设备,而次设备号则是该类设备的顺序从0往下排的号。即这一类中的0,1,2,3。。。设备。

我要创建一个主设备号为 120 ,次设备号为 0 的 字符设备gpio:mknod -m 644 gpio c 120 0

至此,完成了所需设备的创建,可以正常使用open,close ioctl 等文件操作结构来连接application 与 kernel。

写在后面:使用该设备的前提,首先要在内核注册该设备,有驱动才可以,否则,open时会提示No such device or address 或者 No such device 。

回顾文章:跟文件系统定制

ioctl函数

mknod 创建内核设备文件【原创】相关推荐

  1. 设备文件BSP及嵌入式驱动开发笔记

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! BSP及嵌入式驱动开辟笔记 第一讲嵌入式系统基本概念 以应用为中央,以计算机 ...

  2. mknod命令:创建设备文件

    参考博客:mknod_liangkaiming的博客-CSDN博客 参考资料:man手册 可以通过man 1 mknod查看mknod命令的内容. 1.mknod 命令的作用是make block o ...

  3. mknod创建设备(加载新的设备驱动时候,通常会用到此命令)

    mknod - make block or character special files mknod [OPTION]... NAME TYPE [MAJOR MINOR] option 有用的就是 ...

  4. Linux 设备文件的创建和mdev

    内容转载于http://blog.csdn.net/yueqian_scut/article/details/46771595.有格式的调整和内容的删改,如有侵权,请告知删除 . 本文将从代码级去理解 ...

  5. 字符设备驱动高级篇3——自动创建字符设备驱动的设备文件

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 1.问题描述 使用mknod创建设备文件的缺点: 能否自动生成和删除设备文件: 2.解决方案:udev(嵌入式中用 ...

  6. Linux:驱动之自动创建字符设备的设备文件(未完)

    自动创建字符设备的设备文件 目前尚不是最终版本,还望有心人自己学习的时候,把自己整合的知识点相关的答案也好问题也好,或者实践过程中的一些操作截图,再或者其他的一些想要分享材料发给笔者邮箱:uestc_ ...

  7. linux mdev 命令,linux设备驱动----利用mdev(udev)自动创建设备文件节点

    1.mdev的使用方法和原理: mdev是busybox 自带的一个简化版的udev,适合于嵌入式的应用埸合.其具有使用简单的特点.它的作用,就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程 ...

  8. linux内核系统调用创建和删除文件

    一.创建文件 1.创建普通文件 int creat(const char *pathname, mode_t mode); 也可以使用open和openat创建普通文件:如果参数flags设置标志位O ...

  9. linux创建设备 mknod,linux用mknod创建设备(节点)

    mknod命令用于创建一个设备文件,即特殊文件 首先要明白什么是设备文件,简单的我们说 操作系统与外部设备(入磁盘驱动器,打印机,modern,终端 等等)都是通过设备文件来进行通信的,在Unix/L ...

最新文章

  1. PHP 拷贝图像 imagecopy 与 imagecopyresized 函数
  2. 网络推广关键词布局仍需网络推广专员时刻“运筹帷幄”
  3. 铁乐学Python_day12_作业
  4. P1311 选择客栈
  5. C语言中输入输出fread和fwrite函数的用法
  6. mysql function DATE_FORMA T(date, format)
  7. $ajax 获取返回值object,来自.ajax()调用的数据的jQuery .find()返回“ [object Object]”,而不是di...
  8. 深入理解计算机系统李秋豪,《深入理解计算机系统》第7章:重定位PC相对引用的理解...
  9. SIM卡电气特性详解
  10. 频繁默认网关不可用_win7系统默认网关不可用频繁掉线的解决方法
  11. 如何理解时间复杂度和空间复杂度
  12. IDEA项目名称的中文和数字乱码文字
  13. 倾斜补偿的电子罗盘(2):磁传感器的误差来源、硬磁干扰的校准(3个参数)、实验验证
  14. ZZULIOJ:1091: 童年生活二三事(多实例测试)
  15. UIPATH 发送SMTP电子邮件
  16. 计算机配置赛扬 奔腾,intel 赛扬、奔腾、酷睿哪个好?
  17. x264命令行参数解释
  18. matlab 画3维图像
  19. Json解析方式(学习笔记)
  20. 2022合肥新站高新区招聘社区工作者每日一练及答案

热门文章

  1. NPM服务器维修,npm run dev无法启动服务器
  2. 有一个字长32位的浮点数符号位1位_边缘计算专题:(二)别看只有0和1,数学不好的勿进!...
  3. activeperl安装不成功_手把手教你:Windows系统上安装GPU深度学习环境
  4. 在Ubuntu上安装Sublime Text 3
  5. 一起来玩AZURE SQL(二)AZURE SQL 初级使用篇
  6. 如何使用PHP中的字符串函数
  7. 鼠标移动到版块图标产生的渐变效果
  8. 上班摸鱼更方便了!国内最大短视频APP推出PC版:联想首发
  9. 被美列入投资黑名单后 商汤重启公开招股发行规模定价没变
  10. 社区团购的坑,只有巨头能填?