insmod mknod】的更多相关文章

insmod module 會在 /proc/devices/ 下產生 major number 及 device name ---------------------------- mknod 會使用 /proc/devices/ 下的 major number 在 /dev 建立 節點 ---------------------------- reference: https://www.cnblogs.com/wanghetao/archive/2012/06/02/2532183.htm…
[转]insmod http://www.cnblogs.com/amaoxiaozhu/archive/2013/03/08/2950002.html 在Linux下,驱动程序是内核的一部分,运行在内核态下,你可以将驱动静态的和内核编译在一起,这样的缺点是内核会比较大,而且如果驱动出错,会 导致整个系统崩溃:也可以以module的方式编译,在需要的时候动态的载入.如果你编译过内核,应该记得在make menuconfig中,选项前面是可以选择和的,就分别表示"编译到内核中"和&quo…
转自:http://www.cnblogs.com/hnrainll/archive/2011/06/10/2077583.html mknod 用途 创建特殊文件. mknod Name { b | c } Major Minor 创建 FIFO(已命名的管道) mknod Name { p } 描述 mknod 命令建立一个目录项和一个特殊文件的对应索引节点.第一个参数是 Name 项设备的名称.选择一个描述性的设备名称.mknod 命令有两种形式,它们有不同的标志. 第一种形式中,使用了b…
1. 与内核版本不一致 嵌入式开发时,模块编译时需要制定内核的路径,内核的版本信息会加入到模块文件中,如果目标板上运行的内核与模块中包含的内核版本对不上,加载就会出错,报如下错误:  insmod invalid format 可通过modinfo查看ko文件中包含的内核版本信息 2. 内核没有编译,缺少文件 "no symbol version for module_layout",重新编译内核后,再编译模块即可. 3.模块文件被破坏 有次开发模块时,把ko文件放到了外接的flash…
linux内核默认会包含git的commit ID. 而linux的内核在insmod模块时,会对模块和内核本身的版本做严格的校验.在开发产品时,改动内核后,由于commit ID变更,会导致linux内核变更,之前已编译发布的模块与升级后的linux版本不一致,必须重新编译,非常麻烦. 为了解决这个问题,很多开发者通过配置make menuconfig,去掉CONFIG_LOCALVERSION_AUTO选项,从而不再包含git commit ID. 关于linux包含git commit的实…
转自:http://blog.csdn.net/chrovery/article/details/51088425 转自 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=27717694&id=3971861 一.前言 对于现在编译的一些module要insmod在系统上时,可能会报各种各样的错误.这些错误仔细研读内核源码,都能找出原因.2.6 内核以前的insmod部分主要依赖于modutils源码包,在用户层基本将工作完成…
不得不说网上坑爹的文章比虱子还多,参考这位仁兄调试成功 喜欢C的人却靠着Java产业吃饭,人艰不拆... 对于未知的东西,有个习惯,run success first,then research environment [root@vohst etc]# uname -aLinux vohst 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux [root@vohst b…
1,首先保证make menuconfig选项配置: [*] Enable loadable module support  ---> [*]   Module unloading 2,在lib下缺少modules目录和相应内核版本目录(我的是3.8.0),提示: rmmod: chdir(/lib/modules): No such file or directory 解决办法: <fl2440>: ls hello.ko hello.ko <fl2440>: ls lib…
linux mknod命令解析 http://www.cnblogs.com/cobbliu/archive/2011/07/05/2389014.html mknod:make node  生成设备节点/文件 mknod [OPTION]... NAME TYPE [MAJOR MINOR] DESCRIPTION options 选项 Create the special file NAME of the given TYPE. Mandatory arguments to long opt…
man insmod: INSMOD(8) insmod INSMOD(8) NAME insmod - Simple program to insert a module into the Linux Kernel SYNOPSIS insmod [filename] [module options...] DESCRIPTION insmod is a trivial program to insert a module into the kernel. Most users will wa…
模块参数 引导模块时,可以向它传递参数.要使用模块参数加载模块,这样写: insmod module.ko [param1=value param2=value ...] 为了使用这些参数的值,要在模块中声明变量来保存它们,并在所有函数之外的某个地方使用宏MODULE_PARM(variable, type) 和 MODULE_PARM_DESC(variable, description) 来接收它们.type参数应该是一个格式为 [min[-max]]{b,h,i,l,s} 字符串,其中 m…
加载内核驱动的通常流程: 1.先将.ko文件拷贝到/lib/module/`uname -r`(内核版本号)/kernel/driver/...目录下, 根据具体用途的区别分为net.ide.scsi.usb.video.parport.md.block.ata等等. 2.运行depmod -a,更新模块依赖新,主要是更新modules.dep文件 3.运行modprobe加载内核模块 lsmod 功能:列出内核已载入模块的状态 用法:lsmod 描述: lsmod 以美观的方式列出/proc/…
编译自己的内核模块后,insmod出现error:error inserting 'hello.ko': -1 Invalid module format 出现这种情况的原因是因为Makefile种使用的编译内核版本与insmod的版本不一致导致.…
转自:http://www.cnblogs.com/cobbliu/archive/2011/07/05/2389014.html 个人觉得linux的软件设计思想异常强大,比如把所有的设备都当做文件来处理,大大简化了程序员的负担,向提出这个思想的大神s致敬!! 先来看看linux系统中设备管理的基本知识: 我们的linux操作系统跟外部设备(如磁盘.光盘等)的通信都是通过设备文件进行的,应用程序可以打开.关闭.读写这些设备文件,从而对设备进行读写,这种操作就像读写普通的文件一样easy.lin…
设备文件是通过mknod命令来创建的.其命令格式为: mknod [OPTION]... NAME TYPE [MAJOR MINOR] TYPE取值: 主设备号和次设备号两个参数合并成一个16位的无符号短整形,高8位表示主设备号,低8位表示次设备号. 一个设备文件通常与一个硬件设备相关联,或者与硬件设备的某一物理或逻辑分区相关联.但在某些情况下设备文件不会和任何实际的硬件关联,而是表示一个虚拟的逻辑设备.例如,/dev/null就是对应于一个"黑洞的"设备文件:所有写入这个文件的数据…
(一) 今天写了个块设备驱动例子,在虚拟机上加载模块insmod simp_blkdev.ko的时候,出现以下错误. insmod: error inserting 'simple-blk.ko': -1 Invalid module format 其实错误很简单,Makefile的编写失误,因为之前是想让这个驱动模块在TQ2440上运行的,所以,Makefile的编写使用了以下形式: ifneq ($(KERNELRELEASE),) obj-m := simp_blkdev.o else K…
              内核模块:/lib/modules/version/kernel或/lib/modules/$(uname -r)/kernel; [root@localhost kernel]# cd /lib/modules/$(uname -r)/kernel [root@localhost kernel]# ll total drwxr-xr-x root root Sep arch drwxr-xr-x root root Sep crypto drwxr-xr-x roo…
