在嵌入式Android開發(fā)中,以太網(wǎng)作為設備有線聯(lián)網(wǎng)的核心方式,調試效率直接影響項目進度。RK Android平臺支持VMAC外接PHY和USB以太網(wǎng)卡兩種以太網(wǎng)實現(xiàn)方案,實際開發(fā)中常遇到配置異常、連接失敗、丟包等問題。本文整理了雙方案的完整軟件配置步驟,以及各類常見問題的精準排查思路,助力開發(fā)者快速定位并解決問題。
文末附核心腦圖+2大排查流程圖
一、先搞懂:RK Android以太網(wǎng)雙方案基礎認知
RK Android平臺的以太網(wǎng)實現(xiàn)分為兩種核心方式,各自支持對應的硬件芯片,調試前需先匹配硬件類型:
1.VMAC+外接PHY方案:依托主控集成的VMAC模塊,搭配外部PHY芯片實現(xiàn),支持LAN8720A、RTL8021F;
2.USB以太網(wǎng)卡方案:通過USB HOST口外接以太網(wǎng)卡實現(xiàn),SDK默認支持dm9620、ax8872b、sr9700、rtl8152b等型號。
兩種方案的軟件配置和排障思路差異較大,需針對性處理。
二、核心操作:雙方案軟件配置步驟
(一)VMAC+PHY模塊:四步完成軟件配置
VMAC是主控集成IP,需配合外部PHY芯片工作,驅動代碼位于drivers/net/rk29_vmac.c,配置分為四步:
1. Kernel配置開啟VMAC支持
通過make menuconfig打開內核配置,按以下路徑開啟選項:
Device DriversNetwork device supportEthernet (10 or 100Mbit)RK29 VMAC ethernet support
注意:RK3188平臺需關閉SDMMC1接口(CONFIG_SDMMC1_RK29 = n),避免RMII接口復用干擾。
2.板級文件添加VMAC資源
RK3168/RK3188平板需在板級文件中加入以下配置,定義PHY電源控制GPIO:
3. PHY電源控制:GPIO定義實現(xiàn)上電/復位
PHY芯片工作前需完成上電或復位,由主控GPIO控制,控制邏輯需在上述板級文件中提前定義,驅動初始化時會自動執(zhí)行。
4. MAC地址固定:告別隨機生成
默認MAC地址隨機生成,重啟后會變化,如需固定按以下步驟操作:
①使用專用燒錄工具將MAC地址寫入flash;
②內核配置中選擇MAC地址來源:
Device DriversNetwork device supportEthernet (10 or 100Mbit)Ethernet macsourceEthernet mac from IDB
③配置完成后,VMAC驅動會優(yōu)先調用flash中寫入的固定MAC地址。
(二)USB以太網(wǎng)模塊:一鍵開啟內核配置
USB以太網(wǎng)方案SDK默認支持,無需額外開發(fā),僅需在Kernel中開啟對應USB網(wǎng)卡驅動,路徑如下:
Device DriversNetwork device support (NETDEVICES [=y])USB Network Adapters
根據(jù)外接網(wǎng)卡型號,勾選對應驅動(如Davicom DM9620、Realtek rtl8152b等)即可。
三、實戰(zhàn)排障:常見問題+針對性解決方法
以太網(wǎng)調試遵循**「先打最新補丁→查軟件配置→排硬件問題」**原則,VMAC模塊需先打對應Android版本的以太網(wǎng)補丁,再進行排查。以下分通用問題、VMAC專屬問題、USB以太網(wǎng)專屬問題三類講解。
(一)通用問題:2個高頻問題快速解決
1.以太網(wǎng)與WiFi優(yōu)先級沖突:WiFi優(yōu)先導致以太網(wǎng)無法連接
現(xiàn)象:同時連接WiFi和以太網(wǎng)時,以太網(wǎng)無法上線;關閉WiFi后,以太網(wǎng)正常工作。
原因:Android系統(tǒng)默認將WiFi設為首選網(wǎng)絡。
解決:修改系統(tǒng)代碼補丁,調整網(wǎng)絡優(yōu)先級判斷邏輯,讓以太網(wǎng)優(yōu)先級高于WiFi。
2.部分應用無法通過以太網(wǎng)上網(wǎng)(如QQ)
現(xiàn)象:以太網(wǎng)IP獲取正常,瀏覽器可上網(wǎng),但部分應用提示“無網(wǎng)絡連接”。
原因:應用本身僅識別WiFi/移動網(wǎng)絡,未適配以太網(wǎng)網(wǎng)絡類型,屬于應用層問題。
解決:無通用軟件補丁,需針對應用做網(wǎng)絡類型適配。
(二)VMAC+PHY模塊:5大專屬問題排障
排查前需先打對應Android版本補?。?/span>4.1/4.2),保證驅動代碼為最新版本,再按現(xiàn)象定位問題。
1.機器不斷重啟:log提示「net eth0: no PHY found」
核心原因:主控未識別到PHY芯片,排查步驟:
①檢查PHY芯片是否上電/復位正常;
②驗證RMII時鐘(rmii_clk):要求50M、幅度2V以上,通過cat proc/clocks | busybox grep mac查看時鐘狀態(tài);
?RK3188T需外接晶體提供50M時鐘;
?RK3066 Android4.1需打時鐘專屬補?。?/span>
③排查接口復用干擾:RK3066的RMII與相機模塊復用、RK31xx的RMII與WiFi模塊復用,需先排除硬件干擾并打兼容補??;
④ PHY為RTL8201F時,需斷開芯片第15腳。
2.以太網(wǎng)無法連接:TX/RX數(shù)據(jù)包異常
第一步:執(zhí)行busybox ifconfig eth0查看eth0接口狀態(tài);
第二步:分現(xiàn)象解決:
?TX/RX packets均為0:排查RJ45座子與主板管腳定義是否一致,座子硬件是否故障;
?TX非0/RX為0:RK3066平臺直接打rk3066_vmac_rx_fail.patch補丁。
3.開機概率性無法連接以太網(wǎng)
原因:PHY芯片未完成有效復位。
解決:修改drivers/net/rk29_vmac.c中vmac_open函數(shù),添加復位延時邏輯:
clk_enable(clk_get(NULL,"mac_ref"));//phy power onif(pdata && pdata->rmii_power_control) {pdata->rmii_power_control(0);msleep(100);pdata->rmii_power_control(1);}msleep(1000);
4.組播(multicast)功能無法使用
解決:修改drivers/net/rk29_vmac.c中vmac_set_multicast_list函數(shù),調整寄存器讀寫邏輯:
reg =vmac_readl(ap,CONTROL);// 替換原ENABLE寄存器if(promisc != !!(reg &PROM_MASK)) {reg ^=PROM_MASK;vmac_writel(ap, reg,CONTROL);// 替換原ENABLE寄存器}
5. RX存在丟包現(xiàn)象:log顯示RX errors非0
原因:MAC模塊50M時鐘精度不足,尤其RK3188T平臺。
解決:使用外部晶體提供50M時鐘,配合對應硬件+軟件補丁。
(三)USB以太網(wǎng)模塊:3大專屬問題排障
USB以太網(wǎng)問題核心圍繞USB枚舉、供電、MAC地址展開,排查優(yōu)先看系統(tǒng)打印日志。
1.以太網(wǎng)完全無法使用:分兩步排查
第一步:查看USB設備枚舉日志,確認是否有以下打?。ㄒ?/span>rtl8152b為例):
usb2-1: New USB device found, idVendor=0bda, idProduct=8152usb2-1: Product: USB10/100LANcdc_ether2-1:2.0: eth0: register 'cdc_ether' at usb-usb20_host-1
?無枚舉打印:排查USB HOST口是否正常(接鼠標測試)、HOST口供電是否足夠、USB HUB是否故障;
?有枚舉打印:執(zhí)行busybox ifconfig eth0查看IP,無IP則手動設置靜態(tài)IP,排查局域網(wǎng)故障。
2. USB以太網(wǎng)不穩(wěn)定:播放視頻/大文件傳輸時斷線
現(xiàn)象:log提示usb 2-1: USB disconnect, device number 2。
原因:USB HOST口供電不足,屬于硬件問題。
解決:修改硬件供電電路,提升USB HOST口供電能力。
3. RTL8152芯片導致無法進入Android系統(tǒng)
原因:RTL8152默認無MAC地址,驅動報異常觸發(fā)系統(tǒng)啟動故障。
解決:打rtl8152 解決MAC地址為空補丁,為芯片分配默認MAC地址。
四、補丁使用:排查前的必備操作
大部分底層問題均可通過補丁解決,排查前優(yōu)先打對應補丁是提升效率的關鍵:
1.版本補丁:Android4.1/4.2分別對應專屬VMAC以太網(wǎng)更新補丁;
2.芯片專屬補丁:RK3066/RK3188T的時鐘、接口復用兼容補??;
3.功能補丁:組播、丟包、RX失敗、MAC地址為空等問題的針對性補??;
4.補丁獲取:所有補丁可從指定文件服務器的「以太網(wǎng)相關補丁」目錄下載。
五、核心總結
RK Android平臺以太網(wǎng)調試的核心邏輯是**「按方案分治,按現(xiàn)象定位」**:
1.VMAC+PHY方案:重點關注PHY芯片上電/復位、50M時鐘精度、接口復用干擾,驅動代碼修改集中在rk29_vmac.c;
2.USB以太網(wǎng)方案:重點關注USB枚舉、HOST口供電、MAC地址,硬件供電是穩(wěn)定性的關鍵;
3.通用原則:先打最新補丁排除驅動底層問題,再通過busybox ifconfig eth0、系統(tǒng)日志定位現(xiàn)象,最后軟件→硬件逐步排查。
配套腦圖+流程圖
1. RK Android以太網(wǎng)調試核心腦圖

