feat: add Print Server feed target (printserver/hikerx9)

- Target System: Print Server
- Subtarget: Hiker X9
- Profiles: Hiker X9 mini, Hiker X9 Print Server, Hiker X9 Print Server with wifi
- Move dts/image from ramips to target/linux/printserver/
- Update README for printserver/hikerx9

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Super User
2026-02-12 06:58:08 -05:00
parent 957dd9862b
commit 4cfebe1603
10 changed files with 319 additions and 19 deletions

View File

@@ -1,2 +1,53 @@
# Openwrt_HikerX9
Hiker X9 (RT5350) 的 OpenWrt 设备定义与 **feed target**,可供主树通过 `scripts/feeds` 安装后在 menuconfig 中选择。
## 目录结构
- **target/linux/ramips/**
供主树 ramips 直接 include 的片段image/hiker.mk、dts也可继续被主树 rt305x 引用。
- **target/linux/printserver/**
完整的 feed target`scripts/feeds` 扫描与安装:
- `Makefile`:含 `BuildTarget`,扫描后得到 `TARGET: printserver/hikerx9`
- `hikerx9/`subtarget 目录target.mk、config-6.12
- `image/`Makefile + hiker.mkDevice 定义)
- `dts/`rt5350_hiker_x9*.dts / dtsi
## 在 Customize-OpenWRT 中使用
### 方式一:用本地目录当 targets feed推荐便于改本仓库
1.**openwrt/feeds.conf.default** 里用 `src-link` 指向本目录(与 openwrt 同层时):
```text
src-link targets ../Openwrt_HikerX9
```
若本目录在别处,改为对应相对路径或绝对路径。
2. 在仓库根执行:
```bash
./feeds.sh clean
./feeds.sh
```
或手动:
```bash
cd openwrt
./scripts/feeds uninstall -a && rm -rf tmp/*
./scripts/feeds update targets
./scripts/feeds list -r targets # 应看到 TARGET: printserver/hikerx9
./scripts/feeds install -p targets -f printserver/hikerx9
```
3. `make menuconfig` 里在 Target System 选 Print ServerSubtarget 选 Hiker X9再选具体 ProfileHiker X9 mini / Print Server / Print Server with wifi
### 方式二:用远程 Git 当 targets feed
保持 `feeds.conf.default` 中的:
```text
src-git targets https://git.jackadam.top/jack/Openwrt_HikerX9.git
```
将本仓库(含 target/linux/printserver/ 等)推送到该地址后,在 openwrt 里执行上述 `feeds update` / `install -f printserver/hikerx9` 即可。
## DTS 说明
`printserver/dts/` 下的 `rt5350_hiker_x9.dtsi` 会 `#include "rt5350.dtsi"`。编译时内核需能找到主树 ramips 的 `rt5350.dtsi`(主树一般会把 ramips dts 目录加入搜索路径)。若仅用本 feed 而主树未带 ramips需自行保证 `rt5350.dtsi` 在 dts 搜索路径中。

View File

@@ -0,0 +1,21 @@
# SPDX-License-Identifier: GPL-2.0-only
# Print Server as feed target (RT5350 / ramips rt305x compatible)
# scripts/feeds 扫描此 Makefile 后会产生 TARGET: printserver/hikerx9
include $(TOPDIR)/rules.mk
ARCH:=mipsel
BOARD:=printserver
BOARDNAME:=Print Server
SUBTARGETS:=hikerx9
FEATURES:=squashfs gpio usb ramdisk small_flash
KERNEL_PATCHVER:=6.12
define Target/Description
Build firmware for Print Server devices (Hiker X9 RT5350).
endef
include $(INCLUDE_DIR)/target.mk
DEFAULT_PACKAGES += kmod-leds-gpio kmod-gpio-button-hotplug
$(eval $(call BuildTarget))

View File

@@ -0,0 +1,207 @@
CONFIG_ARCH_32BIT_OFF_T=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_KEEP_MEMBLOCK=y
CONFIG_ARCH_MMAP_RND_BITS_MAX=15
CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_CEVT_R4K=y
CONFIG_CEVT_SYSTICK_QUIRK=y
CONFIG_CLKSRC_MMIO=y
CONFIG_CLK_MTMIPS=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
CONFIG_CMDLINE_BOOL=y
# CONFIG_CMDLINE_OVERRIDE is not set
CONFIG_COMMON_CLK=y
CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
CONFIG_COMPAT_32BIT_TIME=y
CONFIG_CPU_GENERIC_DUMP_TLB=y
CONFIG_CPU_HAS_DIEI=y
CONFIG_CPU_HAS_PREFETCH=y
CONFIG_CPU_HAS_RIXI=y
CONFIG_CPU_HAS_SYNC=y
CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_CPU_MIPS32=y
CONFIG_CPU_MIPS32_R2=y
CONFIG_CPU_MIPSR2=y
CONFIG_CPU_MITIGATIONS=y
CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y
CONFIG_CPU_R4K_CACHE_TLB=y
CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
CONFIG_CPU_SUPPORTS_HIGHMEM=y
CONFIG_CPU_SUPPORTS_MSA=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
CONFIG_CRYPTO_LIB_GF128MUL=y
CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2
CONFIG_CRYPTO_LIB_SHA1=y
CONFIG_CRYPTO_LIB_UTILS=y
CONFIG_CSRC_R4K=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_PINCTRL=y
CONFIG_DMA_NEED_SYNC=y
CONFIG_DMA_NONCOHERENT=y
# CONFIG_DTB_RT305X_EVAL is not set
CONFIG_DTB_RT_NONE=y
CONFIG_DTC=y
CONFIG_EARLY_PRINTK=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
CONFIG_FIXED_PHY=y
CONFIG_FORCE_NR_CPUS=y
CONFIG_FS_IOMAP=y
CONFIG_FUNCTION_ALIGNMENT=0
CONFIG_FWNODE_MDIO=y
CONFIG_FW_LOADER_PAGED_BUF=y
CONFIG_FW_LOADER_SYSFS=y
CONFIG_GENERIC_ATOMIC64=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_CPU_AUTOPROBE=y
CONFIG_GENERIC_GETTIMEOFDAY=y
CONFIG_GENERIC_IDLE_POLL_SETUP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IRQ_CHIP=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_LIB_ASHLDI3=y
CONFIG_GENERIC_LIB_ASHRDI3=y
CONFIG_GENERIC_LIB_CMPDI2=y
CONFIG_GENERIC_LIB_LSHRDI3=y
CONFIG_GENERIC_LIB_UCMPDI2=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_PHY=y
CONFIG_GENERIC_PINCONF=y
CONFIG_GENERIC_SCHED_CLOCK=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_GENERIC_TIME_VSYSCALL=y
CONFIG_GLOB=y
CONFIG_GPIOLIB_IRQCHIP=y
CONFIG_GPIO_CDEV=y
CONFIG_GPIO_GENERIC=y
CONFIG_GPIO_RALINK=y
CONFIG_GPIO_WATCHDOG=y
# CONFIG_GPIO_WATCHDOG_ARCH_INITCALL is not set
CONFIG_HARDWARE_WATCHPOINTS=y
CONFIG_HAS_DMA=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HZ_PERIODIC=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_IRQCHIP=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_IRQ_INTC=y
CONFIG_IRQ_MIPS_CPU=y
CONFIG_IRQ_WORK=y
CONFIG_LIBFDT=y
CONFIG_LOCK_DEBUGGING_SUPPORT=y
CONFIG_MDIO_BUS=y
CONFIG_MDIO_DEVICE=y
CONFIG_MDIO_DEVRES=y
CONFIG_MFD_SYSCON=y
CONFIG_MIGRATION=y
CONFIG_MIPS=y
CONFIG_MIPS_ASID_BITS=8
CONFIG_MIPS_ASID_SHIFT=0
CONFIG_MIPS_CLOCK_VSYSCALL=y
# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set
# CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set
CONFIG_MIPS_CMDLINE_FROM_DTB=y
CONFIG_MIPS_L1_CACHE_SHIFT=5
# CONFIG_MIPS_NO_APPENDED_DTB is not set
CONFIG_MIPS_RAW_APPENDED_DTB=y
CONFIG_MIPS_SPRAM=y
CONFIG_MMU_LAZY_TLB_REFCOUNT=y
CONFIG_MODULES_USE_ELF_REL=y
# CONFIG_MTD_CFI_INTELEXT is not set
CONFIG_MTD_CMDLINE_PARTS=y
CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_SPI_NOR_USE_VARIABLE_ERASE=y
CONFIG_MTD_SPLIT_JIMAGE_FW=y
CONFIG_MTD_SPLIT_SEAMA_FW=y
CONFIG_MTD_SPLIT_UIMAGE_FW=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_NET_EGRESS=y
CONFIG_NET_INGRESS=y
CONFIG_NET_RALINK_ESW_RT3050=y
CONFIG_NET_RALINK_RT3050=y
CONFIG_NET_RALINK_SOC=y
CONFIG_NET_SELFTESTS=y
# CONFIG_NET_SWITCHDEV is not set
CONFIG_NET_VENDOR_RALINK=y
CONFIG_NET_XGRESS=y
CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
CONFIG_NVMEM=y
CONFIG_NVMEM_LAYOUTS=y
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_EARLY_FLATTREE=y
CONFIG_OF_FLATTREE=y
CONFIG_OF_GPIO=y
CONFIG_OF_IRQ=y
CONFIG_OF_KOBJ=y
CONFIG_OF_MDIO=y
CONFIG_PAGE_POOL=y
CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
CONFIG_PCI_DRIVERS_LEGACY=y
CONFIG_PERF_USE_VMALLOC=y
CONFIG_PGTABLE_LEVELS=2
CONFIG_PHYLIB=y
CONFIG_PHYLIB_LEDS=y
# CONFIG_PHY_MT7621_PCI is not set
CONFIG_PHY_RALINK_USB=y
CONFIG_PINCTRL=y
# CONFIG_PINCTRL_AW9523 is not set
CONFIG_PINCTRL_MTK_MTMIPS=y
CONFIG_PINCTRL_RT305X=y
# CONFIG_PINCTRL_SINGLE is not set
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
CONFIG_RALINK=y
# CONFIG_RALINK_ILL_ACC is not set
CONFIG_RALINK_TIMER=y
CONFIG_RALINK_WDT=y
CONFIG_RANDSTRUCT_NONE=y
CONFIG_RATIONAL=y
CONFIG_REGMAP=y
CONFIG_REGMAP_MMIO=y
CONFIG_RESET_CONTROLLER=y
CONFIG_SERIAL_8250_RT288X=y
CONFIG_SERIAL_MCTRL_GPIO=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SOC_BUS=y
# CONFIG_SOC_MT7620 is not set
# CONFIG_SOC_MT7621 is not set
# CONFIG_SOC_RT288X is not set
CONFIG_SOC_RT305X=y
# CONFIG_SOC_RT3883 is not set
CONFIG_SPI=y
CONFIG_SPI_MASTER=y
CONFIG_SPI_MEM=y
# CONFIG_SPI_MT7621 is not set
CONFIG_SPI_RT2880=y
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set
CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y
CONFIG_SQUASHFS_DECOMP_SINGLE=y
CONFIG_SWCONFIG=y
CONFIG_SWPHY=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_SYS_HAS_CPU_MIPS32_R2=y
CONFIG_SYS_HAS_EARLY_PRINTK=y
CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
CONFIG_SYS_SUPPORTS_MIPS16=y
CONFIG_SYS_SUPPORTS_ZBOOT=y
CONFIG_TARGET_ISA_REV=2
CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_TIMER_OF=y
CONFIG_TIMER_PROBE=y
CONFIG_TINY_SRCU=y
CONFIG_USB_SUPPORT=y
CONFIG_USE_OF=y
CONFIG_WATCHDOG_CORE=y
CONFIG_ZBOOT_LOAD_ADDRESS=0x0

View File

@@ -0,0 +1,14 @@
#
# Print Server / Hiker X9 subtarget
#
SUBTARGET:=hikerx9
BOARDNAME:=Hiker X9
FEATURES+=usb ramdisk small_flash
CPU_TYPE:=24kc
DEFAULT_PACKAGES += kmod-rt2800-soc wpad-basic-mbedtls swconfig
define Target/Description
Build firmware images for Hiker X9 (RT5350) based Print Server boards.
endef

View File

@@ -0,0 +1,8 @@
# 复用主树 ramips/rt305x 镜像规则,并加入本目录下的 Hiker/PrintServer Device 定义
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
include $(TOPDIR)/target/linux/ramips/image/Makefile
include $(TOPDIR)/target/linux/ramips/image/rt305x.mk
include $(CURDIR)/hiker.mk

View File

@@ -1,39 +1,37 @@
# Hiker RT5350 Device Profiles
# Include this file in target/linux/ramips/image/rt305x.mk
# Print Server / Hiker X9 Device Profiles
# Common configuration for all Hiker profiles
define Device/hiker_hiker-common
define Device/printserver_common
SOC := rt5350
IMAGE_SIZE := 7872k
DEVICE_VENDOR := Hiker
endef
# Profile 1: Minimal (基础版)
define Device/hiker_x9-minimal
$(call Device/hiker_hiker-common)
DEVICE_MODEL := Hiker X9 Minimal
# Profile 1: Hiker X9 mini
define Device/printserver_hiker_x9_mini
$(call Device/printserver_common)
DEVICE_MODEL := Hiker X9 mini
SUPPORTED_DEVICES := hiker,x9-minimal hiker,x9 HIKER
DEVICE_PACKAGES := luci-light luci-theme-bootstrap \
luci-i18n-base-zh-cn
endef
TARGET_DEVICES += hiker_x9-minimal
TARGET_DEVICES += printserver_hiker_x9_mini
# Profile 2: P910ND (打印服务器) ⭐ 推荐
define Device/hiker_x9-p910nd
$(call Device/hiker_hiker-common)
DEVICE_MODEL := Hiker X9 Print
# Profile 2: Hiker X9 Print Server
define Device/printserver_hiker_x9_print
$(call Device/printserver_common)
DEVICE_MODEL := Hiker X9 Print Server
SUPPORTED_DEVICES := hiker,x9-print hiker,x9 HIKER
DEVICE_PACKAGES := luci-light luci-theme-bootstrap \
luci-i18n-base-zh-cn \
p910nd luci-app-p910nd luci-i18n-p910nd-zh-cn \
kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-usb-printer
endef
TARGET_DEVICES += hiker_x9-p910nd
TARGET_DEVICES += printserver_hiker_x9_print
# Profile 3: Full WiFi (打印+完整WiFi)
define Device/hiker_x9-full
$(call Device/hiker_hiker-common)
DEVICE_MODEL := Hiker X9 Full
# Profile 3: Hiker X9 Print Server with wifi
define Device/printserver_hiker_x9_full
$(call Device/printserver_common)
DEVICE_MODEL := Hiker X9 Print Server with wifi
SUPPORTED_DEVICES := hiker,x9-full hiker,x9 HIKER
DEVICE_PACKAGES := luci-light luci-theme-bootstrap \
luci-i18n-base-zh-cn \
@@ -43,4 +41,5 @@ define Device/hiker_x9-full
kmod-rt2x00-lib kmod-rt2x00-mmio \
wpad-mbedtls iw iwinfo
endef
TARGET_DEVICES += hiker_x9-full
TARGET_DEVICES += printserver_hiker_x9_full