明显,网卡没跑起来,想起了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
版权声明:本文为博主原创文章,转载请附上博文链接!