linux 下 ethtool 修改网卡eeprom


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_第1张图片

也可在以下链接查阅到.


获取到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 0xAAvalue 0xBB

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

你可能感兴趣的:(linux,bash)