linux设备驱动有两种加载方式insmod和modprobe,下面谈谈它们用法上的区别1.insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址.写法为:        insmod drv.ko2.  modprobe则可以一次将有依赖关系的驱动全部加载到内核.不加驱动的具体地址,但需要在安装文件系统时是按照make modues_install的方式安装驱动模块的.驱动被安装在/lib/modules/$(uname -r)/...下.写法为:       modprob drv…
insmod: can't insert 'led.ko': invalid module format 之前在Imx257学习版固件编写的驱动想直接移植imx257核心板的开发板上.以为2个板子的源码的引脚定义一样就没什么问题了.殊不知问题很多. 我们输入dmesg |tail   在log中我们看到2个版本不匹配. 在这儿我们需要明白一个原理,我们编译驱动程序的Makefile 有一个KDIR指的是Linux源码文件,那个源码文件一定是编译过内核的源码文件.那个内核应该就是你目标板正在运行的…
insmod(install module) 功能说明:载入模块 install loadable kernel module 语法:insmod [-fkmpsvxX][-o <模块名称>][模块文件][符号名称 = 符号值] 参数: -f 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入.-k 将模块设置为自动卸除.-m 输出模块的载入信息.-o   <模块名称> 指定模块的名称,可使用模块文件的文件名.-p 测试模块是否能正确地载入kernel…
磁盘分区: fdisk [root@www ~]# fdisk [-l] 装置名称 选项与参数: -l :输出后面接的装置所有的 partition 内容.若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的 partition 均列出来. 范例:找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息 [root@www ~]# df / <==注意:重点在找出磁盘文件名而已 Filesystem 1K-blocks Used Available Use% Mounted o…
1.语法       mknod [选项]  设备名  设备类型  主设备号 次设备号   2.选项参数列表 选项 说明 --version 显示命令版本信息 --help 显示帮助信息 -m | --mode=MODE 设置权限 -Z |  --context=CTX 设置SELinux的安全上下文 设备类型 b,块设备:c,字符设备:u,没有缓冲的字符设备:p,fifo设备 设备号 只能是十进制和八进制,如果是0x开头,那么还是十进制.对于b.c.u设备,必须给出设备号,对于p设备,必须忽略…
问题现象: 通过 insmod 加载 XXX.ko 时候提示: hello: module verification failed: signature and/or required key missing - tainting kernel 问题原因: 自 3.7 内核之后有了内核签名机制. 编译内核时 .config 中有跟内核签名相关的选项有如下: CONFIG_MODULE_SIG=y# CONFIG_MODULE_SIG_FORCE is not setCONFIG_MODULE_S…
在编译一个模块时,会出现WARNING:"函数名" undefined!,这 说明该模块所依赖的模块还没有加载进内核,需要先加载所依赖的模块. 当加载依赖模块后,使用insmod会出现"Invalid parameters",dmesg | tail 查看给出的具体信息,会发现是 " no symbol version for 之前的函数名",说明该模块找不到所依赖的函数 解决方法: 在编译模块时候,先将所依赖模块的 Module.symvers…
mknod 创建块设备或者字符设备文件.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora.   1.语法       mknod [选项]  设备名  设备类型  主设备号 次设备号   2.选项参数列表 选项 说明 --version 显示命令版本信息 --help 显示帮助信息 -m | --mode=MODE 设置权限 -Z |  --context=CTX 设置SELinux的安全上下文 设备类型 b,块设备:c,字符设备:u…
在使用pyinstaller时,有使用configparser模块. 使用相对路径.在pycharm中测试,正常,打包成exe,就出错了 换用绝对路径, print(os.getcwd()) fp_dir=os.getcwd() print(fp_dir) fp = fp_dir + '\conf.ini' # 定义配置文件名 print(fp) 基本正常. 可是遇到了 conf.read(fp) # 打开conf conf.add_section('conf') # 添加conf节点 不能自动…
原文链接:https://blog.csdn.net/evenness/article/details/7655921?utm_source=blogxgwz5 modprobe: Load module(s):modprobe [-a -n -v ] [-C config ] [ -t type ] pattern OR module1 module2 ...List modules:modprobe [-l ] [-C config ] [ -t type ] patternnote: wi…
mknod - make block or character special filesmknod [OPTION]... NAME TYPE [MAJOR MINOR]    option 有用的就是 -m 了    name   自定义    type   有 b 和 c 还有 p    主设备号    次设备号 p FIFO型 b 块文件 c 字符文件 GNU版本还允许使用u('unbufferd'非缓冲化),以保持与C语言的一致. 当创建一个块文件或字符文件时,主.次设备号必须在文件类…
对于如何向模块传递参数,Linux kernel 提供了一个简单的框架.其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量. 通过宏module_param()定义一个模块参数: module_param(name,type,perm); name既是用户看到的参数名,又是模块内接受参数的变量.type表示参数的数据类型. 如: byte, short, ushort,int, uint, long, ulong, charp, bool…
linux加载/卸载驱动有两种方法. 1.modprobe 注:在使用这个命令加载模块前先使用depmod -a命令生成modules.dep文件,该文件位于/lib/modules/$(uname -r)目录下: modprobe命令智能地向内核中加载模块或者从内核中移除模块,可载入指定的个别模块,或是载入一组相依的模块.modprobe会根据depmod所产生的依赖关系,决定要载入哪些模块.若在载入过程中出错,modprobe会卸载整组的模块. 载入模块的命令: (1) 载入指定的模块:mo…