内核版本: Linux version 3.10.14
----
1.由于每次开发板开机的网卡eth0的物理地址都是随机的....,想看看命令行ifconfig是如何与内核交互的,想试试如何直接通过内核自动设置MAC.
2.分析介绍
因为ifconfig是命令,代码位于busybox,不过我们在内核的documentation目录下找到了...\n", ifname, flags);
}
return res;
}
3.3 寻找SIOCSIFFLAGS宏,看看内核那里在实现它
找到位于net\core\Dev_ioctl.c..._dev_change_flags(dev, flags)函数中,通过判断flag的IFF_UP位上的值是否相反,来实现是调用__dev_close()还是__dev_open()来开关eth0
如下图所示...(dev, &ifr->ifr_hwaddr);
//最终调用net_device的ops成员函数实现设置
6.实现内核开机自动设置固定MAC地址
流程分析完后,接下来我们便来实现它