Compare commits
168 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
de4f2b6dcf | ||
![]() |
51c648be9e | ||
![]() |
cc3ca5a2ac | ||
![]() |
daef24bd32 | ||
![]() |
7f2aef217e | ||
![]() |
c25b909304 | ||
![]() |
71446d8052 | ||
![]() |
87cb0446b7 | ||
![]() |
f98ee3bbab | ||
![]() |
e17cbd0488 | ||
![]() |
55f9aa693a | ||
![]() |
fd2b54a16b | ||
![]() |
d36e763056 | ||
![]() |
736b40c78b | ||
![]() |
f65d233762 | ||
![]() |
f19e28248b | ||
![]() |
57c24aaa31 | ||
![]() |
637cb5d990 | ||
![]() |
e086bb951c | ||
![]() |
bed637d9d3 | ||
![]() |
7843f21c51 | ||
![]() |
ff802ccc44 | ||
![]() |
f63d64ede0 | ||
![]() |
bec5211deb | ||
![]() |
b0d43be2f3 | ||
![]() |
c79572210f | ||
![]() |
10a674d277 | ||
![]() |
143569c2ed | ||
![]() |
d8597403d2 | ||
![]() |
8cb7919a13 | ||
![]() |
598a0556b7 | ||
![]() |
c04eaad12a | ||
![]() |
8a28ddafe7 | ||
![]() |
84437eeec0 | ||
![]() |
2fb3efda0a | ||
![]() |
22f02beaab | ||
![]() |
03ab770da5 | ||
![]() |
4a7de50769 | ||
![]() |
6690f551c8 | ||
![]() |
18925614c0 | ||
![]() |
7921e48d43 | ||
![]() |
66b5ed7a4e | ||
![]() |
6bbf4a540d | ||
![]() |
de205366a2 | ||
![]() |
9e3a2466f6 | ||
![]() |
49e6e1daf4 | ||
![]() |
c1acef2e0c | ||
![]() |
2de5564f7d | ||
![]() |
cd1acb9db5 | ||
![]() |
e46bc86df7 | ||
![]() |
baf7be6705 | ||
![]() |
7450f993e8 | ||
![]() |
412c850f07 | ||
![]() |
b68173500a | ||
![]() |
473cfb4ff5 | ||
![]() |
0b5650f767 | ||
![]() |
f8ed36f0d7 | ||
![]() |
f212e8b39f | ||
![]() |
83286b911e | ||
![]() |
0432866d1f | ||
![]() |
fac3d99732 | ||
![]() |
bd532bd48e | ||
![]() |
6651efa4ff | ||
![]() |
31139fcdfb | ||
![]() |
372c2ea656 | ||
![]() |
bfb106e8ae | ||
![]() |
37c80e61ee | ||
![]() |
c166cb9661 | ||
![]() |
b8eba75146 | ||
![]() |
851ea69d8e | ||
![]() |
db3eff1022 | ||
![]() |
62cab9f3fb | ||
![]() |
779f730914 | ||
![]() |
692459dd4e | ||
![]() |
9c6180e5f1 | ||
![]() |
1d88859cd3 | ||
![]() |
0a9dc5a6f4 | ||
![]() |
7fb8b48120 | ||
![]() |
46fcb0056e | ||
![]() |
8d081f48a6 | ||
![]() |
e272eb4dbf | ||
![]() |
c21aaa7ec6 | ||
![]() |
80244360ae | ||
![]() |
f7c0331c50 | ||
![]() |
24c38f2585 | ||
![]() |
4618d09587 | ||
![]() |
719f378bfb | ||
![]() |
cb650214ba | ||
![]() |
a57bce987a | ||
![]() |
f0de73f912 | ||
![]() |
3edb06546b | ||
![]() |
1609186976 | ||
![]() |
eec11fbbb6 | ||
![]() |
4e18d224c8 | ||
![]() |
8534844847 | ||
![]() |
0ac79009dd | ||
![]() |
d70f8dea1e | ||
![]() |
baf73daaac | ||
![]() |
e78dc2eae4 | ||
![]() |
89f1d56a7e | ||
![]() |
45f0eb106b | ||
![]() |
5dbf93c8c5 | ||
![]() |
1cb5297ac3 | ||
![]() |
f44984f19c | ||
![]() |
af93874f4e | ||
![]() |
5d1dedd9f7 | ||
![]() |
9585373403 | ||
![]() |
08323e5c28 | ||
![]() |
d9f30b64ad | ||
![]() |
84e0900867 | ||
![]() |
86eb1c0b5a | ||
![]() |
f76185c3f3 | ||
![]() |
76e0338247 | ||
![]() |
367e5c00bd | ||
![]() |
d8002cb627 | ||
![]() |
14a88ba520 | ||
![]() |
99ea96c297 | ||
![]() |
c891ad99f8 | ||
![]() |
b1a2ebbd43 | ||
![]() |
06c4e8a262 | ||
![]() |
aedd5b9278 | ||
![]() |
6eca978401 | ||
![]() |
bc3ee3d25a | ||
![]() |
9ec997b850 | ||
![]() |
52637c3c2f | ||
![]() |
961a5b24ee | ||
![]() |
6d6114d43b | ||
![]() |
6e46f58d2b | ||
![]() |
bb855b211b | ||
![]() |
a0977ba4a9 | ||
![]() |
962c717e2a | ||
![]() |
0503190ffa | ||
![]() |
64b75379b9 | ||
![]() |
f2debfb5f1 | ||
![]() |
5b60c11e57 | ||
![]() |
84357d1dc4 | ||
![]() |
44f803efa8 | ||
![]() |
bf00eabe3d | ||
![]() |
d392156a7c | ||
![]() |
8fcd5d09e3 | ||
![]() |
4c4dda4591 | ||
![]() |
6a288466d9 | ||
![]() |
86f60c475a | ||
![]() |
c78b8a7ef3 | ||
![]() |
171047b353 | ||
![]() |
fb38fa6793 | ||
![]() |
01d9857d50 | ||
![]() |
a85e96c81a | ||
![]() |
eb1eb35c4f | ||
![]() |
5d53493f9c | ||
![]() |
4b4bfa2906 | ||
![]() |
3088a5601c | ||
![]() |
29a6ff527d | ||
![]() |
a2cf419c64 | ||
![]() |
0daba95cf6 | ||
![]() |
20bf6eb371 | ||
![]() |
ca09e54dda | ||
![]() |
c3722b051e | ||
![]() |
52dc637e07 | ||
![]() |
7bd7bd1c3a | ||
![]() |
1206559fc2 | ||
![]() |
9fdaaeb965 | ||
![]() |
4918e13133 | ||
![]() |
9be1decbb4 | ||
![]() |
1bd4b80529 | ||
![]() |
201e5f538d | ||
![]() |
fb2299bf07 | ||
![]() |
acb476b50e |
93
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
93
.github/ISSUE_TEMPLATE/bug-report.yml
vendored
@ -1,93 +0,0 @@
|
|||||||
name: Bug report
|
|
||||||
description: Create a bug report to help us improve
|
|
||||||
labels:
|
|
||||||
- bug
|
|
||||||
body:
|
|
||||||
- type: textarea
|
|
||||||
id: description
|
|
||||||
attributes:
|
|
||||||
label: Describe the bug
|
|
||||||
description: A clear and concise description of the bug.
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: version
|
|
||||||
attributes:
|
|
||||||
label: ImmortalWrt version
|
|
||||||
description: |
|
|
||||||
The ImmortalWrt release or commit hash where this bug occurs (use command below).
|
|
||||||
```. /etc/openwrt_release && echo $DISTRIB_REVISION```
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: release
|
|
||||||
attributes:
|
|
||||||
label: ImmortalWrt release
|
|
||||||
description: |
|
|
||||||
The ImmortalWrt release or commit hash where this bug occurs (use command below).
|
|
||||||
```. /etc/openwrt_release && echo $DISTRIB_RELEASE```
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: target
|
|
||||||
attributes:
|
|
||||||
label: ImmortalWrt target/subtarget
|
|
||||||
description: |
|
|
||||||
The ImmortalWrt target and subtarget where this bug is observed (use command below).
|
|
||||||
```. /etc/openwrt_release && echo $DISTRIB_TARGET```
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: device
|
|
||||||
attributes:
|
|
||||||
label: Device
|
|
||||||
description: |
|
|
||||||
The device exhibiting this bug (if unsure, use command below).
|
|
||||||
```cat /tmp/sysinfo/model```
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: dropdown
|
|
||||||
id: image_kind
|
|
||||||
attributes:
|
|
||||||
label: Image kind
|
|
||||||
options:
|
|
||||||
- Official downloaded image
|
|
||||||
- Self-built image
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: reproduce
|
|
||||||
attributes:
|
|
||||||
label: Steps to reproduce
|
|
||||||
description: Steps to reproduce the reported behaviour.
|
|
||||||
- type: textarea
|
|
||||||
id: behaviour
|
|
||||||
attributes:
|
|
||||||
label: Actual behaviour
|
|
||||||
description: A clear and concise description of what actually happens.
|
|
||||||
- type: textarea
|
|
||||||
id: expected
|
|
||||||
attributes:
|
|
||||||
label: Expected behaviour
|
|
||||||
description: A clear and concise description of what you expected to happen.
|
|
||||||
- type: textarea
|
|
||||||
id: additional
|
|
||||||
attributes:
|
|
||||||
label: Additional info
|
|
||||||
description: Add any additional info you think might be helfpul.
|
|
||||||
- type: textarea
|
|
||||||
id: diffconfig
|
|
||||||
attributes:
|
|
||||||
label: Diffconfig
|
|
||||||
description: |
|
|
||||||
In case of a self-built image, please attach diffconfig.
|
|
||||||
```./scripts/diffconfig.sh```
|
|
||||||
render: text
|
|
||||||
- type: checkboxes
|
|
||||||
id: terms
|
|
||||||
attributes:
|
|
||||||
label: Terms
|
|
||||||
description: By submitting this issue, you agree to the terms below.
|
|
||||||
options:
|
|
||||||
- label: I am reporting an issue for ImmortalWrt, not an unsupported fork.
|
|
||||||
required: true
|
|
9
.github/ISSUE_TEMPLATE/config.yml
vendored
9
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,9 +0,0 @@
|
|||||||
---
|
|
||||||
blank_issues_enabled: true
|
|
||||||
contact_links:
|
|
||||||
- name: ImmortalWrt community
|
|
||||||
url: https://t.me/ctcgfw_openwrt_discuss
|
|
||||||
about: Consider reaching out to our community to get help. ImmortalWrt is a complex software project with many pitfalls; there is a good chance someone can help you solve your issue in no time.
|
|
||||||
- name: OpenWrt documentation
|
|
||||||
url: https://openwrt.org/docs/start
|
|
||||||
about: The OpenWrt documentation contains a lot of valuable information.
|
|
64
.github/workflows/Update-Athena-LED.yml
vendored
Normal file
64
.github/workflows/Update-Athena-LED.yml
vendored
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
name: Update-Athena-LED
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: 0 0 * * 0
|
||||||
|
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
|
||||||
|
permissions: write-all
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
cleanup:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- name: Delete old Releases and Workflows
|
||||||
|
uses: ophub/delete-releases-workflows@main
|
||||||
|
with:
|
||||||
|
gh_token: ${{secrets.GITHUB_TOKEN}}
|
||||||
|
delete_workflows: true
|
||||||
|
workflows_keep_day: 0
|
||||||
|
|
||||||
|
update:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
needs: cleanup
|
||||||
|
steps:
|
||||||
|
- name: Checkout Projects
|
||||||
|
uses: actions/checkout@main
|
||||||
|
|
||||||
|
- name: Update Athena LED
|
||||||
|
run: |
|
||||||
|
cd ./package/emortal/
|
||||||
|
PKG_NAME=luci-app-athena-led
|
||||||
|
|
||||||
|
LOCAL_HASH=$(cat "./$PKG_NAME/.latest_commit" 2>/dev/null || echo "none")
|
||||||
|
REMOTE_HASH=$(curl -sL https://api.github.com/repos/NONGFAH/luci-app-athena-led/commits/main | jq -r '.sha' | cut -c1-8)
|
||||||
|
|
||||||
|
if [[ "$LOCAL_HASH" != "$REMOTE_HASH" ]]; then
|
||||||
|
rm -rf ./$PKG_NAME
|
||||||
|
curl -sL -o ./athena-led.zip https://github.com/NONGFAH/luci-app-athena-led/archive/refs/heads/main.zip
|
||||||
|
unzip ./athena-led.zip -d ./
|
||||||
|
mv ./luci-app-athena-led-main ./$PKG_NAME && rm -rf ./athena-led.zip
|
||||||
|
chmod +x -R ./$PKG_NAME/root/usr/sbin/* && chmod +x -R ./$PKG_NAME/root/etc/init.d/*
|
||||||
|
|
||||||
|
echo "$PKG_NAME has been updated to $REMOTE_HASH!"
|
||||||
|
|
||||||
|
echo "$REMOTE_HASH" > "./$PKG_NAME/.latest_commit"
|
||||||
|
echo "PKG_NAME=$PKG_NAME" >> "$GITHUB_ENV"
|
||||||
|
echo "REMOTE_HASH=$REMOTE_HASH" >> "$GITHUB_ENV"
|
||||||
|
else
|
||||||
|
echo "$PKG_NAME is already the latest!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -z "$(git status -s)" ] || echo -e "CHANGE_STAT=1" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Commit Changes
|
||||||
|
if: ${{ env.CHANGE_STAT }}
|
||||||
|
run: |
|
||||||
|
git config --local user.name "github-actions[bot]"
|
||||||
|
git config --local user.email "<github-actions[bot]@users.noreply.github.com>"
|
||||||
|
git add .
|
||||||
|
git commit -m "${{env.PKG_NAME}}: update version to ${{env.REMOTE_HASH}}"
|
||||||
|
git push -f origin HEAD:main
|
@ -38,3 +38,5 @@ source "target/sdk/Config.in"
|
|||||||
source "target/toolchain/Config.in"
|
source "target/toolchain/Config.in"
|
||||||
|
|
||||||
source "tmp/.config-package.in"
|
source "tmp/.config-package.in"
|
||||||
|
|
||||||
|
source "config/Config-ipq.in"
|
||||||
|
96
README.md
96
README.md
@ -1,93 +1,15 @@
|
|||||||
<img src="https://avatars.githubusercontent.com/u/53193414?s=200&v=4" alt="logo" width="200" height="200" align="right">
|
# 分支说明
|
||||||
|
main 为高通专用,无法编译其他平台,带满血NSS驱动。
|
||||||
|
|
||||||
# Project ImmortalWrt
|
owrt 为多平台通用,可编译高通平台,但没有NSS驱动。
|
||||||
|
|
||||||
ImmortalWrt is a fork of [OpenWrt](https://openwrt.org), with more packages ported, more devices supported, default optimized profiles and localization modifications for mainland China users.<br/>
|
# 自用 ImmortalWRT
|
||||||
Compared to upstream, we allow to use (non-upstreamable) modifications/hacks to provide better feature/performance/support.
|
高通部分源码取自以下项目:
|
||||||
|
|
||||||
Default login address: http://192.168.1.1 or http://immortalwrt.lan, username: __root__, password: _none_.
|
https://github.com/JiaY-shi/openwrt.git
|
||||||
|
|
||||||
## Download
|
https://github.com/LiBwrt/openwrt-6.x.git
|
||||||
Built firmware images are available for many architectures and come with a package selection to be used as WiFi home router. To quickly find a factory image usable to migrate from a vendor stock firmware to ImmortalWrt, try the *Firmware Selector*.
|
|
||||||
|
|
||||||
- [ImmortalWrt Firmware Selector](https://firmware-selector.immortalwrt.org/)
|
https://github.com/qosmio/openwrt-ipq.git
|
||||||
|
|
||||||
If your device is supported, please follow the **Info** link to see install instructions or consult the support resources listed below.
|
https://github.com/King-Of-Knights/openwrt-6.x.git
|
||||||
|
|
||||||
## Development
|
|
||||||
To build your own firmware you need a GNU/Linux, BSD or macOS system (case sensitive filesystem required). Cygwin is unsupported because of the lack of a case sensitive file system.<br/>
|
|
||||||
|
|
||||||
### Requirements
|
|
||||||
To build with this project, Debian 11 is preferred. And you need use the CPU based on AMD64 architecture, with at least 4GB RAM and 25 GB available disk space. Make sure the __Internet__ is accessible.
|
|
||||||
|
|
||||||
The following tools are needed to compile ImmortalWrt, the package names vary between distributions.
|
|
||||||
|
|
||||||
- Here is an example for Debian/Ubuntu users:<br/>
|
|
||||||
- Method 1:
|
|
||||||
<details>
|
|
||||||
<summary>Setup dependencies via APT</summary>
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt update -y
|
|
||||||
sudo apt full-upgrade -y
|
|
||||||
sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
|
|
||||||
bzip2 ccache clang cmake cpio curl device-tree-compiler ecj fastjar flex gawk gettext gcc-multilib \
|
|
||||||
g++-multilib git gnutls-dev gperf haveged help2man intltool lib32gcc-s1 libc6-dev-i386 libelf-dev \
|
|
||||||
libglib2.0-dev libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses-dev libpython3-dev \
|
|
||||||
libreadline-dev libssl-dev libtool libyaml-dev libz-dev lld llvm lrzsz mkisofs msmtp nano \
|
|
||||||
ninja-build p7zip p7zip-full patch pkgconf python3 python3-pip python3-ply python3-docutils \
|
|
||||||
python3-pyelftools qemu-utils re2c rsync scons squashfs-tools subversion swig texinfo uglifyjs \
|
|
||||||
upx-ucl unzip vim wget xmlto xxd zlib1g-dev zstd
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
- Method 2:
|
|
||||||
```bash
|
|
||||||
sudo bash -c 'bash <(curl -s https://build-scripts.immortalwrt.org/init_build_environment.sh)'
|
|
||||||
```
|
|
||||||
|
|
||||||
Note:
|
|
||||||
- Do everything as an unprivileged user, not root, without sudo.
|
|
||||||
- Using CPUs based on other architectures should be fine to compile ImmortalWrt, but more hacks are needed - No warranty at all.
|
|
||||||
- You must __not__ have spaces or non-ascii characters in PATH or in the work folders on the drive.
|
|
||||||
- If you're using Windows Subsystem for Linux (or WSL), removing Windows folders from PATH is required, please see [Build system setup WSL](https://openwrt.org/docs/guide-developer/build-system/wsl) documentation.
|
|
||||||
- Using macOS as the host build OS is __not__ recommended. No warranty at all. You can get tips from [Build system setup macOS](https://openwrt.org/docs/guide-developer/build-system/buildroot.exigence.macosx) documentation.
|
|
||||||
- For more details, please see [Build system setup](https://openwrt.org/docs/guide-developer/build-system/install-buildsystem) documentation.
|
|
||||||
|
|
||||||
### Quickstart
|
|
||||||
1. Run `git clone -b <branch> --single-branch --filter=blob:none https://github.com/immortalwrt/immortalwrt` to clone the source code.
|
|
||||||
2. Run `cd immortalwrt` to enter source directory.
|
|
||||||
3. Run `./scripts/feeds update -a` to obtain all the latest package definitions defined in feeds.conf / feeds.conf.default
|
|
||||||
4. Run `./scripts/feeds install -a` to install symlinks for all obtained packages into package/feeds/
|
|
||||||
5. Run `make menuconfig` to select your preferred configuration for the toolchain, target system & firmware packages.
|
|
||||||
6. Run `make` to build your firmware. This will download all sources, build the cross-compile toolchain and then cross-compile the GNU/Linux kernel & all chosen applications for your target system.
|
|
||||||
|
|
||||||
### Related Repositories
|
|
||||||
The main repository uses multiple sub-repositories to manage packages of different categories. All packages are installed via the OpenWrt package manager called opkg. If you're looking to develop the web interface or port packages to ImmortalWrt, please find the fitting repository below.
|
|
||||||
- [LuCI Web Interface](https://github.com/immortalwrt/luci): Modern and modular interface to control the device via a web browser.
|
|
||||||
- [ImmortalWrt Packages](https://github.com/immortalwrt/packages): Community repository of ported packages.
|
|
||||||
- [OpenWrt Routing](https://github.com/openwrt/routing): Packages specifically focused on (mesh) routing.
|
|
||||||
- [OpenWrt Video](https://github.com/openwrt/video): Packages specifically focused on display servers and clients (Xorg and Wayland).
|
|
||||||
|
|
||||||
## Support Information
|
|
||||||
For a list of supported devices see the [OpenWrt Hardware Database](https://openwrt.org/supported_devices)
|
|
||||||
### Documentation
|
|
||||||
- [Quick Start Guide](https://openwrt.org/docs/guide-quick-start/start)
|
|
||||||
- [User Guide](https://openwrt.org/docs/guide-user/start)
|
|
||||||
- [Developer Documentation](https://openwrt.org/docs/guide-developer/start)
|
|
||||||
- [Technical Reference](https://openwrt.org/docs/techref/start)
|
|
||||||
|
|
||||||
### Support Community
|
|
||||||
- Support Chat: group [@ctcgfw_openwrt_discuss](https://t.me/ctcgfw_openwrt_discuss) on [Telegram](https://telegram.org/).
|
|
||||||
- Support Chat: group [#immortalwrt](https://matrix.to/#/#immortalwrt:matrix.org) on [Matrix](https://matrix.org/).
|
|
||||||
|
|
||||||
## License
|
|
||||||
ImmortalWrt is licensed under [GPL-2.0-only](https://spdx.org/licenses/GPL-2.0-only.html).
|
|
||||||
|
|
||||||
## Acknowledgements
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td><a href="https://dlercloud.com/"><img src="https://user-images.githubusercontent.com/22235437/111103249-f9ec6e00-8588-11eb-9bfc-67cc55574555.png" width="183" height="52" border="0" alt="Dler Cloud"></a></td>
|
|
||||||
<td><a href="https://www.jetbrains.com/"><img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_square.png" width="120" height="120" border="0" alt="JetBrains Black Box Logo logo"></a></td>
|
|
||||||
<td><a href="https://sourceforge.net/"><img src="https://sourceforge.net/sflogo.php?type=17&group_id=3663829" alt="SourceForge" width=200></a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
145
config/Config-ipq.in
Normal file
145
config/Config-ipq.in
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
# vim: set ft=kconfig
|
||||||
|
menu "Qualcomm IPQ Options"
|
||||||
|
|
||||||
|
comment "Kernel build options"
|
||||||
|
|
||||||
|
choice KERNEL_IPQ_MEM_PROFILE
|
||||||
|
prompt "IPQ memory profile"
|
||||||
|
default IPQ_MEM_PROFILE_1024
|
||||||
|
|
||||||
|
config IPQ_MEM_PROFILE_1024
|
||||||
|
bool "1024"
|
||||||
|
config IPQ_MEM_PROFILE_512
|
||||||
|
bool "512"
|
||||||
|
config IPQ_MEM_PROFILE_256
|
||||||
|
bool "256"
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config KERNEL_IPQ_MEM_PROFILE
|
||||||
|
int
|
||||||
|
default 1024 if IPQ_MEM_PROFILE_1024
|
||||||
|
default 512 if IPQ_MEM_PROFILE_512
|
||||||
|
default 256 if IPQ_MEM_PROFILE_256
|
||||||
|
|
||||||
|
help
|
||||||
|
This option select memory profile to used, which defines
|
||||||
|
the reserved memory configuration used in device tree
|
||||||
|
|
||||||
|
config KERNEL_SKB_RECYCLER
|
||||||
|
bool "Generic SKB recycling"
|
||||||
|
default y if KERNEL_IPQ_MEM_PROFILE > 256
|
||||||
|
|
||||||
|
choice KERNEL_SKB_RECYCLE_SIZE
|
||||||
|
prompt "SKB recycler size"
|
||||||
|
default SKB_RECYCLE_SIZE_2304
|
||||||
|
default SKB_RECYCLE_SIZE_1856 if KERNEL_IPQ_MEM_PROFILE < 1024
|
||||||
|
|
||||||
|
depends on KERNEL_SKB_RECYCLER
|
||||||
|
config SKB_RECYCLE_SIZE_1856
|
||||||
|
bool "1856"
|
||||||
|
config SKB_RECYCLE_SIZE_2304
|
||||||
|
bool "2304"
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
config KERNEL_SKB_RECYCLE_SIZE
|
||||||
|
int
|
||||||
|
depends on KERNEL_SKB_RECYCLER
|
||||||
|
default 2304 if SKB_RECYCLE_SIZE_2304
|
||||||
|
default 1856 if SKB_RECYCLE_SIZE_1856
|
||||||
|
|
||||||
|
help
|
||||||
|
SKB recycler default size
|
||||||
|
|
||||||
|
config KERNEL_SKB_RECYCLER_MULTI_CPU
|
||||||
|
bool "Cross-CPU recycling for CPU-locked workloads"
|
||||||
|
depends on KERNEL_SKB_RECYCLER
|
||||||
|
default y
|
||||||
|
|
||||||
|
config KERNEL_SKB_RECYCLER_PREALLOC
|
||||||
|
bool "Enable preallocation of SKBs (For SFE not NSS)"
|
||||||
|
depends on KERNEL_SKB_RECYCLER
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
NOTE: This is primarily for platforms utilizing SFE (Shortcut Forwarding Engine)
|
||||||
|
and not NSS (Network Subsystem) offload.
|
||||||
|
|
||||||
|
NSS offload platforms mostly utilize the SKB recycling feature when managing memory.
|
||||||
|
Mostly when to "reclaim" it.
|
||||||
|
|
||||||
|
This option enables preallocation of SKBs.
|
||||||
|
The default is '16384' which means 16384 x 4096 (Size of SKB) = 64MB.
|
||||||
|
|
||||||
|
config KERNEL_SKB_RECYCLE_MAX_PREALLOC_SKBS
|
||||||
|
int "Number of SKBs to be preallocated"
|
||||||
|
depends on KERNEL_SKB_RECYCLER_PREALLOC
|
||||||
|
default 16384
|
||||||
|
|
||||||
|
config KERNEL_SKB_FIXED_SIZE_2K
|
||||||
|
bool "SKB size fixed at 2K"
|
||||||
|
default n
|
||||||
|
default y if KERNEL_IPQ_MEM_PROFILE < 512
|
||||||
|
help
|
||||||
|
SKB size fixed at 2K. Primarily for platforms with less than 512MB memory.
|
||||||
|
|
||||||
|
config KERNEL_ALLOC_SKB_PAGE_FRAG_DISABLE
|
||||||
|
depends on KERNEL_SKB_RECYCLER
|
||||||
|
bool "Disable alloc skb page frag"
|
||||||
|
default n
|
||||||
|
|
||||||
|
choice KERNEL_PREEMPTION
|
||||||
|
prompt "Kernel preemption level"
|
||||||
|
default KERNEL_PREEMPT
|
||||||
|
|
||||||
|
config KERNEL_PREEMPT_NONE
|
||||||
|
bool "No Forced Preemption (Server)"
|
||||||
|
help
|
||||||
|
This is the traditional Linux preemption model, geared towards
|
||||||
|
throughput. It will still provide good latencies most of the time,
|
||||||
|
but there are no guarantees and occasional longer delays are
|
||||||
|
possible.
|
||||||
|
|
||||||
|
Select this option if you are building a kernel for a server or
|
||||||
|
scientific/computation system, or if you want to maximize the
|
||||||
|
raw processing power of the kernel, irrespective of scheduling
|
||||||
|
latencies.
|
||||||
|
|
||||||
|
config KERNEL_PREEMPT_NONE_BUILD
|
||||||
|
depends on KERNEL_PREEMPT_NONE
|
||||||
|
bool
|
||||||
|
default y
|
||||||
|
|
||||||
|
config KERNEL_PREEMPT
|
||||||
|
bool "Preemptible Kernel (Low-Latency)"
|
||||||
|
help
|
||||||
|
This option reduces the latency of the kernel by making
|
||||||
|
all kernel code (that is not executing in a critical section)
|
||||||
|
preemptible. This allows reaction to interactive events by
|
||||||
|
permitting a low priority process to be preempted involuntarily
|
||||||
|
even if it is in kernel mode executing a system call and would
|
||||||
|
otherwise not be about to reach a natural preemption point.
|
||||||
|
This allows applications to run more 'smoothly' even when the
|
||||||
|
system is under load, at the cost of slightly lower throughput
|
||||||
|
and a slight runtime overhead to kernel code.
|
||||||
|
|
||||||
|
Select this if you are building a kernel for a desktop or
|
||||||
|
embedded system with latency requirements in the milliseconds
|
||||||
|
range.
|
||||||
|
|
||||||
|
if KERNEL_PREEMPT
|
||||||
|
config KERNEL_PREEMPT_RCU
|
||||||
|
bool "Preemptible RCU"
|
||||||
|
default y
|
||||||
|
select KERNEL_PREEMPT_COUNT
|
||||||
|
help
|
||||||
|
This option selects the RCU implementation that is
|
||||||
|
designed for very large SMP systems with hundreds or
|
||||||
|
thousands of CPUs, but for which real-time response
|
||||||
|
is also required. It also scales down nicely to
|
||||||
|
smaller systems.
|
||||||
|
|
||||||
|
Select this option if you are unsure.
|
||||||
|
|
||||||
|
endif
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
endmenu
|
@ -445,7 +445,7 @@ config KERNEL_DEBUG_INFO
|
|||||||
|
|
||||||
config KERNEL_DEBUG_INFO_BTF
|
config KERNEL_DEBUG_INFO_BTF
|
||||||
bool "Enable additional BTF type information"
|
bool "Enable additional BTF type information"
|
||||||
default y if (TARGET_armsr || TARGET_bcm27xx || TARGET_ipq806x_chromium || TARGET_mediatek_filogic || TARGET_mvebu_cortexa53 || TARGET_mvebu_cortexa72 || TARGET_qualcommax_ipq60xx || TARGET_rockchip || TARGET_sunxi || TARGET_x86_64) && BUILDBOT
|
default y if (TARGET_armsr || TARGET_bcm27xx || TARGET_ipq806x_chromium || TARGET_mediatek_filogic || TARGET_mvebu_cortexa53 || TARGET_mvebu_cortexa72 || TARGET_rockchip || TARGET_sunxi || TARGET_x86_64) && BUILDBOT
|
||||||
depends on !HOST_OS_MACOS
|
depends on !HOST_OS_MACOS
|
||||||
depends on KERNEL_DEBUG_INFO && !KERNEL_DEBUG_INFO_REDUCED
|
depends on KERNEL_DEBUG_INFO && !KERNEL_DEBUG_INFO_REDUCED
|
||||||
select DWARVES
|
select DWARVES
|
||||||
@ -473,7 +473,7 @@ config KERNEL_MODULE_ALLOW_BTF_MISMATCH
|
|||||||
|
|
||||||
config KERNEL_DEBUG_INFO_REDUCED
|
config KERNEL_DEBUG_INFO_REDUCED
|
||||||
bool "Reduce debugging information"
|
bool "Reduce debugging information"
|
||||||
default y if !(TARGET_armsr || TARGET_bcm27xx || TARGET_ipq806x_chromium || TARGET_mediatek_filogic || TARGET_mvebu_cortexa53 || TARGET_mvebu_cortexa72 || TARGET_qualcommax_ipq60xx || TARGET_rockchip || TARGET_sunxi || TARGET_x86_64) || !BUILDBOT
|
default y if !(TARGET_armsr || TARGET_bcm27xx || TARGET_ipq806x_chromium || TARGET_mediatek_filogic || TARGET_mvebu_cortexa53 || TARGET_mvebu_cortexa72 || TARGET_rockchip || TARGET_sunxi || TARGET_x86_64) || !BUILDBOT
|
||||||
depends on KERNEL_DEBUG_INFO
|
depends on KERNEL_DEBUG_INFO
|
||||||
help
|
help
|
||||||
If you say Y here gcc is instructed to generate less debugging
|
If you say Y here gcc is instructed to generate less debugging
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
src-git nss_packages https://github.com/qosmio/nss-packages.git
|
||||||
|
src-git sqm_scripts_nss https://github.com/qosmio/sqm-scripts-nss.git
|
||||||
src-git packages https://github.com/immortalwrt/packages.git
|
src-git packages https://github.com/immortalwrt/packages.git
|
||||||
src-git luci https://github.com/immortalwrt/luci.git
|
src-git luci https://github.com/immortalwrt/luci.git
|
||||||
src-git routing https://github.com/openwrt/routing.git
|
src-git routing https://github.com/openwrt/routing.git
|
||||||
|
@ -1,30 +1,40 @@
|
|||||||
BPF_DEPENDS := @HAS_BPF_TOOLCHAIN +@NEED_BPF_TOOLCHAIN
|
BPF_DEPENDS := @HAS_BPF_TOOLCHAIN +@NEED_BPF_TOOLCHAIN
|
||||||
LLVM_VER:=
|
|
||||||
|
|
||||||
CLANG_MIN_VER:=12
|
CLANG_MIN_VER:=12
|
||||||
|
|
||||||
ifneq ($(CONFIG_USE_LLVM_HOST),)
|
ifneq ($(CONFIG_USE_LLVM_HOST),)
|
||||||
|
find-llvm-tool=$(firstword $(shell PATH='$(BPF_PATH)' command -v $(1) || echo '$(firstword $(1))-not-found'))
|
||||||
|
|
||||||
BPF_TOOLCHAIN_HOST_PATH:=$(call qstrip,$(CONFIG_BPF_TOOLCHAIN_HOST_PATH))
|
BPF_TOOLCHAIN_HOST_PATH:=$(call qstrip,$(CONFIG_BPF_TOOLCHAIN_HOST_PATH))
|
||||||
ifneq ($(BPF_TOOLCHAIN_HOST_PATH),)
|
ifneq ($(BPF_TOOLCHAIN_HOST_PATH),)
|
||||||
BPF_PATH:=$(BPF_TOOLCHAIN_HOST_PATH)/bin:$(PATH)
|
BPF_PATH:=$(BPF_TOOLCHAIN_HOST_PATH)/bin:$(PATH)
|
||||||
else
|
else
|
||||||
BPF_PATH:=$(PATH)
|
BPF_PATH:=$(PATH)
|
||||||
endif
|
endif
|
||||||
CLANG:=$(firstword $(shell PATH='$(BPF_PATH)' command -v clang clang-13 clang-12 clang-11))
|
CLANG:=$(call find-llvm-tool,clang clang-13 clang-12)
|
||||||
LLVM_VER:=$(subst clang,,$(notdir $(CLANG)))
|
LLVM_VER:=$(subst clang,,$(notdir $(CLANG)))
|
||||||
endif
|
|
||||||
ifneq ($(CONFIG_USE_LLVM_PREBUILT),)
|
|
||||||
CLANG:=$(TOPDIR)/llvm-bpf/bin/clang
|
|
||||||
endif
|
|
||||||
ifneq ($(CONFIG_USE_LLVM_BUILD),)
|
|
||||||
CLANG:=$(STAGING_DIR_HOST)/llvm-bpf/bin/clang
|
|
||||||
endif
|
|
||||||
|
|
||||||
LLVM_PATH:=$(dir $(CLANG))
|
BPF_PATH:=$(dir $(CLANG)):$(BPF_PATH)
|
||||||
LLVM_LLC:=$(LLVM_PATH)/llc$(LLVM_VER)
|
LLVM_LLC:=$(call find-llvm-tool,llc$(LLVM_VER))
|
||||||
LLVM_DIS:=$(LLVM_PATH)/llvm-dis$(LLVM_VER)
|
LLVM_DIS:=$(call find-llvm-tool,llvm-dis$(LLVM_VER))
|
||||||
LLVM_OPT:=$(LLVM_PATH)/opt$(LLVM_VER)
|
LLVM_OPT:=$(call find-llvm-tool,opt$(LLVM_VER))
|
||||||
LLVM_STRIP:=$(LLVM_PATH)/llvm-strip$(LLVM_VER)
|
LLVM_STRIP:=$(call find-llvm-tool,llvm-strip$(LLVM_VER))
|
||||||
|
else
|
||||||
|
LLVM_PATH:=/invalid
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_USE_LLVM_PREBUILT),)
|
||||||
|
LLVM_PATH:=$(TOPDIR)/llvm-bpf/bin
|
||||||
|
endif
|
||||||
|
ifneq ($(CONFIG_USE_LLVM_BUILD),)
|
||||||
|
LLVM_PATH:=$(STAGING_DIR_HOST)/llvm-bpf/bin
|
||||||
|
endif
|
||||||
|
|
||||||
|
CLANG:=$(LLVM_PATH)/clang
|
||||||
|
LLVM_LLC:=$(LLVM_PATH)/llc
|
||||||
|
LLVM_DIS:=$(LLVM_PATH)/llvm-dis
|
||||||
|
LLVM_OPT:=$(LLVM_PATH)/opt
|
||||||
|
LLVM_STRIP:=$(LLVM_PATH)/llvm-strip
|
||||||
|
endif
|
||||||
|
|
||||||
BPF_KARCH:=mips
|
BPF_KARCH:=mips
|
||||||
BPF_ARCH:=mips$(if $(CONFIG_ARCH_64BIT),64)$(if $(CONFIG_BIG_ENDIAN),,el)
|
BPF_ARCH:=mips$(if $(CONFIG_ARCH_64BIT),64)$(if $(CONFIG_BIG_ENDIAN),,el)
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
LINUX_VERSION-6.6 = .85
|
LINUX_VERSION-6.6 = .87
|
||||||
LINUX_KERNEL_HASH-6.6.85 = 5ebaccf4ca3428cd26817bae62171f4efd270eed866a3e3d0a1d9e970b7b7529
|
LINUX_KERNEL_HASH-6.6.87 = 8957e5c2dacdbc47a16dbf1f6303ca7088409be6197a3881f752313275357ac6
|
||||||
|
@ -290,8 +290,8 @@ ifeq ($(DUMP),1)
|
|||||||
CPU_CFLAGS_archs = -mcpu=archs
|
CPU_CFLAGS_archs = -mcpu=archs
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),riscv64)
|
ifeq ($(ARCH),riscv64)
|
||||||
CPU_TYPE ?= riscv64
|
CPU_TYPE ?= generic
|
||||||
CPU_CFLAGS_riscv64:=-mabi=lp64d -march=rv64imafdc
|
CPU_CFLAGS_generic:=-mabi=lp64d -march=rv64gc
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),loongarch64)
|
ifeq ($(ARCH),loongarch64)
|
||||||
CPU_TYPE ?= generic
|
CPU_TYPE ?= generic
|
||||||
|
@ -1,12 +1,20 @@
|
|||||||
PKG_NAME ?= trusted-firmware-a
|
PKG_NAME ?= trusted-firmware-a
|
||||||
PKG_CPE_ID ?= cpe:/a:arm:trusted_firmware-a
|
PKG_CPE_ID ?= cpe:/a:arm:trusted_firmware-a
|
||||||
|
|
||||||
ifndef PKG_SOURCE_PROTO
|
PKG_LTS ?=
|
||||||
PKG_SOURCE = trusted-firmware-a-$(PKG_VERSION).tar.gz
|
|
||||||
PKG_SOURCE_URL:=https://codeload.github.com/TrustedFirmware-A/trusted-firmware-a/tar.gz/v$(PKG_VERSION)?
|
ifneq ($(PKG_LTS),)
|
||||||
|
PKG_VERSION_PREFIX:=lts-v
|
||||||
|
PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION_PREFIX)$(PKG_VERSION)
|
||||||
|
else
|
||||||
|
PKG_VERSION_PREFIX:=v
|
||||||
|
PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PKG_BUILD_DIR = $(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
ifndef PKG_SOURCE_PROTO
|
||||||
|
PKG_SOURCE = trusted-firmware-a-$(PKG_VERSION_PREFIX)$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=https://codeload.github.com/TrustedFirmware-A/trusted-firmware-a/tar.gz/$(PKG_VERSION_PREFIX)$(PKG_VERSION)?
|
||||||
|
endif
|
||||||
|
|
||||||
PKG_TARGETS := bin
|
PKG_TARGETS := bin
|
||||||
PKG_FLAGS:=nonshared
|
PKG_FLAGS:=nonshared
|
||||||
@ -83,7 +91,7 @@ define Build/Compile/Trusted-Firmware-A
|
|||||||
OPENSSL_DIR=$(STAGING_DIR_HOST) \
|
OPENSSL_DIR=$(STAGING_DIR_HOST) \
|
||||||
$(if $(DTC),DTC="$(DTC)") \
|
$(if $(DTC),DTC="$(DTC)") \
|
||||||
PLAT=$(PLAT) \
|
PLAT=$(PLAT) \
|
||||||
BUILD_STRING="ImmortalWrt v$(PKG_VERSION)-$(PKG_RELEASE) ($(VARIANT))" \
|
BUILD_STRING="ImmortalWrt $(PKG_VERSION_PREFIX)$(PKG_VERSION)-$(PKG_RELEASE) ($(VARIANT))" \
|
||||||
$(TFA_MAKE_FLAGS)
|
$(TFA_MAKE_FLAGS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -312,8 +312,8 @@ generate_static_system() {
|
|||||||
delete system.@system[0]
|
delete system.@system[0]
|
||||||
add system system
|
add system system
|
||||||
set system.@system[-1].hostname='ImmortalWrt'
|
set system.@system[-1].hostname='ImmortalWrt'
|
||||||
set system.@system[-1].timezone='GMT0'
|
set system.@system[-1].timezone='CST-8'
|
||||||
set system.@system[-1].zonename='UTC'
|
set system.@system[-1].zonename='Asia/Shanghai'
|
||||||
set system.@system[-1].ttylogin='0'
|
set system.@system[-1].ttylogin='0'
|
||||||
set system.@system[-1].log_size='128'
|
set system.@system[-1].log_size='128'
|
||||||
set system.@system[-1].urandom_seed='0'
|
set system.@system[-1].urandom_seed='0'
|
||||||
@ -322,10 +322,10 @@ generate_static_system() {
|
|||||||
set system.ntp='timeserver'
|
set system.ntp='timeserver'
|
||||||
set system.ntp.enabled='1'
|
set system.ntp.enabled='1'
|
||||||
set system.ntp.enable_server='0'
|
set system.ntp.enable_server='0'
|
||||||
add_list system.ntp.server='time1.apple.com'
|
add_list system.ntp.server='ntp.tencent.com'
|
||||||
add_list system.ntp.server='time1.google.com'
|
add_list system.ntp.server='ntp.aliyun.com'
|
||||||
add_list system.ntp.server='time.cloudflare.com'
|
add_list system.ntp.server='ntp.ntsc.ac.cn'
|
||||||
add_list system.ntp.server='pool.ntp.org'
|
add_list system.ntp.server='cn.ntp.org.cn'
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
if json_is_a system object; then
|
if json_is_a system object; then
|
||||||
|
0
package/base-files/files/etc/board.d/99-default_network
Normal file → Executable file
0
package/base-files/files/etc/board.d/99-default_network
Normal file → Executable file
0
package/base-files/files/etc/hotplug.d/leds/00-init
Normal file → Executable file
0
package/base-files/files/etc/hotplug.d/leds/00-init
Normal file → Executable file
0
package/base-files/files/etc/hotplug.d/net/00-sysctl
Normal file → Executable file
0
package/base-files/files/etc/hotplug.d/net/00-sysctl
Normal file → Executable file
0
package/base-files/files/etc/sysctl.d/10-default.conf
Normal file → Executable file
0
package/base-files/files/etc/sysctl.d/10-default.conf
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/10_migrate-shadow
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/10_migrate-shadow
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/11_network-migrate-bridges
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/11_network-migrate-bridges
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/12_network-generate-ula
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/12_network-generate-ula
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/13_fix-group-user
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/13_fix-group-user
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/50-root-passwd
Normal file → Executable file
0
package/base-files/files/etc/uci-defaults/50-root-passwd
Normal file → Executable file
@ -1,5 +1,4 @@
|
|||||||
# Copyright (C) 2021 OpenWrt.org
|
# Copyright (C) 2021 OpenWrt.org
|
||||||
#
|
|
||||||
|
|
||||||
. /lib/functions.sh
|
. /lib/functions.sh
|
||||||
|
|
||||||
@ -29,8 +28,7 @@ emmc_upgrade_tar() {
|
|||||||
sync
|
sync
|
||||||
}
|
}
|
||||||
|
|
||||||
[ "$has_kernel" = 1 -a "$EMMC_KERN_DEV" ] &&
|
[ "$has_kernel" = 1 -a "$EMMC_KERN_DEV" ] && export EMMC_KERNEL_BLOCKS=$(($(tar xf "$tar_file" ${board_dir}/kernel -O | dd of="$EMMC_KERN_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1)))
|
||||||
export EMMC_KERNEL_BLOCKS=$(($(tar xf "$tar_file" ${board_dir}/kernel -O | dd of="$EMMC_KERN_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1)))
|
|
||||||
|
|
||||||
if [ -z "$UPGRADE_BACKUP" ]; then
|
if [ -z "$UPGRADE_BACKUP" ]; then
|
||||||
if [ "$EMMC_DATA_DEV" ]; then
|
if [ "$EMMC_DATA_DEV" ]; then
|
||||||
|
@ -43,6 +43,7 @@ endef
|
|||||||
define Trusted-Firmware-A/Default
|
define Trusted-Firmware-A/Default
|
||||||
BUILD_TARGET:=layerscape
|
BUILD_TARGET:=layerscape
|
||||||
BUILD_SUBTARGET:=armv8_64b
|
BUILD_SUBTARGET:=armv8_64b
|
||||||
|
BUILD_DEVICES:=fsl_$(1)
|
||||||
DEPENDS:=+layerscape-rcw +u-boot-fsl_$(1)
|
DEPENDS:=+layerscape-rcw +u-boot-fsl_$(1)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ endef
|
|||||||
define U-Boot/qca9558_nec_aterm
|
define U-Boot/qca9558_nec_aterm
|
||||||
NAME:=NEC Aterm series (QCA9558)
|
NAME:=NEC Aterm series (QCA9558)
|
||||||
BUILD_SUBTARGET:= generic
|
BUILD_SUBTARGET:= generic
|
||||||
BUILD_DEVICES:=nec_wg1400hp nec_wg1800hp nec_wg1800hp2
|
BUILD_DEVICES:=nec_wg1400hp nec_wg1800hp nec_wg1800hp2 nec_wg2200hp
|
||||||
UBOOT_CONFIG:=nec_qca9558_aterm
|
UBOOT_CONFIG:=nec_qca9558_aterm
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -435,6 +435,18 @@ define U-Boot/mt7981_livinet_zr-3020
|
|||||||
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
|
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define U-Boot/mt7981_netis_nx31
|
||||||
|
NAME:=netis NX31
|
||||||
|
BUILD_SUBTARGET:=filogic
|
||||||
|
BUILD_DEVICES:=netis_nx31
|
||||||
|
UBOOT_CONFIG:=mt7981_netis_nx31
|
||||||
|
UBOOT_IMAGE:=u-boot.fip
|
||||||
|
BL2_BOOTDEV:=spim-nand
|
||||||
|
BL2_SOC:=mt7981
|
||||||
|
BL2_DDRTYPE:=ddr3
|
||||||
|
DEPENDS:=+trusted-firmware-a-mt7981-spim-nand-ddr3
|
||||||
|
endef
|
||||||
|
|
||||||
define U-Boot/mt7981_nokia_ea0326gmp
|
define U-Boot/mt7981_nokia_ea0326gmp
|
||||||
NAME:=Nokia EA0326GMP
|
NAME:=Nokia EA0326GMP
|
||||||
BUILD_SUBTARGET:=filogic
|
BUILD_SUBTARGET:=filogic
|
||||||
@ -1006,6 +1018,7 @@ UBOOT_TARGETS := \
|
|||||||
mt7981_konka_komi-a31-emmc \
|
mt7981_konka_komi-a31-emmc \
|
||||||
mt7981_konka_komi-a31-nor \
|
mt7981_konka_komi-a31-nor \
|
||||||
mt7981_livinet_zr-3020 \
|
mt7981_livinet_zr-3020 \
|
||||||
|
mt7981_netis_nx31 \
|
||||||
mt7981_nokia_ea0326gmp \
|
mt7981_nokia_ea0326gmp \
|
||||||
mt7981_openwrt_one-snand \
|
mt7981_openwrt_one-snand \
|
||||||
mt7981_openwrt_one-nor \
|
mt7981_openwrt_one-nor \
|
||||||
|
334
package/boot/uboot-mediatek/patches/445-add-netis-nx31.patch
Normal file
334
package/boot/uboot-mediatek/patches/445-add-netis-nx31.patch
Normal file
@ -0,0 +1,334 @@
|
|||||||
|
--- /dev/null
|
||||||
|
+++ b/configs/mt7981_netis_nx31_defconfig
|
||||||
|
@@ -0,0 +1,106 @@
|
||||||
|
+CONFIG_ARM=y
|
||||||
|
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
|
||||||
|
+CONFIG_POSITION_INDEPENDENT=y
|
||||||
|
+CONFIG_ARCH_MEDIATEK=y
|
||||||
|
+CONFIG_TEXT_BASE=0x41e00000
|
||||||
|
+CONFIG_SYS_MALLOC_F_LEN=0x4000
|
||||||
|
+CONFIG_NR_DRAM_BANKS=1
|
||||||
|
+CONFIG_DEFAULT_DEVICE_TREE="mt7981-netis_nx31"
|
||||||
|
+CONFIG_OF_LIBFDT_OVERLAY=y
|
||||||
|
+CONFIG_TARGET_MT7981=y
|
||||||
|
+CONFIG_SYS_LOAD_ADDR=0x46000000
|
||||||
|
+CONFIG_PRE_CON_BUF_ADDR=0x4007ef00
|
||||||
|
+CONFIG_DEBUG_UART_BASE=0x11002000
|
||||||
|
+CONFIG_DEBUG_UART_CLOCK=40000000
|
||||||
|
+CONFIG_DEBUG_UART=y
|
||||||
|
+CONFIG_FIT=y
|
||||||
|
+CONFIG_BOOTDELAY=30
|
||||||
|
+CONFIG_AUTOBOOT_KEYED=y
|
||||||
|
+CONFIG_AUTOBOOT_MENU_SHOW=y
|
||||||
|
+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-netis_nx31.dtb"
|
||||||
|
+CONFIG_LOGLEVEL=7
|
||||||
|
+CONFIG_PRE_CONSOLE_BUFFER=y
|
||||||
|
+CONFIG_LOG=y
|
||||||
|
+CONFIG_BOARD_LATE_INIT=y
|
||||||
|
+CONFIG_HUSH_PARSER=y
|
||||||
|
+CONFIG_SYS_PROMPT="MT7981> "
|
||||||
|
+CONFIG_CMD_CPU=y
|
||||||
|
+CONFIG_CMD_LICENSE=y
|
||||||
|
+CONFIG_CMD_BOOTMENU=y
|
||||||
|
+CONFIG_CMD_ASKENV=y
|
||||||
|
+CONFIG_CMD_ERASEENV=y
|
||||||
|
+CONFIG_CMD_ENV_FLAGS=y
|
||||||
|
+CONFIG_CMD_STRINGS=y
|
||||||
|
+CONFIG_CMD_DM=y
|
||||||
|
+CONFIG_CMD_GPIO=y
|
||||||
|
+CONFIG_CMD_GPT=y
|
||||||
|
+CONFIG_CMD_MTD=y
|
||||||
|
+CONFIG_CMD_PART=y
|
||||||
|
+CONFIG_CMD_TFTPSRV=y
|
||||||
|
+CONFIG_CMD_RARP=y
|
||||||
|
+CONFIG_CMD_CDP=y
|
||||||
|
+CONFIG_CMD_SNTP=y
|
||||||
|
+CONFIG_CMD_LINK_LOCAL=y
|
||||||
|
+CONFIG_CMD_DHCP=y
|
||||||
|
+CONFIG_CMD_DNS=y
|
||||||
|
+CONFIG_CMD_PING=y
|
||||||
|
+CONFIG_CMD_PXE=y
|
||||||
|
+CONFIG_CMD_CACHE=y
|
||||||
|
+CONFIG_CMD_PSTORE=y
|
||||||
|
+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000
|
||||||
|
+CONFIG_CMD_UUID=y
|
||||||
|
+CONFIG_CMD_HASH=y
|
||||||
|
+CONFIG_CMD_SMC=y
|
||||||
|
+CONFIG_CMD_UBI=y
|
||||||
|
+CONFIG_CMD_UBI_RENAME=y
|
||||||
|
+CONFIG_OF_EMBED=y
|
||||||
|
+CONFIG_ENV_OVERWRITE=y
|
||||||
|
+CONFIG_ENV_IS_IN_UBI=y
|
||||||
|
+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
|
||||||
|
+CONFIG_ENV_UBI_PART="ubi"
|
||||||
|
+CONFIG_ENV_UBI_VOLUME="ubootenv"
|
||||||
|
+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2"
|
||||||
|
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||||
|
+CONFIG_USE_DEFAULT_ENV_FILE=y
|
||||||
|
+CONFIG_DEFAULT_ENV_FILE="defenvs/netis_nx31_env"
|
||||||
|
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||||
|
+CONFIG_VERSION_VARIABLE=y
|
||||||
|
+CONFIG_NETCONSOLE=y
|
||||||
|
+CONFIG_USE_IPADDR=y
|
||||||
|
+CONFIG_IPADDR="192.168.1.1"
|
||||||
|
+CONFIG_USE_SERVERIP=y
|
||||||
|
+CONFIG_SERVERIP="192.168.1.254"
|
||||||
|
+CONFIG_NET_RANDOM_ETHADDR=y
|
||||||
|
+CONFIG_BUTTON=y
|
||||||
|
+CONFIG_BUTTON_GPIO=y
|
||||||
|
+CONFIG_CLK=y
|
||||||
|
+CONFIG_GPIO_HOG=y
|
||||||
|
+CONFIG_LED=y
|
||||||
|
+CONFIG_LED_BLINK=y
|
||||||
|
+CONFIG_LED_GPIO=y
|
||||||
|
+# CONFIG_MMC is not set
|
||||||
|
+CONFIG_MTD=y
|
||||||
|
+CONFIG_DM_MTD=y
|
||||||
|
+CONFIG_MTD_SPI_NAND=y
|
||||||
|
+CONFIG_MTD_UBI_FASTMAP=y
|
||||||
|
+CONFIG_PHY_FIXED=y
|
||||||
|
+CONFIG_MEDIATEK_ETH=y
|
||||||
|
+CONFIG_PHY=y
|
||||||
|
+CONFIG_PHY_MTK_TPHY=y
|
||||||
|
+CONFIG_PINCTRL=y
|
||||||
|
+CONFIG_PINCONF=y
|
||||||
|
+CONFIG_PINCTRL_MT7981=y
|
||||||
|
+CONFIG_POWER_DOMAIN=y
|
||||||
|
+CONFIG_MTK_POWER_DOMAIN=y
|
||||||
|
+CONFIG_DM_REGULATOR=y
|
||||||
|
+CONFIG_DM_REGULATOR_FIXED=y
|
||||||
|
+CONFIG_DM_REGULATOR_GPIO=y
|
||||||
|
+CONFIG_RAM=y
|
||||||
|
+CONFIG_DM_SERIAL=y
|
||||||
|
+CONFIG_SERIAL_RX_BUFFER=y
|
||||||
|
+CONFIG_MTK_SERIAL=y
|
||||||
|
+CONFIG_SPI=y
|
||||||
|
+CONFIG_DM_SPI=y
|
||||||
|
+CONFIG_MTK_SPIM=y
|
||||||
|
+CONFIG_ZSTD=y
|
||||||
|
+CONFIG_HEXDUMP=y
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/arch/arm/dts/mt7981-netis_nx31.dts
|
||||||
|
@@ -0,0 +1,162 @@
|
||||||
|
+// SPDX-License-Identifier: GPL-2.0
|
||||||
|
+/*
|
||||||
|
+ * Copyright (c) 2025
|
||||||
|
+ * Author: Mikhail Zhilkin <csharper2005@gmail.com>
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+/dts-v1/;
|
||||||
|
+#include "mt7981.dtsi"
|
||||||
|
+#include <dt-bindings/gpio/gpio.h>
|
||||||
|
+#include <dt-bindings/input/linux-event-codes.h>
|
||||||
|
+
|
||||||
|
+/ {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <1>;
|
||||||
|
+ model = "netis NX31";
|
||||||
|
+ compatible = "netis,nx31", "mediatek,mt7981";
|
||||||
|
+
|
||||||
|
+ chosen {
|
||||||
|
+ stdout-path = &uart0;
|
||||||
|
+ tick-timer = &timer0;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ memory@40000000 {
|
||||||
|
+ device_type = "memory";
|
||||||
|
+ reg = <0x40000000 0x10000000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ keys {
|
||||||
|
+ compatible = "gpio-keys";
|
||||||
|
+
|
||||||
|
+ button-0 {
|
||||||
|
+ label = "mesh";
|
||||||
|
+ linux,code = <BTN_0>;
|
||||||
|
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ button-1 {
|
||||||
|
+ label = "reset";
|
||||||
|
+ linux,code = <KEY_RESTART>;
|
||||||
|
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ leds {
|
||||||
|
+ compatible = "gpio-leds";
|
||||||
|
+
|
||||||
|
+ led-0 {
|
||||||
|
+ label = "blue:wlan2g";
|
||||||
|
+ gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ led-1 {
|
||||||
|
+ label = "blue:status";
|
||||||
|
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ led-2 {
|
||||||
|
+ label = "blue:wan";
|
||||||
|
+ gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ led-3 {
|
||||||
|
+ label = "blue:wlan5g";
|
||||||
|
+ gpios = <&gpio 34 GPIO_ACTIVE_LOW>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&uart0 {
|
||||||
|
+ mediatek,force-highspeed;
|
||||||
|
+ status = "okay";
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+ð {
|
||||||
|
+ status = "okay";
|
||||||
|
+ mediatek,gmac-id = <0>;
|
||||||
|
+ phy-mode = "2500base-x";
|
||||||
|
+ mediatek,switch = "mt7531";
|
||||||
|
+ reset-gpios = <&gpio 39 GPIO_ACTIVE_HIGH>;
|
||||||
|
+
|
||||||
|
+ fixed-link {
|
||||||
|
+ speed = <2500>;
|
||||||
|
+ full-duplex;
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&pinctrl {
|
||||||
|
+ spi_flash_pins: spi0-pins-func-1 {
|
||||||
|
+ mux {
|
||||||
|
+ function = "flash";
|
||||||
|
+ groups = "spi0", "spi0_wp_hold";
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ conf-pu {
|
||||||
|
+ pins = "SPI0_CS", "SPI0_HOLD", "SPI0_WP";
|
||||||
|
+ drive-strength = <MTK_DRIVE_8mA>;
|
||||||
|
+ bias-pull-up = <MTK_PUPD_SET_R1R0_11>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ conf-pd {
|
||||||
|
+ pins = "SPI0_CLK", "SPI0_MOSI", "SPI0_MISO";
|
||||||
|
+ drive-strength = <MTK_DRIVE_8mA>;
|
||||||
|
+ bias-pull-down = <MTK_PUPD_SET_R1R0_11>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&spi0 {
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <0>;
|
||||||
|
+ pinctrl-names = "default";
|
||||||
|
+ pinctrl-0 = <&spi_flash_pins>;
|
||||||
|
+ status = "okay";
|
||||||
|
+ must_tx;
|
||||||
|
+ enhance_timing;
|
||||||
|
+ dma_ext;
|
||||||
|
+ ipm_design;
|
||||||
|
+ support_quad;
|
||||||
|
+ tick_dly = <2>;
|
||||||
|
+ sample_sel = <0>;
|
||||||
|
+
|
||||||
|
+ spi_nand@0 {
|
||||||
|
+ compatible = "spi-nand";
|
||||||
|
+ reg = <0>;
|
||||||
|
+ spi-max-frequency = <52000000>;
|
||||||
|
+
|
||||||
|
+ partitions {
|
||||||
|
+ compatible = "fixed-partitions";
|
||||||
|
+ #address-cells = <1>;
|
||||||
|
+ #size-cells = <1>;
|
||||||
|
+
|
||||||
|
+ partition@0 {
|
||||||
|
+ label = "BL2";
|
||||||
|
+ reg = <0x0 0x100000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ partition@100000 {
|
||||||
|
+ label = "u-boot-env (unused)";
|
||||||
|
+ reg = <0x100000 0x80000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ partition@160000 {
|
||||||
|
+ label = "Factory";
|
||||||
|
+ reg = <0x180000 0x200000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ partition@380000 {
|
||||||
|
+ label = "FIP";
|
||||||
|
+ reg = <0x380000 0x200000>;
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ partition@580000 {
|
||||||
|
+ label = "ubi";
|
||||||
|
+ reg = <0x580000 0x7a80000>;
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+ };
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+&watchdog {
|
||||||
|
+ status = "disabled";
|
||||||
|
+};
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/defenvs/netis_nx31_env
|
||||||
|
@@ -0,0 +1,57 @@
|
||||||
|
+ipaddr=192.168.1.1
|
||||||
|
+serverip=192.168.1.254
|
||||||
|
+loadaddr=0x46000000
|
||||||
|
+console=earlycon=uart8250,mmio32,0x11002000 console=ttyS0
|
||||||
|
+bootcmd=run check_buttons ; if pstore check ; then run boot_recovery ; else run boot_ubi ; fi
|
||||||
|
+bootconf=config-1
|
||||||
|
+bootdelay=0
|
||||||
|
+bootfile=immortalwrt-mediatek-filogic-netis_nx31-initramfs-recovery.itb
|
||||||
|
+bootfile_bl2=immortalwrt-mediatek-filogic-netis_nx31-preloader.bin
|
||||||
|
+bootfile_fip=immortalwrt-mediatek-filogic-netis_nx31-bl31-uboot.fip
|
||||||
|
+bootfile_upg=immortalwrt-mediatek-filogic-netis_nx31-squashfs-sysupgrade.itb
|
||||||
|
+bootled_status=blue:status
|
||||||
|
+bootmenu_confirm_return=askenv - Press ENTER to return to menu ; bootmenu 60
|
||||||
|
+bootmenu_default=0
|
||||||
|
+bootmenu_delay=0
|
||||||
|
+bootmenu_title= [0;34m( ( ( [1;39mOpenWrt[0;34m ) ) )
|
||||||
|
+bootmenu_0=Initialize environment.=run _firstboot
|
||||||
|
+bootmenu_0d=Run default boot command.=run boot_default
|
||||||
|
+bootmenu_1=Boot system via TFTP.=run boot_tftp ; run bootmenu_confirm_return
|
||||||
|
+bootmenu_2=Boot production system from NAND.=run boot_production ; run bootmenu_confirm_return
|
||||||
|
+bootmenu_3=Boot recovery system from NAND.=run boot_recovery ; run bootmenu_confirm_return
|
||||||
|
+bootmenu_4=Load production system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_production ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
|
||||||
|
+bootmenu_5=Load recovery system via TFTP then write to NAND.=setenv noboot 1 ; setenv replacevol 1 ; run boot_tftp_recovery ; setenv noboot ; setenv replacevol ; run bootmenu_confirm_return
|
||||||
|
+bootmenu_6=[31mLoad BL31+U-Boot FIP via TFTP then write to NAND.[0m=run boot_tftp_write_fip ; run bootmenu_confirm_return
|
||||||
|
+bootmenu_7=[31mLoad BL2 preloader via TFTP then write to NAND.[0m=run boot_tftp_write_bl2 ; run bootmenu_confirm_return
|
||||||
|
+bootmenu_8=Reboot.=reset
|
||||||
|
+bootmenu_9=Reset all settings to factory defaults.=run reset_factory ; reset
|
||||||
|
+boot_first=if button reset ; then led $bootled_status on ; run boot_default ; fi ; bootmenu
|
||||||
|
+boot_default=if env exists flag_recover ; then else run bootcmd ; fi ; run boot_recovery ; setenv replacevol 1 ; run boot_tftp_forever
|
||||||
|
+boot_production=led $bootled_status on ; run ubi_read_production && bootm $loadaddr#$bootconf ; led bootled_status off
|
||||||
|
+boot_recovery=led $bootled_status on ; run ubi_read_recovery && bootm $loadaddr#$bootconf ; led bootled_status off
|
||||||
|
+boot_ubi=run boot_production ; run boot_recovery ; run boot_tftp_forever
|
||||||
|
+boot_tftp_forever=led $bootled_status on ; while true ; do run boot_tftp ; sleep 1 ; done
|
||||||
|
+boot_tftp_production=tftpboot $loadaddr $bootfile_upg && env exists replacevol && iminfo $loadaddr && run ubi_write_production ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
|
||||||
|
+boot_tftp_recovery=tftpboot $loadaddr $bootfile && env exists replacevol && iminfo $loadaddr && run ubi_write_recovery ; if env exists noboot ; then else bootm $loadaddr#$bootconf ; fi
|
||||||
|
+boot_tftp=tftpboot $loadaddr $bootfile && bootm $loadaddr#$bootconf
|
||||||
|
+boot_tftp_write_fip=tftpboot $loadaddr $bootfile_fip && run mtd_write_fip && run reset_factory
|
||||||
|
+boot_tftp_write_bl2=tftpboot $loadaddr $bootfile_bl2 && run mtd_write_bl2
|
||||||
|
+check_buttons=if button reset ; then run boot_tftp ; fi
|
||||||
|
+ethaddr_factory=mtd read Factory 0x40080000 0x1e0000 0x20000 && env readmem -b ethaddr 0x4009ef20 0x6 ; setenv ethaddr_factory
|
||||||
|
+part_default=production
|
||||||
|
+part_recovery=recovery
|
||||||
|
+reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800
|
||||||
|
+mtd_write_fip=mtd erase FIP && mtd write FIP $loadaddr
|
||||||
|
+mtd_write_bl2=mtd erase BL2 && mtd write BL2 $loadaddr
|
||||||
|
+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format
|
||||||
|
+ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset
|
||||||
|
+ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi
|
||||||
|
+ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs
|
||||||
|
+ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery
|
||||||
|
+ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data
|
||||||
|
+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize
|
||||||
|
+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize
|
||||||
|
+_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv
|
||||||
|
+_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first
|
||||||
|
+_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title
|
||||||
|
+_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title [33m$ver[0m"
|
@ -146,6 +146,20 @@ define U-Boot/nanopi-r4se-rk3399
|
|||||||
friendlyarm_nanopi-r4se
|
friendlyarm_nanopi-r4se
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define U-Boot/rock-4c-plus-rk3399
|
||||||
|
$(U-Boot/rk3399/Default)
|
||||||
|
NAME:=ROCK 4C+
|
||||||
|
BUILD_DEVICES:= \
|
||||||
|
radxa_rock-4c-plus
|
||||||
|
endef
|
||||||
|
|
||||||
|
define U-Boot/rock-4se-rk3399
|
||||||
|
$(U-Boot/rk3399/Default)
|
||||||
|
NAME:=ROCK 4SE
|
||||||
|
BUILD_DEVICES:= \
|
||||||
|
radxa_rock-4se
|
||||||
|
endef
|
||||||
|
|
||||||
define U-Boot/rock-pi-4-rk3399
|
define U-Boot/rock-pi-4-rk3399
|
||||||
$(U-Boot/rk3399/Default)
|
$(U-Boot/rk3399/Default)
|
||||||
NAME:=ROCK Pi 4
|
NAME:=ROCK Pi 4
|
||||||
@ -389,6 +403,8 @@ UBOOT_TARGETS := \
|
|||||||
nanopc-t4-rk3399 \
|
nanopc-t4-rk3399 \
|
||||||
nanopi-r4s-rk3399 \
|
nanopi-r4s-rk3399 \
|
||||||
nanopi-r4se-rk3399 \
|
nanopi-r4se-rk3399 \
|
||||||
|
rock-4c-plus-rk3399 \
|
||||||
|
rock-4se-rk3399 \
|
||||||
rock-pi-4-rk3399 \
|
rock-pi-4-rk3399 \
|
||||||
rockpro64-rk3399 \
|
rockpro64-rk3399 \
|
||||||
rock-pi-s-rk3308 \
|
rock-pi-s-rk3308 \
|
||||||
|
@ -45,6 +45,7 @@ livinet,zr-3020-ubootmod|\
|
|||||||
mercusys,mr90x-v1-ubi|\
|
mercusys,mr90x-v1-ubi|\
|
||||||
netcore,n60|\
|
netcore,n60|\
|
||||||
netcore,n60-pro|\
|
netcore,n60-pro|\
|
||||||
|
netis,nx31|\
|
||||||
nokia,ea0326gmp|\
|
nokia,ea0326gmp|\
|
||||||
qihoo,360t7|\
|
qihoo,360t7|\
|
||||||
routerich,ax3000-ubootmod|\
|
routerich,ax3000-ubootmod|\
|
||||||
@ -118,6 +119,7 @@ gatonetworks,gdsp)
|
|||||||
glinet,gl-mt3000)
|
glinet,gl-mt3000)
|
||||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000"
|
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x80000" "0x20000"
|
||||||
;;
|
;;
|
||||||
|
mercusys,mr80x-v3|\
|
||||||
mercusys,mr90x-v1|\
|
mercusys,mr90x-v1|\
|
||||||
routerich,ax3000|\
|
routerich,ax3000|\
|
||||||
tenbay,wr3000k|\
|
tenbay,wr3000k|\
|
||||||
|
@ -7,14 +7,30 @@ touch /etc/config/ubootenv
|
|||||||
|
|
||||||
board=$(board_name)
|
board=$(board_name)
|
||||||
|
|
||||||
|
ubootenv_add_mtd() {
|
||||||
|
local idx="$(find_mtd_index "${1}")"
|
||||||
|
[ -n "$idx" ] && ubootenv_add_uci_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
||||||
|
}
|
||||||
|
|
||||||
|
ubootenv_add_sys_mtd() {
|
||||||
|
local idx="$(find_mtd_index "${1}")"
|
||||||
|
[ -n "$idx" ] && ubootenv_add_uci_sys_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
||||||
|
}
|
||||||
|
|
||||||
|
ubootenv_add_mmc() {
|
||||||
|
local mmcpart="$(find_mmc_part "${1}")"
|
||||||
|
[ -n "$mmcpart" ] && ubootenv_add_uci_config "$mmcpart" "${2}" "${3}" "${4}" "${5}"
|
||||||
|
}
|
||||||
|
|
||||||
case "$board" in
|
case "$board" in
|
||||||
linksys,mr5500|\
|
linksys,mr5500|\
|
||||||
linksys,mx2000|\
|
linksys,mx2000|\
|
||||||
linksys,mx5500|\
|
linksys,mx5500|\
|
||||||
linksys,spnmx56)
|
linksys,spnmx56)
|
||||||
idx="$(find_mtd_index u_env)"
|
ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000"
|
||||||
[ -n "$idx" ] && \
|
;;
|
||||||
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000"
|
jdcloud,re-cs-03)
|
||||||
|
ubootenv_add_mmc "0:APPSBLENV" "0x0" "0x40000" "0x20000"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -9,8 +9,17 @@ board=$(board_name)
|
|||||||
|
|
||||||
ubootenv_add_mtd() {
|
ubootenv_add_mtd() {
|
||||||
local idx="$(find_mtd_index "${1}")"
|
local idx="$(find_mtd_index "${1}")"
|
||||||
[ -n "$idx" ] && \
|
[ -n "$idx" ] && ubootenv_add_uci_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
||||||
ubootenv_add_uci_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
}
|
||||||
|
|
||||||
|
ubootenv_add_sys_mtd() {
|
||||||
|
local idx="$(find_mtd_index "${1}")"
|
||||||
|
[ -n "$idx" ] && ubootenv_add_uci_sys_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
||||||
|
}
|
||||||
|
|
||||||
|
ubootenv_add_mmc() {
|
||||||
|
local mmcpart="$(find_mmc_part "${1}")"
|
||||||
|
[ -n "$mmcpart" ] && ubootenv_add_uci_config "$mmcpart" "${2}" "${3}" "${4}" "${5}"
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$board" in
|
case "$board" in
|
||||||
@ -19,21 +28,35 @@ case "$board" in
|
|||||||
cambiumnetworks,xe3-4)
|
cambiumnetworks,xe3-4)
|
||||||
ubootenv_add_mtd "0:APPSBLENV" "0x0" "0x10000" "0x10000"
|
ubootenv_add_mtd "0:APPSBLENV" "0x0" "0x10000" "0x10000"
|
||||||
;;
|
;;
|
||||||
|
cmiot,ax18|\
|
||||||
|
qihoo,360v6|\
|
||||||
|
redmi,ax5|\
|
||||||
|
xiaomi,ax1800|\
|
||||||
|
zn,m2|\
|
||||||
glinet,gl-ax1800|\
|
glinet,gl-ax1800|\
|
||||||
glinet,gl-axt1800|\
|
glinet,gl-axt1800|\
|
||||||
|
netgear,wax214|\
|
||||||
|
netgear,wax610|\
|
||||||
|
netgear,wax610y|\
|
||||||
|
tplink,eap610od|\
|
||||||
|
tplink,eap623od-hd-v1)
|
||||||
|
ubootenv_add_mtd "0:appsblenv" "0x0" "0x40000" "0x20000"
|
||||||
|
;;
|
||||||
linksys,mr7350|\
|
linksys,mr7350|\
|
||||||
linksys,mr7500)
|
linksys,mr7500)
|
||||||
ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000"
|
ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000"
|
||||||
;;
|
;;
|
||||||
netgear,wax214|\
|
|
||||||
netgear,wax610|\
|
|
||||||
netgear,wax610y|\
|
|
||||||
tplink,eap610-outdoor)
|
|
||||||
ubootenv_add_mtd "0:appsblenv" "0x0" "0x40000" "0x20000"
|
|
||||||
;;
|
|
||||||
yuncore,fap650)
|
yuncore,fap650)
|
||||||
ubootenv_add_mtd "0:appsblenv" "0x0" "0x10000" "0x10000"
|
ubootenv_add_mtd "0:appsblenv" "0x0" "0x10000" "0x10000"
|
||||||
;;
|
;;
|
||||||
|
jdcloud,re-ss-01|\
|
||||||
|
jdcloud,re-cs-02|\
|
||||||
|
jdcloud,re-cs-07|\
|
||||||
|
link,nn6000-v1|\
|
||||||
|
link,nn6000-v2|\
|
||||||
|
redmi,ax5-jdcloud)
|
||||||
|
ubootenv_add_mmc "0:APPSBLENV" "0x0" "0x40000" "0x20000"
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
config_load ubootenv
|
config_load ubootenv
|
||||||
|
@ -9,20 +9,17 @@ board=$(board_name)
|
|||||||
|
|
||||||
ubootenv_add_mtd() {
|
ubootenv_add_mtd() {
|
||||||
local idx="$(find_mtd_index "${1}")"
|
local idx="$(find_mtd_index "${1}")"
|
||||||
[ -n "$idx" ] && \
|
[ -n "$idx" ] && ubootenv_add_uci_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
||||||
ubootenv_add_uci_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ubootenv_add_sys_mtd() {
|
ubootenv_add_sys_mtd() {
|
||||||
local idx="$(find_mtd_index "${1}")"
|
local idx="$(find_mtd_index "${1}")"
|
||||||
[ -n "$idx" ] && \
|
[ -n "$idx" ] && ubootenv_add_uci_sys_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
||||||
ubootenv_add_uci_sys_config "/dev/mtd$idx" "${2}" "${3}" "${4}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ubootenv_add_mmc() {
|
ubootenv_add_mmc() {
|
||||||
local mmcpart="$(find_mmc_part "${1}")"
|
local mmcpart="$(find_mmc_part "${1}")"
|
||||||
[ -n "$mmcpart" ] && \
|
[ -n "$mmcpart" ] && ubootenv_add_uci_config "$mmcpart" "${2}" "${3}" "${4}" "${5}"
|
||||||
ubootenv_add_uci_config "$mmcpart" "${2}" "${3}" "${4}" "${5}"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$board" in
|
case "$board" in
|
||||||
@ -74,8 +71,9 @@ asus,rt-ax89x|\
|
|||||||
qnap,301w)
|
qnap,301w)
|
||||||
ubootenv_add_mtd "0:appsblenv" "0x0" "0x20000" "0x20000"
|
ubootenv_add_mtd "0:appsblenv" "0x0" "0x20000" "0x20000"
|
||||||
;;
|
;;
|
||||||
spectrum,sax1v1k)
|
spectrum,sax1v1k|\
|
||||||
ubootenv_add_mmc "0:APPSBLENV" "0x0" "0x40000" "0x40000" "1"
|
verizon,cr1000a)
|
||||||
|
ubootenv_add_mmc "0:APPSBLENV" "0x0" "0x40000" "0x40000"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -30,8 +30,6 @@ define Build/Compile
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/autocore/install
|
define Package/autocore/install
|
||||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
|
||||||
$(INSTALL_BIN) ./files/60-autocore-reload-rpcd $(1)/etc/uci-defaults/
|
|
||||||
|
|
||||||
ifneq ($(filter i386 i686 x86_64, $(ARCH)),)
|
ifneq ($(filter i386 i686 x86_64, $(ARCH)),)
|
||||||
$(INSTALL_DIR) $(1)/etc/init.d
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
/etc/init.d/rpcd restart
|
|
||||||
|
|
||||||
exit 0
|
|
@ -7,7 +7,7 @@ CPUFREQ_PATH="/sys/devices/system/cpu/cpufreq"
|
|||||||
THERMAL_PATH="/sys/class/thermal"
|
THERMAL_PATH="/sys/class/thermal"
|
||||||
|
|
||||||
cpu_arch="$(awk -F ': ' '/model name/ {print $2}' "$CPUINFO_PATH" | head -n1)"
|
cpu_arch="$(awk -F ': ' '/model name/ {print $2}' "$CPUINFO_PATH" | head -n1)"
|
||||||
[ -n "${cpu_arch}" ] || cpu_arch="?"
|
[ -n "${cpu_arch}" ] || cpu_arch="General Processor"
|
||||||
|
|
||||||
case "$DISTRIB_TARGET" in
|
case "$DISTRIB_TARGET" in
|
||||||
"x86"/*)
|
"x86"/*)
|
||||||
|
0
package/emortal/autocore/files/luci-mod-status-autocore.json
Normal file → Executable file
0
package/emortal/autocore/files/luci-mod-status-autocore.json
Normal file → Executable file
@ -7,25 +7,25 @@ THERMAL_PATH="/sys/class/thermal"
|
|||||||
|
|
||||||
case "$DISTRIB_TARGET" in
|
case "$DISTRIB_TARGET" in
|
||||||
ipq40xx/*|ipq806x/*)
|
ipq40xx/*|ipq806x/*)
|
||||||
wifi_temp="$(awk '{printf("%.1f°C ", $0 / 1000)}' "$IEEE_PATH"/phy*/device/hwmon/hwmon*/temp1_input 2>"/dev/null" | awk '$1=$1')"
|
wifi_temp="$(cat "$IEEE_PATH"/phy*/device/hwmon/hwmon*/temp1_input 2>"/dev/null" | awk '{printf("%.1f°C ", $0 / 1000)}' | awk '$1=$1')"
|
||||||
;;
|
;;
|
||||||
mediatek/mt7622)
|
mediatek/mt7622)
|
||||||
wifi_temp="$(awk '{printf("%.1f°C ", $0 / 1000)}' "$IEEE_PATH"/wl*/hwmon*/temp1_input 2>"/dev/null" | awk '$1=$1')"
|
wifi_temp="$(cat "$IEEE_PATH"/wl*/hwmon*/temp1_input 2>"/dev/null" | awk '{printf("%.1f°C ", $0 / 1000)}' | awk '$1=$1')"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
wifi_temp="$(awk '{printf("%.1f°C ", $0 / 1000)}' "$IEEE_PATH"/phy*/hwmon*/temp1_input 2>"/dev/null" | awk '$1=$1')"
|
wifi_temp="$(cat "$IEEE_PATH"/phy*/hwmon*/temp1_input 2>"/dev/null" | awk '{printf("%.1f°C ", $0 / 1000)}' | awk '$1=$1')"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "$DISTRIB_TARGET" in
|
case "$DISTRIB_TARGET" in
|
||||||
ipq40xx/*)
|
ipq40xx/*)
|
||||||
if [ -e "$IEEE_PATH/phy0/hwmon0/temp1_input" ]; then
|
if [ -e "$IEEE_PATH/phy0/hwmon0/temp1_input" ]; then
|
||||||
mt76_temp="$(awk -F ': ' '{print $2}' "$IEEE_PATH/phy0/hwmon0/temp1_input" 2>"/dev/null")°C"
|
mt76_temp="$(cat "$IEEE_PATH"/phy0/hwmon0/temp1_input 2>"/dev/null" | awk -F ': ' '{print $2}')°C"
|
||||||
fi
|
fi
|
||||||
[ -z "$mt76_temp" ] || wifi_temp="${wifi_temp:+$wifi_temp }$mt76_temp"
|
[ -z "$mt76_temp" ] || wifi_temp="${wifi_temp:+$wifi_temp }$mt76_temp"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
cpu_temp="$(awk '{printf("%.1f°C", $0 / 1000)}' "$THERMAL_PATH/thermal_zone0/temp" 2>"/dev/null")"
|
cpu_temp="$(cat "$THERMAL_PATH"/thermal_zone0/temp 2>"/dev/null" | awk '{printf("%.1f°C", $0 / 1000)}')"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (C) 2010-2011 OpenWrt.org
|
|
||||||
#
|
|
||||||
# This is free software, licensed under the GNU General Public License v2.
|
|
||||||
# See /LICENSE for more information.
|
|
||||||
#
|
|
||||||
|
|
||||||
include $(TOPDIR)/rules.mk
|
|
||||||
|
|
||||||
PKG_NAME:=autosamba
|
|
||||||
PKG_VERSION:=1
|
|
||||||
PKG_RELEASE:=12
|
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
|
||||||
|
|
||||||
define Package/autosamba
|
|
||||||
TITLE:=Samba autoconfig hotplug script.
|
|
||||||
MAINTAINER:=Lean
|
|
||||||
DEPENDS:=+luci-app-samba4 +wsdd2
|
|
||||||
PKGARCH:=all
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/autosamba/description
|
|
||||||
A hotplug script to config Samba share automatically.
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Compile
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/autosamba/install
|
|
||||||
$(INSTALL_DIR) $(1)/etc/hotplug.d/block
|
|
||||||
$(INSTALL_BIN) ./files/20-smb $(1)/etc/hotplug.d/block/
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(eval $(call BuildPackage,autosamba))
|
|
@ -1,106 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# D-Team Technology Co.,Ltd. ShenZhen
|
|
||||||
# 作者:Vic
|
|
||||||
#
|
|
||||||
# 警告:对着屏幕的哥们,我们允许你使用此脚本,但不允许你抹去作者的信息,请保留这段话。
|
|
||||||
#
|
|
||||||
|
|
||||||
. /lib/functions.sh
|
|
||||||
. /lib/functions/service.sh
|
|
||||||
|
|
||||||
global=0
|
|
||||||
config_file="/etc/config/samba4"
|
|
||||||
|
|
||||||
wait_for_init() {
|
|
||||||
for i in `seq 30`
|
|
||||||
do
|
|
||||||
[ -e /tmp/procd.done ] || {
|
|
||||||
sleep 1; continue;
|
|
||||||
}
|
|
||||||
return
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
smb_handle() {
|
|
||||||
config_get path $1 path
|
|
||||||
if [ "$path" = "$2" ] ;then
|
|
||||||
global=1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
chk_en() {
|
|
||||||
config_get_bool autoshare $1 autoshare 1
|
|
||||||
[ $autoshare -eq 0 ] && exit
|
|
||||||
}
|
|
||||||
|
|
||||||
config_load samba4
|
|
||||||
config_foreach chk_en samba4
|
|
||||||
|
|
||||||
device=`basename $DEVPATH`
|
|
||||||
|
|
||||||
case "$ACTION" in
|
|
||||||
add)
|
|
||||||
|
|
||||||
case "$device" in
|
|
||||||
sd*);;
|
|
||||||
md*);;
|
|
||||||
hd*);;
|
|
||||||
mmcblk*);;
|
|
||||||
*) return;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
path="/dev/$device"
|
|
||||||
|
|
||||||
wait_for_init
|
|
||||||
|
|
||||||
cat /proc/mounts | grep -v '/boot\|/opt' | while read j
|
|
||||||
do
|
|
||||||
str=${j%% *}
|
|
||||||
if [ "$str" == $path ];then
|
|
||||||
strr=${j#* }
|
|
||||||
target=${strr%% *}
|
|
||||||
global=0
|
|
||||||
config_foreach smb_handle sambashare $target
|
|
||||||
name=${target#*/mnt/}
|
|
||||||
|
|
||||||
if [ $global -eq 0 ] ;then
|
|
||||||
echo -e "\n\nconfig sambashare" >> $config_file
|
|
||||||
echo -e "\toption auto '1'" >> $config_file
|
|
||||||
echo -e "\toption name '$name'" >> $config_file
|
|
||||||
echo -e "\toption path '$target'" >> $config_file
|
|
||||||
echo -e "\toption read_only 'no'" >> $config_file
|
|
||||||
echo -e "\toption guest_ok 'yes'" >> $config_file
|
|
||||||
echo -e "\toption create_mask '0666'" >> $config_file
|
|
||||||
echo -e "\toption dir_mask '0777'" >> $config_file
|
|
||||||
echo -e "\toption device '$device'" >> $config_file
|
|
||||||
echo -e "\toption inherit_owner 'yes'" >> $config_file
|
|
||||||
/etc/init.d/samba4 reload
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
|
|
||||||
remove)
|
|
||||||
i=0
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
dev=`uci get samba4.@sambashare[$i].device`
|
|
||||||
[ $? -ne 0 ] && break
|
|
||||||
|
|
||||||
[ "$dev" = "$device" ] && {
|
|
||||||
auto=`uci get samba4.@sambashare[$i].auto`
|
|
||||||
[ $auto = "1" ] && {
|
|
||||||
mount_dir=`uci get samba4.@sambashare[$i].name`
|
|
||||||
uci delete samba4.@sambashare[$i]
|
|
||||||
uci commit
|
|
||||||
/etc/init.d/samba4 reload
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let i+=1
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
@ -9,7 +9,7 @@ if ! uci -q get system.@imm_init[0].system_chn > "/dev/null"; then
|
|||||||
|
|
||||||
delete system.ntp.server
|
delete system.ntp.server
|
||||||
add_list system.ntp.server="ntp.tencent.com"
|
add_list system.ntp.server="ntp.tencent.com"
|
||||||
add_list system.ntp.server="ntp1.aliyun.com"
|
add_list system.ntp.server="ntp.aliyun.com"
|
||||||
add_list system.ntp.server="ntp.ntsc.ac.cn"
|
add_list system.ntp.server="ntp.ntsc.ac.cn"
|
||||||
add_list system.ntp.server="cn.ntp.org.cn"
|
add_list system.ntp.server="cn.ntp.org.cn"
|
||||||
|
|
||||||
|
36
package/emortal/luci-app-athena-led/.gitignore
vendored
Normal file
36
package/emortal/luci-app-athena-led/.gitignore
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# 忽略编译生成的文件
|
||||||
|
*.o
|
||||||
|
*.so
|
||||||
|
*.a
|
||||||
|
|
||||||
|
# LuCI 的生成文件和缓存
|
||||||
|
build/
|
||||||
|
bin/
|
||||||
|
.tmp/
|
||||||
|
|
||||||
|
# 忽略 OpenWrt 编译生成的安装包
|
||||||
|
*.ipk
|
||||||
|
*.tar.gz
|
||||||
|
*.deb
|
||||||
|
|
||||||
|
# 忽略临时文件和编辑器缓存
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*.bak
|
||||||
|
*.tmp
|
||||||
|
*.log
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# 忽略 Git 操作时产生的临时文件
|
||||||
|
.git/
|
||||||
|
|
||||||
|
# IDE 配置文件
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# 忽略 Makefile 生成的中间文件
|
||||||
|
/feeds
|
||||||
|
/staging_dir
|
||||||
|
/tmp/
|
||||||
|
config.log
|
||||||
|
config.status
|
1
package/emortal/luci-app-athena-led/.latest_commit
Normal file
1
package/emortal/luci-app-athena-led/.latest_commit
Normal file
@ -0,0 +1 @@
|
|||||||
|
f8eeb311
|
43
package/emortal/luci-app-athena-led/Makefile
Normal file
43
package/emortal/luci-app-athena-led/Makefile
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=luci-app-athena-led
|
||||||
|
PKG_DEPENDS:=
|
||||||
|
PKG_VERSION:=0.0.7
|
||||||
|
PKG_RELEASE:=20241029
|
||||||
|
|
||||||
|
LUCI_TITLE:=LuCI Support for athena-led
|
||||||
|
LUCI_DEPENDS:=
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
# 包定义;指示我们的包将如何以及在哪里出现在整体配置菜单中 ('make menuconfig')
|
||||||
|
define Package/$(PKG_NAME)
|
||||||
|
TITLE:=$(PKG_NAME)
|
||||||
|
endef
|
||||||
|
|
||||||
|
# Package description; a more verbose description on what our package does
|
||||||
|
define Package/$(PKG_NAME)/description
|
||||||
|
LuCI support for athenaLed
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
define Package/$(PKG_NAME)/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib/lua/luci
|
||||||
|
cp -pR ./luasrc/* $(1)/usr/lib/lua/luci
|
||||||
|
$(INSTALL_DIR) $(1)/
|
||||||
|
cp -pR ./root/* $(1)/
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/$(PKG_NAME)/postinst
|
||||||
|
#!/bin/sh
|
||||||
|
chmod +x /usr/sbin/athena-led
|
||||||
|
chmod +x /etc/init.d/athena_led
|
||||||
|
exit 0
|
||||||
|
endef
|
||||||
|
|
||||||
|
include $(TOPDIR)/feeds/luci/luci.mk
|
||||||
|
|
||||||
|
# This command is always the last, it uses the definitions and variables we give above in order to get the job done
|
||||||
|
$(eval $(call BuildPackage,$(PKG_NAME)))
|
||||||
|
|
||||||
|
|
21
package/emortal/luci-app-athena-led/README.md
Normal file
21
package/emortal/luci-app-athena-led/README.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# luci-app-athena-led
|
||||||
|
jdCloud ax6600 led screen ctrl
|
||||||
|
|
||||||
|
#### 定时关闭开启代码
|
||||||
|
|
||||||
|
```
|
||||||
|
# 早上9点30开启显示
|
||||||
|
30 9 * * * uci set athena_led.config.enable='1' && uci commit athena_led && /etc/init.d/athena_led reload
|
||||||
|
# 下午6点30关闭显示
|
||||||
|
30 18 * * * uci set athena_led.config.enable='0' && uci commit athena_led && /etc/init.d/athena_led reload
|
||||||
|
```
|
||||||
|
|
||||||
|
[推荐固件下载地址](https://github.com/VIKINGYFY/OpenWRT-CI/releases)
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
感谢以下朋友的捐赠
|
||||||
|
1. *姆
|
@ -0,0 +1,18 @@
|
|||||||
|
module("luci.controller.athena_led", package.seeall)
|
||||||
|
|
||||||
|
function index()
|
||||||
|
if not nixio.fs.access("/etc/config/athena_led") then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
entry({ "admin", "system", "athena_led" }, firstchild(), _("Athena LED Ctrl"), 80).dependent = false
|
||||||
|
entry({ "admin", "system", "athena_led", "general" }, cbi("athena_led/settings"), _("Base Setting"), 1)
|
||||||
|
|
||||||
|
entry({ "admin", "system", "athena_led", "status" }, call("act_status"))
|
||||||
|
end
|
||||||
|
|
||||||
|
function act_status()
|
||||||
|
local e = {}
|
||||||
|
e.running = luci.sys.call("pgrep /usr/sbin/athena-led >/dev/null") == 0
|
||||||
|
luci.http.prepare_content("application/json")
|
||||||
|
luci.http.write_json(e)
|
||||||
|
end
|
@ -0,0 +1,84 @@
|
|||||||
|
m = Map("athena_led", translate("Athena led Ctrl"), translate("JDCloud AX6600 LED Screen Ctrl"))
|
||||||
|
|
||||||
|
m:section(SimpleSection).template = "athena_led/athena_led_status"
|
||||||
|
|
||||||
|
s = m:section(TypedSection, "athena_led")
|
||||||
|
s.addremove = false
|
||||||
|
s.anonymous = true
|
||||||
|
|
||||||
|
enable = s:option(Flag, "enable", translate("Enabled"))
|
||||||
|
enable.rmempty = false
|
||||||
|
|
||||||
|
seconds = s:option(ListValue, "seconds", translate("Display interval time"))
|
||||||
|
seconds.default = "5"
|
||||||
|
seconds.rmempty = false
|
||||||
|
seconds:value("1")
|
||||||
|
seconds:value("2")
|
||||||
|
seconds:value("3")
|
||||||
|
seconds:value("4")
|
||||||
|
seconds:value("5")
|
||||||
|
seconds.description = translate("Enable carousel display and set interval time in seconds")
|
||||||
|
|
||||||
|
seconds = s:option(ListValue, "lightLevel", translate("Display light level"))
|
||||||
|
seconds.default = "5"
|
||||||
|
seconds.rmempty = false
|
||||||
|
seconds:value("0")
|
||||||
|
seconds:value("1")
|
||||||
|
seconds:value("2")
|
||||||
|
seconds:value("3")
|
||||||
|
seconds:value("4")
|
||||||
|
seconds:value("5")
|
||||||
|
seconds:value("6")
|
||||||
|
seconds:value("7")
|
||||||
|
seconds.description = translate("Display light level desc")
|
||||||
|
|
||||||
|
status = s:option(MultiValue, "status", translate("side led status"))
|
||||||
|
status.default = ""
|
||||||
|
status.rmempty = true
|
||||||
|
status:value("time", translate("status time"))
|
||||||
|
status:value("medal", translate("status medal"))
|
||||||
|
status:value("upload", translate("status upload"))
|
||||||
|
status:value("download", translate("status download"))
|
||||||
|
status.description = translate("side led status desc")
|
||||||
|
|
||||||
|
type = s:option(MultiValue, "option", translate("Display Type"))
|
||||||
|
type.default = "date timeBlink"
|
||||||
|
type.rmempty = false
|
||||||
|
type:value("date", translate("Display Type Date"))
|
||||||
|
type:value("time", translate("Display Type Time"))
|
||||||
|
type:value("timeBlink", translate("Display Type Time Blink"))
|
||||||
|
type:value("temp", translate("Display Type temp"))
|
||||||
|
type:value("string", translate("Display Type String"))
|
||||||
|
type:value("getByUrl", translate("Display Type getByUrl"))
|
||||||
|
type.description = translate("Specify comma-separated values for option")
|
||||||
|
|
||||||
|
customValue = s:option(Value, "value", translate("Custom Value"))
|
||||||
|
customValue.default = "abcdefghijklmnopqrstuvwxyz0123456789+-*/=.::℃"
|
||||||
|
customValue.rmempty = false
|
||||||
|
customValue.placeholder = translate("Enter your message here")
|
||||||
|
customValue.description = translate("Set the custom message to display on the LED screen, Only effective on 'Display Type String'")
|
||||||
|
|
||||||
|
url = s:option(Value, "url", translate("api url for get content"))
|
||||||
|
url.default = "http://www.baidu.com"
|
||||||
|
url.rmempty = false
|
||||||
|
url.placeholder = translate("Enter your api url here")
|
||||||
|
url.description = translate("api url for get content des")
|
||||||
|
|
||||||
|
tempFlag = s:option(MultiValue, "tempFlag", translate("tempFlag"))
|
||||||
|
tempFlag.default = "4"
|
||||||
|
tempFlag.rmempty = false
|
||||||
|
tempFlag:value("0", translate("nss-top"))
|
||||||
|
tempFlag:value("1", translate("nss"))
|
||||||
|
tempFlag:value("2", translate("wcss-phya0"))
|
||||||
|
tempFlag:value("3", translate("wcss-phya1"))
|
||||||
|
tempFlag:value("4", translate("cpu"))
|
||||||
|
tempFlag:value("5", translate("lpass"))
|
||||||
|
tempFlag:value("6", translate("ddrss"))
|
||||||
|
tempFlag.description = translate("Set the item display on the LED screen, Only effective on 'Display Type temp'")
|
||||||
|
|
||||||
|
function m.on_after_commit(self)
|
||||||
|
local output = luci.util.exec("/etc/init.d/athena_led reload >/dev/null 2>&1")
|
||||||
|
luci.util.exec("logger '" .. output .. "'")
|
||||||
|
end
|
||||||
|
|
||||||
|
return m
|
@ -0,0 +1,25 @@
|
|||||||
|
<script type="text/javascript">//<![CDATA[
|
||||||
|
XHR.poll(3, '<%=url([[admin]], [[system]], [[athena_led]], [[status]])%>', null,
|
||||||
|
function (x, data) {
|
||||||
|
var tb = document.getElementById('athena_led_status');
|
||||||
|
if (data && tb) {
|
||||||
|
if (data.running) {
|
||||||
|
var links = '<em><b><font color=green>led <%:RUNNING%></font></b></em>';
|
||||||
|
tb.innerHTML = links;
|
||||||
|
} else {
|
||||||
|
tb.innerHTML = '<em><b><font color=red>led <%:NOT RUNNING%></font></b></em>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
//]]>
|
||||||
|
</script>
|
||||||
|
<style>.mar-10 {
|
||||||
|
margin-left: 50px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}</style>
|
||||||
|
<fieldset class="cbi-section">
|
||||||
|
<p id="athena_led_status">
|
||||||
|
<em><%:Collecting data...%></em>
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
124
package/emortal/luci-app-athena-led/po/zh-cn/athena_led.po
Normal file
124
package/emortal/luci-app-athena-led/po/zh-cn/athena_led.po
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||||
|
|
||||||
|
msgid "athena_led"
|
||||||
|
msgstr "athena_led"
|
||||||
|
|
||||||
|
msgid "Base Setting"
|
||||||
|
msgstr "设置"
|
||||||
|
|
||||||
|
msgid "Gift"
|
||||||
|
msgstr "赞赏"
|
||||||
|
|
||||||
|
msgid "Athena LED Ctrl"
|
||||||
|
msgstr "雅典娜 LED 屏幕控制"
|
||||||
|
|
||||||
|
msgid "JDCloud AX6600 LED Screen Ctrl"
|
||||||
|
msgstr "京东云 AX6600 LED 屏幕控制"
|
||||||
|
|
||||||
|
msgid "Enabled"
|
||||||
|
msgstr "启用"
|
||||||
|
|
||||||
|
msgid "Display interval time"
|
||||||
|
msgstr "刷新时间"
|
||||||
|
|
||||||
|
msgid "Enable carousel display and set interval time in seconds"
|
||||||
|
msgstr "刷新时间"
|
||||||
|
|
||||||
|
msgid "Display light level"
|
||||||
|
msgstr "显示亮度调整"
|
||||||
|
|
||||||
|
msgid "Display light level desc"
|
||||||
|
msgstr "显示亮度调整,数字越大越亮"
|
||||||
|
|
||||||
|
msgid "side led status"
|
||||||
|
msgstr "侧边状态灯"
|
||||||
|
|
||||||
|
msgid "status time"
|
||||||
|
msgstr "时间"
|
||||||
|
|
||||||
|
msgid "status medal"
|
||||||
|
msgstr "奖牌"
|
||||||
|
|
||||||
|
msgid "status upload"
|
||||||
|
msgstr "上传"
|
||||||
|
|
||||||
|
msgid "status download"
|
||||||
|
msgstr "下载"
|
||||||
|
|
||||||
|
msgid "side led status desc"
|
||||||
|
msgstr "设置侧边状态灯"
|
||||||
|
|
||||||
|
|
||||||
|
msgid "Display Type"
|
||||||
|
msgstr "显示模式"
|
||||||
|
|
||||||
|
msgid "Display Type Date"
|
||||||
|
msgstr "日期"
|
||||||
|
|
||||||
|
msgid "Display Type Time"
|
||||||
|
msgstr "时间"
|
||||||
|
|
||||||
|
msgid "Display Type Time Blink"
|
||||||
|
msgstr "时间-闪烁"
|
||||||
|
|
||||||
|
msgid "Display Type temp"
|
||||||
|
msgstr "温度"
|
||||||
|
|
||||||
|
msgid "Display Type String"
|
||||||
|
msgstr "自定义文本"
|
||||||
|
|
||||||
|
msgid "Display Type getByUrl"
|
||||||
|
msgstr "远程文本"
|
||||||
|
|
||||||
|
|
||||||
|
msgid "Specify comma-separated values for option"
|
||||||
|
msgstr "显示模式"
|
||||||
|
|
||||||
|
msgid "Custom Value"
|
||||||
|
msgstr "自定义文本"
|
||||||
|
|
||||||
|
msgid "Enter your message here"
|
||||||
|
msgstr "输入你的自定义内容"
|
||||||
|
|
||||||
|
msgid "Set the custom message to display on the LED screen, Only effective on 'Display Type String'"
|
||||||
|
msgstr "设置显示在led屏幕上的自定义内容,选中'自定义文本'显示模式生效"
|
||||||
|
|
||||||
|
msgid "api url for get content"
|
||||||
|
msgstr "通过 http/get 请求获取显示内容"
|
||||||
|
|
||||||
|
msgid "Enter your api url here"
|
||||||
|
msgstr "在此处输入你的接口地址"
|
||||||
|
|
||||||
|
msgid "api url for get content des"
|
||||||
|
msgstr "通过 http/get 请求获取显示内容,选中'远程文本'显示模式生效"
|
||||||
|
|
||||||
|
msgid "All features are free, and tipping is just to buy me a coffee."
|
||||||
|
msgstr "所有功能都免费,打赏只是为了请我喝咖啡"
|
||||||
|
|
||||||
|
msgid "tempFlag"
|
||||||
|
msgstr "温度选项"
|
||||||
|
|
||||||
|
msgid "nss-top"
|
||||||
|
msgstr "网络子系统nss-top"
|
||||||
|
|
||||||
|
msgid "nss"
|
||||||
|
msgstr "网络子系统nss"
|
||||||
|
|
||||||
|
msgid "wcss-phya0"
|
||||||
|
msgstr "无线控制子系统-物理0"
|
||||||
|
|
||||||
|
msgid "wcss-phya1"
|
||||||
|
msgstr "无线控制子系统-物理1"
|
||||||
|
|
||||||
|
msgid "cpu"
|
||||||
|
msgstr "中央处理器cpu"
|
||||||
|
|
||||||
|
msgid "lpass"
|
||||||
|
msgstr "lpass"
|
||||||
|
|
||||||
|
msgid "ddrss"
|
||||||
|
msgstr "内存子系统ddr"
|
||||||
|
|
||||||
|
msgid "Set the item display on the LED screen, Only effective on 'Display Type temp'"
|
||||||
|
msgstr "设置显示在led屏幕上的温度,选中'温度'显示模式生效"
|
124
package/emortal/luci-app-athena-led/po/zh_Hans/athena_led.po
Normal file
124
package/emortal/luci-app-athena-led/po/zh_Hans/athena_led.po
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||||
|
|
||||||
|
msgid "athena_led"
|
||||||
|
msgstr "athena_led"
|
||||||
|
|
||||||
|
msgid "Base Setting"
|
||||||
|
msgstr "设置"
|
||||||
|
|
||||||
|
msgid "Gift"
|
||||||
|
msgstr "赞赏"
|
||||||
|
|
||||||
|
msgid "Athena LED Ctrl"
|
||||||
|
msgstr "雅典娜 LED 屏幕控制"
|
||||||
|
|
||||||
|
msgid "JDCloud AX6600 LED Screen Ctrl"
|
||||||
|
msgstr "京东云 AX6600 LED 屏幕控制"
|
||||||
|
|
||||||
|
msgid "Enabled"
|
||||||
|
msgstr "启用"
|
||||||
|
|
||||||
|
msgid "Display interval time"
|
||||||
|
msgstr "刷新时间"
|
||||||
|
|
||||||
|
msgid "Enable carousel display and set interval time in seconds"
|
||||||
|
msgstr "刷新时间"
|
||||||
|
|
||||||
|
msgid "Display light level"
|
||||||
|
msgstr "显示亮度调整"
|
||||||
|
|
||||||
|
msgid "Display light level desc"
|
||||||
|
msgstr "显示亮度调整,数字越大越亮"
|
||||||
|
|
||||||
|
msgid "side led status"
|
||||||
|
msgstr "侧边状态灯"
|
||||||
|
|
||||||
|
msgid "status time"
|
||||||
|
msgstr "时间"
|
||||||
|
|
||||||
|
msgid "status medal"
|
||||||
|
msgstr "奖牌"
|
||||||
|
|
||||||
|
msgid "status upload"
|
||||||
|
msgstr "上传"
|
||||||
|
|
||||||
|
msgid "status download"
|
||||||
|
msgstr "下载"
|
||||||
|
|
||||||
|
msgid "side led status desc"
|
||||||
|
msgstr "设置侧边状态灯"
|
||||||
|
|
||||||
|
|
||||||
|
msgid "Display Type"
|
||||||
|
msgstr "显示模式"
|
||||||
|
|
||||||
|
msgid "Display Type Date"
|
||||||
|
msgstr "日期"
|
||||||
|
|
||||||
|
msgid "Display Type Time"
|
||||||
|
msgstr "时间"
|
||||||
|
|
||||||
|
msgid "Display Type Time Blink"
|
||||||
|
msgstr "时间-闪烁"
|
||||||
|
|
||||||
|
msgid "Display Type temp"
|
||||||
|
msgstr "温度"
|
||||||
|
|
||||||
|
msgid "Display Type String"
|
||||||
|
msgstr "自定义文本"
|
||||||
|
|
||||||
|
msgid "Display Type getByUrl"
|
||||||
|
msgstr "远程文本"
|
||||||
|
|
||||||
|
|
||||||
|
msgid "Specify comma-separated values for option"
|
||||||
|
msgstr "显示模式"
|
||||||
|
|
||||||
|
msgid "Custom Value"
|
||||||
|
msgstr "自定义文本"
|
||||||
|
|
||||||
|
msgid "Enter your message here"
|
||||||
|
msgstr "输入你的自定义内容"
|
||||||
|
|
||||||
|
msgid "Set the custom message to display on the LED screen, Only effective on 'Display Type String'"
|
||||||
|
msgstr "设置显示在led屏幕上的自定义内容,选中'自定义文本'显示模式生效"
|
||||||
|
|
||||||
|
msgid "api url for get content"
|
||||||
|
msgstr "通过 http/get 请求获取显示内容"
|
||||||
|
|
||||||
|
msgid "Enter your api url here"
|
||||||
|
msgstr "在此处输入你的接口地址"
|
||||||
|
|
||||||
|
msgid "api url for get content des"
|
||||||
|
msgstr "通过 http/get 请求获取显示内容,选中'远程文本'显示模式生效"
|
||||||
|
|
||||||
|
msgid "All features are free, and tipping is just to buy me a coffee."
|
||||||
|
msgstr "所有功能都免费,打赏只是为了请我喝咖啡"
|
||||||
|
|
||||||
|
msgid "tempFlag"
|
||||||
|
msgstr "温度选项"
|
||||||
|
|
||||||
|
msgid "nss-top"
|
||||||
|
msgstr "网络子系统nss-top"
|
||||||
|
|
||||||
|
msgid "nss"
|
||||||
|
msgstr "网络子系统nss"
|
||||||
|
|
||||||
|
msgid "wcss-phya0"
|
||||||
|
msgstr "无线控制子系统-物理0"
|
||||||
|
|
||||||
|
msgid "wcss-phya1"
|
||||||
|
msgstr "无线控制子系统-物理1"
|
||||||
|
|
||||||
|
msgid "cpu"
|
||||||
|
msgstr "中央处理器cpu"
|
||||||
|
|
||||||
|
msgid "lpass"
|
||||||
|
msgstr "lpass"
|
||||||
|
|
||||||
|
msgid "ddrss"
|
||||||
|
msgstr "内存子系统ddr"
|
||||||
|
|
||||||
|
msgid "Set the item display on the LED screen, Only effective on 'Display Type temp'"
|
||||||
|
msgstr "设置显示在led屏幕上的温度,选中'温度'显示模式生效"
|
@ -0,0 +1,9 @@
|
|||||||
|
config athena_led 'config'
|
||||||
|
option enable '1'
|
||||||
|
option status ' '
|
||||||
|
option seconds '5'
|
||||||
|
option lightLevel '5'
|
||||||
|
option option 'date timeBlink'
|
||||||
|
option value 'abcdefghijklmnopqrstuvwxyz0123456789+-*/=.::℃'
|
||||||
|
option url 'https://www.baidu.com'
|
||||||
|
option tempFlag '4'
|
42
package/emortal/luci-app-athena-led/root/etc/init.d/athena_led
Executable file
42
package/emortal/luci-app-athena-led/root/etc/init.d/athena_led
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
|
||||||
|
START=99
|
||||||
|
STOP=99
|
||||||
|
USE_PROCD=1
|
||||||
|
PROG=/usr/sbin/athena-led
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
config_load 'athena_led'
|
||||||
|
local cfg='config'
|
||||||
|
|
||||||
|
config_get_bool enabled "$cfg" 'enable' '0'
|
||||||
|
if [ "$enabled" -eq 0 ]; then
|
||||||
|
logger "athena-led Service is disabled, not starting"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local status seconds lightLevel option value
|
||||||
|
config_get status $cfg 'status' ' '
|
||||||
|
config_get seconds $cfg 'seconds' '5'
|
||||||
|
config_get lightLevel $cfg 'lightLevel' '5'
|
||||||
|
config_get option $cfg 'option' 'date timeBlink'
|
||||||
|
config_get value $cfg 'value' 'abcdefghijklmnopqrstuvwxyz0123456789+-*/=.::℃'
|
||||||
|
config_get url $cfg 'url' 'https://www.baidu.com'
|
||||||
|
config_get tempFlag $cfg 'tempFlag' '4'
|
||||||
|
|
||||||
|
procd_open_instance
|
||||||
|
procd_set_param command $PROG -status "${status}" -seconds "${seconds}" -lightLevel "${lightLevel}" -option "${option}" -value "${value}" -url "${url}" -tempFlag "${tempFlag}"
|
||||||
|
procd_set_param respawn
|
||||||
|
procd_close_instance
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
service_triggers(){
|
||||||
|
procd_add_reload_trigger "athena_led"
|
||||||
|
}
|
||||||
|
|
||||||
|
reload_service()
|
||||||
|
{
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
}
|
BIN
package/emortal/luci-app-athena-led/root/usr/sbin/athena-led
Executable file
BIN
package/emortal/luci-app-athena-led/root/usr/sbin/athena-led
Executable file
Binary file not shown.
@ -8,13 +8,13 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=ath11k-firmware
|
PKG_NAME:=ath11k-firmware
|
||||||
PKG_SOURCE_DATE:=2024-10-14
|
PKG_SOURCE_DATE:=2025-04-13
|
||||||
PKG_SOURCE_VERSION:=15f050122da5ef5bef2cc8c7c19dfb7f98060a49
|
PKG_SOURCE_VERSION:=0353334f1ed0afdede3a3425350f90594b1ce323
|
||||||
PKG_MIRROR_HASH:=e7a89d1570f32552ade539376181494724b5eafb31d00451ff2dcf5a2922a0cb
|
PKG_MIRROR_HASH:=80cd9d1c8a96951d4e3a76802fdd711fa07d37d7c69459146be6c3b4ad5f97d9
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://git.codelinaro.org/clo/ath-firmware/ath11k-firmware.git
|
PKG_SOURCE_URL:=https://github.com/VIKINGYFY/ath11k-firmware-ddwrt.git
|
||||||
|
|
||||||
PKG_LICENSE_FILES:=LICENSE.qca_firmware
|
PKG_LICENSE_FILES:=LICENSE.qca_firmware
|
||||||
|
|
||||||
@ -25,21 +25,6 @@ include $(INCLUDE_DIR)/package.mk
|
|||||||
RSTRIP:=:
|
RSTRIP:=:
|
||||||
STRIP:=:
|
STRIP:=:
|
||||||
|
|
||||||
ATH11K_LEGACY_FW_NAME:=ath11k-legacy-firmware
|
|
||||||
ATH11K_LEGACY_FW_DATE:=2024-03-14
|
|
||||||
ATH11K_LEGACY_FW_RELEASE:=795809c7
|
|
||||||
ATH11K_LEGACY_FW_SUBDIR:=$(ATH11K_LEGACY_FW_NAME)-$(ATH11K_LEGACY_FW_DATE)~$(ATH11K_LEGACY_FW_RELEASE)
|
|
||||||
ATH11K_LEGACY_FW_SOURCE=$(ATH11K_LEGACY_FW_SUBDIR).tar.zst
|
|
||||||
|
|
||||||
define Download/$(ATH11K_LEGACY_FW_NAME)
|
|
||||||
FILE:=$(ATH11K_LEGACY_FW_SOURCE)
|
|
||||||
PROTO:=git
|
|
||||||
URL:=https://github.com/quic/upstream-wifi-fw.git
|
|
||||||
SOURCE_VERSION:=795809c7041582bd51bdfaa1f548b916ae8d4382
|
|
||||||
MIRROR_HASH:=e042024b6762a5b4fe56f1a5bf8870df2e7abcca90ec22103cd46a609bee7cec
|
|
||||||
SUBDIR:=$(ATH11K_LEGACY_FW_SUBDIR)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Package/ath11k-firmware-default
|
define Package/ath11k-firmware-default
|
||||||
SECTION:=firmware
|
SECTION:=firmware
|
||||||
CATEGORY:=Firmware
|
CATEGORY:=Firmware
|
||||||
@ -73,60 +58,33 @@ $(Package/ath11k-firmware-default)
|
|||||||
TITLE:=QCN9074 ath11k firmware
|
TITLE:=QCN9074 ath11k firmware
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Clean
|
|
||||||
$(call Build/Clean/Default,)
|
|
||||||
|
|
||||||
rm -rf \
|
|
||||||
$(BUILD_DIR)/$(ATH11K_LEGACY_FW_SUBDIR)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Prepare
|
|
||||||
$(eval $(call Download,ath11k-legacy-firmware))
|
|
||||||
|
|
||||||
$(call Build/Prepare/Default,)
|
|
||||||
|
|
||||||
$(TAR) -C $(BUILD_DIR) -xf $(DL_DIR)/$(ATH11K_LEGACY_FW_SOURCE)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ath11k-firmware-ipq5018/install
|
define Package/ath11k-firmware-ipq5018/install
|
||||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ5018/hw1.0
|
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/IPQ5018/hw1.0
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/IPQ5018/hw1.0/* $(1)/lib/firmware/ath11k/IPQ5018/hw1.0/
|
||||||
$(BUILD_DIR)/$(ATH11K_LEGACY_FW_SUBDIR)/ath11k-firmware/IPQ5018_QCN6122_QCN6122/hw1.0/2.7.0.1/WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1/*.* \
|
|
||||||
$(1)/lib/firmware/ath11k/IPQ5018/hw1.0/
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ath11k-firmware-ipq6018/install
|
define Package/ath11k-firmware-ipq6018/install
|
||||||
$(INSTALL_DIR) $(1)/lib/firmware/IPQ6018
|
$(INSTALL_DIR) $(1)/lib/firmware/IPQ6018
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/IPQ6018/hw1.0/* $(1)/lib/firmware/IPQ6018/
|
||||||
$(PKG_BUILD_DIR)/IPQ6018/hw1.0/2.5.0.1/WLAN.HK.2.5.0.1-03982-QCAHKSWPL_SILICONZ-3/* \
|
|
||||||
$(1)/lib/firmware/IPQ6018/
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ath11k-firmware-ipq8074/install
|
define Package/ath11k-firmware-ipq8074/install
|
||||||
$(INSTALL_DIR) $(1)/lib/firmware/IPQ8074
|
$(INSTALL_DIR) $(1)/lib/firmware/IPQ8074
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/IPQ8074/hw2.0/* $(1)/lib/firmware/IPQ8074/
|
||||||
$(PKG_BUILD_DIR)/IPQ8074/hw2.0/2.9.0.1/WLAN.HK.2.9.0.1-02146-QCAHKSWPL_SILICONZ-1/* \
|
|
||||||
$(1)/lib/firmware/IPQ8074/
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ath11k-firmware-qcn6122/install
|
define Package/ath11k-firmware-qcn6122/install
|
||||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN6122/hw1.0
|
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN6122/hw1.0
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/QCN6122/hw1.0/* $(1)/lib/firmware/ath11k/QCN6122/hw1.0/
|
||||||
$(BUILD_DIR)/$(ATH11K_LEGACY_FW_SUBDIR)/ath11k-firmware/IPQ5018_QCN6122_QCN6122/hw1.0/2.7.0.1/WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1/qcn6122/* \
|
|
||||||
$(1)/lib/firmware/ath11k/QCN6122/hw1.0/
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ath11k-firmware-qcn9074/install
|
define Package/ath11k-firmware-qcn9074/install
|
||||||
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN9074/hw1.0
|
$(INSTALL_DIR) $(1)/lib/firmware/ath11k/QCN9074/hw1.0
|
||||||
$(INSTALL_DATA) \
|
$(INSTALL_DATA) $(PKG_BUILD_DIR)/QCN9074/hw1.0/* $(1)/lib/firmware/ath11k/QCN9074/hw1.0/
|
||||||
$(PKG_BUILD_DIR)/QCN9074/hw1.0/2.9.0.1/WLAN.HK.2.9.0.1-02146-QCAHKSWPL_SILICONZ-1/* \
|
|
||||||
$(1)/lib/firmware/ath11k/QCN9074/hw1.0/
|
|
||||||
$(INSTALL_BIN) \
|
|
||||||
$(PKG_BUILD_DIR)/QCN9074/hw1.0/board-2.bin $(1)/lib/firmware/ath11k/QCN9074/hw1.0/board-2.bin
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,ath11k-firmware-ipq5018))
|
$(eval $(call BuildPackage,ath11k-firmware-ipq5018))
|
||||||
|
@ -6,9 +6,9 @@ PKG_RELEASE:=1
|
|||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git
|
||||||
PKG_SOURCE_DATE:=2025-04-01
|
PKG_SOURCE_DATE:=2025-04-15
|
||||||
PKG_SOURCE_VERSION:=c220fac7fdb35628ba53ff53ed36cf883a401161
|
PKG_SOURCE_VERSION:=38a18dc26c9b150f06f56b9c5972d789eb5bc0c4
|
||||||
PKG_MIRROR_HASH:=26338b4f165eb2e90273cd61ed26715b99e496ccf738167e22ff9213ca42c973
|
PKG_MIRROR_HASH:=a10a9b524ecd91854265b04819303410ae77e1f5a093f9cc8eb43e25e99c1bae
|
||||||
PKG_FLAGS:=nonshared
|
PKG_FLAGS:=nonshared
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
@ -66,8 +66,9 @@ ALLWIFIBOARDS:= \
|
|||||||
redmi_ax6 \
|
redmi_ax6 \
|
||||||
skspruce_wia3300-20 \
|
skspruce_wia3300-20 \
|
||||||
spectrum_sax1v1k \
|
spectrum_sax1v1k \
|
||||||
tplink_eap610-outdoor \
|
tplink_eap610od \
|
||||||
tplink_eap620hd-v1 \
|
tplink_eap620hd-v1 \
|
||||||
|
tplink_eap623od-hd-v1 \
|
||||||
tplink_eap660hd-v1 \
|
tplink_eap660hd-v1 \
|
||||||
wallys_dr40x9 \
|
wallys_dr40x9 \
|
||||||
xiaomi_ax3600 \
|
xiaomi_ax3600 \
|
||||||
@ -81,7 +82,17 @@ ALLWIFIBOARDS:= \
|
|||||||
zte_mf286c \
|
zte_mf286c \
|
||||||
zte_mf287 \
|
zte_mf287 \
|
||||||
zte_mf287plus \
|
zte_mf287plus \
|
||||||
zyxel_nbg7815
|
zyxel_nbg7815 \
|
||||||
|
cmiot_ax18 \
|
||||||
|
jdcloud_re-ss-01 \
|
||||||
|
jdcloud_re-cs-02 \
|
||||||
|
jdcloud_re-cs-03 \
|
||||||
|
link_nn6000 \
|
||||||
|
redmi_ax5 \
|
||||||
|
redmi_ax5-jdcloud \
|
||||||
|
verizon_cr1000a \
|
||||||
|
xiaomi_ax1800 \
|
||||||
|
zn_m2
|
||||||
|
|
||||||
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
|
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
|
||||||
|
|
||||||
@ -214,8 +225,9 @@ $(eval $(call generate-ipq-wifi-package,prpl_haze,prpl Haze))
|
|||||||
$(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6))
|
$(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6))
|
||||||
$(eval $(call generate-ipq-wifi-package,skspruce_wia3300-20,SKSpruce WIA3300-20))
|
$(eval $(call generate-ipq-wifi-package,skspruce_wia3300-20,SKSpruce WIA3300-20))
|
||||||
$(eval $(call generate-ipq-wifi-package,spectrum_sax1v1k,Spectrum SAX1V1K))
|
$(eval $(call generate-ipq-wifi-package,spectrum_sax1v1k,Spectrum SAX1V1K))
|
||||||
$(eval $(call generate-ipq-wifi-package,tplink_eap610-outdoor,TPLink EAP610-Outdoor))
|
$(eval $(call generate-ipq-wifi-package,tplink_eap610od,TPLink EAP610-Outdoor))
|
||||||
$(eval $(call generate-ipq-wifi-package,tplink_eap620hd-v1,TP-Link EAP620 HD v1))
|
$(eval $(call generate-ipq-wifi-package,tplink_eap620hd-v1,TP-Link EAP620 HD v1))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,tplink_eap623od-hd-v1,TP-Link EAP623-Outdoor HD v1))
|
||||||
$(eval $(call generate-ipq-wifi-package,tplink_eap660hd-v1,TP-Link EAP660 HD v1))
|
$(eval $(call generate-ipq-wifi-package,tplink_eap660hd-v1,TP-Link EAP660 HD v1))
|
||||||
$(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9))
|
$(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9))
|
||||||
$(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600))
|
$(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600))
|
||||||
@ -230,5 +242,15 @@ $(eval $(call generate-ipq-wifi-package,zte_mf286c,ZTE MF286C))
|
|||||||
$(eval $(call generate-ipq-wifi-package,zte_mf287,ZTE MF287))
|
$(eval $(call generate-ipq-wifi-package,zte_mf287,ZTE MF287))
|
||||||
$(eval $(call generate-ipq-wifi-package,zte_mf287plus,ZTE MF287Plus))
|
$(eval $(call generate-ipq-wifi-package,zte_mf287plus,ZTE MF287Plus))
|
||||||
$(eval $(call generate-ipq-wifi-package,zyxel_nbg7815,Zyxel NBG7815))
|
$(eval $(call generate-ipq-wifi-package,zyxel_nbg7815,Zyxel NBG7815))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,cmiot_ax18,CMIOT AX18))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,jdcloud_re-ss-01,JDCloud RE-SS-01))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,jdcloud_re-cs-02,JDCloud RE-CS-02))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,jdcloud_re-cs-03,JDCloud RE-CS-03))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,link_nn6000,Link NN6000))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,redmi_ax5,Redmi AX5))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,redmi_ax5-jdcloud,Redmi AX5 JDCloud))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,verizon_cr1000a,Verizon CR1000A))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,xiaomi_ax1800,Xiaomi AX1800))
|
||||||
|
$(eval $(call generate-ipq-wifi-package,zn_m2,ZN M2))
|
||||||
|
|
||||||
$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
|
$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
|
||||||
|
BIN
package/firmware/ipq-wifi/src/board-cmiot_ax18.ipq6018
Normal file
BIN
package/firmware/ipq-wifi/src/board-cmiot_ax18.ipq6018
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-cs-02.ipq6018
Normal file
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-cs-02.ipq6018
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-cs-02.qcn9074
Normal file
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-cs-02.qcn9074
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-cs-03.ipq5018
Normal file
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-cs-03.ipq5018
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-cs-03.qcn6122
Normal file
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-cs-03.qcn6122
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-ss-01.ipq6018
Normal file
BIN
package/firmware/ipq-wifi/src/board-jdcloud_re-ss-01.ipq6018
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-link_nn6000.ipq6018
Normal file
BIN
package/firmware/ipq-wifi/src/board-link_nn6000.ipq6018
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-redmi_ax5-jdcloud.ipq6018
Normal file
BIN
package/firmware/ipq-wifi/src/board-redmi_ax5-jdcloud.ipq6018
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-redmi_ax5.ipq6018
Normal file
BIN
package/firmware/ipq-wifi/src/board-redmi_ax5.ipq6018
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-verizon_cr1000a.ipq8074
Normal file
BIN
package/firmware/ipq-wifi/src/board-verizon_cr1000a.ipq8074
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-xiaomi_ax1800.ipq6018
Normal file
BIN
package/firmware/ipq-wifi/src/board-xiaomi_ax1800.ipq6018
Normal file
Binary file not shown.
BIN
package/firmware/ipq-wifi/src/board-zn_m2.ipq6018
Normal file
BIN
package/firmware/ipq-wifi/src/board-zn_m2.ipq6018
Normal file
Binary file not shown.
@ -25,6 +25,8 @@ define Package/layerscape-fman
|
|||||||
CATEGORY:=Firmware
|
CATEGORY:=Firmware
|
||||||
TITLE:=NXP FMan ucode
|
TITLE:=NXP FMan ucode
|
||||||
DEPENDS:=@TARGET_layerscape
|
DEPENDS:=@TARGET_layerscape
|
||||||
|
DEFAULT:=y if TARGET_layerscape_armv8_64b
|
||||||
|
HIDDEN:=1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
|
@ -27,6 +27,8 @@ define Package/layerscape-ddr-phy
|
|||||||
CATEGORY:=Firmware
|
CATEGORY:=Firmware
|
||||||
TITLE:=NXP Layerscape DDR PHY firmware
|
TITLE:=NXP Layerscape DDR PHY firmware
|
||||||
DEPENDS:=@TARGET_layerscape
|
DEPENDS:=@TARGET_layerscape
|
||||||
|
DEFAULT:=y if TARGET_layerscape_armv8_64b
|
||||||
|
HIDDEN:=1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
|
@ -26,6 +26,8 @@ define Package/layerscape-dpl
|
|||||||
CATEGORY:=Firmware
|
CATEGORY:=Firmware
|
||||||
TITLE:=NXP DPL firmware
|
TITLE:=NXP DPL firmware
|
||||||
DEPENDS:=@TARGET_layerscape
|
DEPENDS:=@TARGET_layerscape
|
||||||
|
DEFAULT:=y if TARGET_layerscape_armv8_64b
|
||||||
|
HIDDEN:=1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
MAKE_PATH:=config
|
MAKE_PATH:=config
|
||||||
|
@ -25,6 +25,8 @@ define Package/layerscape-mc
|
|||||||
CATEGORY:=Firmware
|
CATEGORY:=Firmware
|
||||||
TITLE:=NXP MC firmware
|
TITLE:=NXP MC firmware
|
||||||
DEPENDS:=@TARGET_layerscape
|
DEPENDS:=@TARGET_layerscape
|
||||||
|
DEFAULT:=y if TARGET_layerscape_armv8_64b
|
||||||
|
HIDDEN:=1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
|
@ -25,6 +25,8 @@ define Package/layerscape-rcw
|
|||||||
CATEGORY:=Firmware
|
CATEGORY:=Firmware
|
||||||
TITLE:=NXP Layerscape RCW binaries
|
TITLE:=NXP Layerscape RCW binaries
|
||||||
DEPENDS:=@TARGET_layerscape
|
DEPENDS:=@TARGET_layerscape
|
||||||
|
DEFAULT:=y if TARGET_layerscape_armv7
|
||||||
|
HIDDEN:=1
|
||||||
endef
|
endef
|
||||||
|
|
||||||
BOARDS := \
|
BOARDS := \
|
||||||
|
@ -5,3 +5,11 @@ define Package/ath12k-firmware-wcn7850/install
|
|||||||
$(PKG_BUILD_DIR)/ath12k/WCN7850/hw2.0/* $(1)/lib/firmware/ath12k/WCN7850/hw2.0/
|
$(PKG_BUILD_DIR)/ath12k/WCN7850/hw2.0/* $(1)/lib/firmware/ath12k/WCN7850/hw2.0/
|
||||||
endef
|
endef
|
||||||
$(eval $(call BuildPackage,ath12k-firmware-wcn7850))
|
$(eval $(call BuildPackage,ath12k-firmware-wcn7850))
|
||||||
|
|
||||||
|
Package/ath12k-firmware-qcn9274 = $(call Package/firmware-default,QCN9274 ath12k firmware)
|
||||||
|
define Package/ath12k-firmware-qcn9274/install
|
||||||
|
$(INSTALL_DIR) $(1)/lib/firmware/ath12k/QCN9274/hw2.0
|
||||||
|
$(INSTALL_DATA) \
|
||||||
|
$(PKG_BUILD_DIR)/ath12k/QCN9274/hw2.0/* $(1)/lib/firmware/ath12k/QCN9274/hw2.0/
|
||||||
|
endef
|
||||||
|
$(eval $(call BuildPackage,ath12k-firmware-qcn9274))
|
||||||
|
@ -7,8 +7,7 @@ Rollback some APIs to fix compilation errors.
|
|||||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||||
---
|
---
|
||||||
ath10k-6.14/ahb.c | 2 +-
|
ath10k-6.14/ahb.c | 2 +-
|
||||||
ath10k-6.14/mac.c | 5 ++---
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
2 files changed, 3 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
--- a/ath10k-6.14/ahb.c
|
--- a/ath10k-6.14/ahb.c
|
||||||
+++ b/ath10k-6.14/ahb.c
|
+++ b/ath10k-6.14/ahb.c
|
||||||
@ -21,26 +20,3 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
int ath10k_ahb_init(void)
|
int ath10k_ahb_init(void)
|
||||||
--- a/ath10k-6.14/mac.c
|
|
||||||
+++ b/ath10k-6.14/mac.c
|
|
||||||
@@ -9607,10 +9607,9 @@ exit:
|
|
||||||
|
|
||||||
static void ath10k_sta_rc_update(struct ieee80211_hw *hw,
|
|
||||||
struct ieee80211_vif *vif,
|
|
||||||
- struct ieee80211_link_sta *link_sta,
|
|
||||||
+ struct ieee80211_sta *sta,
|
|
||||||
u32 changed)
|
|
||||||
{
|
|
||||||
- struct ieee80211_sta *sta = link_sta->sta;
|
|
||||||
struct ath10k *ar = hw->priv;
|
|
||||||
struct ath10k_sta *arsta = (struct ath10k_sta *)sta->drv_priv;
|
|
||||||
struct ath10k_vif *arvif = (void *)vif->drv_priv;
|
|
||||||
@@ -10603,7 +10602,7 @@ static const struct ieee80211_ops ath10k
|
|
||||||
.reconfig_complete = ath10k_reconfig_complete,
|
|
||||||
.get_survey = ath10k_get_survey,
|
|
||||||
.set_bitrate_mask = ath10k_mac_op_set_bitrate_mask,
|
|
||||||
- .link_sta_rc_update = ath10k_sta_rc_update,
|
|
||||||
+ .sta_rc_update = ath10k_sta_rc_update,
|
|
||||||
.offset_tsf = ath10k_offset_tsf,
|
|
||||||
.get_tsf = ath10k_get_tsf,
|
|
||||||
.ampdu_action = ath10k_ampdu_action,
|
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
--- a/ath10k-6.10/mac.c
|
||||||
|
+++ b/ath10k-6.10/mac.c
|
||||||
|
@@ -6365,7 +6365,7 @@ static int ath10k_mac_set_txbf_conf(stru
|
||||||
|
ar->wmi.vdev_param->txbf, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void ath10k_update_vif_offload(struct ieee80211_hw *hw,
|
||||||
|
+static int ath10k_update_vif_offload(struct ieee80211_hw *hw,
|
||||||
|
struct ieee80211_vif *vif)
|
||||||
|
{
|
||||||
|
struct ath10k_vif *arvif = (void *)vif->drv_priv;
|
||||||
|
@@ -6387,6 +6387,8 @@ static void ath10k_update_vif_offload(st
|
||||||
|
ath10k_warn(ar, "failed to set vdev %i TX encapsulation: %d\n",
|
||||||
|
arvif->vdev_id, ret);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
@ -0,0 +1,33 @@
|
|||||||
|
--- a/ath10k-6.10/pci.c
|
||||||
|
+++ b/ath10k-6.10/pci.c
|
||||||
|
@@ -2285,6 +2285,7 @@ static int ath10k_pci_hif_start(struct a
|
||||||
|
|
||||||
|
ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif start\n");
|
||||||
|
|
||||||
|
+ dev_set_threaded(ar->napi_dev, true);
|
||||||
|
ath10k_core_napi_enable(ar);
|
||||||
|
|
||||||
|
ath10k_pci_irq_enable(ar);
|
||||||
|
--- a/ath10k-6.10/sdio.c
|
||||||
|
+++ b/ath10k-6.10/sdio.c
|
||||||
|
@@ -1863,6 +1863,7 @@ static int ath10k_sdio_hif_start(struct
|
||||||
|
struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar);
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
+ dev_set_threaded(&ar->napi_dev, true);
|
||||||
|
ath10k_core_napi_enable(ar);
|
||||||
|
|
||||||
|
/* Sleep 20 ms before HIF interrupts are disabled.
|
||||||
|
--- a/ath10k-6.10/core.c
|
||||||
|
+++ b/ath10k-6.10/core.c
|
||||||
|
@@ -4576,6 +4576,10 @@ struct ath10k *ath10k_core_create(size_t
|
||||||
|
if (!ar->napi_dev)
|
||||||
|
goto err_free_tx_complete;
|
||||||
|
|
||||||
|
+ snprintf(ar->napi_dev->name, sizeof(ar->napi_dev->name), "ath10k_%s",
|
||||||
|
+ wiphy_name(ar->hw->wiphy));
|
||||||
|
+ dev_set_threaded(ar->napi_dev, true);
|
||||||
|
+
|
||||||
|
ret = ath10k_coredump_create(ar);
|
||||||
|
if (ret)
|
||||||
|
goto err_free_netdev;
|
@ -35,9 +35,9 @@ define Package/bcm63xx-cfe/install
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/InstallDev
|
define Build/InstallDev
|
||||||
rm -rf $(KERNEL_BUILD_DIR)/$(PKG_NAME)
|
rm -rf $(STAGING_DIR_IMAGE)/$(PKG_NAME)
|
||||||
mkdir -p $(KERNEL_BUILD_DIR)/$(PKG_NAME)
|
mkdir -p $(STAGING_DIR_IMAGE)/$(PKG_NAME)
|
||||||
$(CP) -r $(PKG_BUILD_DIR)/* $(KERNEL_BUILD_DIR)/$(PKG_NAME)
|
$(CP) -r $(PKG_BUILD_DIR)/* $(STAGING_DIR_IMAGE)/$(PKG_NAME)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(eval $(call BuildPackage,bcm63xx-cfe))
|
$(eval $(call BuildPackage,bcm63xx-cfe))
|
||||||
|
@ -41,13 +41,22 @@ define KernelPackage/cryptodev/description
|
|||||||
via a "/dev/crypto" device.
|
via a "/dev/crypto" device.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_PACKAGE_kmod-crypto-qce),)
|
||||||
|
EXTRA_CFLAGS+=-DQCA
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifneq ($(CONFIG_PACKAGE_kmod-qca-nss-crypto),)
|
||||||
|
EXTRA_CFLAGS+=-DQCANSS
|
||||||
|
endif
|
||||||
|
|
||||||
define Build/Configure
|
define Build/Configure
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
$(MAKE) -C $(PKG_BUILD_DIR) \
|
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||||
$(KERNEL_MAKE_FLAGS) \
|
$(KERNEL_MAKE_FLAGS) \
|
||||||
KERNEL_DIR="$(LINUX_DIR)"
|
KERNEL_DIR="$(LINUX_DIR)" \
|
||||||
|
EXTRA_CFLAGS="$(EXTRA_CFLAGS)"
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/InstallDev
|
define Build/InstallDev
|
||||||
|
@ -0,0 +1,99 @@
|
|||||||
|
--- a/ioctl.c
|
||||||
|
+++ b/ioctl.c
|
||||||
|
@@ -829,29 +829,37 @@ static inline void tfm_info_to_alg_info(
|
||||||
|
"%s", crypto_tfm_alg_driver_name(tfm));
|
||||||
|
}
|
||||||
|
|
||||||
|
-#ifndef CRYPTO_ALG_KERN_DRIVER_ONLY
|
||||||
|
+#if defined(QCANSS) || defined(QCA) || defined(MT7621) || defined(MT7622) || defined(LANTIQ) || defined(BCM675X) || defined(BCM49XX) || defined(MT798X)
|
||||||
|
static unsigned int is_known_accelerated(struct crypto_tfm *tfm)
|
||||||
|
{
|
||||||
|
const char *name = crypto_tfm_alg_driver_name(tfm);
|
||||||
|
|
||||||
|
if (name == NULL)
|
||||||
|
- return 1; /* assume accelerated */
|
||||||
|
+ return 0;
|
||||||
|
|
||||||
|
/* look for known crypto engine names */
|
||||||
|
- if (strstr(name, "-talitos") ||
|
||||||
|
- !strncmp(name, "mv-", 3) ||
|
||||||
|
- !strncmp(name, "atmel-", 6) ||
|
||||||
|
- strstr(name, "geode") ||
|
||||||
|
- strstr(name, "hifn") ||
|
||||||
|
- strstr(name, "-ixp4xx") ||
|
||||||
|
- strstr(name, "-omap") ||
|
||||||
|
- strstr(name, "-picoxcell") ||
|
||||||
|
- strstr(name, "-s5p") ||
|
||||||
|
- strstr(name, "-ppc4xx") ||
|
||||||
|
- strstr(name, "-caam") ||
|
||||||
|
- strstr(name, "-n2"))
|
||||||
|
+#if defined(QCANSS)
|
||||||
|
+ if (!strncmp(name, "nss-", 4))
|
||||||
|
return 1;
|
||||||
|
-
|
||||||
|
+#elif defined(QCA)
|
||||||
|
+ if (!strncmp(name, "qcrypto", 7))
|
||||||
|
+ return 1;
|
||||||
|
+#elif defined(MT7621)
|
||||||
|
+ if (strstr(name, "eip93"))
|
||||||
|
+ return 1;
|
||||||
|
+#elif defined(MT7622)
|
||||||
|
+ if (strstr(name, "mtk"))
|
||||||
|
+ return 1;
|
||||||
|
+#elif defined(MT798X)
|
||||||
|
+ if (strstr(name, "safexcel-"))
|
||||||
|
+ return 1;
|
||||||
|
+#elif defined(LANTIQ)
|
||||||
|
+ if (strstr(name, "ltq-crypto"))
|
||||||
|
+ return 1;
|
||||||
|
+#elif defined(BCM675X) || defined(BCM49XX)
|
||||||
|
+ if (strstr(name, "-iproc"))
|
||||||
|
+ return 1;
|
||||||
|
+#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@@ -876,22 +884,22 @@ static int get_session_info(struct fcryp
|
||||||
|
else
|
||||||
|
tfm = crypto_aead_tfm(ses_ptr->cdata.async.as);
|
||||||
|
tfm_info_to_alg_info(&siop->cipher_info, tfm);
|
||||||
|
-#ifdef CRYPTO_ALG_KERN_DRIVER_ONLY
|
||||||
|
- if (tfm->__crt_alg->cra_flags & CRYPTO_ALG_KERN_DRIVER_ONLY)
|
||||||
|
+#if defined(QCANSS) || defined(QCA) || defined(MT7621) || defined(MT7622) || defined(LANTIQ) || defined(BCM675X) || defined(BCM49XX) || defined(MT798X)
|
||||||
|
+ if (is_known_accelerated(tfm))
|
||||||
|
siop->flags |= SIOP_FLAG_KERNEL_DRIVER_ONLY;
|
||||||
|
#else
|
||||||
|
- if (is_known_accelerated(tfm))
|
||||||
|
+ if (tfm->__crt_alg->cra_flags & CRYPTO_ALG_KERN_DRIVER_ONLY)
|
||||||
|
siop->flags |= SIOP_FLAG_KERNEL_DRIVER_ONLY;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if (ses_ptr->hdata.init) {
|
||||||
|
tfm = crypto_ahash_tfm(ses_ptr->hdata.async.s);
|
||||||
|
tfm_info_to_alg_info(&siop->hash_info, tfm);
|
||||||
|
-#ifdef CRYPTO_ALG_KERN_DRIVER_ONLY
|
||||||
|
- if (tfm->__crt_alg->cra_flags & CRYPTO_ALG_KERN_DRIVER_ONLY)
|
||||||
|
+#if defined(QCANSS) || defined(QCA) || defined(MT7621) || defined(MT7622) || defined(LANTIQ) || defined(BCM675X) || defined(BCM49XX) || defined(MT798X)
|
||||||
|
+ if (is_known_accelerated(tfm))
|
||||||
|
siop->flags |= SIOP_FLAG_KERNEL_DRIVER_ONLY;
|
||||||
|
#else
|
||||||
|
- if (is_known_accelerated(tfm))
|
||||||
|
+ if (tfm->__crt_alg->cra_flags & CRYPTO_ALG_KERN_DRIVER_ONLY)
|
||||||
|
siop->flags |= SIOP_FLAG_KERNEL_DRIVER_ONLY;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
--- a/main.c
|
||||||
|
+++ b/main.c
|
||||||
|
@@ -168,6 +168,12 @@ __crypto_run_zc(struct csession *ses_ptr
|
||||||
|
struct crypt_op *cop = &kcop->cop;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
+#if defined(QCANSS)
|
||||||
|
+//openssl bug!!!
|
||||||
|
+ if (unlikely(cop->src != cop->dst)) {
|
||||||
|
+ return __crypto_run_std(ses_ptr, cop);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
ret = get_userbuf(ses_ptr, cop->src, cop->len, cop->dst, cop->len,
|
||||||
|
kcop->task, kcop->mm, &src_sg, &dst_sg);
|
||||||
|
if (unlikely(ret)) {
|
@ -674,7 +674,7 @@ static void gpio_keys_irq_close(struct gpio_keys_button_dev *bdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int gpio_keys_remove(struct platform_device *pdev)
|
static void gpio_keys_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct gpio_keys_button_dev *bdev = platform_get_drvdata(pdev);
|
struct gpio_keys_button_dev *bdev = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
@ -684,13 +684,11 @@ static int gpio_keys_remove(struct platform_device *pdev)
|
|||||||
gpio_keys_polled_close(bdev);
|
gpio_keys_polled_close(bdev);
|
||||||
else
|
else
|
||||||
gpio_keys_irq_close(bdev);
|
gpio_keys_irq_close(bdev);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct platform_driver gpio_keys_driver = {
|
static struct platform_driver gpio_keys_driver = {
|
||||||
.probe = gpio_keys_probe,
|
.probe = gpio_keys_probe,
|
||||||
.remove = gpio_keys_remove,
|
.remove_new = gpio_keys_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "gpio-keys",
|
.name = "gpio-keys",
|
||||||
.of_match_table = of_match_ptr(gpio_keys_of_match),
|
.of_match_table = of_match_ptr(gpio_keys_of_match),
|
||||||
@ -699,7 +697,7 @@ static struct platform_driver gpio_keys_driver = {
|
|||||||
|
|
||||||
static struct platform_driver gpio_keys_polled_driver = {
|
static struct platform_driver gpio_keys_polled_driver = {
|
||||||
.probe = gpio_keys_polled_probe,
|
.probe = gpio_keys_polled_probe,
|
||||||
.remove = gpio_keys_remove,
|
.remove_new = gpio_keys_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "gpio-keys-polled",
|
.name = "gpio-keys-polled",
|
||||||
.of_match_table = of_match_ptr(gpio_keys_polled_of_match),
|
.of_match_table = of_match_ptr(gpio_keys_polled_of_match),
|
||||||
|
@ -2780,7 +2780,7 @@ static int ltq_mei_probe(struct platform_device *pdev)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ltq_mei_remove(struct platform_device *pdev)
|
static void ltq_mei_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int num;
|
int num;
|
||||||
@ -2794,7 +2794,6 @@ static int ltq_mei_remove(struct platform_device *pdev)
|
|||||||
IFX_MEI_ExitDevice (i);
|
IFX_MEI_ExitDevice (i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct of_device_id ltq_mei_match[] = {
|
static const struct of_device_id ltq_mei_match[] = {
|
||||||
@ -2804,7 +2803,7 @@ static const struct of_device_id ltq_mei_match[] = {
|
|||||||
|
|
||||||
static struct platform_driver ltq_mei_driver = {
|
static struct platform_driver ltq_mei_driver = {
|
||||||
.probe = ltq_mei_probe,
|
.probe = ltq_mei_probe,
|
||||||
.remove = ltq_mei_remove,
|
.remove_new = ltq_mei_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "lantiq,mei-xway",
|
.name = "lantiq,mei-xway",
|
||||||
.of_match_table = ltq_mei_match,
|
.of_match_table = ltq_mei_match,
|
||||||
|
@ -1865,7 +1865,7 @@ INIT_PRIV_DATA_FAIL:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ltq_atm_remove(struct platform_device *pdev)
|
static void ltq_atm_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
int port_num;
|
int port_num;
|
||||||
struct ltq_atm_ops *ops = platform_get_drvdata(pdev);
|
struct ltq_atm_ops *ops = platform_get_drvdata(pdev);
|
||||||
@ -1885,13 +1885,11 @@ static int ltq_atm_remove(struct platform_device *pdev)
|
|||||||
ops->shutdown();
|
ops->shutdown();
|
||||||
|
|
||||||
clear_priv_data();
|
clear_priv_data();
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct platform_driver ltq_atm_driver = {
|
static struct platform_driver ltq_atm_driver = {
|
||||||
.probe = ltq_atm_probe,
|
.probe = ltq_atm_probe,
|
||||||
.remove = ltq_atm_remove,
|
.remove_new = ltq_atm_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "atm",
|
.name = "atm",
|
||||||
.of_match_table = ltq_atm_match,
|
.of_match_table = ltq_atm_match,
|
||||||
|
@ -143,7 +143,7 @@ static int ltq_deu_probe(struct platform_device *pdev)
|
|||||||
* \ingroup IFX_DEU_FUNCTIONS
|
* \ingroup IFX_DEU_FUNCTIONS
|
||||||
* \brief remove the loaded crypto algorithms
|
* \brief remove the loaded crypto algorithms
|
||||||
*/
|
*/
|
||||||
static int ltq_deu_remove(struct platform_device *pdev)
|
static void ltq_deu_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
//#ifdef CONFIG_CRYPTO_DEV_PWR_SAVE_MODE
|
//#ifdef CONFIG_CRYPTO_DEV_PWR_SAVE_MODE
|
||||||
#if defined(CONFIG_CRYPTO_DEV_DES)
|
#if defined(CONFIG_CRYPTO_DEV_DES)
|
||||||
@ -168,8 +168,6 @@ static int ltq_deu_remove(struct platform_device *pdev)
|
|||||||
ifxdeu_fini_md5_hmac ();
|
ifxdeu_fini_md5_hmac ();
|
||||||
#endif
|
#endif
|
||||||
printk("DEU has exited successfully\n");
|
printk("DEU has exited successfully\n");
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -193,7 +191,7 @@ MODULE_DEVICE_TABLE(of, ltq_deu_match);
|
|||||||
|
|
||||||
static struct platform_driver ltq_deu_driver = {
|
static struct platform_driver ltq_deu_driver = {
|
||||||
.probe = ltq_deu_probe,
|
.probe = ltq_deu_probe,
|
||||||
.remove = ltq_deu_remove,
|
.remove_new = ltq_deu_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "deu",
|
.name = "deu",
|
||||||
.of_match_table = ltq_deu_match,
|
.of_match_table = ltq_deu_match,
|
||||||
|
@ -1566,7 +1566,7 @@ INIT_PRIV_DATA_FAIL:
|
|||||||
* Output:
|
* Output:
|
||||||
* none
|
* none
|
||||||
*/
|
*/
|
||||||
static int ltq_ptm_remove(struct platform_device *pdev)
|
static void ltq_ptm_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -1591,13 +1591,11 @@ static int ltq_ptm_remove(struct platform_device *pdev)
|
|||||||
ifx_ptm_uninit_chip();
|
ifx_ptm_uninit_chip();
|
||||||
|
|
||||||
clear_priv_data();
|
clear_priv_data();
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct platform_driver ltq_ptm_driver = {
|
static struct platform_driver ltq_ptm_driver = {
|
||||||
.probe = ltq_ptm_probe,
|
.probe = ltq_ptm_probe,
|
||||||
.remove = ltq_ptm_remove,
|
.remove_new = ltq_ptm_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "ptm",
|
.name = "ptm",
|
||||||
.of_match_table = ltq_ptm_match,
|
.of_match_table = ltq_ptm_match,
|
||||||
|
@ -1079,7 +1079,7 @@ INIT_PRIV_DATA_FAIL:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ltq_ptm_remove(struct platform_device *pdev)
|
static void ltq_ptm_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
ifx_mei_atm_showtime_enter = NULL;
|
ifx_mei_atm_showtime_enter = NULL;
|
||||||
@ -1103,8 +1103,6 @@ static int ltq_ptm_remove(struct platform_device *pdev)
|
|||||||
ifx_ptm_uninit_chip();
|
ifx_ptm_uninit_chip();
|
||||||
|
|
||||||
clear_priv_data();
|
clear_priv_data();
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef MODULE
|
#ifndef MODULE
|
||||||
@ -1135,7 +1133,7 @@ static int __init queue_gamma_map_setup(char *line)
|
|||||||
#endif
|
#endif
|
||||||
static struct platform_driver ltq_ptm_driver = {
|
static struct platform_driver ltq_ptm_driver = {
|
||||||
.probe = ltq_ptm_probe,
|
.probe = ltq_ptm_probe,
|
||||||
.remove = ltq_ptm_remove,
|
.remove_new = ltq_ptm_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "ptm",
|
.name = "ptm",
|
||||||
.of_match_table = ltq_ptm_match,
|
.of_match_table = ltq_ptm_match,
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
net.netfilter.nf_conntrack_acct=1
|
net.netfilter.nf_conntrack_acct=1
|
||||||
net.netfilter.nf_conntrack_checksum=0
|
net.netfilter.nf_conntrack_checksum=0
|
||||||
|
net.netfilter.nf_conntrack_max=65535
|
||||||
net.netfilter.nf_conntrack_tcp_timeout_established=7440
|
net.netfilter.nf_conntrack_tcp_timeout_established=7440
|
||||||
net.netfilter.nf_conntrack_udp_timeout=60
|
net.netfilter.nf_conntrack_udp_timeout=60
|
||||||
net.netfilter.nf_conntrack_udp_timeout_stream=180
|
net.netfilter.nf_conntrack_udp_timeout_stream=180
|
||||||
|
@ -1193,7 +1193,6 @@ endef
|
|||||||
|
|
||||||
$(eval $(call KernelPackage,crypto-xts))
|
$(eval $(call KernelPackage,crypto-xts))
|
||||||
|
|
||||||
|
|
||||||
define KernelPackage/crypto-xxhash
|
define KernelPackage/crypto-xxhash
|
||||||
TITLE:=xxHash non-cryptographic hash algorithm
|
TITLE:=xxHash non-cryptographic hash algorithm
|
||||||
DEPENDS:=+kmod-crypto-hash +kmod-lib-xxhash
|
DEPENDS:=+kmod-crypto-hash +kmod-lib-xxhash
|
||||||
@ -1205,3 +1204,20 @@ endef
|
|||||||
|
|
||||||
$(eval $(call KernelPackage,crypto-xxhash))
|
$(eval $(call KernelPackage,crypto-xxhash))
|
||||||
|
|
||||||
|
define KernelPackage/crypto-qce
|
||||||
|
TITLE:=QTI Crypto Engine (QCE)
|
||||||
|
KCONFIG:= \
|
||||||
|
CONFIG_CRYPTO_DEV_QCE \
|
||||||
|
CONFIG_CRYPTO_DEV_QCE_AEAD=y \
|
||||||
|
CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y \
|
||||||
|
CONFIG_CRYPTO_DEV_QCE_SHA=y \
|
||||||
|
CONFIG_CRYPTO_DEV_QCE_SKCIPHER=y \
|
||||||
|
CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512
|
||||||
|
FILES:= \
|
||||||
|
$(LINUX_DIR)/drivers/crypto/qce/qcrypto.ko
|
||||||
|
AUTOLOAD:=$(call AutoLoad,09,qcrypto)
|
||||||
|
DEPENDS:=@TARGET_qualcommax +kmod-crypto-manager +kmod-crypto-hash +kmod-crypto-des
|
||||||
|
$(call AddDepends/crypto)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call KernelPackage,crypto-qce))
|
||||||
|
@ -658,7 +658,7 @@ $(eval $(call KernelPackage,dsa-realtek))
|
|||||||
|
|
||||||
define KernelPackage/dsa-rtl8366rb
|
define KernelPackage/dsa-rtl8366rb
|
||||||
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
SUBMENU:=$(NETWORK_DEVICES_MENU)
|
||||||
TITLE:=Realtek RTL8365MB switch DSA support
|
TITLE:=Realtek RTL8366RB switch DSA support
|
||||||
DEPENDS:=+kmod-dsa-realtek @!TARGET_x86 @!TARGET_bcm47xx @!TARGET_uml
|
DEPENDS:=+kmod-dsa-realtek @!TARGET_x86 @!TARGET_bcm47xx @!TARGET_uml
|
||||||
KCONFIG:= \
|
KCONFIG:= \
|
||||||
CONFIG_NET_DSA_REALTEK_RTL8366RB \
|
CONFIG_NET_DSA_REALTEK_RTL8366RB \
|
||||||
|
@ -328,6 +328,7 @@ $(eval $(call KernelPackage,ipt-offload))
|
|||||||
define KernelPackage/ipt-ipopt
|
define KernelPackage/ipt-ipopt
|
||||||
TITLE:=Modules for matching/changing IP packet options
|
TITLE:=Modules for matching/changing IP packet options
|
||||||
KCONFIG:=$(KCONFIG_IPT_IPOPT)
|
KCONFIG:=$(KCONFIG_IPT_IPOPT)
|
||||||
|
DEPENDS:=+PACKAGE_kmod-nf-conntrack:kmod-nf-conntrack
|
||||||
FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).ko)
|
FILES:=$(foreach mod,$(IPT_IPOPT-m),$(LINUX_DIR)/net/$(mod).ko)
|
||||||
AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPOPT-m)))
|
AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_IPOPT-m)))
|
||||||
$(call AddDepends/ipt)
|
$(call AddDepends/ipt)
|
||||||
|
@ -1651,6 +1651,7 @@ endef
|
|||||||
$(eval $(call KernelPackage,qrtr-mhi))
|
$(eval $(call KernelPackage,qrtr-mhi))
|
||||||
|
|
||||||
define KernelPackage/unix-diag
|
define KernelPackage/unix-diag
|
||||||
|
SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||||
TITLE:=UNIX socket monitoring interface
|
TITLE:=UNIX socket monitoring interface
|
||||||
KCONFIG:=CONFIG_UNIX_DIAG
|
KCONFIG:=CONFIG_UNIX_DIAG
|
||||||
FILES:= $(LINUX_DIR)/net/unix/unix_diag.ko
|
FILES:= $(LINUX_DIR)/net/unix/unix_diag.ko
|
||||||
@ -1660,6 +1661,7 @@ endef
|
|||||||
$(eval $(call KernelPackage,unix-diag))
|
$(eval $(call KernelPackage,unix-diag))
|
||||||
|
|
||||||
define KernelPackage/packet-diag
|
define KernelPackage/packet-diag
|
||||||
|
SUBMENU:=$(NETWORK_SUPPORT_MENU)
|
||||||
TITLE:=Packet sockets monitoring interface
|
TITLE:=Packet sockets monitoring interface
|
||||||
KCONFIG:=CONFIG_PACKET_DIAG
|
KCONFIG:=CONFIG_PACKET_DIAG
|
||||||
FILES:= $(LINUX_DIR)/net/packet/af_packet_diag.ko
|
FILES:= $(LINUX_DIR)/net/packet/af_packet_diag.ko
|
||||||
|
@ -538,7 +538,7 @@ $(eval $(call KernelPackage,usb-dwc3-octeon))
|
|||||||
|
|
||||||
define KernelPackage/usb-dwc3-qcom
|
define KernelPackage/usb-dwc3-qcom
|
||||||
TITLE:=DWC3 Qualcomm USB driver
|
TITLE:=DWC3 Qualcomm USB driver
|
||||||
DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_qualcommax) +kmod-usb-dwc3
|
DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_qualcommax||TARGET_qualcommbe) +kmod-usb-dwc3
|
||||||
KCONFIG:= CONFIG_USB_DWC3_QCOM
|
KCONFIG:= CONFIG_USB_DWC3_QCOM
|
||||||
FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
|
FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
|
||||||
AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom,1)
|
AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom,1)
|
||||||
|
@ -36,14 +36,21 @@ PKG_CONFIG_DEPENDS:= \
|
|||||||
CONFIG_PACKAGE_MAC80211_DEBUGFS \
|
CONFIG_PACKAGE_MAC80211_DEBUGFS \
|
||||||
CONFIG_PACKAGE_MAC80211_MESH \
|
CONFIG_PACKAGE_MAC80211_MESH \
|
||||||
CONFIG_PACKAGE_MAC80211_TRACING \
|
CONFIG_PACKAGE_MAC80211_TRACING \
|
||||||
|
CONFIG_PACKAGE_MAC80211_NSS_SUPPORT \
|
||||||
|
CONFIG_PACKAGE_MAC80211_NSS_REDIRECT \
|
||||||
CONFIG_PACKAGE_IWLWIFI_DEBUG \
|
CONFIG_PACKAGE_IWLWIFI_DEBUG \
|
||||||
CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
|
CONFIG_PACKAGE_IWLWIFI_DEBUGFS \
|
||||||
CONFIG_PACKAGE_RTLWIFI_DEBUG \
|
CONFIG_PACKAGE_RTLWIFI_DEBUG
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
WMENU:=Wireless Drivers
|
WMENU:=Wireless Drivers
|
||||||
|
|
||||||
|
NSS_PATCH:= subsys ath10k ath11k
|
||||||
|
IPQ_BRANCH:=$(shell git -C $(TOPDIR) rev-parse --abbrev-ref HEAD)
|
||||||
|
IPQ_DATE:=$(shell git -C $(TOPDIR) log -1 --format=%cd --date=format:%Y-%m-%d)
|
||||||
|
IPQ_COMMIT:=$(shell git -C $(TOPDIR) log -1 --format=%h)
|
||||||
|
|
||||||
define KernelPackage/mac80211/Default
|
define KernelPackage/mac80211/Default
|
||||||
SUBMENU:=$(WMENU)
|
SUBMENU:=$(WMENU)
|
||||||
URL:=https://wireless.wiki.kernel.org/
|
URL:=https://wireless.wiki.kernel.org/
|
||||||
@ -129,10 +136,15 @@ define KernelPackage/mac80211
|
|||||||
$(call KernelPackage/mac80211/Default)
|
$(call KernelPackage/mac80211/Default)
|
||||||
TITLE:=Linux 802.11 Wireless Networking Stack
|
TITLE:=Linux 802.11 Wireless Networking Stack
|
||||||
# +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
|
# +kmod-crypto-cmac is a runtime only dependency of net/mac80211/aes_cmac.c
|
||||||
DEPENDS+= +kmod-cfg80211 +kmod-crypto-cmac +kmod-crypto-ccm +kmod-crypto-gcm +hostapd-common
|
DEPENDS+= +kmod-cfg80211 +kmod-crypto-cmac +kmod-crypto-ccm +kmod-crypto-gcm +hostapd-common \
|
||||||
|
+ATH11K_NSS_SUPPORT:kmod-qca-nss-drv
|
||||||
KCONFIG:=\
|
KCONFIG:=\
|
||||||
CONFIG_AVERAGE=y
|
CONFIG_AVERAGE=y
|
||||||
FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
|
FILES:= $(PKG_BUILD_DIR)/net/mac80211/mac80211.ko
|
||||||
|
ifdef CONFIG_PACKAGE_MAC80211_NSS_REDIRECT
|
||||||
|
AUTOLOAD:=$(call AutoProbe, mac80211)
|
||||||
|
MODPARAMS.mac80211:=nss_redirect=1
|
||||||
|
endif
|
||||||
ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
|
ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE)
|
||||||
MENU:=1
|
MENU:=1
|
||||||
endef
|
endef
|
||||||
@ -140,6 +152,21 @@ endef
|
|||||||
define KernelPackage/mac80211/config
|
define KernelPackage/mac80211/config
|
||||||
if PACKAGE_kmod-mac80211
|
if PACKAGE_kmod-mac80211
|
||||||
|
|
||||||
|
if PACKAGE_kmod-qca-nss-drv
|
||||||
|
config PACKAGE_MAC80211_NSS_SUPPORT
|
||||||
|
bool "Enable NSS support"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
This option enables support for NSS in QCA boards.
|
||||||
|
config PACKAGE_MAC80211_NSS_REDIRECT
|
||||||
|
bool "Enable autoloading with 'nss_redirect=1' (not needed on ath11k)"
|
||||||
|
depends on PACKAGE_MAC80211_NSS_SUPPORT
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
This option enables autoloading mac80211 with 'nss_redirect=1'.
|
||||||
|
However, it is not required for wifi offloading.
|
||||||
|
endif
|
||||||
|
|
||||||
config PACKAGE_MAC80211_DEBUGFS
|
config PACKAGE_MAC80211_DEBUGFS
|
||||||
bool "Export mac80211 internals in DebugFS"
|
bool "Export mac80211 internals in DebugFS"
|
||||||
select KERNEL_DEBUG_FS
|
select KERNEL_DEBUG_FS
|
||||||
@ -281,6 +308,16 @@ ifeq ($(BUILD_VARIANT),smallbuffers)
|
|||||||
C_DEFINES+= -DCONFIG_ATH10K_SMALLBUFFERS
|
C_DEFINES+= -DCONFIG_ATH10K_SMALLBUFFERS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_ATH11K_NSS_SUPPORT
|
||||||
|
IREMAP_CFLAGS+=-I$(STAGING_DIR)/usr/include/qca-nss-drv -I$(STAGING_DIR)/usr/include/qca-nss-clients
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_NSS_FIRMWARE_VERSION_11_4),y)
|
||||||
|
C_DEFINES+=-DCONFIG_NSS_FIRMWARE_VERSION_11_4
|
||||||
|
endif
|
||||||
|
|
||||||
|
config-$(CONFIG_PACKAGE_MAC80211_NSS_SUPPORT) += MAC80211_NSS_SUPPORT
|
||||||
|
|
||||||
MAKE_OPTS:= \
|
MAKE_OPTS:= \
|
||||||
$(subst -C $(LINUX_DIR),-C "$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS)) \
|
$(subst -C $(LINUX_DIR),-C "$(PKG_BUILD_DIR)",$(KERNEL_MAKEOPTS)) \
|
||||||
EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
|
EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/include $(IREMAP_CFLAGS) $(C_DEFINES)" \
|
||||||
@ -354,6 +391,11 @@ define Build/Patch
|
|||||||
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
|
||||||
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
|
||||||
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
|
||||||
|
ifdef CONFIG_ATH11K_NSS_SUPPORT
|
||||||
|
$(foreach driver,$(NSS_PATCH),
|
||||||
|
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/nss/$(driver),nss/$(driver)/)
|
||||||
|
)
|
||||||
|
endif
|
||||||
$(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
|
$(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -371,6 +413,11 @@ define Quilt/Refresh/Package
|
|||||||
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
|
||||||
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
|
||||||
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
|
||||||
|
ifdef CONFIG_ATH11K_NSS_SUPPORT
|
||||||
|
$(foreach driver,$(NSS_PATCH),
|
||||||
|
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/nss/$(driver),nss/$(driver)/)
|
||||||
|
)
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Build/Compile
|
define Build/Compile
|
||||||
@ -392,6 +439,18 @@ define Build/InstallDev
|
|||||||
rm -f $(1)/usr/include/mac80211-backport/linux/module.h
|
rm -f $(1)/usr/include/mac80211-backport/linux/module.h
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
ifdef CONFIG_ATH11K_NSS_SUPPORT
|
||||||
|
define KernelPackage/ath11k/install
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d $(1)/etc/config $(1)/usr/bin $(1)/etc/hotplug.d/net
|
||||||
|
$(INSTALL_BIN) ./files/qca-nss-pbuf.init $(1)/etc/init.d/qca-nss-pbuf
|
||||||
|
$(INSTALL_DATA) ./files/pbuf.uci $(1)/etc/config/pbuf
|
||||||
|
$(INSTALL_BIN) ./files/nss_diag.sh $(1)/usr/bin/nss_diag
|
||||||
|
$(INSTALL_DATA) ./files/disable_mesh_chksum_ath11k.hotplug $(1)/etc/hotplug.d/net/99-disable_mesh_chksum_ath11k
|
||||||
|
echo "IPQ_BRANCH=$(IPQ_BRANCH)" > $(1)/etc/ipq_release
|
||||||
|
echo "IPQ_DATE=$(IPQ_DATE)" >> $(1)/etc/ipq_release
|
||||||
|
echo "IPQ_COMMIT=$(IPQ_COMMIT)" >> $(1)/etc/ipq_release
|
||||||
|
endef
|
||||||
|
endif
|
||||||
|
|
||||||
$(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
|
$(eval $(foreach drv,$(PKG_DRIVERS),$(call KernelPackage,$(drv))))
|
||||||
$(eval $(call KernelPackage,cfg80211))
|
$(eval $(call KernelPackage,cfg80211))
|
||||||
|
@ -13,7 +13,14 @@ PKG_CONFIG_DEPENDS += \
|
|||||||
CONFIG_ATH10K_LEDS \
|
CONFIG_ATH10K_LEDS \
|
||||||
CONFIG_ATH10K_THERMAL \
|
CONFIG_ATH10K_THERMAL \
|
||||||
CONFIG_ATH11K_THERMAL \
|
CONFIG_ATH11K_THERMAL \
|
||||||
CONFIG_ATH_USER_REGD
|
CONFIG_ATH11K_DEBUGFS_STA \
|
||||||
|
CONFIG_ATH11K_DEBUGFS_HTT_STATS \
|
||||||
|
CONFIG_ATH_USER_REGD \
|
||||||
|
CONFIG_ATH11K_MEM_PROFILE_1G \
|
||||||
|
CONFIG_ATH11K_MEM_PROFILE_512M \
|
||||||
|
CONFIG_ATH11K_MEM_PROFILE_256M \
|
||||||
|
CONFIG_ATH11K_NSS_SUPPORT \
|
||||||
|
CONFIG_ATH11K_NSS_MESH_SUPPORT
|
||||||
|
|
||||||
ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
|
ifdef CONFIG_PACKAGE_MAC80211_DEBUGFS
|
||||||
config-y += \
|
config-y += \
|
||||||
@ -59,6 +66,13 @@ config-$(CONFIG_ATH9K_UBNTHSR) += ATH9K_UBNTHSR
|
|||||||
config-$(CONFIG_ATH10K_LEDS) += ATH10K_LEDS
|
config-$(CONFIG_ATH10K_LEDS) += ATH10K_LEDS
|
||||||
config-$(CONFIG_ATH10K_THERMAL) += ATH10K_THERMAL
|
config-$(CONFIG_ATH10K_THERMAL) += ATH10K_THERMAL
|
||||||
config-$(CONFIG_ATH11K_THERMAL) += ATH11K_THERMAL
|
config-$(CONFIG_ATH11K_THERMAL) += ATH11K_THERMAL
|
||||||
|
config-$(CONFIG_ATH11K_MEM_PROFILE_1G) += ATH11K_MEM_PROFILE_1G
|
||||||
|
config-$(CONFIG_ATH11K_MEM_PROFILE_512M) += ATH11K_MEM_PROFILE_512M
|
||||||
|
config-$(CONFIG_ATH11K_MEM_PROFILE_256M) += ATH11K_MEM_PROFILE_256M
|
||||||
|
config-$(CONFIG_ATH11K_NSS_SUPPORT) += ATH11K_NSS_SUPPORT
|
||||||
|
config-$(CONFIG_ATH11K_NSS_MESH_SUPPORT) += ATH11K_NSS_MESH_SUPPORT
|
||||||
|
config-$(CONFIG_ATH11K_DEBUGFS_STA) += ATH11K_DEBUGFS_STA
|
||||||
|
config-$(CONFIG_ATH11K_DEBUGFS_HTT_STATS) += ATH11K_DEBUGFS_HTT_STATS
|
||||||
|
|
||||||
config-$(call config_package,ath9k-htc) += ATH9K_HTC
|
config-$(call config_package,ath9k-htc) += ATH9K_HTC
|
||||||
config-$(call config_package,ath10k,regular) += ATH10K ATH10K_PCI
|
config-$(call config_package,ath10k,regular) += ATH10K ATH10K_PCI
|
||||||
@ -331,8 +345,16 @@ define KernelPackage/ath11k
|
|||||||
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath11k
|
URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath11k
|
||||||
DEPENDS+= +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \
|
DEPENDS+= +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \
|
||||||
+kmod-crypto-michael-mic +ATH11K_THERMAL:kmod-hwmon-core \
|
+kmod-crypto-michael-mic +ATH11K_THERMAL:kmod-hwmon-core \
|
||||||
+ATH11K_THERMAL:kmod-thermal +kmod-qcom-qmi-helpers
|
+ATH11K_THERMAL:kmod-thermal +kmod-qcom-qmi-helpers \
|
||||||
|
+ATH11K_NSS_SUPPORT:kmod-qca-nss-drv \
|
||||||
|
+ATH11K_NSS_MESH_SUPPORT:kmod-qca-nss-drv-wifi-meshmgr \
|
||||||
|
+@(ATH11K_NSS_SUPPORT):NSS_DRV_WIFIOFFLOAD_ENABLE \
|
||||||
|
+@(ATH11K_NSS_SUPPORT):NSS_DRV_WIFI_EXT_VDEV_ENABLE
|
||||||
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath11k/ath11k.ko
|
FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath11k/ath11k.ko
|
||||||
|
ifdef CONFIG_ATH11K_NSS_SUPPORT
|
||||||
|
AUTOLOAD:=$(call AutoProbe,ath11k)
|
||||||
|
MODPARAMS.ath11k:=nss_offload=1 frame_mode=2
|
||||||
|
endif
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/ath11k/description
|
define KernelPackage/ath11k/description
|
||||||
@ -340,6 +362,10 @@ This module adds support for Qualcomm Technologies 802.11ax family of
|
|||||||
chipsets.
|
chipsets.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/ath11k/conffiles
|
||||||
|
/etc/config/pbuf
|
||||||
|
endef
|
||||||
|
|
||||||
define KernelPackage/ath11k/config
|
define KernelPackage/ath11k/config
|
||||||
|
|
||||||
config ATH11K_THERMAL
|
config ATH11K_THERMAL
|
||||||
@ -347,6 +373,63 @@ define KernelPackage/ath11k/config
|
|||||||
depends on PACKAGE_kmod-ath11k
|
depends on PACKAGE_kmod-ath11k
|
||||||
default y if TARGET_qualcommax
|
default y if TARGET_qualcommax
|
||||||
|
|
||||||
|
config ATH11K_DEBUGFS_STA
|
||||||
|
bool "Enable ath11k station statistics"
|
||||||
|
depends on PACKAGE_kmod-ath11k
|
||||||
|
depends on PACKAGE_MAC80211_DEBUGFS
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Say Y to enable access to the station statistics via debugfs.
|
||||||
|
|
||||||
|
config ATH11K_DEBUGFS_HTT_STATS
|
||||||
|
bool "Enable ath11k HTT statistics"
|
||||||
|
depends on PACKAGE_kmod-ath11k
|
||||||
|
depends on PACKAGE_MAC80211_DEBUGFS
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Say Y to enable access to the HTT statistics via debugfs.
|
||||||
|
|
||||||
|
config ATH11K_NSS_SUPPORT
|
||||||
|
bool "Enable NSS WiFi offload"
|
||||||
|
select ATH11K_MEM_PROFILE_512M
|
||||||
|
select PACKAGE_kmod-qca-nss-ecm
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Say Y to enable NSS WiFi offload support. Ensure you enable feeds for NSS drivers.
|
||||||
|
https://github.com/qosmio/nss-packages
|
||||||
|
|
||||||
|
config ATH11K_NSS_MESH_SUPPORT
|
||||||
|
bool "Enable NSS WiFi Mesh offload"
|
||||||
|
depends on ATH11K_NSS_SUPPORT
|
||||||
|
select PACKAGE_MAC80211_MESH
|
||||||
|
select NSS_FIRMWARE_VERSION_11_4
|
||||||
|
default n
|
||||||
|
|
||||||
|
choice
|
||||||
|
prompt "Memory Profile"
|
||||||
|
depends on PACKAGE_kmod-ath11k
|
||||||
|
default ATH11K_MEM_PROFILE_512M
|
||||||
|
help
|
||||||
|
This option allows you to select the memory profile.
|
||||||
|
It should correspond to the total RAM of your board.
|
||||||
|
|
||||||
|
config ATH11K_MEM_PROFILE_1G
|
||||||
|
bool "Use 1G memory profile"
|
||||||
|
help
|
||||||
|
This allows configuring ath11k for boards with 1GB+ memory.
|
||||||
|
|
||||||
|
config ATH11K_MEM_PROFILE_512M
|
||||||
|
bool "Use 512MB memory profile"
|
||||||
|
help
|
||||||
|
This allows configuring ath11k for boards with 512M memory.
|
||||||
|
The default is 1GB if not selected
|
||||||
|
|
||||||
|
config ATH11K_MEM_PROFILE_256M
|
||||||
|
bool "Use 256MB memory profile"
|
||||||
|
help
|
||||||
|
This allows configuring ath11k for boards with 256M memory.
|
||||||
|
The default is 1GB if not selected
|
||||||
|
endchoice
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define KernelPackage/ath11k-ahb
|
define KernelPackage/ath11k-ahb
|
||||||
|
24
package/kernel/mac80211/files/disable_mesh_chksum_ath11k.hotplug
Executable file
24
package/kernel/mac80211/files/disable_mesh_chksum_ath11k.hotplug
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# shellcheck disable=1090
|
||||||
|
PROG=${0##*/}
|
||||||
|
[ "$ACTION" = "add" ] && [ "$DEVTYPE" = "wlan" ] || exit 0
|
||||||
|
|
||||||
|
UEVENT="/sys/class/net/$INTERFACE/device/uevent"
|
||||||
|
[ -r "$UEVENT" ] || exit 0
|
||||||
|
|
||||||
|
DRIVER=$(awk -F= '/^DRIVER/{print $2}' "$UEVENT")
|
||||||
|
case "$DRIVER" in
|
||||||
|
*ath11k*)
|
||||||
|
mode=$(ubus call network.wireless status \
|
||||||
|
| jsonfilter -e "@[*].interfaces[@.ifname='$INTERFACE'].config.mode" 2> /dev/null)
|
||||||
|
[ "$mode" = "mesh" ] || exit 0
|
||||||
|
|
||||||
|
INC="/lib/netifd/offload/disable_offloads.sh"
|
||||||
|
. "$INC" 2> /dev/null || {
|
||||||
|
logger -t "$PROG" -p user.error "missing include script $INC. exiting..."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
disable_feature tx-checksumming "$INTERFACE"
|
||||||
|
;;
|
||||||
|
esac
|
94
package/kernel/mac80211/files/nss_diag.sh
Executable file
94
package/kernel/mac80211/files/nss_diag.sh
Executable file
@ -0,0 +1,94 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# shellcheck disable=3037,3060,2034,1091,2166
|
||||||
|
|
||||||
|
# check if stdout is a terminal, then set colors.
|
||||||
|
if [ -t 1 ]; then
|
||||||
|
red="\033[31m"
|
||||||
|
green="\033[32m"
|
||||||
|
yellow="\033[33m"
|
||||||
|
blue="\033[34m"
|
||||||
|
magenta="\033[35m"
|
||||||
|
cyan="\033[36m"
|
||||||
|
white="\033[37m"
|
||||||
|
reset="\033[m"
|
||||||
|
bold="\033[1m"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Retrieve Linux kernel
|
||||||
|
kernel=$(uname -r)
|
||||||
|
|
||||||
|
# Retrieve CPU freq mode
|
||||||
|
cpu_mode=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
|
||||||
|
|
||||||
|
# Retrieve OpenWRT version
|
||||||
|
[ -r /etc/openwrt_version ] && openwrt_rev=$(cat /etc/openwrt_version)
|
||||||
|
|
||||||
|
# Retrieve device model
|
||||||
|
model=$(jsonfilter -e ''@.model.name'' < /etc/board.json | sed -e "s/,/_/g")
|
||||||
|
|
||||||
|
# NSS firmware version
|
||||||
|
nss_fw="/lib/firmware/qca*.bin"
|
||||||
|
# shellcheck disable=2086
|
||||||
|
[ "$(ls $nss_fw 2> /dev/null)" ] && nss_version=$(grep -h -m 1 -a -o 'Version:.[^[:cntrl:]]*' $nss_fw | head -1 | cut -d ' ' -f 2)
|
||||||
|
|
||||||
|
# ATH11K firmware version
|
||||||
|
ath11k_fw=$(grep -hm1 -a -o 'WLAN.[^[:cntrl:]]*SILICONZ-1' /lib/firmware/*/q6* | head -1)
|
||||||
|
|
||||||
|
# MAC80211 (backports) version
|
||||||
|
mac80211_version=$(awk '/version/{print $NF;exit}' /lib/modules/*/compat.ko)
|
||||||
|
|
||||||
|
# OpenWRT IPQ release details
|
||||||
|
[ -r /etc/ipq_release ] && . /etc/ipq_release
|
||||||
|
ipq_branch=${IPQ_BRANCH:-"N/A"}
|
||||||
|
ipq_commit=${IPQ_COMMIT:-"N/A"}
|
||||||
|
ipq_date=${IPQ_DATE:-"N/A"}
|
||||||
|
|
||||||
|
# Defaults for empty variables
|
||||||
|
kernel=${kernel:-"N/A"}
|
||||||
|
cpu_mode=${cpu_mode:-"N/A"}
|
||||||
|
openwrt_rev=${openwrt_rev:-"N/A"}
|
||||||
|
model=${model:-"N/A"}
|
||||||
|
nss_version=${nss_version:-"N/A"}
|
||||||
|
ath11k_fw=${ath11k_fw:-"N/A"}
|
||||||
|
mac80211_version=${mac80211_version:-"N/A"}
|
||||||
|
|
||||||
|
# Display the information
|
||||||
|
echo -e "${bold}${red} MODEL${reset}: ${cyan}${bold}${model}${reset}"
|
||||||
|
echo -e "${bold}${red} KERNEL${reset}: ${cyan}${bold}${kernel}${reset}"
|
||||||
|
echo -e "${bold}${red} CPU MODE${reset}: ${cyan}${bold}${cpu_mode}${reset}"
|
||||||
|
echo -e "${bold}${red} OPENWRT${reset}: ${green}${openwrt_rev}${reset}"
|
||||||
|
echo -e "${bold}${red}IPQ BRANCH${reset}: ${green}${ipq_branch}${reset}"
|
||||||
|
echo -e "${bold}${red}IPQ COMMIT${reset}: ${green}${ipq_commit}${reset}"
|
||||||
|
echo -e "${bold}${red} IPQ DATE${reset}: ${green}${ipq_date}${reset}"
|
||||||
|
echo -e "${bold}${red} NSS FW${reset}: ${yellow}${nss_version}${reset}"
|
||||||
|
echo -e "${bold}${red} MAC80211${reset}: ${yellow}${mac80211_version}${reset}"
|
||||||
|
echo -e "${bold}${red} ATH11K FW${reset}: ${yellow}${ath11k_fw}${reset}"
|
||||||
|
|
||||||
|
# Display GRO Fragmentation status using BusyBox
|
||||||
|
echo -ne "${bold}${red} INTERFACE${reset}: ${white}"
|
||||||
|
n=0
|
||||||
|
for iface in /sys/class/net/br-lan/device /sys/class/net/*/device; do
|
||||||
|
iface=${iface%/*}
|
||||||
|
iface=${iface##*/}
|
||||||
|
ethtool -k "$iface" | awk -v n=$n -v i="$iface" -v rst="${reset}" -v red="${red}" -v green="${green}" '
|
||||||
|
BEGIN { settings=""; if(n>0) spacing=" " }
|
||||||
|
/tx-checksumming|rx-gro-list/ {
|
||||||
|
color=green
|
||||||
|
if($2=="off") color=red
|
||||||
|
settings = settings $1 " " sprintf("%s%-3s%s", color,$2,rst) " ";
|
||||||
|
}
|
||||||
|
END { printf "%s%-11s%s\n", spacing, i, settings; }'
|
||||||
|
n=$((n + 1))
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e "${reset}"
|
||||||
|
echo -ne "${bold}${red} NSS PKGS${reset}: ${white}"
|
||||||
|
|
||||||
|
apk list -I | awk -v count=0 '
|
||||||
|
/kmod-qca|^nss/ {
|
||||||
|
if(count>0) tab=" "
|
||||||
|
print tab $1
|
||||||
|
count++
|
||||||
|
}'
|
||||||
|
|
||||||
|
echo -ne "${reset}"
|
8
package/kernel/mac80211/files/pbuf.uci
Executable file
8
package/kernel/mac80211/files/pbuf.uci
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
config general opt
|
||||||
|
option auto_scale 'off'
|
||||||
|
# option memory_profile 'off'
|
||||||
|
option memory_profile 'auto'
|
||||||
|
# option memory_profile '1gb'
|
||||||
|
# option memory_profile '512mb'
|
||||||
|
# option memory_profile '256mb'
|
||||||
|
option scaling_governor 'schedutil'
|
182
package/kernel/mac80211/files/qca-nss-pbuf.init
Executable file
182
package/kernel/mac80211/files/qca-nss-pbuf.init
Executable file
@ -0,0 +1,182 @@
|
|||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
# shellcheck disable=3043,3010
|
||||||
|
# Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
||||||
|
# Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
# purpose with or without fee is hereby granted, provided that the above
|
||||||
|
# copyright notice and this permission notice appear in all copies.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
#
|
||||||
|
|
||||||
|
START=95
|
||||||
|
NAME=qca-nss-pbuf
|
||||||
|
|
||||||
|
reload_wifi() {
|
||||||
|
if [ -r /sys/module/ath11k/parameters/nss_offload ]; then
|
||||||
|
nss_offload=$(cat /sys/module/ath11k/parameters/nss_offload 2> /dev/null)
|
||||||
|
[ "$nss_offload" -eq 1 ] && wifi up
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_num_cpus() {
|
||||||
|
local num_cpus
|
||||||
|
num_cpus=$(awk -F': ' '/^processor/ {count++} END {print count}' /proc/cpuinfo)
|
||||||
|
echo "${num_cpus:-1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_sysctl() {
|
||||||
|
[ "$(sysctl -n -e dev.nss.general.redirect)" -eq 0 ] && /etc/init.d/qca-nss-ecm start
|
||||||
|
|
||||||
|
# Running this script multiple times is useless, as extra_pbuf_core0
|
||||||
|
# can't be changed if it is allocated, assume it's already been run.
|
||||||
|
if [ "$(sysctl -n -e dev.nss.n2hcfg.extra_pbuf_core0)" -eq 0 ]; then
|
||||||
|
logger -t $NAME "$board - setting dev.nss.n2hcfg.extra_pbuf_core0=$extra_pbuf_core0"
|
||||||
|
sysctl -w dev.nss.n2hcfg.extra_pbuf_core0="$extra_pbuf_core0" > /dev/null 2>&1
|
||||||
|
else
|
||||||
|
logger -t $NAME "Sysctl key 'extra_pbuf_core0' already set to '""$extra_pbuf_core0""'. Skipping applying wifi nss configs"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sysctl -w dev.nss.n2hcfg.n2h_high_water_core0="$n2h_high_water_core0" > /dev/null 2>&1
|
||||||
|
|
||||||
|
logger -t $NAME "$board - setting dev.nss.n2hcfg.n2h_wifi_pool_buf=$n2h_wifi_pool_buf"
|
||||||
|
sysctl -w dev.nss.n2hcfg.n2h_wifi_pool_buf="$n2h_wifi_pool_buf" > /dev/null 2>&1
|
||||||
|
|
||||||
|
logger -t $NAME "$board - setting dev.nss.n2hcfg.n2h_high_water_core0=$n2h_high_water_core0"
|
||||||
|
sysctl -w dev.nss.n2hcfg.n2h_high_water_core0="$n2h_high_water_core0" > /dev/null 2>&1
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_nss_config() {
|
||||||
|
local auto_scale n2h_queue_limit_core0 n2h_queue_limit_core1 num_cpus
|
||||||
|
local hash_bitmap
|
||||||
|
|
||||||
|
if [ ! -r /sys/module/ath11k/parameters/nss_offload ]; then
|
||||||
|
logger -t $NAME "Module parameter '/sys/module/ath11k/parameters/nss_offload' does NOT exist. Skipping applying wifi nss configs"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
enable_nss_offload=$(cat /sys/module/ath11k/parameters/nss_offload)
|
||||||
|
|
||||||
|
if [ "$enable_nss_offload" -ne "1" ]; then
|
||||||
|
logger -t $NAME -s user.warn "Module parameter 'nss_offload=0'. Skipping applying wifi nss configs"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ ! -d "/proc/sys/dev/nss/rps" ] && {
|
||||||
|
logger -s -t $NAME -p user.error "NSS driver not loaded or disabled! Exiting... "
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
config_load pbuf
|
||||||
|
config_get_bool auto_scale opt auto_scale 0
|
||||||
|
config_get n2h_queue_limit_core0 opt n2h_queue_limit_core0 256
|
||||||
|
config_get n2h_queue_limit_core1 opt n2h_queue_limit_core1 256
|
||||||
|
|
||||||
|
sysctl -w dev.nss.clock.auto_scale="$auto_scale" > /dev/null 2>&1
|
||||||
|
|
||||||
|
sysctl -w dev.nss.n2hcfg.n2h_queue_limit_core0="$n2h_queue_limit_core0" > /dev/null 2>&1
|
||||||
|
sysctl -w dev.nss.n2hcfg.n2h_queue_limit_core1="$n2h_queue_limit_core1" > /dev/null 2>&1
|
||||||
|
|
||||||
|
local memory_profile memtotal board
|
||||||
|
board=$(board_name)
|
||||||
|
|
||||||
|
if memory_profile=$(uci_get pbuf.opt.memory_profile); then
|
||||||
|
case "$memory_profile" in
|
||||||
|
1024 | 1g* | 512 | 512m* | 256 | 256m*)
|
||||||
|
logger -t $NAME "Using custom memory profile - $board"
|
||||||
|
;;
|
||||||
|
off* | false* | disable* | 0)
|
||||||
|
logger -s -t $NAME -p user.warn "NSS pbuf option 'memory_profile=off'. Not running. Enable if you have issues connecting more than 65 clients"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
auto)
|
||||||
|
memtotal=$(awk '/MemTotal/{print $2}' /proc/meminfo)
|
||||||
|
[ "$memtotal" -gt 512000 ] && memory_profile=1024
|
||||||
|
[ "$memtotal" -le 512000 ] && memory_profile=512
|
||||||
|
[ "$memtotal" -le 256000 ] && memory_profile=256
|
||||||
|
logger -t $NAME "Setting n2hcfg values for board: $board"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
logger -s -t $NAME -p user.error "Unknown profile $memory_profile. Choose auto, 1gb, 512mb, or 256mb"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$memory_profile" in
|
||||||
|
# 1GB+ profile
|
||||||
|
1024 | 1g*)
|
||||||
|
extra_pbuf_core0=10000000 n2h_high_water_core0=72512 n2h_wifi_pool_buf=36864 apply_sysctl
|
||||||
|
;;
|
||||||
|
# 512MB profile
|
||||||
|
512 | 512m*)
|
||||||
|
extra_pbuf_core0=3100000 n2h_high_water_core0=30624 n2h_wifi_pool_buf=8192 apply_sysctl
|
||||||
|
;;
|
||||||
|
# 256MB profile
|
||||||
|
256 | 256m*)
|
||||||
|
extra_pbuf_core0=3100000 n2h_high_water_core0=30258 n2h_wifi_pool_buf=4096 apply_sysctl
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
set_stats_disable() {
|
||||||
|
|
||||||
|
local stats_disable
|
||||||
|
config_load pbuf
|
||||||
|
config_get stats_disable opt stats_disable 1
|
||||||
|
|
||||||
|
find /sys/kernel/debug/ath11k -name stats_disable | while read -r stats_file; do
|
||||||
|
stats_msg_prefix="Disabling"
|
||||||
|
[ "$stats_disable" -eq 0 ] && stats_msg_prefix="Enabling"
|
||||||
|
logger -t $NAME -p user.notice "$stats_msg_prefix ath11k stats"
|
||||||
|
echo "$stats_disable" > "$stats_file"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
set_scaling_governor() {
|
||||||
|
|
||||||
|
local scaling_governor num_cpus
|
||||||
|
config_load pbuf
|
||||||
|
config_get scaling_governor opt scaling_governor
|
||||||
|
|
||||||
|
scaling_available_governors=/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
|
||||||
|
|
||||||
|
if [ -r "$scaling_available_governors" ]; then
|
||||||
|
scaling_available_governors=$(cat $scaling_available_governors)
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$scaling_available_governors" ] && [ -n "$scaling_governor" ]; then
|
||||||
|
if [[ "$scaling_available_governors" =~ $scaling_governor ]]; then
|
||||||
|
logger -t $NAME -p user.notice "Setting CPU scaling governor to '$scaling_governor'"
|
||||||
|
num_cpus=$(get_num_cpus)
|
||||||
|
for num in $(seq 0 $((num_cpus - 1))); do
|
||||||
|
echo "$scaling_governor" > "/sys/devices/system/cpu/cpu${num}/cpufreq/scaling_governor"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
logger -t $NAME -p user.error "'$scaling_governor' not available in CPU governors [ $scaling_available_governors ]"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
|
||||||
|
set_scaling_governor
|
||||||
|
set_stats_disable
|
||||||
|
apply_nss_config
|
||||||
|
|
||||||
|
num_cpus=$(get_num_cpus)
|
||||||
|
hash_bitmap="$(((1 << num_cpus) - 1))"
|
||||||
|
sysctl -w dev.nss.rps.hash_bitmap=$hash_bitmap > /dev/null 2>&1
|
||||||
|
reload_wifi
|
||||||
|
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||||
@@ -9919,6 +9919,21 @@ static int ath10k_mac_init_rd(struct ath
|
@@ -9920,6 +9920,21 @@ static int ath10k_mac_init_rd(struct ath
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -22,7 +22,7 @@
|
|||||||
int ath10k_mac_register(struct ath10k *ar)
|
int ath10k_mac_register(struct ath10k *ar)
|
||||||
{
|
{
|
||||||
static const u32 cipher_suites[] = {
|
static const u32 cipher_suites[] = {
|
||||||
@@ -10281,6 +10296,12 @@ int ath10k_mac_register(struct ath10k *a
|
@@ -10282,6 +10297,12 @@ int ath10k_mac_register(struct ath10k *a
|
||||||
|
|
||||||
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
|||||||
if (ret)
|
if (ret)
|
||||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||||
@@ -10297,7 +10297,7 @@ int ath10k_mac_register(struct ath10k *a
|
@@ -10298,7 +10298,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||||
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
||||||
|
|
||||||
#ifdef CPTCFG_MAC80211_LEDS
|
#ifdef CPTCFG_MAC80211_LEDS
|
||||||
|
@ -18,7 +18,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
|||||||
|
|
||||||
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
--- a/drivers/net/wireless/ath/ath10k/mac.c
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
+++ b/drivers/net/wireless/ath/ath10k/mac.c
|
||||||
@@ -10090,7 +10090,6 @@ int ath10k_mac_register(struct ath10k *a
|
@@ -10091,7 +10091,6 @@ int ath10k_mac_register(struct ath10k *a
|
||||||
ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
|
ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA);
|
||||||
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
|
ieee80211_hw_set(ar->hw, QUEUE_CONTROL);
|
||||||
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
|
ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG);
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user