You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenWrt编译telnetd-ssl包提示已最新却未编译问题求助

问题

已执行以下操作:

  1. 下载SDK与工具链:
wget https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/openwrt-sdk-lantiq-xrx200_gcc-13.3.0_musl.Linux-x86_64.tar.zst
wget https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/openwrt-toolchain-lantiq-xrx200_gcc-13.3.0_musl.Linux-x86_64.tar.zst
  1. 校验文件安全性:
wget https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/sha256sums
wget https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/sha256sums.asc
gpg -v *asc
sha256sum -c --ignore-missing sha256sums
  1. 解压SDK与工具链:
tar -xvf openwrt-sdk-lantiq-xrx200_gcc-13.3.0_musl.Linux-x86_64.tar.zst
tar -xvf openwrt-toolchain-lantiq-xrx200_gcc-13.3.0_musl.Linux-x86_64.tar.zst
  1. 创建telnetd-ssl包及Makefile:
cd package
mkdir telnetd-ssl
vim Makefile

Makefile内容如下:

# $Id: Makefile 1146 2005-06-05 13:32:28Z nbd $

include $(TOPDIR)/rules.mk

PKG_NAME:=telnetd-ssl
PKG_VERSION:=0.17.41
PKG_RELEASE:=1
PKG_MD5SUM:=3063643c5d200b863cf3a794c22325aa

PKG_SOURCE_URL:=https://packages.debian.org/sid/telnetd-ssl
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_CAT:=zcat

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

include $(INCLUDE_DIR)/package.mk

define Package/telnetd-ssl
  SECTION:=net
  CATEGORY:=Network
  TITLE:=The in.telnetd program is a server that handles the Defense Advanced Research Project Agency (DARPA) interactive telnet communication protocol.
  SSL telnetd replaces the regular telnetd by using SSL authentication and encryption. It works in conjunction with the regular telnetd in both directions. It checks whether the other side also uses SSL, if not it falls back to the regular telnet protocol.
  URL:=https://packages.debian.org/sid/telnetd-ssl
  DEPENDS:=libopenssl3
endef

define Build/Configure
    $(call Build/Configure/Default,--without-pth-test --with-pth=$(STAGING_DIR),\
                        CXXFLAGS="$(TARGET_CFLAGS) -fno-builtin -nostdinc++" \
                        CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \
                        LDFLAGS="-nodefaultlibs -L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib -luClibc++ -lc -lm -lgcc")
endef

define Build/Compile
    $(call Build/Compile/Default)
endef

define Package/telnetd-ssl/install
    mkdir -p $(1)/usr/bin
    $(CP) $(PKG_BUILD_DIR)/src/telnetd-ssl $(1)/usr/bin/
endef

$(eval $(call BuildPackage,telnetd-ssl))

执行编译命令make V=99 package/telnetd-ssl时,系统提示make: 'package/telnetd-ssl' is up to date.,但并未实际执行编译操作,这是什么原因?

原因分析与解决办法

1. 构建系统判定目标已完成

OpenWrt的构建系统会检查包的构建状态,若$(BUILD_DIR)/telnetd-ssl-0.17.41目录存在且构建标记文件已生成,Make就会认为目标已经更新完成,跳过编译流程。

解决办法:
强制清理包的构建状态后重新编译:

make package/telnetd-ssl/clean V=99 && make package/telnetd-ssl V=99

2. 版本号未触发重新构建

如果之前尝试过构建,且未修改PKG_RELEASE版本号,构建系统会认为包版本没有变化,无需重新编译。当前你的PKG_RELEASE设为1,系统会判定版本未更新。

解决办法:
修改Makefile中的PKG_RELEASE:=1为PKG_RELEASE:=2,再执行编译命令,构建系统会识别到版本变更,触发重新编译。

3. 源码包存在但构建不完整

构建系统会先检查dl/目录下的源码包,若包已存在且校验值匹配,会跳过下载步骤;如果之前的构建中途中断,可能残留构建标记文件,让Make误以为已完成编译。

解决办法:
删除源码包并清理构建目录后重新编译:

rm -f dl/telnetd-ssl-0.17.41.tar.gz
make package/telnetd-ssl/clean V=99 && make package/telnetd-ssl V=99

内容的提问来源于stack exchange,提问作者elbarna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:10:01