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 比较简单粗暴,如果开机的时候没插上网线 ,会一直扫描网卡 ,不进去系统,有缺陷,后期再修改这种方法,待续。。。。。)

 

你可能感兴趣的:(底层驱动)