如果您身边有一款Real210的开发板,而且想修改系统启动后的mac地址。那么本记录提供两种方法。

第一种方法:直接修改mac的配置值

首先找到文件mach-smdkv210.c位置在/arch/arm/mach-s5pv210(在内核源码根目录下找起)

打开mach-smdkv210.c,使用vi、gedit、source insight都可以,搜索如下图所示的位置

直接修改.dev_addr的值即可。

第二种方法:通过u-boot传递ethaddr参数给内核进而修改mac

首先找到DM9000.c文件,路径是/drivers/net(在内核源码根目录下找起)

打开DM9000.c,找到下图所示位置

在它的前面加上下面的代码:

static unsigned char        dev_addr[MAX_ADDR_LEN]; /* hw address  */
static int __init netmac_boot_setup(char *str)
{
int i = 0;
char *buf, *tok;
char *whitespace = ":";
buf = str;
do {
  buf = buf + strspn(buf, whitespace);
tok = strsep(&buf, whitespace);
if (*tok == '\0') 
{
    break;
}
dev_addr[i++] = (unsigned char )simple_strtoul(tok, NULL, 16);
}while(buf);
    if (i != 6)
        return 0;
    return 1;
}
__setup("ethaddr=", netmac_boot_setup);

加入后如下图所示:

还有一个地方,找到下图所示位置:

把上图的代码注释掉,然后添加下面的代码:

for (i = 0; i < ETH_ALEN; i ++)
{
if(dev_addr[i]!= 0)
break; 
}
if (i < ETH_ALEN){  //uboot has set the 'ethaddr' in the bootargs
memcpy(ndev->dev_addr, dev_addr, 6);
}
else if (!is_valid_ether_addr(ndev->dev_addr) && pdata != NULL) {
mac_src = "platform data";
memcpy(ndev->dev_addr, pdata->dev_addr, 6);
}

修改后如下图所示:

全部完成后保持,编译、下载到开发板。

启动板子进入u-boot命令行界面,输入下面这个指令:

setenv bootargs "console=ttySAC2,115200 noinitrd root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=2 rw init=/linuxrc ethaddr=00:09:c0:ff:ec:85"

也就是在原来的基础上加入了参数ethaddr=00:09:c0:ff:ec:85

确定,输入saveenv保存环境变量,重启,进入linux命令行

输入命令ifconfig看看是否是修改成了上面的mac。

如果是,那么恭喜你成功了。之后想修改mac只需要修改ethaddr这个后面的值即可。

RealARM 210开发板 u-boot传递mac地址到内核的方法相关推荐

  1. 通用GPIO驱动和apk(含jni),支持所有GPIO,支持LED控制,支持友善6410/210开发板,支持安卓2.3/4.0,内核2.6/3.0

    转自:http://www.arm9home.net/read.php?tid-27259.html GPIO Driver and apk(include jni) support All GPIO ...

  2. 迅为-iMX6开发板-Android4.4-设置MAC地址

    本文档介绍如何简易修改 iMX6 开发板 Android4.4 系统的 MAC 地址,在网络通信中, 会用到 MAC 地址,开发板源码中默认的 MAC 地址全部一样,这样会引起冲突,导致网络通 信故障 ...

  3. 在VIM3开发板上运行无修改的iOS内核镜像

    在VIM3开发板上运行无修改的iOS内核镜像 之前在网上有看到过人使用QEMU成功的把IOS内核运行起来且成功挂载根文件系统的相关文章.理论上能在QEMU上跑成功,在真实的ARMv8开发板上运行起来也 ...

  4. ARM开发板上iconv_open(utf-8, gb2312) 调用失败的解决方法(转)

    ARM开发板上iconv_open("utf-8", "gb2312") 调用失败的解决方法 应用程序代码如下: static int code_convert ...

  5. Linux下imx6dl开发板从镜像的烧写、内核源码编译到第一个驱动运行的详细步骤

    文章目录 前言 一.对开发板烧写镜像 1.镜像烧写 2.串口测试 二.搭建交叉编译环境 1.Ubuntu下搭建交叉编译环境 2.WSL下搭建交叉编译环境 三.编译Linux内核源码 1.Ubuntu下 ...

  6. 获取MAC地址的四种方法(转)

    https://www.cnblogs.com/zlshmily/p/10058560.html zlshmily 在实际的应用系统中,我们往往会需要在程序运行时获取当前机器的网卡的MAC地址,以便作 ...

  7. 组播IP地址与组播MAC地址之间的换算方法

    MAC地址介绍 络接口卡硬件地址(MAC)是在数据链路层由标准组织IEEE统一定义的. 该定义类型大体上分为: EtherNET 802.3 , Token Ring 802.5 , Token Bu ...

  8. MAC地址进行验证的方法

    需要对对应的MAC地址进行验证的方法,以为很简单就能过,鼓捣了半天以后才发现,我的机器是window7,查询出来是乱码,居然不给支持.没办法在网上继续找资料.终于找到了,贴上来,以备不时之需.  东西 ...

  9. mac地址随机变化的解决方法(安卓手机通用)不用ROOT

    mac地址随机变化的解决方法(安卓手机通用)不用ROOT 首先关闭wifi 1.进工程模式 *#*#3646633#*#* 2.点击 connectivity 3.点击 wifi 4.点击 nvram ...

最新文章

  1. 比较严谨的java验证18位身份证号码
  2. 实战SSM_O2O商铺_31【商品】商品添加之View层的实现
  3. Java基础语法之Map
  4. 马踏棋盘python_马踏棋盘python实现
  5. 关于JVM默认内存的增加
  6. python输出字母金字塔可以输入字母和行数的_python实现输入任意一个大写字母生成金字塔的示例...
  7. cocos2dx 圆盘抽奖_【cocos2dx 3.3 lua】06 抽奖转盘效果
  8. oracle 添加外键,报“未找到父项关键字”
  9. BZOJ 2839: 集合计数 解题报告
  10. 高维数据可视化之t-SNE算法
  11. 开发一套企业管理软件系统要花费多少钱?
  12. 嵌入式行业需要什么样的技术人才?
  13. java发展观_科学发展观的第一要义是以人为本。
  14. andriod 和风天气SDK获取实时天气(保姆级教程)
  15. 虚拟机Ubuntu18.04开机后没有网络的解决办法
  16. 拼多多api(json格式爬虫采集)
  17. level1和level2行情的区别
  18. 字符串常量池,看这篇就够了(二)
  19. disableHostCheck: true 报错
  20. 《Google 软件测试之道》摘录

热门文章

  1. 验证码加减乘PHP,使用php实现加减法验证码
  2. css border 虚线间距_【前端冷知识】CSS如何实现虚线框动画
  3. linux cer证书转为jks,常见SSL证书格式介绍以及SSL证书格式转化方法
  4. Docker使用中遇到的问题
  5. linux下静默安装oracle10g,CentOS下远程静默安装Oracle10g笔记
  6. java根据pdf模板生成pdf_Java 复制、压缩PDF文档
  7. 主程序与子程序不在同一程序模块中_分享:宏程序和子程序的应用
  8. 菜鸟教程python正则表达式_python 正则表达式详解
  9. python 抛出异常_python 异常
  10. CentOS6.7安装SBT