2. VMAC以太網(wǎng)無法連接排查流程圖

3. USB以太網(wǎng)無法使用排查流程圖
?-
嵌入式
+關注
關注
5209文章
20625瀏覽量
336758 -
以太網(wǎng)
+關注
關注
41文章
6160瀏覽量
181513 -
Android
+關注
關注
12文章
4035瀏覽量
134447
發(fā)布評論請先 登錄
請問RK3288 android 7.1.2如何使用CPU Serial固定USB以太網(wǎng)MAC地址?
RK3288調試筆記之添加以太網(wǎng)MAC地址信息資料推薦
RK3568 USB 以太網(wǎng)(RNDIS)如何啟用呢
RK3568 USB以太網(wǎng)(RNDIS)如何啟用呢?
基于RTL8150L的USB轉以太網(wǎng)的設計
如何配置以太網(wǎng)交換機
工業(yè)以太網(wǎng)方案選擇指南
工業(yè)以太網(wǎng)交換機出現(xiàn)故障的原因有哪些?排障方法有哪些
工業(yè)以太網(wǎng)交換機的故障原因分析及排障方法
全志T507開發(fā)板以太網(wǎng)配置方法
RK3399 VR Android參數(shù)配置和調試說明
網(wǎng)絡啟動再進化,亞信USB以太網(wǎng)iPXE方案全新登場
RK Android平臺以太網(wǎng)調試全解|VMAC+USB雙方案配置與排障實戰(zhàn)
評論