deadwood on openwrt 打包 ipk 求助 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
debiansid
V2EX    OpenWrt

deadwood on openwrt 打包 ipk 求助

  •  
  •   debiansid 2015-01-29 15:09:01 +08:00 1761 次点击
    这是一个创建于 3987 天前的主题,其中的信息可能已经有所发展或是发生改变。
    @aa65535 我参考了你的chinadns以及maradns的Makefile写法,但是deadwood始终无法编译;错误如下
    cd /home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06/src; make all -C /home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06 CFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16" FLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16" CC="mips-openwrt-linux-gnu-gcc" HOSTCC="gcc" V=
    make[4]: Entering directory `/home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06'
    make[4]: *** No rule to make target `all'. Stop.
    make[4]: Leaving directory `/home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06'
    make[3]: *** [/home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06/.built] Error 2
    make[3]: Leaving directory `/home/admin/openwrt/package/openwrt-deadwood'
    make[2]: *** [package/openwrt-deadwood/compile] Error 2
    make[2]: Leaving directory `/home/admin/openwrt'
    make[1]: *** [/home/admin/openwrt/staging_dir/target-mips_34kc_eglibc-2.19/stamp/.package_compile] Error 2
    make[1]: Leaving directory `/home/admin/openwrt'

    src里面有Makefile,用toolchain可以make all成功,我想弄成ipk形式。
    不知道从哪里下手。

    谢谢
    第 1 条附言    2015-01-29 17:02:13 +08:00
    deadwood_3.2.06-1_ar71xx.ipk
    生成了,要点是
    1.修改源代码Makefile
    2.修改ipk Makefile,分别编译Deadwood, duende

    等换eglibc再测试效果
    15 条回复    2015-02-02 23:39:26 +08:00
    aa65535
        1
    aa65535  
       2015-01-29 16:35:31 +08:00
    这种错误一般是 PKG_BUILD_DIR 路径没写对,检查一下对应的 tar.gz 文件里的目录名称。
    目录 /home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06 是对的么?

    另外,问这种最好把 Makefile 贴出来,不然我只能猜了。
    debiansid
        2
    debiansid  
    OP
       2015-01-29 17:03:04 +08:00
    @aa65535 -C 要指定到源码在的位置,src以及tools
    debiansid
        4
    debiansid  
    OP
       2015-01-29 18:12:56 +08:00
    @LazyZhu @aa65535
    make -C /home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06/src CFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16" FLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16" CC="mips-openwrt-linux-gnu-gcc" HOSTCC="gcc" V=
    make[4]: Entering directory `/home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06/src'
    mips-openwrt-linux-gnu-gcc -Os -pipe -mno-banch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16 -Wall -c -o DwHash.o DwHash.c
    DwHash.c: In function 'dwh_hash_compress':
    DwHash.c:155:24: error: 'MUL_CONSTANT' undeclared (first use in this function)
    out *= MUL_CONSTANT;
    ^
    DwHash.c:155:24: note: each undeclared identifier is reported only once for each function it appears in
    make[4]: *** [DwHash.o] Error 1
    make[4]: Leaving directory `/home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06/src'
    make[3]: *** [/home/admin/openwrt/build_dir/target-mips_34kc_eglibc-2.19/deadwood-3.2.06/.built] Error 2
    make[3]: Leaving directory `/home/admin/openwrt/package/openwrt-deadwood'
    make[2]: *** [package/openwrt-deadwood/compile] Error 2
    make[2]: Leaving directory `/home/admin/openwrt'
    make[1]: *** [/home/admin/openwrt/staging_dir/target-mips_34kc_eglibc-2.19/stamp/.package_compile] Error 2
    make[1]: Leaving directory `/home/admin/openwrt'
    make: *** [world] Error 2

    编译不是每次都可以成功。指点下?
    debiansid
        5
    debiansid  
    OP
       2015-01-29 18:14:51 +08:00
    @aa65535 @LazyZhu
    我的Makefile
    #
    # Copyright (C) 2006-2009 OpenWrt.org
    #
    # This is free software, licensed under the GNU General Public License v2.
    # See /LICENSE for more information.
    #

    include $(TOPDIR)/rules.mk

    PKG_NAME:=deadwood
    PKG_VERSION:=3.2.06
    PKG_RELEASE:=1

    PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
    PKG_SOURCE_URL:=http://maradns.samiam.org/deadwood/stable/$(PKG_VERSION)
    #PKG_MD5SUM:=1d221438fb4d9317263555262b9c652c

    include $(INCLUDE_DIR)/package.mk

    define Package/deadwood
    SECTION:=net
    CATEGORY:=Network
    DEPENDS:=+libpthread
    TITLE:=Small and secure DNS Server
    URL:=http://www.maradns.org/
    SUBMENU:=IP Addresses and Names
    endef

    define Package/deadwood/description
    maradns is a DNS server written with security, simplicity, and
    performance in mind.
    endef

    define Package/deadwood/conffiles
    /etc/maradns/dwood3rc
    endef

    #define Build/Configure
    # it's not GNU autoconf stuff
    # (cd $(PKG_BUILD_DIR)/src; \
    #$(TARGET_CONFIGURE_OPTS) \
    # ./configure \
    );
    #endef

    # cd $(PKG_BUILD_DIR)/src; \

    define Build/Compile
    $(MAKE) -C $(PKG_BUILD_DIR)/src \
    CFLAGS="$(TARGET_CFLAGS)" \
    FLAGS="$(TARGET_CFLAGS)" \
    CC="$(TARGET_CC)" \
    HOSTCC="$(HOSTCC)" \
    V=
    #mkdir -p $(PKG_INSTALL_DIR)/usr/{bin,sbin}
    #mkdir -p $(PKG_INSTALL_DIR)/usr/man/man{1,5,8}
    $(MAKE) -C $(PKG_BUILD_DIR)/tools \
    CFLAGS="$(TARGET_CFLAGS)" \
    FLAGS="$(TARGET_CFLAGS)" \
    CC="$(TARGET_CC)" \
    #PREFIX="$(PKG_INSTALL_DIR)/usr" \
    #RPM_BUILD_ROOT="$(PKG_INSTALL_DIR)" \
    V=
    #install
    endef

    define Package/deadwood/install
    $(INSTALL_DIR) $(1)/etc/maradns
    $(INSTALL_DATA) ./files/dwood3rc $(1)/etc/maradns/dwood3rc
    $(INSTALL_DIR) $(1)/etc/init.d
    $(INSTALL_BIN) ./files/deadwood.init $(1)/etc/init.d/deadwood
    $(INSTALL_DIR) $(1)/usr/bin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/Deadwood $(1)/usr/bin/
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/duende $(1)/usr/bin/
    endef

    $(eval $(call BuildPackage,deadwood))
    LazyZhu
        6
    LazyZhu  
       2015-01-29 18:28:02 +08:00
    @debiansid
    PKG_USE_MIPS16:=0
    试试添加这条后编译,
    另外deadwood依赖librt, 参考我的Makefile
    debiansid
        7
    debiansid  
    OP
       2015-01-29 19:02:29 +08:00
    @LazyZhu duende-ng 的Makefile 给一个吧,我的是eglibc,不能直接用ipk。谢谢
    LazyZhu
        8
    LazyZhu  
       2015-01-29 19:15:23 +08:00
    @debiansid 好了
    debiansid
        9
    debiansid  
    OP
       2015-01-29 19:30:50 +08:00 via iPhone
    @LazyZhu 感谢… 还有我想在4300跑powerdns 的recursor 作者说uclibc 不支持*context 只能换eglibc 才能编译。现在主流都是uclibc 换了软件都要自己编译,有啥方案不?
    LazyZhu
        10
    LazyZhu  
       2015-01-29 19:43:28 +08:00
    不知道powerdns要啥context, 搜索"uClibc context patch", openwrt 工具链自己打补丁哦
    debiansid
        11
    debiansid  
    OP
       2015-01-29 21:19:08 +08:00
    @LazyZhu root@YesRouter:/etc/maradns# *** Error in `Deadwood': double free or corruption (out): 0x004cf1f0 ***
    eglibc 下不稳定貌似。你的ublibc下面正常不
    debiansid
        12
    debiansid  
    OP
       2015-01-29 21:23:38 +08:00
    debiansid
        13
    debiansid  
    OP
       2015-01-30 11:48:20 +08:00
    @LazyZhu http://git.uclibc.org/uClibc/commit/?id=a8dc90eaaa5e6474beac828558d969b1aafee4af
    我找到了这个包,不知道怎么在buildroot里面替换原来的uclibc
    debiansid
        14
    debiansid  
    OP
       2015-01-30 12:50:50 +08:00
    替换bz2,编译失败,现在想打补丁,不知道应该在哪个阶段打
    debiansid
        15
    debiansid  
    OP
       2015-02-02 23:39:26 +08:00 via iPhone
    @LazyZhu 折腾两天搞好了 ipk
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3001 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:26 PVG 21:26 LAX 05:26 JFK 08:26
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86