连接原理图如下: (由于是同一块PCB,共GND,不需要变压器隔离)
在出产默认的镜像开机之后,可以看到RJ45以太网指示灯,正常亮起,并闪烁。
登陆开发板,使用ifconfig查看,没有eth0,只有lo和usb0,(当前是USB adb shell 登陆)
Code: Select all
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:3180 errors:0 dropped:0 overruns:0 frame:0
TX packets:3180 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:235212 (229.6 KiB) TX bytes:235212 (229.6 KiB)
usb0 Link encap:Ethernet HWaddr 16:09:6E:A4:DC:EB
inet addr:172.32.0.93 Bcast:172.32.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1100 errors:0 dropped:386 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:184043 (179.7 KiB) TX bytes:0 (0.0 B)选择了Luckfox Pico Mini、SPI FLASH、buildroot
然后编辑了config/dts_config设备树文件编辑,修改gmac为okay
Code: Select all
&gmac {
status = "okay";
};此时以太网指示灯,不再亮起,也不再闪烁,始终保持熄灭。
登陆开发板使用ifconfig指令如下,出现了eth0网卡。
Code: Select all
[root@luckfox debug]# ifconfig
eth0 Link encap:Ethernet HWaddr A6:EB:39:15:64:C0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:48
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:3180 errors:0 dropped:0 overruns:0 frame:0
TX packets:3180 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:235212 (229.6 KiB) TX bytes:235212 (229.6 KiB)
usb0 Link encap:Ethernet HWaddr 16:09:6E:A4:DC:EB
inet addr:172.32.0.93 Bcast:172.32.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1100 errors:0 dropped:386 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:184043 (179.7 KiB) TX bytes:0 (0.0 B)Code: Select all
[root@luckfox ]# dmesg | grep -i gmac
[ 11.769046] rk_gmac-dwmac ffa80000.ethernet eth0: PHY [stmmac-0:02] driver [RK630 PHY] (irq=POLL)
[ 11.769458] rk_gmac-dwmac ffa80000.ethernet eth0: No Safety Features support found
[ 11.769479] rk_gmac-dwmac ffa80000.ethernet eth0: PTP not supported by HW
[ 11.769799] rk_gmac-dwmac ffa80000.ethernet eth0: configuring for phy/rmii link mode
[root@luckfox ]# dmesg | grep -i phy
[ 10.637419] rkcif rkcif-mipi-lvds: failed to get dphy hw node
[ 10.742250] rockchip-csi2-dphy-hw ff3e8000.csi2-dphy-hw: csi2 dphy hw probe successfully!
[ 10.758925] rockchip-csi2-dphy csi2-dphy0: csi2 dphy0 probe successfully!
[ 11.769046] rk_gmac-dwmac ffa80000.ethernet eth0: PHY [stmmac-0:02] driver [RK630 PHY] (irq=POLL)
[ 11.769799] rk_gmac-dwmac ffa80000.ethernet eth0: configuring for phy/rmii link mode尝试使用udhcpc -i eth0 获取IP无效果
Code: Select all
[root@luckfox ]# udhcpc -i eth0
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting discoverCode: Select all
/**********ETH**********/
&gmac {
status = "okay";
phy-mode = "rmii";
clock_in_out = "output"; /* 这是一个关键点,RV1103内部PHY有时需要MAC提供时钟,或反之,默认通常是 input,但如果由于布线差异,建议检查这里 */
/* 强制指定 PHY 句柄,虽然 dtsi 里有,但这里显式引用更保险 */
phy-handle = <&rmii_phy>;
};
/* 极其重要:确保 MDIO 节点下的 PHY 也是开启的 */
&mdio {
status = "okay";
rmii_phy: ethernet-phy@2 {
status = "okay";
/* 有些版本内核需要指定内部PHY的特定配置,保持默认通常即可,但确保 status okay */
};
};

