编写驱动程序的时候有时候会出现这种情况,模块加载之后不能卸载或卸载之后不能在加载,cat /proc/devices

后发现设备还占用着设备号,这种情况下,再次加载驱动模块肯定不会成功,必须重新启动才可以解决。最近仔细看书后发现自己在驱动程序的卸载函数中少写了两

个函数调用,以至于在加载模块的时候申请或添加的设备没有被释放或删除。

解决方案:

第一步、在/lib/modules/目录中建立与当前内核版本号一致的目录 如

uname -r 得到 2.6.31.6则mkdir -p /lib/modules/2.6.31.6 否则会出现“rmmod:

chdir(2.6.31.6): No such file or directory”类似的错误,而模块也没有被卸载;

第二步、在驱动模块卸载函数__exit中的cdev_del(struct cdev

*)函数调用后即注销字符设备后调用 unregister_chrdev_region(dev_t devno,  unsigned

count)函数释放在驱动加载函数__init中通过register_chrdev_region、alloc_chrdev_region,注册的

主设备号。(cdev_del函数、unregister_chrdev_region函数缺一不可);

经过以上两步操作后,rmmod 模块名称 卸载模块就不会错误了,而且cat /proc/devices也不会再有已经卸载的模块的信息,这样再次加载模块也不会出错了!

这个问题,我也遇到过,那要看人的模块名,和设备名是不是一样, 要是一样的话,就直接rmmod *.ko 如果不是一样的话,就得,rmmod  设备名.ko,主要是在模块名,和设备名,这二者之间。

至于mini2440开发板,是需要建立/lib/modules/2.6.29.4-FriendlyARM

但是还得看你的内核的版本,所以2.6.29.4不一定和你的一样,你需要

#uname -r查看一下你的内核版本,替换掉才行。

linux加载的驱动无法卸载,linux驱动加载后不能再卸载相关推荐

  1. linux如何卸载内核模块_如何加载或卸载Linux内核模块

    linux如何卸载内核模块 本文摘自Manning出版的< Linux in Action>第15章. Linux使用内核模块管理硬件外围设备. 这是这样的. 一个运行中的Linux内核是 ...

  2. c需要实现安装卸载Linux模块,Linux内核模块编译与加载

    Linux内核的整体结构非常庞大,其包含的组件也非常多,如何使用所需要的组件? 方法一: 把所有的组件都编译进内核文件,即Zlmage或bzlmage,但会导致两个问题:一是生成的内核文件过大:二是如 ...

  3. Linux系统安装驱动过程中ko文件加载错误(Required key not available)的解决办法

    Linux系统安装驱动过程中ko文件加载错误(Required key not available)的解决办法 问题描述 在Ubuntu上使用CP210x USB转UART设备时需要安装驱动程序(CP ...

  4. Ubuntu\linux,加载mcp2515的驱动,链接mcp2515,mcp2515的这个驱动默认在linux内核中。jetson nao、香橙派、树莓派

    加载mcp2515的驱动,这个驱动默认在linux内核中. linux内核源码 1.树莓派+MCP2515+总线工具完成can报文收发 sudo modprobe mcp251x 2.树莓派CAN通讯 ...

  5. linux centos fedora audio root 普通用户声卡驱动安装 加载 声音

    linux  centos fedora Audio root 及普通用户声卡及声音的问题 大家用linux大部分当作服务器用的,谁用这玩意听歌,看电影啊,毕竟是玩吗,玩来玩去,声音给浪丢了,那也不能 ...

  6. u盘安装linux找不到驱动,利用U盘加载控制器驱动来安装Linux系统的方法

    一般我们在安装服务器过程中需要加载一些scsi卡或raid卡驱动,以便操作系统可以检测到硬盘. 常规的安装方式是要用到软驱,其实我们也是可以通过U盘来进行加载的. 装Linux控制器驱动往往都是*.d ...

  7. linux程序卸载动态库,Intel平台下linux中ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载...

    在 IBM Bluemix 云平台上开发并部署您的下一个应用. 相信读者已经看过了 Intel平台下Linux中ELF文件动态链接的加载.解析及实例分析(一): 加载的内容了,了解了ELF文件被加载的 ...

  8. linux下卸载显卡驱动以及重新安装显卡驱动

    在linux下安装了nvidia 显卡驱动之后,遇到过开机一直是循环登录的状态,或者双屏模式只有一个主显示屏能正常启动的情况.于是决定卸载显卡驱动. 如果是循环登录的时候: 1. 进入循环登录的界面后 ...

  9. linux系统怎么卸载触摸屏驱动,linux系统下怎么卸载旧的驱动

    满意答案 yiguo1987 推荐于 2016.05.28 采纳率:45%    等级:12 已帮助:7472人 Linux下大部分驱动都是以模块方式加载到内核的,要删除一个驱动,主要从模块下手.所以 ...

最新文章

  1. 《人工智能标准化白皮书(2018版)》发布|附下载
  2. 增强学习(三)----- MDP的动态规划解法
  3. jvm性能调优实战 - 38System.gcy引发的惨案
  4. Nginx-从零开始使用nginx实现反向代理及负载均衡
  5. 基于MATLAB的交流电动机调速系统仿真
  6. 第三十三讲:tapestry Ajax eventlink无刷新页面
  7. 使用LinkedBlockingQueue来实现生产者消费者的例子
  8. jtoken判断是否包含键_Redis列表键(linkedlist/ziplist)的介绍
  9. 计算机一级考试试题window,全国计算机等级考试一级Window复习题及答案.doc
  10. 【Flink】UnsatisfieldlinkError : org.apache.hadoop.util.NativeCrc32
  11. PostgreSQL在何处处理 sql查询之六十二
  12. [BZOJ2753][SCOI2012]滑雪与时间胶囊(特殊的有向树形图)
  13. 【读书笔记】金字塔原理-呈现金字塔
  14. 微信小程序 import文件大小限制
  15. 我最爱的超女-琪琪格
  16. Adversarial Attack
  17. 零基础入门进化算法(基本概念)
  18. itpt_TCPL 第二章:类型、运算符以及表达式
  19. android声纹识别技术,基于Android平台的声纹识别系统的研究与实现
  20. 【一周头条盘点】中国软件网(2018.4.9~2018.4.13)

热门文章

  1. 基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡
  2. alpha shapes提取边界原理及详细步骤
  3. java end 方法_Java Spans.end方法代码示例
  4. Python神器!只需一行代码,纯文本秒变Markdown!
  5. 斗地主手牌(水贴ψ(*`ー´)ψ)
  6. websocket实现消息群发
  7. [Python基础]列表List
  8. cm-14.1 Android系统启动过程分析(4)-init进程的启动、rc脚本解析、zygote启动、属性服务
  9. 使用浏览器打开exe文件
  10. swoole开启了守护进程如何关掉