1.修改网卡eeprom的指令格式
ethtool -E <eth_name> magic <magic_val> offset N value M
eth_name:网卡名
magic_val:网卡魔数
N:eeprom中地址偏移,以0为base
M:要写入的值
2、网卡魔数magic获取
执行ethtool -e enp1s0 | grep 0x0010 | awk '{print "0x"$13$12$15$14}'
指令。
root@vclusters-X86:/home/oem# ethtool -e enp1s0 | grep 0x0010 | awk '{print "0x"$13$12$15$14}'
0x15378086
3、设置MAC地址
使用指令ethtool -E <eth_name> magic <magic_val> offset N value M
,可在网卡eeprom的N地址处写入M,MAC地址保存在网卡eeprom的offset[0…5]位置,所以N的范围为0~5;数据宽度为8bit,所以M值不大于0xFF。以MAC地址:f0:d7:af:c0:f4:b6
为例,根据之前获取的magic值,需要运行以下指令序列:
ethtool -E enp1s0 magic 0x15378086 offset 0 value 0xf0
ethtool -E enp1s0 magic 0x15378086 offset 1 value 0xd7
ethtool -E enp1s0 magic 0x15378086 offset 2 value 0xaf
ethtool -E enp1s0 magic 0x15378086 offset 3 value 0xc0
ethtool -E enp1s0 magic 0x15378086 offset 4 value 0xf4
ethtool -E enp1s0 magic 0x15378086 offset 5 value 0xb6
警告:
1)offset 0处不能写入奇数(奇数为广播地址)
2)offset x范围不可超过5,防止损坏网卡固件
4、查看写入的MAC
执行指令ethtool -e <eth_name> offset 0 length 6
可查看写入的mac地址是否正确
root@vclusters-X86:/home/oem# ethtool -e enp1s0 offset 0 length 6
Offset Values
------ ------
0x0000: f0 d7 af c0 f4 b6