Hi3519V101(之) 燒寫uboo kernel rootfs 跑起來之後網路網絡卡問題
一、在 hisi板子跑起來之後很興奮,然後試一下網路能不能用,發現ifconfig 不出來任何訊息,然後ifconfig -a 出來訊息如下:
明顯,網絡卡沒跑起來,想起了uboot修改了網路模型是rmii,而kernel 沒有修改,於是裡面修改kernel的網路模式,在核心dts 檔案中,修改RMII。(grmii 是千兆,我的開發板子用的是rmii 百兆網絡卡)
檔案所在路徑:..\Hi3519V101_SDK_V1.0.1.0\osdrv\opensource\kernel\linux-3.18.y\arch\arm\boot\dts\
需要修改的檔案:hisi-hi3519v101-demb.dts hisi-hi3519v101-hmp-demb.dts
開啟:hisi-hi3519v101-demb.dts
&higmac { phy-handle = <ðphy>; phy-mode = "rgmii"; // ==> 將rgmii 修改成rmii }; 修改後: &higmac { phy-handle = <ðphy>; phy-mode = "rmii"; };
同樣開啟:hisi-hi3519v101-hmp-demb.dts
&higmac { compatible = "hisilicon,higmac-v3", "hisilicon,higmac"; phy-handle = <ðphy>; phy-mode = "rgmii"; // ==> 將rgmii 修改成rmii }; 修改後: &higmac { compatible = "hisilicon,higmac-v3", "hisilicon,higmac"; phy-handle = <ðphy>; phy-mode = "rmii"; };
二、然後編譯核心,燒錄。進入linux終端壞境中,設定網路引數:
1、 配置ip地址和子網掩碼
ifconfig eth0 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx up
2、 設定預設閘道器
route add default gw xxx.xxx.xxx.xxx
ping :
三、之後發現一個問題,每次按下reset按鍵之後,系統起來之後,ifconfig 命令都沒網絡卡出來,每次都要 ifconfig eth0 up 之後才出來。
板子開啟後的啟動初始化檔案位於\etc\init.d資料夾中的rcS中,於是我們把板子啟動網絡卡eth0的啟動配置檔案加進去,首先編寫啟動配置檔案:
儲存,然後編寫rcS檔案:
配置完成儲存,然後重新啟動開發板:
列印了紅色框的log,很明顯沒有許可權。so... 加上許可權:
重新啟動開機:
四、網絡卡是起來了。發現ip 還是沒有,log中我們申請到了 192.168.1.211,怎麼會沒有。繼續看log .
hisi 預設的配置檔案。進行網路啟動配置。so.....我們看看做了什麼:
這裡有進行了配置,原來如此。於是我們去/etc/init.d/rcS 檔案修改去掉啟動 S80network;
然後儲存重啟系統,從log發現,我們的ifconfig-eth0執行並且獲取了ip:
但是我們執行ifconfig 命令檢視網絡卡資訊:
自動獲取的ip 並沒有把獲取到的ip 192.168.1.112設定到網絡卡中去!
因為:udhcpc只是獲取一個IP,我們需要把3519/Hi3519V101_SDK_V1.0.4.0/osdrv/opensource/busybox/busybox-1.20.2/examples/udhcp目錄下的指令碼simple.script改名為default.script,放在開發板上的/usr/share/dhcpc/目錄下,才能將獲取的IP寫到指定的網絡卡中。
然後重新編譯根檔案系統 myroot目錄,重新生成檔案系統的映象燒寫到開發板中:
以上方框中的log 是比之前的log多出來的日誌,也就是把自動獲取的ip設定到網絡卡中去,至此,網絡卡已完全除錯通過。(
現在ping wwww.baidu.com也能ping通了,域名解析的功能也能正常使用了)
(這種在啟動指令碼做自動獲取ip的方法:udhcpc -i eth0 比較簡單粗暴,如果開機的時候沒插上網線 ,會一直掃描網絡卡 ,不進去系統,有缺陷,後期再修改這種方法,待續。。。。。)
---------------------
作者:wendeWu_Json
來源:CSDN
原文:https://blog.csdn.net/wwdlss/article/details/83541273
版權宣告:本文為博主原創文章,轉載請附上博文連結!