linux驱动编译与加载_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|系统之家|纯净系统

您当前所在位置:首页操作系统LINUX → linux驱动编译与加载

linux驱动编译与加载

时间:2015/6/28来源:绿色软件之家作者:网管联盟我要评论(0)

  编译驱动源码,modpost老是出错,于是进入/usr/src/`uname -r`目录下

  #make scripts

  接着再编译源码,之前的错误消失了。出现了新的错误:

  **1.c:1052:error:void value not ignored as it ought to be

  **1.c源代码中的1052行是:

  ret = unregister_chrdev(MAJOR, DEVICE_NAME);

  当注销此行时可以编译通过,找到linux/fs.h头文件,里面定义了unregister_chrdev()函数:

  extern void unregister_chrdev(unsigned int,const char *);

  此处定义的为void类型函数,而在程序中将其赋值给了ret,这就造成了编译错误。

  于是注释了相应的代码,用unregister_chrdev(MAJOR, DEVICE_NAME);代替即可。这样就能通过编译了。又出现了新的问题:

  **2.c:474:’SA_INTERRUPT’undeclared(first use in this function)//{ 原来头文件里没有SA_INTERRUPT了,一般使用IRQF_SHARED 了。}

  头文件为/usr/src/linux-2.6.26.8RedHawk5.2.4/include/linux下的interrupte.h

  **2.c:474:’SA_SHIRQ’undeclared(first use in this function)//{ SA_SHIRQ 已经不支持了,用 IRQF_SHARED }

  于是修改了这行,通过编译。

  新的问题又出现了:

  **3.c:57:error:’POLL_IN’undeclared(first use in this function)

  考虑肯定是由于头文件的问题,直接注销此行,先编译通过再说,编译成功!

  终于生成了**.ko的模块!

  但是,新的问题又出现了,始终加载不了该模块

  在/lib/modules/2.6.26.8-RedHawk-5.2.4-Moxa/kernel中新建文件夹extra

  将生成的**.ko文件复制到该文件下

  # depmod

  #modprobe **.ko

  FATAL:Module **.ko not found.

  再用insmod命令试试

  #insmod **.ko

  Insmod:error inserting ‘**.ko’: -1 Wrong medium type

  使用命令#dmesg:

  最后两行显示:

  [PCI-**]:Error in find_device: no card

  [PCI-**]:Error in find_device: no card

  因为没有插入板卡所致!

关键词标签:linux驱动编译,linux加

相关阅读

文章评论
发表评论

热门文章 安装红帽子RedHat Linux9.0操作系统教程安装红帽子RedHat Linux9.0操作系统教程使用screen管理你的远程会话使用screen管理你的远程会话GNU/Linux安装vmwareGNU/Linux安装vmware如何登录linux vps图形界面 Linux远程桌面连如何登录linux vps图形界面 Linux远程桌面连

相关下载

人气排行 Linux下获取CPUID、硬盘序列号与MAC地址linux tc实现ip流量限制dmidecode命令查看内存型号linux下解压rar文件安装红帽子RedHat Linux9.0操作系统教程Ubuntu linux 关机、重启、注销 命令lcx.exe、nc.exe、sc.exe入侵中的使用方法查看linux服务器硬盘IO读写负载