由于程序的异常退出, 内核的引用计数没有被清除(我猜的). 所以驱动不能被卸载掉, 强制也不行. 如下: 因为 -f 参数实际上是没有起作用的. 可以修改内存参数使其其作用, 这样就能强制卸载了. 这个参数的名字是: 不过需要重新编译内核才行. ...
分类:
其他好文 时间:
2017-09-28 12:57:56
阅读次数:
503
一.驱动框架 初始化:insmod 加载 1.确定主设备号: 分为静态和动态分配,其中LED_GPIO_SIZE 表示支持的次设备号数目,一般默认为1. 相关实现代码如下: [cpp] view plain copy int result; dev_t dev; /*分配主设备号*/ if (scu ...
分类:
系统相关 时间:
2017-09-20 20:55:13
阅读次数:
234
hexdump: 查看文件的内容,比如二进制文件中包含的某些字符串,通常用来调试驱动用 1.调试 键盘驱动 讲解 当我们insmod挂载了键盘驱动后,找到键盘驱动被放在event1设备里, 此时没有按键按下,所以event1里面的数据是没有的,那么数据又是从来哪里来? 通过键盘驱动的read函数,若 ...
分类:
系统相关 时间:
2017-09-19 19:51:53
阅读次数:
272
已经有Windows 7,准备再安装一个CentOS 7。 1. 划分磁盘空间 从磁盘上划分安装CentOS 7的安装空间。如果有多个硬盘的话,一定要在主硬盘上划分2G的空间(其实1G就够了)作为boot。这是因为开机时BIOS读取的是主硬盘的MBR,如果boot也在从硬盘,GRUB修改的是从硬盘的 ...
insmod:加载模块 参数: -f 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。-k 将模块设置为自动卸除。-m 输出模块的载入信息。-o <模块名称> 指定模块的名称,可使用模块文件的文件名。-p 测试模块是否能正确地载入kernel。-s 将所有信息记录在 ...
分类:
系统相关 时间:
2017-08-29 13:03:06
阅读次数:
281
一.改动mt7620.dtsi,去掉默认的bootargs,kernel_menuconfig取消buildin的command line 二.kernel_menuconfig增加scsi驱动。USB Storage,Ext4文件系统,设置USB驱动有个关键的地方,要打开: <*> Generic ...
分类:
其他好文 时间:
2017-08-02 11:52:01
阅读次数:
559
Linuxkernel:内核设计流派:单内核设计,但是充分借鉴了微内核体系设计的优点,为内核引入了模块化机制,内核高度模块化;内核被模块化之后,一些最为基本最为重要的内容,被编译到内核核心;而其他更多的功能则以模块的方式来提供;而且支持动态装载和卸载各内核模块;内核的..
分类:
系统相关 时间:
2017-07-31 09:58:42
阅读次数:
328
linux内核从2.6.13-rc3开始,提供了在用户空间,可动态的绑定和解绑定设备和设备驱动之间关系的功能。在这之前,只能通过insmod(modprobe)和rmmod来绑定和解绑,而且这种绑定和解绑都是针对驱动和所有设备的。而新的功能可以设置驱动和单个设备之间的联系。 这里,我们以pci总线的 ...
分类:
系统相关 时间:
2017-07-28 18:20:03
阅读次数:
186
KGTP 介绍 KGTP 是一个能在产品系统上实时分析 Linux 内核和应用程序(包括 Android)问题的全面动态跟踪器。 使用 KGTP 不需要 在 Linux 内核上打 PATCH 或者重新编译,只要编译 KGTP 模块并insmod 就可以。 其让 Linux 内核提供一个远程 GDB ...
分类:
其他好文 时间:
2017-06-29 17:26:45
阅读次数:
165
1、上一节中,我们将初步的驱动代码写完后编译后,放入到rootfs中进行insmod时,在/sys/bus/platform/drvier/目录中能够看到why_led这个目录,但是进入后只有一些基本的东西,却没有能使用这个led驱动的关键性东西,那是因为我们没有提供platform_device,并且驱动代码中的prob..
分类:
系统相关 时间:
2017-06-02 01:15:26
阅读次数:
316