社区导航

 

搜索
查看: 4884|回复: 0

[分享] 迅为-iMX6开发板-Android4.4-设置MAC地址

[复制链接]

515

TA的帖子

1

TA的资源

禁止发言

发表于 2018-7-25 10:37 | 显示全部楼层 |阅读模式
本文档介绍如何简易修改迅为- iMX6 开发板 Android4.4 系统的 MAC 地址,在网络通信中, 会用到 MAC 地址,开发板源码中默认的 MAC 地址全部一样,这样会引起冲突,导致网络通 信故障。
iMX6 的 uboot 和 kernel 源码中默认带有通过环境变量设置 MAC 地址的源码,只需要 简单修改,即可添加上设置 MAC 地址功能。另外请注意,如果 MAC 地址不合法,在内核代码中会纠正,导致设置的 MAC 地址和系 统启动之后的 MAC 地址不一样。
1.uboot 源码修改uboot uboot 源码在源码包解压得到文件夹“bootable/bootloader/uboot-imx”下,进入目 录使用命令“vim lib_arm/board.c”打开文件。
uboot 在“stdio_init (); /* get the devices list going. */”这一行代码下添加调用获取 MAC 地址的环境变量的函数,如下图所示。
修改之后的源码如下:
//add by rty 20180724
eth_initialize(gd->bd);
//add end
保存“lib_arm/board.c”退出。
然后使用命令“vim drivers/net/mxc_fec.c”打开文件,如下图所示,将“static int fec_get_hwaddr(struct eth_device *dev, unsigned char *mac)”修改。
修改之后的代码如下:
保存退出,uboot 就可以获取环境变量中的 ethaddr 参数。
2.kernel 源码修改
kernel 源码在源码包解压得到文件夹“kernel_imx”下,进入目录使用命令“vim arch/arm/mach-mx6/mx6_fec.c”打开文件。
如下图所示,将“void __init imx6_init_fec(struct fec_platform_data fec_data)”函 数修改。
修改之后的源码如下:

3.测试
编译代码,烧写镜像,进入 uboot 模式,如下图所示,使用命令“printenv”,可以查 阅到环境变量“ethaddr=22:33:56:18:89:67”,默认的 MAC 地址是“22:33:56:18:89:67”。
重启之后,进入 android,在控制台使用命令“ip link show”,如下图所示。这个 MAC 地址和 uboot 设置的地址相同。
重启开发板,进入 uboot 模式,然后使用命令“setenv ethaddr 00:11:22:33:44:55”重 新设置 MAC 地址,接着使用“saveenv”命令保存环境变量,如下图所示。
如下图所示,在 uboot 中使用命令“printenv”,MAC 地址在 uboot 环境变量中设置 为“ethaddr=00:11:22:33:44:55”
重启开发板,进入 android 系统,再次使用“ip link show”命令查阅 MAC 地址,如下 图所示,MAC 地址已经修改过来了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
更多开发板详情了解哦

1.https://arm-board.taobao.com
2.www.topeetboard.com
Q: 2551456065


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-6-6 07:01 , Processed in 0.097543 second(s), 22 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表