openwrt-18.06.1未生成uImage的解决方法

最近有些openwrt极客反馈拿我的kirkwood-88F6281源码(github仓库在这里,https://github.com/aboutboy/kirkwood-88F6281)自行编译不生成固件,然而我很久没有再碰过Openwrt系统了。

为了帮助大家解决问题,我只好再次开启虚拟机,下载了最新版的openwrt-18.06.1的源码。

以前我上传的kirkwood-88F6281的代码是针对lede系统的,在lede-17.01.4及以下几个版本中都是没问题的。

而这次由于openwrt-18.06.1使用了更新的Linux内核,所以很多网友直接替换target/linux/kirkwood文件夹的做法显然是存在问题的。

正确的方法是:把kirkwood-88F6281/patches-4.4/210-butong.patch文件移动到openwrt-18.06.1的patches-4.14文件夹内。当然还需要略作修改,为什么修改我这里就不详述了。附上最新的210-butong.patch文件地址:https://github.com/aboutboy/kirkwood-88F6281/blob/master/patches-4.14/210-butong.patch

网友们还应该记得检查其它文件是否正确修改:

要进行配置的其它文件,请检查

在openwrt-18.06.1目录执行make menuconfig,选中BUTONGWIFI for Marvell 88F6281这个项目,如下:

make menuconfig选中正确的编译项目

然后保存退出后,执行make V=99,即启动编译。如果没什么问题的话,编译会经历一段时间后完成。

然而,去bin/target/kirwood/generic文件夹却并没有发现生成openwrt-kirkwood-butongwifi_butong-uImage这个uboot文件。

往上翻编译日志,发现其实在build_dir/target-arm_xscale_musl_eabi/linux-kirkwood这个目录是有openwrt-kirkwood-butongwifi_butong-uImage这个文件生成的。

为什么编译过程中没有把openwrt-kirkwood-butongwifi_butong-uImage这个文件复制到bin/target/kirwood/generic文件夹呢?

我研究了很久,发现其实新版的代码修改了target/linux/kirkwood/image/Makefile这个文件的一些参数。这个文件其实就是生成image文件的。所以修改Makefile如下:

修改Makefile以便生成uImage文件

再次编译,我们发现在bin/target/kirwood/generic文件夹已经生成了openwrt-kirkwood-butongwifi_butong-uImage,

目录中已经包含对应的uImage文件


Posted

in

by

Tags:

Comments

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注