2017-2018-1 20155213 实验四 外设驱动程序设计

2017-2018-1 20155213 实验四 外设驱动程序设计

实验目的

1、学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
2、在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
3、提交编译,加载模块,卸载模块,测试运行的截图

实验任务

任务一
  • 学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章
  • 提交康奈尔笔记的照片(可以多张)

笔记照片
1071611-20171203181303507-1870778680.jpg

1071611-20171203181310522-1609857413.jpg


任务二
  • 在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
  • 提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)

要点

  • 本部分就是敲代码,理解最基础的kernel编程。
  • 代码不必要自己敲,因为pdf首页写着,有赠送光盘贴有代码,所以买了本书,也就解决了敲代码问题。

截图如下
1071611-20171203181336491-1241910071.png
1071611-20171203181345022-181087564.jpg

1071611-20171203181354726-1824684593.jpg

任务三
  • 在实验箱中通过交叉编译完成test实验
  • 提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)

  • 未完成(老师叫停)

出现的问题及解决

PS:需要注意,一定在实验一的虚拟机上做,因为那里面的环境已经搭好了,不然很难成功。

  • 问题一,insmod:error inserting './test_drv.ko':-1 Operation not permitted
    1071611-20171203181516288-622729729.jpg

  • 问题一解决:上面的意思是操作没有被允许,即是权限问题,加上一个sudo就好了。
  • 问题二,chgrp:无效的组:"david"
  • 问题二解决:上面的意思很明显,就是david是无效组,将test_drv_load里面的组改为自己linux所在组就好了。
  • 问题三:ERROR:Removing 'test_drv':Device or resource busy
    1071611-20171203181538319-472197190.jpg

  • 问题三解决:百度了很久没能找到好的解决方法,就只能从原理上解决了,但可以使用unload里面的指令直接强制删除test_dev文件,然后重启虚拟机就可以了,因为其中rmmod的test_drv是存在proc里面的,而proc是只存在与内存中的,使所以重启后,自然没了,从而解决问题。

百度的帮助网站

转载于:https://www.cnblogs.com/elevator/p/7966727.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值