瑞芯微Rockchip开发者社区
登录
直播中
赵敏
7年用户
1115经验值
私信
关注
[问答]
请问RK3288 android 7.1.2如何使用CPU Serial固定USB以太网MAC地址?
开启该帖子的消息推送
RK3288
请问RK3288 android 7.1.2如何使用CPU Serial固定USB以太网MAC地址?
回帖
(1)
席毖庸
2022-3-3 10:25:49
< >
diff --git a/kernel/drivers/net/u***/r8152.c b/kernel/drivers/net/u***/r8152.c
old mode 100644
new mode 100755
index 2bb336c..4213617
--- a/kernel/drivers/net/u***/r8152.c
+++ b/kernel/drivers/net/u***/r8152.c
@@ -26,6 +26,7 @@
#include
#include
#include
+#include
/* Information for net-next */
#define NETNEXT_VERSION "08"
@@ -649,6 +650,21 @@ enum tx_csum_stat {
TX_CSUM_NONE
};
+int eth_mac_from_system_serial(u8 *addr)
+{
+ if (system_serial_low != 0 && system_serial_high != 0) {
+ printk("[eth]Create an address from the system serial number.n");
+ addr[0] = (system_serial_high >> 24) & 0xfe;/* clear multicast bit */
+ addr[1] = (system_serial_high >> 16) | 0x02;/* set local assignment bit (IEEE802) */
+ addr[2] = system_serial_low >> 24;
+ addr[3] = system_serial_low >> 16;
+ addr[4] = system_serial_low >> 8;
+ addr[5] = system_serial_low;
+ printk("#############%s: ------------%pMn",__func__,addr);
+ }
+ return 0;
+}
+
/* Maximum number of multicast addresses to filter (vs. Rx-all-multicast).
* The RTL chips use a 64 element hash table based on the Ethernet CRC.
*/
@@ -1048,6 +1064,7 @@ static int set_ethernet_addr(struct r8152 *tp)
netif_err(tp, probe, dev, "Invalid ether addr %pMn",
sa.sa_data);
eth_hw_addr_random(dev);
+ eth_mac_from_system_serial(dev->dev_addr);
ether_addr_copy(sa.sa_data, dev->dev_addr);
ret = rtl8152_set_mac_address(dev, &sa);
netif_info(tp, probe, dev, "Random ether addr %pMn",
< >
diff --git a/kernel/drivers/net/u***/r8152.c b/kernel/drivers/net/u***/r8152.c
old mode 100644
new mode 100755
index 2bb336c..4213617
--- a/kernel/drivers/net/u***/r8152.c
+++ b/kernel/drivers/net/u***/r8152.c
@@ -26,6 +26,7 @@
#include
#include
#include
+#include
/* Information for net-next */
#define NETNEXT_VERSION "08"
@@ -649,6 +650,21 @@ enum tx_csum_stat {
TX_CSUM_NONE
};
+int eth_mac_from_system_serial(u8 *addr)
+{
+ if (system_serial_low != 0 && system_serial_high != 0) {
+ printk("[eth]Create an address from the system serial number.n");
+ addr[0] = (system_serial_high >> 24) & 0xfe;/* clear multicast bit */
+ addr[1] = (system_serial_high >> 16) | 0x02;/* set local assignment bit (IEEE802) */
+ addr[2] = system_serial_low >> 24;
+ addr[3] = system_serial_low >> 16;
+ addr[4] = system_serial_low >> 8;
+ addr[5] = system_serial_low;
+ printk("#############%s: ------------%pMn",__func__,addr);
+ }
+ return 0;
+}
+
/* Maximum number of multicast addresses to filter (vs. Rx-all-multicast).
* The RTL chips use a 64 element hash table based on the Ethernet CRC.
*/
@@ -1048,6 +1064,7 @@ static int set_ethernet_addr(struct r8152 *tp)
netif_err(tp, probe, dev, "Invalid ether addr %pMn",
sa.sa_data);
eth_hw_addr_random(dev);
+ eth_mac_from_system_serial(dev->dev_addr);
ether_addr_copy(sa.sa_data, dev->dev_addr);
ret = rtl8152_set_mac_address(dev, &sa);
netif_info(tp, probe, dev, "Random ether addr %pMn",
举报
更多回帖
rotate(-90deg);
回复
相关问答
RK3288
RK3288
搭配
以太网
PHY芯片怎么使用?
2022-03-03
1718
请问
RK3288
android
7.1.2
如何屏蔽开机音频?
2022-03-02
1232
RK3288
android7.1.2
内核极其源码编译过程是怎样的步骤?
2022-03-03
1089
怎么去修改
RK
288
android
7.1.2
USB
的触控方向呢
2022-03-04
1205
RK3288
android7.1.2
HAL层添加I2C Service怎么实现?
2022-03-02
1051
请问
RK3288
android7.1.2
如何在uboot源码中添加、获取环境变量?
2022-03-03
821
怎样用
rk
3368的Chip ID去生成wifi或者
以太网
的
mac
地址
呢
2022-05-20
3453
请问
在哪里可以查看
以太网
的
MAC
地址
?
2022-03-03
2673
在
rk3288
android
5.1上如何去实现一个
USB
固定
一个ttyUSB节点呢
2022-03-03
1482
请问
一下
RK3288
Android
7.1是怎样调试
USB
MIDI的
2022-03-03
1464
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分