linux嵌入式开发平台网卡驱动解决办法

2019-07-12 16:38发布

    最近用了下树莓派和inter Edison,本来打算使用一下网卡,可是发现树莓派和Edison竟然都编译不了官方的驱动,报错缺少 /kenerl/bulid 目录,查了下资料,原来是这些嵌入式平台都为了节省空间,都没有搭载源码,而在网卡的驱动程序中有需要调用系统的接口,但是没有源码,这些接口也就没有了,编译的时候就找不到接口,so,报错了。
一编译驱动
解决办法有两个: 第一 安装source-devel source-devel也就是源码库,你所用的内核的接口该有的它都有。 1、 首先,查看内核: uname -r 2、 内核头文件C header files下载地址:点击打开链接
  3、内核安装完毕后,需要用这个命令确定内核 C header 的安装目录 ls -d /usr/src/kernels/$(uname -r)*/include 引用: [root@localhost ~]# uname -r 2.6.25-14.fc9.i686 [root@localhost ~]# rpm -q kernel-devel package kernel-devel is not installed [root@localhost ~]# cd /home [root@localhost home]# wget ftp://rpmfind.net/linux/fedora/releases/9/Everything/i386/os/Packages/kernel-devel-2.6.25-14.fc9.i686.rpm [root@localhost home]# rpm -i kernel-devel-2.6.25-14.fc9.i686.rpm [root@localhost home]# rpm -q kernel-devel kernel-devel-2.6.25-14.fc9.i686 4、装完了你就开始编译你的网卡驱动吧 第二 其他环境编译复制 这个方法要简单点,大概意思是你在其他环境(例如虚拟机)编译完成,然后将编译的固件和文件copy到平台里去。这个方法要求你知道驱动编译出来有哪些,还有那些编译出来的部分应该放到哪些地方去。 1、在其他环境编译驱动 2、找到驱动固件 /lib/modules/3.13.0-32-generic(内核版本)/kernel/drivers/net/wireless/rtl8188(网卡驱动固件), 将其复制到嵌入式平台对应的文件夹中 3、找到二进制文件 /lib/firmware/RTL8192SE(网卡芯片型号)/   这个文件夹下是二进制文件(当你将驱动固件copy到驱动文件夹下后,平台或许会自动下载二进制文件,如果没有则复制进去) 关于复制文件你可以用winscp之类的ssh服务软件将其拷贝到个人目录,在用命令移动到目标文件夹
二 检查驱动
查一下驱动是不是加载了,如果有以下内容说明驱动安装成功了。 pi@raspberrypi:~$ lsmod | grep 81 8192cu 528365 0 uio 8119 1 uio_pdrv_genirq
没有的话重启再查看