又是充满希望的一天!秃头秃头!
随着对驱动代码的不断深入,为了代码的美观性和易读性,我们最好将需要的变量定义到一个结构体里面。如图:
我们用一个结构体保存major这个主设备号的变量,然后通过结构体指针来调用他,看起来好像没什么问题,编译也是ok的
但是其实问题很大,当我们想要将该模块编译进内核时:
系统会显示已杀死,并且当我们用lsmod查看的时候发现该模块居然编译了上去。另外,这种模块我们是无法rmmod的,因为图上已经显示该模块已被使用,但是却没有使用的对象。
出现这个问题的原因很简单,就是结构体指针的问题,在C语言中,我们创建指针时,系统会自动为我们在栈区申请一段内存,并且也会自动给我们释放,但是驱动里面不一样(我也不知道为什么,有知道的大佬麻烦说下,谢谢),在驱动中我们需要给结构体指针申请动态内存,使用kmalloc。如图则为kmalloc动态申请内存,当然也不要忘记加上头文件,以及释放内存。
当我们再次编译并加载时,发现问题已解决
其中需要注意的是,我们需要将.c文件改名,因为上一个模块还残存着(不要忘记改Makefie里的.o哦)
ps:kmalloc中第二个参数GFP_KERNEL使用在非中断函数中申请内存,如为申请到内存会进入休眠,引起阻塞,而在中断函数中申请内存我们使用GFP_ATOMIC。

菜鸡随笔第二笔:insmod模块时显示已杀死相关推荐

  1. JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入)

    JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入) 开发流程:需求文档 接口文档 效果图 开发环境统一:JDK1.8 IDEA win10 GIT SSM SSH SpringB ...

  2. 安装APK时显示“已安装了签名冲突的应用”,但是手机上又没有该软件的解决办法

    事情是这样的,自己写了一个Android APP,生成安装包后,拷贝到手机上时,进行安装,发现安装不上,显示"已安装了签名冲突的应用".解决办法自然是先卸载该软件,就可以解决问题. ...

  3. 使用obs时显示已从服务器,小鹅通OBS

    一.功能简介 小鹅通OBS是用于推送直播视频源到服务器的工具,主要用于与学员共享桌面的教学直播场景 二.使用目的 使用OBS软件后,可以将摄像头设备接入进行直播,同时在直播间内可以任意添加直播素材,打 ...

  4. 处理CDR x8安装时显示“已停止工作”的教程

    相信很多朋友在安装cdr X8时会遇到这样一种情况,能装上去,但不能运行,弹出提示说CorelDRAW X8(64-bit)已停止工作.同样的X8安装包,在不同的电脑上测试有的没有问题,有的则会出现以 ...

  5. office安装时显示已有32位的,无法安装64位

    重新安装office2019时,总显示电脑内已经安装有32位的office,不能安装64位的.把卸载程序里所有可见的office删掉也没有用,试了网上的删除注册表的一些文件也没有用.最后看官网给出了办 ...

  6. 【安装cad后不小心卸了,再次重新安装时显示已安装。这个怎么破?】

    话不多说,百分百解决已安装问题,AutoRemove绿色版卸载工具分享下载 目前可以每天免费试用30分钟,足够清理你需要卸载的版本. 蓝奏云下载https://wwzr.lanzout.com/iTP ...

  7. 解决CAD2010卸载后重新安装时显示“已安装”问题

    1.开始>运行>输入"regedit",打开注册表,找到下面的注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R ...

  8. 未安装c 的vs语言支持,microsoft visual c++2015安装时出现问题,显示已安装这个产品的另外一个版本。...

    安装diamond,需要microsoft visual c++2015REdistributable(*64)环境. 那么问题来了,在安装microsoft visual c++2015REdist ...

  9. 渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(上)

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/11/es-code02/ 前提 上篇文章写了 ElasticSearch 源码解析 -- ...

最新文章

  1. 所有字符不含换行 正则表达式_网络爬虫 | 正则表达式
  2. keystone连接mysql_3、KeyStone服务部署与验证
  3. Java中实现DES加解密的一个类
  4. html文本显示_「前端开发」HTML入门与实战
  5. python多态_Python 简明教程 21,Python 继承与多态
  6. 浅谈面向对象思想下的 C 语言
  7. linux mount 查看挂载目录,Linux下使用mount来挂载设备到目录
  8. Ubantu下使用vi时,方向键变字母输出、退格键无法删除字符的解决办法
  9. 微软发布 Azure 物联网安全中心;阿里巴巴在美申请专利,以实现跨区块链统一管理;Google利用足球训练下一代人工智能……...
  10. PHP mysql_connect() 函数
  11. Tomcat的startup.bat闪退问题
  12. c语言常用绘图软件有哪些,数学绘图软件有哪些?好用的数学绘图软件推荐
  13. html在网页中图片打不开,网页图片不显示,教您网页图片不显示如何解决
  14. Webpack SourceMap快速定位错误位置
  15. Redis基础--Redis 4.0 常用配置
  16. 介绍一个直接浏览微软知识库文章的工具
  17. Elasticsearch 最佳运维实践总结
  18. 从零开始用android studio
  19. DCB改正——关于spp
  20. 网页中加入最新款百度天气预报样式代码

热门文章

  1. 树及树的算法(4) —— 红黑树
  2. DestroyWindow无法销毁的问题
  3. 数字网络监控系统解决方案1
  4. python实现数据结构--线性表
  5. 蓝牙耳机哪种通话效果最好?通话质量最好的蓝牙耳机盘点
  6. 怎么找回手机相册里删除的照片?这些技巧不知道太亏了!
  7. 外行朋友值得一读的5本经典数学书
  8. dev-c++输出的中文乱码
  9. [20180823]IMU与db link.txt
  10. 使用gif.js根据视频片段生成GIF图