请选择 进入手机版 | 继续访问电脑版

[LINUX] Linux下读取默认MAC地址的方法

[复制链接]
查看101 | 回复5 | 2021-9-5 01:38:02 | 显示全部楼层 |阅读模式

MAC(Media Access Control,介质访问控制)计算机通过它来定义并辨认 网络装备 的位置。在嵌入式linux学习中不可避免也会遇到 MAC,本文重要 形貌 了怎样 通过操作OTP来读取嵌入式linux装备 网卡中的MAC地址

Linux下读取默认MAC地址Linux下读取默认MAC地址

 一、实用 范围

这里重要 先容 读取网卡MAC地址的方法,实用 于EasyARM-i.MX287A开发 套件,其应用原理及配套示例也实用 于下表1.1所列出的产品型号。

Linux下读取默认MAC地址Linux下读取默认MAC地址

二、原理先容

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.设置 内核

进入linux-2.6.35.3目次 。实行 make menuconfig设置 内核。设置 步骤如下:

  1. sok@zlgmcu:~$ cd linux-2.6.35.3/
  2. sok@zlgmcu:~/linux-2.6.35.3$ make menuconfig
复制代码

按回车键,进入Device Drivers选项,如下图1所示。

Linux下读取默认MAC地址Linux下读取默认MAC地址

图1内核设置

按回车键,进入Chracter devices选项。如下图2所示。

Linux下读取默认MAC地址Linux下读取默认MAC地址

图2内核设置

按空格键,选择<*> Freescale On-Chip OTP Memory Support选项,如图3 内核设置 图3所示。

Linux下读取默认MAC地址Linux下读取默认MAC地址

图3内核设置

按回车键,保存退出。

2.编译内核

在当前目次 下实行 如下下令 编译内核,参考下令 如下:

  1. vmuser@Linux-host:~/ linux-2.6.35.3$ make clean
  2. vmuser@Linux-host:~/ linux-2.6.35.3$ make uImage
复制代码

内核固件位于“arch/arm/boot/uImage”,将天生 的内核固件通过TF卡烧写到NANDFlash。

四、读取MAC实操

下面先容 读取网卡MAC操作过程,着实 质是操作OTP装备 文件。

实行 MAC脚本文件

将本文档目次 下MAC.sh文件通过U盘或TF卡拷贝到EasyARM-i.MX287A开发 套件,修改文件权限为可实行 权限,参考下令 如下:

  1. root@EasyARM-iMX28x ~# chmod 777 MAC.sh
  2. root@EasyARM-iMX28x ~# ./MAC.sh
复制代码

实行 后,查看网络装备 ,MAC如图5所示。

Linux下读取默认MAC地址Linux下读取默认MAC地址

图5网络装备 图

查看“/sys/fsl_otp/HW_OCOTP_SRK1”和“/sys/fsl_otp/HW_OCOTP_SRK0”装备 。可以发现,网卡MAC低4位着实 就是保存在OTP中的值,如图6所示。

Linux下读取默认MAC地址Linux下读取默认MAC地址

图6 OTP读取图


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 杨俊语语il | 2021-9-5 23:08:38 | 显示全部楼层
楼上长在线啊?
回复

使用道具 举报

avatar 胖胖龙龙灯 | 2021-9-13 10:38:55 | 显示全部楼层
admin楼主的头像能辟邪啊!
回复

使用道具 举报

avatar 纵横捭阖804 | 2021-9-16 20:17:29 | 显示全部楼层
楼上的心情不错啊!
回复

使用道具 举报

avatar 小猪散步 | 2021-10-14 13:03:11 | 显示全部楼层
在这个版块混了这么久了,第一次看见这么给你的帖子!
回复

使用道具 举报

avatar 123457732 | 2021-10-15 20:09:16 | 显示全部楼层
感谢admin楼主的推荐!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则