LinuxでデフォルトのMACアドレスを読み出す方法
MAC(Media Access Control)コンピュータは、ネットワークデバイスの位置を定義し識別する。埋め込みlinux学習ではMACにも遭遇することは避けられないが,本稿では主にOTPを操作することによって埋め込みlinuxデバイスネットワークカード内のMACアドレスを読み出す方法について述べた。
ここでは主にNIC MACアドレスを読み取る方法を紹介し、EasyARM-i.MX 287 A開発キットに適用し、その応用原理とセット例は以下の表1.1に示す製品型番にも適用する。
MAC(Media Access Control、メディアアクセス制御)は、ネットワークデバイスの位置を定義するために使用される。インターネット上の各サイトを表す識別子で、16進数で6バイト(48ビット)表示されます。このうち、上位3バイトはIEEEの登録管理機関RAが異なるメーカーに割り当てるコード(上位24ビット)であり、「ユニークな識別子を作成」(Organizationally Unique Identifier)とも呼ばれ、後3バイト(下位24ビット)は各メーカーが独自に生産するアダプタインタフェースに割り当てられ、拡張識別子(一意性)と呼ばれる。1つのアドレスブロックは、2^24個の異なるアドレスを生成することができる。MACアドレスは、実際にはアダプタアドレスまたはアダプタ識別子である。MACはグローバル一意性を有する。
「NICのデフォルトMAC」は広州致遠電子株式会社がAwork開発キットとM 283、M 287工業制御コアボードに対して開発した機能であり、チップのOTPを通じてNIC MACアドレスを記憶し、当社が出荷したコアボードと開発キットのMACアドレスの最初の2文字は「0 x 00」、「0 x 04」に固定され、後の4バイトはOTPに保存されている。本書では、主に、OTPを操作してNIC MACアドレスを読み出す方法について説明します。
カーネル構成OTPオプションで、コンパイルされたカーネルが起動すると、ファイルシステムからOTPデバイスファイルがエクスポートされ、これらのデバイスファイルを操作して情報が読み出されます。登録されたNIC MAC情報は、まずOTPに固化され、アプリケーション層で読み取ることができる。MAC 0アドレスの下位4ビットはデバイスファイル"/sys/fsl_otg/SBK 0"で読み取ることができ、MAC 1アドレスの下位4ビットはデバイスファイル"/sys/fsl_otg/SBK 1"で読み取ることができる。
注意:M 287、M 283ワークボードを使用している場合は、カーネルを構成する必要はありません。
三、技術実現カーネルコンパイル
1.カーネルの構成linux-2.6.35.3ディレクトリに入ります。make menuconfig構成カーネルを実行します。構成手順は次のとおりです。
sok@zlgmcu:~$ cd linux-2.6.35.3/ sok@zlgmcu:~/linux-2.6.35.3$ make menuconfig
リターンキーを押して、DeviceDriversオプションに入ります。下図1に示します。
図1カーネル構成
リターンキーを押してChracter devicesオプションに入ります。下図2に示すように。
図2カーネル構成
<*>図3のカーネル構成図3に示すように、Freescale On-Chip OTP Memory Supportオプション。図3カーネル構成
リターンキーを押して、終了を保存します。
2.カーネルのコンパイル現在のディレクトリでは、次のコマンドを実行してカーネルをコンパイルします。リファレンスコマンドは次のとおりです。
vmuser@Linux-host:~/ linux-2.6.35.3$ make clean vmuser@Linux-host:~/ linux-2.6.35.3$ make uImage
カーネルファームウェアは「arch/arm/boot/uImage」にあり、生成されたカーネルファームウェアをTFカードで焼いてNANDFlashに書きます。
四、MAC実操を読み取る次に、実質的にOTPデバイスファイルを操作するNIC MAC操作手順について説明する。
MACスクリプトファイルの実行本ドキュメントのディレクトリをMAC.shファイルはUディスクまたはTFカードでEasyARM-i.MX 287 A開発キットにコピーし、ファイル権限を実行可能権限に変更します。参考コマンドは以下の通りです。
root@EasyARM-iMX28x ~# chmod 777 MAC.sh root@EasyARM-iMX28x ~# ./MAC.sh
実行後、図5に示すように、MACはネットワークデバイスを参照する。
図5ネットワーク装置図
「/sys/fsl_otp/HW_OCOTP_SRK 1」および「/sys/fsl_otp/HW_OCOTP_SRK 0」デバイスを表示します。図6に示すように、NIC MACの下位4ビットは、実際にはOTPに保存された値であることがわかる。
図6 OTP読取図