首页IT科技linux直接读取物理地址(Linux下读取默认MAC地址的方法)

linux直接读取物理地址(Linux下读取默认MAC地址的方法)

时间2025-08-02 17:06:15分类IT科技浏览7770
导读:MAC(Media Access Control,介质访问控制 计算机通过它来定义并识别网络设备的位置。在嵌入式linux学习中不可避免也会遇到MAC,本文主要描述了如何通过操作OTP来读取嵌入式linux设备网卡中的MAC地址...

MAC(Media Access Control,介质访问控制)计算机通过它来定义并识别网络设备的位置                。在嵌入式linux学习中不可避免也会遇到MAC                ,本文主要描述了如何通过操作OTP来读取嵌入式linux设备网卡中的MAC地址

一                  、适用范围

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

二                         、原理介绍

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配置内核                          。配置步骤如下:

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

图1内核配置

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

图2内核配置

按空格键              ,选择<*> Freescale On-Chip OTP Memory Support选项        ,如图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                         。

四            、读取MAC实操

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

执行MAC脚本文件

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

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

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

图5网络设备图

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

图6 OTP读取图

声明:本站所有文章                          ,如无特殊说明或标注         ,均为本站原创发布    。任何个人或组织            ,在未征得本站同意时                         ,禁止复制        、盗用                          、采集                、发布本站内容到任何网站    、书籍等各类媒体平台                        。如若本站内容侵犯了原著者的合法权益              ,可联系我们进行处理                      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
香港vps租用国内(网站如何租用好的香港服务器) 无法使用内置管理员账号打开(无法使用内置管理员账户打开怎么办)