[root@FriendlyARM 2.6.32.2-FriendlyARM]# rmmod hello
rmmod: chdir(2.6.32.2): No such file or directory
到这里,问题就出现了,rmmod: chdir(2.6.32.2): No such file or directory
注意这里的问题提示目录为:chdir(2.6.32.2),根据置顶帖"驱动的加载与卸载中常见问题:rmmod chdir no such file or directory 的最终解决办法"11楼wbweb的提示,于是我大胆的将开发板的/lib/modules/2.6.32.2-FriendlyARM/目录 修改为 /lib/modules/2.6.32.2/ 后,重新测试后,成功.
1,理解Mini2440 Linux移植开发实战指南战指南.pdf文档中的这样一句:"将smdk_machine_init()函数调用注释代掉,因为后面会编写自己的初始化函数,不需要调用smdk2440原来的." 这里在后面本应该添加的初始化文档中却没有添加,这里我参考了官方已经移植好的内核来修改的,将s3c_device_nand.dev.platform_data=&mini2440_nand_info添加到/arch/arm/mach-s3c2440/mach-mini2440.c的__init mini2440_machine_init(void)函数中
2,另外,还需要添加这些头文件:
#include
#include
#include
#include
#include
#include
按照上面的pdf文档修改,并按照上面的两条修改后,才能从启动信息中查看到你想要的分区表!!!
3,在移植UDA1341音频驱动时,#make menuconfig
Device Drivers-><*>Sound card suppport->[*]preclaim Oss device numbers-><*>Advanced Linux Sound Architecture-><*>ALSL for SoC audio support-><*>Soc I2S Audio support UDA134x wired to a S3C24xx
这里的配置直接参考上面的pdf文档即可,不需要将其他的音频驱动也编译到内核,否则在测试时失败! !!
默认的内核配置中,这里已经包含了sequencer support 和Dynamic device file minior numbers和support old ALSA API, 将这三项去掉后,重新编译内核,音频驱动测试成功!
解决卸载模块后的小bug:rmmod: module 'hellop' not found
在/lib/modules/2.6.32.2/目录下面,有多个*.ko文件,这里是hello.ko和hellop.ko,于是我将hello.ko和另外一个modules.dep.bb删除后,只剩下hellop.ko文件,接着重新测试后,不再提示"rmmod: module 'hellop' not found"
今天在进行字符设备scull驱动实验的时候,也同样出现了这个问题,其实这里只需要将/lib/modules/2.6.32.2/目录下面的modules.dep.bb删除即可搞定!!!
阅读(1135) | 评论(0) | 转发(0) |