<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 業(yè)界動(dòng)態(tài) > Linux下讀取網(wǎng)卡默認MAC地址的方法

Linux下讀取網(wǎng)卡默認MAC地址的方法

作者:周立功致遠電子 時(shí)間:2016-06-08 來(lái)源:電子產(chǎn)品世界 收藏

  (Media Access Control,介質(zhì)訪(fǎng)問(wèn)控制)是用來(lái)定義網(wǎng)絡(luò )設備的位置。在嵌入式linux學(xué)習中無(wú)可避免也會(huì )遇到,本文主要描述了如何通過(guò)操作OTP來(lái)讀取嵌入式linux設備網(wǎng)卡中的地址

本文引用地址:http://dyxdggzs.com/article/201606/292409.htm

  

 

  1.1適用范圍

  這里主要介紹讀取網(wǎng)卡MAC地址的方法,適用于EasyARM-i.MX287A開(kāi)發(fā)套件,其應用原理及配套示例也適用于下表1.1所列出的產(chǎn)品型號。

  

 

  1.2原理介紹

  MAC(Media Access Control,介質(zhì)訪(fǎng)問(wèn)控制)是用來(lái)定義網(wǎng)絡(luò )設備的位置。用來(lái)表示互聯(lián)網(wǎng)上每一個(gè)站點(diǎn)的標識符,采用十六進(jìn)制數表示,共六個(gè)字節(48位)。其中,前三個(gè)字節是由IEEE的注冊管理機構RA負責給不同廠(chǎng)家分配的代碼(高位24位),也稱(chēng)為“編制上唯一的標識符”(Organizationally Unique Identifier),后三個(gè)字節(低位24位)由各廠(chǎng)家自行指派給生產(chǎn)的適配器接口,稱(chēng)為擴展標識符(唯一性)。一個(gè)地址塊可以生成2^24個(gè)不同的地址。MAC地址實(shí)際上就是適配器地址或適配器標識符。MAC具有全球唯一性。

  “網(wǎng)卡的默認MAC”是廣州致遠電子股份有限公司針對Awork開(kāi)發(fā)套件和M283、M287工控核心板開(kāi)發(fā)的一項功能,通過(guò)芯片的OTP來(lái)存儲網(wǎng)卡MAC地址,我公司出廠(chǎng)的核心板和開(kāi)發(fā)套件的MAC地址的前兩個(gè)字節固定為“0x00”,“0x04”,后四個(gè)字節保存在OTP中,本文檔主要描述了如何通過(guò)操作OTP來(lái)讀取網(wǎng)卡MAC地址。

  在內核配置OTP選項,編譯出的內核啟動(dòng)后,在文件系統中會(huì )導出OTP設備文件,通過(guò)操作這些設備文件來(lái)讀取信息??梢詫⒁呀?jīng)注冊的網(wǎng)卡MAC信息首先固化到OTP中,在應用層就可以讀取。MAC0地址的低4位可以通過(guò)設備文件“/sys/fsl_otg/SBK0”讀取,MAC1地址的低4位可以通過(guò)設備文件“/sys/fsl_otg/SBK1”讀取。

  注意:如果使用的是M287、M283工控板,不需要配置內核。

  1.3技術(shù)實(shí)現

  1.3.1內核編譯

  1.配置內核

  進(jìn)入linux-2.6.35.3目錄。執行make menuconfig配置內核。配置步驟如下:

  sok@zlgmcu:~$ cd linux-2.6.35.3/

  sok@zlgmcu:~/linux-2.6.35.3$ make menuconfig

  按回車(chē)鍵,進(jìn)入Device Drivers選項,如下圖3.1所示。

  

 

  圖3.1 內核配置

  按回車(chē)鍵,進(jìn)入Chracter devices選項。如圖3.2所示。

  

 

  圖3.2 內核配置

  按空格鍵,選擇<*> Freescale On-Chip OTP Memory Support選項,如圖3.3 內核配置圖3.3所示。

  

 

  圖3.3 內核配置

  按回車(chē)鍵,保存退出。

  2.編譯內核

  在當前目錄下執行如下命令編譯內核,參考命令如下:

  vmuser@-host:~/ linux-2.6.35.3$ make clean

  vmuser@-host:~/ linux-2.6.35.3$ make uImage

  內核固件位于“arch/arm/boot/uImage”,將生成的內核固件通過(guò)TF卡燒寫(xiě)到NANDFlash。

  1.4讀取MAC實(shí)操

  下面介紹讀取網(wǎng)卡MAC操作過(guò)程,其實(shí)質(zhì)是操作OTP設備文件。

  1.4.1執行MAC腳本文件

  將本文檔目錄下MAC.sh文件通過(guò)U盤(pán)或TF卡拷貝到EasyARM-i.MX287A開(kāi)發(fā)套件,修改文件權限為可執行權限,參考命令如下:

  root@EasyARM-iMX28x ~# chmod 777 MAC.sh

  root@EasyARM-iMX28x ~# ./MAC.sh

  執行后,查看網(wǎng)絡(luò )設備,MAC如圖4.1所示。

  

 

  圖4.1 網(wǎng)絡(luò )設備圖

  查看“/sys/fsl_otp/HW_OCOTP_SRK1”和“/sys/fsl_otp/HW_OCOTP_SRK0”設備??梢园l(fā)現,網(wǎng)卡MAC低4位其實(shí)就是保存在OTP中的值,如圖4.2所示。

  

 

  圖4.2 OTP讀取圖



關(guān)鍵詞: Linux MAC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>