红联Linux门户
Linux帮助

linux下ethtool修改网卡eeprom

发布时间:2016-01-30 11:06:52来源:linux网站作者:功名半纸

ethtool 工具有一个-E 指令, 可以通过此指令修改网卡的eeprom. 前提是此网卡驱动编写了ethtool驱动接口,并具有eeprom.

以intel e1000系列网卡为例。


首先取得e000设备的VenID:DevID, 这个VenID:DevID就是ethtool -E 指令中magic 的参数.

可以分别通过2种方式取得:


1> lspci 查看

~# lspci  -nn -v |grep "Ethernet Controller"

02:05.0 Ethernet controller [0200]: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) [8086:100f] (rev 01)


2> Intel 网卡eeprom已经包含了VenID:DevID, 具体可以查看每个网卡的芯片及开发手册
~# ethtool -e eth1 | grep 0x0010 | awk '{print "0x"$13$12$15$14}'
0x100f8086

linux下ethtool修改网卡eeprom


也可在以下链接查阅到.
Intel® PRO/100, PRO/1000 & 10GbE Network Adapter ID and driver guide(http://www.intel.com/support/network/sb/cs-012904.htm)


获取到VenID:DevID后, 就可以直接修改了.

#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 /<interface/>"
echo "       i.e. $0 eth0"
exit 1
fi

if ! ifconfig $1 > /dev/null; then
exit 1
fi

dev=$(ethtool -e $1 | grep 0x0010 | awk '{print "0x"$13$12$15$14}')
ethtool -E $1 magic $dev offset 0xAA value 0xBB

0xAA 就是eeprom位置
0xBB 就是新值


本文永久更新地址:http://www.linuxdiyf.com/linux/17792.html