MAC(Media Access Control,介质访问控制)是用来定义网络设备的位置。在嵌入式linux学习中无可避免也会遇到MAC,本文主要描述了如何通过操作OTP来读取嵌入式linux设备网卡中的MAC地址
关键字:Linux 网卡 默认MAC地址
引用地址:Linux下读取网卡默认MAC地址的方法
1.1适用范围
这里主要介绍读取网卡MAC地址的方法,适用于EasyARM-i.MX287A开发套件,其应用原理及配套示例也适用于下表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读取图
上一篇:博通季报:第2季出现亏损 但EPS优于预期
下一篇:聚焦系统验证 是德/国研院芯片中心签署5G合作备忘录
推荐阅读最新更新时间:2024-05-07 17:15
基于Linux的传感器网络网关设计
引言 传感器网络是计算机科学技术的一个新的研究领域,集成了传感器、微机电系统和网络二大技术形成的传感器网络是一种全新的信息获取和处理技术。近几年,在传感器网络管理、查询和数据分发等方面的研究都得到了相当大的发展。而传感器网络要真正投入使用,则不能完全孤立存在,需要通过网关设备接入外部网络,如Internet、局域网或企业内部互联网,提供用户对无线传感器网络的远程访问和监测。 1.系统总体设计 随着通信技术、嵌入式计算技术和传感器技术的飞速发展和日益成熟,具有感知、计算和通信能力的微型传感器开始出现。由大量成本低廉的这类传感器节点通过无线方式组成了传感器网络。传感器网络综合了传感器技术、嵌入式计算技术、分布式信
[单片机]
s3c6410的RTC在linux中的驱动(1)
如果对RTC硬件不熟悉的话,可以看上面这篇博客,讲述了硬件有关的内容。 1、先从整体上做些分析,大致看了下linux2.6.28driversrtc文件中的kconfig和Makefile文件,在Makefile文件中有如下内容: ifeq ($(CONFIG_RTC_DEBUG),y) EXTRA_CFLAGS += -DDEBUG endif obj-$(CONFIG_RTC_LIB) += rtc-lib.o obj-$(CONFIG_RTC_HCTOSYS) += hctosys.o obj-$(CONFIG_RTC_CLASS) += rtc-core.o rtc-core-y := class.o inte
[单片机]
基于嵌入式Linux和MiniGUI的SIP电话设计
0 引言
随着VoIP的迅猛发展,越来越多的个人用户正在使用软件电话、IP电话通过VoIP系统拨打国内和国际长途,IP电话的需求量越来越大,同时,人们对IP电话的要求也越来越高,例如要求IP电话体积小、方便携带、功耗低、待机时间长、漂亮的人机交互界面,功能可扩展等。解决这些需求的可行方案就是用嵌入式系统,具体而言就是采用一款32位嵌入式处理芯片(如ARM、Power PC),将Linux操作系统和MiniGUI图形库经过裁减移植到这些嵌入式处理芯片所构建的硬件平台上。由于Linux具有强大的网络功能,而MiniGUI是一款优秀的针对嵌入式Linux的轻量级图形用户界面库,在它们的基础上做应用开发,能够保证IP电话的稳定
[嵌入式]
移植RT2870无线网卡驱动到s3c2416
公司项目要用到usb无线网卡,芯片是ralink的RT2870.以下是将其驱动移植到s3c2416的步骤。 1.下载驱动源码,雷凌官网的下载地址是: http://www.ralinktech.com/en/04_support/support.php?sn=501 2.解压2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2 3.进入目录,修改Makefile 将PLATFORM = PC 注释掉,同时将#PLATFORM = SMDK的#去掉,即PLATFORM定义为SMDK. 将ifeq ($(PLATFORM),SMDK)这句后面的两句改为: LI
[单片机]
成功移植SQLite3到ARM Linux开发板
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。 在开始之前,我们需要确认有 SQLite3源码包; 有交叉编译环境; 有一块开发板; 1、下载 SQLite3源码 地址: http://www.sqlite.or
[单片机]
iTOP-4418开发板Qt和最小linux系统-扩展root
本文档介绍如何修改 iTOP-4418 开发板用户区大小。文档中的分区数据是针对 16G 的 eMMC。 uboot 设置 进入 iTOP-4418 的 uboot,如下图所示。 输入命令: setenv fastboot flash=mmc,2:uboot:2nd:0x200,0x78000;flash=mmc,2:2ndboot:2nd:0x200,0x4000;flas h=mmc,2:bootloader:boot:0x8000,0x70000;flash=mmc,2:boot:ext4:0x00100000,0x040 00000;flash=mmc,2:system:ext4:0x04100000,0x34000
[单片机]
微软将加强Linux上的脚本执行控制 目标提高安全性
5 月 14 日消息,在本周在温哥华举行的 Linux 安全峰会上,微软挖来的 systemd 开发者 Lennart Poettering 以及其他微软工程师发表了演讲,并表示微软正在努力提高 Linux 的安全性。 微软开发者 Mickaël Salaün 在演讲中提到了如何研究在 Linux 系统上控制脚本执行的新方法。从新的开放 flags 到新的内核系统调用,号称可以让 Linux 系统管理员更好地控制可以在 Linux 系统上执行的脚本。 微软指出,控制脚本执行的目的是为了用户安全,而不是消除用户执行脚本的能力。 微软目前在 Linux 的兼容方面持续发力,为 Windows 11/10 系统推出了 Li
[嵌入式]
ARM-Linux开发与MCU开发比较
1.ARM-Linux应用开发和单片机开发的不同 这里先要做一个说明,对于ARM的应用开发主要有两种方式:一种是直接在ARM芯片上进行应用开发,不采用操作系统,也称为裸机编程,这种开发方式主要应用于一些低端的ARM芯片上,其开发过程非常类似单片机,这里不多叙述。还有一种是在ARM芯片上运行操作系统,对于硬件的操作需要编写相应的驱动程序,应用开发则是基于操作系统的,这种方式的嵌入式应用开发与单片机开发差异较大。ARM-Linux应用开发和单片机的开发主要有以下几点不同: 应用开发环境的硬件设备不同 单片机:开发板、仿真器(调试器)、USB线; ARM-Linux:开发板、网线、串口线、SD卡; 对于ARM-Linux
[单片机]