嵌入式开发中安装驱动常见的问题

来源:互联网 发布:怀化学院网络管理系统 编辑:程序博客网 时间:2024/06/13 09:20

1. 安装驱动时,执行命令 :insmod  *.ko ,出现问题:cant  insert  "*.ko"  : unknown symbol in module or invalid parameter.

     (1)解决思路:通过串口,在终端查看打印信息。

     (2)具体方法: <1> 在终端界面,输入dmesg 命令,查看模块所依赖的符号;

              <2> 找到模块所依赖的但未知的符号,在程序中进行定义。

     (3)延伸:也有可能是缺少unknown symbol crc_X_table,这个可以在内核进行配置,配置完成后重新make

大致位置是kernel dir:make menuconfig

-->library routines

找对应的函数,并将其编译进内核(*)或设为模块形式(M)。重新烧写内核uImage

参考:http://blog.csdn.net/yuesichiu/article/details/41648361

2. 卸载驱动时,执行命令:rmmod *(.ko, 注意卸载时只需要输入模块名即可,不需要后缀.ko),出现问题:cant change directory to "/lib/modules":No such file or directory

      (1) 解决思路:正常来讲,在执行insmod安装模块命令时,会自动在目录"/lib/modules/"下建立对应的文件夹以便卸载时调用。

      (2) 具体方法:<1> 最简单就是直接手动新建相关的文件或目录

命令如下:mkdir /lib/modules/`uname -r` -p

注:a. mkdir -p 递归创建目录。把路径里所有不存在的目录创建出来

       b. uname -r 查看当前系统所用的内核版本

       c. 符号“``”是在英文输入状态下的符号“~”的第一功能键。

 <2>根本上说还是在安装模块的时候有问题,可以尝试优化对应的xx_init函数

0 0