HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

一、在 hisi板子跑起来之后很兴奋,然后试一下网络能不能用,发现ifconfig 不出来任何消息,然后ifconfig -a 出来消息如下:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

明显,网卡没跑起来,想起了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

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

ping

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

 

三、之后发现一个问题,每次按下reset按键之后,系统起来之后,ifconfig 命令都没网卡出来,每次都要 ifconfig eth0 up 之后才出来。

板子开启后的启动初始化文件位于\etc\init.d文件夹中的rcS中,于是我们把板子启动网卡eth0的启动配置文件加进去,首先编写启动配置文件:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

保存,然后编写rcS文件:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

配置完成保存,然后重新启动开发板:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

打印了红色框的log,很明显没有权限。so... 加上权限:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

重新启动开机:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

 

四、网卡是起来了。发现ip 还是没有,log中我们申请到了 192.168.1.211,怎么会没有。继续看log .

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

hisi 默认的配置文件。进行网络启动配置。so.....我们看看做了什么:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

这里有进行了配置,原来如此。于是我们去/etc/init.d/rcS 文件修改去掉启动 S80network;

然后保存重启系统,从log发现,我们的ifconfig-eth0执行并且获取了ip:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

但是我们执行ifconfig 命令查看网卡信息:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

自动获取的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写到指定的网卡中。

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

 

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

然后重新编译根文件系统 myroot目录,重新生成文件系统的镜像烧写到开发板中:

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题

以上方框中的log 是比之前的log多出来的日志,也就是把自动获取的ip设置到网卡中去,至此,网卡已完全调试通过。(

现在ping wwww.baidu.com也能ping通了,域名解析的功能也能正常使用了

HISI3519(之) 烧写uboo kernel rootfs 跑起来之后网络网卡问题