mknod创建设备(加载新的设备驱动时候,通常会用到此命令)
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创建设备(加载新的设备驱动时候,通常会用到此命令)相关推荐
- Android 开机自动加载新wifi模块驱动
在android ROM 开发中经常会遇到产品更换wifi模块的情况,一般常见的wifi驱动android内核中自带都有,无需过多调试,要是碰上内核中没有的就需要根据厂商提供的驱动进行移植. wifi ...
- linux加载u盘乱码怎么转换,Linux系统下加载U盘设备时文件乱码的有效解决方法
很少情况会在Linux系统下使用U盘,但是最近有朋友在Linux系统下加载U盘设备的时候发现U盘内的文件出现了乱码现象,这该怎么办呢?很多朋友对Linux系统又不太熟悉,不知道该怎么操作,没关系,让小 ...
- 前端|npm全局创建wps加载项
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 问题描述 基于vscode的方式创建wps加载项在获取类型之后 ...
- 【Android 插件化】“ 插桩式 “ 插件化框架 ( 类加载器创建 | 资源加载 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- docker加载新的镜像后repository和tag名称都为none的解决方法
docker加载新的镜像后repository和tag名称都为none的解决方法 参考文章: (1)docker加载新的镜像后repository和tag名称都为none的解决方法 (2)https: ...
- idea中重新加载新的依赖方法
idea中重新加载新的依赖方法 点击右侧maven选项,在弹窗中点击这个按钮 2.然后再弹窗中输入mvn -U idea:idea 等待执行就可以了
- unity 加载关卡_unity中加载新关卡函数简单用法
Application.LoadLevel 加载关卡 static function LoadLevel (index : int) : void Description描述 Loads the le ...
- C#设计抽奖程序。窗体加载上来时,标签显示:开始抽奖。单击命令按钮,产生一个1到100的随机数,标签上显示:恭喜第?号,您中奖了。
设计抽奖程序.窗体加载上来时,标签显示:开始抽奖.单击命令按钮,产生一个1到100的随机数,标签上显示:恭喜第?号,您中奖了. 提示:label1.Text = "恭喜第" + i ...
- U盘加载硬盘控制卡驱动安装Windows 2003 指南
U盘加载硬盘控制卡驱动安装Windows 2003 指南 http://www.dell.com/Support/Article/cn/zh/cnbsd1/SLN263067 posted on 20 ...
最新文章
- ERROR: org.apache.hadoop.hbase.PleaseHoldException:Master is initializing
- 查询速度提升200倍,ClickHouse到底有多快?
- 【Elasticsearch】打分策略详解与explain手把手计算
- review_core_basic_java(1)java程序设计概述
- 【Python】万花筒
- 中台之上(五):业务架构和中台的难点,都是需要反复锤炼出标准模型
- Java超详细的基础编程300题,附带答案,持续更新中~
- 三星 s9 android 9,美国V版三星S9/S9+迎来安卓9更新
- 单片机实验报告实验七:定时器实验
- Linxu终端远程协助工具termpair
- Macbook安装pkg
- warning: ISO C forbids an empty translation unit [-pedantic]
- Android Studio Text组件介绍
- 资本市场+金融科技,广州试点能否擦出新火花?
- python第一行代码_“少年py”001:下载Python软件,写第一行代码
- SaaS,iass 和pass,你知道吗?
- 康托展开及其逆运算 详解
- 频响测试低12dB问题
- 2017云栖大会门票转让_2017云栖大会门票多少钱?
- antd的栅格系统使用