嵌入式平台如何查找网卡设备?

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
chengshuyi
帖子: 20
注册时间: 2018-10-18 10:18
系统: ubuntu16

嵌入式平台如何查找网卡设备?

#1

帖子 chengshuyi » 2018-10-29 10:30

对于我们日常用的PC,我们可以通过pci总线相应的ubuntu调用函数,找到或者绑定指定的网卡设备。

但是在嵌入式平台,网卡设备一般直接同cpu引脚相连,那么使用什么调用函数可以找到或者绑定指定的网卡设备?


我的嵌入式平台是TX2,ubuntu是16的64位。
头像
astolia
论坛版主
帖子: 6444
注册时间: 2008-09-18 13:11

Re: 嵌入式平台如何查找网卡设备?

#2

帖子 astolia » 2018-10-29 11:54

你到底想干啥。socket那套东西又不需要你指定网卡。如果是要获取指定网卡当前的ip地址,用ioctl的SIOCGIFADDR参数,或者getifaddrs
chengshuyi
帖子: 20
注册时间: 2018-10-18 10:18
系统: ubuntu16

Re: 嵌入式平台如何查找网卡设备?

#3

帖子 chengshuyi » 2018-10-29 12:11

astolia 写了: 2018-10-29 11:54 你到底想干啥。socket那套东西又不需要你指定网卡。如果是要获取指定网卡当前的ip地址,用ioctl的SIOCGIFADDR参数,或者getifaddrs
主要是我想用dpdk,就不用socket那些了。dpdk主要是借助uio在用户层实现网络驱动。

所以,我得知道网络设备在linux的表示的主设备号 次设备号,然后就可以通过uio注册网络设备。
头像
astolia
论坛版主
帖子: 6444
注册时间: 2008-09-18 13:11

Re: 嵌入式平台如何查找网卡设备?

#4

帖子 astolia » 2018-10-29 13:10

用first_net_device和next_net_device枚举所有设备找到你需要的。返回的struct net_device里的dev就是struct device可以喂给uio_register_device
chengshuyi
帖子: 20
注册时间: 2018-10-18 10:18
系统: ubuntu16

Re: 嵌入式平台如何查找网卡设备?

#5

帖子 chengshuyi » 2018-10-29 18:25

astolia 写了: 2018-10-29 13:10 用first_net_device和next_net_device枚举所有设备找到你需要的。返回的struct net_device里的dev就是struct device可以喂给uio_register_device
没有找到first_net_device和next_net_device有关的结构。能不能展开一下
头像
astolia
论坛版主
帖子: 6444
注册时间: 2008-09-18 13:11

Re: 嵌入式平台如何查找网卡设备?

#6

帖子 astolia » 2018-10-29 20:46

https://elixir.bootlin.com/linux/latest ... ce.h#L2547

代码: 全选

#include <linux/netdevice.h>
struct net_device *dev;
read_lock(&dev_base_lock);
dev = first_net_device(&init_net);
while (dev) {
    printk(KERN_INFO "found [%s]\n", dev->name);
    dev = next_net_device(dev);
}
read_unlock(&dev_base_lock);
回复