1. 程式人生 > >Hi3519V101(之) 燒寫uboo kernel rootfs 跑起來之後網路網絡卡問題

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 = <&ethphy>;
        phy-mode = "rgmii"; // ==> 將rgmii 修改成rmii
};
 
修改後:
 
&higmac {
        phy-handle = <&ethphy>;
        phy-mode = "rmii"; 
};
 

同樣開啟:hisi-hi3519v101-hmp-demb.dts

&higmac {
        compatible = "hisilicon,higmac-v3", "hisilicon,higmac";
        phy-handle = <&ethphy>;
        phy-mode = "rgmii"; // ==> 將rgmii 修改成rmii
};
 
修改後:
 
&higmac {
        compatible = "hisilicon,higmac-v3", "hisilicon,higmac";
        phy-handle = <&ethphy>;
        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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!