前言
本文以 PX30 USB网卡设置自定义MAC为例,分享如何在bootargs参数基础上添加自定义字段,实现uboot向kernel传递参数。
一、关于bootargs
bootargs 是 uboot 在启动 Linux 内核时传递给内核的引导参数,参数中一般包含启动存储介质、文件系统分区及挂载方式和终端串口等参数。
在系统中我们可以通过 /proc/cmdline 来查看 uboot 给 kernel 传递的 bootargs 参数内容。
# cat /proc/cmdline
storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal
androidboot.slot_suffix= androidboot.serialno=c3d9b8674f4b94f6 rw rootwait
earlycon=uart8250,mmio32,0xff160000 swiotlb=1 console=ttyFIQ0 root=PARTUUID=614e0000-0000
二、网卡自定义MAC
Rockchip PX30芯片只有一路以太网,为了满足一些多网口的应用场景,会使用 USB 转以太网口芯片来扩展以太网接口。以Realtek r8152芯片为例,转换芯片自身不带硬件MAC地址,这将导致每次系统启动,网卡的MAC也会随机变化而非固定;可以在驱动加载时将固定的自定义的MAC地址设置给网卡,以解决MAC地址不固定的问题。
Rockchip在eMMC的首部保留了一块用于存储序列号、MAC等自定义内容的Vendor Storage存储空间。
Vendor Storage在eMMC中的位置:

Vendor Storage 结构

Vendors Storage 各ID内容序号如下图所示:


本文介绍如何在Rockchip PX30平台上通过自定义bootargs参数传递自定义MAC地址给USB转以太网口芯片,实现网卡MAC地址的固定设置。
3153

被折叠的 条评论
为什么被折叠?



