对于我们日常用的PC,我们可以通过pci总线相应的ubuntu调用函数,找到或者绑定指定的网卡设备。
但是在嵌入式平台,网卡设备一般直接同cpu引脚相连,那么使用什么调用函数可以找到或者绑定指定的网卡设备?
我的嵌入式平台是TX2,ubuntu是16的64位。
嵌入式平台如何查找网卡设备?
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 20
- 注册时间: 2018-10-18 10:18
- 系统: ubuntu16
- astolia
- 论坛版主
- 帖子: 6444
- 注册时间: 2008-09-18 13:11
Re: 嵌入式平台如何查找网卡设备?
你到底想干啥。socket那套东西又不需要你指定网卡。如果是要获取指定网卡当前的ip地址,用ioctl的SIOCGIFADDR参数,或者getifaddrs
-
- 帖子: 20
- 注册时间: 2018-10-18 10:18
- 系统: ubuntu16
- astolia
- 论坛版主
- 帖子: 6444
- 注册时间: 2008-09-18 13:11
Re: 嵌入式平台如何查找网卡设备?
用first_net_device和next_net_device枚举所有设备找到你需要的。返回的struct net_device里的dev就是struct device可以喂给uio_register_device
-
- 帖子: 20
- 注册时间: 2018-10-18 10:18
- 系统: ubuntu16
- astolia
- 论坛版主
- 帖子: 6444
- 注册时间: 2008-09-18 13:11
Re: 嵌入式平台如何查找网卡设备?
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);