diff --git a/package/boot/uboot-rockchip/Makefile b/package/boot/uboot-rockchip/Makefile index 625367983..beb76d936 100644 --- a/package/boot/uboot-rockchip/Makefile +++ b/package/boot/uboot-rockchip/Makefile @@ -35,6 +35,17 @@ define U-Boot/nanopi-r2s-rk3328 OF_PLATDATA:=$(1) endef +define U-Boot/orangepi-r1-plus-rk3328 + BUILD_SUBTARGET:=armv8 + NAME:=Orange Pi R1 Plus + BUILD_DEVICES:= \ + xunlong_orangepi-r1-plus + DEPENDS:=+PACKAGE_u-boot-orangepi-r1-plus-rk3328:arm-trusted-firmware-rockchip + PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip + ATF:=rk3328_bl31.elf + OF_PLATDATA:=$(1) +endef + # RK3399 boards @@ -72,7 +83,8 @@ UBOOT_TARGETS := \ nanopi-r4s-rk3399 \ rock-pi-4-rk3399 \ rockpro64-rk3399 \ - nanopi-r2s-rk3328 + nanopi-r2s-rk3328 \ + orangepi-r1-plus-rk3328 UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes diff --git a/package/boot/uboot-rockchip/patches/103-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus.patch b/package/boot/uboot-rockchip/patches/103-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus.patch new file mode 100644 index 000000000..0893a3fd5 --- /dev/null +++ b/package/boot/uboot-rockchip/patches/103-rockchip-rk3328-Add-support-for-Orangepi-R1-Plus.patch @@ -0,0 +1,173 @@ +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -111,6 +111,7 @@ dtb-$(CONFIG_ROCKCHIP_RK3308) += \ + dtb-$(CONFIG_ROCKCHIP_RK3328) += \ + rk3328-evb.dtb \ + rk3328-nanopi-r2s.dtb \ ++ rk3328-orangepi-r1-plus.dtb \ + rk3328-roc-cc.dtb \ + rk3328-rock64.dtb \ + rk3328-rock-pi-e.dtb +--- /dev/null ++++ b/arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi +@@ -0,0 +1,1 @@ ++#include "rk3328-nanopi-r2s-u-boot.dtsi" +--- /dev/null ++++ b/arch/arm/dts/rk3328-orangepi-r1-plus.dts +@@ -0,0 +1,39 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++#include "rk3328-nanopi-r2s.dts" ++ ++/ { ++ model = "Xunlong Orange Pi R1 PLUS"; ++ compatible = "xunlong,orangepi-r1-plus", "rockchip,rk3328"; ++}; ++ ++&lan_led { ++ label = "orangepi-r1-plus:green:lan"; ++}; ++ ++&spi0 { ++ max-freq = <48000000>; ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <10000000>; ++ }; ++}; ++ ++&sys_led { ++ gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; ++ label = "orangepi-r1-plus:red:sys"; ++}; ++ ++&sys_led_pin { ++ rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; ++}; ++ ++&uart1 { ++ status = "okay"; ++}; ++ ++&wan_led { ++ label = "orangepi-r1-plus:green:wan"; ++}; +--- a/board/rockchip/evb_rk3328/MAINTAINERS ++++ b/board/rockchip/evb_rk3328/MAINTAINERS +@@ -12,6 +12,13 @@ F: configs/nanopi-r2s-rk3328_defconfig + F: arch/arm/dts/rk3328-nanopi-r2s-u-boot.dtsi + F: arch/arm/dts/rk3328-nanopi-r2s.dts + ++ORANGEPI-R1-PLUS-RK3328 ++M: Shenzhen Xunlong Software CO.,Limited ++S: Maintained ++F: configs/orangepi-r1-plus-rk3328_defconfig ++F: arch/arm/dts/rk3328-orangepi-r1-plus-u-boot.dtsi ++F: arch/arm/dts/rk3328-orangepi-r1-plus.dts ++ + ROC-RK3328-CC + M: Loic Devulder + M: Chen-Yu Tsai +--- /dev/null ++++ b/configs/orangepi-r1-plus-rk3328_defconfig +@@ -0,0 +1,98 @@ ++CONFIG_ARM=y ++CONFIG_ARCH_ROCKCHIP=y ++CONFIG_SYS_TEXT_BASE=0x00200000 ++CONFIG_SPL_GPIO_SUPPORT=y ++CONFIG_ENV_OFFSET=0x3F8000 ++CONFIG_ROCKCHIP_RK3328=y ++CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y ++CONFIG_TPL_LIBCOMMON_SUPPORT=y ++CONFIG_TPL_LIBGENERIC_SUPPORT=y ++CONFIG_SPL_DRIVERS_MISC_SUPPORT=y ++CONFIG_SPL_STACK_R_ADDR=0x600000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEBUG_UART_BASE=0xFF130000 ++CONFIG_DEBUG_UART_CLOCK=24000000 ++CONFIG_SYSINFO=y ++CONFIG_DEBUG_UART=y ++CONFIG_TPL_SYS_MALLOC_F_LEN=0x800 ++# CONFIG_ANDROID_BOOT_IMAGE is not set ++CONFIG_FIT=y ++CONFIG_FIT_VERBOSE=y ++CONFIG_SPL_LOAD_FIT=y ++CONFIG_DEFAULT_FDT_FILE="rockchip/rk3328-orangepi-r1-plus.dtb" ++CONFIG_MISC_INIT_R=y ++# CONFIG_DISPLAY_CPUINFO is not set ++CONFIG_DISPLAY_BOARDINFO_LATE=y ++# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set ++CONFIG_TPL_SYS_MALLOC_SIMPLE=y ++CONFIG_SPL_STACK_R=y ++CONFIG_SPL_I2C_SUPPORT=y ++CONFIG_SPL_POWER_SUPPORT=y ++CONFIG_SPL_ATF=y ++CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y ++CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_USB=y ++# CONFIG_CMD_SETEXPR is not set ++CONFIG_CMD_TIME=y ++CONFIG_SPL_OF_CONTROL=y ++CONFIG_TPL_OF_CONTROL=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3328-orangepi-r1-plus" ++CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" ++CONFIG_TPL_OF_PLATDATA=y ++CONFIG_ENV_IS_IN_MMC=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_TPL_DM=y ++CONFIG_REGMAP=y ++CONFIG_SPL_REGMAP=y ++CONFIG_TPL_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SPL_SYSCON=y ++CONFIG_TPL_SYSCON=y ++CONFIG_CLK=y ++CONFIG_SPL_CLK=y ++CONFIG_FASTBOOT_BUF_ADDR=0x800800 ++CONFIG_FASTBOOT_CMD_OEM_FORMAT=y ++CONFIG_ROCKCHIP_GPIO=y ++CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_MMC_DW=y ++CONFIG_MMC_DW_ROCKCHIP=y ++CONFIG_SF_DEFAULT_SPEED=20000000 ++CONFIG_DM_ETH=y ++CONFIG_ETH_DESIGNWARE=y ++CONFIG_GMAC_ROCKCHIP=y ++CONFIG_PINCTRL=y ++CONFIG_SPL_PINCTRL=y ++CONFIG_DM_PMIC=y ++CONFIG_PMIC_RK8XX=y ++CONFIG_SPL_DM_REGULATOR=y ++CONFIG_REGULATOR_PWM=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_SPL_DM_REGULATOR_FIXED=y ++CONFIG_REGULATOR_RK8XX=y ++CONFIG_PWM_ROCKCHIP=y ++CONFIG_RAM=y ++CONFIG_SPL_RAM=y ++CONFIG_TPL_RAM=y ++CONFIG_DM_RESET=y ++CONFIG_BAUDRATE=1500000 ++CONFIG_DEBUG_UART_SHIFT=2 ++CONFIG_SYSRESET=y ++# CONFIG_TPL_SYSRESET is not set ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_DWC3=y ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_EHCI_GENERIC=y ++CONFIG_USB_OHCI_HCD=y ++CONFIG_USB_OHCI_GENERIC=y ++CONFIG_USB_DWC2=y ++CONFIG_USB_DWC3=y ++# CONFIG_USB_DWC3_GADGET is not set ++CONFIG_USB_GADGET=y ++CONFIG_USB_GADGET_DWC2_OTG=y ++CONFIG_SPL_TINY_MEMSET=y ++CONFIG_TPL_TINY_MEMSET=y ++CONFIG_ERRNO_STR=y diff --git a/package/boot/uboot-rockchip/src/of-platdata/orangepi-r1-plus-rk3328/dt-platdata.c b/package/boot/uboot-rockchip/src/of-platdata/orangepi-r1-plus-rk3328/dt-platdata.c new file mode 100644 index 000000000..17e1e302a --- /dev/null +++ b/package/boot/uboot-rockchip/src/of-platdata/orangepi-r1-plus-rk3328/dt-platdata.c @@ -0,0 +1,174 @@ +/* + * DO NOT MODIFY + * + * This file was generated by dtoc from a .dtb (device tree binary) file. + */ + +/* Allow use of U_BOOT_DEVICE() in this file */ +#define DT_PLATDATA_C + +#include +#include +#include + +/* Node /clock-controller@ff440000 index 0 */ +static struct dtd_rockchip_rk3328_cru dtv_clock_controller_at_ff440000 = { + .reg = {0xff440000, 0x1000}, + .rockchip_grf = 0x3a, +}; +U_BOOT_DEVICE(clock_controller_at_ff440000) = { + .name = "rockchip_rk3328_cru", + .platdata = &dtv_clock_controller_at_ff440000, + .platdata_size = sizeof(dtv_clock_controller_at_ff440000), + .parent_idx = -1, +}; + +/* Node /dmc index 1 */ +static struct dtd_rockchip_rk3328_dmc dtv_dmc = { + .reg = {0xff400000, 0x1000, 0xff780000, 0x3000, 0xff100000, 0x1000, 0xff440000, 0x1000, + 0xff720000, 0x1000, 0xff798000, 0x1000}, + .rockchip_sdram_params = {0x1, 0xa, 0x2, 0x1, 0x0, 0x0, 0x11, 0x0, + 0x11, 0x0, 0x0, 0x94291288, 0x0, 0x27, 0x462, 0x15, + 0x242, 0xff, 0x14d, 0x0, 0x1, 0x0, 0x0, 0x0, + 0x43049010, 0x64, 0x28003b, 0xd0, 0x20053, 0xd4, 0x220000, 0xd8, + 0x100, 0xdc, 0x40000, 0xe0, 0x0, 0xe4, 0x110000, 0xe8, + 0x420, 0xec, 0x400, 0xf4, 0xf011f, 0x100, 0x9060b06, 0x104, + 0x20209, 0x108, 0x505040a, 0x10c, 0x40400c, 0x110, 0x5030206, 0x114, + 0x3030202, 0x120, 0x3030b03, 0x124, 0x20208, 0x180, 0x1000040, 0x184, + 0x0, 0x190, 0x7030003, 0x198, 0x5001100, 0x1a0, 0xc0400003, 0x240, + 0x6000604, 0x244, 0x201, 0x250, 0xf00, 0x490, 0x1, 0xffffffff, + 0xffffffff, 0xffffffff, 0xffffffff, 0x4, 0xc, 0x28, 0xa, 0x2c, + 0x0, 0x30, 0x9, 0xffffffff, 0xffffffff, 0x77, 0x88, 0x79, + 0x79, 0x87, 0x97, 0x87, 0x78, 0x77, 0x78, 0x87, + 0x88, 0x87, 0x87, 0x77, 0x78, 0x78, 0x78, 0x78, + 0x78, 0x78, 0x78, 0x78, 0x78, 0x69, 0x9, 0x77, + 0x78, 0x77, 0x78, 0x77, 0x78, 0x77, 0x78, 0x77, + 0x79, 0x9, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, + 0x78, 0x78, 0x78, 0x69, 0x9, 0x77, 0x78, 0x77, + 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x79, 0x9, + 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, + 0x78, 0x69, 0x9, 0x77, 0x78, 0x77, 0x78, 0x77, + 0x78, 0x77, 0x78, 0x77, 0x79, 0x9, 0x78, 0x78, + 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x69, + 0x9, 0x77, 0x78, 0x77, 0x77, 0x77, 0x77, 0x77, + 0x77, 0x77, 0x79, 0x9}, +}; +U_BOOT_DEVICE(dmc) = { + .name = "rockchip_rk3328_dmc", + .platdata = &dtv_dmc, + .platdata_size = sizeof(dtv_dmc), + .parent_idx = -1, +}; + +/* Node /pinctrl/gpio0@ff210000 index 2 */ +static struct dtd_rockchip_gpio_bank dtv_gpio0_at_ff210000 = { + .clocks = { + {0, {200}},}, + .gpio_controller = true, + .interrupt_controller = true, + .interrupts = {0x0, 0x33, 0x4}, + .reg = {0xff210000, 0x100}, +}; +U_BOOT_DEVICE(gpio0_at_ff210000) = { + .name = "rockchip_gpio_bank", + .platdata = &dtv_gpio0_at_ff210000, + .platdata_size = sizeof(dtv_gpio0_at_ff210000), + .parent_idx = 4, +}; + +/* Node /mmc@ff500000 index 3 */ +static struct dtd_rockchip_rk3288_dw_mshc dtv_mmc_at_ff500000 = { + .bus_width = 0x4, + .cap_sd_highspeed = true, + .clocks = { + {0, {317}}, + {0, {33}}, + {0, {74}}, + {0, {78}},}, + .disable_wp = true, + .fifo_depth = 0x100, + .interrupts = {0x0, 0xc, 0x4}, + .max_frequency = 0x8f0d180, + .pinctrl_0 = {0x47, 0x48, 0x49, 0x4a}, + .pinctrl_names = "default", + .reg = {0xff500000, 0x4000}, + .sd_uhs_sdr104 = true, + .sd_uhs_sdr12 = true, + .sd_uhs_sdr25 = true, + .sd_uhs_sdr50 = true, + .u_boot_spl_fifo_mode = true, + .vmmc_supply = 0x4b, + .vqmmc_supply = 0x1e, +}; +U_BOOT_DEVICE(mmc_at_ff500000) = { + .name = "rockchip_rk3288_dw_mshc", + .platdata = &dtv_mmc_at_ff500000, + .platdata_size = sizeof(dtv_mmc_at_ff500000), + .parent_idx = -1, +}; + +/* Node /pinctrl index 4 */ +static struct dtd_rockchip_rk3328_pinctrl dtv_pinctrl = { + .ranges = true, + .rockchip_grf = 0x3a, +}; +U_BOOT_DEVICE(pinctrl) = { + .name = "rockchip_rk3328_pinctrl", + .platdata = &dtv_pinctrl, + .platdata_size = sizeof(dtv_pinctrl), + .parent_idx = -1, +}; + +/* Node /sdmmc-regulator index 5 */ +static struct dtd_regulator_fixed dtv_sdmmc_regulator = { + .gpio = {0x61, 0x1e, 0x1}, + .pinctrl_0 = 0x67, + .pinctrl_names = "default", + .regulator_boot_on = true, + .regulator_max_microvolt = 0x325aa0, + .regulator_min_microvolt = 0x325aa0, + .regulator_name = "vcc_sd", + .vin_supply = 0x1c, +}; +U_BOOT_DEVICE(sdmmc_regulator) = { + .name = "regulator_fixed", + .platdata = &dtv_sdmmc_regulator, + .platdata_size = sizeof(dtv_sdmmc_regulator), + .parent_idx = -1, +}; + +/* Node /serial@ff130000 index 6 */ +static struct dtd_ns16550_serial dtv_serial_at_ff130000 = { + .clock_frequency = 0x16e3600, + .clocks = { + {0, {40}}, + {0, {212}},}, + .dma_names = {"tx", "rx"}, + .dmas = {0x10, 0x6, 0x10, 0x7}, + .interrupts = {0x0, 0x39, 0x4}, + .pinctrl_0 = 0x26, + .pinctrl_names = "default", + .reg = {0xff130000, 0x100}, + .reg_io_width = 0x4, + .reg_shift = 0x2, +}; +U_BOOT_DEVICE(serial_at_ff130000) = { + .name = "ns16550_serial", + .platdata = &dtv_serial_at_ff130000, + .platdata_size = sizeof(dtv_serial_at_ff130000), + .parent_idx = -1, +}; + +/* Node /syscon@ff100000 index 7 */ +static struct dtd_rockchip_rk3328_grf dtv_syscon_at_ff100000 = { + .reg = {0xff100000, 0x1000}, +}; +U_BOOT_DEVICE(syscon_at_ff100000) = { + .name = "rockchip_rk3328_grf", + .platdata = &dtv_syscon_at_ff100000, + .platdata_size = sizeof(dtv_syscon_at_ff100000), + .parent_idx = -1, +}; + +void dm_populate_phandle_data(void) { +} diff --git a/package/boot/uboot-rockchip/src/of-platdata/orangepi-r1-plus-rk3328/dt-structs-gen.h b/package/boot/uboot-rockchip/src/of-platdata/orangepi-r1-plus-rk3328/dt-structs-gen.h new file mode 100644 index 000000000..847b121a3 --- /dev/null +++ b/package/boot/uboot-rockchip/src/of-platdata/orangepi-r1-plus-rk3328/dt-structs-gen.h @@ -0,0 +1,71 @@ +/* + * DO NOT MODIFY + * + * This file was generated by dtoc from a .dtb (device tree binary) file. + */ + +#include +#include +struct dtd_ns16550_serial { + fdt32_t clock_frequency; + struct phandle_1_arg clocks[2]; + const char * dma_names[2]; + fdt32_t dmas[4]; + fdt32_t interrupts[3]; + fdt32_t pinctrl_0; + const char * pinctrl_names; + fdt64_t reg[2]; + fdt32_t reg_io_width; + fdt32_t reg_shift; +}; +struct dtd_regulator_fixed { + fdt32_t gpio[3]; + fdt32_t pinctrl_0; + const char * pinctrl_names; + bool regulator_boot_on; + fdt32_t regulator_max_microvolt; + fdt32_t regulator_min_microvolt; + const char * regulator_name; + fdt32_t vin_supply; +}; +struct dtd_rockchip_gpio_bank { + struct phandle_1_arg clocks[1]; + bool gpio_controller; + bool interrupt_controller; + fdt32_t interrupts[3]; + fdt64_t reg[2]; +}; +struct dtd_rockchip_rk3288_dw_mshc { + fdt32_t bus_width; + bool cap_sd_highspeed; + struct phandle_1_arg clocks[4]; + bool disable_wp; + fdt32_t fifo_depth; + fdt32_t interrupts[3]; + fdt32_t max_frequency; + fdt32_t pinctrl_0[4]; + const char * pinctrl_names; + fdt64_t reg[2]; + bool sd_uhs_sdr104; + bool sd_uhs_sdr12; + bool sd_uhs_sdr25; + bool sd_uhs_sdr50; + bool u_boot_spl_fifo_mode; + fdt32_t vmmc_supply; + fdt32_t vqmmc_supply; +}; +struct dtd_rockchip_rk3328_cru { + fdt64_t reg[2]; + fdt32_t rockchip_grf; +}; +struct dtd_rockchip_rk3328_dmc { + fdt64_t reg[12]; + fdt32_t rockchip_sdram_params[196]; +}; +struct dtd_rockchip_rk3328_grf { + fdt64_t reg[2]; +}; +struct dtd_rockchip_rk3328_pinctrl { + bool ranges; + fdt32_t rockchip_grf; +}; diff --git a/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic b/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic index 9d7a11cfe..1df607f91 100755 --- a/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic +++ b/package/lean/luci-app-unblockmusic/root/etc/init.d/unblockmusic @@ -188,7 +188,7 @@ start() if [ $FLAC -eq 1 ]; then ENABLE_FLAC="-b " fi - UnblockNeteaseMusic $ENABLE_FLAC -p 5200 -sp 5201 -m 0 -c /usr/share/UnblockNeteaseMusicGo/server.crt -k /usr/share/UnblockNeteaseMusicGo/server.key -m 0 -e -sl ${SEARCHLIMIT} -l /tmp/unblockmusic.log & + UnblockNeteaseMusic $musictype $ENABLE_FLAC -p 5200 -sp 5201 -c /usr/share/UnblockNeteaseMusicGo/server.crt -k /usr/share/UnblockNeteaseMusicGo/server.key -m 0 -e -sl ${SEARCHLIMIT} -l /tmp/unblockmusic.log & echo "$(date -R) # UnblockNeteaseMusic Golang Version (http:5200, https:5201)" >>/tmp/unblockmusic.log else kill -9 $(busybox ps -w | grep 'sleep 60m' | grep -v grep | awk '{print $1}') >/dev/null 2>&1 diff --git a/package/lean/luci-app-xlnetacc/Makefile b/package/lean/luci-app-xlnetacc/Makefile index e54b589f5..317c30014 100644 --- a/package/lean/luci-app-xlnetacc/Makefile +++ b/package/lean/luci-app-xlnetacc/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-xlnetacc -PKG_VERSION:=1.0.3 -PKG_RELEASE:=9 +PKG_VERSION:=1.0.5 +PKG_RELEASE:=2 PKG_LICENSE:=GPLv2 PKG_MAINTAINER:=Sense diff --git a/package/lean/luci-app-xlnetacc/luasrc/model/cbi/xlnetacc.lua b/package/lean/luci-app-xlnetacc/luasrc/model/cbi/xlnetacc.lua index 9bef249ce..bdab81929 100644 --- a/package/lean/luci-app-xlnetacc/luasrc/model/cbi/xlnetacc.lua +++ b/package/lean/luci-app-xlnetacc/luasrc/model/cbi/xlnetacc.lua @@ -28,6 +28,21 @@ uci:foreach("network", "interface", function(section) end end) +o = s:option(Value, "keepalive", translate("Keepalive interval"), "5-60 " .. translate("minutes")) +for _, v in ipairs({5, 10, 20, 30, 60}) do + o:value(v, v .. " " .. translate("minutes")) +end +o.datatype = "range(5, 60)" +o.default = 10 + +o = s:option(Value, "relogin", translate("Account relogin"), "1-48 " .. translate("hours")) +o:value(0, translate("Not enabled")) +for _, v in ipairs({3, 12, 18, 24, 30}) do + o:value(v, v .. " " .. translate("hours")) +end +o.datatype = "max(48)" +o.default = 0 + o = s:option(Value, "account", translate("XLNetAcc account")) o = s:option(Value, "password", translate("XLNetAcc password")) diff --git a/package/lean/luci-app-xlnetacc/po/zh-cn/xlnetacc.po b/package/lean/luci-app-xlnetacc/po/zh-cn/xlnetacc.po index 80c6b9d23..5c61690da 100644 --- a/package/lean/luci-app-xlnetacc/po/zh-cn/xlnetacc.po +++ b/package/lean/luci-app-xlnetacc/po/zh-cn/xlnetacc.po @@ -55,6 +55,21 @@ msgstr "启用详细日志" msgid "Upgrade interface" msgstr "指定提速接口" +msgid "Keepalive interval" +msgstr "保持连接周期" + +msgid "Account relogin" +msgstr "帐号重新登录" + +msgid "Not enabled" +msgstr "未启用" + +msgid "minutes" +msgstr "分钟" + +msgid "hours" +msgstr "小时" + msgid "XLNetAcc account" msgstr "迅雷快鸟帐号" diff --git a/package/lean/luci-app-xlnetacc/root/usr/bin/xlnetacc.sh b/package/lean/luci-app-xlnetacc/root/usr/bin/xlnetacc.sh index 57fac717a..16c56684c 100755 --- a/package/lean/luci-app-xlnetacc/root/usr/bin/xlnetacc.sh +++ b/package/lean/luci-app-xlnetacc/root/usr/bin/xlnetacc.sh @@ -2,12 +2,12 @@ # 声明常量 readonly packageName='com.xunlei.vip.swjsq' -readonly protocolVersion=200 +readonly protocolVersion=300 readonly businessType=68 -readonly sdkVersion='2.1.1.177662' -readonly clientVersion='2.4.1.3' -readonly agent_xl="android-async-http/xl-acc-sdk/version-$sdkVersion" -readonly agent_down='okhttp/3.4.1' +readonly sdkVersion='3.1.2.185150' +readonly clientVersion='2.7.2.0' +readonly agent_xl="android-ok-http-client/xl-acc-sdk/version-$sdkVersion" +readonly agent_down='okhttp/3.9.1' readonly agent_up='android-async-http/xl-acc-sdk/version-1.0.0.1' readonly client_type_down='android-swjsq' readonly client_type_up='android-uplink' @@ -53,11 +53,9 @@ uci_get_by_bool() { # 日志和状态栏输出。1 日志文件, 2 系统日志, 4 详细模式, 8 下行状态栏, 16 上行状态栏, 32 失败状态 _log() { - local msg=$1 - local flag=$2 + local msg=$1 flag=$2 timestamp=$(date +'%Y/%m/%d %H:%M:%S') [ -z "$msg" ] && return [ -z "$flag" ] && flag=1 - local timestamp=$(date +'%Y/%m/%d %H:%M:%S') [ $logging -eq 0 -a $(( $flag & 1 )) -ne 0 ] && flag=$(( $flag ^ 1 )) if [ $verbose -eq 0 -a $(( $flag & 4 )) -ne 0 ]; then @@ -145,14 +143,16 @@ swjsq_json() { json_init json_add_string protocolVersion "$protocolVersion" json_add_string sequenceNo "$sequence_xl" - json_add_string platformVersion '2' + json_add_string platformVersion '10' json_add_string isCompressed '0' - json_add_string businessType "$businessType" + json_add_string appid "$businessType" json_add_string clientVersion "$clientVersion" json_add_string peerID "$_peerid" json_add_string appName "ANDROID-$packageName" json_add_string sdkVersion "${sdkVersion##*.}" json_add_string devicesign "$_devicesign" + json_add_string netWorkType 'WIFI' + json_add_string providerName 'OTHER' json_add_string deviceModel 'MI' json_add_string deviceName 'Xiaomi Mi' json_add_string OSVersion "7.1.1" @@ -167,6 +167,7 @@ swjsq_login() { json_add_string passWord "$password" json_add_string verifyKey json_add_string verifyCode + json_add_string isMd5Pwd '0' else access_url='https://mobile-login.xunlei.com/loginkey' json_add_string userName "$_userid" @@ -240,7 +241,8 @@ swjsq_logout() { # 获取用户信息 swjsq_getuserinfo() { - [ $1 -eq 1 ] && local _vasid=14 || local _vasid=33 + local _vasid vasid_down=14 vasid_up=33 outmsg + [ $down_acc -ne 0 ] && _vasid="${_vasid}${vasid_down},"; [ $up_acc -ne 0 ] && _vasid="${_vasid}${vasid_up}," swjsq_json json_add_string userID "$_userid" json_add_string sessionID "$_sessionid" @@ -248,17 +250,16 @@ swjsq_getuserinfo() { json_close_object local ret=$($_http_cmd --user-agent="$agent_xl" 'https://mobile-login.xunlei.com/getuserinfo' --post-data="$(json_dump)") - _log "getuserinfo $1 is $ret" $(( 1 | 4 )) + _log "getuserinfo is $ret" $(( 1 | 4 )) json_cleanup; json_load "$ret" >/dev/null 2>&1 json_get_var lasterr "errorCode" - [ $1 -eq 1 ] && local outmsg="下行提速会员" || local outmsg="上行提速会员" case ${lasterr:=-1} in 0) - local index vasid isVip isYear expireDate can_upgrade + local index=1 can_down=0 vasid isVip isYear expireDate json_select "vipList" >/dev/null 2>&1 while : ; do - json_select ${index:=1} >/dev/null 2>&1 + json_select $index >/dev/null 2>&1 [ $? -ne 0 ] && break json_get_var vasid "vasid" json_get_var isVip "isVip" @@ -266,28 +267,59 @@ swjsq_getuserinfo() { json_get_var expireDate "expireDate" json_select ".." >/dev/null 2>&1 let index++ - ([ $1 -eq 1 -a ${vasid:-0} -eq 2 ] || [ ${vasid:-0} -eq $_vasid ]) && \ - [ ${isVip:-0} -eq 1 -o ${isYear:-0} -eq 1 ] && { can_upgrade=1; break; } - done - if [ ${can_upgrade:-0} -eq 1 ]; then - outmsg="获取${outmsg}信息成功。会员到期时间:${expireDate:0:4}-${expireDate:4:2}-${expireDate:6:2}"; \ - _log "$outmsg" $(( 1 | $1 * 8 )) - else - if [ ${#expireDate} -ge 8 ]; then - outmsg="${outmsg}已到期。会员到期时间:${expireDate:0:4}-${expireDate:4:2}-${expireDate:6:2}" + case ${vasid:-0} in + 2) [ $down_acc -ne 0 ] && outmsg="迅雷超级会员" || continue;; + $vasid_down) outmsg="迅雷快鸟会员";; + $vasid_up) outmsg="上行提速会员";; + *) continue;; + esac + if [ ${isVip:-0} -eq 1 -o ${isYear:-0} -eq 1 ]; then + outmsg="${outmsg}有效。会员到期时间:${expireDate:0:4}-${expireDate:4:2}-${expireDate:6:2}" + [ $vasid -eq $vasid_up ] && _log "$outmsg" $(( 1 | 16 )) || _log "$outmsg" $(( 1 | 8 )) + [ $vasid -ne $vasid_up ] && can_down=$(( $can_down | 1 )) else - outmsg="${outmsg}无效" + if [ ${#expireDate} -ge 8 ]; then + outmsg="${outmsg}已到期。会员到期时间:${expireDate:0:4}-${expireDate:4:2}-${expireDate:6:2}" + else + outmsg="${outmsg}无效" + fi + [ $vasid -eq $vasid_up ] && _log "$outmsg" $(( 1 | 16 | 32 )) || _log "$outmsg" $(( 1 | 8 | 32 )) + [ $vasid -eq $vasid_up ] && up_acc=0 fi - _log "$outmsg" $(( 1 | $1 * 8 | 32 )) - [ $1 -eq 1 ] && down_acc=0 || up_acc=0 - fi + done + [ $can_down -eq 0 ] && down_acc=0 ;; -1) - outmsg="获取${outmsg}信息失败。迅雷服务器未响应,请稍候"; _log "$outmsg";; + outmsg="获取迅雷会员信息失败。迅雷服务器未响应,请稍候"; _log "$outmsg";; *) local errorDesc; json_get_var errorDesc "errorDesc" - outmsg="获取${outmsg}信息失败。错误代码: ${lasterr}"; \ - [ -n "$errorDesc" ] && outmsg="${outmsg},原因: $errorDesc"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; + outmsg="获取迅雷会员信息失败。错误代码: ${lasterr}"; \ + [ -n "$errorDesc" ] && outmsg="${outmsg},原因: $errorDesc"; _log "$outmsg" $(( 1 | 8 | 32 ));; + esac + + [ $lasterr -eq 0 ] && return 0 || return 1 +} + +# 登录时间更新 +swjsq_renewal() { + xlnetacc_var 1 + local limitdate=$(date +%Y%m%d -d "1970.01.01-00:00:$(( $(date +%s) + 30 * 24 * 60 * 60 ))") + + access_url='http://api.ext.swjsq.vip.xunlei.com' + local ret=$($_http_cmd --user-agent="$user_agent" "$access_url/renewal?${http_args%&dial_account=*}&limitdate=$limitdate") + _log "renewal is $ret" $(( 1 | 4 )) + json_cleanup; json_load "$ret" >/dev/null 2>&1 + json_get_var lasterr "errno" + + case ${lasterr:=-1} in + 0) + local outmsg="更新登录时间成功。帐号登录展期:${limitdate:0:4}-${limitdate:4:2}-${limitdate:6:2}"; _log "$outmsg";; + -1) + local outmsg="更新登录时间失败。迅雷服务器未响应,请稍候"; _log "$outmsg";; + *) + local message; json_get_var message "richmessage" + local outmsg="更新登录时间失败。错误代码: ${lasterr}"; \ + [ -n "$message" ] && outmsg="${outmsg},原因: $message"; _log "$outmsg" $(( 1 | 8 | 32 ));; esac [ $lasterr -eq 0 ] && return 0 || return 1 @@ -354,8 +386,8 @@ isp_bandwidth() { json_select; json_select "max_bandwidth" >/dev/null 2>&1 json_get_var max_bandwidth "$stream" json_select - cur_bandwidth=$(expr ${cur_bandwidth:-0} / 1024) - max_bandwidth=$(expr ${max_bandwidth:-0} / 1024) + cur_bandwidth=$(( ${cur_bandwidth:-0} / 1024 )) + max_bandwidth=$(( ${max_bandwidth:-0} / 1024 )) if [ -n "$bind_dial_account" -a "$bind_dial_account" != "$dial_account" ]; then local outmsg="绑定宽带账号 $bind_dial_account 与当前宽带账号 $dial_account 不一致,请联系迅雷客服解绑(每月仅一次)"; \ @@ -510,7 +542,7 @@ xlnetacc_var() { let sequence_up++ access_url=$_portal_up http_args="sequence=${sequence_up}&client_type=${client_type_up}-${clientVersion}&client_version=${client_type_up//-/}-${clientVersion}" - user_agent=$agent_up + user_agent=$agent_down link_cn="上行" fi http_args="${http_args}&peerid=${_peerid}&userid=${_userid}&sessionid=${_sessionid}&user_type=1&os=android-7.1.1" @@ -581,10 +613,16 @@ xlnetacc_init() { readonly logging=$(uci_get_by_bool "general" "logging" 1) readonly verbose=$(uci_get_by_bool "general" "verbose" 0) network=$(uci_get_by_name "general" "network" "wan") + keepalive=$(uci_get_by_name "general" "keepalive" 10) + relogin=$(uci_get_by_name "general" "relogin" 0) readonly username=$(uci_get_by_name "general" "account") readonly password=$(uci_get_by_name "general" "password") local enabled=$(uci_get_by_bool "general" "enabled" 0) ([ $enabled -eq 0 ] || [ $down_acc -eq 0 -a $up_acc -eq 0 ] || [ -z "$username" -o -z "$password" -o -z "$network" ]) && return 2 + ([ -z "$keepalive" -o -n "${keepalive//[0-9]/}" ] || [ $keepalive -lt 5 -o $keepalive -gt 60 ]) && keepalive=10 + readonly keepalive=$(( $keepalive )) + ([ -z "$relogin" -o -n "${relogin//[0-9]/}" ] || [ $relogin -gt 48 ]) && relogin=0 + readonly relogin=$(( $relogin * 60 * 60 )) [ $logging -eq 1 ] && [ ! -d /var/log ] && mkdir -p /var/log [ -f "$LOGFILE" ] && _log "------------------------------" @@ -606,6 +644,7 @@ xlnetacc_init() { clean_log [ -d /var/state ] || mkdir -p /var/state + rm -f "$down_state_file" "$up_state_file" return 0 } @@ -636,9 +675,10 @@ xlnetacc_main() { done # 获取用户信息 - xlnetacc_retry 'swjsq_getuserinfo' 1 1 - xlnetacc_retry 'swjsq_getuserinfo' 2 1 + xlnetacc_retry 'swjsq_getuserinfo' [ $down_acc -eq 0 -a $up_acc -eq 0 ] && break + # 登录时间更新 + xlnetacc_retry 'swjsq_renewal' # 获取提速入口 xlnetacc_retry 'swjsq_portal' 1 1 xlnetacc_retry 'swjsq_portal' 2 1 @@ -651,11 +691,11 @@ xlnetacc_main() { xlnetacc_retry 'isp_upgrade' 2 1 10 || { sleep 3m; continue; } # 心跳保持 -# local retry=1 + local timer=$(date +%s) while : ; do clean_log # 清理日志 - sleep 10m -# [ $retry -ge 144 ] && break || let retry++ # 心跳最多保持24小时,144=24*60/10 + sleep ${keepalive}m + [ $relogin -ne 0 -a $(( $(date +%s) - $timer )) -ge $relogin ] && break # 登录超时 xlnetacc_retry 'isp_keepalive' 1 2 5 || break xlnetacc_retry 'isp_keepalive' 2 2 5 || break done diff --git a/package/lean/uugamebooster/Makefile b/package/lean/uugamebooster/Makefile index 3893d9490..a6ea84be9 100644 --- a/package/lean/uugamebooster/Makefile +++ b/package/lean/uugamebooster/Makefile @@ -12,8 +12,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=uugamebooster -PKG_VERSION:=v2.7.8 -PKG_RELEASE:=6 +PKG_VERSION:=v2.9.0 +PKG_RELEASE:=7 include $(INCLUDE_DIR)/package.mk @@ -31,27 +31,27 @@ endef ifeq ($(ARCH),x86_64) UU_ARCH:=x86_64 - PKG_MD5SUM:=7964978383c6c1535a8a8799b96498d7 + PKG_MD5SUM:=136c6e63745b385ab986df60ff8b2ff0 endif ifeq ($(ARCH),mipsel) UU_ARCH:=mipsel - PKG_MD5SUM:=e25531db253ae05e13367d98ab862e45 + PKG_MD5SUM:=7bec7f1df806d511f93e90e677aa830a endif ifeq ($(ARCH),mips) UU_ARCH:=mipsel - PKG_MD5SUM:=e25531db253ae05e13367d98ab862e45 + PKG_MD5SUM:=7bec7f1df806d511f93e90e677aa830a endif ifeq ($(ARCH),arm) UU_ARCH:=arm - PKG_MD5SUM:=5a308f12a9855841dab6c534453850aa + PKG_MD5SUM:=ceefdf84f8ce3e1eb87d22200373900a endif ifeq ($(ARCH),aarch64) UU_ARCH:=aarch64 - PKG_MD5SUM:=f7d891a1c9eecb900a1981df47bf365f + PKG_MD5SUM:=a4c82d58416aa604c143053023aca71d endif PKG_SOURCE_URL:=http://uu.gdl.netease.com/openwrt-$(UU_ARCH)/$(PKG_VERSION)/uu.tar.gz? diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index 4575f4c99..af1c79a35 100755 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -9,7 +9,8 @@ boardname="${board##*,}" board_config_update case $board in -friendlyarm,nanopi-r2s) +friendlyarm,nanopi-r2s|\ +xunlong,orangepi-r1-plus) ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0" ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth1" ;; diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 4849b877e..df276da74 100755 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -9,7 +9,8 @@ rockchip_setup_interfaces() case "$board" in friendlyarm,nanopi-r2s|\ - friendlyarm,nanopi-r4s) + friendlyarm,nanopi-r4s|\ + xunlong,orangepi-r1-plus) ucidef_set_interfaces_lan_wan 'eth1' 'eth0' ;; *) @@ -37,9 +38,10 @@ rockchip_setup_macs() wan_mac=$(nanopi_r2s_generate_mac) lan_mac=$(macaddr_add "$wan_mac" +1) ;; - friendlyarm,nanopi-r4s) - wan_mac=$(cat /sys/class/net/eth0/address) - lan_mac=$(macaddr_add "$wan_mac" +1) + friendlyarm,nanopi-r4s|\ + xunlong,orangepi-r1-plus) + lan_mac=$(cat /sys/class/net/eth1/address) + wan_mac=$(macaddr_add "$lan_mac" -1) ;; esac diff --git a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity index 9e4a4cf4f..d8e513f56 100644 --- a/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity +++ b/target/linux/rockchip/armv8/base-files/etc/hotplug.d/net/40-net-smp-affinity @@ -22,7 +22,8 @@ set_interface_core() { } case "$(board_name)" in -friendlyarm,nanopi-r2s) +friendlyarm,nanopi-r2s|\ +xunlong,orangepi-r1-plus) set_interface_core 2 "eth0" set_interface_core 4 "eth1" "xhci-hcd:usb3" ;; diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index b475d1677..637eafbc1 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -42,3 +42,13 @@ define Device/radxa_rock-pi-4 DEVICE_PACKAGES := -urngd endef TARGET_DEVICES += radxa_rock-pi-4 + +define Device/xunlong_orangepi-r1-plus + DEVICE_VENDOR := Xunlong + DEVICE_MODEL := Orange Pi R1 Plus + SOC := rk3328 + UBOOT_DEVICE_NAME := orangepi-r1-plus-rk3328 + IMAGE/sysupgrade.img.gz := boot-common | boot-script nanopi-r2s | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-usb-net-rtl8152 +endef +TARGET_DEVICES += xunlong_orangepi-r1-plus diff --git a/target/linux/rockchip/patches-5.4/202-rockchip-rk3328-Add-support-for-OrangePi-R1-Plus.patch b/target/linux/rockchip/patches-5.4/202-rockchip-rk3328-Add-support-for-OrangePi-R1-Plus.patch new file mode 100644 index 000000000..f83a71b95 --- /dev/null +++ b/target/linux/rockchip/patches-5.4/202-rockchip-rk3328-Add-support-for-OrangePi-R1-Plus.patch @@ -0,0 +1,52 @@ +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -2,6 +2,7 @@ + dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-evb.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus.dts +@@ -0,0 +1,39 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++#include "rk3328-nanopi-r2s.dts" ++ ++/ { ++ model = "Xunlong Orange Pi R1 PLUS"; ++ compatible = "xunlong,orangepi-r1-plus", "rockchip,rk3328"; ++}; ++ ++&lan_led { ++ label = "orangepi-r1-plus:green:lan"; ++}; ++ ++&spi0 { ++ max-freq = <48000000>; ++ status = "okay"; ++ ++ flash@0 { ++ compatible = "jedec,spi-nor"; ++ reg = <0>; ++ spi-max-frequency = <10000000>; ++ }; ++}; ++ ++&sys_led { ++ gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; ++ label = "orangepi-r1-plus:red:sys"; ++}; ++ ++&sys_led_pin { ++ rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; ++}; ++ ++&uart1 { ++ status = "okay"; ++}; ++ ++&wan_led { ++ label = "orangepi-r1-plus:green:wan"; ++};