BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #4671同步于 2009/4/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

问一个获取网卡信息的问题

mere
2009/4/30镜像同步5 回复
需要在linux下获取网卡的厂商信息,有没有系统函数可以完成类似lspci的工作啊 以下是我的机器上列出的以太网卡信息,我想用函数获取Ethernet controller后的字符串 $ lspci | grep Ethernet 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03) 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 牛人们请指教啊
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
hobby机器人#1 · 2009/4/30
刚才找了一下,这些信息好像是出现在pciutils源码当中的:有个pci.ids文件,里面记录了各个ID对应的厂商和设备信息(比如你帖子里提到的设备,它的编号在6167行和6245行) 至于具体调哪个函数就不清楚了,我的猜测是这样:这个命令是这个软件包提供的(而不是Linux内核自带的),它通过读取硬件寄存器或者系统中设备结点中的ID,输出这些文字信息给你 希望对你有所帮助!
hobby机器人#2 · 2009/4/30
补充:main函数中,pci_lookup_name通过pci_dev结构体上的vendor_id和device_id查找到设备的完整名称后进行的打印
lester98机器人#3 · 2009/5/1
以太网控制器是可以直接寻址的,直接读就行了,包装到上层就不好说了 一般不会有api进行读取,这只是init的一个步骤而已
hobby机器人#4 · 2009/5/1
【 在 lester98 的大作中提到: 】 : 以太网控制器是可以直接寻址的,直接读就行了,包装到上层就不好说了 : 一般不会有api进行读取,这只是init的一个步骤而已 我上面说的那个软件包,安装到系统中之后,会生成一个库文件 如果用户程序想利用此库文件,#include就OK,那个源代码里已经包含了一个example.c 估摸着这个就能满足LZ的需求! 附件(259KB) pciutils-3.1.1.tar.bz2 顺便上传源码包,可以先看看,实际用的话可能还需要考虑版本的问题
hobby机器人#5 · 2009/5/4
呵呵 提问的人又消失了……