欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


CentOS7如何设置交换文件?
Win7打开iTunes弹出“bonjour服务已被禁用”怎么处理?
WPS表格2013固定列宽的方法
excel中如何冻结表格窗口?
QQ输入法怎么换皮肤?
WPS表格2013通过单元格内容进行分列的方法
CentOS6.8下非图形界面如何配置IP?
如何解决centos下root运行Elasticsearch异常
如何更改centos7的默认启动为命令界面?
Win10系统C盘空间容量不足的解决方法
Linux下读取默认MAC地址的方法
【 来源:网络 】【 点击:3 】 【 发布时间:2017_03_03 08:59:59 】

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

          MAC(Media Access Control,介质访问控制)计算机通过它来定义并识别网络设备的位置。在嵌入式linux学习中不可避免也会遇到MAC,本文主要描述了如何通过操作OTP来读取嵌入式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
2
sok@zlgmcu:~$ cd linux-2.6.35.3/
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
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开发套件,修改文件权限为可执行权限,参考命令如下:

  ?

1
2
root@EasyARM-iMX28x ~# chmod 777 MAC.sh
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读取图

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站