From ab40ee4e8eb04106922736c2744a86557b6a10eb Mon Sep 17 00:00:00 2001 From: AuxXxilium Date: Sat, 11 May 2024 15:02:29 +0200 Subject: [PATCH] arc: fix links Signed-off-by: AuxXxilium --- fbsize/Makefile | 9 ++++ fbsize/fbsize | Bin 0 -> 16560 bytes fbsize/main.c | 99 ++++++++++++++++++++++++++++++++++++ files/initrd/opt/arc/arc.sh | 11 ++-- 4 files changed, 114 insertions(+), 5 deletions(-) create mode 100755 fbsize/Makefile create mode 100755 fbsize/fbsize create mode 100644 fbsize/main.c diff --git a/fbsize/Makefile b/fbsize/Makefile new file mode 100755 index 00000000..ecf64ec7 --- /dev/null +++ b/fbsize/Makefile @@ -0,0 +1,9 @@ +CFLAGS = -Wall -pedantic + +all: fbsize + +fbsize: main.o + cc -o $@ $^ + +clean: + rm -f fbsize *.o diff --git a/fbsize/fbsize b/fbsize/fbsize new file mode 100755 index 0000000000000000000000000000000000000000..1a6c1e72fcdc4eb6ed34457c1552c382f8933e56 GIT binary patch literal 16560 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 + * + * This is free software, licensed under the MIT License. + * See /LICENSE for more information. + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#define VERSION "1.0" + +int main(int argc, char *argv[]) +{ + int c; + + while (1) + { + int option_index = 0; + static struct option long_options[] = { + {"resolution", required_argument, 0, 'r'}, + {"buffer", required_argument, 0, 'b'}, + {"offset", required_argument, 0, 'o'}, + {"screen", required_argument, 0, 's'}, + {"help", no_argument, 0, 'h'}, + {0, 0, 0, 0}}; + + c = getopt_long(argc, argv, "r:b:o:s:h", long_options, &option_index); + if (c == -1) + break; + + switch (c) + { + case 'r': + case 'b': + case 'o': + case 's': + int fbfd = 0; + struct fb_var_screeninfo var_info; + + // 打开设备文件 + fbfd = open(optarg, O_RDWR); + if (fbfd == -1) + { + perror("Error: cannot open framebuffer device"); + return 1; + } + + // 获取屏幕参数 + if (ioctl(fbfd, FBIOGET_VSCREENINFO, &var_info) == -1) + { + perror("Error reading variable information"); + return 1; + } + + if (c == 'r') + { + printf("%dx%d\n", var_info.xres, var_info.yres); + } + else if (c == 'b') + { + printf("%dx%d\n", var_info.xres_virtual, var_info.yres_virtual); + } + else if (c == 'o') + { + printf("%dx%d\n", var_info.xoffset, var_info.yoffset); + } + else if (c == 's') + { + printf("%dx%d\n", var_info.height, var_info.width); + } + + // 关闭设备文件 + close(fbfd); + break; + case 'h': + case '?': + printf("Usage: %s [options] \n", argv[0]); + printf("Version: %s\n", VERSION); + printf("Options:\n"); + printf(" -r, --resolution Display the resolution of the screen\n"); + printf(" -b, --buffer Display the resolution of the framebuffer\n"); + printf(" -o, --offset Display the offset of the screen\n"); + printf(" -s, --screen Display the size of the screen\n"); + printf(" -h, --help Display this help message\n"); + return 0; + default: + return 1; + } + } + + return 0; +} \ No newline at end of file diff --git a/files/initrd/opt/arc/arc.sh b/files/initrd/opt/arc/arc.sh index c973ca4a..841652b5 100755 --- a/files/initrd/opt/arc/arc.sh +++ b/files/initrd/opt/arc/arc.sh @@ -616,6 +616,7 @@ function make() { --infobox "Reading Models..." 3 20 # Read Model Config MODEL="$(readConfigKey "model" "${USER_CONFIG_FILE}")" + MODELID="$(readConfigKey "modelid" "${USER_CONFIG_FILE}")" PLATFORM="$(readConfigKey "platform" "${USER_CONFIG_FILE}")" PRODUCTVER="$(readConfigKey "productver" "${USER_CONFIG_FILE}")" DT="$(readConfigKey "platforms.${PLATFORM}.dt" "${P_FILE}")" @@ -639,8 +640,8 @@ function make() { --infobox "Get PAT Data from Syno..." 3 30 idx=0 while [ ${idx} -le 5 ]; do # Loop 5 times, if successful, break - PAT_URL="$(curl -m 5 -skL "https://www.synology.com/api/support/findDownloadInfo?lang=en-us&product=${MODEL/+/%2B}&major=${PRODUCTVER%%.*}&minor=${PRODUCTVER##*.}" | jq -r '.info.system.detail[0].items[0].files[0].url')" - PAT_HASH="$(curl -m 5 -skL "https://www.synology.com/api/support/findDownloadInfo?lang=en-us&product=${MODEL/+/%2B}&major=${PRODUCTVER%%.*}&minor=${PRODUCTVER##*.}" | jq -r '.info.system.detail[0].items[0].files[0].checksum')" + PAT_URL="$(curl -m 5 -skL "https://www.synology.com/api/support/findDownloadInfo?lang=en-us&product=${MODELID/+/%2B}&major=${PRODUCTVER%%.*}&minor=${PRODUCTVER##*.}" | jq -r '.info.system.detail[0].items[0].files[0].url')" + PAT_HASH="$(curl -m 5 -skL "https://www.synology.com/api/support/findDownloadInfo?lang=en-us&product=${MODELID/+/%2B}&major=${PRODUCTVER%%.*}&minor=${PRODUCTVER##*.}" | jq -r '.info.system.detail[0].items[0].files[0].checksum')" PAT_URL=${PAT_URL%%\?*} if [[ -n "${PAT_URL}" && -n "${PAT_HASH}" ]]; then break @@ -653,8 +654,8 @@ function make() { --infobox "Syno Connection failed,\ntry to get from Github..." 4 30 idx=0 while [ ${idx} -le 3 ]; do # Loop 3 times, if successful, break - PAT_URL="$(curl -m 5 -skL "https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/dsm/${MODEL/+/%2B}/${PRODUCTVER%%.*}.${PRODUCTVER##*.}/pat_url")" - PAT_HASH="$(curl -m 5 -skL "https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/dsm/${MODEL/+/%2B}/${PRODUCTVER%%.*}.${PRODUCTVER##*.}/pat_hash")" + PAT_URL="$(curl -m 5 -skL "https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/dsm/${MODELID/+/%2B}/${PRODUCTVER%%.*}.${PRODUCTVER##*.}/pat_url")" + PAT_HASH="$(curl -m 5 -skL "https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/dsm/${MODELID/+/%2B}/${PRODUCTVER%%.*}.${PRODUCTVER##*.}/pat_hash")" PAT_URL=${PAT_URL%%\?*} if [[ -n "${PAT_URL}" && -n "${PAT_HASH}" ]]; then break @@ -701,7 +702,7 @@ function make() { # Check for existing Files DSM_FILE="${UNTAR_PAT_PATH}/${PAT_HASH}.tar" # Get new Files - DSM_URL="https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/files/${MODEL/+/%2B}/${PRODUCTVER}/${PAT_HASH}.tar" + DSM_URL="https://raw.githubusercontent.com/AuxXxilium/arc-dsm/main/files/${MODELID/+/%2B}/${PRODUCTVER}/${PAT_HASH}.tar" STATUS=$(curl --insecure -s -w "%{http_code}" -L "${DSM_URL}" -o "${DSM_FILE}") if [[ $? -ne 0 || ${STATUS} -ne 200 ]]; then dialog --backtitle "$(backtitle)" --title "DSM Download" --aspect 18 \