Intel I350T4网卡 + ARM 开发板 的使用及出现的问题解决。 您所在的位置:网站首页 i350网卡芯片 Intel I350T4网卡 + ARM 开发板 的使用及出现的问题解决。

Intel I350T4网卡 + ARM 开发板 的使用及出现的问题解决。

2023-09-12 02:26| 来源: 网络整理| 查看: 265

Intel I350T4网卡 + ARM 开发板 的使用及出现的问题解决。

最近在分析研究ARM 开发板对PCIE网卡的支持情况,主要是测试arm平台上网卡能否正常使用。 工作其实没多难,但是由于个人经验比较欠缺,还有一些其他原因导致工作一直进展不顺利,不过最终是顺利的完成了。下面主要讲解一些开发板如何编译网卡驱动和使用测试。

网卡设备: Intel I350T4 四口网卡设备 环境:Linux arm 4.19.65

pcie网卡设备驱动一般是作为内核模块去编译使用的,用户可以动态的加载和卸载,当然也可以讲网卡驱动加入到内核一起编译,这就涉及到kconfig 文件和make menuconfig 的一些内核的编译配置操作,这里主要讲第一种方法:驱动作为内核模块编译。

官方提供的install方式一般为:

make make install

如果是Ubuntu系统并且带有内核源码,这样直接安装是没有问题的,但是在嵌入式设备中,由于内存的原因,Linux操作系统一般是没有源码,所以就需要交叉编译的方式来编译驱动,然后移植使用。 两点需要注意: 1.要指定源码路径 2.指定编译器和平台 所以要修改驱动源码中的Makefile

KDIR :=/home/zacha/kernel #指定kernel 路径 PWD :=$(shell pwd) #指定驱动源码路径 default: #@+$(call devkernelbuild,modules) $(MAKE) -C $(KDIR) M=$(PWD) CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm #gcc交叉编译器和平台

然后直接make 在这里插入图片描述 编译成功,生成了igb.ko 的内核模块文件。 然后将其移到到开发板上,就可以了。

insmod igb.ko #加载驱动

当然,在编译过程中也遇到了问题,这里分享一下是什么问题和我是如何解决的,或许有小伙伴遇到同样的问题,供分析参考。

问题1:

make -C /home/zacha/yulong810/kernel M=/home/zacha/igb/igb-5.7.2/src CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make[1]: Entering directory ‘/home/zacha/yulong810/kernel’ Building modules, stage 2. MODPOST 0 modules make[1]: Leaving directory ‘/home/zacha/yulong810/kernel’

发现并没有生成驱动文件,明显的错误是没有进行编译,所以分析了他的编译选项,也没有问题,最后发现 行:obj-$(CONFIG_IGB) += igb.o 中 ,CONFIG_IGB 变量没有,导致模块不能正常编译,所以将其进行修改。

#obj-$(CONFIG_IGB) += igb.o obj-m += igb.o

问题2:

error: implicit declaration of function ‘isdigit’ [-Werror=implicit-function-declaration] if(!isdigit(*c) && *c != ‘.’)

isdigit() 函数找不到或未申明。

开发板的内核环境和实际的Ubuntu内核环境是不一样的,所以就导致头文件的差异,有些函数找不到,所以搜了一下isdigit。isdigit() 用来判断一个字符是否是十进制数字。位于中。 由于是开发板内核,文件位于./include/linux/ctype.h 下,所以在代码中加入

#include

然后编译。成功!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有