RealARM 210开发板 u-boot传递mac地址到内核的方法
如果您身边有一款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地址到内核的方法相关推荐
- 通用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 ...
- 迅为-iMX6开发板-Android4.4-设置MAC地址
本文档介绍如何简易修改 iMX6 开发板 Android4.4 系统的 MAC 地址,在网络通信中, 会用到 MAC 地址,开发板源码中默认的 MAC 地址全部一样,这样会引起冲突,导致网络通 信故障 ...
- 在VIM3开发板上运行无修改的iOS内核镜像
在VIM3开发板上运行无修改的iOS内核镜像 之前在网上有看到过人使用QEMU成功的把IOS内核运行起来且成功挂载根文件系统的相关文章.理论上能在QEMU上跑成功,在真实的ARMv8开发板上运行起来也 ...
- ARM开发板上iconv_open(utf-8, gb2312) 调用失败的解决方法(转)
ARM开发板上iconv_open("utf-8", "gb2312") 调用失败的解决方法 应用程序代码如下: static int code_convert ...
- Linux下imx6dl开发板从镜像的烧写、内核源码编译到第一个驱动运行的详细步骤
文章目录 前言 一.对开发板烧写镜像 1.镜像烧写 2.串口测试 二.搭建交叉编译环境 1.Ubuntu下搭建交叉编译环境 2.WSL下搭建交叉编译环境 三.编译Linux内核源码 1.Ubuntu下 ...
- 获取MAC地址的四种方法(转)
https://www.cnblogs.com/zlshmily/p/10058560.html zlshmily 在实际的应用系统中,我们往往会需要在程序运行时获取当前机器的网卡的MAC地址,以便作 ...
- 组播IP地址与组播MAC地址之间的换算方法
MAC地址介绍 络接口卡硬件地址(MAC)是在数据链路层由标准组织IEEE统一定义的. 该定义类型大体上分为: EtherNET 802.3 , Token Ring 802.5 , Token Bu ...
- MAC地址进行验证的方法
需要对对应的MAC地址进行验证的方法,以为很简单就能过,鼓捣了半天以后才发现,我的机器是window7,查询出来是乱码,居然不给支持.没办法在网上继续找资料.终于找到了,贴上来,以备不时之需. 东西 ...
- mac地址随机变化的解决方法(安卓手机通用)不用ROOT
mac地址随机变化的解决方法(安卓手机通用)不用ROOT 首先关闭wifi 1.进工程模式 *#*#3646633#*#* 2.点击 connectivity 3.点击 wifi 4.点击 nvram ...
最新文章
- 比较严谨的java验证18位身份证号码
- 实战SSM_O2O商铺_31【商品】商品添加之View层的实现
- Java基础语法之Map
- 马踏棋盘python_马踏棋盘python实现
- 关于JVM默认内存的增加
- python输出字母金字塔可以输入字母和行数的_python实现输入任意一个大写字母生成金字塔的示例...
- cocos2dx 圆盘抽奖_【cocos2dx 3.3 lua】06 抽奖转盘效果
- oracle 添加外键,报“未找到父项关键字”
- BZOJ 2839: 集合计数 解题报告
- 高维数据可视化之t-SNE算法
- 开发一套企业管理软件系统要花费多少钱?
- 嵌入式行业需要什么样的技术人才?
- java发展观_科学发展观的第一要义是以人为本。
- andriod 和风天气SDK获取实时天气(保姆级教程)
- 虚拟机Ubuntu18.04开机后没有网络的解决办法
- 拼多多api(json格式爬虫采集)
- level1和level2行情的区别
- 字符串常量池,看这篇就够了(二)
- disableHostCheck: true 报错
- 《Google 软件测试之道》摘录
热门文章
- 验证码加减乘PHP,使用php实现加减法验证码
- css border 虚线间距_【前端冷知识】CSS如何实现虚线框动画
- linux cer证书转为jks,常见SSL证书格式介绍以及SSL证书格式转化方法
- Docker使用中遇到的问题
- linux下静默安装oracle10g,CentOS下远程静默安装Oracle10g笔记
- java根据pdf模板生成pdf_Java 复制、压缩PDF文档
- 主程序与子程序不在同一程序模块中_分享:宏程序和子程序的应用
- 菜鸟教程python正则表达式_python 正则表达式详解
- python 抛出异常_python 异常
- CentOS6.7安装SBT