关于milkv-duo烧录openwrt无法联网的解决方法

原文链接【OpenWrt On Milkv-duo】Milkv-duo 运行 OpenWrt 系统

0.声明:
本人小白,以下所有操作过程及补丁代码均从各大论坛和github搜刮而来,不懂得其中原理,请各位大佬轻喷。

1.背景:
按照上文中Baozhu大佬的脚本成功编译了镜像,并在 duo 和 duo256m 上面成功启动了系统。我在启动了该系统后,发现不能通过底板连接互联网,该问题急需解决,因此写此文说明。

2.实验准备:
duo256m 系统可以通过替换 duo 系统镜像的 boot.sd 和 fip.bin 获得。当然喽,照着大佬的脚本自行编写对应脚本生成 u-boot 和 系统镜像 最好。具体的仓库代码及烧录过程可以参考论坛大佬 Baozhu 的编译过程。GitHub - Pillar1989/VizOS

3.实验过程:
在烧录好镜像并成功启动后,需要确认镜像的 u-boot 能否联网。具体操作如下:在进入u-boot后,使用ping命令查看开发板与上级路由器是否联通。如不能ping通,请查看底板网口是否损坏(笔者的其中一个底板网口就被搞得损坏了),网线和底板链接是否牢固。
在检查了硬件网络的联通后,就可以重启进入系统了。在进入系统后,执行以下步骤:

注意:以下所有ip地址均需依据现场实际填写。前提条件是uboot能ping通上级路由。

step1:
ifconfig eth0 192.168.1.129 up
step2:
查看route是否存在上级网关地址并编辑 ( 应该是要自己添加网关地址的 )
route add default gw 192.168.1.1
step3:
在/etc/config/resolv.conf中添加配置如下
#114 DNS服务器
nameserver 114.114.114.114
#微软 DNS服务器
nameserver 233.5.5.5
#google DNS服务器
nameserver 8.8.8.8
step4:
此时可以尝试ping通外网了。一般是可以连接外网了。

4.结论
我已经在duo256m上成功尝试过几次了,如不能联网,可以检查是否有步骤遗漏。如有错误恳请批评指正,谢谢您的阅读。 :yum:

you can download the image file in this website:

and the openwrt source files:

I added the APK package manager in this image, you can use it to download the APP. For example, python3, pip, gcc.
But if you use APK, you must run the " network-init.sh" bash script to init your network and download some packages to make sure you can use the APK package manager properly.
It already adapted to the duo, duo256m and duos. However, the arm core`s openwrt still cannot be used.

您在按照我上传的镜像启动和初始化脚本后,可以正常使用 apk 和 opkg 安装软件包。唯一的缺点是 luci 不能用,还希望各位大佬们后续能修复该BUG。

OpenWRT luci可用。稍后我会更新仓库到github上。同时,也会将预编译好的镜像上传到github仓库。

:speech_balloon:厉害啊!楼主! :smile:

源文件及镜像已上传,您可以尝试看看。我的duo64m貌似被我弄坏了不能用,如果您尝试duo64m发现无法使用,请提交bug给我,谢谢。请您注意一下,luci现需要您在初始化脚本后手动安装。(本想集成到镜像里的,但又要重新编译,太耗时了,下次将luci集成进去)

楼主方便写个教程吗?授人以鱼不如授人以渔。

如果是说编译过程的话,在最原始的帖子里有提到编译的详细过程的,就是.github文件夹里面的.yml文件。如果是移植过程的话,我是东拼西凑看各种教程零碎拼凑搞的,也不是特别的专业。我稍后写一篇文章发到论坛。您看怎么样?

那太好了,期望楼主的佳作,我也是按照Baozhu Zuo大神github中工作流本地编译的,但是我编译lcui卡页面,不知道啥情况。

1 Like

您需要在启动开发板、网络、软件源正常、安装好必要的包以后,再用opkg安装相应的luci包,重启开发板,即可在电脑上登录到luci。我是这么搞的,因为几个月前在编译luci时出了问题,改源码也启动不了就放弃了从源码下手。后面编译了apk, 修复了依赖环境,所以现在可以在线安装luci了。只是勉强能用,还有很多小问题需要各位大佬来共同解决。
我认为是源码问题,在luci依赖的软件包中,rpcd-mod-rrdns始终无法通过编译,总提示缺少resolv库,我将resolv相关代码注释后,可以通过编译,但luci卡界面。是这里出了问题,但我解决不了。 :joy:

我将milk duo 256镜像烧录好后,打开boot盘,里面就已经出现了fip.bin 和boot.sd,这是为什么,您说的替换这两个文件又怎么回事

我给您解答一下,因为在duo256m甚至duos在fip.bin和boot.sd这两个文件生成时应该是有参数错误的,这涉及到编译时的uboot配置问题以及镜像配置文件的问题。而我没有过多探究这其中的原因,我原本想着能用就行,没有去修复这些问题,而且文档也没有写清楚,给您造成了许多麻烦,不好意思哦,之后有时间修复了我再把开箱即用的镜像再重新上传。

您需要先下载我仓库里的fip.bin和boot.sd,并复制。之后在Windows下打开boot盘,将这两个文件进行粘贴,直接替换即可插入duo使用。

1 Like

在您上述步骤完成后,您再上电,需要使用串口线登录开发板,并运行 root 目录下的脚本初始化网络(不知道 op 为什么是静态网络而非动态获取 ip 地址),依据脚本提示填写相关的信息,若正确配置,则会正常联网,并且会从网络获取包管理器相关的依赖包,这其中会有一个错误提示,但请您放心,这是没问题的。等待所有依赖包下载就绪,您就可以正常使用 opkg 和 apk 包管理器了。并且可以用 ssh 连接。(若需要 luci 网页,您只需要 opkg install luci 即可)

当前镜像的不便之处是,您每次给开发板上电均需要运行上述脚本,当然,您在运行完第一次并能正常联网后,第二次即依据提示语回复 “n” 即可。

之前我好像忘记把此脚本放系统启动脚本里了,您可以自己手动放到 openwrt 的启动脚本里去。您在 op 的启动脚本里添加路径 /etc/network-init.sh 即可。

最后,实在不好意思,后续有时间我会纠正这些问题的。谢谢您。

1 Like