1. 驱动程序可以被静态的被编译进内核中,也可以作为模块在使用时加载。 2. 当模块文件被 insmod 命令加载时,其中的模块初始化函数将被调用,该函数向内核注册驱动程序,及该初始化函数就是给模块驱动程序的入口。 3. 当模块被 rmmod 命令卸载时,模块清除函数将被调用。 相关命令有:insm
分类:
其他好文 时间:
2016-03-12 11:54:17
阅读次数:
110
编译/安装驱动程序 在Linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此编译/安装一个驱动程序,其实就是编译/安装一个内核模块。 示例: make insmod memdev.ko 创建设备文件 应用程序->设备文件->驱动程序 通过字符设备文件,应用程序可以使用相应的字符设备驱动
分类:
其他好文 时间:
2016-03-06 20:57:22
阅读次数:
284
insmod时可能出现的错误:(问题5为自己遇到的实际问题,其他则为借鉴他认经验)1.warning: function declaration isnt a prototype这种错误也是很常见的,主要是对一些函数固定格式的错误使用。比如int function()改称int function(v
分类:
系统相关 时间:
2016-03-05 16:17:45
阅读次数:
329
Linux字符设备-自动创建设备号和设备节点 先写一个自动分配字符设备号和设备节点的例子及APP 手动安装步骤: Insmod my_char_dev.ko 不需要再安装设备节点 然后是测试app ./my_char_dev_app 1 1 #include <linux/module.h> 2 #
分类:
系统相关 时间:
2016-02-22 00:03:59
阅读次数:
524
1. 得到系统中soft dog的信息# modinfo softdog filename: /lib/modules/3.2.0-4-686-pae/kernel/drivers/watchdog/softdog.ko2. 加载模块# insmod /lib/modules/3.2....
分类:
Web程序 时间:
2016-01-22 13:46:48
阅读次数:
188
man insmod:INSMOD(8) insmod INSMOD(8)NAME insmod - Simple program to insert a module into the Linux KernelSYNOPSIS insmod [filename] [modu...
分类:
系统相关 时间:
2016-01-06 22:03:59
阅读次数:
244
1. 学会写简单的makefile2. 编一应用程序,可以用makefile跑起来3. 学会写驱动的makefile4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dm...
分类:
系统相关 时间:
2016-01-06 19:46:25
阅读次数:
201
1,使用root身份打开/boot/grub2/grub.cfg2,找到### BEGIN /etc/grub.d/30_os-prober ### 在后面添加: mementry "Windows 10"{ insmod ntfs set root=(hd0,1) chain...
内核模块可以使用两种方式加入进内核:1.使用insmod等命令动态加载到内核(obj-m);2.作为内核的一部分静态编译进内核(obj-y);在linux/init.h文件中typedef int (*initcall_t)(void);typedef void (*exitcall_t)(void...
分类:
其他好文 时间:
2015-12-09 17:13:21
阅读次数:
136
一. 内核模块 1. 头文件 Linux/init.h 和 Linux/module.h 2. 装载内核 insmod 对应的转载函数 module_init(); 3. 卸载内核 rmmod 对应的卸载函数 module_exit();二. 编写 helloworld.c 三。编写Make...
分类:
系统相关 时间:
2015-12-04 22:58:54
阅读次数:
358