├── .github └── workflows │ ├── Delete-Old-Workflows.yml │ ├── IPQ60XX-6.6-WIFI(EMMC).yml │ └── build.yml ├── LICENSE ├── README.md ├── build.sh ├── configs ├── ipq6000-6.1.config ├── ipq60xx-6.1-wifi(emmc).config ├── ipq60xx-6.1-wifi.config ├── ipq60xx-6.6-wifi(emmc).config ├── ipq60xx-6.6-wifi2.config └── ipq60xx-6.6.config ├── diy-mini.sh ├── diy-script.sh ├── docker ├── Dockerfile ├── buildImageX.sh └── patches │ ├── 30-sysinfo.sh │ ├── 99-custom.conf │ ├── banner │ ├── cbi_turboacc.patch │ ├── cbi_turboacc_new.patch │ ├── coremark.sh │ ├── cpustat │ ├── getcpu │ ├── index.html.patches │ ├── index.htm │ ├── index.htm.orig │ └── luci-admin-status-index-html.patch │ ├── init.d_turboacc.patch │ ├── kmod │ ├── rc.local │ └── smb4.11_enable_smb1.patch ├── feeds ├── ipq6000-6.1.default └── test.default ├── images └── openwrt.png ├── patchs ├── 0001-show-soc-status-on-luci.patch └── 0002-show-soc-status-on-luci.patch └── scripts ├── .zshrc ├── 011-fix-mbo-modules-build.patch ├── init-settings.sh ├── preset-adguard-core.sh ├── preset-clash-core.sh └── preset-terminal-tools.sh /.github/workflows/Delete-Old-Workflows.yml: -------------------------------------------------------------------------------- 1 | name: Delete Old Workflows 2 | 3 | on: 4 | workflow_dispatch: 5 | # schedule: 6 | # - cron: 0 3 * * * 7 | 8 | jobs: 9 | Cleaning: 10 | runs-on: ubuntu-22.04 11 | 12 | steps: 13 | - name: Delete Old Workflows 14 | uses: Mattraks/delete-workflow-runs@main 15 | with: 16 | token: ${{ secrets.GITHUB_TOKEN }} 17 | retain_days: 2 18 | keep_minimum_runs: 0 19 | 20 | - name: Delete Old Releases 21 | uses: dev-drprasad/delete-older-releases@master 22 | with: 23 | keep_latest: 15 24 | delete_tags: true 25 | env: 26 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 27 | -------------------------------------------------------------------------------- /.github/workflows/IPQ60XX-6.6-WIFI(EMMC).yml: -------------------------------------------------------------------------------- 1 | name: IPQ60XX-6.6-WIFI(EMMC) 2 | 3 | on: 4 | workflow_dispatch: 5 | # schedule: 6 | # - cron: 0 19 * * * 7 | 8 | env: 9 | REPO_URL: https://github.com/breeze303/ipq60xx-6.6.git 10 | REPO_BRANCH: main 11 | CONFIG_FILE: configs/ipq60xx-6.6-wifi(emmc).config 12 | DIY_SCRIPT: diy-script.sh 13 | CLASH_KERNEL: amd64 14 | CACHE_TOOLCHAIN: true 15 | UPLOAD_BIN_DIR: false 16 | FIRMWARE_RELEASE: true 17 | FIRMWARE_TAG: IPQ60XX-6.6-WIFI(EMMC) 18 | TZ: Asia/Shanghai 19 | 20 | jobs: 21 | Build: 22 | runs-on: ubuntu-22.04 23 | 24 | steps: 25 | - name: Check Server Performance 26 | run: | 27 | echo "警告⚠" 28 | echo "分配的服务器性能有限,若选择的插件过多,务必注意CPU性能!" 29 | echo -e "已知CPU型号(降序):7763,8370C,8272CL,8171M,E5-2673 \n" 30 | echo "--------------------------CPU信息--------------------------" 31 | echo "CPU物理数量:$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)" 32 | echo -e "CPU核心信息:$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) \n" 33 | echo "--------------------------内存信息--------------------------" 34 | echo "已安装内存详细信息:" 35 | echo -e "$(sudo lshw -short -C memory | grep GiB) \n" 36 | echo "--------------------------硬盘信息--------------------------" 37 | echo "硬盘数量:$(ls /dev/sd* | grep -v [1-9] | wc -l)" && df -hT 38 | 39 | - name: Initialization Environment 40 | env: 41 | DEBIAN_FRONTEND: noninteractive 42 | run: | 43 | docker rmi $(docker images -q) 44 | sudo rm -rf /usr/share/dotnet /etc/apt/sources.list.d /usr/local/lib/android $AGENT_TOOLSDIRECTORY 45 | sudo -E apt-get -y purge azure-cli ghc* zulu* llvm* firefox google* dotnet* powershell openjdk* mongodb* moby* || true 46 | sudo -E apt-get -y update 47 | sudo -E apt-get -y install $(curl -fsSL is.gd/depends_ubuntu_2204) 48 | sudo -E systemctl daemon-reload 49 | sudo -E apt-get -y autoremove --purge 50 | sudo -E apt-get -y clean 51 | sudo timedatectl set-timezone "$TZ" 52 | 53 | - name: Combine Disks 54 | uses: easimon/maximize-build-space@master 55 | with: 56 | swap-size-mb: 1024 57 | temp-reserve-mb: 100 58 | root-reserve-mb: 1024 59 | 60 | - name: Checkout 61 | uses: actions/checkout@main 62 | 63 | - name: Clone Source Code 64 | run: | 65 | df -hT $GITHUB_WORKSPACE 66 | git clone $REPO_URL -b $REPO_BRANCH openwrt 67 | cd openwrt 68 | echo "OPENWRT_PATH=$PWD" >> $GITHUB_ENV 69 | VERSION_INFO=$(git show -s --date=short --format="作者: %an
时间: %cd
内容: %s
hash: %H") 70 | echo "VERSION_INFO=$VERSION_INFO" >> $GITHUB_ENV 71 | 72 | - name: Generate Variables 73 | run: | 74 | cp $CONFIG_FILE $OPENWRT_PATH/.config 75 | cd $OPENWRT_PATH 76 | make defconfig > /dev/null 2>&1 77 | SOURCE_REPO="$(echo $REPO_URL | awk -F '/' '{print $(NF)}')" 78 | echo "SOURCE_REPO=$SOURCE_REPO" >> $GITHUB_ENV 79 | DEVICE_TARGET=$(cat .config | grep CONFIG_TARGET_BOARD | awk -F '"' '{print $2}') 80 | echo "DEVICE_TARGET=$DEVICE_TARGET" >> $GITHUB_ENV 81 | DEVICE_SUBTARGET=$(cat .config | grep CONFIG_TARGET_SUBTARGET | awk -F '"' '{print $2}') 82 | echo "DEVICE_SUBTARGET=$DEVICE_SUBTARGET" >> $GITHUB_ENV 83 | 84 | - name: Cache Toolchain 85 | if: env.CACHE_TOOLCHAIN == 'true' 86 | uses: HiGarfield/cachewrtbuild@main 87 | with: 88 | ccache: false 89 | mixkey: ${{ env.SOURCE_REPO }}-${{ env.REPO_BRANCH }}-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }} 90 | prefix: ${{ env.OPENWRT_PATH }} 91 | 92 | - name: Install Feeds 93 | run: | 94 | cd $OPENWRT_PATH 95 | ./scripts/feeds update -a 96 | ./scripts/feeds install -a 97 | 98 | # - name: Apply patches 99 | # run: | 100 | # git config --global user.name "OpenWrt Builder" 101 | # git config --global user.email "buster-openwrt@ovvo.uk" 102 | # cd $OPENWRT_PATH/feeds/luci 103 | # wget https://raw.githubusercontent.com/openwrt-ipq60xx/patches/main/feeds/luci/0001-show-soc-status-on-luci.patch 104 | # git am 0001-show-soc-status-on-luci.patch 105 | 106 | - name: Load Custom Configuration 107 | run: | 108 | [ -e files ] && mv files $OPENWRT_PATH/files 109 | [ -e $CONFIG_FILE ] && mv $CONFIG_FILE $OPENWRT_PATH/.config 110 | 111 | - name: Download DL Package 112 | run: | 113 | cd $OPENWRT_PATH 114 | make defconfig 115 | make download -j8 116 | find dl -size -1024c -exec ls -l {} \; 117 | find dl -size -1024c -exec rm -f {} \; 118 | 119 | - name: Compile Firmware 120 | id: compile 121 | run: | 122 | cd $OPENWRT_PATH 123 | mkdir -p files/etc/uci-defaults 124 | cp $GITHUB_WORKSPACE/scripts/init-settings.sh files/etc/uci-defaults/99-init-settings 125 | echo -e "$(nproc) thread compile" 126 | make -j$(nproc) || make -j1 || make -j1 V=s 127 | echo "status=success" >> $GITHUB_OUTPUT 128 | echo "DATE=$(date +"%Y-%m-%d %H:%M:%S")" >> $GITHUB_ENV 129 | echo "FILE_DATE=$(date +"%Y.%m.%d")" >> $GITHUB_ENV 130 | 131 | - name: Check Space Usage 132 | if: (!cancelled()) 133 | run: df -hT 134 | 135 | - name: Upload Bin Directory 136 | if: steps.compile.outputs.status == 'success' && env.UPLOAD_BIN_DIR == 'true' 137 | uses: actions/upload-artifact@main 138 | with: 139 | name: ${{ env.SOURCE_REPO }}-bin-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 140 | path: ${{ env.OPENWRT_PATH }}/bin 141 | 142 | - name: Organize Files 143 | if: steps.compile.outputs.status == 'success' 144 | run: | 145 | cd $OPENWRT_PATH/bin/targets/*/* 146 | cat sha256sums 147 | cp $OPENWRT_PATH/.config build.config 148 | mv -f $OPENWRT_PATH/bin/packages/*/*/*.ipk packages 149 | tar -zcf Packages.tar.gz packages 150 | rm -rf packages feeds.buildinfo version.buildinfo 151 | echo "FIRMWARE_PATH=$PWD" >> $GITHUB_ENV 152 | 153 | - name: Upload Firmware To Artifact 154 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE != 'true' 155 | uses: actions/upload-artifact@main 156 | with: 157 | name: ${{ env.SOURCE_REPO }}-firmware-${{ env.DEVICE_TARGET }}-${{ env.DEVICE_SUBTARGET }}-${{ env.FILE_DATE }} 158 | path: ${{ env.FIRMWARE_PATH }} 159 | 160 | - name: Upload Firmware To Release 161 | if: steps.compile.outputs.status == 'success' && env.FIRMWARE_RELEASE == 'true' 162 | uses: ncipollo/release-action@v1 163 | with: 164 | name: R${{ env.DATE }} for ${{ env.FIRMWARE_TAG }} 165 | allowUpdates: true 166 | tag: ${{ env.FIRMWARE_TAG }} 167 | token: ${{ secrets.GITHUB_TOKEN }} 168 | artifacts: ${{ env.FIRMWARE_PATH }}/* 169 | body: | 170 | **This is OpenWrt Firmware for ${{ env.FIRMWARE_TAG }}** 171 | ### 📒 固件信息 172 | - 这是带WIFI以及NSS且适用于EMMC的6.6内核固件 173 | - 💻 这是 ${{ env.FIRMWARE_TAG }} 平台使用的 OpenWrt 固件 174 | - ⚽ 固件源码: ${{ env.REPO_URL }} 175 | - 💝 源码分支: ${{ env.REPO_BRANCH }} 176 | - 🌐 默认地址: 192.168.1.1 177 | - 🔑 默认密码: password 178 | ### 🧊 固件版本 179 | - 固件编译前最后一次➦[主源码](${{ env.REPO_URL }})更新记录 180 | - ${{ env.VERSION_INFO }} 181 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: 4 | # push: 5 | workflow_dispatch: 6 | inputs: 7 | upload_release: 8 | description: 'Whether to upload binaries to releases' 9 | required: true 10 | default: '0' 11 | backup_dl_src: 12 | description: 'Whether to backup downloaded sources to releases' 13 | required: false 14 | default: '0' 15 | 16 | jobs: 17 | build: 18 | runs-on: ubuntu-22.04 19 | container: 20 | image: pexcn/docker-images:bookworm-openwrt 21 | volumes: 22 | - /usr/local:/usr/local 23 | - /usr/lib/google-cloud-sdk:/usr/lib/google-cloud-sdk 24 | - /usr/share/dotnet:/usr/share/dotnet 25 | - /usr/share/swift:/usr/share/swift 26 | - /opt/az:/opt/az 27 | - /opt/google:/opt/google 28 | - /opt/microsoft:/opt/microsoft 29 | - /opt/pipx:/opt/pipx 30 | - /opt/hostedtoolcache:/opt/hostedtoolcache 31 | env: 32 | TZ: Asia/Taipei 33 | BUILD_REPO: https://github.com/openwrt-ipq60xx/openwrt.git 34 | BUILD_PROFILE: ${{ matrix.PROFILE }} 35 | BACKUP_DL_SRC: ${{ github.event.inputs.backup_dl_src }} 36 | strategy: 37 | fail-fast: false 38 | matrix: 39 | PROFILE: 40 | - qualcommax-ipq60xx 41 | - qualcommax-ipq60xx_emmc 42 | 43 | steps: 44 | - name: Maximize disk space 45 | uses: pexcn/maximize-disk-space@v1 46 | with: 47 | use-system-docker: false 48 | 49 | - name: Checkout sources 50 | uses: actions/checkout@v4 51 | with: 52 | submodules: true 53 | 54 | - name: Make build cache 55 | uses: actions/cache@v4 56 | with: 57 | path: | 58 | ~/.ccache 59 | /builder/.ccache 60 | key: ${{ runner.os }}-${{ github.ref_name }}-${{ env.BUILD_PROFILE }}-${{ github.sha }} 61 | restore-keys: ${{ runner.os }}-${{ github.ref_name }}-${{ env.BUILD_PROFILE }}- 62 | 63 | - name: Build firmware 64 | run: ./build.sh 65 | 66 | - name: Upload to Artifact 67 | uses: actions/upload-artifact@v4 68 | with: 69 | name: ${{ env.BUILD_PROFILE }} 70 | path: openwrt/bin 71 | 72 | - name: Set release tag 73 | run: echo "RELEASE_TAG=$(date +%Y%m%d)" >> $GITHUB_ENV 74 | 75 | - name: Upload to Releases 76 | if: (github.event_name == 'push' && startsWith(github.event.head_commit.message, '[release] ')) || (github.event.inputs.upload_release == 1) 77 | uses: softprops/action-gh-release@v1 78 | with: 79 | tag_name: ${{ env.RELEASE_TAG }} 80 | files: ${{ env.BUILD_PROFILE }}.tar.gz 81 | 82 | - name: Backup downloaded sources 83 | if: (github.event_name == 'push' && startsWith(github.event.head_commit.message, '[release] ')) || (github.event.inputs.backup_dl_src == 1) 84 | uses: softprops/action-gh-release@v1 85 | with: 86 | tag_name: ${{ env.RELEASE_TAG }} 87 | files: ${{ env.BUILD_PROFILE }}_dl-src.tar.gz 88 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019-2020 P3TERX 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 |

OpenWrt — IPQ60XX云编译

4 | 5 | 6 | ## 项目说明 [![](https://img.shields.io/badge/-项目基本介绍-FFFFFF.svg)](#项目说明-) 7 | - 固件默认管理地址:`192.168.1.1` 默认用户:`root` 默认密码:`password` 8 | - 源码来源:https://github.com/breeze303/ipq60xx-6.1.git 9 | - 源码来源:https://github.com/breeze303/ipq60xx-6.6.git 10 | - 源码来源:https://github.com/openwrt-dev/openwrt-ipq60xx 感谢大佬 11 | - 源码来源: https://github.com/JiaY-shi/openwrt/tree/ipq60xx-devel_nss 感谢大佬 12 | - 云编译来源:https://github.com/haiibo/OpenWrt 感谢大佬 13 | 14 | ## 固件下载 [![](https://img.shields.io/badge/-编译状态及下载链接-FFFFFF.svg)](#固件下载-) 15 | 点击下表中 [![](https://img.shields.io/badge/下载-链接-blueviolet.svg?style=flat&logo=hack-the-box)](https://github.com/haiibo/OpenWrt/releases) 即可跳转到该设备固件下载页面 16 | | 平台+设备名称 | 固件编译状态 | 配置文件 | 固件下载 | 17 | | :-------------: | :-------------: | :-------------: | :-------------: | 18 | | [![](https://img.shields.io/badge/6.1-WIFI-32C955.svg?logo=openwrt)](https://github.com/breeze303/OpenWrt/blob/main/.github/workflows/IPQ60XX-6.1-WIFI.yml) | [![](https://github.com/breeze303/OpenWrt/actions/workflows/IPQ60XX-6.1-WIFI.yml/badge.svg)](https://github.com/breeze303/OpenWrt/actions/workflows/IPQ60XX-6.1-WIFI.yml) | [![](https://img.shields.io/badge/编译-配置-orange.svg?logo=apache-spark)](https://github.com/breeze303/OpenWrt/blob/main/configs/ipq60xx-6.1-wifi.config) | [![](https://img.shields.io/badge/下载-链接-blueviolet.svg?logo=hack-the-box)](https://github.com/breeze303/OpenWrt/releases/IPQ60XX-6.1-WIFI) | 19 | | [![](https://img.shields.io/badge/6.1-WIFI(EMMC)-32C955.svg?logo=openwrt)](https://github.com/breeze303/OpenWrt/blob/main/.github/workflows/IPQ60XX-6.1-WIFI(EMMC).yml) | [![](https://github.com/breeze303/OpenWrt/actions/workflows/IPQ60XX-6.1-WIFI(EMMC).yml/badge.svg)](https://github.com/breeze303/OpenWrt/actions/workflows/IPQ60XX-6.1-WIFI(EMMC).yml) | [![](https://img.shields.io/badge/编译-配置-orange.svg?logo=apache-spark)](https://github.com/breeze303/OpenWrt/blob/main/configs/ipq60xx-6.1-wifi(emmc).config) | [![](https://img.shields.io/badge/下载-链接-blueviolet.svg?logo=hack-the-box)](https://github.com/breeze303/OpenWrt/releases/IPQ60XX-6.1-WIFI(EMMC)) | 20 | | [![](https://img.shields.io/badge/6.6-WIFI-32C955.svg?logo=openwrt)](https://github.com/breeze303/OpenWrt/blob/main/.github/workflows/IPQ60XX-6.6-WIFI.yml) | [![](https://github.com/breeze303/OpenWrt/actions/workflows/IPQ60XX-6.6-WIFI.yml/badge.svg)](https://github.com/breeze303/OpenWrt/actions/workflows/IPQ60XX-6.6-WIFI.yml) | [![](https://img.shields.io/badge/编译-配置-orange.svg?logo=apache-spark)](https://github.com/breeze303/OpenWrt/blob/main/configs/ipq60xx-6.6-wifi.config) | [![](https://img.shields.io/badge/下载-链接-blueviolet.svg?logo=hack-the-box)](https://github.com/breeze303/OpenWrt/releases/IPQ60XX-6.6-WIFI) | 21 | 22 | ## 定制固件 [![](https://img.shields.io/badge/-项目基本编译教程-FFFFFF.svg)](#定制固件-) 23 | 1. 首先要登录 Gihub 账号,然后 Fork 此项目到你自己的 Github 仓库 24 | 2. 修改 `configs` 目录对应文件添加或删除插件,或者上传自己的 `xx.config` 配置文件 25 | 3. 插件对应名称及功能请参考恩山网友帖子:[Applications 添加插件应用说明](https://www.right.com.cn/forum/thread-3682029-1-1.html) 26 | 4. 如需修改默认 IP、添加或删除插件包以及一些其他设置请在 `diy-script.sh` 文件内修改 27 | 5. 添加或修改 `xx.yml` 文件,最后点击 `Actions` 运行要编译的 `workflow` 即可开始编译 28 | 6. 编译大概需要3-5小时,编译完成后在仓库主页 [Releases](https://github.com/haiibo/OpenWrt/releases) 对应 Tag 标签内下载固件 29 |
30 |  如果你觉得修改 config 文件麻烦,那么你可以点击此处尝试本地提取 31 | 32 | 1. 首先装好 Linux 系统,推荐 Debian 11 或 Ubuntu LTS 33 | 34 | 2. 安装编译依赖环境 35 | 36 | ```bash 37 | sudo apt update -y 38 | sudo apt full-upgrade -y 39 | sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \ 40 | bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \ 41 | git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \ 42 | libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \ 43 | mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pyelftools \ 44 | libpython3-dev qemu-utils rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip \ 45 | vim wget xmlto xxd zlib1g-dev 46 | ``` 47 | 48 | 3. 下载源代码,更新 feeds 并安装到本地 49 | 50 | ```bash 51 | git clone https://github.com/coolsnowwolf/lede 52 | cd lede 53 | ./scripts/feeds update -a 54 | ./scripts/feeds install -a 55 | ``` 56 | 57 | 4. 复制 diy-script.sh 文件内所有内容到命令行,添加自定义插件和自定义设置 58 | 59 | 5. 命令行输入 `make menuconfig` 选择配置,选好配置后导出差异部分到 seed.config 文件 60 | 61 | ```bash 62 | make defconfig 63 | ./scripts/diffconfig.sh > seed.config 64 | ``` 65 | 66 | 7. 命令行输入 `cat seed.config` 查看这个文件,也可以用文本编辑器打开 67 | 68 | 8. 复制 seed.config 文件内所有内容到 configs 目录对应文件中覆盖就可以了 69 | 70 | **如果看不懂编译界面可以参考 YouTube 视频:[软路由固件 OpenWrt 编译界面设置](https://www.youtube.com/watch?v=jEE_J6-4E3Y&list=WL&index=7)** 71 |
72 | 73 | 74 | ## 特别提示 [![](https://img.shields.io/badge/-个人免责声明-FFFFFF.svg)](#特别提示-) 75 | 76 | - **本人不对任何人因使用本固件所遭受的任何理论或实际的损失承担责任!** 77 | 78 | - **本固件禁止用于任何商业用途,请务必严格遵守国家互联网使用相关法律规定!** 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # shellcheck disable=SC2086,SC3043,SC2164,SC2103,SC2046,SC2155 3 | 4 | get_sources() { 5 | # the checkout actions will set $HOME to other directory, 6 | # we need to reset some necessary git configs again. 7 | git config --global user.name "OpenWrt Builder" 8 | git config --global user.email "buster-openwrt@ovvo.uk" 9 | 10 | git clone $BUILD_REPO --single-branch -b $GITHUB_REF_NAME openwrt 11 | 12 | cd openwrt 13 | ./scripts/feeds update -a 14 | ./scripts/feeds install -a 15 | cd - 16 | } 17 | 18 | echo_version() { 19 | echo "[=============== openwrt version ===============]" 20 | cd openwrt && git log -1 && cd - 21 | echo 22 | echo "[=============== configs version ===============]" 23 | cd configs && git log -1 && cd - 24 | } 25 | 26 | apply_patches() { 27 | [ -d patches ] || return 0 28 | 29 | dirname $(find patches -type f -name "*.patch") | sort -u | while read -r dir; do 30 | local patch_dir="$(realpath $dir)" 31 | cd "$(echo $dir | sed 's|^patches/|openwrt/|')" 32 | find $patch_dir -type f -name "*.patch" | while read -r patch; do 33 | git am $patch 34 | done 35 | cd - 36 | done 37 | } 38 | 39 | build_firmware() { 40 | cd openwrt 41 | export TERM=xterm 42 | 43 | cp ${GITHUB_WORKSPACE}/configs/${BUILD_PROFILE} .config 44 | make -j$(($(nproc) + 1)) V=e || make -j1 V=sc || exit 1 45 | 46 | cd - 47 | } 48 | 49 | package_binaries() { 50 | local bin_dir="openwrt/bin" 51 | local tarball="${BUILD_PROFILE}.tar.gz" 52 | tar -zcvf $tarball -C $bin_dir $(ls $bin_dir -1) 53 | } 54 | 55 | package_dl_src() { 56 | [ -n "$BACKUP_DL_SRC" ] || return 0 57 | [ $BACKUP_DL_SRC = 1 ] || return 0 58 | 59 | local dl_dir="openwrt/dl" 60 | local tarball="${BUILD_PROFILE}_dl-src.tar.gz" 61 | tar -zcvf $tarball -C $dl_dir $(ls $dl_dir -1) 62 | } 63 | 64 | get_sources 65 | echo_version 66 | apply_patches 67 | build_firmware 68 | package_binaries 69 | package_dl_src 70 | -------------------------------------------------------------------------------- /configs/ipq60xx-6.1-wifi(emmc).config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_qualcommax=y 2 | CONFIG_TARGET_qualcommax_ipq60xx=y 3 | CONFIG_TARGET_MULTI_PROFILE=y 4 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_jdc_ax1800-pro=y 5 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_jdc_ax1800-pro="ipq-wifi-jdc_ax1800-pro" 6 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5-jdcloud=y 7 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_redmi_ax5-jdcloud="ipq-wifi-redmi_ax5-jdcloud" 8 | CONFIG_BUSYBOX_CUSTOM=y 9 | CONFIG_TARGET_PER_DEVICE_ROOTFS=y 10 | CONFIG_BUSYBOX_CONFIG_LSUSB=y 11 | CONFIG_COREMARK_ENABLE_MULTITHREADING=y 12 | CONFIG_COREMARK_NUMBER_OF_THREADS=16 13 | CONFIG_COREMARK_OPTIMIZE_O3=y 14 | CONFIG_LUCI_LANG_zh_Hans=y 15 | CONFIG_NSS_DRV_C2C_ENABLE=y 16 | CONFIG_NSS_DRV_DTLS_ENABLE=y 17 | CONFIG_NSS_DRV_GRE_REDIR_ENABLE=y 18 | CONFIG_NSS_DRV_IPV4_REASM_ENABLE=y 19 | CONFIG_NSS_DRV_IPV6_REASM_ENABLE=y 20 | CONFIG_NSS_DRV_LAG_ENABLE=y 21 | CONFIG_NSS_DRV_MAPT_ENABLE=y 22 | CONFIG_NSS_DRV_OAM_ENABLE=y 23 | CONFIG_NSS_DRV_QRFS_ENABLE=y 24 | CONFIG_NSS_DRV_RMNET_ENABLE=y 25 | CONFIG_NSS_DRV_TLS_ENABLE=y 26 | CONFIG_PACKAGE_NTFS-3G_HAS_PROBE=y 27 | CONFIG_PACKAGE_autocore=y 28 | CONFIG_PACKAGE_block-mount=y 29 | CONFIG_PACKAGE_cgi-io=y 30 | CONFIG_PACKAGE_coremark=y 31 | CONFIG_PACKAGE_ddns-go=y 32 | CONFIG_PACKAGE_default-settings=y 33 | CONFIG_PACKAGE_default-settings-chn=y 34 | CONFIG_PACKAGE_fullconenat=y 35 | CONFIG_PACKAGE_iperf3=y 36 | CONFIG_PACKAGE_kmod-ath11k-pci=y 37 | CONFIG_PACKAGE_kmod-fs-exportfs=y 38 | CONFIG_PACKAGE_kmod-fs-ntfs=y 39 | CONFIG_PACKAGE_kmod-fs-vfat=y 40 | CONFIG_PACKAGE_kmod-fs-xfs=y 41 | CONFIG_PACKAGE_kmod-fuse=y 42 | CONFIG_PACKAGE_kmod-nls-cp437=y 43 | CONFIG_PACKAGE_kmod-nls-iso8859-1=y 44 | CONFIG_PACKAGE_kmod-nls-utf8=y 45 | CONFIG_PACKAGE_kmod-nss-ifb=y 46 | CONFIG_PACKAGE_kmod-qca-mcs=y 47 | CONFIG_PACKAGE_kmod-scsi-core=y 48 | CONFIG_PACKAGE_kmod-usb-dwc2=y 49 | CONFIG_PACKAGE_kmod-usb-dwc2-pci=y 50 | CONFIG_PACKAGE_kmod-usb-ehci=y 51 | CONFIG_PACKAGE_kmod-usb-ohci=y 52 | CONFIG_PACKAGE_kmod-usb-ohci-pci=y 53 | CONFIG_PACKAGE_kmod-usb-phy-nop=y 54 | CONFIG_PACKAGE_kmod-usb-roles=y 55 | CONFIG_PACKAGE_kmod-usb-storage=y 56 | CONFIG_PACKAGE_kmod-usb-storage-extras=y 57 | CONFIG_PACKAGE_kmod-usb-storage-uas=y 58 | CONFIG_PACKAGE_kmod-usb-uhci=y 59 | CONFIG_PACKAGE_kmod-usb2=y 60 | CONFIG_PACKAGE_kmod-usb2-pci=y 61 | CONFIG_PACKAGE_libatomic=y 62 | CONFIG_PACKAGE_libcap-ng=y 63 | CONFIG_PACKAGE_libiperf3=y 64 | CONFIG_PACKAGE_liblua=y 65 | CONFIG_PACKAGE_liblucihttp=y 66 | CONFIG_PACKAGE_liblucihttp-lua=y 67 | CONFIG_PACKAGE_liblucihttp-ucode=y 68 | CONFIG_PACKAGE_libubus-lua=y 69 | CONFIG_PACKAGE_lscpu=y 70 | CONFIG_PACKAGE_lua=y 71 | CONFIG_PACKAGE_luci=y 72 | CONFIG_PACKAGE_luci-app-argon-config=y 73 | CONFIG_PACKAGE_luci-app-ddns-go=y 74 | CONFIG_PACKAGE_luci-app-firewall=y 75 | CONFIG_PACKAGE_luci-app-opkg=y 76 | CONFIG_PACKAGE_luci-app-upnp=y 77 | CONFIG_PACKAGE_luci-base=y 78 | CONFIG_PACKAGE_luci-i18n-argon-config-zh-cn=y 79 | CONFIG_PACKAGE_luci-i18n-base-zh-cn=y 80 | CONFIG_PACKAGE_luci-i18n-ddns-go-zh-cn=y 81 | CONFIG_PACKAGE_luci-i18n-firewall-zh-cn=y 82 | CONFIG_PACKAGE_luci-i18n-opkg-zh-cn=y 83 | CONFIG_PACKAGE_luci-i18n-upnp-zh-cn=y 84 | CONFIG_PACKAGE_luci-lib-base=y 85 | CONFIG_PACKAGE_luci-lib-ip=y 86 | CONFIG_PACKAGE_luci-lib-jsonc=y 87 | CONFIG_PACKAGE_luci-lib-nixio=y 88 | CONFIG_PACKAGE_luci-light=y 89 | CONFIG_PACKAGE_luci-lua-runtime=y 90 | CONFIG_PACKAGE_luci-mod-admin-full=y 91 | CONFIG_PACKAGE_luci-mod-network=y 92 | CONFIG_PACKAGE_luci-mod-status=y 93 | CONFIG_PACKAGE_luci-mod-system=y 94 | CONFIG_PACKAGE_luci-proto-ipv6=y 95 | CONFIG_PACKAGE_luci-proto-ppp=y 96 | CONFIG_PACKAGE_luci-theme-argon=y 97 | CONFIG_PACKAGE_luci-theme-bootstrap=y 98 | CONFIG_PACKAGE_miniupnpd-nftables=y 99 | CONFIG_PACKAGE_nss-firmware-ipq6018=y 100 | CONFIG_PACKAGE_ntfs-3g=y 101 | CONFIG_PACKAGE_rpcd=y 102 | CONFIG_PACKAGE_rpcd-mod-file=y 103 | CONFIG_PACKAGE_rpcd-mod-iwinfo=y 104 | CONFIG_PACKAGE_rpcd-mod-luci=y 105 | CONFIG_PACKAGE_rpcd-mod-rrdns=y 106 | CONFIG_PACKAGE_rpcd-mod-ucode=y 107 | CONFIG_PACKAGE_ucode-mod-html=y 108 | CONFIG_PACKAGE_ucode-mod-lua=y 109 | CONFIG_PACKAGE_ucode-mod-math=y 110 | CONFIG_PACKAGE_ucode-mod-uci=y 111 | CONFIG_PACKAGE_uhttpd=y 112 | CONFIG_PACKAGE_uhttpd-mod-ubus=y 113 | -------------------------------------------------------------------------------- /configs/ipq60xx-6.1-wifi.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_qualcommax=y 2 | CONFIG_TARGET_qualcommax_ipq60xx=y 3 | CONFIG_TARGET_MULTI_PROFILE=y 4 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_cmiot_ax18=y 5 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_cmiot_ax18="ipq-wifi-cmiot_ax18" 6 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_qihoo_v6=y 7 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_qihoo_v6="ipq-wifi-qihoo_v6" 8 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5=y 9 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_redmi_ax5="ipq-wifi-redmi_ax5" 10 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_xiaomi_ax1800=y 11 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_xiaomi_ax1800="ipq-wifi-xiaomi_ax1800" 12 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_zn_m2=y 13 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_zn_m2="ipq-wifi-zn_m2" 14 | CONFIG_BUSYBOX_CUSTOM=y 15 | CONFIG_TARGET_PER_DEVICE_ROOTFS=y 16 | CONFIG_ATH10K_LEDS=y 17 | CONFIG_ATH10K_THERMAL=y 18 | CONFIG_BUSYBOX_CONFIG_LSUSB=y 19 | CONFIG_COREMARK_ENABLE_MULTITHREADING=y 20 | CONFIG_COREMARK_NUMBER_OF_THREADS=16 21 | CONFIG_COREMARK_OPTIMIZE_O3=y 22 | CONFIG_LIBCURL_COOKIES=y 23 | CONFIG_LIBCURL_CRYPTO_AUTH=y 24 | CONFIG_LIBCURL_FILE=y 25 | CONFIG_LIBCURL_FTP=y 26 | CONFIG_LIBCURL_HTTP=y 27 | CONFIG_LIBCURL_NGHTTP2=y 28 | CONFIG_LIBCURL_OPENSSL=y 29 | CONFIG_LIBCURL_PROXY=y 30 | CONFIG_LIBCURL_TFTP=y 31 | CONFIG_LIBCURL_THREADED_RESOLVER=y 32 | CONFIG_LIBCURL_TLS_SRP=y 33 | CONFIG_LIBCURL_UNIX_SOCKETS=y 34 | CONFIG_LUCI_LANG_zh_Hans=y 35 | CONFIG_NSS_DRV_C2C_ENABLE=y 36 | CONFIG_NSS_DRV_DTLS_ENABLE=y 37 | CONFIG_NSS_DRV_GRE_REDIR_ENABLE=y 38 | CONFIG_NSS_DRV_IPV4_REASM_ENABLE=y 39 | CONFIG_NSS_DRV_IPV6_REASM_ENABLE=y 40 | CONFIG_NSS_DRV_LAG_ENABLE=y 41 | CONFIG_NSS_DRV_MAPT_ENABLE=y 42 | CONFIG_NSS_DRV_OAM_ENABLE=y 43 | CONFIG_NSS_DRV_QRFS_ENABLE=y 44 | CONFIG_NSS_DRV_RMNET_ENABLE=y 45 | CONFIG_NSS_DRV_TLS_ENABLE=y 46 | CONFIG_NSS_DRV_WIFI_MESH_ENABLE=y 47 | CONFIG_OPENSSL_ENGINE=y 48 | CONFIG_OPENSSL_WITH_ASM=y 49 | CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y 50 | CONFIG_OPENSSL_WITH_CMS=y 51 | CONFIG_OPENSSL_WITH_DEPRECATED=y 52 | CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y 53 | CONFIG_OPENSSL_WITH_IDEA=y 54 | CONFIG_OPENSSL_WITH_MDC2=y 55 | CONFIG_OPENSSL_WITH_PSK=y 56 | CONFIG_OPENSSL_WITH_SEED=y 57 | CONFIG_OPENSSL_WITH_SRP=y 58 | CONFIG_OPENSSL_WITH_TLS13=y 59 | CONFIG_OPENSSL_WITH_WHIRLPOOL=y 60 | CONFIG_PACKAGE_6in4=y 61 | CONFIG_PACKAGE_NTFS-3G_HAS_PROBE=y 62 | CONFIG_PACKAGE_bash=y 63 | CONFIG_PACKAGE_block-mount=y 64 | CONFIG_PACKAGE_ca-certificates=y 65 | CONFIG_PACKAGE_cgi-io=y 66 | CONFIG_PACKAGE_chinadns-ng=y 67 | CONFIG_PACKAGE_coremark=y 68 | CONFIG_PACKAGE_coreutils=y 69 | CONFIG_PACKAGE_coreutils-nohup=y 70 | CONFIG_PACKAGE_cpufreq=y 71 | CONFIG_PACKAGE_curl=y 72 | CONFIG_PACKAGE_ddns-go=y 73 | CONFIG_PACKAGE_default-settings=y 74 | CONFIG_PACKAGE_default-settings-chn=y 75 | CONFIG_PACKAGE_firewall=m 76 | CONFIG_PACKAGE_firewall4=y 77 | CONFIG_PACKAGE_ip-full=y 78 | CONFIG_PACKAGE_iperf3=y 79 | CONFIG_PACKAGE_ipset=y 80 | CONFIG_PACKAGE_iptables-mod-ipopt=y 81 | CONFIG_PACKAGE_kmod-ath10k=y 82 | CONFIG_PACKAGE_kmod-ath11k-pci=y 83 | CONFIG_PACKAGE_kmod-crypto-acompress=y 84 | CONFIG_PACKAGE_kmod-fs-exfat=y 85 | CONFIG_PACKAGE_kmod-fs-exportfs=y 86 | CONFIG_PACKAGE_kmod-fs-ntfs=y 87 | CONFIG_PACKAGE_kmod-fs-ntfs3=m 88 | CONFIG_PACKAGE_kmod-fs-vfat=y 89 | CONFIG_PACKAGE_kmod-fs-xfs=y 90 | CONFIG_PACKAGE_kmod-fuse=y 91 | CONFIG_PACKAGE_kmod-ifb=y 92 | CONFIG_PACKAGE_kmod-inet-diag=y 93 | CONFIG_PACKAGE_kmod-ipt-ipopt=y 94 | CONFIG_PACKAGE_kmod-ipt-ipset=y 95 | CONFIG_PACKAGE_kmod-iptunnel4=y 96 | CONFIG_PACKAGE_kmod-lib-lzo=y 97 | CONFIG_PACKAGE_kmod-nft-fib=y 98 | CONFIG_PACKAGE_kmod-nft-fullcone=y 99 | CONFIG_PACKAGE_kmod-nft-tproxy=y 100 | CONFIG_PACKAGE_kmod-nls-cp437=y 101 | CONFIG_PACKAGE_kmod-nls-iso8859-1=y 102 | CONFIG_PACKAGE_kmod-nls-utf8=y 103 | CONFIG_PACKAGE_kmod-nss-ifb=y 104 | CONFIG_PACKAGE_kmod-qca-mcs=y 105 | CONFIG_PACKAGE_kmod-sched-cake=y 106 | CONFIG_PACKAGE_kmod-sched-core=y 107 | CONFIG_PACKAGE_kmod-scsi-core=y 108 | CONFIG_PACKAGE_kmod-sit=y 109 | CONFIG_PACKAGE_kmod-tun=y 110 | CONFIG_PACKAGE_kmod-usb-dwc2=y 111 | CONFIG_PACKAGE_kmod-usb-dwc2-pci=y 112 | CONFIG_PACKAGE_kmod-usb-ehci=y 113 | CONFIG_PACKAGE_kmod-usb-ohci=y 114 | CONFIG_PACKAGE_kmod-usb-ohci-pci=y 115 | CONFIG_PACKAGE_kmod-usb-phy-nop=y 116 | CONFIG_PACKAGE_kmod-usb-roles=y 117 | CONFIG_PACKAGE_kmod-usb-storage=y 118 | CONFIG_PACKAGE_kmod-usb-storage-extras=y 119 | CONFIG_PACKAGE_kmod-usb-storage-uas=y 120 | CONFIG_PACKAGE_kmod-usb-uhci=y 121 | CONFIG_PACKAGE_kmod-usb2=y 122 | CONFIG_PACKAGE_kmod-usb2-pci=y 123 | CONFIG_PACKAGE_kmod-zram=y 124 | CONFIG_PACKAGE_libatomic=y 125 | CONFIG_PACKAGE_libbpf=y 126 | CONFIG_PACKAGE_libcap=y 127 | CONFIG_PACKAGE_libcap-bin=y 128 | CONFIG_PACKAGE_libcap-bin-capsh-shell="/bin/sh" 129 | CONFIG_PACKAGE_libcap-ng=y 130 | CONFIG_PACKAGE_libcurl=y 131 | CONFIG_PACKAGE_libelf=y 132 | CONFIG_PACKAGE_libiperf3=y 133 | CONFIG_PACKAGE_libipset=y 134 | CONFIG_PACKAGE_liblua=y 135 | CONFIG_PACKAGE_liblucihttp=y 136 | CONFIG_PACKAGE_liblucihttp-lua=y 137 | CONFIG_PACKAGE_liblucihttp-ucode=y 138 | CONFIG_PACKAGE_libncurses=y 139 | CONFIG_PACKAGE_libnghttp2=y 140 | CONFIG_PACKAGE_libopenssl=y 141 | CONFIG_PACKAGE_libpcre2=y 142 | CONFIG_PACKAGE_libreadline=y 143 | CONFIG_PACKAGE_libruby=y 144 | CONFIG_PACKAGE_libubus-lua=y 145 | CONFIG_PACKAGE_libuv=y 146 | CONFIG_PACKAGE_libwebsockets-full=y 147 | CONFIG_PACKAGE_libyaml=y 148 | CONFIG_PACKAGE_lscpu=y 149 | CONFIG_PACKAGE_lua=y 150 | CONFIG_PACKAGE_luci=y 151 | CONFIG_PACKAGE_luci-app-argon-config=y 152 | CONFIG_PACKAGE_luci-app-ddns-go=y 153 | CONFIG_PACKAGE_luci-app-firewall=y 154 | CONFIG_PACKAGE_luci-app-homeproxy=y 155 | CONFIG_PACKAGE_luci-app-opkg=y 156 | CONFIG_PACKAGE_luci-app-ttyd=y 157 | CONFIG_PACKAGE_luci-app-upnp=y 158 | CONFIG_PACKAGE_luci-base=y 159 | CONFIG_PACKAGE_luci-compat=y 160 | CONFIG_PACKAGE_luci-i18n-argon-config-zh-cn=y 161 | CONFIG_PACKAGE_luci-i18n-base-zh-cn=y 162 | CONFIG_PACKAGE_luci-i18n-ddns-go-zh-cn=y 163 | CONFIG_PACKAGE_luci-i18n-firewall-zh-cn=y 164 | CONFIG_PACKAGE_luci-i18n-homeproxy-zh-cn=y 165 | CONFIG_PACKAGE_luci-i18n-opkg-zh-cn=y 166 | CONFIG_PACKAGE_luci-i18n-ttyd-zh-cn=y 167 | CONFIG_PACKAGE_luci-i18n-upnp-zh-cn=y 168 | CONFIG_PACKAGE_luci-lib-base=y 169 | CONFIG_PACKAGE_luci-lib-ip=y 170 | CONFIG_PACKAGE_luci-lib-jsonc=y 171 | CONFIG_PACKAGE_luci-lib-nixio=y 172 | CONFIG_PACKAGE_luci-light=y 173 | CONFIG_PACKAGE_luci-lua-runtime=y 174 | CONFIG_PACKAGE_luci-mod-admin-full=y 175 | CONFIG_PACKAGE_luci-mod-network=y 176 | CONFIG_PACKAGE_luci-mod-status=y 177 | CONFIG_PACKAGE_luci-mod-system=y 178 | CONFIG_PACKAGE_luci-proto-ipv6=y 179 | CONFIG_PACKAGE_luci-proto-ppp=y 180 | CONFIG_PACKAGE_luci-theme-argon=y 181 | CONFIG_PACKAGE_luci-theme-bootstrap=y 182 | CONFIG_PACKAGE_miniupnpd-nftables=y 183 | CONFIG_PACKAGE_nss-firmware-ipq6018=y 184 | CONFIG_PACKAGE_ntfs-3g=y 185 | CONFIG_PACKAGE_ntfs3-mount=m 186 | CONFIG_PACKAGE_rpcd=y 187 | CONFIG_PACKAGE_rpcd-mod-file=y 188 | CONFIG_PACKAGE_rpcd-mod-iwinfo=y 189 | CONFIG_PACKAGE_rpcd-mod-luci=y 190 | CONFIG_PACKAGE_rpcd-mod-rrdns=y 191 | CONFIG_PACKAGE_rpcd-mod-ucode=y 192 | CONFIG_PACKAGE_ruby=y 193 | CONFIG_PACKAGE_ruby-bigdecimal=y 194 | CONFIG_PACKAGE_ruby-date=y 195 | CONFIG_PACKAGE_ruby-digest=y 196 | CONFIG_PACKAGE_ruby-enc=y 197 | CONFIG_PACKAGE_ruby-forwardable=y 198 | CONFIG_PACKAGE_ruby-pstore=y 199 | CONFIG_PACKAGE_ruby-psych=y 200 | CONFIG_PACKAGE_ruby-stringio=y 201 | CONFIG_PACKAGE_ruby-yaml=y 202 | CONFIG_PACKAGE_sing-box=y 203 | CONFIG_PACKAGE_sqm-scripts=y 204 | CONFIG_PACKAGE_tc-tiny=y 205 | CONFIG_PACKAGE_terminfo=y 206 | CONFIG_PACKAGE_ttyd=y 207 | CONFIG_PACKAGE_ucode-mod-html=y 208 | CONFIG_PACKAGE_ucode-mod-lua=y 209 | CONFIG_PACKAGE_ucode-mod-math=y 210 | CONFIG_PACKAGE_ucode-mod-uci=y 211 | CONFIG_PACKAGE_uhttpd=y 212 | CONFIG_PACKAGE_uhttpd-mod-ubus=y 213 | CONFIG_PACKAGE_unzip=y 214 | CONFIG_PACKAGE_wget-ssl=y 215 | CONFIG_PACKAGE_zlib=y 216 | CONFIG_PACKAGE_zram-swap=y 217 | CONFIG_SINGBOX_WITH_CLASH_API=y 218 | CONFIG_SINGBOX_WITH_ECH=y 219 | CONFIG_SINGBOX_WITH_GVISOR=y 220 | CONFIG_SINGBOX_WITH_QUIC=y 221 | CONFIG_SINGBOX_WITH_REALITY_SERVER=y 222 | CONFIG_SINGBOX_WITH_UTLS=y 223 | CONFIG_SINGBOX_WITH_WIREGUARD=y 224 | # CONFIG_TARGET_ROOTFS_INITRAMFS is not set 225 | CONFIG_ZRAM_DEF_COMP_LZORLE=y 226 | CONFIG_PACKAGE_iptables-mod-extra=y 227 | CONFIG_PACKAGE_iptables-mod-fullconenat=y 228 | CONFIG_PACKAGE_iptables-mod-tproxy=y 229 | CONFIG_PACKAGE_kmod-ipt-conntrack=y 230 | CONFIG_PACKAGE_kmod-ipt-extra=y 231 | CONFIG_PACKAGE_kmod-ipt-fullconenat=y 232 | CONFIG_PACKAGE_kmod-ipt-nat=y 233 | CONFIG_PACKAGE_kmod-ipt-tproxy=y 234 | CONFIG_PACKAGE_libip4tc=y 235 | CONFIG_PACKAGE_libip6tc=y 236 | -------------------------------------------------------------------------------- /configs/ipq60xx-6.6-wifi(emmc).config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_qualcommax=y 2 | CONFIG_TARGET_qualcommax_ipq60xx=y 3 | CONFIG_TARGET_qualcommax_ipq60xx_DEVICE_jdc_ax1800-pro=y 4 | CONFIG_COREMARK_ENABLE_MULTITHREADING=y 5 | CONFIG_COREMARK_NUMBER_OF_THREADS=16 6 | CONFIG_COREMARK_OPTIMIZE_O3=y 7 | CONFIG_LIBCURL_COOKIES=y 8 | CONFIG_LIBCURL_FILE=y 9 | CONFIG_LIBCURL_FTP=y 10 | CONFIG_LIBCURL_HTTP=y 11 | CONFIG_LIBCURL_MBEDTLS=y 12 | CONFIG_LIBCURL_NGHTTP2=y 13 | CONFIG_LIBCURL_NO_SMB="!" 14 | CONFIG_LIBCURL_PROXY=y 15 | CONFIG_LIBCURL_UNIX_SOCKETS=y 16 | CONFIG_LUCI_LANG_zh_Hans=y 17 | CONFIG_NSS_DRV_BRIDGE_ENABLE=y 18 | CONFIG_NSS_DRV_CLMAP_ENABLE=y 19 | CONFIG_NSS_DRV_CRYPTO_ENABLE=y 20 | CONFIG_NSS_DRV_GRE_ENABLE=y 21 | CONFIG_NSS_DRV_IGS_ENABLE=y 22 | CONFIG_NSS_DRV_IPV6_ENABLE=y 23 | CONFIG_NSS_DRV_LAG_ENABLE=y 24 | CONFIG_NSS_DRV_MAPT_ENABLE=y 25 | CONFIG_NSS_DRV_MATCH_ENABLE=y 26 | CONFIG_NSS_DRV_OVPN_ENABLE=y 27 | CONFIG_NSS_DRV_PPPOE_ENABLE=y 28 | CONFIG_NSS_DRV_PPTP_ENABLE=y 29 | CONFIG_NSS_DRV_PVXLAN_ENABLE=y 30 | CONFIG_NSS_DRV_SHAPER_ENABLE=y 31 | CONFIG_NSS_DRV_TUN6RD_ENABLE=y 32 | CONFIG_NSS_DRV_TUNIPIP6_ENABLE=y 33 | CONFIG_NSS_DRV_VIRT_IF_ENABLE=y 34 | CONFIG_NSS_DRV_VLAN_ENABLE=y 35 | CONFIG_NSS_DRV_WIFI_ENABLE=y 36 | CONFIG_NSS_DRV_WIFI_EXT_VDEV_ENABLE=y 37 | CONFIG_NSS_DRV_WIFI_MESH_ENABLE=y 38 | CONFIG_OPENSSL_ENGINE=y 39 | CONFIG_OPENSSL_WITH_ASM=y 40 | CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y 41 | CONFIG_OPENSSL_WITH_CMS=y 42 | CONFIG_OPENSSL_WITH_DEPRECATED=y 43 | CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y 44 | CONFIG_OPENSSL_WITH_IDEA=y 45 | CONFIG_OPENSSL_WITH_MDC2=y 46 | CONFIG_OPENSSL_WITH_PSK=y 47 | CONFIG_OPENSSL_WITH_SEED=y 48 | CONFIG_OPENSSL_WITH_SRP=y 49 | CONFIG_OPENSSL_WITH_TLS13=y 50 | CONFIG_OPENSSL_WITH_WHIRLPOOL=y 51 | CONFIG_PACKAGE_6rd=y 52 | CONFIG_PACKAGE_block-mount=y 53 | CONFIG_PACKAGE_cgi-io=y 54 | CONFIG_PACKAGE_coremark=y 55 | CONFIG_PACKAGE_cpufreq=y 56 | CONFIG_PACKAGE_curl=y 57 | CONFIG_PACKAGE_ddns-go=y 58 | CONFIG_PACKAGE_default-settings=y 59 | CONFIG_PACKAGE_default-settings-chn=y 60 | # CONFIG_PACKAGE_dnsmasq_full_nftset is not set 61 | CONFIG_PACKAGE_ebtables-legacy=y 62 | CONFIG_PACKAGE_ip6tables-zz-legacy=y 63 | CONFIG_PACKAGE_iperf3=y 64 | # CONFIG_PACKAGE_iptables-nft is not set 65 | CONFIG_PACKAGE_iptables-zz-legacy=y 66 | # CONFIG_PACKAGE_iw is not set 67 | CONFIG_PACKAGE_iw-full=y 68 | CONFIG_PACKAGE_kmod-ath11k-pci=y 69 | CONFIG_PACKAGE_kmod-crypto-acompress=y 70 | CONFIG_PACKAGE_kmod-ebtables=y 71 | CONFIG_PACKAGE_kmod-fs-ntfs=y 72 | CONFIG_PACKAGE_kmod-fs-vfat=y 73 | CONFIG_PACKAGE_kmod-gre=y 74 | CONFIG_PACKAGE_kmod-gre6=y 75 | CONFIG_PACKAGE_kmod-ifb=y 76 | CONFIG_PACKAGE_kmod-inet-diag=y 77 | CONFIG_PACKAGE_kmod-ip6-tunnel=y 78 | CONFIG_PACKAGE_kmod-ip6tables=y 79 | CONFIG_PACKAGE_kmod-ipt-conntrack-extra=m 80 | CONFIG_PACKAGE_kmod-ipt-iprange=y 81 | CONFIG_PACKAGE_kmod-ipt-ipset=y 82 | CONFIG_PACKAGE_kmod-ipt-socket=y 83 | CONFIG_PACKAGE_kmod-iptunnel=y 84 | CONFIG_PACKAGE_kmod-iptunnel4=y 85 | CONFIG_PACKAGE_kmod-iptunnel6=y 86 | CONFIG_PACKAGE_kmod-l2tp=y 87 | CONFIG_PACKAGE_kmod-lib-lzo=y 88 | CONFIG_PACKAGE_kmod-mhi-bus=y 89 | CONFIG_PACKAGE_kmod-nf-ipt6=y 90 | # CONFIG_PACKAGE_kmod-nft-compat is not set 91 | CONFIG_PACKAGE_kmod-nft-core=y 92 | CONFIG_PACKAGE_kmod-nft-fib=y 93 | CONFIG_PACKAGE_kmod-nft-fullcone=y 94 | CONFIG_PACKAGE_kmod-nft-nat=y 95 | CONFIG_PACKAGE_kmod-nft-offload=m 96 | CONFIG_PACKAGE_kmod-nft-tproxy=y 97 | CONFIG_PACKAGE_kmod-nls-cp437=y 98 | CONFIG_PACKAGE_kmod-nls-iso8859-1=y 99 | CONFIG_PACKAGE_kmod-nls-utf8=y 100 | CONFIG_PACKAGE_kmod-nss-ifb=y 101 | CONFIG_PACKAGE_kmod-pppol2tp=y 102 | CONFIG_PACKAGE_kmod-pptp=y 103 | CONFIG_PACKAGE_kmod-qca-mcs=y 104 | CONFIG_PACKAGE_kmod-qca-nss-drv=y 105 | CONFIG_PACKAGE_kmod-qca-nss-drv-bridge-mgr=y 106 | CONFIG_PACKAGE_kmod-qca-nss-drv-clmapmgr=y 107 | CONFIG_PACKAGE_kmod-qca-nss-drv-eogremgr=y 108 | CONFIG_PACKAGE_kmod-qca-nss-drv-gre=y 109 | CONFIG_PACKAGE_kmod-qca-nss-drv-igs=y 110 | CONFIG_PACKAGE_kmod-qca-nss-drv-match=y 111 | CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe=y 112 | CONFIG_PACKAGE_kmod-qca-nss-drv-pptp=y 113 | CONFIG_PACKAGE_kmod-qca-nss-drv-pvxlanmgr=y 114 | CONFIG_PACKAGE_kmod-qca-nss-drv-qdisc=y 115 | CONFIG_PACKAGE_kmod-qca-nss-drv-tun6rd=y 116 | CONFIG_PACKAGE_kmod-qca-nss-drv-tunipip6=y 117 | CONFIG_PACKAGE_kmod-qca-nss-drv-vlan-mgr=y 118 | CONFIG_PACKAGE_kmod-qca-nss-ecm=y 119 | CONFIG_PACKAGE_kmod-qrtr-mhi=y 120 | CONFIG_PACKAGE_kmod-sched-core=y 121 | CONFIG_PACKAGE_kmod-scsi-core=y 122 | CONFIG_PACKAGE_kmod-sit=y 123 | CONFIG_PACKAGE_kmod-tun=y 124 | CONFIG_PACKAGE_kmod-udptunnel4=y 125 | CONFIG_PACKAGE_kmod-udptunnel6=y 126 | CONFIG_PACKAGE_kmod-usb-dwc2=y 127 | CONFIG_PACKAGE_kmod-usb-dwc2-pci=y 128 | CONFIG_PACKAGE_kmod-usb-ehci=y 129 | CONFIG_PACKAGE_kmod-usb-ohci=y 130 | CONFIG_PACKAGE_kmod-usb-ohci-pci=y 131 | CONFIG_PACKAGE_kmod-usb-phy-nop=y 132 | CONFIG_PACKAGE_kmod-usb-roles=y 133 | CONFIG_PACKAGE_kmod-usb-storage=y 134 | CONFIG_PACKAGE_kmod-usb-storage-extras=y 135 | CONFIG_PACKAGE_kmod-usb-uhci=y 136 | CONFIG_PACKAGE_kmod-usb2=y 137 | CONFIG_PACKAGE_kmod-usb2-pci=y 138 | CONFIG_PACKAGE_kmod-zram=y 139 | CONFIG_PACKAGE_kmod-wireguard=y 140 | CONFIG_PACKAGE_libatomic=y 141 | CONFIG_PACKAGE_libcap=y 142 | CONFIG_PACKAGE_libcap-ng=y 143 | CONFIG_PACKAGE_libcurl=y 144 | CONFIG_PACKAGE_libiperf3=y 145 | # CONFIG_PACKAGE_libiptext-nft is not set 146 | CONFIG_PACKAGE_liblua=y 147 | CONFIG_PACKAGE_liblucihttp=y 148 | CONFIG_PACKAGE_liblucihttp-lua=y 149 | CONFIG_PACKAGE_liblucihttp-ucode=y 150 | # CONFIG_PACKAGE_libnftnl is not set 151 | CONFIG_PACKAGE_libnghttp2=y 152 | CONFIG_PACKAGE_libopenssl=y 153 | CONFIG_PACKAGE_libubus-lua=y 154 | CONFIG_PACKAGE_libuv=y 155 | CONFIG_PACKAGE_libwebsockets-full=y 156 | CONFIG_PACKAGE_lua=y 157 | CONFIG_PACKAGE_luci=y 158 | CONFIG_PACKAGE_luci-app-argon-config=y 159 | CONFIG_PACKAGE_luci-app-ddns-go=y 160 | CONFIG_PACKAGE_luci-app-firewall=y 161 | CONFIG_PACKAGE_luci-app-opkg=y 162 | CONFIG_PACKAGE_luci-app-ttyd=y 163 | CONFIG_PACKAGE_luci-app-upnp=y 164 | CONFIG_PACKAGE_luci-base=y 165 | CONFIG_PACKAGE_luci-compat=y 166 | CONFIG_PACKAGE_luci-i18n-argon-config-zh-cn=y 167 | CONFIG_PACKAGE_luci-i18n-base-zh-cn=y 168 | CONFIG_PACKAGE_luci-i18n-ddns-go-zh-cn=y 169 | CONFIG_PACKAGE_luci-i18n-firewall-zh-cn=y 170 | CONFIG_PACKAGE_luci-i18n-opkg-zh-cn=y 171 | CONFIG_PACKAGE_luci-i18n-ttyd-zh-cn=y 172 | CONFIG_PACKAGE_luci-i18n-upnp-zh-cn=y 173 | CONFIG_PACKAGE_luci-lib-base=y 174 | CONFIG_PACKAGE_luci-lib-ip=y 175 | CONFIG_PACKAGE_luci-lib-jsonc=y 176 | CONFIG_PACKAGE_luci-lib-nixio=y 177 | CONFIG_PACKAGE_luci-light=y 178 | CONFIG_PACKAGE_luci-lua-runtime=y 179 | CONFIG_PACKAGE_luci-mod-admin-full=y 180 | CONFIG_PACKAGE_luci-mod-network=y 181 | CONFIG_PACKAGE_luci-mod-status=y 182 | CONFIG_PACKAGE_luci-mod-system=y 183 | CONFIG_PACKAGE_luci-proto-ipv6=y 184 | CONFIG_PACKAGE_luci-proto-ppp=y 185 | CONFIG_PACKAGE_luci-theme-argon=y 186 | CONFIG_PACKAGE_luci-theme-bootstrap=y 187 | CONFIG_PACKAGE_miniupnpd-iptables=y 188 | CONFIG_PACKAGE_luci-proto-wireguard=y 189 | # CONFIG_PACKAGE_nftables-json is not set 190 | CONFIG_PACKAGE_nss-firmware-ipq6018=y 191 | CONFIG_PACKAGE_rpcd=y 192 | CONFIG_PACKAGE_rpcd-mod-file=y 193 | CONFIG_PACKAGE_rpcd-mod-iwinfo=y 194 | CONFIG_PACKAGE_rpcd-mod-luci=y 195 | CONFIG_PACKAGE_rpcd-mod-rrdns=y 196 | CONFIG_PACKAGE_rpcd-mod-ucode=y 197 | CONFIG_PACKAGE_ttyd=y 198 | CONFIG_PACKAGE_ucode-mod-html=y 199 | CONFIG_PACKAGE_ucode-mod-lua=y 200 | CONFIG_PACKAGE_ucode-mod-math=y 201 | CONFIG_PACKAGE_ucode-mod-uci=y 202 | CONFIG_PACKAGE_uhttpd=y 203 | CONFIG_PACKAGE_uhttpd-mod-ubus=y 204 | CONFIG_PACKAGE_wireless-tools=y 205 | CONFIG_PACKAGE_xtables-legacy=y 206 | # CONFIG_PACKAGE_xtables-nft is not set 207 | CONFIG_PACKAGE_zlib=y 208 | CONFIG_PACKAGE_zram-swap=y 209 | CONFIG_TARGET_EXT4_BLOCKSIZE=4096 210 | CONFIG_TARGET_EXT4_BLOCKSIZE_4K=y 211 | CONFIG_TARGET_EXT4_JOURNAL=y 212 | CONFIG_TARGET_EXT4_RESERVED_PCT=0 213 | CONFIG_TARGET_IMAGES_GZIP=y 214 | CONFIG_TARGET_ROOTFS_EXT4FS=y 215 | CONFIG_TARGET_ROOTFS_PARTSIZE=104 216 | CONFIG_ZRAM_DEF_COMP_LZORLE=y 217 | CONFIG_PACKAGE_jansson=y 218 | CONFIG_PACKAGE_kmod-lib-crc32c=y 219 | CONFIG_PACKAGE_kmod-nf-flow=y 220 | -------------------------------------------------------------------------------- /configs/ipq60xx-6.6-wifi2.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_qualcommax=y 2 | CONFIG_TARGET_qualcommax_ipq60xx=y 3 | CONFIG_TARGET_MULTI_PROFILE=y 4 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_cmiot_ax18=y 5 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_cmiot_ax18="ipq-wifi-cmiot_ax18" 6 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_qihoo_v6=y 7 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_qihoo_v6="ipq-wifi-qihoo_v6" 8 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5=y 9 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_redmi_ax5="ipq-wifi-redmi_ax5" 10 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_xiaomi_ax1800=y 11 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_xiaomi_ax1800="ipq-wifi-xiaomi_ax1800" 12 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_zn_m2=y 13 | CONFIG_TARGET_DEVICE_PACKAGES_qualcommax_ipq60xx_DEVICE_zn_m2="ipq-wifi-zn_m2" 14 | CONFIG_TARGET_PER_DEVICE_ROOTFS=y 15 | CONFIG_COREMARK_ENABLE_MULTITHREADING=y 16 | CONFIG_COREMARK_NUMBER_OF_THREADS=16 17 | CONFIG_COREMARK_OPTIMIZE_O3=y 18 | CONFIG_LIBCURL_COOKIES=y 19 | CONFIG_LIBCURL_FILE=y 20 | CONFIG_LIBCURL_FTP=y 21 | CONFIG_LIBCURL_HTTP=y 22 | CONFIG_LIBCURL_MBEDTLS=y 23 | CONFIG_LIBCURL_NGHTTP2=y 24 | CONFIG_LIBCURL_NO_SMB="!" 25 | CONFIG_LIBCURL_PROXY=y 26 | CONFIG_LIBCURL_UNIX_SOCKETS=y 27 | CONFIG_LUCI_LANG_zh_Hans=y 28 | CONFIG_NSS_DRV_BRIDGE_ENABLE=y 29 | CONFIG_NSS_DRV_CLMAP_ENABLE=y 30 | CONFIG_NSS_DRV_CRYPTO_ENABLE=y 31 | CONFIG_NSS_DRV_GRE_ENABLE=y 32 | CONFIG_NSS_DRV_IGS_ENABLE=y 33 | CONFIG_NSS_DRV_IPV6_ENABLE=y 34 | CONFIG_NSS_DRV_LAG_ENABLE=y 35 | CONFIG_NSS_DRV_MAPT_ENABLE=y 36 | CONFIG_NSS_DRV_MATCH_ENABLE=y 37 | CONFIG_NSS_DRV_OVPN_ENABLE=y 38 | CONFIG_NSS_DRV_PPPOE_ENABLE=y 39 | CONFIG_NSS_DRV_PPTP_ENABLE=y 40 | CONFIG_NSS_DRV_PVXLAN_ENABLE=y 41 | CONFIG_NSS_DRV_SHAPER_ENABLE=y 42 | CONFIG_NSS_DRV_TUN6RD_ENABLE=y 43 | CONFIG_NSS_DRV_TUNIPIP6_ENABLE=y 44 | CONFIG_NSS_DRV_VIRT_IF_ENABLE=y 45 | CONFIG_NSS_DRV_VLAN_ENABLE=y 46 | CONFIG_NSS_DRV_WIFI_ENABLE=y 47 | CONFIG_NSS_DRV_WIFI_EXT_VDEV_ENABLE=y 48 | CONFIG_NSS_DRV_WIFI_MESH_ENABLE=y 49 | CONFIG_OPENSSL_ENGINE=y 50 | CONFIG_OPENSSL_WITH_ASM=y 51 | CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y 52 | CONFIG_OPENSSL_WITH_CMS=y 53 | CONFIG_OPENSSL_WITH_DEPRECATED=y 54 | CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y 55 | CONFIG_OPENSSL_WITH_IDEA=y 56 | CONFIG_OPENSSL_WITH_MDC2=y 57 | CONFIG_OPENSSL_WITH_PSK=y 58 | CONFIG_OPENSSL_WITH_SEED=y 59 | CONFIG_OPENSSL_WITH_SRP=y 60 | CONFIG_OPENSSL_WITH_TLS13=y 61 | CONFIG_OPENSSL_WITH_WHIRLPOOL=y 62 | CONFIG_PACKAGE_6rd=y 63 | CONFIG_PACKAGE_bash=m 64 | CONFIG_PACKAGE_block-mount=y 65 | CONFIG_PACKAGE_boost=m 66 | CONFIG_PACKAGE_boost-program_options=m 67 | CONFIG_PACKAGE_boost-system=m 68 | CONFIG_PACKAGE_cgi-io=y 69 | CONFIG_PACKAGE_chinadns-ng=y 70 | CONFIG_PACKAGE_coremark=y 71 | CONFIG_PACKAGE_coreutils=m 72 | CONFIG_PACKAGE_coreutils-base64=m 73 | CONFIG_PACKAGE_coreutils-nohup=m 74 | CONFIG_PACKAGE_cpufreq=y 75 | CONFIG_PACKAGE_curl=y 76 | CONFIG_PACKAGE_ddns-go=y 77 | CONFIG_PACKAGE_default-settings=y 78 | CONFIG_PACKAGE_default-settings-chn=y 79 | CONFIG_PACKAGE_dns2socks=y 80 | CONFIG_PACKAGE_dns2tcp=m 81 | # CONFIG_PACKAGE_dnsmasq_full_nftset is not set 82 | CONFIG_PACKAGE_ebtables-legacy=y 83 | CONFIG_PACKAGE_f2fsck=y 84 | CONFIG_PACKAGE_firewall4=m 85 | CONFIG_PACKAGE_haproxy=m 86 | CONFIG_PACKAGE_ip-full=m 87 | CONFIG_PACKAGE_ip6tables-zz-legacy=y 88 | CONFIG_PACKAGE_iperf3=y 89 | CONFIG_PACKAGE_ipset=m 90 | CONFIG_PACKAGE_ipt2socks=m 91 | CONFIG_PACKAGE_iptables-mod-conntrack-extra=y 92 | CONFIG_PACKAGE_iptables-mod-iprange=y 93 | CONFIG_PACKAGE_iptables-mod-socket=y 94 | CONFIG_PACKAGE_iptables-nft=y 95 | CONFIG_PACKAGE_iptables-zz-legacy=y 96 | # CONFIG_PACKAGE_iw is not set 97 | CONFIG_PACKAGE_iw-full=y 98 | CONFIG_PACKAGE_kmod-ath11k-pci=y 99 | CONFIG_PACKAGE_kmod-crypto-acompress=y 100 | CONFIG_PACKAGE_kmod-crypto-crc32=y 101 | CONFIG_PACKAGE_kmod-ebtables=y 102 | CONFIG_PACKAGE_kmod-fs-f2fs=y 103 | CONFIG_PACKAGE_kmod-fs-ntfs=y 104 | CONFIG_PACKAGE_kmod-fs-vfat=y 105 | CONFIG_PACKAGE_kmod-gre=y 106 | CONFIG_PACKAGE_kmod-gre6=y 107 | CONFIG_PACKAGE_kmod-ifb=y 108 | CONFIG_PACKAGE_kmod-inet-diag=y 109 | CONFIG_PACKAGE_kmod-ip6-tunnel=y 110 | CONFIG_PACKAGE_kmod-ip6tables=y 111 | CONFIG_PACKAGE_kmod-ipt-conntrack-extra=m 112 | CONFIG_PACKAGE_kmod-ipt-iprange=y 113 | CONFIG_PACKAGE_kmod-ipt-ipset=y 114 | CONFIG_PACKAGE_kmod-ipt-socket=y 115 | CONFIG_PACKAGE_kmod-iptunnel=y 116 | CONFIG_PACKAGE_kmod-iptunnel4=y 117 | CONFIG_PACKAGE_kmod-iptunnel6=y 118 | CONFIG_PACKAGE_kmod-l2tp=y 119 | CONFIG_PACKAGE_kmod-lib-lzo=y 120 | CONFIG_PACKAGE_kmod-mhi-bus=y 121 | CONFIG_PACKAGE_kmod-nf-conncount=y 122 | CONFIG_PACKAGE_kmod-nf-ipt6=y 123 | CONFIG_PACKAGE_kmod-nf-socket=y 124 | # CONFIG_PACKAGE_kmod-nft-compat is not set 125 | CONFIG_PACKAGE_kmod-nft-core=y 126 | CONFIG_PACKAGE_kmod-nft-fib=y 127 | CONFIG_PACKAGE_kmod-nft-fullcone=y 128 | CONFIG_PACKAGE_kmod-nft-nat=y 129 | CONFIG_PACKAGE_kmod-nft-offload=m 130 | CONFIG_PACKAGE_kmod-nft-tproxy=y 131 | CONFIG_PACKAGE_kmod-nls-cp437=y 132 | CONFIG_PACKAGE_kmod-nls-iso8859-1=y 133 | CONFIG_PACKAGE_kmod-nls-utf8=y 134 | CONFIG_PACKAGE_kmod-nss-ifb=y 135 | CONFIG_PACKAGE_kmod-pppol2tp=y 136 | CONFIG_PACKAGE_kmod-pptp=y 137 | CONFIG_PACKAGE_kmod-qca-mcs=y 138 | CONFIG_PACKAGE_kmod-qca-nss-drv=y 139 | CONFIG_PACKAGE_kmod-qca-nss-drv-bridge-mgr=y 140 | CONFIG_PACKAGE_kmod-qca-nss-drv-clmapmgr=y 141 | CONFIG_PACKAGE_kmod-qca-nss-drv-eogremgr=y 142 | CONFIG_PACKAGE_kmod-qca-nss-drv-gre=y 143 | CONFIG_PACKAGE_kmod-qca-nss-drv-igs=y 144 | CONFIG_PACKAGE_kmod-qca-nss-drv-match=y 145 | CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe=y 146 | CONFIG_PACKAGE_kmod-qca-nss-drv-pptp=y 147 | CONFIG_PACKAGE_kmod-qca-nss-drv-pvxlanmgr=y 148 | CONFIG_PACKAGE_kmod-qca-nss-drv-qdisc=y 149 | CONFIG_PACKAGE_kmod-qca-nss-drv-tun6rd=y 150 | CONFIG_PACKAGE_kmod-qca-nss-drv-tunipip6=y 151 | CONFIG_PACKAGE_kmod-qca-nss-drv-vlan-mgr=y 152 | CONFIG_PACKAGE_kmod-qca-nss-ecm=y 153 | CONFIG_PACKAGE_kmod-qrtr-mhi=y 154 | CONFIG_PACKAGE_kmod-sched-core=y 155 | CONFIG_PACKAGE_kmod-scsi-core=y 156 | CONFIG_PACKAGE_kmod-sit=y 157 | CONFIG_PACKAGE_kmod-tun=y 158 | CONFIG_PACKAGE_kmod-udptunnel4=y 159 | CONFIG_PACKAGE_kmod-udptunnel6=y 160 | CONFIG_PACKAGE_kmod-usb-dwc2=y 161 | CONFIG_PACKAGE_kmod-usb-dwc2-pci=y 162 | CONFIG_PACKAGE_kmod-usb-ehci=y 163 | CONFIG_PACKAGE_kmod-usb-ohci=y 164 | CONFIG_PACKAGE_kmod-usb-ohci-pci=y 165 | CONFIG_PACKAGE_kmod-usb-phy-nop=y 166 | CONFIG_PACKAGE_kmod-usb-roles=y 167 | CONFIG_PACKAGE_kmod-usb-storage=y 168 | CONFIG_PACKAGE_kmod-usb-storage-extras=y 169 | CONFIG_PACKAGE_kmod-usb-uhci=y 170 | CONFIG_PACKAGE_kmod-usb2=y 171 | CONFIG_PACKAGE_kmod-usb2-pci=y 172 | CONFIG_PACKAGE_kmod-zram=y 173 | CONFIG_PACKAGE_libatomic=y 174 | CONFIG_PACKAGE_libbpf=m 175 | CONFIG_PACKAGE_libcap=y 176 | CONFIG_PACKAGE_libcap-bin=m 177 | CONFIG_PACKAGE_libcap-bin-capsh-shell="/bin/sh" 178 | CONFIG_PACKAGE_libcap-ng=y 179 | CONFIG_PACKAGE_libcurl=y 180 | CONFIG_PACKAGE_libelf=m 181 | CONFIG_PACKAGE_libf2fs=y 182 | CONFIG_PACKAGE_libiperf3=y 183 | CONFIG_PACKAGE_libipset=m 184 | # CONFIG_PACKAGE_libiptext-nft is not set 185 | CONFIG_PACKAGE_libltdl=m 186 | CONFIG_PACKAGE_liblua=y 187 | CONFIG_PACKAGE_liblua5.3=m 188 | CONFIG_PACKAGE_liblucihttp=y 189 | CONFIG_PACKAGE_liblucihttp-lua=y 190 | CONFIG_PACKAGE_liblucihttp-ucode=y 191 | CONFIG_PACKAGE_libncurses=m 192 | CONFIG_PACKAGE_libnftnl=m 193 | CONFIG_PACKAGE_libnghttp2=y 194 | CONFIG_PACKAGE_libopenssl=y 195 | CONFIG_PACKAGE_libpcre2=m 196 | CONFIG_PACKAGE_libreadline=m 197 | CONFIG_PACKAGE_libruby=m 198 | CONFIG_PACKAGE_libstdcpp=y 199 | CONFIG_PACKAGE_libubus-lua=y 200 | CONFIG_PACKAGE_libuci-lua=m 201 | CONFIG_PACKAGE_libuv=y 202 | CONFIG_PACKAGE_libwebsockets-full=y 203 | CONFIG_PACKAGE_libyaml=m 204 | CONFIG_PACKAGE_lua=y 205 | CONFIG_PACKAGE_luci=y 206 | CONFIG_PACKAGE_luci-app-argon-config=y 207 | CONFIG_PACKAGE_luci-app-ddns-go=y 208 | CONFIG_PACKAGE_luci-app-firewall=y 209 | CONFIG_PACKAGE_luci-app-homeproxy=y 210 | CONFIG_PACKAGE_luci-app-openclash=y 211 | CONFIG_PACKAGE_luci-app-opkg=y 212 | CONFIG_PACKAGE_luci-app-passwall=y 213 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Haproxy=y 214 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Simple_Obfs=y 215 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_SingBox=y 216 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan_Plus=y 217 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray_Plugin=y 218 | CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Xray=y 219 | CONFIG_PACKAGE_luci-app-passwall_Iptables_Transparent_Proxy=y 220 | CONFIG_PACKAGE_luci-app-ttyd=y 221 | CONFIG_PACKAGE_luci-app-upnp=y 222 | CONFIG_PACKAGE_luci-base=y 223 | CONFIG_PACKAGE_luci-compat=y 224 | CONFIG_PACKAGE_luci-i18n-argon-config-zh-cn=y 225 | CONFIG_PACKAGE_luci-i18n-base-zh-cn=y 226 | CONFIG_PACKAGE_luci-i18n-ddns-go-zh-cn=y 227 | CONFIG_PACKAGE_luci-i18n-firewall-zh-cn=y 228 | CONFIG_PACKAGE_luci-i18n-homeproxy-zh-cn=y 229 | CONFIG_PACKAGE_luci-i18n-opkg-zh-cn=y 230 | CONFIG_PACKAGE_luci-i18n-passwall-zh-cn=y 231 | CONFIG_PACKAGE_luci-i18n-ttyd-zh-cn=y 232 | CONFIG_PACKAGE_luci-i18n-upnp-zh-cn=y 233 | CONFIG_PACKAGE_luci-lib-base=y 234 | CONFIG_PACKAGE_luci-lib-ip=y 235 | CONFIG_PACKAGE_luci-lib-jsonc=y 236 | CONFIG_PACKAGE_luci-lib-nixio=y 237 | CONFIG_PACKAGE_luci-light=y 238 | CONFIG_PACKAGE_luci-lua-runtime=y 239 | CONFIG_PACKAGE_luci-mod-admin-full=y 240 | CONFIG_PACKAGE_luci-mod-network=y 241 | CONFIG_PACKAGE_luci-mod-status=y 242 | CONFIG_PACKAGE_luci-mod-system=y 243 | CONFIG_PACKAGE_luci-proto-ipv6=y 244 | CONFIG_PACKAGE_luci-proto-ppp=y 245 | CONFIG_PACKAGE_luci-theme-argon=y 246 | CONFIG_PACKAGE_luci-theme-bootstrap=y 247 | CONFIG_PACKAGE_microsocks=m 248 | CONFIG_PACKAGE_miniupnpd-iptables=y 249 | CONFIG_PACKAGE_mkf2fs=y 250 | CONFIG_PACKAGE_nftables-json=m 251 | CONFIG_PACKAGE_nss-firmware-ipq6018=y 252 | CONFIG_PACKAGE_resolveip=m 253 | CONFIG_PACKAGE_rpcd=y 254 | CONFIG_PACKAGE_rpcd-mod-file=y 255 | CONFIG_PACKAGE_rpcd-mod-iwinfo=y 256 | CONFIG_PACKAGE_rpcd-mod-luci=y 257 | CONFIG_PACKAGE_rpcd-mod-rrdns=y 258 | CONFIG_PACKAGE_rpcd-mod-ucode=y 259 | CONFIG_PACKAGE_ruby=m 260 | CONFIG_PACKAGE_ruby-bigdecimal=m 261 | CONFIG_PACKAGE_ruby-date=m 262 | CONFIG_PACKAGE_ruby-digest=m 263 | CONFIG_PACKAGE_ruby-enc=m 264 | CONFIG_PACKAGE_ruby-forwardable=m 265 | CONFIG_PACKAGE_ruby-pstore=m 266 | CONFIG_PACKAGE_ruby-psych=m 267 | CONFIG_PACKAGE_ruby-stringio=m 268 | CONFIG_PACKAGE_ruby-yaml=m 269 | CONFIG_PACKAGE_sing-box=m 270 | CONFIG_PACKAGE_tcping=m 271 | CONFIG_PACKAGE_terminfo=m 272 | CONFIG_PACKAGE_trojan-plus=y 273 | CONFIG_PACKAGE_ttyd=y 274 | CONFIG_PACKAGE_ucode-mod-html=y 275 | CONFIG_PACKAGE_ucode-mod-lua=y 276 | CONFIG_PACKAGE_ucode-mod-math=y 277 | CONFIG_PACKAGE_ucode-mod-uci=y 278 | CONFIG_PACKAGE_uhttpd=y 279 | CONFIG_PACKAGE_uhttpd-mod-ubus=y 280 | CONFIG_PACKAGE_unzip=m 281 | CONFIG_PACKAGE_v2ray-plugin=m 282 | CONFIG_PACKAGE_wireless-tools=y 283 | CONFIG_PACKAGE_xray-core=y 284 | CONFIG_PACKAGE_xtables-legacy=y 285 | CONFIG_PACKAGE_xtables-nft=y 286 | CONFIG_PACKAGE_zlib=y 287 | CONFIG_PACKAGE_zram-swap=y 288 | CONFIG_SINGBOX_WITH_CLASH_API=y 289 | CONFIG_SINGBOX_WITH_ECH=y 290 | CONFIG_SINGBOX_WITH_GVISOR=y 291 | CONFIG_SINGBOX_WITH_QUIC=y 292 | CONFIG_SINGBOX_WITH_REALITY_SERVER=y 293 | CONFIG_SINGBOX_WITH_UTLS=y 294 | CONFIG_SINGBOX_WITH_WIREGUARD=y 295 | # CONFIG_TARGET_ROOTFS_INITRAMFS is not set 296 | CONFIG_ZRAM_DEF_COMP_LZORLE=y 297 | CONFIG_boost-compile-visibility-hidden=y 298 | CONFIG_boost-runtime-shared=y 299 | CONFIG_boost-static-and-shared-libs=y 300 | CONFIG_boost-variant-release=y 301 | CONFIG_PACKAGE_iptables-mod-extra=y 302 | CONFIG_PACKAGE_iptables-mod-tproxy=y 303 | CONFIG_PACKAGE_jansson=y 304 | CONFIG_PACKAGE_kmod-ipt-extra=y 305 | CONFIG_PACKAGE_kmod-ipt-tproxy=y 306 | CONFIG_PACKAGE_kmod-lib-crc32c=y 307 | CONFIG_PACKAGE_kmod-nf-flow=y 308 | CONFIG_PACKAGE_kmod-nf-tproxy=y 309 | CONFIG_PACKAGE_kmod-nft-socket=y 310 | # CONFIG_PACKAGE_libcares is not set 311 | # CONFIG_PACKAGE_libev is not set 312 | # CONFIG_PACKAGE_libopenssl-conf is not set 313 | # CONFIG_PACKAGE_libopenssl-legacy is not set 314 | # CONFIG_PACKAGE_libpcre is not set 315 | # CONFIG_PACKAGE_libsodium is not set 316 | # CONFIG_PACKAGE_libudns is not set 317 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_Libev_Client is not set 318 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Client is not set 319 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Server is not set 320 | # CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Rust_Client is not set 321 | # CONFIG_PACKAGE_luci-app-passwall_Nftables_Transparent_Proxy is not set 322 | # CONFIG_PACKAGE_shadowsocks-libev-config is not set 323 | # CONFIG_PACKAGE_shadowsocks-libev-ss-local is not set 324 | # CONFIG_PACKAGE_shadowsocks-libev-ss-redir is not set 325 | # CONFIG_PACKAGE_shadowsocks-libev-ss-server is not set 326 | # CONFIG_PACKAGE_shadowsocks-rust-sslocal is not set 327 | # CONFIG_PACKAGE_shadowsocksr-libev-ssr-local is not set 328 | # CONFIG_PACKAGE_shadowsocksr-libev-ssr-redir is not set 329 | 330 | CONFIG_PACKAGE_fullconenat=y 331 | CONFIG_PACKAGE_ip6tables-nft=y 332 | CONFIG_PACKAGE_iptables-mod-fullconenat=y 333 | CONFIG_PACKAGE_kmod-fs-btrfs=y 334 | CONFIG_PACKAGE_kmod-ipt-core=y 335 | CONFIG_PACKAGE_kmod-ipt-fullconenat=y 336 | CONFIG_PACKAGE_kmod-batman-adv=y 337 | CONFIG_PACKAGE_luci-app-socat=y 338 | CONFIG_PACKAGE_luci-luci-app-alist=y 339 | CONFIG_PACKAGE_luci-app-ssr-plus=m 340 | CONFIG_PACKAGE_luci-app-adguardhome=y 341 | CONFIG_PACKAGE_kmod-fuse=y 342 | -------------------------------------------------------------------------------- /configs/ipq60xx-6.6.config: -------------------------------------------------------------------------------- 1 | CONFIG_TARGET_qualcommax=y 2 | CONFIG_TARGET_qualcommax_ipq60xx=y 3 | CONFIG_TARGET_MULTI_PROFILE=y 4 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_cmiot_ax18=y 5 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_qihoo_v6=y 6 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_redmi_ax5=y 7 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_xiaomi_ax1800=y 8 | CONFIG_TARGET_DEVICE_qualcommax_ipq60xx_DEVICE_zn_m2=y 9 | CONFIG_COREMARK_ENABLE_MULTITHREADING=y 10 | CONFIG_COREMARK_NUMBER_OF_THREADS=16 11 | CONFIG_COREMARK_OPTIMIZE_O3=y 12 | # CONFIG_DRIVER_11AC_SUPPORT is not set 13 | # CONFIG_DRIVER_11AX_SUPPORT is not set 14 | CONFIG_LIBCURL_COOKIES=y 15 | CONFIG_LIBCURL_FILE=y 16 | CONFIG_LIBCURL_FTP=y 17 | CONFIG_LIBCURL_HTTP=y 18 | CONFIG_LIBCURL_MBEDTLS=y 19 | CONFIG_LIBCURL_NGHTTP2=y 20 | CONFIG_LIBCURL_NO_SMB="!" 21 | CONFIG_LIBCURL_PROXY=y 22 | CONFIG_LIBCURL_UNIX_SOCKETS=y 23 | CONFIG_LUCI_LANG_zh_Hans=y 24 | CONFIG_NSS_DRV_BRIDGE_ENABLE=y 25 | CONFIG_NSS_DRV_CLMAP_ENABLE=y 26 | CONFIG_NSS_DRV_CRYPTO_ENABLE=y 27 | CONFIG_NSS_DRV_GRE_ENABLE=y 28 | CONFIG_NSS_DRV_IGS_ENABLE=y 29 | CONFIG_NSS_DRV_IPV6_ENABLE=y 30 | CONFIG_NSS_DRV_LAG_ENABLE=y 31 | CONFIG_NSS_DRV_MAPT_ENABLE=y 32 | CONFIG_NSS_DRV_MATCH_ENABLE=y 33 | CONFIG_NSS_DRV_OVPN_ENABLE=y 34 | CONFIG_NSS_DRV_PPPOE_ENABLE=y 35 | CONFIG_NSS_DRV_PPTP_ENABLE=y 36 | CONFIG_NSS_DRV_PVXLAN_ENABLE=y 37 | CONFIG_NSS_DRV_SHAPER_ENABLE=y 38 | CONFIG_NSS_DRV_TUN6RD_ENABLE=y 39 | CONFIG_NSS_DRV_TUNIPIP6_ENABLE=y 40 | CONFIG_NSS_DRV_VIRT_IF_ENABLE=y 41 | CONFIG_NSS_DRV_VLAN_ENABLE=y 42 | CONFIG_OPENSSL_ENGINE=y 43 | CONFIG_OPENSSL_WITH_ASM=y 44 | CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y 45 | CONFIG_OPENSSL_WITH_CMS=y 46 | CONFIG_OPENSSL_WITH_DEPRECATED=y 47 | CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y 48 | CONFIG_OPENSSL_WITH_IDEA=y 49 | CONFIG_OPENSSL_WITH_MDC2=y 50 | CONFIG_OPENSSL_WITH_PSK=y 51 | CONFIG_OPENSSL_WITH_SEED=y 52 | CONFIG_OPENSSL_WITH_SRP=y 53 | CONFIG_OPENSSL_WITH_TLS13=y 54 | CONFIG_OPENSSL_WITH_WHIRLPOOL=y 55 | CONFIG_PACKAGE_6rd=y 56 | # CONFIG_PACKAGE_ath11k-firmware-ipq6018 is not set 57 | CONFIG_PACKAGE_block-mount=y 58 | CONFIG_PACKAGE_cgi-io=y 59 | CONFIG_PACKAGE_coremark=y 60 | CONFIG_PACKAGE_cpufreq=y 61 | CONFIG_PACKAGE_curl=y 62 | CONFIG_PACKAGE_ddns-go=y 63 | CONFIG_PACKAGE_default-settings=y 64 | CONFIG_PACKAGE_default-settings-chn=y 65 | CONFIG_PACKAGE_iperf3=y 66 | # CONFIG_PACKAGE_ipq-wifi-cmiot_ax18 is not set 67 | # CONFIG_PACKAGE_ipq-wifi-qihoo_v6 is not set 68 | # CONFIG_PACKAGE_ipq-wifi-redmi_ax5 is not set 69 | # CONFIG_PACKAGE_ipq-wifi-xiaomi_ax1800 is not set 70 | # CONFIG_PACKAGE_ipq-wifi-zn_m2 is not set 71 | # CONFIG_PACKAGE_iw is not set 72 | # CONFIG_PACKAGE_kmod-ath is not set 73 | # CONFIG_PACKAGE_kmod-ath11k is not set 74 | # CONFIG_PACKAGE_kmod-ath11k-ahb is not set 75 | # CONFIG_PACKAGE_kmod-cfg80211 is not set 76 | # CONFIG_PACKAGE_kmod-crypto-aead is not set 77 | # CONFIG_PACKAGE_kmod-crypto-ccm is not set 78 | # CONFIG_PACKAGE_kmod-crypto-cmac is not set 79 | # CONFIG_PACKAGE_kmod-crypto-ctr is not set 80 | # CONFIG_PACKAGE_kmod-crypto-gcm is not set 81 | # CONFIG_PACKAGE_kmod-crypto-gf128 is not set 82 | # CONFIG_PACKAGE_kmod-crypto-ghash is not set 83 | # CONFIG_PACKAGE_kmod-crypto-hmac is not set 84 | # CONFIG_PACKAGE_kmod-crypto-manager is not set 85 | # CONFIG_PACKAGE_kmod-crypto-michael-mic is not set 86 | # CONFIG_PACKAGE_kmod-crypto-null is not set 87 | # CONFIG_PACKAGE_kmod-crypto-rng is not set 88 | # CONFIG_PACKAGE_kmod-crypto-seqiv is not set 89 | # CONFIG_PACKAGE_kmod-crypto-sha3 is not set 90 | # CONFIG_PACKAGE_kmod-crypto-sha512 is not set 91 | CONFIG_PACKAGE_kmod-fs-ntfs=y 92 | CONFIG_PACKAGE_kmod-fs-vfat=y 93 | CONFIG_PACKAGE_kmod-gre=y 94 | CONFIG_PACKAGE_kmod-gre6=y 95 | # CONFIG_PACKAGE_kmod-hwmon-core is not set 96 | CONFIG_PACKAGE_kmod-ifb=y 97 | CONFIG_PACKAGE_kmod-ip6-tunnel=y 98 | CONFIG_PACKAGE_kmod-iptunnel=y 99 | CONFIG_PACKAGE_kmod-iptunnel4=y 100 | CONFIG_PACKAGE_kmod-iptunnel6=y 101 | CONFIG_PACKAGE_kmod-l2tp=y 102 | # CONFIG_PACKAGE_kmod-mac80211 is not set 103 | CONFIG_PACKAGE_kmod-nls-cp437=y 104 | CONFIG_PACKAGE_kmod-nls-iso8859-1=y 105 | CONFIG_PACKAGE_kmod-nls-utf8=y 106 | CONFIG_PACKAGE_kmod-nss-ifb=y 107 | CONFIG_PACKAGE_kmod-pppol2tp=y 108 | CONFIG_PACKAGE_kmod-pptp=y 109 | CONFIG_PACKAGE_kmod-qca-mcs=y 110 | CONFIG_PACKAGE_kmod-qca-nss-drv=y 111 | CONFIG_PACKAGE_kmod-qca-nss-drv-bridge-mgr=y 112 | CONFIG_PACKAGE_kmod-qca-nss-drv-clmapmgr=y 113 | CONFIG_PACKAGE_kmod-qca-nss-drv-eogremgr=y 114 | CONFIG_PACKAGE_kmod-qca-nss-drv-gre=y 115 | CONFIG_PACKAGE_kmod-qca-nss-drv-igs=y 116 | CONFIG_PACKAGE_kmod-qca-nss-drv-match=y 117 | CONFIG_PACKAGE_kmod-qca-nss-drv-pppoe=y 118 | CONFIG_PACKAGE_kmod-qca-nss-drv-pptp=y 119 | CONFIG_PACKAGE_kmod-qca-nss-drv-pvxlanmgr=y 120 | CONFIG_PACKAGE_kmod-qca-nss-drv-qdisc=y 121 | CONFIG_PACKAGE_kmod-qca-nss-drv-tun6rd=y 122 | CONFIG_PACKAGE_kmod-qca-nss-drv-tunipip6=y 123 | CONFIG_PACKAGE_kmod-qca-nss-drv-vlan-mgr=y 124 | CONFIG_PACKAGE_kmod-qca-nss-ecm=y 125 | # CONFIG_PACKAGE_kmod-qrtr-smd is not set 126 | CONFIG_PACKAGE_kmod-sched-core=y 127 | CONFIG_PACKAGE_kmod-scsi-core=y 128 | CONFIG_PACKAGE_kmod-sit=y 129 | CONFIG_PACKAGE_kmod-tun=y 130 | CONFIG_PACKAGE_kmod-udptunnel4=y 131 | CONFIG_PACKAGE_kmod-udptunnel6=y 132 | CONFIG_PACKAGE_kmod-usb-dwc2=y 133 | CONFIG_PACKAGE_kmod-usb-dwc2-pci=y 134 | CONFIG_PACKAGE_kmod-usb-ehci=y 135 | CONFIG_PACKAGE_kmod-usb-ohci=y 136 | CONFIG_PACKAGE_kmod-usb-ohci-pci=y 137 | CONFIG_PACKAGE_kmod-usb-phy-nop=y 138 | CONFIG_PACKAGE_kmod-usb-roles=y 139 | CONFIG_PACKAGE_kmod-usb-storage=y 140 | CONFIG_PACKAGE_kmod-usb-storage-extras=y 141 | CONFIG_PACKAGE_kmod-usb-uhci=y 142 | CONFIG_PACKAGE_kmod-usb2=y 143 | CONFIG_PACKAGE_kmod-usb2-pci=y 144 | CONFIG_PACKAGE_libatomic=y 145 | CONFIG_PACKAGE_libcap=y 146 | CONFIG_PACKAGE_libcap-ng=y 147 | CONFIG_PACKAGE_libcurl=y 148 | CONFIG_PACKAGE_libiperf3=y 149 | CONFIG_PACKAGE_liblua=y 150 | CONFIG_PACKAGE_liblucihttp=y 151 | CONFIG_PACKAGE_liblucihttp-lua=y 152 | CONFIG_PACKAGE_liblucihttp-ucode=y 153 | CONFIG_PACKAGE_libnghttp2=y 154 | CONFIG_PACKAGE_libopenssl=y 155 | CONFIG_PACKAGE_libubus-lua=y 156 | CONFIG_PACKAGE_libuv=y 157 | CONFIG_PACKAGE_libwebsockets-full=y 158 | CONFIG_PACKAGE_lua=y 159 | CONFIG_PACKAGE_luci=y 160 | CONFIG_PACKAGE_luci-app-argon-config=y 161 | CONFIG_PACKAGE_luci-app-ddns-go=y 162 | CONFIG_PACKAGE_luci-app-firewall=y 163 | CONFIG_PACKAGE_luci-app-opkg=y 164 | CONFIG_PACKAGE_luci-app-ttyd=y 165 | CONFIG_PACKAGE_luci-app-upnp=y 166 | CONFIG_PACKAGE_luci-base=y 167 | CONFIG_PACKAGE_luci-compat=y 168 | CONFIG_PACKAGE_luci-i18n-argon-config-zh-cn=y 169 | CONFIG_PACKAGE_luci-i18n-base-zh-cn=y 170 | CONFIG_PACKAGE_luci-i18n-ddns-go-zh-cn=y 171 | CONFIG_PACKAGE_luci-i18n-firewall-zh-cn=y 172 | CONFIG_PACKAGE_luci-i18n-opkg-zh-cn=y 173 | CONFIG_PACKAGE_luci-i18n-ttyd-zh-cn=y 174 | CONFIG_PACKAGE_luci-i18n-upnp-zh-cn=y 175 | CONFIG_PACKAGE_luci-lib-base=y 176 | CONFIG_PACKAGE_luci-lib-ip=y 177 | CONFIG_PACKAGE_luci-lib-jsonc=y 178 | CONFIG_PACKAGE_luci-lib-nixio=y 179 | CONFIG_PACKAGE_luci-light=y 180 | CONFIG_PACKAGE_luci-lua-runtime=y 181 | CONFIG_PACKAGE_luci-mod-admin-full=y 182 | CONFIG_PACKAGE_luci-mod-network=y 183 | CONFIG_PACKAGE_luci-mod-status=y 184 | CONFIG_PACKAGE_luci-mod-system=y 185 | CONFIG_PACKAGE_luci-proto-ipv6=y 186 | CONFIG_PACKAGE_luci-proto-ppp=y 187 | CONFIG_PACKAGE_luci-theme-argon=y 188 | CONFIG_PACKAGE_luci-theme-bootstrap=y 189 | CONFIG_PACKAGE_miniupnpd-nftables=y 190 | CONFIG_PACKAGE_nss-eip-firmware=y 191 | CONFIG_PACKAGE_nss-firmware-ipq6018=y 192 | CONFIG_PACKAGE_rpcd=y 193 | CONFIG_PACKAGE_rpcd-mod-file=y 194 | CONFIG_PACKAGE_rpcd-mod-iwinfo=y 195 | CONFIG_PACKAGE_rpcd-mod-luci=y 196 | CONFIG_PACKAGE_rpcd-mod-rrdns=y 197 | CONFIG_PACKAGE_rpcd-mod-ucode=y 198 | CONFIG_PACKAGE_ttyd=y 199 | CONFIG_PACKAGE_ucode-mod-html=y 200 | CONFIG_PACKAGE_ucode-mod-lua=y 201 | CONFIG_PACKAGE_ucode-mod-math=y 202 | CONFIG_PACKAGE_ucode-mod-uci=y 203 | CONFIG_PACKAGE_uhttpd=y 204 | CONFIG_PACKAGE_uhttpd-mod-ubus=y 205 | # CONFIG_PACKAGE_wifi-scripts is not set 206 | # CONFIG_PACKAGE_wireless-regdb is not set 207 | CONFIG_PACKAGE_zlib=y 208 | # CONFIG_TARGET_ROOTFS_INITRAMFS is not set 209 | # CONFIG_WPA_MBO_SUPPORT is not set 210 | -------------------------------------------------------------------------------- /diy-mini.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 修改默认IP 4 | # sed -i 's/192.168.1.1/10.0.0.1/g' package/base-files/files/bin/config_generate 5 | 6 | # 更改默认 Shell 为 zsh 7 | # sed -i 's/\/bin\/ash/\/usr\/bin\/zsh/g' package/base-files/files/etc/passwd 8 | 9 | # TTYD 免登录 10 | # sed -i 's|/bin/login|/bin/login -f root|g' feeds/packages/utils/ttyd/files/ttyd.config 11 | 12 | # 移除要替换的包 13 | rm -rf feeds/packages/net/mosdns 14 | rm -rf feeds/packages/net/msd_lite 15 | rm -rf feeds/packages/net/smartdns 16 | rm -rf feeds/luci/themes/luci-theme-argon 17 | rm -rf feeds/luci/applications/luci-app-mosdns 18 | rm -rf feeds/luci/applications/luci-app-netdata 19 | 20 | # Git稀疏克隆,只克隆指定目录到本地 21 | function git_sparse_clone() { 22 | branch="$1" repourl="$2" && shift 2 23 | git clone --depth=1 -b $branch --single-branch --filter=blob:none --sparse $repourl 24 | repodir=$(echo $repourl | awk -F '/' '{print $(NF)}') 25 | cd $repodir && git sparse-checkout set $@ 26 | mv -f $@ ../package 27 | cd .. && rm -rf $repodir 28 | } 29 | 30 | # 添加额外插件 31 | git clone --depth=1 https://github.com/kongfl888/luci-app-adguardhome package/luci-app-adguardhome 32 | git clone --depth=1 https://github.com/Jason6111/luci-app-netdata package/luci-app-netdata 33 | # git_sparse_clone master https://github.com/syb999/openwrt-19.07.1 package/network/services/msd_lite 34 | 35 | # 科学上网插件 36 | git clone --depth=1 -b main https://github.com/fw876/helloworld package/luci-app-ssr-plus 37 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall-packages package/openwrt-passwall 38 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall package/luci-app-passwall 39 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall2 package/luci-app-passwall2 40 | git_sparse_clone master https://github.com/vernesong/OpenClash luci-app-openclash 41 | 42 | # Themes 43 | git clone --depth=1 -b 18.06 https://github.com/kiddin9/luci-theme-edge package/luci-theme-edge 44 | git clone --depth=1 -b 18.06 https://github.com/jerrykuku/luci-theme-argon package/luci-theme-argon 45 | git clone --depth=1 https://github.com/jerrykuku/luci-app-argon-config package/luci-app-argon-config 46 | git clone --depth=1 https://github.com/xiaoqingfengATGH/luci-theme-infinityfreedom package/luci-theme-infinityfreedom 47 | git_sparse_clone main https://github.com/haiibo/packages luci-theme-opentomcat 48 | 49 | # 更改 Argon 主题背景 50 | cp -f $GITHUB_WORKSPACE/images/bg1.jpg package/luci-theme-argon/htdocs/luci-static/argon/img/bg1.jpg 51 | 52 | # 晶晨宝盒 53 | git_sparse_clone main https://github.com/ophub/luci-app-amlogic luci-app-amlogic 54 | sed -i "s|firmware_repo.*|firmware_repo 'https://github.com/haiibo/OpenWrt'|g" package/luci-app-amlogic/root/etc/config/amlogic 55 | # sed -i "s|kernel_path.*|kernel_path 'https://github.com/ophub/kernel'|g" package/luci-app-amlogic/root/etc/config/amlogic 56 | sed -i "s|ARMv8|ARMv8_MINI|g" package/luci-app-amlogic/root/etc/config/amlogic 57 | 58 | # SmartDNS 59 | git clone --depth=1 -b lede https://github.com/pymumu/luci-app-smartdns package/luci-app-smartdns 60 | git clone --depth=1 https://github.com/pymumu/openwrt-smartdns package/smartdns 61 | 62 | # msd_lite 63 | git clone --depth=1 https://github.com/ximiTech/luci-app-msd_lite package/luci-app-msd_lite 64 | git clone --depth=1 https://github.com/ximiTech/msd_lite package/msd_lite 65 | 66 | # MosDNS 67 | git clone --depth=1 https://github.com/sbwml/luci-app-mosdns package/luci-app-mosdns 68 | 69 | # Alist 70 | git clone --depth=1 https://github.com/sbwml/luci-app-alist package/luci-app-alist 71 | 72 | # iStore 73 | git_sparse_clone main https://github.com/linkease/istore-ui app-store-ui 74 | git_sparse_clone main https://github.com/linkease/istore luci 75 | 76 | # 在线用户 77 | git_sparse_clone main https://github.com/haiibo/packages luci-app-onliner 78 | sed -i '$i uci set nlbwmon.@nlbwmon[0].refresh_interval=2s' package/lean/default-settings/files/zzz-default-settings 79 | sed -i '$i uci commit nlbwmon' package/lean/default-settings/files/zzz-default-settings 80 | chmod 755 package/luci-app-onliner/root/usr/share/onliner/setnlbw.sh 81 | 82 | # x86 型号只显示 CPU 型号 83 | sed -i 's/${g}.*/${a}${b}${c}${d}${e}${f}${hydrid}/g' package/lean/autocore/files/x86/autocore 84 | 85 | # 修改本地时间格式 86 | sed -i 's/os.date()/os.date("%a %Y-%m-%d %H:%M:%S")/g' package/lean/autocore/files/*/index.htm 87 | 88 | # 修改版本为编译日期 89 | date_version=$(date +"%y.%m.%d") 90 | orig_version=$(cat "package/lean/default-settings/files/zzz-default-settings" | grep DISTRIB_REVISION= | awk -F "'" '{print $2}') 91 | sed -i "s/${orig_version}/R${date_version} by Haiibo/g" package/lean/default-settings/files/zzz-default-settings 92 | 93 | # 修复 hostapd 报错 94 | cp -f $GITHUB_WORKSPACE/scripts/011-fix-mbo-modules-build.patch package/network/services/hostapd/patches/011-fix-mbo-modules-build.patch 95 | 96 | # 修复 armv8 设备 xfsprogs 报错 97 | sed -i 's/TARGET_CFLAGS.*/TARGET_CFLAGS += -DHAVE_MAP_SYNC -D_LARGEFILE64_SOURCE/g' feeds/packages/utils/xfsprogs/Makefile 98 | 99 | # 修改 Makefile 100 | find package/*/ -maxdepth 2 -path "*/Makefile" | xargs -i sed -i 's/..\/..\/luci.mk/$(TOPDIR)\/feeds\/luci\/luci.mk/g' {} 101 | find package/*/ -maxdepth 2 -path "*/Makefile" | xargs -i sed -i 's/..\/..\/lang\/golang\/golang-package.mk/$(TOPDIR)\/feeds\/packages\/lang\/golang\/golang-package.mk/g' {} 102 | find package/*/ -maxdepth 2 -path "*/Makefile" | xargs -i sed -i 's/PKG_SOURCE_URL:=@GHREPO/PKG_SOURCE_URL:=https:\/\/github.com/g' {} 103 | find package/*/ -maxdepth 2 -path "*/Makefile" | xargs -i sed -i 's/PKG_SOURCE_URL:=@GHCODELOAD/PKG_SOURCE_URL:=https:\/\/codeload.github.com/g' {} 104 | 105 | # 取消主题默认设置 106 | find package/luci-theme-*/* -type f -name '*luci-theme-*' -print -exec sed -i '/set luci.main.mediaurlbase/d' {} \; 107 | 108 | # 调整 Docker 到 服务 菜单 109 | sed -i 's/"admin"/"admin", "services"/g' feeds/luci/applications/luci-app-dockerman/luasrc/controller/*.lua 110 | sed -i 's/"admin"/"admin", "services"/g; s/admin\//admin\/services\//g' feeds/luci/applications/luci-app-dockerman/luasrc/model/cbi/dockerman/*.lua 111 | sed -i 's/admin\//admin\/services\//g' feeds/luci/applications/luci-app-dockerman/luasrc/view/dockerman/*.htm 112 | sed -i 's|admin\\|admin\\/services\\|g' feeds/luci/applications/luci-app-dockerman/luasrc/view/dockerman/container.htm 113 | 114 | # 调整 ZeroTier 到 服务 菜单 115 | # sed -i 's/vpn/services/g; s/VPN/Services/g' feeds/luci/applications/luci-app-zerotier/luasrc/controller/zerotier.lua 116 | # sed -i 's/vpn/services/g' feeds/luci/applications/luci-app-zerotier/luasrc/view/zerotier/zerotier_status.htm 117 | 118 | # 取消对 samba4 的菜单调整 119 | # sed -i '/samba4/s/^/#/' package/lean/default-settings/files/zzz-default-settings 120 | 121 | ./scripts/feeds update -a 122 | ./scripts/feeds install -a 123 | -------------------------------------------------------------------------------- /diy-script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 修改默认IP 4 | # sed -i 's/192.168.1.1/10.0.0.1/g' package/base-files/files/bin/config_generate 5 | 6 | # 更改默认 Shell 为 zsh 7 | # sed -i 's/\/bin\/ash/\/usr\/bin\/zsh/g' package/base-files/files/etc/passwd 8 | 9 | # TTYD 免登录 10 | # sed -i 's|/bin/login|/bin/login -f root|g' feeds/packages/utils/ttyd/files/ttyd.config 11 | 12 | # 移除要替换的包 13 | rm -rf feeds/packages/net/mosdns 14 | rm -rf feeds/packages/net/msd_lite 15 | rm -rf feeds/packages/net/smartdns 16 | rm -rf feeds/luci/themes/luci-theme-argon 17 | rm -rf feeds/luci/themes/luci-theme-netgear 18 | rm -rf feeds/luci/applications/luci-app-mosdns 19 | rm -rf feeds/luci/applications/luci-app-netdata 20 | rm -rf feeds/luci/applications/luci-app-serverchan 21 | 22 | # Git稀疏克隆,只克隆指定目录到本地 23 | function git_sparse_clone() { 24 | branch="$1" repourl="$2" && shift 2 25 | git clone --depth=1 -b $branch --single-branch --filter=blob:none --sparse $repourl 26 | repodir=$(echo $repourl | awk -F '/' '{print $(NF)}') 27 | cd $repodir && git sparse-checkout set $@ 28 | mv -f $@ ../package 29 | cd .. && rm -rf $repodir 30 | } 31 | 32 | # 添加额外插件 33 | git clone --depth=1 https://github.com/kongfl888/luci-app-adguardhome package/luci-app-adguardhome 34 | git clone --depth=1 -b openwrt-18.06 https://github.com/tty228/luci-app-wechatpush package/luci-app-serverchan 35 | git clone --depth=1 https://github.com/ilxp/luci-app-ikoolproxy package/luci-app-ikoolproxy 36 | git clone --depth=1 https://github.com/esirplayground/luci-app-poweroff package/luci-app-poweroff 37 | git clone --depth=1 https://github.com/destan19/OpenAppFilter package/OpenAppFilter 38 | git clone --depth=1 https://github.com/Jason6111/luci-app-netdata package/luci-app-netdata 39 | git_sparse_clone main https://github.com/Lienol/openwrt-package luci-app-filebrowser luci-app-ssr-mudb-server 40 | git_sparse_clone openwrt-18.06 https://github.com/immortalwrt/luci applications/luci-app-eqos 41 | # git_sparse_clone master https://github.com/syb999/openwrt-19.07.1 package/network/services/msd_lite 42 | 43 | # 科学上网插件 44 | git clone --depth=1 -b main https://github.com/fw876/helloworld package/luci-app-ssr-plus 45 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall-packages package/openwrt-passwall 46 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall package/luci-app-passwall 47 | git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall2 package/luci-app-passwall2 48 | git_sparse_clone master https://github.com/vernesong/OpenClash luci-app-openclash 49 | 50 | # Themes 51 | git clone --depth=1 -b 18.06 https://github.com/kiddin9/luci-theme-edge package/luci-theme-edge 52 | git clone --depth=1 -b 18.06 https://github.com/jerrykuku/luci-theme-argon package/luci-theme-argon 53 | git clone --depth=1 https://github.com/jerrykuku/luci-app-argon-config package/luci-app-argon-config 54 | git clone --depth=1 https://github.com/xiaoqingfengATGH/luci-theme-infinityfreedom package/luci-theme-infinityfreedom 55 | git_sparse_clone main https://github.com/haiibo/packages luci-theme-atmaterial luci-theme-opentomcat luci-theme-netgear 56 | 57 | # 更改 Argon 主题背景 58 | cp -f $GITHUB_WORKSPACE/images/bg1.jpg package/luci-theme-argon/htdocs/luci-static/argon/img/bg1.jpg 59 | 60 | # 晶晨宝盒 61 | git_sparse_clone main https://github.com/ophub/luci-app-amlogic luci-app-amlogic 62 | sed -i "s|firmware_repo.*|firmware_repo 'https://github.com/haiibo/OpenWrt'|g" package/luci-app-amlogic/root/etc/config/amlogic 63 | # sed -i "s|kernel_path.*|kernel_path 'https://github.com/ophub/kernel'|g" package/luci-app-amlogic/root/etc/config/amlogic 64 | sed -i "s|ARMv8|ARMv8_PLUS|g" package/luci-app-amlogic/root/etc/config/amlogic 65 | 66 | # SmartDNS 67 | git clone --depth=1 -b lede https://github.com/pymumu/luci-app-smartdns package/luci-app-smartdns 68 | git clone --depth=1 https://github.com/pymumu/openwrt-smartdns package/smartdns 69 | 70 | # msd_lite 71 | git clone --depth=1 https://github.com/ximiTech/luci-app-msd_lite package/luci-app-msd_lite 72 | git clone --depth=1 https://github.com/ximiTech/msd_lite package/msd_lite 73 | 74 | # MosDNS 75 | git clone --depth=1 https://github.com/sbwml/luci-app-mosdns package/luci-app-mosdns 76 | 77 | # Alist 78 | git clone --depth=1 https://github.com/sbwml/luci-app-alist package/luci-app-alist 79 | 80 | # DDNS.to 81 | git_sparse_clone main https://github.com/linkease/nas-packages-luci luci/luci-app-ddnsto 82 | git_sparse_clone master https://github.com/linkease/nas-packages network/services/ddnsto 83 | 84 | # iStore 85 | git_sparse_clone main https://github.com/linkease/istore-ui app-store-ui 86 | git_sparse_clone main https://github.com/linkease/istore luci 87 | 88 | # 在线用户 89 | git_sparse_clone main https://github.com/haiibo/packages luci-app-onliner 90 | sed -i '$i uci set nlbwmon.@nlbwmon[0].refresh_interval=2s' package/lean/default-settings/files/zzz-default-settings 91 | sed -i '$i uci commit nlbwmon' package/lean/default-settings/files/zzz-default-settings 92 | chmod 755 package/luci-app-onliner/root/usr/share/onliner/setnlbw.sh 93 | 94 | # x86 型号只显示 CPU 型号 95 | sed -i 's/${g}.*/${a}${b}${c}${d}${e}${f}${hydrid}/g' package/lean/autocore/files/x86/autocore 96 | 97 | # 修改本地时间格式 98 | sed -i 's/os.date()/os.date("%a %Y-%m-%d %H:%M:%S")/g' package/lean/autocore/files/*/index.htm 99 | 100 | # 修改版本为编译日期 101 | date_version=$(date +"%y.%m.%d") 102 | orig_version=$(cat "package/lean/default-settings/files/zzz-default-settings" | grep DISTRIB_REVISION= | awk -F "'" '{print $2}') 103 | sed -i "s/${orig_version}/R${date_version} by Haiibo/g" package/lean/default-settings/files/zzz-default-settings 104 | 105 | # 修复 hostapd 报错 106 | cp -f $GITHUB_WORKSPACE/scripts/011-fix-mbo-modules-build.patch package/network/services/hostapd/patches/011-fix-mbo-modules-build.patch 107 | 108 | # 修复 armv8 设备 xfsprogs 报错 109 | sed -i 's/TARGET_CFLAGS.*/TARGET_CFLAGS += -DHAVE_MAP_SYNC -D_LARGEFILE64_SOURCE/g' feeds/packages/utils/xfsprogs/Makefile 110 | 111 | # 修改 Makefile 112 | find package/*/ -maxdepth 2 -path "*/Makefile" | xargs -i sed -i 's/..\/..\/luci.mk/$(TOPDIR)\/feeds\/luci\/luci.mk/g' {} 113 | find package/*/ -maxdepth 2 -path "*/Makefile" | xargs -i sed -i 's/..\/..\/lang\/golang\/golang-package.mk/$(TOPDIR)\/feeds\/packages\/lang\/golang\/golang-package.mk/g' {} 114 | find package/*/ -maxdepth 2 -path "*/Makefile" | xargs -i sed -i 's/PKG_SOURCE_URL:=@GHREPO/PKG_SOURCE_URL:=https:\/\/github.com/g' {} 115 | find package/*/ -maxdepth 2 -path "*/Makefile" | xargs -i sed -i 's/PKG_SOURCE_URL:=@GHCODELOAD/PKG_SOURCE_URL:=https:\/\/codeload.github.com/g' {} 116 | 117 | # 取消主题默认设置 118 | find package/luci-theme-*/* -type f -name '*luci-theme-*' -print -exec sed -i '/set luci.main.mediaurlbase/d' {} \; 119 | 120 | # 调整 V2ray服务器 到 VPN 菜单 121 | # sed -i 's/services/vpn/g' feeds/luci/applications/luci-app-v2ray-server/luasrc/controller/*.lua 122 | # sed -i 's/services/vpn/g' feeds/luci/applications/luci-app-v2ray-server/luasrc/model/cbi/v2ray_server/*.lua 123 | # sed -i 's/services/vpn/g' feeds/luci/applications/luci-app-v2ray-server/luasrc/view/v2ray_server/*.htm 124 | 125 | ./scripts/feeds update -a 126 | ./scripts/feeds install -a 127 | -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM scratch 2 | ADD openwrt-armvirt-64-default-rootfs-patched.tar / 3 | EXPOSE 22 53 80 443 7681 4 | # using exec format so that /sbin/init is proc 1 (see procd docs) 5 | ENTRYPOINT ["/sbin/init"] 6 | -------------------------------------------------------------------------------- /docker/buildImageX.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | TMPDIR=openwrt-armvirt 4 | ROOTFS=openwrt-armvirt-64-generic-rootfs.tar.gz 5 | 6 | [ -d "$TMPDIR" ] && rm -rf "$TMPDIR" 7 | mkdir -p "$TMPDIR" && gzip -dc ${ROOTFS} | ( cd "$TMPDIR" && tar xf - && rm -rf ./lib/firmware/* && rm -rf ./lib/modules/*) 8 | 9 | [ -x $TMPDIR/bin/bash ] && \ 10 | cp -f patches/30-sysinfo.sh $TMPDIR/etc/profile.d/ && \ 11 | sed -e "s/\/bin\/ash/\/bin\/bash/" -i $TMPDIR/etc/passwd && \ 12 | sed -e "s/\/bin\/ash/\/bin\/bash/" -i $TMPDIR/usr/libexec/login.sh 13 | 14 | [ -f patches/banner ] && \ 15 | cp -f patches/banner $TMPDIR/etc/ && \ 16 | echo "The docker aarch64 special edition" >> $TMPDIR/etc/banner 17 | 18 | cat >> $TMPDIR/etc/sysupgrade.conf <> "$TMPDIR/etc/crontabs/root" 60 | 61 | [ -f ${TMPDIR}/etc/config/qbittorrent ] && sed -e 's/\/opt/\/etc/' -i "${TMPDIR}/etc/config/qbittorrent" 62 | 63 | [ -f ${TMPDIR}/etc/ssh/sshd_config ] && sed -e "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/" -i "${TMPDIR}/etc/ssh/sshd_config" 64 | 65 | [ -f ${TMPDIR}/etc/samba/smb.conf.template ] && cat patches/smb4.11_enable_smb1.patch | (cd "$TMPDIR" && [ -f etc/samba/smb.conf.template ] && patch -p1) 66 | 67 | sss=$(date +%s) && \ 68 | ddd=$((sss/86400)) && \ 69 | sed -e "s/:0:0:99999:7:::/:${ddd}:0:99999:7:::/" -i "${TMPDIR}/etc/shadow" && \ 70 | sed -e "s/root::/root:\$1\$0yUsq67p\$RC5cEtaQpM6KHQfhUSIAl\.:/" -i "${TMPDIR}/etc/shadow" 71 | 72 | (cd "$TMPDIR" && tar cf ../openwrt-armvirt-64-default-rootfs-patched.tar .) && \ 73 | rm -rf "$TMPDIR" 74 | -------------------------------------------------------------------------------- /docker/patches/30-sysinfo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # DO NOT EDIT THIS FILE but add config options to /etc/default/motd 4 | # any changes will be lost on board support package update 5 | # 6 | export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 7 | [ -x /usr/bin/dmesg ] && alias dmesg='dmesg --color=auto' 8 | 9 | THIS_SCRIPT="sysinfo" 10 | MOTD_DISABLE="" 11 | 12 | SHOW_IP_PATTERN="^[ewr].*|^br.*|^lt.*|^umts.*" 13 | 14 | DATA_STORAGE=/userdisk/data 15 | MEDIA_STORAGE=/userdisk/snail 16 | 17 | [[ -f /etc/default/motd ]] && . /etc/default/motd 18 | for f in $MOTD_DISABLE; do 19 | [[ $f == $THIS_SCRIPT ]] && exit 0 20 | done 21 | 22 | # don't edit below here 23 | function display() 24 | { 25 | # $1=name $2=value $3=red_limit $4=minimal_show_limit $5=unit $6=after $7=acs/desc{ 26 | # battery red color is opposite, lower number 27 | if [[ "$1" == "Battery" ]]; then 28 | local great="<"; 29 | else 30 | local great=">"; 31 | fi 32 | if [[ -n "$2" && "$2" > "0" && (( "${2%.*}" -ge "$4" )) ]]; then 33 | printf "%-14s%s" "$1:" 34 | if awk "BEGIN{exit ! ($2 $great $3)}"; then 35 | echo -ne "\e[0;91m $2"; 36 | else 37 | echo -ne "\e[0;92m $2"; 38 | fi 39 | printf "%-1s%s\x1B[0m" "$5" 40 | printf "%-11s%s\t" "$6" 41 | return 1 42 | fi 43 | } # display 44 | 45 | 46 | function get_ip_addresses() 47 | { 48 | local ips=() 49 | for f in /sys/class/net/*; do 50 | local intf=$(basename $f) 51 | # match only interface names starting with e (Ethernet), br (bridge), w (wireless), r (some Ralink drivers use ra format) 52 | if [[ $intf =~ $SHOW_IP_PATTERN ]]; then 53 | local tmp=$(ip -4 addr show dev $intf | awk '/inet/ {print $2}' | cut -d'/' -f1) 54 | # add both name and IP - can be informative but becomes ugly with long persistent/predictable device names 55 | #[[ -n $tmp ]] && ips+=("$intf: $tmp") 56 | # add IP only 57 | [[ -n $tmp ]] && ips+=("$tmp") 58 | fi 59 | done 60 | echo "${ips[@]}" 61 | } # get_ip_addresses 62 | 63 | 64 | function storage_info() 65 | { 66 | # storage info 67 | RootInfo=$(df -h /) 68 | root_usage=$(awk '/\// {print $(NF-1)}' <<<${RootInfo} | sed 's/%//g') 69 | root_total=$(awk '/\// {print $(NF-4)}' <<<${RootInfo}) 70 | 71 | StorageInfo=$(df -h $MEDIA_STORAGE 2>/dev/null | grep $MEDIA_STORAGE) 72 | if [[ -n "${StorageInfo}" && ${RootInfo} != *$MEDIA_STORAGE* ]]; then 73 | media_usage=$(awk '/\// {print $(NF-1)}' <<<${StorageInfo} | sed 's/%//g') 74 | media_total=$(awk '/\// {print $(NF-4)}' <<<${StorageInfo}) 75 | fi 76 | 77 | StorageInfo=$(df -h $DATA_STORAGE 2>/dev/null | grep $DATA_STORAGE) 78 | if [[ -n "${StorageInfo}" && ${RootInfo} != *$DATA_STORAGE* ]]; then 79 | data_usage=$(awk '/\// {print $(NF-1)}' <<<${StorageInfo} | sed 's/%//g') 80 | data_total=$(awk '/\// {print $(NF-4)}' <<<${StorageInfo}) 81 | fi 82 | } # storage_info 83 | 84 | function get_data_storage() 85 | { 86 | if which lsblk >/dev/null;then 87 | root_name=$(lsblk -l -o NAME,MOUNTPOINT | awk '$2~/^\/$/ {print $1'}) 88 | mmc_name=$(echo $root_name | awk '{print substr($1,1,length($1)-2);}') 89 | if echo $mmc_name | grep mmcblk >/dev/null;then 90 | DATA_STORAGE="/mnt/${mmc_name}p4" 91 | fi 92 | fi 93 | } 94 | 95 | # query various systems and send some stuff to the background for overall faster execution. 96 | # Works only with ambienttemp and batteryinfo since A20 is slow enough :) 97 | ip_address=$(get_ip_addresses &) 98 | get_data_storage 99 | storage_info 100 | critical_load=$(( 1 + $(grep -c processor /proc/cpuinfo) / 2 )) 101 | 102 | # get uptime, logged in users and load in one take 103 | if [ -x /usr/bin/cpustat ];then 104 | time=$(/usr/bin/cpustat -u) 105 | load=$(/usr/bin/cpustat -l) 106 | else 107 | UptimeString=$(uptime | tr -d ',') 108 | time=$(awk -F" " '{print $3" "$4}' <<<"${UptimeString}") 109 | load="$(awk -F"average: " '{print $2}'<<<"${UptimeString}")" 110 | case ${time} in 111 | 1:*) # 1-2 hours 112 | time=$(awk -F" " '{print $3" 小时"}' <<<"${UptimeString}") 113 | ;; 114 | *:*) # 2-24 hours 115 | time=$(awk -F" " '{print $3" 小时"}' <<<"${UptimeString}") 116 | ;; 117 | *day) # days 118 | days=$(awk -F" " '{print $3"天"}' <<<"${UptimeString}") 119 | time=$(awk -F" " '{print $5}' <<<"${UptimeString}") 120 | time="$days "$(awk -F":" '{print $1"小时 "$2"分钟"}' <<<"${time}") 121 | ;; 122 | esac 123 | fi 124 | 125 | # memory and swap 126 | mem_info=$(LC_ALL=C free -w 2>/dev/null | grep "^Mem" || LC_ALL=C free | grep "^Mem") 127 | memory_usage=$(awk '{printf("%.0f",(($2-($4+$6))/$2) * 100)}' <<<${mem_info}) 128 | memory_total=$(awk '{printf("%d",$2/1024)}' <<<${mem_info}) 129 | swap_info=$(LC_ALL=C free -m | grep "^Swap") 130 | swap_usage=$( (awk '/Swap/ { printf("%3.0f", $3/$2*100) }' <<<${swap_info} 2>/dev/null || echo 0) | tr -c -d '[:digit:]') 131 | swap_total=$(awk '{print $(2)}' <<<${swap_info}) 132 | 133 | if grep -q "ipq40xx" "/etc/openwrt_release"; then 134 | cpu_temp="$(sensors | grep -Eo '\+[0-9]+.+C' | sed ':a;N;$!ba;s/\n/ /g;s/+//g')" 135 | else 136 | cpu_temp="$(awk '{ printf("%.1f °C", $0 / 1000) }' /sys/class/thermal/thermal_zone0/temp)" 137 | fi 138 | cpu_tempx=`echo $cpu_temp | sed 's/°C//g'` 139 | 140 | if [ -x /usr/bin/cpustat ];then 141 | sys_temp=$(/usr/bin/cpustat -A) 142 | else 143 | sys_temp=$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c) 144 | fi 145 | sys_tempx=`echo $sys_temp | sed 's/ / /g'` 146 | 147 | # display info 148 | 149 | machine_model=$(cat /proc/device-tree/model|tr -d "\000") 150 | echo -e "设备信息: \033[93m${machine_model}\033[0m" 151 | printf "CPU 型号: \x1B[93m%s\x1B[0m" "$sys_tempx" 152 | echo "" 153 | display "系统负载" "${load%% *}" "${critical_load}" "0" "" "${load#* }" 154 | printf "运行时间: \x1B[92m%s\x1B[0m\t\t" "$time" 155 | echo "" 156 | 157 | display "环境温度" "$cpu_tempx" "60" "0" "°C" "" 158 | if [ -x /usr/bin/cpustat ];then 159 | cpu_freq=$(/usr/bin/cpustat -F1500) 160 | echo -n "当前频率: $cpu_freq" 161 | else 162 | display "当前频率" "$cpu_freq" "1500" "0" " Mhz" "" 163 | fi 164 | echo "" 165 | 166 | display "内存已用" "$memory_usage" "70" "0" "%" " of ${memory_total}MB" 167 | printf "IP 地址: \x1B[92m%s\x1B[0m" "$ip_address" 168 | #display "交换内存" "$swap_usage" "10" "0" "%" " of $swap_total""Mb" 169 | echo "" 170 | 171 | #echo "" # fixed newline 172 | 173 | display "启动存储" "$boot_usage" "90" "1" "%" " of $boot_total" 174 | display "系统存储" "$root_usage" "90" "1" "%" " of $root_total" 175 | echo "" 176 | 177 | if [ "$data_usage" != "" ];then 178 | display "数据存储" "$data_usage" "90" "1" "%" " of $data_total" 179 | echo "" 180 | fi 181 | if [ "$media_usage" != "" ];then 182 | display "媒体存储" "$media_usage" "90" "1" "%" " of $media_total" 183 | echo "" 184 | fi 185 | echo "" 186 | 187 | 188 | -------------------------------------------------------------------------------- /docker/patches/99-custom.conf: -------------------------------------------------------------------------------- 1 | # 内核网络参数调整 2 | ###################################################### 3 | # 默认值 (供参考) 4 | # 5 | # net.ipv4.tcp_fastopen = 1 6 | # net.core.netdev_max_backlog = 1000 7 | # net.core.rmem_default = 212992 8 | # net.core.wmem_default = 212992 9 | # net.core.rmem_max = 4194304 10 | # net.core.wmem_max = 1048576 11 | # net.ipv4.tcp_max_syn_backlog = 128 12 | # net.ipv4.tcp_rmem = 4096 131072 6291456 13 | # net.ipv4.tcp_wmem = 4096 16384 4194304 14 | # 15 | ###################################################### 16 | 17 | ###################################################### 18 | # 优化值(供参考) 19 | net.ipv4.tcp_fastopen = 3 20 | net.core.netdev_max_backlog = 9000 21 | net.core.rmem_default = 67108864 22 | net.core.wmem_default = 67108864 23 | net.core.rmem_max = 104857600 24 | net.core.wmem_max = 104857600 25 | net.ipv4.tcp_max_syn_backlog = 1024 26 | net.ipv4.tcp_rmem = 10240 87380 67108864 27 | net.ipv4.tcp_wmem = 10240 87380 67108864 28 | 29 | # default value: 8000 30 | net.core.netdev_budget_usecs = 16000 31 | 32 | # default value: 300 33 | net.core.netdev_budget = 600 34 | 35 | # default value: 64 36 | net.core.dev_weight = 128 37 | 38 | # default value: 65535 39 | net.netfilter.nf_conntrack_max = 327680 40 | 41 | # default value: 16384 42 | net.netfilter.nf_conntrack_buckets = 81920 43 | 44 | # 45 | ####################################################### 46 | 47 | net.netfilter.nf_conntrack_tcp_no_window_check = 1 48 | # 系统最少保留内存 (default: 16384) 49 | vm.min_free_kbytes = 32768 50 | -------------------------------------------------------------------------------- /docker/patches/banner: -------------------------------------------------------------------------------- 1 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 | \ ____ _ __ __ / 3 | \ / __ \____ ___ ____| | / /____/ /_ / 4 | \ / / / / __ \/ _ \/ __ \ | /| / / ___/ __/ / 5 | \ / /_/ / /_/ / __/ / / / |/ |/ / / / /_ / 6 | \ \____/ .___/\___/_/ /_/|__/|__/_/ \__/ / 7 | \ /_/ W I R E L E S S F R E E D O M / 8 | \ / 9 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 10 | -------------------------------------------------------------------------------- /docker/patches/cbi_turboacc.patch: -------------------------------------------------------------------------------- 1 | --- a/usr/lib/lua/luci/model/cbi/turboacc.lua 2 | +++ b/usr/lib/lua/luci/model/cbi/turboacc.lua 3 | @@ -10,7 +10,7 @@ s = m:section(TypedSection, "turboacc", 4 | s.addremove = false 5 | s.anonymous = true 6 | 7 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/xt_FLOWOFFLOAD.ko") then 8 | +if luci.sys.call("modinfo xt_FLOWOFFLOAD >/dev/null") == 0 then 9 | sw_flow = s:option(Flag, "sw_flow", translate("Software flow offloading")) 10 | sw_flow.default = 0 11 | sw_flow.description = translate("Software based offloading for routing/NAT") 12 | @@ -24,20 +24,20 @@ hw_flow.description = translate("Require 13 | hw_flow:depends("sw_flow", 1) 14 | end 15 | 16 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/shortcut-fe-cm.ko") then 17 | +if luci.sys.call("modinfo shortcut-fe-cm >/dev/null") == 0 then 18 | sfe_flow = s:option(Flag, "sfe_flow", translate("Shortcut-FE flow offloading")) 19 | sfe_flow.default = 0 20 | sfe_flow.description = translate("Shortcut-FE based offloading for routing/NAT") 21 | sfe_flow:depends("sw_flow", 0) 22 | end 23 | 24 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/tcp_bbr.ko") then 25 | +if luci.sys.call("modinfo tcp_bbr >/dev/null") == 0 then 26 | bbr_cca = s:option(Flag, "bbr_cca", translate("BBR CCA")) 27 | bbr_cca.default = 0 28 | bbr_cca.description = translate("Using BBR CCA can improve TCP network performance effectively") 29 | end 30 | 31 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/xt_FULLCONENAT.ko") then 32 | +if luci.sys.call("modinfo xt_FULLCONENAT >/dev/null") == 0 then 33 | fullcone_nat = s:option(Flag, "fullcone_nat", translate("FullCone NAT")) 34 | fullcone_nat.default = 0 35 | fullcone_nat.description = translate("Using FullCone NAT can improve gaming performance effectively") 36 | -------------------------------------------------------------------------------- /docker/patches/cbi_turboacc_new.patch: -------------------------------------------------------------------------------- 1 | --- a/usr/lib/lua/luci/model/cbi/turboacc.lua 2 | +++ b/usr/lib/lua/luci/model/cbi/turboacc.lua 3 | @@ -10,42 +10,42 @@ s = m:section(TypedSection, "turboacc", 4 | s.addremove = false 5 | s.anonymous = true 6 | 7 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/xt_FLOWOFFLOAD.ko") and not nixio.fs.access("/lib/modules/" .. kernel_version .. "/mtkhnat.ko") then 8 | +if luci.sys.call("modinfo xt_FLOWOFFLOAD >/dev/null 2>&1") == 0 and luci.sys.call("modinfo mtkhnat >/dev/null") ~= 0 then 9 | sw_flow = s:option(Flag, "sw_flow", translate("Software flow offloading")) 10 | sw_flow.default = 0 11 | sw_flow.description = translate("Software based offloading for routing/NAT") 12 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/mtkhnat.ko") then 13 | +if luci.sys.call("modinfo mtkhnat >/dev/null 2>&1") == 0 then 14 | sw_flow:depends("hw_flow", 0) 15 | else 16 | sw_flow:depends("sfe_flow", 0) 17 | end 18 | end 19 | 20 | -if luci.sys.call("cat /etc/openwrt_release | grep -q mt762") == 0 and not nixio.fs.access("/lib/modules/" .. kernel_version .. "/mtkhnat.ko") then 21 | +if luci.sys.call("cat /etc/openwrt_release | grep -q mt762") == 0 and luci.sys.call("modinfo mtkhnat >/dev/null 2>&1") ~= 0 then 22 | hw_flow = s:option(Flag, "hw_flow", translate("Hardware flow offloading")) 23 | hw_flow.default = 0 24 | hw_flow.description = translate("Requires hardware NAT support. Implemented at least for mt762x") 25 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/mtkhnat.ko") then 26 | +if luci.sys.call("modinfo mtkhnat >/dev/null 2>&1") == 0 then 27 | hw_flow:depends("sw_flow", 0) 28 | else 29 | hw_flow:depends("sw_flow", 1) 30 | end 31 | end 32 | 33 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/shortcut-fe-cm.ko") or nixio.fs.access("/lib/modules/" .. kernel_version .. "/fast-classifier.ko") then 34 | +if luci.sys.call("modinfo shortcut-fe-cm >/dev/null 2>&1") == 0 or luci.sys.call("modinfo fast-classifier >/dev/null 2>&1") == 0 then 35 | sfe_flow = s:option(Flag, "sfe_flow", translate("Shortcut-FE flow offloading")) 36 | sfe_flow.default = 0 37 | sfe_flow.description = translate("Shortcut-FE based offloading for routing/NAT") 38 | sfe_flow:depends("sw_flow", 0) 39 | end 40 | 41 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/tcp_bbr.ko") then 42 | +if luci.sys.call("modinfo tcp_bbr >/dev/null 2>&1") == 0 then 43 | bbr_cca = s:option(Flag, "bbr_cca", translate("BBR CCA")) 44 | bbr_cca.default = 0 45 | bbr_cca.description = translate("Using BBR CCA can improve TCP network performance effectively") 46 | end 47 | 48 | -if nixio.fs.access("/lib/modules/" .. kernel_version .. "/xt_FULLCONENAT.ko") then 49 | +if luci.sys.call("modinfo xt_FULLCONENAT >/dev/null 2>&1") == 0 then 50 | fullcone_nat = s:option(Flag, "fullcone_nat", translate("FullCone NAT")) 51 | fullcone_nat.default = 0 52 | fullcone_nat.description = translate("Using FullCone NAT can improve gaming performance effectively") 53 | -------------------------------------------------------------------------------- /docker/patches/coremark.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | LOG=/etc/bench.log 4 | echo "
" > $LOG 5 | 6 | GOV="/sys/devices/system/cpu/cpufreq/policy0/scaling_governor" 7 | if [ -f "$GOV" ];then 8 | CURRENT_GOVERNOR=$(cat $GOV) 9 | GOV_FLAG=1 10 | else 11 | GOV_FLAG=0 12 | fi 13 | 14 | trap "echo killed;test $GOV_FLAG -eq 1 && echo ${CURRENT_GOVERNOR} > ${GOV} 2>/dev/null;echo '
' >> $LOG;rm -f /tmp/*.score;exit" 1 2 3 9 15 15 | 16 | GOV_HOME='/sys/devices/system/cpu/cpufreq/' 17 | govs=() 18 | if [ $GOV_FLAG -eq 1 ];then 19 | POLICIES=$(cd $GOV_HOME && ls -d policy*) 20 | i=1 21 | for POLICY in $POLICIES;do 22 | CUR_GOV="${GOV_HOME}/${POLICY}/scaling_governor" 23 | govs[$i]=$(cat $CUR_GOV) 24 | echo "performance" > ${CUR_GOV} 2>/dev/null 25 | i=$((i+1)) 26 | done 27 | fi 28 | 29 | echo "testing coremark ... " 30 | sleep 1 31 | COREMARK=$(/bin/coremark | tail -n 1 | awk '{print $4}') 32 | # 分数取整 33 | #COREMARK=${COREMARK%.*} 34 | echo "CPU CoreMark : $COREMARK" 35 | echo "CPU CoreMark$COREMARK" >> $LOG 36 | 37 | if [ -x /usr/bin/openssl ];then 38 | CORES=$(grep processor /proc/cpuinfo | wc -l) 39 | 40 | PROJS="aes-128-gcm aes-256-gcm chacha20-poly1305" 41 | for P in $PROJS;do 42 | echo "testing $P ..." 43 | sleep 1 44 | /usr/bin/openssl speed -multi $CORES -evp $P 1>/tmp/${P}.score 2>/dev/null || echo "NA" >/tmp/${P}.score 45 | S=$(tail -n 1 /tmp/${P}.score | awk '{print $5}') 46 | echo "${P}(1K) : ${S}" 47 | echo "${P}(1K)$S" >> $LOG 48 | rm -f /tmp/${P}.score 49 | done 50 | 51 | fi 52 | 53 | echo "
" >> $LOG 54 | 55 | if [ $GOV_FLAG -eq 1 ];then 56 | i=1 57 | for POLICY in $POLICIES;do 58 | CUR_GOV="${GOV_HOME}/${POLICY}/scaling_governor" 59 | echo "${govs[$i]}" > ${CUR_GOV} 2>/dev/null 60 | i=$((i+1)) 61 | done 62 | fi 63 | 64 | if [ -f "$LOG" ]; then 65 | sed -i '/coremark/d' /etc/crontabs/root 66 | crontab /etc/crontabs/root 67 | fi 68 | -------------------------------------------------------------------------------- /docker/patches/cpustat: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | use strict; 3 | use utf8; 4 | use Config; 5 | use Time::HiRes qw /usleep/; 6 | binmode(STDOUT, ":utf8"); 7 | 8 | sub get_soc_temp { 9 | my $t=shift; 10 | my @fnames=( 11 | '/sys/devices/virtual/thermal/thermal_zone0/temp', 12 | '/sys/devices/platform/scpi/scpi:sensors/hwmon/hwmon0/temp1_input', 13 | ); 14 | my $temp = "Unknown"; 15 | for my $fname (@fnames) { 16 | if( -f $fname ) { 17 | open my $fh, "<", $fname; 18 | if($t) { 19 | $temp = sprintf "%0.1f", <$fh> / 1000; 20 | } else { 21 | $temp = sprintf "%0.1f℃", <$fh> / 1000; 22 | } 23 | close $fh; 24 | return $temp; 25 | } 26 | } 27 | 28 | return $temp; 29 | } 30 | 31 | sub get_cpu_freq { 32 | my $f=shift; 33 | my @fnames=; 34 | my $freq_str = ""; 35 | for (my $i=0; $i < $#fnames + 1; $i++) { 36 | my $fname = $fnames[$i]; 37 | open my $fh, "<", $fname; 38 | usleep(50000); 39 | my $freq; 40 | if($f =~ /-F(\d*)/) { 41 | my $alert_mhz = 1500; 42 | if($1 ne "") { 43 | $alert_mhz = $1; 44 | } 45 | my $color = "\x1b[92m"; 46 | $freq = <$fh> / 1000; 47 | if($freq > $alert_mhz) { 48 | $color = "\x1b[91m"; 49 | } 50 | $freq = sprintf "%s%d Mhz\x1b[0m", $color, $freq; 51 | } else { 52 | $freq = sprintf "%dMhz", <$fh> / 1000; 53 | } 54 | close $fh; 55 | $freq_str .= $freq; 56 | if($i < $#fnames) { 57 | $freq_str .= " & "; 58 | } 59 | } 60 | 61 | if($#fnames > 0 && $f eq "") { 62 | $freq_str = "(" . $freq_str . ")"; 63 | } 64 | 65 | if($freq_str eq "") { 66 | $freq_str = "Unknown"; 67 | } 68 | return $freq_str; 69 | } 70 | 71 | sub get_arch_info { 72 | my $a=shift; 73 | my @cpus = ; 74 | my @cpu_groups; 75 | my %group_core_count; 76 | for my $cpu (@cpus) { 77 | open my $fh, "<", "${cpu}/uevent"; 78 | while(<$fh>) { 79 | chomp; 80 | my($key,$value) = split /=/; 81 | if($key eq "OF_COMPATIBLE_0") { 82 | my($cortex, $a) = split /-/, (split /,/, $value)[1]; 83 | my $core_type_name = ucfirst($cortex) . "-" . ucfirst($a); 84 | if(not exists $group_core_count{$core_type_name}) { 85 | push @cpu_groups, $core_type_name; 86 | $group_core_count{$core_type_name} = 0; 87 | } 88 | $group_core_count{$core_type_name} += 1; 89 | } 90 | } 91 | close $fh; 92 | } 93 | 94 | my $arch_info; 95 | if($a) { 96 | $arch_info = "AArch64 : " if ($a); 97 | } else { 98 | $arch_info = "AArch64 Processor : "; 99 | } 100 | for (my $i = 0; $i < $#cpu_groups + 1; $i++) { 101 | my $group = $cpu_groups[$i]; 102 | #if($i == 0) { 103 | # $arch_info .= ""; 104 | #} 105 | $arch_info .= $group; 106 | if($a) { 107 | $arch_info .= " x "; 108 | } else { 109 | $arch_info .= " * "; 110 | } 111 | $arch_info .= $group_core_count{$group}; 112 | if($i < $#cpu_groups) { 113 | $arch_info .= " & "; 114 | } #else { 115 | # $arch_info .= ""; 116 | #} 117 | } 118 | 119 | return "$arch_info"; 120 | } 121 | 122 | sub get_uptime { 123 | my $fh; 124 | my $result; 125 | open $fh, "<", "/proc/uptime" or die; 126 | my $str_uptime = <$fh>; 127 | if($str_uptime =~ /(\d*)/) { 128 | my $day = int($1/86400); 129 | my $hour = int(($1%86400)/3600); 130 | my $min = int(($1%3600)/60); 131 | my $sec = $1%60; 132 | 133 | my $sday = $day . "天 " if($day>0); 134 | my $shour = $hour . "小时 " if($hour>0 || $day>0) ; 135 | my $smin = $min . "分钟 "; 136 | my $ssec = $sec . "秒"; 137 | $result .= $sday . $shour . $smin . $ssec; 138 | } 139 | close $fh; 140 | return $result; 141 | } 142 | 143 | sub get_avgload { 144 | my $fh; 145 | my $result; 146 | open $fh, "<", "/proc/loadavg" or die; 147 | my $str = <$fh>; 148 | $result = join(' ', (split(/\s+/, $str))[0,1,2]); 149 | close $fh; 150 | return $result; 151 | } 152 | 153 | sub get_eth_name { 154 | my $eth = shift; 155 | return (split /\//, $eth)[-1]; 156 | } 157 | 158 | sub get_eth_operstate { 159 | my $eth = shift; 160 | my $fh; 161 | open $fh, "<", "$eth/operstate" or warn $!; 162 | my $operstate = <$fh>; 163 | close $fh; 164 | $operstate =~ s/\n//; 165 | return $operstate; 166 | } 167 | 168 | sub get_eth_driver { 169 | my $eth = shift; 170 | my $fh; 171 | open $fh, "<", "$eth/device/uevent" or warn $!; 172 | my $driver; 173 | while(<$fh>) { 174 | chomp; 175 | if(/^DRIVER=/) { 176 | $driver = (split /=/, $_)[-1]; 177 | last; 178 | } 179 | } 180 | close $fh; 181 | return $driver; 182 | } 183 | 184 | sub get_eth_duplex { 185 | my $eth = shift; 186 | my $fh; 187 | open $fh, "<", "$eth/duplex" or warn $!; 188 | my $duplex = <$fh>; 189 | close $fh; 190 | $duplex =~ s/\n//; 191 | return $duplex; 192 | } 193 | 194 | sub get_eth_speed { 195 | my $eth = shift; 196 | my $fh; 197 | open $fh, "<", "$eth/speed" or warn $!; 198 | my $speed = <$fh>; 199 | close $fh; 200 | $speed =~ s/\n//; 201 | if($speed == -1) { 202 | my $driver = &get_eth_driver("$eth"); 203 | if($driver eq "virtio_net") { 204 | $speed = "Maximum"; 205 | } else { 206 | $speed = ""; 207 | } 208 | } elsif($speed <= 100) { 209 | $speed .= "Mb/s"; 210 | } else { 211 | $speed = sprintf "%.1fGb/s", $speed / 1000; 212 | } 213 | $speed =~ s/\.0//; 214 | return $speed; 215 | } 216 | 217 | sub get_eth_temperature { 218 | my($driver, $eth_name) = @_; 219 | my $ret = ""; 220 | return $ret if (! -d "/proc/net/r8125/$eth_name"); 221 | if($driver eq 'r8125') { 222 | my $fh; 223 | open $fh, "<", "/proc/net/r8125/$eth_name/temp" or die $!; 224 | while(<$fh>) { 225 | chomp; 226 | if(/^Cel:/) { 227 | $ret = (split /:/, $_)[-1]."℃"; 228 | last; 229 | } 230 | } 231 | close $fh; 232 | } 233 | return $ret; 234 | } 235 | 236 | sub get_ethlist() { 237 | my $board = &get_boardinfo; 238 | if($board eq "FastRhino R66S") { 239 | return reverse sort (); 240 | } elsif($board =~ m/NLnet Watermelon Pi/i) { 241 | return reverse sort (); 242 | } else { 243 | return sort (); 244 | } 245 | } 246 | 247 | sub get_ethcount() { 248 | my @eth_ary = &get_ethlist; 249 | return $#eth_ary + 1; 250 | } 251 | 252 | sub get_ethinfo { 253 | my @eth_ary = &get_ethlist; 254 | my $ret = "[\n"; 255 | for (my $i = 0; $i <= $#eth_ary; $i++) { 256 | $ret .= " {\n"; 257 | my $eth_name = &get_eth_name($eth_ary[$i]); 258 | my $driver = &get_eth_driver($eth_ary[$i]); 259 | my $operstate = &get_eth_operstate($eth_ary[$i]) eq "up" ? 1 : 0; 260 | my $speed = &get_eth_speed($eth_ary[$i]); 261 | my $duplex = &get_eth_duplex($eth_ary[$i]); 262 | my $temperature = &get_eth_temperature($driver, $eth_name); 263 | if($temperature eq "") { 264 | $temperature = "☰"; 265 | } 266 | 267 | if(($duplex eq "unknown")) { 268 | if(($driver eq "virtio_net") && ($operstate == 1)) { 269 | $duplex = "full"; 270 | } 271 | } 272 | 273 | if($operstate == 1) { 274 | $speed .= " $duplex duplex"; 275 | } else { 276 | $speed = "☷"; 277 | } 278 | 279 | $ret .= qq| "name": "| . $eth_name . qq|",\n|; 280 | $ret .= qq| "driver": "| . $driver . qq|",\n|; 281 | $ret .= qq| "temperature": "| . $temperature . qq|",\n|; 282 | $ret .= qq| "operstate": | . $operstate . ",\n"; 283 | $ret .= qq| "speed": "| . $speed . qq|"\n|; 284 | if($i < $#eth_ary) { 285 | $ret .= " },\n"; 286 | } else { 287 | $ret .= " }\n"; 288 | } 289 | } 290 | $ret .= "]"; 291 | return $ret; 292 | } 293 | 294 | sub get_archname() { 295 | return $Config{archname}; 296 | } 297 | 298 | sub get_boardinfo() { 299 | my $ret="unknown"; 300 | my $arch=&get_archname; 301 | if($arch =~ /^aarch64/) { 302 | if(-f "/proc/device-tree/model") { 303 | open my $fh, "<", "/proc/device-tree/model" or warn $!; 304 | read $fh, $ret, 100; 305 | close $fh; 306 | $ret =~ s/\0//; 307 | } elsif(-d "/sys/firmware/qemu_fw_cfg") { 308 | $ret = "QEMU KVM Virtual Machine"; 309 | } 310 | } elsif($arch =~ /^x86/) { 311 | open my $fh, "<", "/proc/cpuinfo" or warn $!; 312 | while(<$fh>) { 313 | chomp; 314 | if(/^model name/) { 315 | $ret = (split /:/, $_)[-1]; 316 | $ret =~ s/\A\s+//; 317 | } 318 | } 319 | } 320 | return $ret; 321 | } 322 | 323 | sub get_dc_voltage() { 324 | my $precision = shift; 325 | my $board = &get_boardinfo; 326 | my $up_res = 0; 327 | my $down_res = 0; 328 | my $iio_channel; 329 | my $ret = 0; 330 | my $fh; 331 | if($board =~ m/Radxa ROCK 5B/) { 332 | $up_res = 100; 333 | $down_res = 8.2; 334 | $iio_channel = 6; 335 | $ret = "(Probably) 12"; 336 | } 337 | 338 | if($up_res && $down_res) { 339 | my $voltage_raw = 0; 340 | my $voltage_scale = 0; 341 | open $fh, "<", "/sys/bus/iio/devices/iio:device0/in_voltage_scale" or die; 342 | read $fh, $voltage_scale, 40; 343 | close $fh; 344 | 345 | open $fh, "<", "/sys/bus/iio/devices/iio:device0/in_voltage${iio_channel}_raw" or die; 346 | read $fh, $voltage_raw, 40; 347 | close $fh; 348 | 349 | if($voltage_raw && $voltage_scale && (($voltage_raw + 1) * $voltage_scale < 1800)) { 350 | $precision = 0 unless $precision; 351 | my $fmt = "%0.${precision}f"; 352 | $ret = sprintf $fmt, $voltage_raw * $voltage_scale * ($up_res + $down_res) / $down_res / 1000.0; 353 | } 354 | } 355 | return $ret; 356 | } 357 | 358 | ##### main program ##### 359 | my $argc = scalar( @ARGV ); 360 | if($argc == 0) { 361 | print &get_cpu_freq, " / ", &get_soc_temp, "\n"; 362 | } elsif($ARGV[0] eq "-a") { 363 | print &get_arch_info, "\n"; 364 | } elsif($ARGV[0] eq "-A") { 365 | print &get_arch_info("A"), "\n"; 366 | } elsif($ARGV[0] eq "-t") { 367 | print &get_soc_temp, "\n"; 368 | } elsif($ARGV[0] eq "-T") { 369 | print &get_soc_temp("T"), "\n"; 370 | } elsif($ARGV[0] eq "-f") { 371 | print &get_cpu_freq, "\n"; 372 | } elsif($ARGV[0] =~ /-F/) { 373 | print &get_cpu_freq($ARGV[0]), "\n"; 374 | } elsif($ARGV[0] eq "-u") { 375 | print &get_uptime, "\n"; 376 | } elsif($ARGV[0] eq "-l") { 377 | print &get_avgload, "\n"; 378 | } elsif($ARGV[0] eq "-e") { 379 | print &get_ethinfo, "\n"; 380 | } elsif($ARGV[0] eq "-ec") { 381 | print &get_ethcount, "\n"; 382 | } elsif($ARGV[0] eq "-b") { 383 | print &get_boardinfo, "\n"; 384 | } elsif($ARGV[0] =~ m/-V(\d{0,1})/) { 385 | print &get_dc_voltage($1), "\n"; 386 | } 387 | -------------------------------------------------------------------------------- /docker/patches/getcpu: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | #use strict; 3 | 4 | sub get_stat { 5 | open IN, "<", "/proc/stat"; 6 | $_ = ; 7 | chomp; 8 | close(IN); 9 | my ($cpu, $user, $nice, $system, $idle, $iowait, $irq, $softirq, $steal, $guest, $guest_nice) = split; 10 | my $Idle = $idle + $iowait; 11 | my $Non_Idle = $user + $nice + $system + $irq + $softirq + $steal + $guest + $guest_nice; 12 | return ($Idle, $Non_Idle); 13 | } 14 | 15 | my($prev_idle, $prev_non_idle) = &get_stat; 16 | my $prev_total = $prev_idle + $prev_non_idle; 17 | sleep(3); 18 | my($idle, $non_idle) = &get_stat; 19 | my $total = $idle + $non_idle; 20 | 21 | my $totald = $total - $prev_total; 22 | my $idled = $idle - $prev_idle; 23 | my $cpu_percentage = ($totald - $idled) / $totald * 100; 24 | 25 | $| = 1; 26 | open OUT, ">", "/tmp/cpuusage"; 27 | printf OUT "%0.1f\%", $cpu_percentage; 28 | close(OUT); 29 | 30 | exit(0); 31 | -------------------------------------------------------------------------------- /docker/patches/index.html.patches/index.htm: -------------------------------------------------------------------------------- 1 | <%# 2 | Copyright 2008 Steven Barth 3 | Copyright 2008-2011 Jo-Philipp Wich 4 | Licensed to the public under the Apache License 2.0. 5 | -%> 6 | 7 | <% 8 | local fs = require "nixio.fs" 9 | local util = require "luci.util" 10 | local stat = require "luci.tools.status" 11 | local ver = require "luci.version" 12 | local uci = require("luci.model.uci").cursor() 13 | 14 | local has_ipv6 = fs.access("/usr/sbin/ip6tables") 15 | local has_dhcp = fs.access("/etc/config/dhcp") 16 | local has_wifi = ((fs.stat("/etc/config/wireless", "size") or 0) > 0) 17 | local has_switch = false 18 | 19 | uci:foreach("network", "switch", 20 | function(s) 21 | has_switch = true 22 | return false 23 | end) 24 | 25 | local sysinfo = luci.util.ubus("system", "info") or { } 26 | local boardinfo = luci.util.ubus("system", "board") or { } 27 | local unameinfo = nixio.uname() or { } 28 | 29 | local meminfo = sysinfo.memory or { 30 | total = 0, 31 | free = 0, 32 | buffered = 0, 33 | shared = 0 34 | } 35 | 36 | local mem_cached = luci.sys.exec("sed -e '/^Cached: /!d; s#Cached: *##; s# kB##g' /proc/meminfo") 37 | 38 | local swapinfo = sysinfo.swap or { 39 | total = 0, 40 | free = 0 41 | } 42 | 43 | local has_dsl = fs.access("/etc/init.d/dsl_control") 44 | 45 | if luci.http.formvalue("status") == "1" then 46 | local ntm = require "luci.model.network".init() 47 | local wan = ntm:get_wannet() 48 | local wan6 = ntm:get_wan6net() 49 | 50 | local conn_count = tonumber( 51 | fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count") or "") or 0 52 | 53 | local conn_max = tonumber(luci.sys.exec( 54 | "sysctl -n -e net.netfilter.nf_conntrack_max net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max | head -n 1"):match("%d+")) or 4096 55 | 56 | local user_info = luci.sys.exec("cat /proc/net/arp | grep -E 'br-lan|eth0' | grep '0x2' | wc -l") 57 | 58 | local cpu_usage = (luci.sys.exec("expr 100 - $(top -n 1 | grep 'CPU:' | awk -F '%' '{print$4}' | awk -F ' ' '{print$2}')") or "6") .. "%" 59 | local cpu_stat = luci.sys.exec("/usr/bin/cpustat 2>/dev/null") or { } 60 | local eth_info = luci.sys.exec("/usr/bin/cpustat -e 2>/dev/null") 61 | local eth_cnt = luci.sys.exec("/usr/bin/cpustat -ec 2>/dev/null") 62 | 63 | local rv = { 64 | cpuusage = cpu_usage, 65 | userinfo = user_info, 66 | uptime = sysinfo.uptime or 0, 67 | localtime = os.date(), 68 | loadavg = sysinfo.load or { 0, 0, 0 }, 69 | memory = meminfo, 70 | memcached = mem_cached, 71 | swap = swapinfo, 72 | ethinfo = eth_info, 73 | ethcount = eth_cnt, 74 | connmax = conn_max, 75 | conncount = conn_count, 76 | leases = stat.dhcp_leases(), 77 | leases6 = stat.dhcp6_leases(), 78 | wifinets = stat.wifi_networks(), 79 | cpustat = cpu_stat 80 | } 81 | 82 | if wan then 83 | rv.wan = { 84 | ipaddr = wan:ipaddr(), 85 | gwaddr = wan:gwaddr(), 86 | netmask = wan:netmask(), 87 | dns = wan:dnsaddrs(), 88 | expires = wan:expires(), 89 | uptime = wan:uptime(), 90 | proto = wan:proto(), 91 | ifname = wan:ifname(), 92 | link = wan:adminlink() 93 | } 94 | end 95 | 96 | if wan6 then 97 | rv.wan6 = { 98 | ip6addr = wan6:ip6addr(), 99 | gw6addr = wan6:gw6addr(), 100 | dns = wan6:dns6addrs(), 101 | ip6prefix = wan6:ip6prefix(), 102 | uptime = wan6:uptime(), 103 | proto = wan6:proto(), 104 | ifname = wan6:ifname(), 105 | link = wan6:adminlink() 106 | } 107 | end 108 | 109 | if has_dsl then 110 | local dsl_stat = luci.sys.exec("/etc/init.d/dsl_control lucistat") 111 | local dsl_func = loadstring(dsl_stat) 112 | if dsl_func then 113 | rv.dsl = dsl_func() 114 | end 115 | end 116 | 117 | luci.http.prepare_content("application/json") 118 | luci.http.write_json(rv) 119 | 120 | return 121 | elseif luci.http.formvalue("hosts") == "1" then 122 | luci.http.prepare_content("application/json") 123 | luci.http.write_json(luci.sys.net.host_hints()) 124 | 125 | return 126 | end 127 | -%> 128 | 129 | <%+header%> 130 | 131 | 132 | 728 | 729 |

<%:Status%>

730 | 731 |
732 | <%:System%> 733 | 734 | 735 | 736 | 737 | 738 | 742 | 743 | 744 | 745 | 746 | 747 | 748 |
<%:Hostname%><%=luci.sys.hostname() or "?"%>
<%:Model%><%=pcdata(boardinfo.model or "?")%> <%=luci.sys.exec("cat /etc/bench.log") or " "%>
<%:Architecture%><%=luci.sys.exec("/usr/bin/cpustat -a 2>/dev/null")%>
<%:Firmware Version%> 739 | <%=pcdata(ver.distname)%> <%=pcdata(ver.distversion)%> / 740 | <%=pcdata(ver.luciname)%> (<%=pcdata(ver.luciversion)%>) 741 |
<%:Kernel Version%><%=unameinfo.release or "?"%>
<%:Local Time%>-
<%:Uptime%>-
<%:CPU状态%>-
<%:Load Average%>-
<%:CPU usage (%)%>-
749 |
750 | 751 |
752 | <%:Memory%> 753 | 754 | 755 | 756 | 757 |
<%:Total Available%>-
<%:Buffered%>-
758 |
759 | 760 | <% if swapinfo.total > 0 then %> 761 |
762 | <%:Swap%> 763 | 764 | 765 | 766 | 767 |
<%:Total Available%>-
<%:Free%>-
768 |
769 | <% end %> 770 | 771 | <% if not has_switch then %> 772 |
773 | <%:Interfaces%> 774 | 775 | 776 |
777 |
778 | <% end %> 779 | 780 |
781 | <%:Network%> 782 | 783 | 784 | 790 | <% if has_ipv6 then %> 791 | 797 | <% end %> 798 | 799 | 800 |
<%:IPv4 WAN Status%> 785 | 786 | 787 | 788 |

?
<%:Collecting data...%>
789 |
<%:IPv6 WAN Status%> 792 | 793 | 794 | 795 |

?
<%:Collecting data...%>
796 |
<%:Online Users%>0
<%:Active Connections%>-
801 |
802 | 803 | <% if has_dhcp then %> 804 |
805 | <%:DHCP Leases%> 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 |
<%:Hostname%><%:IPv4-Address%><%:MAC-Address%><%:Leasetime remaining%>

<%:Collecting data...%>
818 |
819 | 820 | <% if has_ipv6 then %> 821 | 836 | <% end %> 837 | <% end %> 838 | 839 | <% if has_dsl then %> 840 |
841 | <%:DSL%> 842 | 843 | 849 |
<%:DSL Status%> 844 | 845 | 846 | 847 |

?
<%:Collecting data...%>
848 |
850 |
851 | <% end %> 852 | 853 | <% if has_wifi then %> 854 |
855 | <%:Wireless%> 856 | 857 | 858 | 859 |
<%:Collecting data...%>
860 |
861 | <% end %> 862 | 863 | <%+footer%> 864 | -------------------------------------------------------------------------------- /docker/patches/index.html.patches/index.htm.orig: -------------------------------------------------------------------------------- 1 | <%# 2 | Copyright 2008 Steven Barth 3 | Copyright 2008-2011 Jo-Philipp Wich 4 | Licensed to the public under the Apache License 2.0. 5 | -%> 6 | 7 | <% 8 | local fs = require "nixio.fs" 9 | local util = require "luci.util" 10 | local stat = require "luci.tools.status" 11 | local ver = require "luci.version" 12 | 13 | local has_ipv6 = fs.access("/usr/sbin/ip6tables") 14 | local has_dhcp = fs.access("/etc/config/dhcp") 15 | local has_wifi = ((fs.stat("/etc/config/wireless", "size") or 0) > 0) 16 | 17 | local sysinfo = luci.util.ubus("system", "info") or { } 18 | local boardinfo = luci.util.ubus("system", "board") or { } 19 | local unameinfo = nixio.uname() or { } 20 | 21 | local meminfo = sysinfo.memory or { 22 | total = 0, 23 | free = 0, 24 | buffered = 0, 25 | shared = 0 26 | } 27 | 28 | local mem_cached = luci.sys.exec("sed -e '/^Cached: /!d; s#Cached: *##; s# kB##g' /proc/meminfo") 29 | 30 | local swapinfo = sysinfo.swap or { 31 | total = 0, 32 | free = 0 33 | } 34 | 35 | local has_dsl = fs.access("/etc/init.d/dsl_control") 36 | 37 | if luci.http.formvalue("status") == "1" then 38 | local ntm = require "luci.model.network".init() 39 | local wan = ntm:get_wannet() 40 | local wan6 = ntm:get_wan6net() 41 | 42 | local conn_count = tonumber( 43 | fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count") or "") or 0 44 | 45 | local conn_max = tonumber(luci.sys.exec( 46 | "sysctl -n -e net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max" 47 | ):match("%d+")) or 4096 48 | 49 | local user_info = luci.sys.exec("cat /proc/net/arp | grep 'br-lan' | grep '0x2' | wc -l") 50 | 51 | local cpu_usage = (luci.sys.exec("expr 100 - $(top -n 1 | grep 'CPU:' | awk -F '%' '{print$4}' | awk -F ' ' '{print$2}')") or "6") .. "%" 52 | 53 | local rv = { 54 | cpuusage = cpu_usage, 55 | userinfo = user_info, 56 | uptime = sysinfo.uptime or 0, 57 | localtime = os.date(), 58 | loadavg = sysinfo.load or { 0, 0, 0 }, 59 | memory = meminfo, 60 | memcached = mem_cached, 61 | swap = swapinfo, 62 | connmax = conn_max, 63 | conncount = conn_count, 64 | leases = stat.dhcp_leases(), 65 | leases6 = stat.dhcp6_leases(), 66 | wifinets = stat.wifi_networks() 67 | } 68 | 69 | if wan then 70 | rv.wan = { 71 | ipaddr = wan:ipaddr(), 72 | gwaddr = wan:gwaddr(), 73 | netmask = wan:netmask(), 74 | dns = wan:dnsaddrs(), 75 | expires = wan:expires(), 76 | uptime = wan:uptime(), 77 | proto = wan:proto(), 78 | ifname = wan:ifname(), 79 | link = wan:adminlink() 80 | } 81 | end 82 | 83 | if wan6 then 84 | rv.wan6 = { 85 | ip6addr = wan6:ip6addr(), 86 | gw6addr = wan6:gw6addr(), 87 | dns = wan6:dns6addrs(), 88 | ip6prefix = wan6:ip6prefix(), 89 | uptime = wan6:uptime(), 90 | proto = wan6:proto(), 91 | ifname = wan6:ifname(), 92 | link = wan6:adminlink() 93 | } 94 | end 95 | 96 | if has_dsl then 97 | local dsl_stat = luci.sys.exec("/etc/init.d/dsl_control lucistat") 98 | local dsl_func = loadstring(dsl_stat) 99 | if dsl_func then 100 | rv.dsl = dsl_func() 101 | end 102 | end 103 | 104 | luci.http.prepare_content("application/json") 105 | luci.http.write_json(rv) 106 | 107 | return 108 | elseif luci.http.formvalue("hosts") == "1" then 109 | luci.http.prepare_content("application/json") 110 | luci.http.write_json(luci.sys.net.host_hints()) 111 | 112 | return 113 | end 114 | -%> 115 | 116 | <%+header%> 117 | 118 | 119 | 694 | 695 |

<%:Status%>

696 | 697 |
698 | <%:System%> 699 | 700 | 701 | 702 | 703 | 704 | 708 | 709 | 710 | 711 | 712 | 713 |
<%:Hostname%><%=luci.sys.hostname() or "?"%>
<%:Model%><%=pcdata(boardinfo.model or "?")%> <%=luci.sys.exec("cat /etc/bench.log") or " "%>
<%:Architecture%><%=pcdata(boardinfo.system or "ARMv8 Processor")%> x <%=luci.sys.exec("cat /proc/cpuinfo | grep 'processor' | wc -l") or "1"%>
<%:Firmware Version%> 705 | <%=pcdata(ver.distname)%> <%=pcdata(ver.distversion)%> / 706 | <%=pcdata(ver.luciname)%> (<%=pcdata(ver.luciversion)%>) 707 |
<%:Kernel Version%><%=unameinfo.release or "?"%>
<%:Local Time%>-
<%:Uptime%>-
<%:Load Average%>-
<%:CPU usage (%)%>-
714 |
715 | 716 |
717 | <%:Memory%> 718 | 719 | 720 | 721 | 722 |
<%:Total Available%>-
<%:Buffered%>-
723 |
724 | 725 | <% if swapinfo.total > 0 then %> 726 |
727 | <%:Swap%> 728 | 729 | 730 | 731 | 732 |
<%:Total Available%>-
<%:Free%>-
733 |
734 | <% end %> 735 | 736 |
737 | <%:Network%> 738 | 739 | 740 | 746 | <% if has_ipv6 then %> 747 | 753 | <% end %> 754 | 755 | 756 |
<%:IPv4 WAN Status%> 741 | 742 | 743 | 744 |

?
<%:Collecting data...%>
745 |
<%:IPv6 WAN Status%> 748 | 749 | 750 | 751 |

?
<%:Collecting data...%>
752 |
<%:Online Users%>0
<%:Active Connections%>-
757 |
758 | 759 | <% if has_dhcp then %> 760 |
761 | <%:DHCP Leases%> 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 |
<%:Hostname%><%:IPv4-Address%><%:MAC-Address%><%:Leasetime remaining%>

<%:Collecting data...%>
774 |
775 | 776 | <% if has_ipv6 then %> 777 | 792 | <% end %> 793 | <% end %> 794 | 795 | <% if has_dsl then %> 796 |
797 | <%:DSL%> 798 | 799 | 805 |
<%:DSL Status%> 800 | 801 | 802 | 803 |

?
<%:Collecting data...%>
804 |
806 |
807 | <% end %> 808 | 809 | <% if has_wifi then %> 810 |
811 | <%:Wireless%> 812 | 813 | 814 | 815 |
<%:Collecting data...%>
816 |
817 | <% end %> 818 | 819 | <%+footer%> 820 | -------------------------------------------------------------------------------- /docker/patches/index.html.patches/luci-admin-status-index-html.patch: -------------------------------------------------------------------------------- 1 | --- a/usr/lib/lua/luci/view/admin_status/index.htm 2 | +++ b/usr/lib/lua/luci/view/admin_status/index.htm 3 | @@ -9,10 +9,18 @@ 4 | local util = require "luci.util" 5 | local stat = require "luci.tools.status" 6 | local ver = require "luci.version" 7 | + local uci = require("luci.model.uci").cursor() 8 | 9 | local has_ipv6 = fs.access("/usr/sbin/ip6tables") 10 | local has_dhcp = fs.access("/etc/config/dhcp") 11 | local has_wifi = ((fs.stat("/etc/config/wireless", "size") or 0) > 0) 12 | + local has_switch = false 13 | + 14 | + uci:foreach("network", "switch", 15 | + function(s) 16 | + has_switch = true 17 | + return false 18 | + end) 19 | 20 | local sysinfo = luci.util.ubus("system", "info") or { } 21 | local boardinfo = luci.util.ubus("system", "board") or { } 22 | @@ -43,12 +51,14 @@ 23 | fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count") or "") or 0 24 | 25 | local conn_max = tonumber(luci.sys.exec( 26 | - "sysctl -n -e net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max" 27 | - ):match("%d+")) or 4096 28 | + "sysctl -n -e net.netfilter.nf_conntrack_max net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max | head -n 1"):match("%d+")) or 4096 29 | 30 | - local user_info = luci.sys.exec("cat /proc/net/arp | grep 'br-lan' | grep '0x2' | wc -l") 31 | + local user_info = luci.sys.exec("cat /proc/net/arp | grep -E 'br-lan|eth0' | grep '0x2' | wc -l") 32 | 33 | local cpu_usage = (luci.sys.exec("expr 100 - $(top -n 1 | grep 'CPU:' | awk -F '%' '{print$4}' | awk -F ' ' '{print$2}')") or "6") .. "%" 34 | + local cpu_stat = luci.sys.exec("/usr/bin/cpustat 2>/dev/null") or { } 35 | + local eth_info = luci.sys.exec("/usr/bin/cpustat -e 2>/dev/null") 36 | + local eth_cnt = luci.sys.exec("/usr/bin/cpustat -ec 2>/dev/null") 37 | 38 | local rv = { 39 | cpuusage = cpu_usage, 40 | @@ -59,11 +69,14 @@ 41 | memory = meminfo, 42 | memcached = mem_cached, 43 | swap = swapinfo, 44 | + ethinfo = eth_info, 45 | + ethcount = eth_cnt, 46 | connmax = conn_max, 47 | conncount = conn_count, 48 | leases = stat.dhcp_leases(), 49 | leases6 = stat.dhcp6_leases(), 50 | - wifinets = stat.wifi_networks() 51 | + wifinets = stat.wifi_networks(), 52 | + cpustat = cpu_stat 53 | } 54 | 55 | if wan then 56 | @@ -641,9 +654,30 @@ 57 | 58 | var e; 59 | 60 | + if (e = document.getElementById('ethinfo')) { 61 | + var ports = eval('(' + info.ethinfo + ')'); 62 | + var avg_width = info.ethcount ? 100 / info.ethcount : 100; 63 | + var tmp = ""; 64 | + for (var i in ports) 65 | + { 66 | + tmp = tmp + String.format( 67 | + '%s

%s
%s
%s
', 68 | + avg_width, 69 | + ports[i].name, 70 | + ports[i].operstate ? 'port_up.png' : 'port_down.png', 71 | + ports[i].driver, 72 | + ports[i].speed, 73 | + ports[i].temperature); 74 | + }; 75 | + e.innerHTML = "" + tmp + ""; 76 | + } 77 | + 78 | if (e = document.getElementById('localtime')) 79 | e.innerHTML = info.localtime; 80 | 81 | + if (e = document.getElementById('cpustat')) 82 | + e.innerHTML = info.cpustat; 83 | + 84 | if (e = document.getElementById('uptime')) 85 | e.innerHTML = String.format('%t', info.uptime); 86 | 87 | @@ -700,7 +734,7 @@ 88 | 89 | 90 | 91 | - 92 | + 93 | 98 | 99 | 100 | + 101 | 102 | 103 |
<%:Hostname%><%=luci.sys.hostname() or "?"%>
<%:Model%><%=pcdata(boardinfo.model or "?")%> <%=luci.sys.exec("cat /etc/bench.log") or " "%>
<%:Architecture%><%=pcdata(boardinfo.system or "ARMv8 Processor")%> x <%=luci.sys.exec("cat /proc/cpuinfo | grep 'processor' | wc -l") or "1"%>
<%:Architecture%><%=luci.sys.exec("/usr/bin/cpustat -a 2>/dev/null")%>
<%:Firmware Version%> 94 | <%=pcdata(ver.distname)%> <%=pcdata(ver.distversion)%> / 95 | <%=pcdata(ver.luciname)%> (<%=pcdata(ver.luciversion)%>) 96 | @@ -708,6 +742,7 @@ 97 |
<%:Kernel Version%><%=unameinfo.release or "?"%>
<%:Local Time%>-
<%:Uptime%>-
<%:CPU状态%>-
<%:Load Average%>-
<%:CPU usage (%)%>-
104 | @@ -732,6 +767,15 @@ 105 | 106 | 107 | <% end %> 108 | + 109 | +<% if not has_switch then %> 110 | +
111 | + <%:Interfaces%> 112 | + 113 | + 114 | +
115 | +
116 | +<% end %> 117 | 118 |
119 | <%:Network%> 120 | -------------------------------------------------------------------------------- /docker/patches/init.d_turboacc.patch: -------------------------------------------------------------------------------- 1 | --- a/etc/init.d/turboacc 2 | +++ b/etc/init.d/turboacc 3 | @@ -21,10 +21,10 @@ inital_conf(){ 4 | config_get "dns_caching_mode" "config" "dns_caching_mode" "0" 5 | config_get "dns_caching_dns" "config" "dns_caching_dns" 6 | 7 | - [ -e "/lib/modules/$(uname -r)/mtkhnat.ko" ] && { sw_flow="0"; hw_flow="1"; } 8 | - [ ! -e "/lib/modules/$(uname -r)/xt_FLOWOFFLOAD.ko" ] && { sw_flow="0"; hw_flow="0"; } 9 | - [ ! -e "/lib/modules/$(uname -r)/tcp_bbr.ko" ] && bbr_cca="0" 10 | - [ ! -e "/lib/modules/$(uname -r)/xt_FULLCONENAT.ko" ] && fullcone_nat="0" 11 | + modinfo mtkhnat >/dev/null 2>&1 && { sw_flow="0"; hw_flow="1"; } 12 | + modinfo xt_FLOWOFFLOAD >/dev/null 2>&1 || { sw_flow="0"; hw_flow="0"; } 13 | + modinfo tcp_bbr >/dev/null 2>&1 || bbr_cca="0" 14 | + modinfo xt_FULLCONENAT >/dev/null 2>&1 || fullcone_nat="0" 15 | } 16 | 17 | start_pdnsd() { 18 | @@ -228,8 +228,8 @@ revert_dns() { 19 | load_sfe() { 20 | local kernel_version=$(uname -r) 21 | 22 | - [ -e "/lib/modules/$kernel_version/shortcut-fe-cm.ko" ] && modprobe shortcut-fe-cm 23 | - [ -e "/lib/modules/$kernel_version/fast-classifier.ko" ] && modprobe fast-classifier 24 | + modinfo shortcut-fe-cm >/dev/null 2>&1 && modprobe shortcut-fe-cm 25 | + modinfo fast-classifier >/dev/null 2>&1 && modprobe fast-classifier 26 | } 27 | 28 | unload_sfe() { 29 | -------------------------------------------------------------------------------- /docker/patches/kmod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phyng/OpenWrt/3fe6f9fd23273052f7c6cfa91c231fb15766d998/docker/patches/kmod -------------------------------------------------------------------------------- /docker/patches/rc.local: -------------------------------------------------------------------------------- 1 | # 修复在某些docker环境下网络卡顿的问题, 如果非必要请勿删除! 2 | cat > /etc/resolv.conf < 3 | Date: Sun, 3 Mar 2024 15:31:06 +0800 4 | Subject: [PATCH] show soc status on luci 5 | 6 | Signed-off-by: pexcn 7 | --- 8 | modules/luci-base/root/sbin/soc-status | 63 +++++++++++++++++++ 9 | .../luci-base/root/usr/share/rpcd/ucode/luci | 51 +++++++++++++++ 10 | .../view/status/include/10_system.js | 30 ++++++++- 11 | .../usr/share/rpcd/acl.d/luci-mod-status.json | 2 +- 12 | 4 files changed, 142 insertions(+), 4 deletions(-) 13 | create mode 100755 modules/luci-base/root/sbin/soc-status 14 | 15 | diff --git a/modules/luci-base/root/sbin/soc-status b/modules/luci-base/root/sbin/soc-status 16 | new file mode 100755 17 | index 0000000000..467b3247bf 18 | --- /dev/null 19 | +++ b/modules/luci-base/root/sbin/soc-status 20 | @@ -0,0 +1,63 @@ 21 | +#!/bin/sh 22 | +# shellcheck disable=SC2155 23 | + 24 | +get_cpu_freq() { 25 | + local value="$(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq 2>/dev/null)" 26 | + [ -n "$value" ] || value="0" 27 | + echo "$value" 28 | +} 29 | + 30 | +get_cpu_governor() { 31 | + local value="$(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor 2>/dev/null)" 32 | + [ -n "$value" ] || value="unknown" 33 | + echo "$value" 34 | +} 35 | + 36 | +get_cpu_temp() { 37 | + local value="$(cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | sort -n | tail -1)" 38 | + [ -n "$value" ] || value="-1" 39 | + echo "$value" 40 | +} 41 | + 42 | +get_wifi_temp() { 43 | + local value="$(cat /sys/class/ieee80211/phy*/hwmon*/temp*_input 2>/dev/null | sort -n | tail -1)" 44 | + [ -n "$value" ] || value="-1" 45 | + echo "$value" 46 | +} 47 | + 48 | +get_cpu_usage() { 49 | + local value="$(top -b -n1 | awk '/^CPU/ { print 100-$8 }')" 50 | + [ -n "$value" ] || value="-1" 51 | + echo "$value" 52 | +} 53 | + 54 | +get_nss_usage() { 55 | + local value="$(grep '%' /sys/kernel/debug/qca-nss-drv/stats/cpu_load_ubi 2>/dev/null | awk '{print $2}' | sed 's/%//')" 56 | + [ -n "$value" ] || value="-1" 57 | + echo "$value" 58 | +} 59 | + 60 | +case "$1" in 61 | + cpu_freq) 62 | + get_cpu_freq 63 | + ;; 64 | + cpu_governor) 65 | + get_cpu_governor 66 | + ;; 67 | + cpu_temp) 68 | + get_cpu_temp | awk '{ printf("%.1f\n", $1/1000) }' 69 | + ;; 70 | + wifi_temp) 71 | + get_wifi_temp | awk '{ printf("%.1f\n", $1/1000) }' 72 | + ;; 73 | + cpu_usage) 74 | + get_cpu_usage 75 | + ;; 76 | + nss_usage) 77 | + get_nss_usage 78 | + ;; 79 | + *) 80 | + echo "Usage: $0 {cpu_freq|cpu_governor|cpu_temp|wifi_temp|cpu_usage|nss_usage}" 81 | + exit 1 82 | + ;; 83 | +esac 84 | diff --git a/modules/luci-base/root/usr/share/rpcd/ucode/luci b/modules/luci-base/root/usr/share/rpcd/ucode/luci 85 | index 3c4fea4691..abccca886e 100644 86 | --- a/modules/luci-base/root/usr/share/rpcd/ucode/luci 87 | +++ b/modules/luci-base/root/usr/share/rpcd/ucode/luci 88 | @@ -581,6 +581,57 @@ const methods = { 89 | 90 | return { result: ports }; 91 | } 92 | + }, 93 | + 94 | + getCoreInfo: { 95 | + call: function() { 96 | + let fd; 97 | + let result = {}; 98 | + 99 | + fd = popen('soc-status cpu_freq'); 100 | + result.cpufreq = trim(fd.read('all')); 101 | + fd.close(); 102 | + 103 | + fd = popen('soc-status cpu_governor'); 104 | + result.governor = trim(fd.read('all')); 105 | + fd.close(); 106 | + 107 | + return result; 108 | + } 109 | + }, 110 | + 111 | + getCoreTemp: { 112 | + call: function() { 113 | + let fd; 114 | + let result = {}; 115 | + 116 | + fd = popen('soc-status cpu_temp'); 117 | + result.cpu = trim(fd.read('all')); 118 | + fd.close(); 119 | + 120 | + fd = popen('soc-status wifi_temp'); 121 | + result.wifi = trim(fd.read('all')); 122 | + fd.close(); 123 | + 124 | + return result; 125 | + } 126 | + }, 127 | + 128 | + getCoreUsage: { 129 | + call: function() { 130 | + let fd; 131 | + let result = {}; 132 | + 133 | + fd = popen('soc-status cpu_usage'); 134 | + result.cpu = trim(fd.read('all')); 135 | + fd.close(); 136 | + 137 | + fd = popen('soc-status nss_usage'); 138 | + result.nss = trim(fd.read('all')); 139 | + fd.close(); 140 | + 141 | + return result; 142 | + } 143 | } 144 | }; 145 | 146 | diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js 147 | index 45f7b4acae..032f74bdd4 100644 148 | --- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js 149 | +++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js 150 | @@ -8,6 +8,21 @@ var callLuciVersion = rpc.declare({ 151 | method: 'getVersion' 152 | }); 153 | 154 | +var callCoreInfo = rpc.declare({ 155 | + object: 'luci', 156 | + method: 'getCoreInfo' 157 | +}); 158 | + 159 | +var callCoreTemp = rpc.declare({ 160 | + object: 'luci', 161 | + method: 'getCoreTemp' 162 | +}); 163 | + 164 | +var callCoreUsage = rpc.declare({ 165 | + object: 'luci', 166 | + method: 'getCoreUsage' 167 | +}); 168 | + 169 | var callSystemBoard = rpc.declare({ 170 | object: 'system', 171 | method: 'board' 172 | @@ -25,14 +40,20 @@ return baseclass.extend({ 173 | return Promise.all([ 174 | L.resolveDefault(callSystemBoard(), {}), 175 | L.resolveDefault(callSystemInfo(), {}), 176 | - L.resolveDefault(callLuciVersion(), { revision: _('unknown version'), branch: 'LuCI' }) 177 | + L.resolveDefault(callLuciVersion(), { revision: _('unknown version'), branch: 'LuCI' }), 178 | + L.resolveDefault(callCoreInfo(), {}), 179 | + L.resolveDefault(callCoreTemp(), {}), 180 | + L.resolveDefault(callCoreUsage(), {}) 181 | ]); 182 | }, 183 | 184 | render: function(data) { 185 | var boardinfo = data[0], 186 | systeminfo = data[1], 187 | - luciversion = data[2]; 188 | + luciversion = data[2], 189 | + coreinfo = data[3], 190 | + coretemp = data[4], 191 | + coreusage = data[5]; 192 | 193 | luciversion = luciversion.branch + ' ' + luciversion.revision; 194 | 195 | @@ -64,7 +85,10 @@ return baseclass.extend({ 196 | systeminfo.load[0] / 65535.0, 197 | systeminfo.load[1] / 65535.0, 198 | systeminfo.load[2] / 65535.0 199 | - ) : null 200 | + ) : null, 201 | + _('核心频率'), coreinfo.cpufreq / 1000 + ' MHz ' + '(' + coreinfo.governor + ')', 202 | + _('核心温度'), 'CPU ' + coretemp.cpu + ' °C' + ' / ' + 'WiFi ' + coretemp.wifi + ' °C', 203 | + _('使用率'), 'CPU ' + coreusage.cpu + '%' + ' / ' + 'NSS ' + coreusage.nss + '%' 204 | ]; 205 | 206 | var table = E('table', { 'class': 'table' }); 207 | diff --git a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json 208 | index 45dd7d7d9e..8f60a1eda8 100644 209 | --- a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json 210 | +++ b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json 211 | @@ -3,7 +3,7 @@ 212 | "description": "Grant access to realtime statistics", 213 | "read": { 214 | "ubus": { 215 | - "luci": [ "getConntrackList", "getRealtimeStats" ], 216 | + "luci": [ "getConntrackList", "getRealtimeStats", "getCoreInfo", "getCoreTemp", "getCoreUsage" ], 217 | "network.rrdns": [ "lookup" ] 218 | } 219 | } 220 | -- 221 | 2.39.2 222 | 223 | -------------------------------------------------------------------------------- /patchs/0002-show-soc-status-on-luci.patch: -------------------------------------------------------------------------------- 1 | From d36f3bcef56a912b04670680e41cc4c729848ef1 Mon Sep 17 00:00:00 2001 2 | From: pexcn 3 | Date: Sun, 3 Mar 2024 15:31:06 +0800 4 | Subject: [PATCH] show soc status on luci 5 | 6 | Signed-off-by: pexcn 7 | 8 | 123 9 | 10 | fix bugs 11 | --- 12 | modules/luci-base/root/sbin/soc-status | 36 +++++++++++++++++++ 13 | .../luci-base/root/usr/share/rpcd/ucode/luci | 30 ++++++++++++++++ 14 | .../view/status/include/10_system.js | 22 ++++++++++-- 15 | .../usr/share/rpcd/acl.d/luci-mod-status.json | 2 +- 16 | 4 files changed, 86 insertions(+), 4 deletions(-) 17 | create mode 100755 modules/luci-base/root/sbin/soc-status 18 | 19 | diff --git a/modules/luci-base/root/sbin/soc-status b/modules/luci-base/root/sbin/soc-status 20 | new file mode 100755 21 | index 0000000..1c173f7 22 | --- /dev/null 23 | +++ b/modules/luci-base/root/sbin/soc-status 24 | @@ -0,0 +1,36 @@ 25 | +#!/bin/sh 26 | +# shellcheck disable=SC2155 27 | + 28 | +get_cpu_temp() { 29 | + local value="$(cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | sort -n | tail -1)" 30 | + [ -n "$value" ] || value="-1" 31 | + echo "$value" 32 | +} 33 | + 34 | +get_cpu_usage() { 35 | + local value="$(top -b -n1 | awk '/^CPU/ { print 100-$8 }')" 36 | + [ -n "$value" ] || value="-1" 37 | + echo "$value" 38 | +} 39 | + 40 | +get_nss_usage() { 41 | + local value="$(grep '%' /sys/kernel/debug/qca-nss-drv/stats/cpu_load_ubi 2>/dev/null | awk '{print $2}' | sed 's/%//')" 42 | + [ -n "$value" ] || value="-1" 43 | + echo "$value" 44 | +} 45 | + 46 | +case "$1" in 47 | + cpu_temp) 48 | + get_cpu_temp | awk '{ printf("%.1f\n", $1/1000) }' 49 | + ;; 50 | + cpu_usage) 51 | + get_cpu_usage 52 | + ;; 53 | + nss_usage) 54 | + get_nss_usage 55 | + ;; 56 | + *) 57 | + echo "Usage: $0 {cpu_temp|cpu_usage|nss_usage}" 58 | + exit 1 59 | + ;; 60 | +esac 61 | diff --git a/modules/luci-base/root/usr/share/rpcd/ucode/luci b/modules/luci-base/root/usr/share/rpcd/ucode/luci 62 | index 3c4fea4..7935b43 100644 63 | --- a/modules/luci-base/root/usr/share/rpcd/ucode/luci 64 | +++ b/modules/luci-base/root/usr/share/rpcd/ucode/luci 65 | @@ -581,6 +581,36 @@ const methods = { 66 | 67 | return { result: ports }; 68 | } 69 | + }, 70 | + 71 | + getCoreTemp: { 72 | + call: function() { 73 | + let fd; 74 | + let result = {}; 75 | + 76 | + fd = popen('soc-status cpu_temp'); 77 | + result.cpu = trim(fd.read('all')); 78 | + fd.close(); 79 | + 80 | + return result; 81 | + } 82 | + }, 83 | + 84 | + getCoreUsage: { 85 | + call: function() { 86 | + let fd; 87 | + let result = {}; 88 | + 89 | + fd = popen('soc-status cpu_usage'); 90 | + result.cpu = trim(fd.read('all')); 91 | + fd.close(); 92 | + 93 | + fd = popen('soc-status nss_usage'); 94 | + result.nss = trim(fd.read('all')); 95 | + fd.close(); 96 | + 97 | + return result; 98 | + } 99 | } 100 | }; 101 | 102 | diff --git a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js 103 | index 45f7b4a..b83955c 100644 104 | --- a/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js 105 | +++ b/modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js 106 | @@ -8,6 +8,16 @@ var callLuciVersion = rpc.declare({ 107 | method: 'getVersion' 108 | }); 109 | 110 | +var callCoreTemp = rpc.declare({ 111 | + object: 'luci', 112 | + method: 'getCoreTemp' 113 | +}); 114 | + 115 | +var callCoreUsage = rpc.declare({ 116 | + object: 'luci', 117 | + method: 'getCoreUsage' 118 | +}); 119 | + 120 | var callSystemBoard = rpc.declare({ 121 | object: 'system', 122 | method: 'board' 123 | @@ -25,14 +35,18 @@ return baseclass.extend({ 124 | return Promise.all([ 125 | L.resolveDefault(callSystemBoard(), {}), 126 | L.resolveDefault(callSystemInfo(), {}), 127 | - L.resolveDefault(callLuciVersion(), { revision: _('unknown version'), branch: 'LuCI' }) 128 | + L.resolveDefault(callLuciVersion(), { revision: _('unknown version'), branch: 'LuCI' }), 129 | + L.resolveDefault(callCoreTemp(), {}), 130 | + L.resolveDefault(callCoreUsage(), {}) 131 | ]); 132 | }, 133 | 134 | render: function(data) { 135 | var boardinfo = data[0], 136 | systeminfo = data[1], 137 | - luciversion = data[2]; 138 | + luciversion = data[2], 139 | + coretemp = data[3], 140 | + coreusage = data[4]; 141 | 142 | luciversion = luciversion.branch + ' ' + luciversion.revision; 143 | 144 | @@ -64,7 +78,9 @@ return baseclass.extend({ 145 | systeminfo.load[0] / 65535.0, 146 | systeminfo.load[1] / 65535.0, 147 | systeminfo.load[2] / 65535.0 148 | - ) : null 149 | + ) : null, 150 | + _('核心温度'), 'CPU ' + coretemp.cpu + ' °C', 151 | + _('使用率'), 'CPU ' + coreusage.cpu + '%' + ' / ' + 'NSS ' + coreusage.nss + '%' 152 | ]; 153 | 154 | var table = E('table', { 'class': 'table' }); 155 | diff --git a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json 156 | index 45dd7d7..127daa5 100644 157 | --- a/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json 158 | +++ b/modules/luci-mod-status/root/usr/share/rpcd/acl.d/luci-mod-status.json 159 | @@ -3,7 +3,7 @@ 160 | "description": "Grant access to realtime statistics", 161 | "read": { 162 | "ubus": { 163 | - "luci": [ "getConntrackList", "getRealtimeStats" ], 164 | + "luci": [ "getConntrackList", "getRealtimeStats", "getCoreTemp", "getCoreUsage" ], 165 | "network.rrdns": [ "lookup" ] 166 | } 167 | } 168 | -- 169 | 2.34.1 170 | 171 | -------------------------------------------------------------------------------- /scripts/.zshrc: -------------------------------------------------------------------------------- 1 | # If you come from bash you might have to change your $PATH. 2 | # export PATH=$HOME/bin:/usr/local/bin:$PATH 3 | 4 | # Path to your oh-my-zsh installation. 5 | export ZSH=$HOME/.oh-my-zsh 6 | 7 | # Set name of the theme to load --- if set to "random", it will 8 | # load a random theme each time oh-my-zsh is loaded, in which case, 9 | # to know which specific one was loaded, run: echo $RANDOM_THEME 10 | # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 11 | ZSH_THEME="ys" 12 | 13 | # Set list of themes to pick from when loading at random 14 | # Setting this variable when ZSH_THEME=random will cause zsh to load 15 | # a theme from this variable instead of looking in $ZSH/themes/ 16 | # If set to an empty array, this variable will have no effect. 17 | # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) 18 | 19 | # Uncomment the following line to use case-sensitive completion. 20 | # CASE_SENSITIVE="true" 21 | 22 | # Uncomment the following line to use hyphen-insensitive completion. 23 | # Case-sensitive completion must be off. _ and - will be interchangeable. 24 | # HYPHEN_INSENSITIVE="true" 25 | 26 | # Uncomment the following line to disable bi-weekly auto-update checks. 27 | DISABLE_AUTO_UPDATE="true" 28 | 29 | # Uncomment the following line to automatically update without prompting. 30 | # DISABLE_UPDATE_PROMPT="true" 31 | 32 | # Uncomment the following line to change how often to auto-update (in days). 33 | # export UPDATE_ZSH_DAYS=13 34 | 35 | # Uncomment the following line if pasting URLs and other text is messed up. 36 | # DISABLE_MAGIC_FUNCTIONS="true" 37 | 38 | # Uncomment the following line to disable colors in ls. 39 | # DISABLE_LS_COLORS="true" 40 | 41 | # Uncomment the following line to disable auto-setting terminal title. 42 | # DISABLE_AUTO_TITLE="true" 43 | 44 | # Uncomment the following line to enable command auto-correction. 45 | # ENABLE_CORRECTION="true" 46 | 47 | # Uncomment the following line to display red dots whilst waiting for completion. 48 | # COMPLETION_WAITING_DOTS="true" 49 | 50 | # Uncomment the following line if you want to disable marking untracked files 51 | # under VCS as dirty. This makes repository status check for large repositories 52 | # much, much faster. 53 | # DISABLE_UNTRACKED_FILES_DIRTY="true" 54 | 55 | # Uncomment the following line if you want to change the command execution time 56 | # stamp shown in the history command output. 57 | # You can set one of the optional three formats: 58 | # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" 59 | # or set a custom format using the strftime function format specifications, 60 | # see 'man strftime' for details. 61 | # HIST_STAMPS="mm/dd/yyyy" 62 | 63 | # Would you like to use another custom folder than $ZSH/custom? 64 | # ZSH_CUSTOM=/path/to/new-custom-folder 65 | 66 | # Which plugins would you like to load? 67 | # Standard plugins can be found in $ZSH/plugins/ 68 | # Custom plugins may be added to $ZSH_CUSTOM/plugins/ 69 | # Example format: plugins=(rails git textmate ruby lighthouse) 70 | # Add wisely, as too many plugins slow down shell startup. 71 | plugins=(git command-not-found extract z docker zsh-syntax-highlighting zsh-autosuggestions zsh-completions) 72 | 73 | source $ZSH/oh-my-zsh.sh 74 | 75 | # User configuration 76 | 77 | # export MANPATH="/usr/local/man:$MANPATH" 78 | 79 | # You may need to manually set your language environment 80 | # export LANG=en_US.UTF-8 81 | 82 | # Preferred editor for local and remote sessions 83 | # if [[ -n $SSH_CONNECTION ]]; then 84 | # export EDITOR='vim' 85 | # else 86 | # export EDITOR='mvim' 87 | # fi 88 | 89 | # Compilation flags 90 | # export ARCHFLAGS="-arch x86_64" 91 | 92 | # Set personal aliases, overriding those provided by oh-my-zsh libs, 93 | # plugins, and themes. Aliases can be placed here, though oh-my-zsh 94 | # users are encouraged to define aliases within the ZSH_CUSTOM folder. 95 | # For a full list of active aliases, run `alias`. 96 | # 97 | # Example aliases 98 | # alias zshconfig="mate ~/.zshrc" 99 | # alias ohmyzsh="mate ~/.oh-my-zsh" 100 | 101 | autoload -U compinit && compinit 102 | -------------------------------------------------------------------------------- /scripts/011-fix-mbo-modules-build.patch: -------------------------------------------------------------------------------- 1 | From d65ef1d0ddf9a0e7e7d6fb9d4c9d3319d2b311f1 Mon Sep 17 00:00:00 2001 2 | From: W_Y_CPP <383152993@qq.com> 3 | Date: Sun, 28 May 2023 13:44:07 +0900 4 | Subject: [PATCH] fix build 5 | 6 | --- 7 | wpa_supplicant/Makefile | 1 + 8 | 1 file changed, 1 insertion(+) 9 | 10 | diff --git a/wpa_supplicant/Makefile b/wpa_supplicant/Makefile 11 | index ef36b56..55f0c76 100644 12 | --- a/wpa_supplicant/Makefile 13 | +++ b/wpa_supplicant/Makefile 14 | @@ -339,6 +339,7 @@ endif 15 | 16 | ifdef CONFIG_MBO 17 | CONFIG_WNM=y 18 | +NEED_GAS=y 19 | endif 20 | 21 | ifdef CONFIG_WNM 22 | -- 23 | 2.17.1 24 | -------------------------------------------------------------------------------- /scripts/init-settings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Set default theme to luci-theme-argon 4 | uci set luci.main.mediaurlbase='/luci-static/argon' 5 | uci commit luci 6 | 7 | # Disable IPV6 ula prefix 8 | # sed -i 's/^[^#].*option ula/#&/' /etc/config/network 9 | 10 | # Check file system during boot 11 | # uci set fstab.@global[0].check_fs=1 12 | # uci commit fstab 13 | 14 | exit 0 15 | -------------------------------------------------------------------------------- /scripts/preset-adguard-core.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p files/usr/bin/AdGuardHome 4 | 5 | AGH_CORE=$(curl -sL https://api.github.com/repos/AdguardTeam/AdGuardHome/releases/latest | grep /AdGuardHome_linux_${1} | awk -F '"' '{print $4}') 6 | 7 | wget -qO- $AGH_CORE | tar xOvz > files/usr/bin/AdGuardHome/AdGuardHome 8 | 9 | chmod +x files/usr/bin/AdGuardHome/AdGuardHome 10 | -------------------------------------------------------------------------------- /scripts/preset-clash-core.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p files/etc/openclash/core 4 | 5 | CLASH_DEV_URL="https://raw.githubusercontent.com/vernesong/OpenClash/core/master/dev/clash-linux-${1}.tar.gz" 6 | CLASH_TUN_URL=$(curl -fsSL https://api.github.com/repos/vernesong/OpenClash/contents/master/premium\?ref\=core | grep download_url | grep $1 | awk -F '"' '{print $4}' | grep -v 'v3') 7 | CLASH_META_URL="https://raw.githubusercontent.com/vernesong/OpenClash/core/master/meta/clash-linux-${1}.tar.gz" 8 | GEOIP_URL="https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat" 9 | GEOSITE_URL="https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat" 10 | 11 | wget -qO- $CLASH_DEV_URL | tar xOvz > files/etc/openclash/core/clash 12 | wget -qO- $CLASH_TUN_URL | gunzip -c > files/etc/openclash/core/clash_tun 13 | wget -qO- $CLASH_META_URL | tar xOvz > files/etc/openclash/core/clash_meta 14 | wget -qO- $GEOIP_URL > files/etc/openclash/GeoIP.dat 15 | wget -qO- $GEOSITE_URL > files/etc/openclash/GeoSite.dat 16 | 17 | chmod +x files/etc/openclash/core/clash* 18 | -------------------------------------------------------------------------------- /scripts/preset-terminal-tools.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p files/root 4 | pushd files/root 5 | 6 | # Clone oh-my-zsh repository 7 | git clone --depth=1 https://github.com/ohmyzsh/ohmyzsh ./.oh-my-zsh 8 | 9 | # Install extra plugins 10 | git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions ./.oh-my-zsh/custom/plugins/zsh-autosuggestions 11 | git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting ./.oh-my-zsh/custom/plugins/zsh-syntax-highlighting 12 | git clone --depth=1 https://github.com/zsh-users/zsh-completions ./.oh-my-zsh/custom/plugins/zsh-completions 13 | 14 | # Get .zshrc dotfile 15 | cp $GITHUB_WORKSPACE/scripts/.zshrc . 16 | 17 | popd 18 | --------------------------------------------------------------------------------