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

    最近用了下树莓派和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


没有的话重启再查看

你可能感兴趣的:(Linux)