您的位置:首页 > 其它

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

2017-12-03 18:16 316 查看

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

实验目的

1、学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章

2、在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验

3、提交编译,加载模块,卸载模块,测试运行的截图

实验任务

任务一

学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章

提交康奈尔笔记的照片(可以多张)

笔记照片





任务二

在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验

提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)

要点

本部分就是敲代码,理解最基础的kernel编程。

代码不必要自己敲,因为pdf首页写着,有赠送光盘贴有代码,所以买了本书,也就解决了敲代码问题。

截图如下







任务三

在实验箱中通过交叉编译完成test实验

提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)

未完成(老师叫停)

出现的问题及解决

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

问题一,
insmod:error inserting './test_drv.ko':-1 Operation not permitted




问题一解决:上面的意思是操作没有被允许,即是权限问题,加上一个sudo就好了。

问题二,
chgrp:无效的组:"david"


问题二解决:上面的意思很明显,就是david是无效组,将test_drv_load里面的组改为自己linux所在组就好了。

问题三:
ERROR:Removing 'test_drv':Device or resource busy




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

百度的帮助网站

解决insmod: error inserting 'hello.ko': -1 Invalid module format

insmod: error inserting 'hello.ko': -1 Operation not permitted

...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: