diff --git a/README.md b/README.md index 284e643..0f7f6af 100644 --- a/README.md +++ b/README.md @@ -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.mk(Device 定义) + - `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 Server,Subtarget 选 Hiker X9,再选具体 Profile(Hiker 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 搜索路径中。 diff --git a/target/linux/printserver/Makefile b/target/linux/printserver/Makefile new file mode 100644 index 0000000..d6bb31a --- /dev/null +++ b/target/linux/printserver/Makefile @@ -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)) + diff --git a/target/linux/ramips/dts/rt5350_hiker_x9-full-wifi.dts b/target/linux/printserver/dts/rt5350_hiker_x9-full-wifi.dts similarity index 100% rename from target/linux/ramips/dts/rt5350_hiker_x9-full-wifi.dts rename to target/linux/printserver/dts/rt5350_hiker_x9-full-wifi.dts diff --git a/target/linux/ramips/dts/rt5350_hiker_x9-minimal.dts b/target/linux/printserver/dts/rt5350_hiker_x9-minimal.dts similarity index 100% rename from target/linux/ramips/dts/rt5350_hiker_x9-minimal.dts rename to target/linux/printserver/dts/rt5350_hiker_x9-minimal.dts diff --git a/target/linux/ramips/dts/rt5350_hiker_x9-p910nd.dts b/target/linux/printserver/dts/rt5350_hiker_x9-p910nd.dts similarity index 100% rename from target/linux/ramips/dts/rt5350_hiker_x9-p910nd.dts rename to target/linux/printserver/dts/rt5350_hiker_x9-p910nd.dts diff --git a/target/linux/ramips/dts/rt5350_hiker_x9.dtsi b/target/linux/printserver/dts/rt5350_hiker_x9.dtsi similarity index 100% rename from target/linux/ramips/dts/rt5350_hiker_x9.dtsi rename to target/linux/printserver/dts/rt5350_hiker_x9.dtsi diff --git a/target/linux/printserver/hikerx9/config-6.12 b/target/linux/printserver/hikerx9/config-6.12 new file mode 100644 index 0000000..83a6d23 --- /dev/null +++ b/target/linux/printserver/hikerx9/config-6.12 @@ -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 + diff --git a/target/linux/printserver/hikerx9/target.mk b/target/linux/printserver/hikerx9/target.mk new file mode 100644 index 0000000..2751dcd --- /dev/null +++ b/target/linux/printserver/hikerx9/target.mk @@ -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 + diff --git a/target/linux/printserver/image/Makefile b/target/linux/printserver/image/Makefile new file mode 100644 index 0000000..17e5405 --- /dev/null +++ b/target/linux/printserver/image/Makefile @@ -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 + diff --git a/target/linux/ramips/image/hiker.mk b/target/linux/printserver/image/hiker.mk similarity index 55% rename from target/linux/ramips/image/hiker.mk rename to target/linux/printserver/image/hiker.mk index 464784c..9b43c28 100644 --- a/target/linux/ramips/image/hiker.mk +++ b/target/linux/printserver/image/hiker.mk @@ -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 +