首页 > 系统相关 >Linux中 CPU 引出网卡的 MAC 地址的设置

Linux中 CPU 引出网卡的 MAC 地址的设置

时间:2022-11-17 15:17:21浏览次数:42  
标签:i2cget 地址 sync 网卡 MAC 0x50 Linux

  CPU直接引出的网卡地址,不能用ethool操作,它不同于英特尔的网卡,英特尔的网卡可以直接把MAC地址烧录在网卡的物理内存,所以可以用ethtool操作。那CPU的网卡MAC地址如何固定呢,思路就是把MAC地址写在EEPROM里。然后系统开机的时候读取EEPROM的MAC地址数据,执行指令更新。

  1、编写脚本把MAC保存到EEPROM

vim eth2SetMacAddrCPU.sh
------------------------------------------------------------------
#!/bin/sh
if [ $# -eq 6 ]
then
        echo "start set mac addr"
        i2cset -f -y 3 0x50 0x01 0x$1
        sync
        i2cset -f -y 3 0x50 0x02 0x$2
        sync
        i2cset -f -y 3 0x50 0x03 0x$3
        sync
        i2cset -f -y 3 0x50 0x04 0x$4
        sync
        i2cset -f -y 3 0x50 0x05 0x$5
        sync
        i2cset -f -y 3 0x50 0x06 0x$6
        sync
        UpMacEth2.sh  #更新MAC地址脚本,在MAC写入到EEPROM后就直接更新,这样就不用重启也可以更新MAC地址了
else
        echo "paramenter number error"
fi

  2、编写脚本更新MAC地址

vim UpMacEth2.sh
------------------------------------------------------------------------------------
#/bin/sh
Mac1=$(i2cget -f -y 3 0x50 0x01)
Mac2=$(i2cget -f -y 3 0x50 0x02)
Mac3=$(i2cget -f -y 3 0x50 0x03)
Mac4=$(i2cget -f -y 3 0x50 0x04)
Mac5=$(i2cget -f -y 3 0x50 0x05)
Mac6=$(i2cget -f -y 3 0x50 0x06)

GetMac1=${Mac1:2:2}
GetMac2=${Mac2:2:2}
GetMac3=${Mac3:2:2}
GetMac4=${Mac4:2:2}
GetMac5=${Mac5:2:2}
GetMac6=${Mac6:2:2}

Mac=$GetMac1:$GetMac2:$GetMac3:$GetMac4:$GetMac5:$GetMac6
echo "Up eth2 MAC is = $Mac"
ifconfig eth2 down ifconfig eth2 hw ether $Mac #更新MAC地址 ifconfig eth2 up

  3、把更新MAC地址的脚本做成开机自启动程序

  这样就可以每次开机时自动跟新MAC地址了。  

标签:i2cget,地址,sync,网卡,MAC,0x50,Linux
From: https://www.cnblogs.com/xingboy/p/16899518.html

相关文章

  • 【Linux IO模型】IO模型 - epoll的原理与应用
    epoll原理与应用介绍epoll-I/Oeventnotificationfacility实现处理tcp请求,为一个连接对应一个线程,在高并发的场景,这种多线程模型于epoll相比就相形见绌了。epoll......
  • LINUX CENTOS7 部署步骤 EMQX
    0. MQTT服务器开源https://www.emqx.io/zh1.官方安装教程https://www.emqx.io/zh/downloads?os=CentOS2.搬运curl-shttps://assets.emqx.com/scripts/install-e......
  • [Dubbo] 多网卡问题
    Dubbo启动时会获取设备网卡地址,可能会从设备上的以太网卡,虚拟网卡中选一个。Dubbo源码privateURLbuildUrl(ProtocolConfigprotocolConfig,Map<String,String>par......
  • Linux常用命令
    终端窗口操作:ctrl+alt+f2(f3-f5)创建终端窗口ctrl+alt+f1返回图形化桌面ls列出当前目录下的所有文件夹exit退出当前终端文件操作:(Linux目录结构为一棵树,只有一个根目......
  • Redis 和 memache 缓存的区别
    1.数据类型 Redis数据类型丰富,支持setlisthash等类型 memcache支持简单数据类型,需要客户端自己处理复杂对象 2.持久性 redis支持数据落地持久化存储,并不是所有的数据......
  • Linux 用户及用户组相关文件、命令详解
    Linux用户及用户组相关文件、命令详解1.用户、用户组概念及其文件结构详解​ Linux用户只有两个等级:root及非root。Linux中还有一部分用户,如:apache、mysql、nobody、f......
  • linux文件遍历与查找
    linux文件遍历与查找1.在linux中遍历一个文件夹中文件的shell脚本#!/bin/sh-forfilein`ls`doecho$filedone若在directory01目录下运行这个脚本,则会把direc......
  • Linux调整网卡MAC地址(指令)【转】
    转自:https://blog.csdn.net/Kushidou/article/details/115295414 仅供参考学习使用 ......
  • Linux内存泄露案例分析和内存管理分享
    作者:李遵举一、问题近期我们运维同事接到线上LB(负载均衡)服务内存报警,运维同事反馈说LB集群有部分机器的内存使用率超过80%,有的甚至超过90%,而且内存使用率还再不停的增长......
  • 手动释放Linux内存的方法
    Linux释放内存的命令:syncecho1>/proc/sys/vm/drop_caches drop_caches的值可以是0-3之间的数字,代表不同的含义:0:不释放(系统默认值)1:释放页缓存2:释放dentries和ino......