全志T507如何在Android系統(tǒng)下固定MAC地址

原創(chuàng) 2022-08-29 09:31:00 T507 全志T507

本文硬件平臺(tái)采用飛凌T507開發(fā)板,主要講解T507 如何在Android系統(tǒng)下固定MAC地址,本文使用的思路和方法僅供參考使用,其它arm開發(fā)板雖然芯片不同,但思路和方法有很多的共性,希望對(duì)您在板卡的使用中能夠有所幫助,更多ARM開發(fā)板相關(guān)資訊,關(guān)注飛凌嵌入式。


一、T507問(wèn)題描述

全志T507板卡每次重新燒錄Android系統(tǒng)兩個(gè)網(wǎng)口的MAC地址都會(huì)改變,可以通過(guò)cpu串號(hào)計(jì)算出T507的兩個(gè)MAC地址,這樣可以保證MAC固定不變且不重復(fù)。

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

1、修改sunxi-gmac.c

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

·添加頭文件

·修改隨機(jī)生成MAC的部分,將函數(shù)geth_check_addr復(fù)制一份,分別將兩個(gè)函數(shù)修改成geth_check_addr0和geth_check_addr1,修改內(nèi)容如下

·此處分別添加0和1

2、修改etherdevice.h

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

·添加頭文件

·箭頭處的路徑為絕對(duì)路徑,要根據(jù)自己的實(shí)際情況修改。

·添加計(jì)算MAC地址的內(nèi)容

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;

}


本文硬件平臺(tái)采用飛凌T507開發(fā)板,主要講解T507 如何在Android系統(tǒng)下固定MAC地址,本文使用的思路和方法僅供參考使用,其它arm開發(fā)板雖然芯片不同,但思路和方法有很多的共性,希望對(duì)您在板卡的使用中能夠有所幫助,更多ARM開發(fā)板相關(guān)資訊,關(guān)注飛凌嵌入式。





相關(guān)產(chǎn)品 >

  • OKT507-C 開發(fā)板

    CPU: T507 工業(yè)級(jí)處理器,超低功耗,10年+生命周期|推薦全志工業(yè)級(jí)T507開發(fā)板系列,飛凌OKT507-C開發(fā)板采用全志T507 四核工業(yè)級(jí)處理器 T507設(shè)計(jì)開發(fā),Cortex-A53架構(gòu),工業(yè)級(jí)寬溫,性能強(qiáng),低功耗,是一款高性價(jià)比的工業(yè)級(jí)產(chǎn)品,提供豐富的開發(fā)設(shè)計(jì)資料,提供產(chǎn)品規(guī)格書,軟硬件手冊(cè)等,全志的T507適用于車載電子、電力、醫(yī)療、工業(yè)控制、物聯(lián)網(wǎng)、智能終端等領(lǐng)域。

    了解詳情
    OKT507-C 開發(fā)板
  • FETT507-C核心板

    推薦T507,全志T507核心板采用工業(yè)級(jí)處理器設(shè)計(jì)開發(fā),提供T507規(guī)格書,T507各類設(shè)計(jì)資料。FETT507-C核心板集成全志T507四核工業(yè)級(jí)處理器設(shè)計(jì)開發(fā),Cortex-A53架構(gòu),主頻1.5GHz,集成G31 GPU,內(nèi)存2GB DDR3L,存儲(chǔ)8GB eMMC。整板工業(yè)級(jí)運(yùn)行溫寬,支持絕大部分當(dāng)前流行的視頻及圖片格式解碼,具有穩(wěn)定可靠的工業(yè)級(jí)產(chǎn)品性能、低功耗以及豐富的用戶接口等優(yōu)勢(shì),搭載Linux、Android、Ubuntu*操作系統(tǒng),適用于車載電子、電力、醫(yī)療、工業(yè)控制、物聯(lián)網(wǎng)、智能終端等領(lǐng)域 了解詳情
    FETT507-C核心板

推薦閱讀 換一批 換一批