linux open驱动失败,linux所遇到的问题记录

在Linux mini2440平台上挂载NFS文件系统时遇到权限问题,经检查发现NFS配置中的空格引起。修复此问题后,探讨了GPIO中断的注册与注销,建议中断注册应在probe函数中,注销在remove函数中以避免警告。此外,还解决了启动时LED自动点亮的问题,通过屏蔽/etc/init.d/rcS中的LED启动脚本实现。最后,提到了makefile编写注意事项、klogd和syslogd服务对于记录printk的重要性,以及模块卸载时的常见错误及其解决方法。
摘要由CSDN通过智能技术生成

9:mini2440平台挂载NFS文件系统后,在开发板上没有权限进行创建文件等等一些事情,提示没有权限。

mkdir xxx

mkdir: cannot create directory `xxx: Read-only file

system

奇怪的问题,明明我查看系统上各个文件或文件夹的权限都是777,而且宿主机上的nfs服务器的说明如下【咋看是没有问题,其实是有问题的】

【貌似没有问题的NFS配置说明,如下】

vi

/etc/exports--->/home/NfsRoot

192.168.1.*空格(rw,sync,no_root_squash)

上面的中文空格表示在该处加一个空格键

【改正】 其实就是上面的空格造成的错误:将上面的“空格”所在处的空格删除,就解决问题了。

8:mini2440平台,做GPIO触发中断,点亮相应的LED灯的实验,写成olatform平台机制

在每次下载模块时都提示中断方面的警告。后来改了地方就没有警告了,但是我自己还不清楚其中具体的原因,只是该好了而已。

过程:

【通过 cat

/proc/interrupts查看系统中的中断使用情况:中断号 等信息】

写成平台驱动:

mini2440_gpio_app

mini2440_gpio_platform_device.ko

mini2440_gpio_platform_driver.ko

1:GPIO的中断注册在

驱动的xxx_open函数中实现,中断注销在xxx_close函数中实现,每次加载模块后,必须通过系统调用open(xxx)打开设备文件来注册中断,然后后面必须调用close函数注销中断。

但是这样很容易提示警告,

WARNING: at kernel/irq/manage.c:858

__free_irq+0xa0/0x1b0() Trying to free

already-free IRQ 52

Modules linked in: mini2440_gpio_platform_device

mini2440_gpio_platform_driver(-) [last unloaded:

mini2440_gpio_platform_driver]

在这种写法下,其实cat

/proc/interrupts查看中断的使用信息,发现中断注册与注销有问题,有个别按键的中断其实都没有注册进去,后面在调用释放自然有警告;或者是有时个别中断注销不成功,这样再次注册就会有问题,这个具体的原因我不是很清楚,估计是经常打开关闭有些操作不当造成的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值