1 Star 0 Fork 8

zxk / rk-ethernet

forked from byxlk / rk-ethernet 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
rtl8152解决MAC地址为空导致获取不了ip_kernel3.10.diff 1.42 KB
一键复制 编辑 原始数据 按行查看 历史
iamgeeklike 提交于 2019-09-24 10:15 . Add files via upload
1. CONFIG_USB_RTL8152=n
2. 打上从flash保留区(通过PC工具预先烧写)读取MAC地址的补丁
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
old mode 100644
new mode 100755
index 3d50e7d..1af08ed
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1595,6 +1595,26 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
if ((dev->driver_info->flags & FLAG_WWAN) != 0)
SET_NETDEV_DEVTYPE(net, &wwan_type);
+#if 1
+ if ((net->dev_addr[0] == 0x00) &&
+ (net->dev_addr[1] == 0x00) &&
+ (net->dev_addr[2] == 0x00) &&
+ (net->dev_addr[3] == 0x00) &&
+ (net->dev_addr[4] == 0x00) &&
+ (net->dev_addr[5] == 0x00) )
+ {
+ extern int eth_mac_idb(u8 *eth_mac);
+
+ printk("[MAC] try mac addr from idb first.\n");
+ eth_mac_idb(net->dev_addr);
+ if (!is_valid_ether_addr(net->dev_addr))
+ {
+ printk("[MAC] no mac addr in idb, use random mac addr.\n");
+ random_ether_addr(net->dev_addr);
+ }
+ }
+#endif
+
status = register_netdev (net);
注意:如果使用双以太网,一个是GMAC,另一个是USB以太网,这样子修改后会导致两个以太网卡MAC地址一样,都是使用flash保留区中的。
可对上面补丁中的MAC地址net->dev_addr修改一个bit加以区分
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/feixuezhang/rk-ethernet.git
git@gitee.com:feixuezhang/rk-ethernet.git
feixuezhang
rk-ethernet
rk-ethernet
master

搜索帮助