mknod - make block or character special files
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
option 有用的就是-m 了
name 自定义
type 有b 和c 还有p
主设备号
次设备号

主设备号是由linux/major.h定义的,如下定义了一个DOC设备:
#define IGEL_FLASH_MAJOR 62

假如有一个命令mknod doc b 62 0 :
其中的doc为定义的名字,b指块设备,0指的是整个DOC。如果把0换为1,则1指的是DOC的第一个分区。2是第2个,对于块设备次设备号就表示该块设备上的分区号,依次类推。

至于mknod console c 5 1 的意思也很相似:
console是设备的名字
c指字符设备
5是该设备在major.h中定义的标记
1是第一个子设备

mknod console c 5 1
console为设备文件名,自己随便取
c是指字符型设备(可选b,块设备)
5是主设备号/dev/devices里面记录现有的设备
找个没有用的就可以了
1是次设备号,当你要给两个同样的设备上一个驱动的时候就要分了,从0开始,1就是第二个了,对于字符设备,次设备号就表示同类型设备的不同设备。

通常情况下,安装系统时已经创建了常用的设备文件,可以直接访问这些设备文件来访问设备。但在用户重新定制内核,并添加了新硬件驱动程序之后,新驱动程序对应的设备文件就可能不存在。在FreeBSD中,最常见的例子就是在内核中增加声卡的驱动程序时,就需要创建相应设备文件。

创建设备文件的基本方式是使用mknod,但是必须知道该设备的正确设备号才可以。另一种简单的方式是使用/dev目录下的shell程序MAKEDEV来完成,MAKEDEV实质上就是记录了很多设备的名字与其设备号之间的关系的程序,因此它能使用正确的设备号来创建设备。首先进入/dev目录,然后再执行MAKEDEV。

# cd /dev

# sh MAKEDEV snd0

MAKEDEV将使用设备名作参数创建设备文件,同时也创建这个设备文件依赖的其他相关设备文件。MAKEDEV的参数,并不一定为创建的设备文件名。例如建立 “MAKEDEV vty8” 将建立ttyv0到ttyv7共8个设备文件,使用 “MAKEDEV wd1s1a” 命令,将建立wd1、wd1s1、wd1s2等,以及wd1s1a、wd1s1b等设备文件。也可以使用all做MAKEDEV的参数,这将首先清除/dev目录下的所有设备文件,然后MAKEDEV创建所有预设的设备文件。一般情况下这将创建足够多的设备文件,其中的大部分设备文件在具体的系统中不会用得到。

如果对一个系统中没有(或者即使有但内核没有支持或探测到)的设备对应的设备文件进行操作,则系统返回Device not configured的错误信息。

MAKEDEV将使用mknod和对应设备的正确参数,包括字符或块设备、主设备号和从设备号来建立相应的设备文件。管理员也可以直接使用mknod创建设备文件,但这就必须将这些设备参数统统指定正确才行。因此除非对系统中的硬件驱动程序特别熟悉,一般不直接使用mknod来创建设备文件。
[root@can]# ll /dev/hd
hda hda1 hda2 hda3 hda4 hda5 hdc
[root@can]# ll /dev/hda
brw-r----- 1 root disk 3, 0 2008-12-18 /dev/hda
[root@can]# ll /dev/hda4
brw-r----- 1 root disk 3, 4 2008-12-18 /dev/hda4
[root@can]#

转载于:https://www.cnblogs.com/3me-linux/p/3922363.html

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

  1. Android 开机自动加载新wifi模块驱动

    在android ROM 开发中经常会遇到产品更换wifi模块的情况,一般常见的wifi驱动android内核中自带都有,无需过多调试,要是碰上内核中没有的就需要根据厂商提供的驱动进行移植. wifi ...

  2. linux加载u盘乱码怎么转换,Linux系统下加载U盘设备时文件乱码的有效解决方法

    很少情况会在Linux系统下使用U盘,但是最近有朋友在Linux系统下加载U盘设备的时候发现U盘内的文件出现了乱码现象,这该怎么办呢?很多朋友对Linux系统又不太熟悉,不知道该怎么操作,没关系,让小 ...

  3. 前端|npm全局创建wps加载项

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 问题描述 基于vscode的方式创建wps加载项在获取类型之后 ...

  4. 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  5. docker加载新的镜像后repository和tag名称都为none的解决方法

    docker加载新的镜像后repository和tag名称都为none的解决方法 参考文章: (1)docker加载新的镜像后repository和tag名称都为none的解决方法 (2)https: ...

  6. idea中重新加载新的依赖方法

    idea中重新加载新的依赖方法 点击右侧maven选项,在弹窗中点击这个按钮 2.然后再弹窗中输入mvn -U idea:idea 等待执行就可以了

  7. unity 加载关卡_unity中加载新关卡函数简单用法

    Application.LoadLevel 加载关卡 static function LoadLevel (index : int) : void Description描述 Loads the le ...

  8. C#设计抽奖程序。窗体加载上来时,标签显示:开始抽奖。单击命令按钮,产生一个1到100的随机数,标签上显示:恭喜第?号,您中奖了。

    设计抽奖程序.窗体加载上来时,标签显示:开始抽奖.单击命令按钮,产生一个1到100的随机数,标签上显示:恭喜第?号,您中奖了. 提示:label1.Text = "恭喜第" + i ...

  9. U盘加载硬盘控制卡驱动安装Windows 2003 指南

    U盘加载硬盘控制卡驱动安装Windows 2003 指南 http://www.dell.com/Support/Article/cn/zh/cnbsd1/SLN263067 posted on 20 ...

最新文章

  1. ERROR: org.apache.hadoop.hbase.PleaseHoldException:Master is initializing
  2. 查询速度提升200倍,ClickHouse到底有多快?
  3. 【Elasticsearch】打分策略详解与explain手把手计算
  4. review_core_basic_java(1)java程序设计概述
  5. 【Python】万花筒
  6. 中台之上(五):业务架构和中台的难点,都是需要反复锤炼出标准模型
  7. Java超详细的基础编程300题,附带答案,持续更新中~
  8. 三星 s9 android 9,美国V版三星S9/S9+迎来安卓9更新
  9. 单片机实验报告实验七:定时器实验
  10. Linxu终端远程协助工具termpair
  11. Macbook安装pkg
  12. warning: ISO C forbids an empty translation unit [-pedantic]
  13. Android Studio Text组件介绍
  14. 资本市场+金融科技,广州试点能否擦出新火花?
  15. python第一行代码_“少年py”001:下载Python软件,写第一行代码
  16. SaaS,iass 和pass,你知道吗?
  17. 康托展开及其逆运算 详解
  18. 频响测试低12dB问题
  19. 2017云栖大会门票转让_2017云栖大会门票多少钱?
  20. antd的栅格系统使用

热门文章

  1. 对于变态数据搜索的心得
  2. Android ListView 设置
  3. 关于企业的信息化建设
  4. java正则表达式入门文档
  5. php定义常量 define vs const
  6. C# 创建网站 无法启动与停止的问题
  7. 【Java】SpringBoot入门学习及基本使用
  8. Python 日期时间函数
  9. Git客户端图文详解如何安装配置GitHub操作流程攻略
  10. 疑惑即新知——记一次reverse模板实现过程