A-A+

UBNT SDK v5.5 编译出错quilt requires at least version 2.4 of GNU patch的解决方法

2016年07月13日 经验分享 暂无评论 阅读 1,355 次

今天尝试在Ubuntu 14.04系统上编译UBNT SDK(SDK.UBNT.v5.5.tar.bz2),出现以下错误:
yimiju@ubnt:~/ubnt/SDK.UBNT.v5.5/openwrt$ make V=99
checking the version of /usr/local/bin/patch... patch
configure: error:
quilt requires at least version 2.4 of GNU patch. You can download a
current version of patch from ftp.gnu.org, or if you already have GNU patch
then you can supply its path with the '--with-patch=' option.

[ -f /home/yimiju/ubnt/SDK.UBNT.v5.5/openwrt/build_dir/host/quilt-0.47/Makefile ]
make[3]: *** [/home/yimiju/ubnt/SDK.UBNT.v5.5/openwrt/build_dir/host/quilt-0.47/.configured] Error 1
make[3]: Leaving directory `/home/yimiju/ubnt/SDK.UBNT.v5.5/openwrt/tools/quilt'
make[2]: *** [tools/quilt/compile] Error 2
make[2]: Leaving directory `/home/yimiju/ubnt/SDK.UBNT.v5.5/openwrt'
make[1]: *** [/home/yimiju/ubnt/SDK.UBNT.v5.5/openwrt/staging_dir/mips/stamp/.tools_install] Error 2
make[1]: Leaving directory `/home/yimiju/ubnt/SDK.UBNT.v5.5/openwrt'
make: *** [world] Error 2
yimiju@ubnt:~/ubnt/SDK.UBNT.v5.5/openwrt$

分析了下报错信息,然后把问题解决了,记录下解决过程和方法:

一、问题原因:

根据报错信息里:
quilt requires at least version 2.4 of GNU patch. You can download a current version of patch from ftp.gnu.org
这句话意思是quilt工具需要2.4版本的patch工具。
怀疑当前电脑的GNU patch版本太低,然后我用patch --version命令看了下:
GNU patch 2.7.1
Copyright (C) 2003, 2009-2012 Free Software Foundation, Inc.
Copyright (C) 1988 Larry Wall

License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Larry Wall and Paul Eggert

GNU patch 2.7.1,说明当前系统安装的GNU patch的版本已经很高了(apt-get安装的版本),然后找了下GNU patch源码安装包,都没有找到2.4版本的安装包。
然后想想,quilt依赖2.4版本的patch,patch没办法降级,问题是不是有可能是quilt版本太老了,所以依赖的patch版本也非常老,能不能把patch版本升级呢?
然后我用quilt --version命令查了下quilt的版本,命令显示当前系统的quilt版本为0.61(apt-get安装的版本),然后去找了quilt最新的安装包,找到最新版本为0.64版本,下载地址:
http://ftp.yzu.edu.tw/nongnu//quilt/quilt-0.64.tar.gz
但再看下报错信息:
make[3]: *** [/home/yimiju/ubnt/SDK.UBNT.v5.5/openwrt/build_dir/host/quilt-0.47/.configured] Error 1
怎么是quilt-0.47?
说明UBNT make的时候,调用了SDK.UBNT.v5.5/openwrt/build_dir/host/quilt-0.47/,是0.47版本,这个版本估计有问题,依赖了GNU patch V2.4。

二、解决方案:

经过一番努力搜寻,最终发现SDK.UBNT.v5.5/openwrt/tools/quilt/目录下有一个Makefile,这个文件中以下几行配置一看就知道是quilt相关的:
PKG_NAME:=quilt
PKG_VERSION:=0.47

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://download.savannah.gnu.org/releases/$(PKG_NAME)
PKG_MD5SUM:=d33d2442bd34387260b1c1db3e623af0

修改下面两行即可:
PKG_VERSION:=0.47 改为 PKG_VERSION:=0.64
PKG_MD5SUM:=d33d2442bd34387260b1c1db3e623af0 改为 PKG_MD5SUM:=fc0310db5868a0873d602d4332a76d43
保存,然后重新到SDK.UBNT.v5.5/openwrt/目录下重新make,这次可以通过编译了,问题解决。
PS:上述两个配置,一个是quilt的版本号,一个是这个版本的源码包对应的MD5值。如果要换其他版本,注意不仅要修改版本号,MD5也要相应修改。

最后再提醒下:UBNT编译过程中会去网络上下载依赖组件(例如上面的quilt),所以编译机器第一次编译一定要联网!!

给我留言

icon_question icon_razz icon_sad icon_evil icon_exclaim icon_smile icon_redface icon_biggrin icon_surprised icon_eek icon_confused icon_cool icon_lol icon_mad icon_twisted icon_rolleyes icon_wink icon_idea icon_arrow icon_neutral icon_cry icon_mrgreen

Copyright © 2009 - 2014 一米居 | All Rights Reserved | Powered By WordPress | Theme Designed By 知更鸟 | 赣ICP备09003747号-2

用户登录

分享到: