Linux下读取默认MAC地址

MAC(Media Access Control,介质访问控制【zhì】)计算机通过它【tā】来定义【yì】并识【shí】别网【wǎng】络【luò】设备的位置。在嵌入式linux学习中不可避免也会遇到MAC,本【běn】文【wén】主要描述了如【rú】何通过操作【zuò】OTP来读取嵌入式linux设备网【wǎng】卡中的MAC地址!

一、适用范围

这【zhè】里主要介绍读取网卡MAC地址的方法【fǎ】,适【shì】用【yòng】于EasyARM-i.MX287A开【kāi】发套件,其应用原理及配套示【shì】例也【yě】适用于下【xià】表1.1所列【liè】出的产品型号。

二、原理介绍

MAC(Media Access Control,介质访问控制【zhì】)是用来【lái】定【dìng】义网络设【shè】备【bèi】的【de】位置。用来表示互联网上每一个【gè】站点的标识符【fú】,采用十六进制【zhì】数表示【shì】,共【gòng】六【liù】个【gè】字节(48位)。其中【zhōng】,前三个字节是由IEEE的注册【cè】管【guǎn】理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制【zhì】上唯一的标识符”(Organizationally Unique Identifier),后【hòu】三【sān】个字节【jiē】(低位24位)由各【gè】厂家自行指派给生产【chǎn】的适【shì】配器接口,称为扩展标【biāo】识符(唯【wéi】一性)。一个【gè】地址块【kuài】可以生成2^24个不同的地址。MAC地址实【shí】际上【shàng】就是适配器【qì】地址【zhǐ】或适配器标识符。MAC具有全球唯【wéi】一性。

“网卡【kǎ】的默认MAC”是广州致【zhì】远电【diàn】子股份有【yǒu】限公【gōng】司针【zhēn】对Awork开发套件和M283、M287工控核【hé】心板【bǎn】开发的一项功能,通过芯片的OTP来存储网【wǎng】卡MAC地址,我公司出【chū】厂【chǎng】的核心板【bǎn】和开发套件的【de】MAC地【dì】址的【de】前【qián】两个字节固定为“0x00”,“0x04”,后四个字节【jiē】保存在OTP中,本文档主要描述了【le】如何通过【guò】操作OTP来读取网卡【kǎ】MAC地址。

在内核配置OTP选项,编译出的内核启动后,在文件【jiàn】系统中会【huì】导出OTP设备文件,通过操【cāo】作这些设备文【wén】件来读取信息【xī】。可以【yǐ】将已经注册的网卡MAC信息【xī】首先固【gù】化到OTP中,在【zài】应【yīng】用层就可以读取。MAC0地址的【de】低【dī】4位【wèi】可以通过设备文件【jiàn】“/sys/fsl_otg/SBK0”读取,MAC1地址【zhǐ】的低4位可以通【tōng】过设备文【wén】件【jiàn】“/sys/fsl_otg/SBK1”读【dú】取。

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

三、技术实现

内核编译

1.配置内核

进【jìn】入linux-2.6.35.3目录【lù】。执行make menuconfig配置内核。配置步【bù】骤如下:

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

按【àn】回车键,进入Device Drivers选项,如【rú】下图1所示。

  图1内核配置

  按回车键,进入Chracter devices选项。如【rú】下图2所【suǒ】示。

  图2内核配置

  按空【kōng】格键,选择【zé】<*> Freescale On-Chip OTP Memory Support选项,如图3 内核配置【zhì】图【tú】3所示。

  图3内核配置

  按回车键,保存退出。

2.编译内核

在当前目录下执行如下命令编译内核,参考命令如下:

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

内核固件位【wèi】于【yú】“arch/arm/boot/uImage”,将生成的内【nèi】核固件通过【guò】TF卡烧写到NANDFlash。

四、读取MAC实操

下面介绍读取网卡MAC操作过程,其实质是操作OTP设备文件。

执行MAC脚本文件

将本【běn】文【wén】档目录下MAC.sh文件通【tōng】过U盘或TF卡【kǎ】拷贝【bèi】到EasyARM-i.MX287A开发套【tào】件【jiàn】,修改文件权限为可执行权限,参考命【mìng】令如下:

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

执行后,查看网络设备,MAC如图5所示。

 图5网络设备图

查看【kàn】“/sys/fsl_otp/HW_OCOTP_SRK1”和“/sys/fsl_otp/HW_OCOTP_SRK0”设备。可以发现,网卡MAC低4位其实就是保存在【zài】OTP中【zhōng】的值,如图【tú】6所示。

 图6 OTP读取图

阿里企业邮箱、网易企业邮箱、新网企业邮箱
【标准版】400元/年/5用户/无限容量
【外贸版】500元/年/5用户/无限容量
其【qí】它服务【wù】:网站建设、企业邮【yóu】箱、数字证书ssl、400电【diàn】话、
联系方式:电话:13714666846 微信同号

声明【míng】:本站【zhàn】所有作品【pǐn】(图文、音【yīn】视频)均由用户自【zì】行上传分享【xiǎng】,或互联网相【xiàng】关知【zhī】识整合,仅供网友学习交流【liú】,若您的权利被侵害【hài】,请联【lián】系 管理员 删【shān】除。

本文链接【jiē】:https://www.city96.com/article_32590.html