Linux kernel 3.x - 了解在kernel space中获取mac地址的方法

Linux kernel 3.x - Understand the way to get mac address in kernel space

上下文

破解内核:编写完整的网络堆栈。 LDD3的书打开了,但终究没用

整个用户空间堆栈代码已经存在。

现在,我想安装我的网络驱动程序。但在此之前,我需要了解简单的东西,以了解我的知识。 显然,我阅读了我的卡的原始驱动程序,但没有得到任何答案。

自定义内核 3.18.x

x86_64

我不想只知道如何使用函数,还要了解内在函数。

问题

我深入研究了内核曲折,但不确定 device_register 函数如何获取 NIC 的 MAC 地址。

函数中

int device_register(struct device *dev)

什么时候添加了mac? 它已经分配还是将在 device_add 函数中?那里有那么多间接......

内核如何首先知道 mac 地址?在启动时?

好的,

设备树是我的答案。在启动时设置。

据我了解,mac 地址是在主板收集所有连接设备的 ram 中读取的。然后内核根据主板设置的不同偏移量读取该内存区域并检索它需要的信息。

它似乎出现在 /sys 部分。

Pfeww.. 现在我可以继续了:)