打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
全志T507如何在Android系统下固定MAC地址

本文硬件平台采用飞凌T507开发板,主要讲解T507 如何在Android系统下固定MAC地址,本文使用的思路和方法仅供参考使用,其它arm开发板虽然芯片不同,但思路和方法有很多的共性,希望对您在板卡的使用中能够有所帮助,更多ARM开发板相关资讯,关注飞凌嵌入式

一、T507问题描述

全志T507板卡每次重新烧录Android系统两个网口的MAC地址都会改变,可以通过cpu串号计算出T507的两个MAC地址,这样可以保证MAC固定不变且不重复。

二、T507固定MAC地址修改方法

1、修改sunxi-gmac.c

路径:/OKT507-android-source/longan/kernel/linux-4.9/drivers/net/ethernet/allwinner/sunxi-gmac.c

·添加头文件

·修改随机生成MAC的部分,将函数geth_check_addr复制一份,分别将两个函数修改成geth_check_addr0和geth_check_addr1,修改内容如下

·此处分别添加0和1

2、修改etherdevice.h

路径:/OKT507-android-source/longan/kernel/linux-4.9/include/linux/etherdevice.h

·添加头文件

·箭头处的路径为绝对路径,要根据自己的实际情况修改。

·添加计算MAC地址的内容

static inline int gmac0_mac_from_cpu_serial(u8 *gaddr)

{

u32 inbuf[16]={0};

u32 outbuf[4]={0};

int ret;

ret = sunxi_get_serial((u8 *)inbuf);

printk("************Seria_forlinxl\t\t: %04x-----%08x-----%08x\n",inbuf[2], inbuf[1], inbuf[0]);

md5_transform(outbuf, inbuf);

printk("************Serial_md5_output\t\t: %08x-----%08x-----%08x\n",outbuf[0],outbuf[1],outbuf[2]);

gaddr[0] = (outbuf[0] >> 24) & 0xfe;/* clear multicast bit */

gaddr[1] = (outbuf[0] >> 16) | 0x02;/* set local assignment bit (IEEE802) */

gaddr[2] = outbuf[0] >> 8;

gaddr[3] = outbuf[0];

gaddr[4] = outbuf[1] >> 24;

gaddr[5] = outbuf[1] >> 16;

return 0;

}

static inline int gmac1_mac_from_cpu_serial(u8 *gaddr)

{

        u32 inbuf[16]={0};

        u32 outbuf[4]={0};

        int ret;

        ret = sunxi_get_serial((u8 *)inbuf);

        printk("************Seria_forlinxl\t\t: %04x-----%08x-----%08x\n",inbuf[2], inbuf[1], inbuf[0]);

        md5_transform(outbuf, inbuf);

        printk("************Serial_md5_output\t\t: %08x-----%08x-----%08x\n",outbuf[0],outbuf[1],outbuf[2]);

        gaddr[0] = (outbuf[1] >> 8) & 0xfe;/* clear multicast bit */

        gaddr[1] = outbuf[1] | 0x02;/* set local assignment bit (IEEE802) */

        gaddr[2] = outbuf[2] >> 24;

        gaddr[3] = outbuf[2] >> 16;

        gaddr[4] = outbuf[2] >> 8;

        gaddr[5] = outbuf[2];

        return 0;

}

本文硬件平台采用飞凌T507开发板,主要讲解T507 如何在Android系统下固定MAC地址,本文使用的思路和方法仅供参考使用,其它arm开发板虽然芯片不同,但思路和方法有很多的共性,希望对您在板卡的使用中能够有所帮助,更多ARM开发板相关资讯,关注飞凌嵌入式

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
REAl samsung 开发板485的使用
字符设备驱动实例:自动挂载SD卡
Android内核模块编译执行
Delphi
51单片机与VB串行通信的实现_中国电子商业联盟
Linux下转换字符集(UTF8转换)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服