关于韦老板的板子,驱动书写加载爬坑。产生不了.ko文件以及mknod: /dev/xxx: File exists。
时间:10-02
整理:3721RD
点击:
开始按照视频教程书写驱动,一切照旧,发现生成不了.ko文件。需注意两点:
1.makefile中的KERN_DIR地址需为本机上内核X的地址,且要求次X与单板内核相同,且以及编译。(也就是说,单板上的内核,是尤本机上X编译烧写的)
2.M=‘pwd’是错的。正确书写方式为M=`pwd`
生成.ko文件,通过nfs服务器加载到单板内核之后,要创建设备节点发现设备节点已经存在,mknod: /dev/xxx: File exists 查看之后发现该文件的主设备号与我设置的不同
解决办法,删除该文件 rm /dev/xxx
然后重新创建设备节点,再运行测试程序,测试成功。
1.makefile中的KERN_DIR地址需为本机上内核X的地址,且要求次X与单板内核相同,且以及编译。(也就是说,单板上的内核,是尤本机上X编译烧写的)
2.M=‘pwd’是错的。正确书写方式为M=`pwd`
生成.ko文件,通过nfs服务器加载到单板内核之后,要创建设备节点发现设备节点已经存在,mknod: /dev/xxx: File exists 查看之后发现该文件的主设备号与我设置的不同
解决办法,删除该文件 rm /dev/xxx
然后重新创建设备节点,再运行测试程序,测试成功。
确定不是rmmod该模块?
牛逼
没有吧,模块是自己安装的,但是这个内核之前应该有人安装过,创建了xxx的设备节点,没有热拔插,所以只是删除了设备节点,然后重新定义了。不知道对不对。我是小白,刚开始学,写帖子只是想以后有问题了能够查找,也能督促自己学习。帖子里面大神发现了有什么错误,还希望大神批评指正。
韦东山的视频里面有自动创建设备节点的教程的,不过版本比较老,现在版本已经不是用那种接口函数来创建了。韦东山的视频是我看过的Linux视频中讲的最通俗易懂的。
老司机,求带路;好好学习,天天向上
向您 学习 。
创建一个类;在xxx_init(void)中添加class_create();device_create();自动生成设备节点。就节省了mknod /dev/xxx c 。步骤
前面生成设备号也可以自动生成的。cat /proc/devices 可查看设备号。
大家好,现在本人有UT6410CV01核心板80块左右,绝对限量珍藏,机会难得。全新未使用,内存256M.
有需要者,请联系
15955119423