Linux下读取网卡默认MAC地址的方法

mac(media access control,介质访问控制)是用来定义网络设备的位置。在嵌入式linux学习中无可避免也会遇到mac,本文主要描述了如何通过操作otp来读取嵌入式linux设备网卡中的mac地址
1.1 适用范围
这里主要介绍读取网卡mac地址的方法,适用于easyarm-i.mx287a开发套件,其应用原理及配套示例也适用于下表1.1所列出的产品型号。
表1.1 适用产品型号
1.2 原理介绍
mac(media access control,介质访问控制)是用来定义网络设备的位置。用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由ieee的注册管理机构ra负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(organizationally unique identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。一个地址块可以生成2^24个不同的地址。mac地址实际上就是适配器地址或适配器标识符。mac具有全球唯一性。
“网卡的默认mac”是广州致远电子股份有限公司针对awork开发套件和m283、m287工控核心板开发的一项功能,通过芯片的otp来存储网卡mac地址,我公司出厂的核心板和开发套件的mac地址的前两个字节固定为“0x00”,“0x04”,后四个字节保存在otp中,本文档主要描述了如何通过操作otp来读取网卡mac地址。
在内核配置otp选项,编译出的内核启动后,在文件系统中会导出otp设备文件,通过操作这些设备文件来读取信息。可以将已经注册的网卡mac信息首先固化到otp中,在应用层就可以读取。mac0地址的低4位可以通过设备文件“/sys/fsl_otg/sbk0”读取,mac1地址的低4位可以通过设备文件“/sys/fsl_otg/sbk1”读取。
注意:如果使用的是m287、m283工控板,不需要配置内核。
1.3 技术实现
1.3.1 内核编译
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
按回车键,进入device drivers选项,如下图3.1所示。
图3.1 内核配置
按回车键,进入chracter devices选项。如图3.2所示。
图3.2 内核配置
按空格键,选择 freescale on-chip otp memory support选项,如图3.3 内核配置图3.3所示。
图3.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。
1.4 读取mac实操
下面介绍读取网卡mac操作过程,其实质是操作otp设备文件。
1.4.1 执行mac脚本文件
将本文档目录下mac.sh文件通过u盘或tf卡拷贝到easyarm-i.mx287a开发套件,修改文件权限为可执行权限,参考命令如下:
root@easyarm-imx28x ~# chmod 777 mac.sh
root@easyarm-imx28x ~# ./mac.sh
执行后,查看网络设备,mac如图4.1所示。
图4.1 网络设备图
查看“/sys/fsl_otp/hw_ocotp_srk1”和“/sys/fsl_otp/hw_ocotp_srk0”设备。可以发现,网卡mac低4位其实就是保存在otp中的值,如图4.2所示。
图4.2 otp读取图

IT信息类产品申请全球认证标准有哪些?
长虹pf29118自动关机分析与检修
中芯国际是真的被美国“制裁”了吗?
慧明捷无人机空地联动系统在广州森林防火的成功应用
发那科数控系统维修常见故障分析及预防措施
Linux下读取网卡默认MAC地址的方法
河南信阳推行“互联网+教育”爆发出巨大潜能
光纤音频接口
你想象不到的AM08 MINI PC
对称加密算法工作模式详解
DTU200:为河流水位监测保驾护航,促进环保事业持续发展
javascript语言的用途
卡萨帝BCD自由嵌入式婴爱冰箱 一款专为母婴家庭打造的高端冰箱
Spansion推出HyperRAM 存储器
动力电池安全检测设备4大趋势
简述电力网和变电所的分类
曝锐龙9 3950X延期原因为对频率不满意需要调整设计
优秀程序员是怎样提高工作效率的
如何用PEL-500进行电池放电测试?
ROG游戏手机2正式上线 内配骁龙855 Plus和丰富配件