設計目標:
生產上將mac位址寫入eeprom中,然後在bootup時從eeprom中讀出mac位址。
分析:tidm368 soc chip,已內嵌ethernet media access controller (emac)。
insmod /opt/ipnc/modules/i2c-emac.ko cmdline="`cat /proc/cmdline`"
這一句是安裝網絡卡驅動,mac位址**於cmdline,就是uboot輸入的啟動引數。tidm368提供了這個driver,並且不開放給sdk user修改。
cat /proc/cmdline
mem=160m console=ttys1,115200n8 root=/dev/ram0 rw initrd=0x82000000,16m ip=dhcp eth=00:d0:23:0f:ff:3f
tidm368 sdk提供了乙個i2crw.out工具,逐個位元組寫入:
# ./i2crw.out -w 0xa8 0x04 11 1
i2c: 0x04 = 0x11
# ./i2crw.out -w 0xa8 0x05 22 1
i2c: 0x05 = 0x22
# ./i2crw.out -r 0xa8 0x04 6 1
i2c: 0x04 = 0x11
i2c: 0x05 = 0x22
i2c: 0x06 = 0x33
i2c: 0x07 = 0x33
i2c: 0x08 = 0x22
i2c: 0x09 = 0x11
本打算直接就用這個工具,但print出來的訊息不容易處理。於是,直接在code上面修改,然後用
sprintf(cmd,"ifconfig eth0 hw ether %2x:%2x:%2x:%2x:%2x:%2x"
,regvalue8[0],regvalue8[1],regvalue8[2],regvalue8[3],regvalue8[4],regvalue8[5]);
system(cmd);
進行呼叫,重配eth0的mac位址。
如何獲取MAC位址
如何獲取mac位址 get the hardware address of the inte ce int sockfd struct ifreq req unsigned char hwaddr eth alen if sockfd socket af inet,sock stream,0 0 b...
如何檢視電腦MAC位址 檢視電腦MAC位址的方法
如何檢視程式設計客棧電腦上面的mac位址?在路由器上設定mac位址過濾 i程式設計客棧p和mac位址繫結,或者其它一些安裝設定的時候,需要用到mac位址,因此必須要先獲取到電腦上的mac,才能夠進行下一步的操作,本文介紹了檢視電腦上mac位址的方法。在windows的計算機中,mac位址叫做實體地址...
網絡卡MAC位址是什麼?如何解決mac位址轉殖
網絡卡mac位址是什麼?mac位址是網絡卡的實體地址,它由48位二進位制數表示。其中前面24位表示網路廠商識別符號,後24位表示序號。每個不同的網路廠商會有不同的廠商識別符號,而每個廠商所生產出來的網絡卡都是依序號不斷變化的,所以每塊網絡卡的mac位址是世界上獨一無二的 特殊情況除外 如要通過修改m...