海思网络错误(烧录报tftp错误等)解决思路分享

海思网络错误(烧录报tftp错误等)解决思路分享
下面内容分三部分第一、二部分讲的是遇到的问题和我尝试过的解决思路最后一部分讲的是整理后的可行的最终解决方法1.问题现象一描述镜像编译完成之后烧录时候报错尝试解决方法1boot使用官网347镜像的后面四个分区使用我们烧录的镜像可以正常烧录并且开机说明是boot分区的问题遇到新的问题板子和电脑ping不通双方都是自己ping自己可以ping通尝试解决方法2尝试把SDK1.0.1.0的补丁打进入再重新编译烧录然后修改~bsp/tools/pc/uboot_env/env_text/hi3519dv500/emmc_env.txt添加如下内容ipaddr192.168.1.168 serverip192.168.1.99 netmask255.255.255.0 gatewayip192.168.1.1最后再重新编译镜像但网口烧录还是报同样的错误尝试解决方法3更换glibc编译器去官网仓库扒下来glibc编译器运行脚本然后再opt/linux/x86-arm目录下生成对应环境最后生成glibc版本的镜像然后网口烧录的时候还是报错说明不是编译器问题尝试解决方法4使用串口烧录烧录了3h成功烧录但是仍然板端和pc端无法互ping2.问题现象二描述网线插上之后找不到网络标识临时解决方法首先给板子烧录官方的镜像然后再烧录自己的镜像最后开机后在板端执行下面命令但是这个用的boot分区是官方镜像提供的其余四个分区是我们自己烧录的治标不治本ifconfig eth0 hw ether 00:c3:9f:df:6b:1eifconfig eth0 192.168.1.168 netmask 255.255.255.0 uproute add default gw 192.168.1.1ifconfig eth03.最终解决–烧录报错以及双端无法ping通解决方法1排除硬件连接问题首先进入u-boot界面手动设置env配好mac、ip等相关信息确保物理连接是通的发现手动配置后网络是可达的证明物理连接是通的不是网线等硬件问题所以接下来就是把mac地址、双端ip地址等信息写在对应的分区中例如boot_image.bin、env.bin、kernel2修改相应分区网络设置修改点1Hi3519DV500_SDK_V1.0.1.0\smp\a55_linux\source\bsp\tools\pc\uboot_env\env_text\hi3519dv500\emmc_env.txt对应解决错误U-Boot 网络/启动环境emmc_env.bin分区把网络参数写入 env 文本后重新生成 env 镜像烧录后无需每次进 U-Boot 手动 setenv解决- 网络升级、tftp下载、ping调试的错误修改点2Hi3519DV500_SDK_V1.0.1.0\smp\a55_linux\source\bsp\tools\pc\uboot_env\env_text\hi3519dv500\emmc_tee_env.txt对应解决错误emmc_env.bin分区emmc_env.txt修改emmc_tee_env.txt也要对应修改修改点3Hi3519DV500_SDK_V1.0.1.0\open_source\u-boot\u-boot-2022.07\include\configs\hi3519dv500.h修改CONFIG_IPADDR192.168.1.168CONFIG_SERVERIP192.168.1.99CONFIG_EXTRA_ENV_SETTINGS: ethaddr/mdio_intf/phy_addrCONFIG_GMAC_PHY0_INTERFACE_MODE 1对应解决错误emmc_tee_env.txtflash环境变量 U-Boot编译默认值hi3519dv500.h谁在运行时存在就用谁修改点4Hi3519DV500_SDK_V1.0.1.0\open_source\linux\linux-5.10.y\arch\arm64\boot\dts\vendor\hi3519dv500.dtsi修改mac-address [02 00 35 19 d5 00];对应解决错误Linux 内核网卡驱动在设备树里面直接给mac地址写死防止随机生成这里这个mac是给内核用的修改点5Hi3519DV500_SDK_V1.0.1.0\open_source\linux\linux-5.10.y\arch\arm64\boot\dts\vendor\hi3519dv500-demb.dts修改phy-mode “rmii”;对应解决错误把rmgii-id修改成rmii板端是百兆而不是千兆修改点6HiSi\Hi3519DV500_SDK_V1.0.1.0\open_source\linux\linux-5.10.y\arch\arm64\boot\dts\vendor\hi3519dv500-demb-tee.dts修改phy-mode “rmii”;对应解决错误修改点7没明白什么意思Hi3519DV500_SDK_V1.0.1.0\open_source\linux\linux-5.10.y\drivers\net\ethernet\vendor\gmac\gmac.c修改res platform_get_resource(… MEM_AXI_BUS_CFG_IOBASE);if (res) { … } else { priv-axi_bus_cfg_base NULL; }对应解决错误允许“没有 AXI 配置资源”的平台也能正常跑 GMAC修改点8Hi3519DV500_SDK_V1.0.1.0\smp\a55_linux\source\bsp\rootfs_scripts\rootfs_base\etc\init.d\S80networkHi3519DV500_SDK_V1.0.1.0\smp\a55_linux\source\bsp\rootfs_scripts\rootfs\etc\init.d\S80networkHi3519DV500_SDK_V1.0.1.0/smp/a55_linux/source/bsp/pub/rootfs_musl_arm64/etc/init.d/S80network对应解决错误提前拉起lo确保 loopback 网络接口被明确激活避免因接口未处于 UP 状态导致本地网络通信、服务绑定或系统组件异常3测试修改完之后重新编译烧录上板测试ifconfig可以找到网络并且可以ping通pc端板端 ping pc端pc端 ping 板端