您尚未登录。

楼主 # 2023-12-14 16:32:02

bigzhu
会员
注册时间: 2023-08-30
已发帖子: 22
积分: 13

无法从Kernel command line引导参数获取以太网mac地址

如题,默认情况下,引导参数mac_addr为空,导致每次进入系统会使用随机分配的mac地址,但是随机mac会导致下次路由器ip变动。

现在想在u-boot中设置mac_addr地址。然后内核解析这个参数设置mac地址,但是实际情况是uboot可以设置,但是内核无法解析出来。

[    0.000000] Kernel command line: ubi.mtd=sys ubi.block=0,rootfs earlyprintk=sunxi-uart,0x02500C00 clk_ignore_unused initcall_debug=0 console=ttyS3,115200 loglevel=8 root=/dev/ubiblock0_5 rootfstype=squashfs init=/pseudo_init partitions=mbr@ubi0_0:boot-resource@ubi0_1:env@ubi0_2:env-redund@ubi0_3:boot@ubi0_4:rootfs@ubi0_5:private@ubi0_6:rootfs_data@ubi0_7:UDISK@ubi0_8: cma=4M snum= mac_addr=E6:62:2C:5B:92:4E wifi_mac= bt_mac= specialstr= gpt=1 androidboot.hardware=sun8iw20p1 boot_type=5 androidboot.boot_type=5 gpt=1 uboot_message=2018.05-g2a1965a-dirty-config-dirty(12/09/2023-13:48:45) mbr_offset=1032192 disp_reserve=1536000,0x43eff000 aw-ubi-spinand.ubootblks=24 androidboot.dramsize=128

查看代码lichee/linux-5.4/drivers/net/ethernet/allwinner/sunxi-gmac.c
__setup("mac_addr=", set_mac_addr); 没有被调用,因为宏MODULE未定义。内核 make kernel_menuconfig 也没找到这个 MODULE 定义的配置项。

#ifdef MODULE
static int __init set_mac_addr(char *str)
{
	char *p = str;

	if (str && strlen(str))
		memcpy(mac_str, p, 18);

	return 0;
}
__setup("mac_addr=", set_mac_addr);
#endif

有谁知道啥原因?帮忙看看,谢谢!

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn