Compare commits

...

214 Commits
v26.02 ... main

Author SHA1 Message Date
Sven-Ola Tuecke
4805f62eb7
spacemit: remove old and unused patch set (#9497)
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-03-07 12:32:56 +01:00
Igor Pecovnik
1b38e53689 add Vulkan support and expand 3D package descriptions
- Add vulkan-tools: Vulkan utilities (vulkaninfo) for testing and debugging
- Add mesa-vulkan-drivers: Vulkan drivers for Mesa GPUs (Panfrost, Lima, Radeon, Intel)
- Expand package definitions with individual inline comments describing each package:
  - libglx-mesa0: Mesa OpenGL extension library for X11
  - mesa-utils: Mesa utilities for OpenGL information and testing
  - mesa-utils-extra: Additional Mesa demonstration programs
  - glmark2 variants: OpenGL 2.0/3.0 and ES 2.0 benchmark suite with Wayland/X11 backends
- Improves code documentation and makes package purposes clear for maintainers

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-03-06 07:45:51 +01:00
Igor Pecovnik
82a2a16f13 rockchip: Disable specific patches in 6.19 series
Disable several patches in the rockchip-6.19 kernel series including:
- PCI Link-Up IRQ handler patches
- USB phy patches
- ASoC and pmdomain fixes
- AV1 media codec patches

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-03-06 06:23:02 +01:00
Austin Lane
ed3ef9d0eb rockchip: Enable Wireguard/TUN module in vendor kernel
Allow VPN apps (wireguard, tailscale, etc) to function on rockchip armhf vendor kernel.
Includes a `rewrite-kernel-config` to fix ordering/etc.
2026-03-06 06:00:31 +01:00
Julian Sikorski
5acad3ad65 Update odroidxu4-current to 6.6.128 2026-03-05 22:02:47 +01:00
StepSecurity Bot
c27048a57d
[StepSecurity] ci: Harden GitHub Actions (#9356)
* [StepSecurity] ci: Harden GitHub Actions

Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>

* imprement coderabbit recommendations

---------

Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>
Co-authored-by: Igor Velkov <325961+iav@users.noreply.github.com>
2026-03-05 13:47:09 +01:00
Igor Velkov
ea547d6e0a (#9400 P1a) lib/functions/bsp/armbian-bsp-cli-deb.sh: convert [ ] to [[ ]]
Replace all 43 POSIX `[ ]` tests with bash `[[ ]]` across five board-side
package hook functions (preinst, postinst_base, postinst_finish,
postinst_update_uboot_bootscript, get_bootscript_info).

Normalise `=` to `==` in the `"$1" == "upgrade"` comparison.
Collapse paired `[ A ] && [ B ]` into a single `[[ A && B ]]` where possible.
Variables that were previously unquoted inside `[ ]` (e.g. ${BOOTSCRIPT_DST},
${BOOTSCRIPT_BACKUP_VERSION}) are now properly quoted.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
3c37a1618c (#9400 P1a) config/sources/families/spacemit.conf: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]`; also quote the unquoted `${2}boot0`
expansion to prevent word-splitting on the path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
fc841b6b74 (#9400 P1a) config/sources/families/rockchip.conf: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]`; also quote the unquoted `$1`
positional parameter inside the file test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
8cb897856f (#9400 P1a) extensions/gxlimg.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on two file existence checks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
1839857f8d (#9400 P1a) extensions/lowmem.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on two file existence checks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
73e69995d8 (#9400 P1a) lib/functions/compilation/kernel-debs.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on one numeric argument-count check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
234f39b6ca (#9400 P1a) lib/functions/bsp/utils-bsp.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on one directory existence check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
3e4de6c02b (#9400 P1a) lib/functions/image/fingerprint.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on one -n test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
b9bf4489a8 (#9400 P1a) lib/functions/image/initrd.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on one string comparison.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
934575ee35 (#9400 P1a) lib/functions/rootfs/distro-agnostic.sh: convert [ ] to [[ ]]
Replace two chained POSIX `[ ]` with a single bash `[[ ]]` using `&&`
inside the double brackets.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
956aa02bf7 (#9400 P1a) lib/functions/rootfs/distro-specific.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on four conditionals: file/path
existence checks and an array length comparison.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
2d1784eff0 (#9400 P1a) lib/functions/configuration/main-config.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on six conditionals: file existence
checks, string comparisons, and -n tests. Also normalise `=` to `==` in
the string comparison.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
7b137e0067 (#9400 P1a) lib/functions/main/config-prepare.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on one array expansion check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
1cafc27959 (#9400 P1a) lib/functions/host/prepare-host.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on one string comparison.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
Igor Velkov
f0201782a4 (#9400 P1a) lib/functions/image/partitioning.sh: convert [ ] to [[ ]]
Replace POSIX `[ ]` with bash `[[ ]]` on three remaining single-bracket
conditionals: two numeric comparisons on sfdisk version (lines 251, 270)
and one -z test with unquoted variable (line 485, also adds quoting).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 13:36:20 +01:00
igorpecovnik
4654894352 Automatic board configs status synchronise 2026-03-05 10:19:04 +01:00
Igor Velkov
ae6735f470
patching: fix #9028 timestamp when multiple patches touch same file (#9489)
If patch B sorts after patch A but has an older mtime, it would
overwrite A's timestamp on the shared file, causing the kernel Makefile
to skip recompilation.

Fix: only call os.utime() when the new mtime is strictly greater than
the file's current mtime.
2026-03-05 10:13:40 +01:00
Igor Velkov
b7af31d65b fix(gitignore): ignore __pycache__ at all depths (#7863)
`/__pycache__/*` only covered the root level. Replace with `**/__pycache__/`
so that generated bytecode directories in lib/tools/ and elsewhere are ignored.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 09:53:15 +01:00
Igor Pecovnik
ae085455e3 dwc2: explicitly force host mode for USB_DR_MODE_HOST
- Add dwc2_force_mode(hsotg, true) call in USB_DR_MODE_HOST case
- Ensures proper host mode initialization for Rockchip platforms
- Applies to both 6.18 and 6.19 kernel patches
2026-03-04 21:44:10 +01:00
Christian Wang
fa61a10ddb Removed un-needed patch for SM8550-6.18; patch has already been updated directly in linux kernel source 6.18.16 2026-03-04 21:43:55 +01:00
skorobkov
40d5a9a8d6
rk3568: add 51.2MHz PLL rate for HDMI (#9477)
* rk3568: add 51.2MHz PLL rate for HDMI
* Fix From/Signed-off values
* Moved patch into 6.18 and 6.19 fodlers
---------
Co-authored-by: Serhii Korobkov <skorobkov78@gmail.com>
2026-03-04 21:20:04 +01:00
Igor Pecovnik
8168703648 i915: fix Dell XPS 13 7390 device ID in quirk patches
- Correct device ID from 0x8a12 to 0x8a52 for Dell XPS 13 7390 2-in-1
- Applies to both 6.18 and 6.19 kernel patches
2026-03-04 21:07:00 +01:00
igorpecovnik
f885c4ba98 Automatic board configs status synchronise 2026-03-04 19:59:56 +01:00
Christian Wang
6c335c78a6 Fixed initramfs hook on odin2 script 2026-03-04 19:57:23 +01:00
Christian Wang
eafa940b2f Changed initrd script firmware pointing to redundant folder 2026-03-04 19:57:23 +01:00
Christian Wang
273f88d3ac fixed the first line description for ayn board configs 2026-03-04 19:57:23 +01:00
Christian Wang
8fc15d2322 Added first line out for ayn related boards 2026-03-04 19:57:23 +01:00
Christian Wang
14fd66ee16 Fixed typo 2026-03-04 19:57:23 +01:00
Christian Wang
f9ccd71549 Changed back ayn-odin2 maintainer; reverted trixie kde-plasma-mobile package list changes; rewrote kernel config and duplicated current and edge config for sm8550 2026-03-04 19:57:23 +01:00
Christian Wang
8f31ba61d7 removed old-linux-sm8550-edge.config 2026-03-04 19:57:23 +01:00
Christian Wang
c9358b443d revert alsa related refactoring 2026-03-04 19:57:23 +01:00
Christian Wang
0be9f3e6dd Added board name, vendor and maintainers to ayn configs 2026-03-04 19:57:23 +01:00
Christian Wang
bb72cffe68 Added ayn-odin2mini board config;
Fixed WITH_GRUB flag;
2026-03-04 19:57:23 +01:00
Christian Wang
6d0e2575a2 Added configs ayn-odin2portal, ayn-thor that inherit from ayn-odin2; Added WITH_GRUB flag 2026-03-04 19:57:23 +01:00
Christian Wang
6818c6ec29 Test removal of MESA 2026-03-04 19:57:23 +01:00
Christian Wang
997f2fa6d8 Removed sm8550-6.12, sm8550-6.13 patches; updated sm8550 conf to use 6.18 as current and edge; removed redundant ayn-odin2/portal/thor configs and combined into 1 config with BOARD_VARIANT switch 2026-03-04 19:57:23 +01:00
Christian Wang
5cc8d2e86e Added kernel configs to enable android related modules to support waydroid 2026-03-04 19:57:23 +01:00
Christian Wang
87b4cb9b83 Set CONFIG_ANDROID_BINDER_IPC=y in sm8550 edge config 2026-03-04 19:57:23 +01:00
Christian Wang
b0fc8845db Added ayn thor config file 2026-03-04 19:57:23 +01:00
Christian Wang
c1f9a79b02 Added ayn-odin2-portal config 2026-03-04 19:57:23 +01:00
Christian Wang
60002ddb6b Updated odin2-preset-firstrun.sh to include odin2-scripts installer 2026-03-04 19:57:23 +01:00
Christian Wang
8517fccf21 Also install mesa drivers for trixie in ayn-odin2-grub, ayn-odin2-portal-grub, ayn-odin2 configs 2026-03-04 19:57:23 +01:00
Christian Wang
0884d1cb9e Updated odin2, odin2-portal, odin2-grub firmware config scripts 2026-03-04 19:57:23 +01:00
Christian Wang
c0f9d07e01 Added various patches carried over from sm8550-6.13:
- Battery name patch
- SDHCI Driver patch

Added patch to allow aarch64 to do 32bit syscalls (this is helpful for
emulation inputs)
2026-03-04 19:57:23 +01:00
Christian Wang
f785a6d9fd Added SM8550 Patches from ROCKNIX and also kernel config from ROCKNIX
https://github.com/ROCKNIX/distribution

From ROCKNIX/devices/SM8550/linux/linux.aarch64.conf

From ROCKNIX/devices/SM8550/patches/linux/
- 0001-msm-adreno-enable-A32.patch
- 0002-qcom-dispcc-sm8550-Fix-disp_cc_mdss_mdp_clk_src.patch
- 0003_drm-msm-dpu-Set-vsync-source-irrespective-of-mdp-.patch
- 0030-input-rmi4-add-reset-gpio.patch
- 0031_input--Add-driver-for-RSInput-Gamepad.patch
- 0033_leds--Add-driver-for-HEROIC-HTR3212.patch
- 0036_ASoC--qcom--sc8280xp-Add-support-for-Primary-I2S.patch
- 0042_mmc--sdhci-msm--Toggle-the-FIFO-write-clock-after-.patch
- 0047_ASoC--codecs--aw88166--AYN-Odin2-Specific-modifica.patch
- 0050_pmk8550-pwm.patch
- 0051-gpu-panel-add-Pocket-ACE-panel-driver.patch
- 0052-gpu-panel-add-Pocket-DMG-panel-driver.patch
- 0053-add-hynitron-touchscreen.patch
- 0053-edt-ft5x06-add-no_regmap_bulk_read-option.patch
- 0053-gpu-panel-add-Pocket-DS-lower-panel-driver.patch
- 0054_sn3112-pwm-driver.patch
- 0055_Synaptics-TD4328-LCD-panel.patch
- 0056_Xm-Plus-XM91080G-panel.patch
- 0057_Chipone-ICNA35XX-panel.patch
- 0057_DDIC-CH13726A-panel.patch
- 0058_AYN-Odin2-Mini--backlight.patch
- 0059_AYN-Odin2-Mini--hynitron--cstxxx.patch
- 0060-Add-Silergy-SY7758-backlight-driver.patch
- 0061-regulator-add-sgm3804-i2c-regulator-for-panel-power-.patch
- 0062_rsinput--regulator.patch
- 0070-drm-msm-remove-DRIVER_SYNCOBJ_TIMELINE.patch
- 0071-HACK-fix-usb-boot-hang.patch
- 0100-SM8550-Fix-L2-cache-for-CPU2-and-add-cache-sizes.patch
- 0101-SM8550-Add-DDR-LLCC-L3-CPU-bandwidth-scaling.patch
- 0102-20240424_wuxilin123_ayn_odin_2_support.patch
- 0103_arm64--dts--qcom--sm8550--add-UART15.patch
- 0104-drm-panel-Add-Retroid-Pocket-6-panel.patch
- 0120-20250728_konradybcio_gpu_cc_power_requirements_reality_check.patch
- 0122-interconnect__qcom__sm8550__Enable_QoS_configuration.patch
- 0154-dts-qcom-sm8550-add-opp-acd-level.patch
- 0200_arm64--dts--qcom--Add-AYN-QCS8550-Common.patch
- 0201_arm64--dts--qcom--Add-AYN-Odin2.patch
- 0202_arm64--dts--qcom--Add-AYN-Odin2-Mini.patch
- 0203_arm64--dts--qcom--Add-AYN-Odin2-Portal.patch
- 0204_arm64--dts--qcom--Add-AYN-Thor.patch
- 0210_arm64--dts--qcom--Add-AYANEO-Pocket-Common.patch
- 0211_arm64--dts--qcom--Add-AYANEO-Pocket-ACE.patch
- 0212_arm64--dts--qcom--Add-AYANEO-Pocket-DMG.patch
- 0213_arm64--dts--qcom--Add-AYANEO-Pocket-EVO.patch
- 0214_arm64--dts--qcom--Add-AYANEO-Pocket-DS.patch
- 0500-ROCKNIX-set-boot-fanspeed.patch
- 0501-ROCKNIX-fix-wifi-and-bt-mac.patch
- 0503-ROCKNIX-battery-name.patch
- v5_20251120_quic_utiwari_crypto_qce_add_runtime_pm_and_interconnect_bandwidth_scaling_support.patch
2026-03-04 19:57:23 +01:00
Christian Wang
234d650748 Added odin2-preset-firstrun.sh extension to set user accounts and also download helper script folder from github 2026-03-04 19:57:23 +01:00
Christian Wang
9298ab108a Added sm8550-6.13 patches and changed sm8550 config to support 6.13 as current and 6.12 as old 2026-03-04 19:57:23 +01:00
Gennro
516b12db8f Added folder for Odin2portal Linuxloader ABL to have the correct DTB 2026-03-04 19:57:23 +01:00
FantasyGmm
e2c817abd3 Added ayn-odin2-grub.csc, ayn-odin2-portal-grub.csc, modified Mesa PPA dependency on existing ayn-odin2.csc
Co-authored-by: Squishy123 <christian.gnaw@gmail.com>
2026-03-04 19:57:23 +01:00
EvilOlaf
70ec868367 rockchip64: remove patches upstreamed with 6.18.16 2026-03-04 18:59:36 +01:00
EvilOlaf
9ba4563ad9 rockchip64: remove patches upstreamed in 6.19.6 2026-03-04 18:59:36 +01:00
EvilOlaf
5f24a55eb8 rockchip64: fix broken patch for 6.19.6 2026-03-04 18:59:36 +01:00
TheSnowfield
89fc605d55
Fix: SakuraPi RK3308B WLAN broken (#9478)
* SakuraPi RK3308B: Move to official support

* Sakura Pi RK3308B: Use mainline dts instead

* Sakura Pi RK3308B: Fix brcm wlan broken due to sdio freq was set too high

* Sakura Pi RK3308B: Fix vop panel outpout and spidev
2026-03-04 21:12:42 +08:00
Werner
c146cc7680 bump 7.0 to rc2 2026-03-04 13:39:52 +01:00
EvilOlaf
76c67329a4 meson64: rewrite kernel config to 7.0 2026-03-04 05:28:00 +01:00
EvilOlaf
7d81bf9ac0 meson64: rewrite patches against 7.0-rc1 2026-03-04 05:28:00 +01:00
EvilOlaf
60475536b8 meson64: disable broken wifi driver
just like with rockchip64-7.0
2026-03-04 05:28:00 +01:00
EvilOlaf
a8a9e28950 meson64: fix patch causing build failure 2026-03-04 05:28:00 +01:00
EvilOlaf
74d0bf7f5d meson64: adjust patch to work with 7.0 2026-03-04 05:28:00 +01:00
EvilOlaf
1c6b281af4 meson64: remove two upstreamed patches 2026-03-04 05:28:00 +01:00
EvilOlaf
af43ef0c5c meson64: bump edge to 7.0 2026-03-04 05:28:00 +01:00
EvilOlaf
07903fa62f meson64: move patchset to 7.0 2026-03-04 05:28:00 +01:00
kskshaf
ca016e89b7 rockchip-rk3566-spi3-m0-cs0-spidev: fix spidev driver binding
* Use "armbian,spi-dev" compatible string instead of "rockchip,spidev"
as it is already registered in the spidev driver's OF match-table,
ensuring the driver binds correctly at runtime.
2026-03-04 05:27:21 +01:00
kskshaf
ff481f855e OrangePi 3B: Add device tree overlay files for OrangePi 3B
* Including support for I2C, PWM, SPI, and UART devices.
* Since UART2 is reserved by default for serial console debugging, the uart2-m0 overlay is not added.
* See more overlays: [orangepi-xunlong/linux-orangepi](https://github.com/orangepi-xunlong/linux-orangepi/tree/orange-pi-5.10-rk35xx/arch/arm64/boot/dts/rockchip/overlay)
2026-03-04 05:27:21 +01:00
igorpecovnik
f5228551a0 Automatic board configs status synchronise 2026-03-04 05:24:57 +01:00
dependabot[bot]
22aba89677 build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 05:21:42 +01:00
dependabot[bot]
c1721bf017 build(deps): bump actions/download-artifact from 7 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 05:21:14 +01:00
dependabot[bot]
8e4a313b1b build(deps): bump crazy-max/ghaction-import-gpg from 6 to 7
Bumps [crazy-max/ghaction-import-gpg](https://github.com/crazy-max/ghaction-import-gpg) from 6 to 7.
- [Release notes](https://github.com/crazy-max/ghaction-import-gpg/releases)
- [Commits](https://github.com/crazy-max/ghaction-import-gpg/compare/v6...v7)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-import-gpg
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 05:20:37 +01:00
dependabot[bot]
369109c407 build(deps): bump crazy-max/ghaction-github-labeler from 5 to 6
Bumps [crazy-max/ghaction-github-labeler](https://github.com/crazy-max/ghaction-github-labeler) from 5 to 6.
- [Release notes](https://github.com/crazy-max/ghaction-github-labeler/releases)
- [Commits](https://github.com/crazy-max/ghaction-github-labeler/compare/v5...v6)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-github-labeler
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-04 05:03:31 +01:00
Shlomi Marco
495d1ba388 rockchip64: nanopi-zero2: fix patch authorship and add 6.19 PCIe patch
- Replace generic Armbian authorship with proper From/Signed-off-by
- Add PCIe enablement patch for 6.19 (edge) kernel
2026-03-02 17:03:00 +01:00
Shlomi Marco
1a18887cb5 rockchip64-6.19: nanopi-zero2: enable PCIe for M.2 WiFi slot
Copy the PCIe enablement patch to the 6.19 (edge) kernel archive so
M.2 WiFi works on both current and edge branches.
2026-03-02 17:03:00 +01:00
Shlomi Marco
8babf18aac rockchip64-6.18: nanopi-zero2: enable PCIe for M.2 WiFi slot
Enable the PCIe Gen2x1 controller and combo PHY on the NanoPi Zero2
to support the M.2 Key-E 2230 slot used for WiFi/BT cards (e.g. Intel
AX210).

The reset GPIO (gpio1 RK_PA2) and pinctrl (pciem1_pins) match the
vendor kernel device tree.

Note: Intel AX210 requires iwlwifi firmware >= v89
(iwlwifi-ty-a0-gf-a0-89.ucode) which may not be included in minimal
images. Install linux-firmware or armbian-firmware-full if needed.
Firmware available at:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/

Tested on hardware with Intel AX210 on kernel 6.18 (current branch).
2026-03-02 17:03:00 +01:00
Shlomi Marco
7fb01ef6f6 nanopi-zero2: enable current and edge kernel support
Enable mainline kernel (current/edge) for the NanoPi Zero2 (RK3528):

- Add current,edge to KERNEL_TARGET
- Override BOOT_FDT_FILE to rk3528-nanopi-zero2.dtb for mainline branches
  (vendor kernel uses rk3528-nanopi-rev01.dtb)
- Set SERIALCON=ttyS0 and patch boot script for mainline, as RK3528 debug
  UART is UART0 (ttyS0), not UART2 (ttyS2) like other RK35xx SoCs

Tested on hardware with kernel 6.18 (current branch).
2026-03-02 17:03:00 +01:00
Patrick Yavitz
8b23c940e8 OrangePi RV2: Fixup SDIO case BRANCH target.
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-03-02 17:02:32 +01:00
Patrick Yavitz
7ff007c24f OrangePi R2S/RV2: Change KERNEL_TARGET to legacy and current
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-03-02 17:02:32 +01:00
Patrick Yavitz
15174efc6d SpacemiT: Add linux-7.0.y patch set
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-03-02 17:02:32 +01:00
Patrick Yavitz
56a90c4256 SpacemiT: Add new edge "mainline" defconfig
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-03-02 17:02:32 +01:00
Patrick Yavitz
c77277124d SpacemiT: Add legacy to KERNEL_TARGET var
BananaPi BPI-F3
SpacemiT MusePi Pro

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-03-02 17:02:32 +01:00
Patrick Yavitz
5d9b81cf18 SpacemiT: Update branch options "edge will now pull mainline."
Legacy, 6.6.y.
Current, 6.18.y.
Edge, 7.0.y.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-03-02 17:02:32 +01:00
Igor Pecovnik
f15c115b1e meson: freeze current kernel at 6.12.28 and fix HDMI PHY frequency limit
- Freeze KERNELBRANCH at v6.12.28 for current branch
- Fix max_hdmi_phy_freq value from 1650000000 to 1650000 Hz

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-03-02 17:01:34 +01:00
EvilOlaf
2653bd6f5b orangepi5: rewrite uboot patches against v2026.04-rc3 2026-03-02 16:15:15 +01:00
Nikita Maslo
9c10f33525 unset QEMU_CPU for aml_image_packer 2026-03-02 13:12:07 +03:00
Igor Pecovnik
2c1fe4b20e rock-5b-plus: add current kernel to build targets 2026-03-02 09:45:27 +01:00
Igor Pecovnik
bf95e791b7 rock-5t: add current kernel to build targets 2026-03-02 08:55:15 +01:00
EvilOlaf
b212a70592 rewrite kernel config
for the sake of completeness
2026-03-02 05:38:17 +01:00
EvilOlaf
6868e1c971 orangepi5: fix slow boot on current kernel
https://paste.armbian.com/uhomuwajos (didn't have a 'before' log for 6.18.y handy but the issue is the same).
https://paste.armbian.com/ocarimopey after the change. Interestingly this seem to be an issue for quite a while since the change was introduced in Jan 2024: https://github.com/armbian/build/pull/6202
2026-03-02 05:38:17 +01:00
Mecid
efb4c684c6 Rename linux-genio-collabora.config to linux-genio-edge.config 2026-03-01 10:16:16 +01:00
Mecid Urganci
210e40b404 Genio: Rename collabora branch to edge for alignment 2026-03-01 10:16:16 +01:00
Igor
7972ddbc4c
Fix kernel 6.18/6.19 patch compilation and cleanup upstreamed patches (#9447)
* uefi-arm64-6.18: fix stmmac Phytium driver compilation

Remove obsolete 'has_gmac' member assignment from struct plat_stmmacenet_data.
The field was removed in newer kernels as MAC version detection is now
handled automatically from hardware registers.

Fixes compilation error:
  error: 'struct plat_stmmacenet_data' has no member named 'has_gmac'

* meson64-6.19: drop upstreamed odroid regulator boot-on patch

The Odroid HC4 regulator-boot-on fix has been upstreamed in kernel 6.19.

Original patch:
  Fixes: 164147f094ec ("arm64: dts: meson-sm1-odroid-hc4: add regulators")
  Fixes: 45d736ab17b4 ("arm64: dts: meson-sm1-odroid: add 5v regulator gpio")
  Fixes: 1f80a5cf74a6 ("arm64: dts: meson-sm1-odroid: add missing enable gpio")
  Fixes: 88d537bc92ca ("arm64: dts: meson: convert meson-sm1-odroid-c4 to dtsi")

* meson64-6.18: update meson-axg mmc phase configuration

Add amlogic,mmc-phase properties to sd_emmc_b and sd_emmc_c nodes
for proper MMC timing configuration on Amlogic AXG SoCs.

* Disable Pythium onboard nic driver
2026-03-01 01:19:43 +01:00
Igor Velkov
1b74748622
Extension: ccache-remote — shared compilation cache via Redis/HTTP (#9369)
* add hook to allow customizing before kernel make env creation
* Hook runs in docker_cli_prepare_launch() just before DOCKER_EXTRA_ARGS
is processed, allowing extensions to add Docker arguments with a more
descriptive hook name than add_host_dependencies.
* Extension: ccache-remote

Enables ccache with remote Redis storage for sharing compilation cache across build hosts.

Features:
- Auto-discovery via Avahi/mDNS (ccache.local hostname)
- Explicit Redis server configuration via CCACHE_REMOTE_STORAGE
- Build statistics display at end of build (hit/miss/error rates)
- Support for both Docker and native builds
- Hooks for kernel and u-boot compilation environments

Documentation includes server setup instructions with security warnings,
client mDNS configuration, and cache sharing requirements.


* uboot: fix ccache environment and add extension hook

U-Boot build uses `env -i` which clears all environment variables.
CCACHE_DIR and CCACHE_TEMPDIR were not explicitly passed to make,
unlike kernel build (kernel-make.sh). This caused ccache to use
default directory instead of configured Armbian one, breaking
cache statistics and shared cache functionality.

Changes:
- Add CCACHE_DIR and CCACHE_TEMPDIR to uboot_make_envs
- Add uboot_make_config hook for extensions (similar to kernel_make_config),
  allowing modification of environment variables before compilation

* add long list of allowed ccache-related env vars
* set permissions to ccache files RW for everyone if cache not private
* ccache: add ccache_post_compilation hook for extensions
* ccache-remote: use ccache_post_compilation hook instead of cleanup handler

Show remote ccache stats after each compilation (kernel, uboot) via hook,
instead of once at the end via cleanup handler. Stats now shown even on
build failure.

* ccache: show stats with safe arithmetic
* ccache/uboot: improve code comments per review feedback

- uboot.sh: clarify ARMBIAN=foe workaround for dual-compiler scenario
- ccache-remote.sh: document that CCACHE_REDIS_CONNECT_TIMEOUT must be
  set before extension loads

* ccache-remote: mask storage URLs in logs

Mask CCACHE_REMOTE_STORAGE when emitting Docker env debug logs.

* ccache-remote: extract ccache_inject_envs() helper to deduplicate passthrough loops

Extract ccache_inject_envs() helper to deduplicate identical passthrough
loops in kernel and uboot make config hooks.

ccache-remote: rename functions to follow project naming conventions

Rename get_redis_stats and mask_storage_url to ccache_get_redis_stats
and ccache_mask_storage_url to follow project naming conventions.

ccache-remote: mask credentials in debug log output for passthrough loops

Mask CCACHE_REMOTE_STORAGE value through ccache_mask_storage_url() before
logging in both Docker env and make env passthrough loops to avoid leaking
credentials into build logs.

* ccache-remote: add HTTP/WebDAV backend and DNS discovery
* ccache-remote: move extension script into directory layout
* ccache-remote: add server setup docs and config files
* ccache-remote: validate Redis credentials in URLs
* ccache-remote: document Redis auth options and safe passwords

Add separate insecure config example for trusted networks.

Recommend URL-safe hex passwords and update setup docs.

* ccache-remote: improve Docker loopback handling and IPv6 host parsing
2026-03-01 01:18:35 +01:00
Mecid Urganci
3f22500237 qcs6490: Use 6.18.2 from radxa 2026-03-01 01:16:55 +01:00
Igor Velkov
986f77495b drop deprecated KERNEL_UPGRADE_FREEZE feature
Was only used once (orangepi5pro.csc) and has been deprecated.
Remove the implementation, the board config, and the README entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 01:15:10 +01:00
Igor Velkov
ac9d08cc97 (#9400 P3c) armbian-bsp-cli-deb: safe array assignment from word splitting
Replace unquoted array assignment `arr=(${var})` with
`IFS=' ' read -ra arr <<< "${var}"` to prevent glob expansion.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 01:15:10 +01:00
Igor Velkov
cb3bedf527 (#9400 P3b) patching: add missing -r flag to read
Other read calls in the same file already use -r.
Without -r, backslashes in user input are interpreted as escape characters.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 01:15:10 +01:00
igorpecovnik
6c44ac5732 Automatic board configs status synchronise 2026-02-28 22:30:57 +01:00
Igor Velkov
4222417736 extensions: add kernel-rust extension for Rust support in kernel builds
Add extension that enables CONFIG_RUST in kernel menuconfig and
configures the build environment (rustc, rustfmt, bindgen, rust-src)
using versioned APT packages from noble-security/noble-updates.

Handles env -i in run_kernel_make_internal by passing tool paths
via RUSTC, RUSTFMT, BINDGEN make params and RUST_LIB_SRC env var.

Includes optional RUST_KERNEL_SAMPLES=yes for building sample
Rust modules (rust_minimal, rust_print, rust_driver_faux) as a
toolchain smoke test.

Tested: kernel 6.19 build for rockchip64 on aarch64, both with
and without Docker.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 22:30:37 +01:00
EvilOlaf
9b2497deb6 zeropi: possible fix for booting 2026-02-28 22:29:33 +01:00
Igor Velkov
a0123f5d7a fix(kernel-headers): preserve build-time autoconf.h across postinst olddefconfig (#9425)
При упаковке linux-headers скомпилированные бинарники из scripts/ удаляются,
так как они собраны под хост сборки, а не под целевую машину (типичный случай
кросс-сборки). Поэтому postinst при установке пакета пересобирает их нативно,
предварительно запустив `make olddefconfig`.

Однако olddefconfig не только подготавливает окружение — он заново вычисляет
конфигурацию ядра, проверяя тулчейн, доступный на целевом хосте при установке.
Если инструменты, использовавшиеся при сборке ядра, на целевой машине отсутствуют
или имеют другую версию, olddefconfig молча отключает соответствующие CONFIG_*
опции (например, CONFIG_CC_IS_CLANG, CONFIG_LTO_CLANG, CONFIG_DEBUG_INFO_BTF).

В результате установленный пакет заголовков описывает не то ядро, которое
реально собрано и работает, а то, которое можно было бы собрать на данном хосте.

Это затрагивает:
- include/generated/autoconf.h (используется препроцессором C)
- include/config/auto.conf + маркер-файлы include/config/ (используются
  make-правилами kbuild)
- include/generated/rustc_cfg (используется Rust-сборками)

Все эти файлы — артефакты сборки и должны описывать скомпилированное ядро,
а не возможности хоста установки.

Исправление: при упаковке сохраняем сайдкар-тарбол с build-time версиями
include/config/ и include/generated/{autoconf.h,rustc_cfg}; восстанавливаем
его в postinst в самом конце, после всех make-шагов.

Fixes: https://github.com/armbian/build/issues/9425

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 22:29:08 +01:00
RichN
c980f497eb Add new wallpapers for Armbian
Add new wallpapers and optimize them using tinypng.
2026-02-28 22:28:49 +01:00
Milivoje Legenovic
d68d84ae68 Odroid-M2: Enable HDMI audio
Signed-off-by: Milivoje Legenovic <m.legenovic@gmail.com>
2026-02-28 22:28:39 +01:00
EvilOlaf
8821837c01 orangepi5: bump u-boot to v2026.04-rc3 2026-02-28 22:28:29 +01:00
retro98boy
54ade91808 rockchip64: Drop upstreamed i2s-tdm patch 2026-02-28 08:42:08 +01:00
Ricardo Pardini
12f4e9f91b rockchip64-6.19: mekotronics-r58x-pro: fix LED swap
- LED on gpio3 RK_PC5 is actually the WIFI led (not 4G)
- 4G LED is routed into the mini-pci slot and not SoC-controllable
2026-02-25 07:49:59 -03:00
Ricardo Pardini
08d821437c rockchip64-6.19: mekotronics-r58x-pro: drop duplicate usb_host0_xhci & fix USB3 Type-A port
- that was for otg/ums bringup
- now `-u-boot.dts` does it instead
- add missing usbdp_phy0 with lane mux split with DP (type-c/DP)
- drop DP mux from usbdp_phy1 (which should just be type-a and no DP)
2026-02-25 07:49:59 -03:00
Ricardo Pardini
6d16c7b1ac mekotronics-r58x-pro: add systemd service/timer for LCD clock
- very simple once kernel driver + DT is in place
2026-02-25 07:49:59 -03:00
Ricardo Pardini
8f86f24f0f rockchip64-6.19: mekotronics-r58x-pro: add vk2c21 DT node
- for the LCD, using new bit-banging driver
2026-02-25 07:49:59 -03:00
Ricardo Pardini
68254a8cac rockchip64-6.19/edge: CONFIG_LCD_VK2C21=m
- for the LCD on mekotronics-r58x-pro, using new bit-banging driver
2026-02-25 07:49:59 -03:00
Ricardo Pardini
5ee03afdb5 rockchip64-6.19: auxdisplay: add a driver for Vinka VK2C21 Segment LCD Controller
- for the Mekotronics R58X Pro LCD
- The Vinka VK2C21 (and pin-compatible VK2C21A/VK2C21B) is a memory-mapping
  segment LCD controller that communicates over I2C.  It can drive up to
  128 segments (e.g. 32 SEG × 4 COM in 1/3 bias mode).
- Some SBCs wire this chip to GPIO pins without I2C pull-up
  resistors, making the standard i2c-gpio (open-drain) driver unusable.
  This driver therefore bit-bangs I2C in push-pull mode directly via GPIO,
  requiring no external pull-ups.
- extra glyphs and fix for top-bar

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2026-02-25 07:49:59 -03:00
Ricardo Pardini
692583a57c mekotronics-r58x-pro: mainline u-boot v2026.04-rc2; mainline 6.19 kernel (edge)
- with its own defconfig (identical to r58x-4g)
- own DT symlink
- fix the vendor DT (was missing the `maizhuo` suffix - no dial gpio keys)
2026-02-25 07:49:59 -03:00
Ricardo Pardini
a1d85a2a3a rockchip64-6.19: mekotronics-r58x-pro: add gpio-keys for the big dial in the front 2026-02-25 07:49:59 -03:00
Ricardo Pardini
4db14082b8 rockchip64-6.19: mekotronics-r58x-pro: model/compatible 2026-02-25 07:49:59 -03:00
Ricardo Pardini
5c63ed9b3c rockchip64-6.19: mekotronics-r58x-pro: copy from r58x-4g
- it is very similar
- new DT name, as I will submit those to linux-rockchip eventually
2026-02-25 07:49:59 -03:00
EvilOlaf
ce2506ddf1 uefi-x86-current: rewrite patches 2026-02-24 15:01:53 +01:00
EvilOlaf
11823ab0d1 meson64-current: rewrite patches 2026-02-24 15:01:53 +01:00
EvilOlaf
20050860f0 rockchip64-edge: rewrite patches 2026-02-24 15:01:53 +01:00
EvilOlaf
15393d6dc6 rockchip64-current: rewrite patches 2026-02-24 15:01:53 +01:00
Patrick Yavitz
57694c740d Set devtype devnum and distro_bootpart var when booting from nvme
This will ensure future boot scripts should function correctly.

Tested-on: BPI-F3 and MusePi Pro
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-24 08:17:39 -05:00
Patrick Yavitz
a4de6bfd42 SpacemiT: Quiet MBR support
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-24 08:17:39 -05:00
Patrick Yavitz
0d8faf47da SpacemiT: Update OpenSBI/U-Boot to k1-bl-v2.2.9-release
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-24 08:17:39 -05:00
SuperKali
a8977dcd7d kernel: centralize netfilter legacy xtables config for all families
Add version-gated NETFILTER_XTABLES_LEGACY and BRIDGE_NF_EBTABLES_LEGACY
support in armbian-kernel.sh for kernels >= 6.18. Also add missing
ebtables table modules (BRIDGE_EBT_BROUTE, BRIDGE_EBT_T_FILTER,
BRIDGE_EBT_T_NAT) unconditionally to the nftables config function.

This ensures all hardware families automatically get legacy xtables
support when building kernels 6.18+, fixing Docker and Proxmox
firewall breakage without requiring per-family config changes.
2026-02-24 04:46:50 +01:00
chainsx
fdc58def79 station-m2: fix sata 2026-02-23 23:05:36 +01:00
Austin Lane
36a50552b5 rockchip-vendor: Enable spidev support
Simple change, enable spidev support on `rockchip` (armhf) vendor kernel.
2026-02-23 23:02:31 +01:00
dependabot[bot]
8d03034706 build(deps): bump oras from 0.2.39 to 0.2.41
Bumps [oras](https://github.com/oras-project/oras-py) from 0.2.39 to 0.2.41.
- [Release notes](https://github.com/oras-project/oras-py/releases)
- [Changelog](https://github.com/oras-project/oras-py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oras-project/oras-py/compare/0.2.39...0.2.41)

---
updated-dependencies:
- dependency-name: oras
  dependency-version: 0.2.41
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 23:01:54 +01:00
retro98boy
79910a5dd7 rockchip64: Fix RTL8211 phy LED dts setting patch 2026-02-23 23:00:14 +01:00
Martin Schmiedel
59b45120eb MBa8MPxL: update linux and u-boot
- update linux to 6.18.y
- use latest tq-uboot

Signed-off-by: Martin Schmiedel <martin.schmiedel@tq-group.com>
2026-02-23 22:59:11 +01:00
dependabot[bot]
0e70c1859f build(deps): bump tj-actions/changed-files from 47.0.2 to 47.0.4
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 47.0.2 to 47.0.4.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](8cba46e29c...7dee1b0c15)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-version: 47.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 22:58:31 +01:00
dependabot[bot]
df7172e664 build(deps): bump rich from 14.3.2 to 14.3.3
Bumps [rich](https://github.com/Textualize/rich) from 14.3.2 to 14.3.3.
- [Release notes](https://github.com/Textualize/rich/releases)
- [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Textualize/rich/compare/v14.3.2...v14.3.3)

---
updated-dependencies:
- dependency-name: rich
  dependency-version: 14.3.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-23 22:57:40 +01:00
Igor Pecovnik
e21f0fd793 Khadas VIM1S/VIM4 disable wayland and default to X as its fairly unstable 2026-02-23 12:35:50 +01:00
Timothy Parys
aaad48ef6b Properly handle git submodules when GIT_FIXED_WORKDIR is set 2026-02-23 00:51:03 +01:00
Vitalij Borissow
185f7978bf Add IOMMU GFP_DMA32 patch for RK3568 8GB systems
Force GFP_DMA32 allocation for Rockchip IOMMU v2 page tables to fix
NPU operation on systems with >4GB RAM. Without this patch, IOMMU
allocates page tables above 4GB which the NPU cannot access, causing
DMA mapping failures.

Tested on ODROID-M1 with 8GB RAM, kernel 6.18.9-current-rockchip64.
2026-02-23 00:40:34 +01:00
Igor Pecovnik
b62e9fa94e Armbian: improve APT pinning for Firefox/Thunderbird
- Change Pin from origin domain to release origin for more reliable pinning
- Improve comments to clarify priority behavior (1001 prevents downgrades)
- Add explanatory comments for Ubuntu repository deprioritization
- Fix typo in upstream comment

This ensures Firefox and Thunderbird are consistently installed from the
Armbian repository with proper pinning rules.
2026-02-22 17:19:00 +01:00
Aurimas Niekis
e832bb3129 feat(drivers): add RTL8812EU/RTL8822EU wireless driver for EXTRA_WIFI
Integrate the libc0607/rtl88x2eu-20230815 out-of-tree driver into the build
system under EXTRA_WIFI for kernels >= 3.14 and < 6.19.

- Fetch pinned upstream commit ccb31f4ee346d5c2dd45475d276171b2f8de8350
- Install sources under drivers/net/wireless/rtl8822eu
- Enable AP and P2P modes in driver Makefile
- Hook into kernel Kconfig and Makefile via CONFIG_RTL8822EU

Tested working on `6.12.74-current-sunxi` and `6.6.75-legacy-sunxi`.
2026-02-22 16:59:49 +01:00
Mecid
77f919f6cd
Rock-4D: Add Edge + RK3576 Mainline U-Boot (with UFS support) (#9421)
* Rock-4D: Edge (u-boot and kernel)

* RK3576: Mainline u-boot ufs boot enablement patches

* Rock-4D: Use Mainline u-boot 2026.04-rc2

* Rock-4D: Update KERNEL_TEST_TARGET to edge

* Rock-4D: Use Mainline u-boot on vendor and edge

* Remove vendor branch check for mainline uboot
2026-02-20 21:55:32 +01:00
Igor Pecovnik
7a42186d40 KDE Neon: add konsole terminal emulator to base packages
Add konsole to the kde-neon base package list for a complete terminal experience.

Also add bluedevil, kscreen, pipewire-audio, pipewire-pulse, and wireplumber,
and sort the entire package list alphabetically.
2026-02-20 20:39:42 +01:00
Sven-Ola Tuecke
db44df7501 Spacemit: fix high CPU load caused by rCPU remoteproc communication kthread
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
4367b85577 Spacemit: prevent uninitialized thread shutdown (triggerd by the rabbit)
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
77477699b2 OrangePi-RV2/R2V: fix copy/paste error in DT model string
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
1a129fb721 Spacemit: rename patch comment to match patch content
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
c630907ac6 Spacemit: HDMI audio fix, set highest realtime prio
Shoud prevent possible error in sched_setscheduler() says the rabbit.

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
27dcadab8f Spacemit: re-add wrongly removed OrangePi RV2 flash chip
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
b99f4bc53b Spacemit: revert XMC flash chip addon, use .config instead 2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
6326273663 Patch fixup to prevent .orig
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
99ac3ea2d0 OrangePi-RV2/R2S: synchronize Eth/RGMII unit-address in DT
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
15cc508714 OrangePi-RV2: Completely disable unused pwr-gpios
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
07ec4e7b62 RiscV: added riscv64 to trixie/mate desktops
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
71736aaa11 Spacemit: HDMI audio fix: revert busy-loop removal, apply 1 sec timeout
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
d187d72362 Spacemit: add a license to the esos.elf RTOS firmware
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
bfb16c7a7b OrangePi-RV2: fix internal audio, activate headphone gpio
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
4612a15fb2 Revert "Spacemit: temporarly revert kthread removal to fix HDMI audio"
This reverts commit 99ad08839e.
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
e873ba6cc9 Spacemit: temporarly revert kthread removal to fix HDMI audio
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
211f30dfbc Spacemit: enable CAN and IR (sync up to OrangePi RV2)
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
eeeae16755 Spacemit: fix HDMI audio (and rCPU communication)
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
0b796f314d OrangePi-RV2: fix internal audio
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
0677c69089 General: do not use PCIe ASPM with Samsung 9b1 NVME
Note: have a 128Gb 2030 NVME that returns read errors with Active State PM

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
d4c5fb249f OrangePi-R2S: Realtek 8125 Ethernet support
Driver for Ethernet/PCI as found with Xunlong/Ky on the
OrangePi RV2/R2S source tree. Added as kernel patch since
the current spacemit family has conflicting changes with
rtl8852bs when enabling EXTRAWIFI=yes

Note: on the Xunlong/Ky tree, there is also a realtek_pgtool/
subdir that compiles a pgdrv.ko. B/c this does not have a
license indication, is only needed e.g. for MAC address
programming of efuse / eeprom, and generally does not look
required this is ommited here. For details, you may refer
to https://github.com/redchenjs/rtnicpg

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
2be970ac84 OrangePi-RV2: Speedup for fast SD cards with the Linux MMC kernel driver.
Disable U-Boot CONFIG_MMC_UHS_SUPPORT otherwise a fast SD card does not
report "1.8 Volt mode switch possible" on kernel init which in turn does
not enable SDR104 for my SDXC card.

Fast mode ok is visible in the kernel log after booting from SD card:

root@orangepirv2:~# dmesg |grep mmc
[    2.198816] mmc0: SDHCI controller on d4280000.sdh [d4280000.sdh] using ADMA
[    2.224576] mmc1: SDHCI controller on d4280800.sdh [d4280800.sdh] using ADMA
[    2.272657] mmc0: set tx_delaycode: 159
[    2.273950] mmc0: pass window [6 68)
[    2.276301] mmc0: pass window [72 198)
[    2.277591] mmc0: pass window [219 255)
[    2.277599] mmc0: tuning done, use the firstly delay_code:134
[    2.277611] mmc0: new ultra high speed SDR104 SDXC card at address b36b

With UHS already enabled in u-boot, no tuning and no SDR104 mode is switched on
in the Linux kernel. Seems to be a side effect of an un-complete mmc_deinit() in
u-boot/driver/mmc/mmc.c. With MMC_UHS_SUPPORT disabled, the SD card does report
SD_ROCR_S18A with then leads to enter spacemit_sdhci_execute_sw_tuning() and the
subsequent switch to SDK104 or probably other 1.8 Volt modes is fine. This is at
least true for my OrangePi RV2 board.

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
7c0d37997c OrangePi-RV2: Add overlay dtbo files
This is for use with fdtoverlays directive in extlinux.conf
to enabled different configs for the Opi rv2 pin headers

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
b9350e0133 OrangePi-RV2: wlan driver for edge
Added with new extension named bcmdhd-spacemit (hosted on Codeberg.org)

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
d68fb5d2d2 OrangePi-RV2: add missing interrupt for bcmdhd WLAN hostwake GPIO
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
51295805e2 Spacemit: HW crypto fixes / speedup.
Note: HW AES is really slow with LUKS2 when using default 512 byte block
size, regardless what cryptsetup benchmark prints out (this uses 65536
bytes). Performance is much better with luksFormat --sector-size 4096.

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
2c8090aaaa OrangePi-RV2: u-boot FIT configs for rv2 and r2s (auto-selected via TLV chip setting)
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
023a546233 OrangePi-RV2: u-boot support for XM25QH128A flash
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
0aad47f00e OrangePi-RV2: script for armbian-install to write boot cfg to MTD flash
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
ea961653d5 Spacemit: expand SPI NOR address limit to 16Mb (probably wrong 12Mb limit)
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
f7872bfd36 OrangePi-RV2: SPI NOR partitioning (prep for boot-from-flash)
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
18ed58913e OrangePi-RV2: follow the tradition to log changes to syscfg
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
662ed0b2ca OrangePi-RV2: BCM bluetooth firmware hacking service
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
136617fbee OrangePi-RV2: load bcmdhd wifi on boot
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
e527a1783f OrangePi-RV2: add support for RISCV64 compile-to-binaries.
Required to compile BCM bluetooth firmware hacking tool.

Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
6460a1d81c OrangePi-RV2: switch on power for bcmdhd wifi
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Sven-Ola Tuecke
9b3484158c OrangePi-RV2: Add ky-to-spacemit re-substituted DTs and WIP board configs
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00
Ricardo Pardini
ef15fe183a Revert "rockchip64-6.19: mekotronics-r58x-4g: add fusb302"
- This reverts commit e94425f6944b5a751e19f4bf7ac7dfce9f8b1035.
- I am clearly not up to par with type-c/fusb302 stuff yet
  - sending this for future reference
2026-02-19 09:00:15 -03:00
Ricardo Pardini
37c5cf652b mekotronics-r58x-4g: u-boot: create -u-boot.dtsi via hook
- saves one .dtsi file in patch/.../dt_uboot
- I had the wrong name (missing `-u-boot` suffix) too so this fixes it too
2026-02-19 09:00:15 -03:00
Ricardo Pardini
576c709fb4 mekotronics-r58x-4g: u-boot: enable tpcm/fusb302 support
- also `tcpm` cmd for debugging
2026-02-19 09:00:15 -03:00
Ricardo Pardini
f5e17cfd26 rockchip64-6.19: mekotronics-r58x-4g: add fusb302
- works as far as I can tell
- both orientations
- also wired DP, but can't test (I've no USB-DP hw)
2026-02-19 09:00:15 -03:00
Ricardo Pardini
7ef9f60bf6 mekotronics-r58x-4g: u-boot: bump to v2026.04-rc2 with symlink-shared DT
- u-boot v2026.04-rcX has bumped dt-rebasing to v6.18, thus it knows about
  NPU nodes now and we can simply symlink to kernel DT, reducing duplication by a lot
2026-02-19 09:00:15 -03:00
Ricardo Pardini
c4fb17ca03 u-boot: v2026.04: prepare patching dir for v2026.04
- fileenv patch (same as v2026.01)
- fdt_fixup_ethernet logging patch (same as v2026.01)
- 0000.patching_config.yaml: defconfig/dt_upstream_rockchip/dt_uboot
- notable in v2026.04:
  - dt-rebasing bumped up to v6.18 (which has NPU nodes)
    - this allows us to share complete DTs between kernel and u-boot via symlinks
  - Kwiboo had a go at LWIP which should be usable now; Kwiboo rocks.
2026-02-19 09:00:15 -03:00
Ricardo Pardini
d3cb6458b0 rockchip64-6.19: mekotronics-r58x-4g: add analog sound es8388
- also: drop old modem (4G) to-do, as modem already works without it
2026-02-19 09:00:15 -03:00
Ricardo Pardini
a13e185e8d rockchip64-6.19: mekotronics-r58x-4g: fix type-A USB ports
- this gets the 3 usb type-A ports in the front working
2026-02-19 09:00:15 -03:00
Ricardo Pardini
3295ab61a2 rockchip64-6.19: mekotronics-r58x-4g: add vcc5v0_otg regulator (gpio4_PA7)
- probably type-c stuff, but we never know with Meko
2026-02-19 09:00:15 -03:00
Ricardo Pardini
9053c71deb rockchip64-6.19: mekotronics-r58x-4g: drop invalid hdmi enable-gpios
- drop invalid and useless enable-gpios on hdmi0 node
  - was from vendor kernel
  - does nothing in mainline
  - is not required in mainline for working HDMI
2026-02-19 09:00:15 -03:00
tabris
d8e24d7619 framework run_host_x86_binary_logged - unset QEMU_CPU 2026-02-18 15:03:08 -05:00
Igor Velkov
ed371f5f5a
(#9400 P3a) Replace useless cat with input redirection (#9404)
* (#9400 P3a) trap-logging: replace useless cat with direct file arguments

- gzip < file → gzip -c file (direct argument, -c for stdout)
- cat file | ansi2txt → ansi2txt < file (ansi2txt has no file argument)
- Remove now-unnecessary shellcheck disable=SC2002 comments

* (#9400 P3a) logging: replace useless cat with direct file argument

- cat file | grep | sed → grep file | sed (grep accepts filename directly)
- Remove now-unnecessary shellcheck disable=SC2002 comment

* (#9400 P3a) initrd: replace useless cat with direct file argument

- cat file | md5sum → md5sum file (md5sum accepts filename directly)

* (#9400 P3a) write-device: replace useless cat with direct file argument

- cat file | awk → awk file (awk accepts filename directly)
- Remove now-unnecessary shellcheck disable=SC2002 comment

* (#9400 P3a) export-logs: replace useless cat with direct file argument

- cat file | sed → sed file (sed accepts filename directly)
- Remove now-unnecessary shellcheck disable=SC2002 comment

* (#9400 P3a) python-tools: replace cat subshell with $(<file) syntax

- $(cat file) → $(< file) (bash builtin, no subprocess)

* (#9400 P3a) artifact-armbian-base-files: replace useless cat with direct file argument

- cat file | grep → grep file (grep accepts filename directly)
2026-02-18 09:28:14 +01:00
Ian Leung
c184eda283 rk3566-orangepi-3b: Specify target-supply for sata2
Fixes SATA SSD not working when pcie2x1 is disabled.
2026-02-18 09:21:49 +01:00
Ian Leung
6e97eb5d78 Revert change to rockchip-rk3566-sata2.dtso‎
This reverts a change stemming from commit 7d241e3.
2026-02-18 09:21:49 +01:00
tabris
63dd084b26 phytiumpi - ATF_SKIP_LDFLAGS_WL="yes" 2026-02-18 09:21:31 +01:00
Brent Roman
b2ef84c202 adjust rk3308 vendor acodec for kernel 6.19 2026-02-17 21:39:16 -08:00
Brent Roman
3f6209be83 revert 32f3b7c693
and 8002936aac
because:
The ...fix-10mbit-ethernet patch is still necessary
Without it, the RK3308 does not connect via DHCP to 10-mbit Ethernets

The ...pinctl-slow-mux patch still compiles without error
It is <100 bytes and helps debugging GPIO issues.

I don't understand why above patches were flagged as "broken"
2026-02-17 21:39:16 -08:00
dependabot[bot]
8787558be4 build(deps): bump oras from 0.2.38 to 0.2.39
Bumps [oras](https://github.com/oras-project/oras-py) from 0.2.38 to 0.2.39.
- [Release notes](https://github.com/oras-project/oras-py/releases)
- [Changelog](https://github.com/oras-project/oras-py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oras-project/oras-py/compare/0.2.38...0.2.39)

---
updated-dependencies:
- dependency-name: oras
  dependency-version: 0.2.39
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-16 23:10:56 +01:00
Ricardo Pardini
99df7c5760 mekotronics-r58x-4g: mainline u-boot v2026.01; mainline 6.19 kernel (edge)
- rockchip64-6.19: mainline kernel (edge/6.19):
  - most stuff works, incl 4G modem, NPU, RS-485, RS-232, HDMI-RX
  - except:
    - type-c (fusb302, I've no schematics nor will to reverse)
    - DisplayPort (I don't have test hardware)
    - Analog Audio (ditto)
- keep vendor u-boot for vendor branch
- mainline u-boot v2026.01:
  - same DT as edge kernel, save for NPU nodes
  - boot order: NVMe -> SATA -> USB -> eMMC -> Ethernet/PXE
  - stable MAC addresses for GMAC0/1 via DT aliases (confirm with logging patch)
2026-02-15 20:18:44 +01:00
Ricardo Pardini
2681a3a682 mekotronics-r58x-4g: mainline: add i2s7_8ch (hdmirx sound) 2026-02-15 20:18:44 +01:00
Ricardo Pardini
a4ecd2cc82 mekotronics-r58x-4g: mainline: fix hdmi0 enable-gpios
- there is no hdmi1 (only DP)
2026-02-15 20:18:44 +01:00
Ricardo Pardini
eab7f9d2a8 mekotronics-r58x-4g: mainline: add rs-485 (uart0) and rs-232 (uart3) 2026-02-15 20:18:44 +01:00
Ricardo Pardini
c17fee5aca mekotronics-r58x-4g: mainline: add sata0 (SATA port on the board) 2026-02-15 20:18:44 +01:00
Ricardo Pardini
fa98e609cd mekotronics-r58x-4g: mainline: add i2c5
- not really wired to anything, found on vendor kernel, added due to i2c5m3_xfer
2026-02-15 20:18:44 +01:00
Ricardo Pardini
bcdc3e9871 mekotronics-r58x-4g: mainline: clean up a bit
- otg pin thing is for fusb302 related type-c thing (I ignore for now)
- drop dup combphy0
2026-02-15 20:18:44 +01:00
Ricardo Pardini
1d0eccda66 mekotronics-r58x-4g: mainline: fix hdmirx pinctrl-0 2026-02-15 20:18:44 +01:00
Ricardo Pardini
1d90918330 mekotronics-r58x-4g: mainline: fix hdmirx hpd pin 2026-02-15 20:18:44 +01:00
Ricardo Pardini
d31a336ee3 mekotronics-r58x-4g: mainline: fix vcc5v0_host gpio+pinctrl 2026-02-15 20:18:44 +01:00
Ricardo Pardini
3d780aeff5 mekotronics-r58x-4g: mainline: gmac0/gmac1 mdio0/mdio1 (v2)
- drop rx delay, add snps stuff
2026-02-15 20:18:44 +01:00
Ricardo Pardini
29e97b5502 mekotronics-r58x-4g: mainline: gmac0/gmac1 mdio0/mdio1 (v1)
- very similar/identical to firefly-itx
2026-02-15 20:18:44 +01:00
Ricardo Pardini
9c10b84013 mekotronics-r58x-4g: mainline: LEDs (v2)
- what vendor calls "hdd" LED is simply not there
- "power" LED is actually 2 leds
- missing: "WIFI" led, which pin?
2026-02-15 20:18:44 +01:00
Ricardo Pardini
1b53372e5b mekotronics-r58x-4g: mainline: LEDs (v1) 2026-02-15 20:18:44 +01:00
Ricardo Pardini
1772efc16e mekotronics-r58x-4g: mainline: drop &pcie2x1l1 2026-02-15 20:18:44 +01:00
Ricardo Pardini
c05bfd707f mekotronics-r58x-4g: mainline: mark TODO's - waaaay too many 2026-02-15 20:18:44 +01:00
Ricardo Pardini
51a8b02a7e mekotronics-r58x-4g: begin mainline kernel
- begin by copying meko4x4's which is based on the same reference "Rockchip NVR" design
2026-02-15 20:18:44 +01:00
Austin Lane
c8cae80e8c RV1106: Reduce kernel memory footprint
RV1103 (64MB RAM) does not boot after kconfig changes in January.
Remove extra debugging (tracing, BTF) to reduce boot-time memory.
2026-02-15 20:18:10 +01:00
Ian Leung
f1f9918752 Orange Pi 3B: Generate alternate SPI image for booting from SATA
This commit enables generation of `u-boot-rockchip-spi-sata.bin`.
Flashing this to SPI flash enables U-Boot to communicate with an
attached SATA m.2 SSD, thereby allowing booting directly from SPI flash
to SATA SSD.
2026-02-15 20:17:20 +01:00
590 changed files with 141229 additions and 45274 deletions

65
.github/CODEOWNERS vendored
View File

@ -25,7 +25,10 @@ config/boards/armsom-forge1.csc @amazingfate
config/boards/armsom-sige1.csc @amazingfate
config/boards/armsom-sige3.csc @amazingfate
config/boards/avaota-a1.csc @chainsx
config/boards/ayn-odin2.csc @FantasyGmm
config/boards/ayn-odin2.csc @FantasyGmm @Squishy123 @kasimling
config/boards/ayn-odin2mini.csc @Squishy123
config/boards/ayn-odin2portal.csc @Squishy123
config/boards/ayn-thor.csc @Squishy123
config/boards/bananapi.conf @DylanHP @janprunk
config/boards/bananapicm4io.conf @pyavitz
config/boards/bananapif3.conf @pyavitz
@ -54,7 +57,9 @@ config/boards/coolpi-cm5.csc @andyshrk
config/boards/coolpi-genbook.csc @andyshrk
config/boards/dusun-dsom-010r.csc @paolosabatino
config/boards/espressobin.conf @igorpecovnik
config/boards/fine3399.csc @Lemon1151
config/boards/firefly-itx-3588j.csc @SeeleVolleri
config/boards/forlinx-ok3506-s12.csc @vidplace7
config/boards/fxblox-rk1.csc @mahdichi
config/boards/gateway-gz80x.conf @pyavitz
config/boards/h96-tvbox-3566.tvb @hqnicolas
@ -109,6 +114,7 @@ config/boards/nanopi-r6s.conf @efectn
config/boards/nanopi-r76s.conf @SuperKali
config/boards/nanopiair.csc @1ubuntuuser
config/boards/nanopiduo.csc @sgjava
config/boards/nanopik1plus.conf @igorpecovnik
config/boards/nanopik2-s905.conf @igorpecovnik
config/boards/nanopim4v2.conf @igorpecovnik
config/boards/nanopineo.csc @spendist
@ -118,20 +124,25 @@ config/boards/nanopineoplus2.csc @teknoid
config/boards/odroidc1.conf @juanlufont
config/boards/odroidc2.conf @teknoid
config/boards/odroidc4.conf @igorpecovnik
config/boards/odroidhc4.conf @igorpecovnik
config/boards/odroidm1.conf @rpardini
config/boards/odroidm2.csc @mlegenovic
config/boards/odroidm2.conf @mlegenovic
config/boards/odroidn2.conf @NicoD-SBC
config/boards/odroidxu4.conf @joekhoobyar
config/boards/olimex-teres-a64.csc @Kreyren
config/boards/onecloud.csc @hzyitc
config/boards/oneplus-kebab.conf @amazingfate
config/boards/orangepi3-lts.conf @pyavitz
config/boards/orangepi4-lts.conf @paolosabatino
config/boards/orangepi4.csc @paolosabatino
config/boards/orangepi5-plus.conf @alexl83
config/boards/orangepi5.conf @efectn
config/boards/orangepione.conf @StephenGraf
config/boards/orangepipc.csc @lbmendes
config/boards/orangepipc2.conf @igorpecovnik
config/boards/orangepipcplus.csc @Janmcha
config/boards/orangepir2s.wip @sven-ola
config/boards/orangepirv2.wip @sven-ola
config/boards/orangepizero2.csc @AGM1968 @krachlatte
config/boards/orangepizero2w.csc @chraac
config/boards/orangepizero3.csc @alexl83 @chraac
@ -155,6 +166,7 @@ config/boards/radxa-e54c.conf @kamilsaigol @schwar3kat
config/boards/radxa-nio-12l.conf @HeyMeco
config/boards/radxa-rock-4d.conf @HeyMeco
config/boards/radxa-zero.conf @engineer-80
config/boards/radxa-zero3.conf @igorpecovnik
config/boards/recore.csc @eliasbakken
config/boards/renegade.conf @Tonymac32
config/boards/retro-lite-cm5.csc @ginkage
@ -175,7 +187,7 @@ config/boards/rockpi-e.conf @paolosabatino
config/boards/rockpi-s.conf @brentr
config/boards/rockpro64.csc @joekhoobyar
config/boards/rpi4b.conf @PanderMusubi @teknoid
config/boards/sakurapi-rk3308b.csc @TheSnowfield
config/boards/sakurapi-rk3308b.conf @TheSnowfield
config/boards/sk-am62-lp.conf @jonaswood01
config/boards/sk-am62-sip.conf @jonaswood01
config/boards/sk-am62b.conf @jonaswood01
@ -199,6 +211,7 @@ config/boards/uefi-x86.conf @rpardini
config/boards/visionfive2.csc @libiunc
config/boards/x96-mate.tvb @Ressetkk
config/boards/x96q.tvb @sicXnull
config/boards/xiaobao-nas.csc @Lemon1151
config/boards/xiaomi-elish.conf @amazingfate
config/boards/xpressreal-t3.csc @wei633
config/boards/youyeetoo-r1-v3.csc @SuperKali
@ -223,10 +236,10 @@ config/kernel/linux-qcs6490-*.config @HeyMeco
config/kernel/linux-rk35xx-*.config @150balbes @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @JohnTheCoolingFan @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @andyshrk @catalinii @chainsx @efectn @fridtjof @ginkage @hoochiwetech @hqnicolas @igorpecovnik @kamilsaigol @krachlatte @lanefu @linhz0hz @mahdichi @mattx433 @prahal @rpardini @schwar3kat @sputnik2019 @vamzii
config/kernel/linux-rockchip-*.config @amazingfate @paolosabatino @vidplace7
config/kernel/linux-rockchip-rv1106-*.config @vidplace7
config/kernel/linux-rockchip64-*.config @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @chainsx @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @rbqvq @redrathnure @retro98boy @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
config/kernel/linux-rockchip64-*.config @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @Lemon1151 @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @chainsx @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @rbqvq @redrathnure @retro98boy @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
config/kernel/linux-sm8250-*.config @amazingfate
config/kernel/linux-sm8550-*.config @FantasyGmm
config/kernel/linux-spacemit-*.config @pyavitz
config/kernel/linux-sm8550-*.config @FantasyGmm @Squishy123 @kasimling
config/kernel/linux-spacemit-*.config @pyavitz @sven-ola
config/kernel/linux-starfive2-*.config @libiunc
config/kernel/linux-sun55iw3-syterkit-*.config @chainsx
config/kernel/linux-sunxi-*.config @1ubuntuuser @AaronNGray @DylanHP @Janmcha @StephenGraf @TheSnowfield @Tonymac32 @igorpecovnik @janprunk @lbmendes @leggewie @mhawkins-consultant @sgjava @spendist
@ -246,9 +259,10 @@ patch/atf/atf-mvebu64/ @igorpecovnik
patch/atf/atf-phytium-embedded/ @chainsx
patch/atf/atf-qcs6490/ @HeyMeco
patch/atf/atf-rockchip64/v2.13/ @150balbes @ColorfulRhino @HeyMeco @SuperKali @Tonymac32 @ahoneybun @alexl83 @amazingfate @andyshrk @fridtjof @joekhoobyar @linhz0hz @paolosabatino @prahal
patch/atf/atf-rockchip64/v2.14/ @HeyMeco
patch/atf/atf-sm8250/ @amazingfate
patch/atf/atf-sm8550/ @FantasyGmm
patch/atf/atf-spacemit/ @pyavitz
patch/atf/atf-sm8550/ @FantasyGmm @Squishy123 @kasimling
patch/atf/atf-spacemit/ @pyavitz @sven-ola
patch/atf/atf-sun55iw3-syterkit/ @chainsx
patch/atf/atf-sunxi64/ @AGM1968 @IsMrX @JohnTheCoolingFan @Kreyren @PanderMusubi @Qvy-png @Ressetkk @The-going @Tonymac32 @alexl83 @chraac @devdotnetorg @eliasbakken @igorpecovnik @krachlatte @pyavitz @schwar3kat @sicXnull @spendist @teknoid
patch/kernel/archive/bcm2711-*/ @PanderMusubi @teknoid
@ -265,10 +279,10 @@ patch/kernel/archive/odroidxu4-*/ @joekhoobyar
patch/kernel/archive/qcs6490-*/ @HeyMeco
patch/kernel/archive/realtek-rtd1619b-*/ @wei633
patch/kernel/archive/rockchip-*/ @paolosabatino
patch/kernel/archive/rockchip64-*/ @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @chainsx @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @rbqvq @redrathnure @retro98boy @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
patch/kernel/archive/rockchip64-*/ @150balbes @ColorfulRhino @HeyMeco @JohnTheCoolingFan @Lemon1151 @SuperKali @TheSnowfield @Tonymac32 @ZazaBR @ahoneybun @alexl83 @amazingfate @andyshrk @brentr @catalinii @chainsx @efectn @fridtjof @hqnicolas @igorpecovnik @joekhoobyar @krachlatte @lanefu @linhz0hz @mlegenovic @paolosabatino @prahal @pyavitz @rbqvq @redrathnure @retro98boy @rpardini @schwar3kat @sicXnull @tdleiyao @torte71 @utlark @vamzii
patch/kernel/archive/sm8250-*/ @amazingfate
patch/kernel/archive/sm8550-*/ @FantasyGmm
patch/kernel/archive/spacemit-*/ @pyavitz
patch/kernel/archive/sm8550-*/ @FantasyGmm @Squishy123 @kasimling
patch/kernel/archive/spacemit-*/ @pyavitz @sven-ola
patch/kernel/archive/sunxi-*/ @1ubuntuuser @AGM1968 @AaronNGray @DylanHP @IsMrX @Janmcha @JohnTheCoolingFan @Kreyren @PanderMusubi @Qvy-png @Ressetkk @StephenGraf @The-going @TheSnowfield @Tonymac32 @alexl83 @chraac @devdotnetorg @eliasbakken @igorpecovnik @janprunk @krachlatte @lbmendes @leggewie @mhawkins-consultant @pyavitz @schwar3kat @sgjava @sicXnull @spendist @teknoid
patch/kernel/archive/uefi-arm64-*/ @PeterChrz @rpardini
patch/kernel/archive/uefi-loong64-*/ @amazingfate
@ -281,10 +295,9 @@ patch/kernel/sun55iw3-syterkit-*/ @chainsx
patch/kernel/thead-*/ @chainsx
patch/u-boot/legacy/ @chainsx @joekhoobyar @juanlufont @lanefu
patch/u-boot/legacy/u-boot-clearfog/ @Heisath
patch/u-boot/legacy/u-boot-khadas-edge2-rk3588/ @efectn
patch/u-boot/legacy/u-boot-radxa-rk35xx/ @CodeChenL @HeyMeco @JackHuang021 @JohnTheCoolingFan @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @ginkage @hoochiwetech @hqnicolas @igorpecovnik @kamilsaigol @krachlatte @linhz0hz @mahdichi @mattx433 @prahal @rpardini @schwar3kat @sputnik2019 @tdleiyao @vamzii
patch/u-boot/legacy/u-boot-radxa-rk35xx/ @CodeChenL @JackHuang021 @JohnTheCoolingFan @SeeleVolleri @SuperKali @Tonymac32 @ZazaBR @alexl83 @amazingfate @catalinii @chainsx @efectn @ginkage @hoochiwetech @hqnicolas @igorpecovnik @kamilsaigol @krachlatte @linhz0hz @mahdichi @mattx433 @prahal @rpardini @schwar3kat @sputnik2019 @tdleiyao @vamzii
patch/u-boot/legacy/u-boot-rockchip-buildroot/ @vidplace7
patch/u-boot/legacy/u-boot-spacemit-k1/ @pyavitz
patch/u-boot/legacy/u-boot-spacemit-k1/ @pyavitz @sven-ola
patch/u-boot/u-boot-genio/ @HeyMeco
patch/u-boot/u-boot-k3-beagle/ @Grippy98
patch/u-boot/u-boot-k3/ @Grippy98 @glneo @jonaswood01
@ -293,7 +306,7 @@ patch/u-boot/u-boot-qemu-arm64/ @rpardini
patch/u-boot/u-boot-qemu-x86/ @rpardini
patch/u-boot/u-boot-rk3506/ @amazingfate @vidplace7
patch/u-boot/u-boot-rockchip64-v2022.04/ @ahoneybun @igorpecovnik @paolosabatino
patch/u-boot/u-boot-rockchip64/ @Tonymac32 @andyshrk @igorpecovnik @redrathnure @sicXnull
patch/u-boot/u-boot-rockchip64/ @Lemon1151 @Tonymac32 @andyshrk @igorpecovnik @redrathnure @sicXnull
patch/u-boot/u-boot-sunxi-crust/ @AGM1968 @Kreyren @PanderMusubi @Qvy-png @Tonymac32 @devdotnetorg @igorpecovnik @schwar3kat @spendist @teknoid
patch/u-boot/u-boot-sunxi/ @1ubuntuuser @AGM1968 @DylanHP @Janmcha @JohnTheCoolingFan @Kreyren @PanderMusubi @Qvy-png @Ressetkk @StephenGraf @TheSnowfield @Tonymac32 @devdotnetorg @eliasbakken @igorpecovnik @janprunk @krachlatte @lbmendes @leggewie @mhawkins-consultant @schwar3kat @sgjava @sicXnull @spendist @teknoid
patch/u-boot/u-boot-sunxi/board_bananapim3/ @AaronNGray
@ -310,17 +323,17 @@ patch/u-boot/v2024.07/ @igorpecovnik
patch/u-boot/v2024.07/board_station-m1/ @150balbes
patch/u-boot/v2024.10/ @brentr @pyavitz
patch/u-boot/v2024.10/board_bigtreetech-cb2/ @JohnTheCoolingFan
patch/u-boot/v2025-sunxi/ @The-going @alexl83 @chraac @igorpecovnik
patch/u-boot/v2025-sunxi/ @The-going @alexl83 @chraac
patch/u-boot/v2025.01-rc3-coolpi-cm5/ @andyshrk
patch/u-boot/v2025.01/ @joekhoobyar @torte71
patch/u-boot/v2025.01/board_h96-tvbox-3566/ @hqnicolas
patch/u-boot/v2025.04/ @HeyMeco @IsMrX @NicoD-SBC @TheSnowfield @adeepn @andyshrk @mlegenovic @rpardini
patch/u-boot/v2025.07/ @pyavitz
patch/u-boot/v2025.10/ @HeyMeco @SuperKali @ZazaBR @amazingfate @andyshrk @catalinii @efectn @fridtjof @igorpecovnik @paolosabatino @vamzii
patch/u-boot/v2025.04/ @HeyMeco @IsMrX @NicoD-SBC @TheSnowfield @adeepn @andyshrk @rpardini
patch/u-boot/v2025.10/ @HeyMeco @SuperKali @ZazaBR @amazingfate @andyshrk @catalinii @efectn @fridtjof @igorpecovnik @mlegenovic @paolosabatino @vamzii
patch/u-boot/v2025.10/board_9tripod-x3568-v4/ @rbqvq
patch/u-boot/v2025.10/board_helios4/ @leggewie
patch/u-boot/v2026.01/ @150balbes @ColorfulRhino @NicoD-SBC @SuperKali @Tonymac32 @alexl83 @amazingfate @jeanrhum @linhz0hz @pyavitz @retro98boy @rpardini
patch/u-boot/v2026.01/ @150balbes @ColorfulRhino @NicoD-SBC @SuperKali @Tonymac32 @alexl83 @amazingfate @igorpecovnik @jeanrhum @linhz0hz @pyavitz @retro98boy @rpardini @schwar3kat
patch/u-boot/v2026.01/board_helios64/ @prahal
patch/u-boot/v2026.04/ @HeyMeco @efectn
sources/families/bcm2711.conf @PanderMusubi @teknoid
sources/families/genio.conf @HeyMeco
sources/families/imx8m.conf @schmiedelm
@ -341,18 +354,18 @@ sources/families/odroidxu4.conf @joekhoobyar
sources/families/phytium-embedded.conf @chainsx
sources/families/qcs6490.conf @HeyMeco
sources/families/realtek-rtd1619b.conf @wei633
sources/families/rk35xx.conf @CodeChenL @HeyMeco @JohnTheCoolingFan @SuperKali @ZazaBR @amazingfate @andyshrk @catalinii @efectn @hoochiwetech @hqnicolas @krachlatte @mattx433 @pyavitz @sputnik2019 @tdleiyao @vamzii
sources/families/rk35xx.conf @CodeChenL @HeyMeco @JohnTheCoolingFan @SuperKali @ZazaBR @amazingfate @andyshrk @catalinii @efectn @hoochiwetech @hqnicolas @igorpecovnik @krachlatte @mattx433 @pyavitz @sputnik2019 @tdleiyao @vamzii
sources/families/rockchip-rk3588.conf @150balbes @ColorfulRhino @HeyMeco @JackHuang021 @JohnTheCoolingFan @SeeleVolleri @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @chainsx @efectn @fridtjof @ginkage @igorpecovnik @kamilsaigol @lanefu @linhz0hz @mahdichi @prahal @rpardini @schwar3kat
sources/families/rockchip-rv1106.conf @vidplace7
sources/families/rockchip.conf @amazingfate @paolosabatino @vidplace7
sources/families/rockchip64.conf @150balbes @JohnTheCoolingFan @TheSnowfield @Tonymac32 @ahoneybun @andyshrk @brentr @hqnicolas @igorpecovnik @joekhoobyar @mlegenovic @paolosabatino @prahal @rbqvq @redrathnure @retro98boy @rpardini @sicXnull @torte71 @utlark
sources/families/rockchip64.conf @150balbes @JohnTheCoolingFan @Lemon1151 @TheSnowfield @Tonymac32 @ahoneybun @andyshrk @brentr @hqnicolas @igorpecovnik @joekhoobyar @mlegenovic @paolosabatino @prahal @rbqvq @redrathnure @retro98boy @rpardini @sicXnull @torte71 @utlark
sources/families/sm8250.conf @amazingfate
sources/families/sm8550.conf @FantasyGmm
sources/families/spacemit.conf @pyavitz
sources/families/sm8550.conf @FantasyGmm @Squishy123 @kasimling
sources/families/spacemit.conf @pyavitz @sven-ola
sources/families/starfive2.conf @libiunc
sources/families/sun50iw1.conf @Kreyren @PanderMusubi @Qvy-png @devdotnetorg @eliasbakken
sources/families/sun50iw2.conf @AGM1968 @Tonymac32 @schwar3kat @spendist @teknoid
sources/families/sun50iw6.conf @igorpecovnik
sources/families/sun50iw2.conf @AGM1968 @Tonymac32 @igorpecovnik @schwar3kat @spendist @teknoid
sources/families/sun50iw6.conf @igorpecovnik @pyavitz
sources/families/sun50iw9-bpi.conf @The-going @pyavitz
sources/families/sun50iw9.conf @AGM1968 @IsMrX @JohnTheCoolingFan @Ressetkk @alexl83 @chraac @krachlatte @sicXnull
sources/families/sun55iw3-syterkit.conf @chainsx

View File

@ -7,6 +7,9 @@ on:
- "config/boards/*.*"
branches: [main]
permissions:
contents: read
jobs:
update-board-list-dispatch:
name: Send dispatch

View File

@ -12,6 +12,9 @@ on:
paths:
- ".github/labels.yml"
permissions:
contents: read
jobs:
labeler:
permissions:
@ -27,7 +30,7 @@ jobs:
uses: actions/checkout@v6
- name: Run Labeler
uses: crazy-max/ghaction-github-labeler@v5
uses: crazy-max/ghaction-github-labeler@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
yaml-file: .github/labels.yml

View File

@ -8,6 +8,9 @@ on:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
dispatch-on-forked-repo:
name: 📢 Run repository dispatch on fork

View File

@ -4,6 +4,9 @@ on:
push:
branches: [ main ]
permissions:
contents: read
jobs:
announcepush:
# Do not run this workflow in forks

View File

@ -5,11 +5,14 @@ on:
pull_request:
types: [ labeled ]
permissions:
contents: read
jobs:
Announce:
permissions:
pull-requests: read
contents: read
runs-on: ubuntu-latest
if: ${{ github.repository == 'armbian/build' && github.event.label.id == '6210849975' }}
steps:
@ -22,4 +25,4 @@ jobs:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data \
"{\"username\": \"Github\", \"avatar_url\": \"${{ secrets.AVATARURL }}\", \"content\": \"\
:arrow_heading_up: **Pull request** to [$GITHUB_REPOSITORY](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY>) by [$GITHUB_ACTOR](<$GITHUB_SERVER_URL/$GITHUB_ACTOR>) - **Please review!** \
:point_right: [Link](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pull/${{github.event.pull_request.number}}>): *$(git show -s --format=%s)*\"}" ${{ secrets.WEBHOOKURL }}
:point_right: [Link](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pull/${{github.event.pull_request.number}}>): *$(git show -s --format=%s)*\"}" ${{ secrets.WEBHOOKURL }}

View File

@ -13,6 +13,9 @@ env:
BOARD_IMAGES_DIR: "board-images"
VENDOR_LOGOS_DIR: "board-vendor-logos"
permissions:
contents: read
jobs:
Check:
name: "Verify assets for newly added boards"

View File

@ -34,7 +34,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@8cba46e29c11878d930bca7870bb54394d3e8b21 # v46.0.3
uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v46.0.3
- name: Checkout repository
uses: actions/checkout@v6

View File

@ -15,6 +15,9 @@ env:
SCHEDULED_RUNS_OLDER_THAN: "10"
SCHEDULED_RUNS_TO_KEEP: "0"
permissions:
contents: read
jobs:
clean-logs:
runs-on: ubuntu-latest

View File

@ -4,18 +4,22 @@ on:
workflows: ["Maintenance: Listen PR review"]
types: [completed]
permissions:
contents: read
jobs:
label:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
issues: write
pull-requests: write
steps:
- name: Download PR number artifact from upstream run
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
name: pr-number-${{ github.event.workflow_run.id }} # same unique name
path: .
@ -51,4 +55,4 @@ jobs:
} catch (e) {
core.warning(`Could not remove label "${name}": ${e.message}`);
}
}
}

View File

@ -30,7 +30,7 @@ jobs:
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@8cba46e29c11878d930bca7870bb54394d3e8b21 # v46.0.3
uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v46.0.3
- name: List all changed files
run: |

View File

@ -3,6 +3,9 @@ on:
pull_request_review:
types: [submitted]
permissions:
contents: read
jobs:
ping:
if: ${{ github.event.review.state == 'approved' }}
@ -13,7 +16,7 @@ jobs:
- name: Save PR number
run: echo "${{ github.event.pull_request.number }}" > pr.txt
- uses: actions/upload-artifact@v6.0.0
- uses: actions/upload-artifact@v7.0.0
with:
# unique name: includes workflow run id
name: pr-number-${{ github.run_id }}

View File

@ -162,7 +162,7 @@ jobs:
- name: Upload artifact (per job; unique; overwrite safe)
if: steps.collect.outputs.nothing_to_upload != 'true'
uses: actions/upload-artifact@v6.0.0
uses: actions/upload-artifact@v7.0.0
with:
name: changes-${{ matrix.linuxfamily }}-${{ matrix.branch }}-${{ matrix.board }}-${{ github.run_attempt }}
path: artifact/${{ matrix.linuxfamily }}-${{ matrix.branch }}-${{ matrix.board }}
@ -181,7 +181,7 @@ jobs:
- name: Download all change artifacts (no merge)
continue-on-error: true
uses: actions/download-artifact@v7
uses: actions/download-artifact@v8
with:
path: _artifacts
pattern: changes-*

View File

@ -52,7 +52,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: SARIF file
path: results.sarif

View File

@ -4,6 +4,9 @@ on:
issues:
types: opened
permissions:
contents: read
jobs:
welcome-first-time-contributor:
runs-on: ubuntu-latest

View File

@ -4,6 +4,9 @@ on:
pull_request_target:
types: opened
permissions:
contents: read
jobs:
welcome-first-time-contributor:
runs-on: ubuntu-latest

2
.gitignore vendored
View File

@ -22,7 +22,7 @@ ubuntu-*-cloudimg-console.log
.DS_Store
*~
*.swp
/__pycache__/*
**/__pycache__/
# Mainly generated by merge tools like 'meld'
*.orig

View File

@ -109,7 +109,7 @@ runs:
- name: "Import GPG key"
if: ${{ inputs.armbian_pgp_key != '' }}
uses: crazy-max/ghaction-import-gpg@v6
uses: crazy-max/ghaction-import-gpg@v7
with:
gpg_private_key: ${{ inputs.armbian_pgp_key }}
passphrase: ${{ inputs.armbian_pgp_password }}

View File

@ -80,7 +80,6 @@ If you are unsure about the documentation then invoke `$ grep -r -A5 -B5 "BUILD_
- [branch]: Use specified [branch] kernel
- [none]: Exits with error
- **KERNEL_TEST_TARGET** ( comma-separated list of kernel releases or branches ): if test targets are different for testings. Also applies to build list generation. (internal switch)
- **KERNEL_UPGRADE_FREEZE** ( comma-separated list of kernels with versions obove which they stop updating, example: KERNEL_UPGRADE_FREEZE="vendor-rk35xx@24.8.1,current-rockchip-rk3588@24.8.2" )
- **FULL_DESKTOP** ( boolean ): defines whether to install desktop stack of applications such as office, thunderbird, etc..
- Values:
- yes: install desktop stack

View File

@ -1,42 +1,66 @@
# Ayn Odin2 Configuration
# Qualcomm SM8550 octa core 8GB/12GB/16GB RAM SoC eMMC USB-C WiFi/BT
declare -g BOARD_NAME="Ayn Odin2"
declare -g BOARD_VENDOR="ayntec"
declare -g BOARD_MAINTAINER="FantasyGmm"
declare -g BOARD_MAINTAINER="FantasyGmm Squishy123 kasimling"
declare -g BOARDFAMILY="sm8550"
declare -g KERNEL_TARGET="current,edge"
declare -g KERNEL_TEST_TARGET="edge"
declare -g KERNEL_TEST_TARGET="current"
declare -g EXTRAWIFI="no"
declare -g BOOTCONFIG="none"
declare -g BOOTFS_TYPE="fat"
declare -g BOOTSIZE="256"
declare -g IMAGE_PARTITION_TABLE="gpt"
declare -g BOOTIMG_CMDLINE_EXTRA="clk_ignore_unused pd_ignore_unused rw quiet rootwait"
# Use the full firmware, complete linux-firmware plus Armbian's
declare -g BOARD_FIRMWARE_INSTALL="-full"
declare -g DESKTOP_AUTOLOGIN="yes"
function ayn-odin2_is_userspace_supported() {
[[ "${RELEASE}" == "jammy" ]] && return 0
[[ "${RELEASE}" == "trixie" ]] && return 0
[[ "${RELEASE}" == "noble" ]] && return 0
return 1
}
# Check to make sure variants are supported
declare -g VALID_BOARDS=("ayn-odin2" "ayn-odin2portal" "ayn-odin2mini" "ayn-thor")
declare -g WITH_GRUB="${WITH_GRUB:-no}"
if [[ ! " ${VALID_BOARDS[*]} " =~ " ${BOARD} " ]]; then
exit_with_error "Error: Invalid board '$BOARD'. Valid options are: ${VALID_BOARDS[*]}" >&2
fi
# set grub
if [[ "${WITH_GRUB}" == "yes" ]]; then
display_alert "GRUB DETECTED"
declare -g UEFI_GRUB_TERMINAL="gfxterm" # Use graphics in grub, for the Armbian wallpaper.
declare -g GRUB_CMDLINE_LINUX_DEFAULT="clk_ignore_unused pd_ignore_unused arm64.nopauth efi=noruntime fbcon=rotate:1 console=ttyMSM0,115200n8"
declare -g BOOT_FDT_FILE="qcom/qcs8550-${BOARD}.dtb"
declare -g SERIALCON="${SERIALCON:-tty1}"
enable_extension "grub"
enable_extension "grub-with-dtb" # important, puts the whole DTB handling in place.
else
declare -g BOOTFS_TYPE="fat"
declare -g BOOTSIZE="256"
declare -g IMAGE_PARTITION_TABLE="gpt"
declare -g BOOTIMG_CMDLINE_EXTRA="clk_ignore_unused pd_ignore_unused rw quiet rootwait"
function pre_umount_final_image__update_ABL_settings() {
if [ -z "$BOOTFS_TYPE" ]; then
return 0
fi
display_alert "Update ABL settings for " "${BOARD}" "info"
uuid_line=$(head -n 1 "${SDCARD}"/etc/fstab)
rootfs_image_uuid=$(echo "${uuid_line}" | awk '{print $1}' | awk -F '=' '{print $2}')
initrd_name=$(find "${SDCARD}/boot/" -type f -name "config-*" | sed 's/.*config-//')
sed -i "s/UUID_PLACEHOLDER/${rootfs_image_uuid}/g" "${MOUNT}"/boot/LinuxLoader.cfg
sed -i "s/INITRD_PLACEHOLDER/${initrd_name}/g" "${MOUNT}"/boot/LinuxLoader.cfg
}
fi
function pre_customize_image__ayn-odin2_alsa_ucm_conf() {
if ! ayn-odin2_is_userspace_supported; then
return 0
fi
display_alert "Add alsa-ucm-conf for ${BOARD}" "${RELEASE}" "warn"
(
(
cd "${SDCARD}/usr/share/alsa" || exit 6
curl -L -o temp.zip "https://github.com/AYNTechnologies/alsa-ucm-conf/archive/refs/heads/ayn/v1.2.13.zip"
unzip -o temp.zip
unzip_dir=$(unzip -Z1 temp.zip | head -n1 | cut -d/ -f1)
cp -rf "${unzip_dir}/"* .
rm -rf "$unzip_dir" temp.zip
)
) )
}
function post_family_tweaks_bsp__ayn-odin2_firmware() {
@ -58,23 +82,11 @@ function post_family_tweaks_bsp__ayn-odin2_firmware() {
}
function post_family_tweaks__ayn-odin2_enable_services() {
if ! ayn-odin2_is_userspace_supported; then
if [[ "${RELEASE}" != "" ]]; then
display_alert "Missing userspace for ${BOARD}" "${RELEASE} does not have the userspace necessary to support the ${BOARD}" "warn"
fi
return 0
fi
if [[ "${RELEASE}" == "jammy" ]] || [[ "${RELEASE}" == "noble" ]]; then
display_alert "Adding Mesa PPA For Ubuntu ${BOARD}" "warn"
do_with_retries 3 chroot_sdcard add-apt-repository ppa:liujianfeng1994/qcom-mainline --yes --no-update
fi
# We need unudhcpd from armbian repo, so enable it
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled "${SDCARD}"/etc/apt/sources.list.d/armbian.sources
do_with_retries 3 chroot_sdcard_apt_get_update
display_alert "Installing ${BOARD} tweaks" "warn"
display_alert "Installing ${BOARD} tweaks" "warn"
do_with_retries 3 chroot_sdcard_apt_get_install alsa-ucm-conf qbootctl qrtr-tools unudhcpd mkbootimg
# disable armbian repo back
mv "${SDCARD}"/etc/apt/sources.list.d/armbian.sources "${SDCARD}"/etc/apt/sources.list.d/armbian.sources.disabled
@ -87,45 +99,35 @@ function post_family_tweaks__ayn-odin2_enable_services() {
chroot_sdcard systemctl mask suspend.target
chroot_sdcard systemctl enable usbgadget-rndis.service
cp $SRC/packages/bsp/ayn-odin2/LinuxLoader.cfg "${SDCARD}"/boot/
cp "${SRC}/packages/bsp/${BOARD}/LinuxLoader.cfg" "${SDCARD}"/boot/
return 0
}
function post_family_tweaks_bsp__ayn-odin2_bsp_firmware_in_initrd() {
display_alert "Adding to bsp-cli" "${BOARD}: firmware in initrd" "warn"
declare file_added_to_bsp_destination # Will be filled in by add_file_from_stdin_to_bsp_destination
# Using odin2's firmware for now
add_file_from_stdin_to_bsp_destination "/etc/initramfs-tools/hooks/ayn-odin2-firmware" <<- 'FIRMWARE_HOOK'
#!/bin/bash
[[ "$1" == "prereqs" ]] && exit 0
. /usr/share/initramfs-tools/hook-functions
for f in /lib/firmware/qcom/sm8550/ayn/odin2portal/* ; do
add_firmware "${f#/lib/firmware/}"
done
add_firmware "qcom/a740_sqe.fw" # Extra one for dpu
add_firmware "qcom/gmu_gen70200.bin" # Extra one for gpu
add_firmware "qcom/vpu/vpu30_p4.mbn" # Extra one for vpu
# Extra one for wifi
for f in /lib/firmware/ath12k/WCN7850/hw2.0/* ; do
add_firmware "${f#/lib/firmware/}"
done
# Extra one for bt
for f in /lib/firmware/qca/* ; do
add_firmware "${f#/lib/firmware/}"
done
FIRMWARE_HOOK
add_file_from_stdin_to_bsp_destination "/etc/initramfs-tools/hooks/ayn-firmware" <<- 'FIRMWARE_HOOK'
#!/bin/bash
[[ "$1" == "prereqs" ]] && exit 0
. /usr/share/initramfs-tools/hook-functions
for f in $(find /lib/firmware/qcom/sm8550 -type f) ; do
add_firmware "${f#/lib/firmware/}"
done
add_firmware "qcom/a740_sqe.fw" # Extra one for dpu
add_firmware "qcom/gmu_gen70200.bin" # Extra one for gpu
add_firmware "qcom/vpu/vpu30_p4.mbn" # Extra one for vpu
# Extra one for wifi
for f in $(find /lib/firmware/ath12k/WCN7850/hw2.0 -type f) ; do
add_firmware "${f#/lib/firmware/}"
done
# Extra one for bt
for f in $(find /lib/firmware/qca -type f) ; do
add_firmware "${f#/lib/firmware/}"
done
FIRMWARE_HOOK
run_host_command_logged chmod -v +x "${file_added_to_bsp_destination}"
}
function pre_umount_final_image__update_ABL_settings() {
if [ -z "$BOOTFS_TYPE" ]; then
return 0
fi
display_alert "Update ABL settings for " "${BOARD}" "info"
uuid_line=$(head -n 1 "${SDCARD}"/etc/fstab)
rootfs_image_uuid=$(echo "${uuid_line}" | awk '{print $1}' | awk -F '=' '{print $2}')
initrd_name=$(find "${SDCARD}/boot/" -type f -name "config-*" | sed 's/.*config-//')
sed -i "s/UUID_PLACEHOLDER/${rootfs_image_uuid}/g" "${MOUNT}"/boot/LinuxLoader.cfg
sed -i "s/INITRD_PLACEHOLDER/${initrd_name}/g" "${MOUNT}"/boot/LinuxLoader.cfg
}

View File

@ -0,0 +1,5 @@
# Qualcomm SM8550 octa core 8GB/12GB/16GB RAM SoC eMMC USB-C WiFi/BT
source "${SRC}/config/boards/ayn-odin2.csc"
declare -g BOARD_NAME="Ayn Odin2 Mini"
declare -g BOARD_VENDOR="ayntec"
declare -g BOARD_MAINTAINER="Squishy123"

View File

@ -0,0 +1,5 @@
# Qualcomm SM8550 octa core 8GB/12GB/16GB RAM SoC eMMC USB-C WiFi/BT
source "${SRC}/config/boards/ayn-odin2.csc"
declare -g BOARD_NAME="Ayn Odin2 Portal"
declare -g BOARD_VENDOR="ayntec"
declare -g BOARD_MAINTAINER="Squishy123"

View File

@ -0,0 +1,5 @@
# Qualcomm SM8550 octa core 8GB/12GB/16GB RAM SoC eMMC USB-C WiFi/BT
source "${SRC}/config/boards/ayn-odin2.csc"
declare -g BOARD_NAME="Ayn Thor"
declare -g BOARD_VENDOR="ayntec"
declare -g BOARD_MAINTAINER="Squishy123"

View File

@ -4,7 +4,7 @@ BOARD_VENDOR="sinovoip"
BOARDFAMILY="spacemit"
BOARD_MAINTAINER="pyavitz"
BOARD_VENDOR="spacemit"
KERNEL_TARGET="current,edge"
KERNEL_TARGET="legacy,current,edge"
BOOT_FDT_FILE="spacemit/k1-bananapi-f3.dtb"
BOOTDELAY=1
SRC_EXTLINUX="yes"

View File

@ -2,7 +2,7 @@
BOARD_NAME="Fine3399"
BOARD_VENDOR="rockchip"
BOARDFAMILY="rockchip64"
BOARD_MAINTAINER=""
BOARD_MAINTAINER="Lemon1151"
BOOTCONFIG="fine3399-rk3399_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"

View File

@ -11,6 +11,8 @@ SERIALCON="ttyS0" # for vendor kernel
BOOTCONFIG="kvim1s_defconfig"
KHADAS_BOARD_ID="kvim1s" # used to compile the fip blobs
enable_extension "wayland-sessions-mask" # wayland is fairly broken on legacy board
declare -g KHADAS_OOWOW_BOARD_ID="VIM1S" # for use with EXT=output-image-oowow
OVERLAY_PREFIX='s4-s905y4'

View File

@ -14,6 +14,8 @@ KHADAS_BOARD_ID="kvim4" # used to compile the fip blobs
declare -g KHADAS_OOWOW_BOARD_ID="VIM4" # for use with EXT=output-image-oowow
enable_extension "wayland-sessions-mask" # wayland is fairly broken on legacy board
OVERLAY_PREFIX='t7-a311d2'
function post_family_tweaks_bsp__enable_fan_service() {

View File

@ -3,10 +3,108 @@ declare -g BOARD_NAME="Mekotronics R58X-4G"
declare -g BOARD_VENDOR="mekotronics"
declare -g BOARDFAMILY="rockchip-rk3588"
declare -g BOARD_MAINTAINER=""
declare -g KERNEL_TARGET="vendor"
declare -g BOOTCONFIG="mekotronics_r58x-rk3588_defconfig" # vendor u-boot; with NVMe and a DTS
declare -g BOOT_FDT_FILE="rockchip/rk3588-blueberry-edge-v12-linux.dtb" # Specific to this board
declare -g UEFI_EDK2_BOARD_ID="r58x" # This _only_ used for uefi-edk2-rk3588 extension
declare -g KERNEL_TARGET="edge,vendor"
declare -g BOOT_FDT_FILE="rockchip/rk3588-blueberry-edge-v12-linux.dtb" # same name for mainline and vendor
declare -g DISPLAY_MANAGER="wayland"
declare -g ASOUND_STATE="asound.state.rk3588hd"
declare -g BOOT_SOC="rk3588"
declare -g IMAGE_PARTITION_TABLE="gpt"
# Does not have a UEFI_EDK2_BOARD_ID
# Source vendor-specific configuration
source "${SRC}/config/sources/vendors/mekotronics/mekotronics-rk3588.conf.sh"
if [[ "${BRANCH}" == "vendor" || "${BRANCH}" == "legacy" ]]; then
display_alert "$BOARD" "vendor/legacy configuration applied for $BOARD / $BRANCH" "info"
declare -g BOOTCONFIG="mekotronics_r58x-rk3588_defconfig" # vendor u-boot; with NVMe and a DTS
# Source shared vendor configuration; it does BOOT_SCENARIO="spl-blobs" & hciattach - common to all vendor-kernel Meko's
source "${SRC}/config/sources/vendors/mekotronics/mekotronics-rk3588.conf.sh"
return 0 # this returns early so below code is only for current/edge branches
fi
# For current/edge branches:
display_alert "$BOARD" "applying mainline configuration for $BOARD / $BRANCH" "info"
declare -g BOOT_SCENARIO="tpl-blob-atf-mainline" # Mainline ATF
function post_family_config__mekor58x_4g_use_mainline_uboot() {
display_alert "$BOARD" "mainline u-boot overrides for $BOARD / $BRANCH" "info"
declare -g BOOTCONFIG="mekotronics-r58x-4g-rk3588_defconfig" # mainline
declare -g BOOTDELAY=1
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git"
declare -g BOOTBRANCH="tag:v2026.04-rc2"
declare -g BOOTPATCHDIR="v2026.04"
declare -g BOOTDIR="u-boot-${BOARD}"
declare -g UBOOT_TARGET_MAP="BL31=bl31.elf ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin"
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd
function write_uboot_platform() {
dd "if=$1/u-boot-rockchip.bin" "of=$2" bs=32k seek=1 conv=notrunc status=none
}
declare -g PLYMOUTH="no" # Disable plymouth as that only causes more confusion
}
# "rockchip-common: boot NVMe, SATA, USB, then eMMC last before PXE"
# include/configs/rockchip-common.h
# On the meko r58-r58x_4g: mmc0 is eMMC; there is no SDcard reader
# Enumerating usb is pretty slow so do it after nvme
function pre_config_uboot_target__mekor58x_4g_patch_rockchip_common_boot_order() {
declare -a rockchip_uboot_targets=("nvme" "scsi" "usb" "mmc0" "pxe" "dhcp" "spi") # for future make-this-generic delight
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: adjust boot order to '${rockchip_uboot_targets[*]}'" "info"
sed -i -e "s/#define BOOT_TARGETS.*/#define BOOT_TARGETS \"${rockchip_uboot_targets[*]}\"/" include/configs/rockchip-common.h
regular_git diff -u include/configs/rockchip-common.h || true
}
function pre_config_uboot_target__ekor58x_4g_patch_uboot_dtsi_for_ums() {
[[ "${BRANCH}" == "vendor" ]] && return 0 # Not for 'vendor' branch, which uses 2017.09 vendor u-boot from Radxa
display_alert "u-boot for ${BOARD}" "u-boot: add to u-boot dtsi for UMS" "info" # avoid a patch, just append to the dtsi file
# Append to the t6 u-boot dtsi file with stuff for enabling gadget/otg/peripheral mode
cat <<- EOD >> arch/arm/dts/rk3588-blueberry-edge-v12-linux-u-boot.dtsi
#include "rk3588-generic-u-boot.dtsi"
&u2phy0 { status = "okay"; };
&u2phy0_otg { status = "okay"; };
&usbdp_phy0 { status = "okay"; };
&usb_host0_xhci { dr_mode = "peripheral"; maximum-speed = "high-speed"; status = "okay"; };
EOD
}
function post_config_uboot_target__extra_configs_for_mekor58x_4g_mainline_environment_in_spi() {
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable board-specific configs" "info"
run_host_command_logged scripts/config --enable CONFIG_CMD_MISC
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable preboot & flash user LED in preboot" "info"
run_host_command_logged scripts/config --enable CONFIG_USE_PREBOOT
run_host_command_logged scripts/config --set-str CONFIG_PREBOOT "'led 4G on; sleep 0.1; led LAN on; sleep 0.1; led PWR on; sleep 0.1; led 4G off; sleep 0.1; led LAN off; sleep 0.1;'" # double quotes required due to run_host_command_logged's quirks
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable EFI debugging commands" "info"
run_host_command_logged scripts/config --enable CMD_EFIDEBUG
run_host_command_logged scripts/config --enable CMD_NVEDIT_EFI
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable more filesystems support" "info"
run_host_command_logged scripts/config --enable CONFIG_CMD_BTRFS
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable more compression support" "info"
run_host_command_logged scripts/config --enable CONFIG_LZO
run_host_command_logged scripts/config --enable CONFIG_BZIP2
run_host_command_logged scripts/config --enable CONFIG_ZSTD
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable gpio LED support" "info"
run_host_command_logged scripts/config --enable CONFIG_LED
run_host_command_logged scripts/config --enable CONFIG_LED_GPIO
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable networking cmds" "info"
run_host_command_logged scripts/config --enable CONFIG_CMD_NFS
run_host_command_logged scripts/config --enable CONFIG_CMD_WGET
run_host_command_logged scripts/config --enable CONFIG_CMD_DNS
run_host_command_logged scripts/config --enable CONFIG_PROT_TCP
run_host_command_logged scripts/config --enable CONFIG_PROT_TCP_SACK
# UMS, RockUSB, gadget stuff
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable UMS/RockUSB gadget" "info"
declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE")
for config in "${enable_configs[@]}"; do
run_host_command_logged scripts/config --enable "${config}"
done
# Auto-enabled by the above, force off...
run_host_command_logged scripts/config --disable USB_FUNCTION_FASTBOOT
}

View File

@ -3,10 +3,145 @@ declare -g BOARD_NAME="Mekotronics R58X-Pro"
declare -g BOARD_VENDOR="mekotronics"
declare -g BOARDFAMILY="rockchip-rk3588"
declare -g BOARD_MAINTAINER=""
declare -g KERNEL_TARGET="vendor"
declare -g BOOTCONFIG="mekotronics_r58x-rk3588_defconfig" # vendor u-boot; with NVMe and a DTS
declare -g BOOT_FDT_FILE="rockchip/rk3588-blueberry-edge-v12-maizhuo-linux.dtb" # Specific to this board
declare -g UEFI_EDK2_BOARD_ID="r58x" # This _only_ used for uefi-edk2-rk3588 extension
declare -g KERNEL_TARGET="edge,vendor"
declare -g BOOT_FDT_FILE="rockchip/rk3588-mekotronics-r58x-pro.dtb" # mainline name; see below for vendor
declare -g DISPLAY_MANAGER="wayland"
declare -g ASOUND_STATE="asound.state.rk3588hd"
declare -g BOOT_SOC="rk3588"
declare -g IMAGE_PARTITION_TABLE="gpt"
# Does not have a UEFI_EDK2_BOARD_ID
# Source vendor-specific configuration
source "${SRC}/config/sources/vendors/mekotronics/mekotronics-rk3588.conf.sh"
if [[ "${BRANCH}" == "vendor" || "${BRANCH}" == "legacy" ]]; then
display_alert "$BOARD" "vendor/legacy configuration applied for $BOARD / $BRANCH" "info"
declare -g BOOTCONFIG="mekotronics_r58x-rk3588_defconfig" # vendor u-boot; with NVMe and a DTS
declare -g BOOT_FDT_FILE="rockchip/rk3588-blueberry-edge-v12-maizhuo-linux.dtb" # different for vendor
# Source shared vendor configuration; it does BOOT_SCENARIO="spl-blobs" & hciattach - common to all vendor-kernel Meko's
source "${SRC}/config/sources/vendors/mekotronics/mekotronics-rk3588.conf.sh"
return 0 # this returns early so below code is only for current/edge branches
fi
# For current/edge branches:
display_alert "$BOARD" "applying mainline configuration for $BOARD / $BRANCH" "info"
declare -g BOOT_SCENARIO="tpl-blob-atf-mainline" # Mainline ATF
function post_family_config__meko_r58x_pro_use_mainline_uboot() {
display_alert "$BOARD" "mainline u-boot overrides for $BOARD / $BRANCH" "info"
declare -g BOOTCONFIG="mekotronics-r58x-pro-rk3588_defconfig" # mainline
declare -g BOOTDELAY=1
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git"
declare -g BOOTBRANCH="tag:v2026.04-rc2"
declare -g BOOTPATCHDIR="v2026.04"
declare -g BOOTDIR="u-boot-${BOARD}"
declare -g UBOOT_TARGET_MAP="BL31=bl31.elf ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin"
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd
function write_uboot_platform() {
dd "if=$1/u-boot-rockchip.bin" "of=$2" bs=32k seek=1 conv=notrunc status=none
}
declare -g PLYMOUTH="no" # Disable plymouth as that only causes more confusion
}
# "rockchip-common: boot NVMe, SATA, USB, then eMMC last before PXE"
# include/configs/rockchip-common.h
# On the meko r58x_pro: mmc0 is eMMC; there is no SDcard reader @TODO yes there is
# Enumerating usb is pretty slow so do it after nvme
function pre_config_uboot_target__meko_r58x_pro_patch_rockchip_common_boot_order() {
declare -a rockchip_uboot_targets=("nvme" "scsi" "usb" "mmc0" "pxe" "dhcp" "spi") # for future make-this-generic delight
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: adjust boot order to '${rockchip_uboot_targets[*]}'" "info"
sed -i -e "s/#define BOOT_TARGETS.*/#define BOOT_TARGETS \"${rockchip_uboot_targets[*]}\"/" include/configs/rockchip-common.h
regular_git diff -u include/configs/rockchip-common.h || true
}
function pre_config_uboot_target__meko_r58x_pro_patch_uboot_dtsi_for_ums() {
[[ "${BRANCH}" == "vendor" ]] && return 0 # Not for 'vendor' branch, which uses 2017.09 vendor u-boot from Radxa
display_alert "u-boot for ${BOARD}" "u-boot: add to u-boot dtsi for UMS" "info" # avoid a patch, just append to the dtsi file
# Append to the t6 u-boot dtsi file with stuff for enabling gadget/otg/peripheral mode
cat <<- EOD >> arch/arm/dts/rk3588-mekotronics-r58x-pro-u-boot.dtsi
#include "rk3588-generic-u-boot.dtsi"
&u2phy0 { status = "okay"; };
&u2phy0_otg { status = "okay"; };
&usbdp_phy0 { status = "okay"; };
&usb_host0_xhci { dr_mode = "peripheral"; maximum-speed = "high-speed"; status = "okay"; };
EOD
}
function post_config_uboot_target__extra_configs_for_meko_r58x_pro_mainline_environment_in_spi() {
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable board-specific configs" "info"
run_host_command_logged scripts/config --enable CONFIG_CMD_MISC
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable preboot & flash user LED in preboot" "info"
run_host_command_logged scripts/config --enable CONFIG_USE_PREBOOT
run_host_command_logged scripts/config --set-str CONFIG_PREBOOT "'led WIFI on; sleep 0.1; led LAN on; sleep 0.1; led PWR on; sleep 0.1; led WIFI off; sleep 0.1; led LAN off; sleep 0.1;'" # double quotes required due to run_host_command_logged's quirks
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable EFI debugging commands" "info"
run_host_command_logged scripts/config --enable CMD_EFIDEBUG
run_host_command_logged scripts/config --enable CMD_NVEDIT_EFI
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable more filesystems support" "info"
run_host_command_logged scripts/config --enable CONFIG_CMD_BTRFS
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable more compression support" "info"
run_host_command_logged scripts/config --enable CONFIG_LZO
run_host_command_logged scripts/config --enable CONFIG_BZIP2
run_host_command_logged scripts/config --enable CONFIG_ZSTD
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable gpio LED support" "info"
run_host_command_logged scripts/config --enable CONFIG_LED
run_host_command_logged scripts/config --enable CONFIG_LED_GPIO
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable networking cmds" "info"
run_host_command_logged scripts/config --enable CONFIG_CMD_NFS
run_host_command_logged scripts/config --enable CONFIG_CMD_WGET
run_host_command_logged scripts/config --enable CONFIG_CMD_DNS
run_host_command_logged scripts/config --enable CONFIG_PROT_TCP
run_host_command_logged scripts/config --enable CONFIG_PROT_TCP_SACK
# UMS, RockUSB, gadget stuff
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable UMS/RockUSB gadget" "info"
declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE")
for config in "${enable_configs[@]}"; do
run_host_command_logged scripts/config --enable "${config}"
done
# Auto-enabled by the above, force off...
run_host_command_logged scripts/config --disable USB_FUNCTION_FASTBOOT
}
# Small systemd service and timer to drive the LCD display with the hour-minute of the current time.
# Deploy the script and the systemd service in the BSP. It'll be enabled below in the image.
function post_family_tweaks_bsp__meko_r58x_pro_lcd_clock_add_systemd_service() {
display_alert "Extension: ${EXTENSION}: ${BOARD}" "adding LCD clock service and timer to BSP" "info"
: "${destination:?destination is not set}"
cat <<- 'LCD_CLOCK_SYSTEMD_SERVICE' > "$destination"/lib/systemd/system/lcd-clock.service
[Unit]
Description=Update segment LCD clock display
ConditionPathExists=/sys/devices/platform/lcd_vk2c21/display
[Service]
Type=oneshot
ExecStart=bash -c 'echo " $(date +%%H)-$(date +%%M) " > /sys/devices/platform/lcd_vk2c21/display'
LCD_CLOCK_SYSTEMD_SERVICE
cat <<- 'LCD_CLOCK_SYSTEMD_TIMER' > "$destination"/lib/systemd/system/lcd-clock.timer
[Unit]
Description=Update segment LCD clock every minute
[Timer]
OnBootSec=5
OnCalendar=*-*-* *:*:00
AccuracySec=1s
[Install]
WantedBy=timers.target
LCD_CLOCK_SYSTEMD_TIMER
return 0
}
# Enable the service created in the BSP above.
function post_family_tweaks__meko_r58x_pro_lcd_clock_service_in_image() {
display_alert "Extension: ${EXTENSION}: ${BOARD}" "LCD clock timer in the image" "info"
chroot_sdcard systemctl --no-reload enable "lcd-clock.timer"
return 0
}

View File

@ -3,7 +3,7 @@ BOARD_NAME="SpacemiT MusePi Pro"
BOARDFAMILY="spacemit"
BOARD_MAINTAINER="pyavitz"
BOARD_VENDOR="spacemit"
KERNEL_TARGET="current,edge"
KERNEL_TARGET="legacy,current,edge"
BOOT_FDT_FILE="spacemit/k1-musepi-pro.dtb"
BOOTDELAY=1
SRC_EXTLINUX="yes"

View File

@ -4,7 +4,7 @@ BOARD_VENDOR="friendlyelec"
BOARDFAMILY="rk35xx"
BOOTCONFIG="hinlink_rk3528_defconfig"
BOARD_MAINTAINER=""
KERNEL_TARGET="vendor"
KERNEL_TARGET="vendor,current,edge"
FULL_DESKTOP="no"
HAS_VIDEO_OUTPUT="no"
BOOT_FDT_FILE="rockchip/rk3528-nanopi-rev01.dtb"
@ -12,3 +12,26 @@ BOOT_SCENARIO="spl-blobs"
IMAGE_PARTITION_TABLE="gpt"
BOOTFS_TYPE="ext4"
BOOTSIZE="512"
# Mainline kernel (current/edge) uses a different DTB filename than vendor kernel
# and RK3528 debug UART is UART0 (ttyS0), not UART2 (ttyS2) like other RK35xx SoCs
function post_family_config__nanopi_zero2_mainline() {
case "${BRANCH}" in
current|edge)
declare -g BOOT_FDT_FILE="rockchip/rk3528-nanopi-zero2.dtb"
declare -g SERIALCON="ttyS0"
display_alert "$BOARD" "Using ${BOOT_FDT_FILE} and SERIALCON=${SERIALCON} for ${BRANCH}" "info"
;;
esac
}
# Patch boot script: RK3528 NanoPi Zero2 uses UART0 (ttyS0) for serial console, not UART2 (ttyS2)
function post_family_tweaks__nanopi_zero2_serial_console() {
case "${BRANCH}" in
current|edge)
display_alert "$BOARD" "Adjusting boot.cmd serial console to ttyS0 for ${BRANCH}" "info"
sed -i 's/console=ttyS2,1500000/console=ttyS0,1500000/g' "${SDCARD}"/boot/boot.cmd
mkimage -C none -A arm -T script -d "${SDCARD}"/boot/boot.cmd "${SDCARD}"/boot/boot.scr
;;
esac
}

View File

@ -2,7 +2,7 @@
BOARD_NAME="NanoPi K1 Plus"
BOARD_VENDOR="friendlyelec"
BOARDFAMILY="sun50iw2"
BOARD_MAINTAINER=""
BOARD_MAINTAINER="igorpecovnik"
BOOTCONFIG="nanopi_k1_plus_defconfig"
DEFAULT_OVERLAYS="analog-codec"
KERNEL_TARGET="current,edge,legacy"

View File

@ -2,7 +2,7 @@
BOARD_NAME="Odroid HC4"
BOARD_VENDOR="hardkernel"
BOARDFAMILY="meson-sm1"
BOARD_MAINTAINER=""
BOARD_MAINTAINER="igorpecovnik"
BOOTCONFIG="odroid-hc4_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"

View File

@ -4,6 +4,7 @@ BOARD_VENDOR="xunlong"
BOARDFAMILY="rk35xx"
BOARD_MAINTAINER=""
BOOTCONFIG="orangepi-3b-rk3566_defconfig"
BOOTCONFIG_SATA="orangepi-3b-sata-rk3566_defconfig"
BOOT_SOC="rk3566"
KERNEL_TARGET="vendor,current,edge"
FULL_DESKTOP="yes"
@ -22,7 +23,38 @@ function post_family_config__orangepi3b_use_mainline_uboot() {
declare -g BOOTPATCHDIR="v2026.01"
declare -g BOOTDELAY=1
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin u-boot-rockchip-spi.bin"
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} $BOOTCONFIG_SATA;;u-boot-rockchip-spi-sata.bin
BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} $BOOTCONFIG;;u-boot-rockchip.bin u-boot-rockchip-spi.bin"
}
function pre_config_uboot_target__orangepi3b_patch_uboot_bootconfig_hack_for_sata() {
display_alert "u-boot for ${BOARD}" "u-boot: hack bootconfig for sata spi image" "info"
if [[ $target_make == *"orangepi-3b-sata-rk3566_defconfig"* ]]; then
cp configs/orangepi-3b-rk3566_defconfig configs/orangepi-3b-sata-rk3566_defconfig
echo "CONFIG_DWC_AHCI=y" >> configs/orangepi-3b-sata-rk3566_defconfig
BOOTCONFIG="orangepi-3b-sata-rk3566_defconfig"
target_make=${target_make/orangepi-3b-sata-rk3566_defconfig/}
else
BOOTCONFIG="orangepi-3b-rk3566_defconfig"
target_make=${target_make/orangepi-3b-rk3566_defconfig/}
fi
}
function post_config_uboot_target__orangepi3b_keep_sata_bootconfig() {
display_alert "u-boot for ${BOARD}" "u-boot: hack bootconfig for sata spi image" "info"
if [[ $BOOTCONFIG == "orangepi-3b-sata-rk3566_defconfig" ]]; then
cp .config "${uboottempdir}/.config.sata"
fi
}
function pre_package_uboot_image__orangepi3b_copy_sataconfig_to_package() {
if [[ -f "${uboottempdir}/.config.sata" ]]; then
run_host_command_logged cp "${uboottempdir}/.config.sata" "$uboottempdir/usr/lib/u-boot/orangepi-3b-sata-rk3566_defconfig"
run_host_command_logged rm "${uboottempdir}/.config.sata"
fi
}
function post_family_tweaks_bsp__orangepi3b() {

View File

@ -26,8 +26,8 @@ function post_family_config__orangepi5_use_mainline_uboot() {
declare -g BOOTCONFIG="orangepi-5-rk3588s_defconfig"
declare -g BOOTDELAY=1
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git"
declare -g BOOTBRANCH="tag:v2025.10"
declare -g BOOTPATCHDIR="v2025.10"
declare -g BOOTBRANCH="tag:v2026.04-rc3"
declare -g BOOTPATCHDIR="v2026.04"
declare -g BOOTDIR="u-boot-${BOARD}"
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} $BOOTCONFIG_SATA;;u-boot-rockchip-spi-sata.bin
BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} $BOOTCONFIG;;u-boot-rockchip.bin u-boot-rockchip-spi.bin"

View File

@ -14,7 +14,6 @@ BOOT_SCENARIO="spl-blobs"
BOOT_SUPPORT_SPI="yes"
BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"
KERNEL_UPGRADE_FREEZE="vendor-rk35xx@24.8.1"
function post_family_tweaks__orangepi5pro_naming_audios() {
display_alert "$BOARD" "Renaming orangepi5pro audios" "info"

View File

@ -2,7 +2,7 @@
BOARD_NAME="Orange Pi PC2"
BOARD_VENDOR="xunlong"
BOARDFAMILY="sun50iw2"
BOARD_MAINTAINER=""
BOARD_MAINTAINER="igorpecovnik"
BOOTCONFIG="orangepi_pc2_defconfig"
KERNEL_TARGET="current,edge,legacy"
KERNEL_TEST_TARGET="current"

View File

@ -0,0 +1,27 @@
# Ky X1 octa core RISC-V SoC 2GB/4GB/8GB RAM, 2xGbit+2x2.5 Gbit Eth
BOARD_NAME="Orange Pi R2S"
BOARD_VENDOR="xunlong"
BOARDFAMILY="spacemit"
BOARD_MAINTAINER="sven-ola"
KERNEL_TARGET="legacy,current"
BOOT_FDT_FILE="spacemit/x1_orangepi-r2s.dtb"
BOOTDELAY=1
SRC_EXTLINUX="yes"
SRC_CMDLINE="earlycon=sbi console=tty1 console=ttyS0,115200 loglevel=1"
PACKAGE_LIST_BOARD=""
function post_config_uboot_target__extra_configs_for_orangepi() {
display_alert "$BOARD" "disable MMC UHS support to speed up MMC under Linux" "info"
run_host_command_logged scripts/config --disable CONFIG_MMC_UHS_SUPPORT
}
write_uboot_platform_mtd() {
if [ -b /dev/mtdblock0 ]; then
dd if="${1}/bootinfo_spinor.bin" of=/dev/mtdblock0 bs=65536 status=none;
dd if="${1}/FSBL.bin" of=/dev/mtdblock2 bs=65536 status=none;
dd if="${1}/u-boot-env-default.bin" of=/dev/mtdblock3 bs=65536 status=none;
dd if="${1}/fw_dynamic.itb" of=/dev/mtdblock4 bs=65536 status=none;
dd if="${1}/u-boot.itb" of=/dev/mtdblock5 bs=65536 status=none;
sync
fi
}

View File

@ -0,0 +1,60 @@
# Ky X1 octa core RISC-V SoC 2GB/4GB/8GB RAM, 2xGbit, Wifi, BT, M.2-M(2230), M.2-M(2280)
BOARD_NAME="Orange Pi RV2"
BOARD_VENDOR="xunlong"
BOARDFAMILY="spacemit"
BOARD_MAINTAINER="sven-ola"
KERNEL_TARGET="legacy,current"
BOOT_FDT_FILE="spacemit/x1_orangepi-rv2.dtb"
BOOTDELAY=1
SRC_EXTLINUX="yes"
SRC_CMDLINE="earlycon=sbi console=tty1 console=ttyS0,115200 loglevel=1"
PACKAGE_LIST_BOARD="rfkill bluetooth bluez bluez-tools pciutils"
case "${BRANCH}" in current)
BCMDHD_SPACEMIT_TYPE="sdio"
BCMDHD_SPACEMIT_TAG="v101.10.591.84.37-4"
enable_extension "bcmdhd-spacemit"
;;esac
function post_config_uboot_target__extra_configs_for_orangepi() {
display_alert "$BOARD" "disable MMC UHS support to speed up MMC under Linux" "info"
run_host_command_logged scripts/config --disable CONFIG_MMC_UHS_SUPPORT
}
write_uboot_platform_mtd() {
if [ -b /dev/mtdblock0 ]; then
dd if="${1}/bootinfo_spinor.bin" of=/dev/mtdblock0 bs=65536 status=none;
dd if="${1}/FSBL.bin" of=/dev/mtdblock2 bs=65536 status=none;
dd if="${1}/u-boot-env-default.bin" of=/dev/mtdblock3 bs=65536 status=none;
dd if="${1}/fw_dynamic.itb" of=/dev/mtdblock4 bs=65536 status=none;
dd if="${1}/u-boot.itb" of=/dev/mtdblock5 bs=65536 status=none;
sync
fi
}
function post_family_tweaks_bsp__orangepirv2_wifi() {
display_alert "$BOARD" "Force load bmcdhd wireless" "info"
run_host_command_logged mkdir -pv "${destination}"/etc/modules-load.d
run_host_command_logged echo "bcmdhd" > "${destination}"/etc/modules-load.d/${BOARD}.conf
}
function post_family_tweaks_bsp__orangepirv2_bluetooth() {
display_alert "$BOARD" "Installing bluetooth.service" "info"
# Bluetooth on this board is handled by a Broadcom (AP6256) chip and requires
# a custom brcm_patchram_plus binary, plus a systemd service to run it at boot time
install -m 644 $SRC/packages/bsp/orangepirv2/orangepirv2-bluetooth.service $destination/lib/systemd/system
return 0
}
function post_family_tweaks__orangepirv2_enable_bluetooth_service() {
display_alert "$BOARD" "Enabling orangepirv2-bluetooth.service" "info"
chroot_sdcard systemctl enable orangepirv2-bluetooth.service
return 0
}
function post_family_tweaks_bsp__orangepirv2_bt() {
# Build custom Bluetooth firmware hacking tool
if [ -f "$SRC/packages/bsp/$BOARD/brcm_patchram_plus.c" ];then
run_host_command_logged env PATH="${toolchain}:${PATH}" "${UBOOT_COMPILER}gcc" "$SRC/packages/bsp/${BOARD}/brcm_patchram_plus.c" -Wno-implicit-function-declaration -s -o "$destination/usr/bin/brcm_patchram_plus" || exit_with_error "Unable to compile brcm_patchram_plus.c"
fi
}

View File

@ -10,6 +10,7 @@ FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
SRC_EXTLINUX="yes"
SRC_CMDLINE="console=ttyAMA1,115200 earlycon=pl011,0x2800d000 rootfstype=ext4 rootwait cma=256m"
declare -g ATF_SKIP_LDFLAGS_WL="yes"
function post_family_tweaks__phytiumpi() {
display_alert "Applying bt blobs"

View File

@ -3,7 +3,7 @@ declare -g BOARD_NAME="Radxa Dragon Q6A"
declare -g BOARD_VENDOR="radxa"
declare -g BOARD_MAINTAINER="HeyMeco"
declare -g BOARDFAMILY="qcs6490"
declare -g KERNEL_TARGET="edge"
declare -g KERNEL_TARGET="current"
declare -g BOOTCONFIG="none"
declare -g IMAGE_PARTITION_TABLE="gpt"
enable_extension "radxa-aic8800"
@ -30,3 +30,23 @@ function post_family_tweaks_bsp__radxa-dragon-q6a_bsp_firmware_in_initrd() {
run_host_command_logged chmod -v +x "${file_added_to_bsp_destination}"
}
function post_family_tweaks__radxa-dragon-q6a_install_alsa_ucm_conf() {
# Only install for kernel 6.18.x
if [[ "${KERNEL_MAJOR_MINOR}" == "6.18" ]]; then
display_alert "Installing alsa-ucm-conf" "${BOARD}: Radxa ALSA UCM configuration" "info"
declare alsa_ucm_url="https://github.com/radxa-pkg/alsa-ucm-conf/releases/download/1.2.14-1radxa2/alsa-ucm-conf_1.2.14-1radxa2_all.deb"
declare alsa_ucm_deb="/tmp/alsa-ucm-conf_1.2.14-1radxa2_all.deb"
# Download the package
run_host_command_logged wget -O "${SDCARD}${alsa_ucm_deb}" "${alsa_ucm_url}"
# Install in chroot
chroot_sdcard dpkg -i "${alsa_ucm_deb}"
# Clean up
run_host_command_logged rm -f "${SDCARD}${alsa_ucm_deb}"
else
display_alert "Skipping alsa-ucm-conf installation" "Kernel version ${KERNEL_MAJOR_MINOR} != 6.18" "info"
fi
}

View File

@ -3,8 +3,8 @@ BOARD_NAME="Radxa Nio 12L"
BOARD_VENDOR="radxa"
BOARDFAMILY="genio"
BOARD_MAINTAINER="HeyMeco"
KERNEL_TARGET="collabora"
KERNEL_TEST_TARGET="collabora"
KERNEL_TARGET="edge"
KERNEL_TEST_TARGET="edge"
BOOT_FDT_FILE="mediatek/mt8395-radxa-nio-12l.dtb" # automatically patched by u-boot with autodetected memory size
SERIALCON="ttyS0:921600"
SRC_CMDLINE="splash plymouth.ignore-serial-consoles console=ttyS0,921600 console=tty0" # for extlinux/EXT=u-boot-menu

View File

@ -4,8 +4,8 @@ BOARD_VENDOR="radxa"
BOARDFAMILY="rk35xx"
BOARD_MAINTAINER="HeyMeco"
BOOTCONFIG="rock-4d-spi-rk3576_defconfig"
KERNEL_TARGET="vendor"
KERNEL_TEST_TARGET="vendor"
KERNEL_TARGET="vendor,edge"
KERNEL_TEST_TARGET="edge"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3576-rock-4d-spi.dtb"
@ -16,6 +16,79 @@ IMAGE_PARTITION_TABLE="gpt"
enable_extension "radxa-aic8800"
AIC8800_TYPE="usb"
# Mainline U-Boot
function post_family_config__rock4d_use_mainline_uboot() {
display_alert "$BOARD" "Using mainline U-Boot for $BOARD / $BRANCH" "info"
declare -g DDR_BLOB="rk35/rk3576_ddr_lp4_2112MHz_lp5_2736MHz_v1.09.bin"
# Use mainline ATF v2.14 (rk3576 support added in this release)
BOOT_SCENARIO="tpl-blob-atf-mainline"
prepare_boot_configuration
declare -g ATFBRANCH="tag:v2.14.0"
declare -g ATFPATCHDIR="atf-rockchip64/v2.14"
declare -g BOOTCONFIG="rock-4d-rk3576_defconfig"
declare -g BOOTDELAY=1
declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git"
declare -g BOOTBRANCH="tag:v2026.04-rc2"
declare -g BOOTPATCHDIR="v2026.04"
unset BOOT_FDT_FILE # mainline defconfig has DEFAULT_FDT_FILE set
# Binman produces both eMMC/SD and SPI images; mainline ATF bl31.elf + DDR blob
declare -g UBOOT_TARGET_MAP="BL31=bl31.elf ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin u-boot-rockchip-spi.bin"
# Disable vendor-specific postprocessing; binman does all the work
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd
# Just use the binman-provided u-boot-rockchip.bin, which is ready-to-go
function write_uboot_platform() {
dd "if=$1/u-boot-rockchip.bin" "of=$2" bs=32k seek=1 conv=notrunc status=none
}
function write_uboot_platform_mtd() {
flashcp -v -p "$1/u-boot-rockchip-spi.bin" /dev/mtd0
}
}
# Enable UFS and SPI environment storage for mainline U-Boot
function post_config_uboot_target__rock4d_enable_ufs_and_spi_env() {
display_alert "$BOARD" "Enabling UFS and SPI env for ${BOOTBRANCH} u-boot" "info"
# Enable RK3576 UFS storage support
run_host_command_logged scripts/config --enable CONFIG_SCSI
run_host_command_logged scripts/config --enable CONFIG_CMD_SCSI
run_host_command_logged scripts/config --enable CONFIG_UFS
run_host_command_logged scripts/config --enable CONFIG_UFS_ROCKCHIP
# Enable SPL UFS boot support; SPL_DM_GPIO/SPL_GPIO/SPL_DM_RESET are required
# by UFS_ROCKCHIP when SPL_UFS_SUPPORT is set (no longer auto-implied by Kconfig in v5 patches)
run_host_command_logged scripts/config --enable CONFIG_SPL_UFS_SUPPORT
run_host_command_logged scripts/config --enable CONFIG_SPL_DM_GPIO
run_host_command_logged scripts/config --enable CONFIG_SPL_GPIO
run_host_command_logged scripts/config --enable CONFIG_SPL_DM_RESET
# Store U-Boot environment in SPI flash
run_host_command_logged scripts/config --set-val CONFIG_ENV_IS_NOWHERE "n"
run_host_command_logged scripts/config --set-val CONFIG_ENV_IS_IN_SPI_FLASH "y"
run_host_command_logged scripts/config --set-val CONFIG_ENV_SECT_SIZE_AUTO "y"
run_host_command_logged scripts/config --set-val CONFIG_ENV_OVERWRITE "y"
run_host_command_logged scripts/config --set-val CONFIG_ENV_SIZE "0x20000"
run_host_command_logged scripts/config --set-val CONFIG_ENV_OFFSET "0xc00000"
}
# "rockchip-common: boot SD card first, then eMMC, then UFS/NVMe"
# On Rock 4D, mmc0 is SD card, mmc1 is eMMC, scsi covers UFS
function pre_config_uboot_target__rock4d_boot_order() {
declare -a rockchip_uboot_targets=("mmc0" "mmc1" "scsi" "nvme" "usb" "pxe" "dhcp")
display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: adjust boot order to '${rockchip_uboot_targets[*]}'" "info"
sed -i -e "s/#define BOOT_TARGETS.*/#define BOOT_TARGETS \"${rockchip_uboot_targets[*]}\"/" include/configs/rockchip-common.h
regular_git diff -u include/configs/rockchip-common.h || true
}
function post_family_tweaks__rock-4d_naming_audios() {
display_alert "$BOARD" "Renaming Rock-4D audios" "info"

View File

@ -2,7 +2,7 @@
BOARD_NAME="Radxa ZERO 3"
BOARD_VENDOR="radxa"
BOARDFAMILY="rk35xx"
BOARD_MAINTAINER=""
BOARD_MAINTAINER="igorpecovnik"
BOOTCONFIG="radxa-zero3-rk3566_defconfig"
KERNEL_TARGET="vendor,current,edge"
KERNEL_TEST_TARGET="vendor,current"

View File

@ -4,8 +4,8 @@ BOARD_VENDOR="radxa"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER="HeyMeco fridtjof"
BOOTCONFIG="rock5b-rk3588_defconfig"
KERNEL_TARGET="edge,vendor"
KERNEL_TEST_TARGET="vendor,edge"
KERNEL_TARGET="vendor,current,edge"
KERNEL_TEST_TARGET="vendor,current"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-rock-5b-plus.dtb"

View File

@ -4,8 +4,8 @@ BOARD_VENDOR="radxa"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER="HeyMeco"
BOOTCONFIG="rock-5t-rk3588_defconfig"
KERNEL_TARGET="vendor"
KERNEL_TEST_TARGET="vendor"
KERNEL_TARGET="vendor,current"
KERNEL_TEST_TARGET="vendor,current"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-rock-5t.dtb"

View File

@ -2,7 +2,7 @@
BOARD_NAME="xiaobao-nas"
BOARD_VENDOR="rockchip"
BOARDFAMILY="rockchip64"
BOARD_MAINTAINER=""
BOARD_MAINTAINER="Lemon1151"
BOOTCONFIG="xiaobao-nas-rk3399_defconfig"
KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"

View File

@ -5,8 +5,6 @@ BOARDFAMILY="sun8i"
BOARD_MAINTAINER="igorpecovnik"
BOOTCONFIG="zeropi_defconfig"
DEFAULT_OVERLAYS="usbhost1 usbhost2"
BOOTBRANCH="tag:v2025.04"
BOOTPATCHDIR="v2025-sunxi"
MODULES_BLACKLIST="lima"
DEFAULT_CONSOLE="serial"
SERIALCON="ttyS0"

View File

@ -1,9 +1,13 @@
bluedevil
konsole
kscreen
neon-desktop
sddm
pipewire-audio
pipewire-pulse
plasma-discover
plasma-nm
plasma-pa
plasma-discover
plasma-vault
scdaemon
kscreen
bluedevil
sddm
wireplumber

View File

@ -1 +1 @@
arm64, amd64
arm64, amd64, riscv64

View File

@ -1,4 +1,4 @@
# Armbian defconfig generated with 6.19
# Armbian defconfig generated with 7.0
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
@ -7,7 +7,6 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
CONFIG_BPF_LSM=y
CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
@ -238,28 +237,25 @@ CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
CONFIG_NETFILTER_XTABLES_COMPAT=y
CONFIG_NETFILTER_XTABLES_LEGACY=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_NAT=m
CONFIG_NETFILTER_XT_TARGET_NETMAP=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@ -359,7 +355,13 @@ CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_SYNPROXY=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
@ -374,14 +376,23 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_TARGET_SYNPROXY=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES_LEGACY=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
@ -1119,7 +1130,6 @@ CONFIG_WLCORE_SPI=m
CONFIG_WLCORE_SDIO=m
CONFIG_RTL8723DS=m
CONFIG_RTL8822CS=m
CONFIG_RTL8192EU=m
CONFIG_RTL8189FS=m
CONFIG_RTL8189ES=m
CONFIG_ZD1211RW=m
@ -2382,13 +2392,43 @@ CONFIG_VIDEO_GS1662=m
CONFIG_DVB_DUMMY_FE=m
CONFIG_AUXDISPLAY=y
CONFIG_DRM=y
CONFIG_DRM_SIMPLEDRM=m
CONFIG_DRM_HDLCD=m
CONFIG_DRM_HDLCD_SHOW_UNDERRUN=y
CONFIG_DRM_MALI_DISPLAY=m
CONFIG_DRM_VMWGFX=m
CONFIG_DRM_UDL=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_CHIPONE_ICN6211=m
CONFIG_DRM_CROS_EC_ANX7688=m
CONFIG_DRM_ITE_IT6505=m
CONFIG_DRM_LONTIUM_LT8912B=m
CONFIG_DRM_LONTIUM_LT9211=m
CONFIG_DRM_LONTIUM_LT9611=m
CONFIG_DRM_LONTIUM_LT9611UXC=m
CONFIG_DRM_ITE_IT66121=m
CONFIG_DRM_LVDS_CODEC=m
CONFIG_DRM_NWL_MIPI_DSI=m
CONFIG_DRM_PARADE_PS8640=m
CONFIG_DRM_SII9234=m
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_DRM_THINE_THC63LVD1024=m
CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358768=m
CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_TI_DLPC3433=m
CONFIG_DRM_TI_SN65DSI83=m
CONFIG_DRM_TI_TPD12S015=m
CONFIG_DRM_ANALOGIX_ANX6345=m
CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_ANALOGIX_ANX7625=m
CONFIG_DRM_CDNS_DSI=m
CONFIG_DRM_CDNS_MHDP8546=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI_GP_AUDIO=m
CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_GUD=m
CONFIG_DRM_HISI_KIRIN=m
CONFIG_DRM_LIMA=m
CONFIG_DRM_LOGICVC=m
CONFIG_DRM_MESON=y
CONFIG_DRM_PANEL_ABT_Y030XX067A=m
CONFIG_DRM_PANEL_ARM_VERSATILE=m
CONFIG_DRM_PANEL_BOE_HIMAX8279D=m
@ -2448,38 +2488,12 @@ CONFIG_DRM_PANEL_TPO_TPG110=m
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m
CONFIG_DRM_PANEL_XINPENG_XPP055C272=m
CONFIG_DRM_CHIPONE_ICN6211=m
CONFIG_DRM_CROS_EC_ANX7688=m
CONFIG_DRM_ITE_IT6505=m
CONFIG_DRM_LONTIUM_LT8912B=m
CONFIG_DRM_LONTIUM_LT9211=m
CONFIG_DRM_LONTIUM_LT9611=m
CONFIG_DRM_LONTIUM_LT9611UXC=m
CONFIG_DRM_ITE_IT66121=m
CONFIG_DRM_LVDS_CODEC=m
CONFIG_DRM_NWL_MIPI_DSI=m
CONFIG_DRM_PARADE_PS8640=m
CONFIG_DRM_SII9234=m
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_DRM_THINE_THC63LVD1024=m
CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358768=m
CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_TI_DLPC3433=m
CONFIG_DRM_TI_SN65DSI83=m
CONFIG_DRM_TI_TPD12S015=m
CONFIG_DRM_ANALOGIX_ANX6345=m
CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_ANALOGIX_ANX7625=m
CONFIG_DRM_CDNS_DSI=m
CONFIG_DRM_CDNS_MHDP8546=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI_GP_AUDIO=m
CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_HISI_KIRIN=m
CONFIG_DRM_LOGICVC=m
CONFIG_DRM_MESON=y
CONFIG_DRM_PANFROST=m
CONFIG_DRM_SSD130X=m
CONFIG_DRM_SSD130X_I2C=m
CONFIG_DRM_SSD130X_SPI=m
CONFIG_DRM_SIMPLEDRM=m
CONFIG_DRM_TIDSS=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_GM12U320=m
CONFIG_DRM_PANEL_MIPI_DBI=m
@ -2490,14 +2504,10 @@ CONFIG_TINYDRM_ILI9341=m
CONFIG_TINYDRM_ILI9486=m
CONFIG_TINYDRM_MI0283QT=m
CONFIG_TINYDRM_REPAPER=m
CONFIG_DRM_UDL=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_VMWGFX=m
CONFIG_DRM_XEN_FRONTEND=m
CONFIG_DRM_LIMA=m
CONFIG_DRM_PANFROST=m
CONFIG_DRM_TIDSS=m
CONFIG_DRM_GUD=m
CONFIG_DRM_SSD130X=m
CONFIG_DRM_SSD130X_I2C=m
CONFIG_DRM_SSD130X_SPI=m
CONFIG_FB=y
CONFIG_FB_UVESA=m
CONFIG_FB_SM501=m
@ -3102,7 +3112,6 @@ CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_WUSB3801=m
CONFIG_TYPEC_MUX_FSA4480=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_MUX_GPIO_SWITCH=m
CONFIG_TYPEC_DP_ALTMODE=m
CONFIG_MMC=y
CONFIG_PWRSEQ_SD8787=m
@ -3823,7 +3832,6 @@ CONFIG_NFS_V2=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4_1_MIGRATION=y
CONFIG_NFS_FSCACHE=y
@ -3935,7 +3943,6 @@ CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_CRYPTD=y
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARIA=m
CONFIG_CRYPTO_BLOWFISH=m
@ -3963,7 +3970,6 @@ CONFIG_CRYPTO_WP512=y
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_842=m
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_CTR=y
@ -3971,11 +3977,9 @@ CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_SM3_NEON=m
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_AES_ARM64=y
CONFIG_CRYPTO_AES_ARM64_BS=y
CONFIG_CRYPTO_SM4_ARM64_CE=m
CONFIG_CRYPTO_SM4_ARM64_CE_BLK=m
@ -4008,7 +4012,6 @@ CONFIG_SECONDARY_TRUSTED_KEYRING=y
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
CONFIG_XZ_DEC_TEST=m
CONFIG_CMA_SIZE_MBYTES=128
CONFIG_GLOB_SELFTEST=m
CONFIG_IRQ_POLL=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
@ -4032,7 +4035,6 @@ CONFIG_KUNIT=m
CONFIG_KUNIT_ALL_TESTS=m
CONFIG_FUNCTION_ERROR_INJECTION=y
# CONFIG_TEST_LIST_SORT is not set
CONFIG_TEST_MIN_HEAP=m
# CONFIG_TEST_SORT is not set
CONFIG_TEST_DIV64=m
CONFIG_REED_SOLOMON_TEST=m

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
# Armbian defconfig generated with 6.18
# Armbian defconfig generated with 7.0
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="radxa-qcom"
CONFIG_SYSVIPC=y
@ -10,7 +10,6 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_LSM=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_SCHED_CORE=y
CONFIG_IRQ_TIME_ACCOUNTING=y
@ -306,28 +305,25 @@ CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XTABLES_COMPAT=y
CONFIG_NETFILTER_XTABLES_LEGACY=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_NAT=m
CONFIG_NETFILTER_XT_TARGET_NETMAP=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@ -427,7 +423,13 @@ CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_SYNPROXY=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
@ -442,14 +444,23 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_TARGET_SYNPROXY=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES_LEGACY=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
@ -963,7 +974,6 @@ CONFIG_ENCX24J600=m
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_NET_VENDOR_NI is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETERION is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
@ -1171,14 +1181,13 @@ CONFIG_SERIO_AMBAKMI=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_LEGACY_TIOCSTI is not set
CONFIG_SERIAL_8250=m
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
# CONFIG_SERIAL_8250_16550A_VARIANTS is not set
# CONFIG_SERIAL_8250_PCI is not set
# CONFIG_SERIAL_8250_EXAR is not set
CONFIG_SERIAL_8250_NR_UARTS=8
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_DW=m
# CONFIG_SERIAL_8250_PERICOM is not set
CONFIG_SERIAL_OF_PLATFORM=m
@ -1241,7 +1250,6 @@ CONFIG_PINCTRL_LPASS_LPI=m
CONFIG_PINCTRL_SC7280_LPASS_LPI=m
CONFIG_PINCTRL_SM6115_LPASS_LPI=m
CONFIG_PINCTRL_SM8250_LPASS_LPI=m
CONFIG_PINCTRL_SM8350_LPASS_LPI=m
CONFIG_PINCTRL_SM8450_LPASS_LPI=m
CONFIG_PINCTRL_SC8280XP_LPASS_LPI=m
CONFIG_PINCTRL_SM8550_LPASS_LPI=m
@ -1439,6 +1447,7 @@ CONFIG_VIDEO_QCOM_IRIS=m
CONFIG_VIDEO_QCOM_VENUS=m
CONFIG_VIDEO_IMX219=m
CONFIG_VIDEO_IMX412=m
CONFIG_VIDEO_IMX415=m
CONFIG_VIDEO_OV5640=m
CONFIG_VIDEO_OV5645=m
CONFIG_DRM=y
@ -1448,7 +1457,9 @@ CONFIG_DRM_CLIENT_LOG=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_DISPLAY_DP_AUX_CEC=y
CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV=y
CONFIG_DRM_SIMPLEDRM=y
CONFIG_DRM_DISPLAY_CONNECTOR=y
CONFIG_DRM_SIMPLE_BRIDGE=y
CONFIG_DRM_LIMA=m
CONFIG_DRM_MSM=y
# CONFIG_DRM_MSM_DSI_28NM_PHY is not set
# CONFIG_DRM_MSM_DSI_20NM_PHY is not set
@ -1462,7 +1473,6 @@ CONFIG_DRM_PANEL_ILITEK_ILI9882T=m
CONFIG_DRM_PANEL_KHADAS_TS050=m
CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
CONFIG_DRM_PANEL_NOVATEK_NT36672E=m
CONFIG_DRM_PANEL_ORISETECH_OTA7290B=y
CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
@ -1472,11 +1482,9 @@ CONFIG_DRM_PANEL_EDP=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m
CONFIG_DRM_DISPLAY_CONNECTOR=y
CONFIG_DRM_SIMPLE_BRIDGE=y
CONFIG_DRM_LIMA=m
CONFIG_DRM_PANFROST=m
CONFIG_DRM_PANTHOR=m
CONFIG_DRM_SIMPLEDRM=y
CONFIG_FB=y
CONFIG_FB_EFI=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
@ -1838,7 +1846,6 @@ CONFIG_QCOM_HIDMA=y
CONFIG_DW_EDMA=m
CONFIG_UDMABUF=y
CONFIG_DMABUF_HEAPS=y
CONFIG_DMABUF_SYSFS_STATS=y
CONFIG_DMABUF_HEAPS_SYSTEM=y
CONFIG_DMABUF_HEAPS_CMA=y
CONFIG_VFIO=y
@ -2107,7 +2114,6 @@ CONFIG_NFS_V2=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4_1_MIGRATION=y
CONFIG_NFS_FSCACHE=y
@ -2120,7 +2126,6 @@ CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_V4_2_INTER_SSC=y
CONFIG_NFSD_V4_SECURITY_LABEL=y
# CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set
CONFIG_NFS_LOCALIO=y
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y
@ -2237,7 +2242,6 @@ CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_ECDH=y
CONFIG_CRYPTO_ECDSA=y
CONFIG_CRYPTO_ECRDSA=m
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_ARIA=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAST5=m
@ -2262,7 +2266,6 @@ CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_842=m
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_USER_API_HASH=m
@ -2270,13 +2273,9 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_NHPOLY1305_NEON=y
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_SHA3_ARM64=m
CONFIG_CRYPTO_SM3_NEON=y
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_POLYVAL_ARM64_CE=y
CONFIG_CRYPTO_AES_ARM64=y
CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_CRYPTO_SM4_ARM64_CE=y
CONFIG_CRYPTO_SM4_ARM64_NEON_BLK=y
@ -2287,11 +2286,9 @@ CONFIG_CRYPTO_DEV_QCE=m
CONFIG_CRYPTO_DEV_QCOM_RNG=m
CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_CRYPTO_KRB5=m
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_CORDIC=m
CONFIG_INDIRECT_PIO=y
CONFIG_XZ_DEC_MICROLZMA=y
CONFIG_DMA_RESTRICTED_POOL=y
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=32

View File

@ -274,7 +274,6 @@ CONFIG_MTD_UBI_BLOCK=y
CONFIG_OF_OVERLAY=y
CONFIG_ZRAM=m
CONFIG_ZRAM_WRITEBACK=y
CONFIG_ZRAM_MEMORY_TRACKING=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_SCSI=y
@ -539,11 +538,6 @@ CONFIG_KEY_DH_OPERATIONS=y
# CONFIG_XZ_DEC_SPARC is not set
CONFIG_PRINTK_TIME=y
# CONFIG_DEBUG_MISC is not set
CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_DEBUG_INFO_BTF=y
CONFIG_DEBUG_FS=y
# CONFIG_SLUB_DEBUG is not set
# CONFIG_SCHED_DEBUG is not set
CONFIG_FUNCTION_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
# CONFIG_RUNTIME_TESTING_MENU is not set

View File

@ -96,6 +96,7 @@ CONFIG_INET=y
CONFIG_INET_ESP=m
# CONFIG_INET_DIAG is not set
CONFIG_IPV6=m
CONFIG_IPV6_TUNNEL=m
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=m
CONFIG_NETFILTER_NETLINK_HOOK=m
@ -276,6 +277,8 @@ CONFIG_MTD_SPI_NOR=y
CONFIG_MTD_SPI_NOR_MISC=y
CONFIG_MTD_UBI=y
CONFIG_MTD_UBI_BLOCK=y
# CONFIG_DTC_OMIT_DISABLED is not set
# CONFIG_DTC_OMIT_EMPTY is not set
CONFIG_ZRAM=m
CONFIG_ZRAM_WRITEBACK=y
CONFIG_ZRAM_MEMORY_TRACKING=y
@ -286,9 +289,11 @@ CONFIG_BLK_DEV_SD=m
# CONFIG_SCSI_LOWLEVEL is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_WIREGUARD=m
CONFIG_MACVLAN=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_TUN=m
CONFIG_VETH=m
# CONFIG_NET_VENDOR_ALACRITECH is not set
# CONFIG_NET_VENDOR_AMAZON is not set
@ -393,8 +398,10 @@ CONFIG_I2C_CHARDEV=y
CONFIG_I2C_GPIO=y
CONFIG_I2C_RK3X=y
CONFIG_SPI=y
CONFIG_SPI_ROCKCHIP=y
CONFIG_SPI_ROCKCHIP_FLEXBUS_FSPI=y
CONFIG_SPI_ROCKCHIP_SFC=y
CONFIG_SPI_SPIDEV=y
# CONFIG_PTP_1588_CLOCK_KVM is not set
CONFIG_GPIO_SYSFS=y
CONFIG_POWER_RESET=y
@ -488,8 +495,6 @@ CONFIG_FIQ_DEBUGGER_TRUST_ZONE=y
CONFIG_RK_CONSOLE_THREAD=y
CONFIG_ROCKCHIP_DEBUG=y
CONFIG_ROCKCHIP_MINI_KERNEL=y
# CONFIG_DTC_OMIT_DISABLED is not set
# CONFIG_DTC_OMIT_EMPTY is not set
CONFIG_PM_DEVFREQ=y
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
CONFIG_DEVFREQ_GOV_USERSPACE=y

View File

@ -8,7 +8,6 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set
CONFIG_BPF_LSM=y
CONFIG_PREEMPT=y
CONFIG_SCHED_CORE=y
@ -80,7 +79,7 @@ CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
CONFIG_CPUFREQ_DT=m
CONFIG_CPUFREQ_DT=y
CONFIG_ARM_SCPI_CPUFREQ=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
@ -234,28 +233,25 @@ CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
CONFIG_NETFILTER_XTABLES_COMPAT=y
CONFIG_NETFILTER_XTABLES_LEGACY=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_NAT=m
CONFIG_NETFILTER_XT_TARGET_NETMAP=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_SECMARK=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
@ -354,7 +350,13 @@ CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_SYNPROXY=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
@ -369,14 +371,23 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_TARGET_SYNPROXY=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE_NF_EBTABLES_LEGACY=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
@ -2607,11 +2618,11 @@ CONFIG_USB_G_MULTI_CDC=y
CONFIG_USB_G_HID=m
CONFIG_USB_G_WEBCAM=m
CONFIG_USB_RAW_GADGET=m
CONFIG_TYPEC=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
CONFIG_TYPEC=y
CONFIG_TYPEC_TCPM=y
CONFIG_TYPEC_TCPCI=y
CONFIG_TYPEC_RT1711H=m
CONFIG_TYPEC_FUSB302=m
CONFIG_TYPEC_FUSB302=y
CONFIG_TYPEC_UCSI=m
CONFIG_UCSI_CCG=m
CONFIG_TYPEC_TPS6598X=m
@ -3103,7 +3114,7 @@ CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=m
CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=m
CONFIG_PHY_ROCKCHIP_TYPEC=y
CONFIG_PHY_ROCKCHIP_USB=y
CONFIG_PHY_ROCKCHIP_USBDP=m
CONFIG_PHY_ROCKCHIP_USBDP=y
CONFIG_PHY_SAMSUNG_USB2=y
CONFIG_ARM_CCI_PMU=m
# CONFIG_ARM_CCI400_PMU is not set

View File

@ -1980,6 +1980,7 @@ CONFIG_VIDEO_GS1662=m
CONFIG_DVB_DUMMY_FE=m
CONFIG_AUXDISPLAY=y
CONFIG_CHARLCD_BL_OFF=y
CONFIG_LCD_VK2C21=m
CONFIG_DRM=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_SIMPLEDRM=m

View File

@ -1,4 +1,4 @@
# Armbian defconfig generated with 6.12
# Armbian defconfig generated with 6.18
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME="@DEVICENAME@"
CONFIG_SYSVIPC=y
@ -16,6 +16,7 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_PSI=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_NUMA_BALANCING=y
@ -37,6 +38,13 @@ CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set
# CONFIG_RD_ZSTD is not set
CONFIG_SYSFS_SYSCALL=y
CONFIG_EXPERT=y
CONFIG_KALLSYMS_ALL=y
CONFIG_PROFILING=y
@ -45,9 +53,6 @@ CONFIG_KEXEC_FILE=y
CONFIG_ARCH_QCOM=y
# CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set
# CONFIG_ROCKCHIP_ERRATUM_3588001 is not set
CONFIG_ARM64_VA_BITS_48=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_NUMA=y
CONFIG_PARAVIRT=y
CONFIG_COMPAT=y
@ -69,6 +74,7 @@ CONFIG_ARM_QCOM_CPUFREQ_HW=y
CONFIG_ARM_SCMI_CPUFREQ=y
CONFIG_ACPI_CPPC_CPUFREQ=m
CONFIG_ACPI=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_HMAT=y
CONFIG_ACPI_APEI=y
@ -78,7 +84,7 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_JUMP_LABEL=y
# CONFIG_SCHED_SMT is not set
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_INTEGRITY=y
@ -88,7 +94,6 @@ CONFIG_PARTITION_ADVANCED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=y
CONFIG_ZSWAP=y
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTREMOVE=y
@ -102,11 +107,24 @@ CONFIG_UNIX=y
CONFIG_XFRM_USER=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_MROUTE=y
CONFIG_INET_ESP=m
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BBR=y
CONFIG_DEFAULT_BBR=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_IPV6_SIT=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=m
CONFIG_NETFILTER_NETLINK_HOOK=m
@ -150,18 +168,22 @@ CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_NAT=m
CONFIG_NETFILTER_XT_TARGET_NETMAP=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
@ -226,15 +248,6 @@ CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
@ -248,15 +261,8 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_TARGET_SYNPROXY=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
@ -269,7 +275,10 @@ CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_DEFAULT=y
CONFIG_DEFAULT_FQ_CODEL=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_FLOWER=m
@ -288,16 +297,17 @@ CONFIG_CGROUP_NET_PRIO=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BT=m
CONFIG_BT_HIDP=m
# CONFIG_BT_LE is not set
CONFIG_BT_LEDS=y
# CONFIG_BT_DEBUGFS is not set
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_QCA=y
CONFIG_CFG80211=m
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
CONFIG_RFKILL=m
CONFIG_RFKILL=y
CONFIG_RFKILL_INPUT=y
CONFIG_PAGE_POOL_STATS=y
CONFIG_PCI=y
@ -327,6 +337,8 @@ CONFIG_MHI_BUS=y
CONFIG_MHI_BUS_PCI_GENERIC=m
CONFIG_ARM_SCMI_PROTOCOL=y
CONFIG_ARM_SCPI_PROTOCOL=y
CONFIG_EFI_ZBOOT=y
CONFIG_EFI_CAPSULE_LOADER=m
CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE=y
CONFIG_QCOM_QSEECOM=y
CONFIG_QCOM_QSEECOM_UEFISECAPP=y
@ -362,22 +374,20 @@ CONFIG_ZRAM_BACKEND_842=y
CONFIG_ZRAM_BACKEND_LZO=y
CONFIG_ZRAM_WRITEBACK=y
CONFIG_ZRAM_MEMORY_TRACKING=y
CONFIG_ZRAM_MULTI_COMP=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_QCOM_COINCELL=m
CONFIG_QCOM_FASTRPC=y
CONFIG_SRAM=y
CONFIG_PCI_ENDPOINT_TEST=m
CONFIG_NTSYNC=m
CONFIG_EEPROM_AT24=m
CONFIG_EEPROM_AT25=m
CONFIG_EEPROM_93CX6=y
CONFIG_UACCE=m
CONFIG_SCSI=y
# CONFIG_SCSI_PROC_FS is not set
CONFIG_BLK_DEV_SD=y
CONFIG_MD=y
# CONFIG_MD_BITMAP_FILE is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_WIREGUARD=m
@ -460,6 +470,7 @@ CONFIG_MHI_NET=m
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NET_VENDOR_XILINX is not set
CONFIG_REALTEK_PHY=m
CONFIG_REALTEK_PHY_HWMON=y
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
CONFIG_USB_USBNET=m
@ -499,6 +510,9 @@ CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_RSINPUT=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GOODIX=y
CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=y
CONFIG_TOUCHSCREEN_HYNITRON_ALL=y
CONFIG_TOUCHSCREEN_EDT_FT5X06=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PM8941_PWRKEY=y
@ -564,6 +578,7 @@ CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
CONFIG_PINCTRL_LPASS_LPI=m
CONFIG_PINCTRL_SM8550_LPASS_LPI=m
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_AGGREGATOR=m
CONFIG_POWER_RESET_MSM=y
CONFIG_POWER_RESET_QCOM_PON=y
@ -600,6 +615,7 @@ CONFIG_REGULATOR_QCOM_RPMH=y
CONFIG_REGULATOR_QCOM_SMD_RPM=y
CONFIG_REGULATOR_QCOM_SPMI=y
CONFIG_REGULATOR_QCOM_USB_VBUS=y
CONFIG_REGULATOR_SGM3804=y
CONFIG_REGULATOR_VCTRL=m
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_SUPPORT_FILTER=y
@ -613,23 +629,31 @@ CONFIG_VIDEO_QCOM_VENUS=m
CONFIG_DRM=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV=y
CONFIG_DRM_I2C_CH7006=m
CONFIG_DRM_I2C_SIL164=m
CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_SIMPLEDRM=y
CONFIG_DRM_MSM=y
CONFIG_DRM_PANEL_CHIPONE_ICNA3512=y
CONFIG_DRM_PANEL_AR06_4INCH=y
CONFIG_DRM_PANEL_AR02_3INCH=y
CONFIG_DRM_PANEL_AR11_5INCH=y
CONFIG_DRM_PANEL_BOE_XM91080G=y
CONFIG_DRM_PANEL_CHIPONE_ICNA35XX=y
CONFIG_DRM_PANEL_DDIC_CH13726A=y
CONFIG_DRM_PANEL_LVDS=m
CONFIG_DRM_PANEL_RETROID_POCKET_6=y
CONFIG_DRM_PANEL_EDP=y
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SYNAPTICS_TD4328=y
CONFIG_DRM_DISPLAY_CONNECTOR=y
CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_LONTIUM_LT8912B=y
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_DRM_SIMPLEDRM=y
CONFIG_FB=y
CONFIG_FB_EFI=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_ODIN2MINI=y
CONFIG_BACKLIGHT_PWM=y
CONFIG_BACKLIGHT_QCOM_WLED=y
CONFIG_BACKLIGHT_SY7758=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
@ -662,6 +686,7 @@ CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SIMPLE_MUX=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_WCD938X_SDW=m
CONFIG_SND_SOC_WSA884X=m
CONFIG_SND_SOC_LPASS_WSA_MACRO=m
CONFIG_SND_SOC_LPASS_VA_MACRO=m
CONFIG_SND_SOC_LPASS_RX_MACRO=m
@ -669,7 +694,9 @@ CONFIG_SND_SOC_LPASS_TX_MACRO=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD2=m
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HIDRAW=y
CONFIG_UHID=y
CONFIG_HID_A4TECH=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
@ -685,14 +712,15 @@ CONFIG_HID_PLAYSTATION=y
CONFIG_PLAYSTATION_FF=y
CONFIG_HID_SONY=y
CONFIG_SONY_FF=y
CONFIG_USB_HIDDEV=y
CONFIG_I2C_HID_ACPI=m
CONFIG_I2C_HID_OF=m
CONFIG_I2C_HID_OF_ELAN=m
CONFIG_USB_HIDDEV=y
CONFIG_USB_ULPI_BUS=y
CONFIG_USB_CONN_GPIO=y
CONFIG_USB_OTG=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
@ -728,7 +756,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC_MUX_FSA4480=y
CONFIG_TYPEC_MUX_GPIO_SBU=y
CONFIG_TYPEC_MUX_NB7VPQ904M=m
CONFIG_TYPEC_MUX_NB7VPQ904M=y
CONFIG_TYPEC_DP_ALTMODE=y
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=32
@ -738,7 +766,6 @@ CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_ACPI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_MSM=y
CONFIG_MMC_SDHCI_MSM_DOWNSTREAM=y
CONFIG_MMC_SPI=y
CONFIG_MMC_DW=y
CONFIG_MMC_HSQ=y
@ -752,6 +779,7 @@ CONFIG_LEDS_CLASS_MULTICOLOR=y
CONFIG_LEDS_HTR3212=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_GROUP_MULTICOLOR=y
CONFIG_LEDS_PWM_MULTICOLOR=y
CONFIG_LEDS_QCOM_LPG=y
CONFIG_LEDS_TRIGGER_TIMER=y
@ -762,6 +790,7 @@ CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_EDAC=y
CONFIG_EDAC_GHES=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_EFI=y
CONFIG_RTC_DRV_PM8XXX=y
CONFIG_DMADEVICES=y
CONFIG_QCOM_BAM_DMA=y
@ -792,6 +821,7 @@ CONFIG_SM_TCSRCC_8550=y
CONFIG_SM_VIDEOCC_8550=y
CONFIG_SPMI_PMIC_CLKDIV=y
CONFIG_QCOM_HFPLL=y
CONFIG_CLK_GFM_LPASS_SM8250=m
CONFIG_HWSPINLOCK=y
CONFIG_HWSPINLOCK_QCOM=y
# CONFIG_FSL_ERRATUM_A008585 is not set
@ -860,6 +890,7 @@ CONFIG_QCOM_MPM=y
CONFIG_RESET_GPIO=m
CONFIG_RESET_QCOM_AOSS=y
CONFIG_RESET_QCOM_PDC=y
CONFIG_PHY_SNPS_EUSB2=y
CONFIG_PHY_CAN_TRANSCEIVER=m
CONFIG_PHY_CADENCE_TORRENT=m
CONFIG_PHY_CADENCE_DPHY_RX=m
@ -870,7 +901,6 @@ CONFIG_PHY_QCOM_PCIE2=m
CONFIG_PHY_QCOM_QMP=y
CONFIG_PHY_QCOM_QMP_PCIE_8996=m
CONFIG_PHY_QCOM_QUSB2=m
CONFIG_PHY_QCOM_SNPS_EUSB2=y
CONFIG_PHY_QCOM_EUSB2_REPEATER=y
CONFIG_PHY_QCOM_M31_USB=m
CONFIG_PHY_QCOM_USB_HS=m
@ -890,6 +920,9 @@ CONFIG_ARM_DMC620_PMU=m
CONFIG_HISI_PMU=y
CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU=m
CONFIG_NVIDIA_CORESIGHT_PMU_ARCH_SYSTEM_PMU=m
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder"
CONFIG_NVMEM_LAYOUT_SL28_VPD=m
CONFIG_NVMEM_QCOM_QFPROM=y
CONFIG_NVMEM_QCOM_SEC_QFPROM=y
@ -900,7 +933,6 @@ CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_MUX_GPIO=m
CONFIG_MUX_MMIO=m
CONFIG_SLIM_QCOM_CTRL=m
CONFIG_SLIM_QCOM_NGD_CTRL=m
CONFIG_INTERCONNECT_QCOM=y
CONFIG_INTERCONNECT_QCOM_OSM_L3=y
@ -943,36 +975,44 @@ CONFIG_PSTORE_RAM=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y
CONFIG_NFSD=y
CONFIG_NLS_DEFAULT="utf-8"
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_PERSISTENT_KEYRINGS=y
CONFIG_ENCRYPTED_KEYS=y
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_APPARMOR=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,bpf"
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,apparmor,bpf"
CONFIG_CRYPTO_USER=y
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_ECDH=y
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_BLAKE2B=y
CONFIG_CRYPTO_CMAC=y
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_SHA1_ARM64_CE=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
CONFIG_CRYPTO_SHA512_ARM64_CE=m
CONFIG_CRYPTO_SHA3_ARM64=m
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_CRYPTO_AES_ARM64=y
CONFIG_CRYPTO_AES_ARM64_BS=y
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=y
CONFIG_CRYPTO_DEV_QCE=y
CONFIG_CRYPTO_DEV_QCOM_RNG=y
CONFIG_CRYPTO_DEV_CCREE=m
@ -983,7 +1023,6 @@ CONFIG_CRYPTO_DEV_HISI_TRNG=m
CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m
CONFIG_PACKING=y
CONFIG_INDIRECT_PIO=y
CONFIG_CRC_CCITT=m
CONFIG_DMA_RESTRICTED_POOL=y
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=32
@ -998,7 +1037,6 @@ CONFIG_DEBUG_INFO_REDUCED=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_SCHED_DEBUG is not set
CONFIG_FUNCTION_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_MEMTEST=y

View File

@ -7,6 +7,8 @@ CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_LSM=y
CONFIG_PREEMPT=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
@ -14,9 +16,11 @@ CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_PSI=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_NUMA_BALANCING=y
CONFIG_CGROUP_FAVOR_DYNMODS=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CFS_BANDWIDTH=y
@ -29,10 +33,18 @@ CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
CONFIG_CGROUP_BPF=y
CONFIG_CGROUP_MISC=y
CONFIG_NAMESPACES=y
CONFIG_USER_NS=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set
# CONFIG_RD_ZSTD is not set
CONFIG_SYSFS_SYSCALL=y
CONFIG_EXPERT=y
CONFIG_KALLSYMS_ALL=y
CONFIG_PROFILING=y
@ -41,7 +53,6 @@ CONFIG_KEXEC_FILE=y
CONFIG_ARCH_QCOM=y
# CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set
# CONFIG_ROCKCHIP_ERRATUM_3588001 is not set
CONFIG_ARM64_VA_BITS_48=y
CONFIG_NUMA=y
CONFIG_PARAVIRT=y
CONFIG_COMPAT=y
@ -63,6 +74,7 @@ CONFIG_ARM_QCOM_CPUFREQ_HW=y
CONFIG_ARM_SCMI_CPUFREQ=y
CONFIG_ACPI_CPPC_CPUFREQ=m
CONFIG_ACPI=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_HMAT=y
CONFIG_ACPI_APEI=y
@ -72,10 +84,12 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
# CONFIG_SCHED_SMT is not set
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_PARTITION_ADVANCED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=y
@ -93,11 +107,24 @@ CONFIG_UNIX=y
CONFIG_XFRM_USER=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IP_MROUTE=y
CONFIG_INET_ESP=m
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BBR=y
CONFIG_DEFAULT_BBR=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_ROUTE_INFO=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_IPV6_SIT=m
CONFIG_IPV6_MULTIPLE_TABLES=y
CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=m
CONFIG_NETFILTER_NETLINK_HOOK=m
@ -221,7 +248,6 @@ CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
@ -249,7 +275,10 @@ CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_DEFAULT=y
CONFIG_DEFAULT_FQ_CODEL=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_FLOWER=m
@ -265,9 +294,9 @@ CONFIG_QRTR_TUN=y
CONFIG_QRTR_MHI=y
CONFIG_NET_NCSI=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BT=m
CONFIG_BT_HIDP=m
# CONFIG_BT_LE is not set
CONFIG_BT_LEDS=y
# CONFIG_BT_DEBUGFS is not set
CONFIG_BT_HCIUART=m
@ -278,7 +307,7 @@ CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
CONFIG_RFKILL=m
CONFIG_RFKILL=y
CONFIG_RFKILL_INPUT=y
CONFIG_PAGE_POOL_STATS=y
CONFIG_PCI=y
@ -308,6 +337,7 @@ CONFIG_MHI_BUS=y
CONFIG_MHI_BUS_PCI_GENERIC=m
CONFIG_ARM_SCMI_PROTOCOL=y
CONFIG_ARM_SCPI_PROTOCOL=y
CONFIG_EFI_ZBOOT=y
CONFIG_EFI_CAPSULE_LOADER=m
CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE=y
CONFIG_QCOM_QSEECOM=y
@ -344,7 +374,6 @@ CONFIG_ZRAM_BACKEND_842=y
CONFIG_ZRAM_BACKEND_LZO=y
CONFIG_ZRAM_WRITEBACK=y
CONFIG_ZRAM_MEMORY_TRACKING=y
CONFIG_ZRAM_MULTI_COMP=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_QCOM_COINCELL=m
@ -441,6 +470,7 @@ CONFIG_MHI_NET=m
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_NET_VENDOR_XILINX is not set
CONFIG_REALTEK_PHY=m
CONFIG_REALTEK_PHY_HWMON=y
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
CONFIG_USB_USBNET=m
@ -480,6 +510,9 @@ CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_RSINPUT=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_GOODIX=y
CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX=y
CONFIG_TOUCHSCREEN_HYNITRON_ALL=y
CONFIG_TOUCHSCREEN_EDT_FT5X06=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PM8941_PWRKEY=y
@ -545,6 +578,7 @@ CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
CONFIG_PINCTRL_LPASS_LPI=m
CONFIG_PINCTRL_SM8550_LPASS_LPI=m
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_AGGREGATOR=m
CONFIG_POWER_RESET_MSM=y
CONFIG_POWER_RESET_QCOM_PON=y
@ -581,6 +615,7 @@ CONFIG_REGULATOR_QCOM_RPMH=y
CONFIG_REGULATOR_QCOM_SMD_RPM=y
CONFIG_REGULATOR_QCOM_SPMI=y
CONFIG_REGULATOR_QCOM_USB_VBUS=y
CONFIG_REGULATOR_SGM3804=y
CONFIG_REGULATOR_VCTRL=m
CONFIG_MEDIA_SUPPORT=y
CONFIG_MEDIA_SUPPORT_FILTER=y
@ -596,20 +631,29 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV=y
CONFIG_DRM_SIMPLEDRM=y
CONFIG_DRM_MSM=y
CONFIG_DRM_PANEL_CHIPONE_ICNA3512=y
CONFIG_DRM_PANEL_AR06_4INCH=y
CONFIG_DRM_PANEL_AR02_3INCH=y
CONFIG_DRM_PANEL_AR11_5INCH=y
CONFIG_DRM_PANEL_BOE_XM91080G=y
CONFIG_DRM_PANEL_CHIPONE_ICNA35XX=y
CONFIG_DRM_PANEL_DDIC_CH13726A=y
CONFIG_DRM_PANEL_LVDS=m
CONFIG_DRM_PANEL_RETROID_POCKET_6=y
CONFIG_DRM_PANEL_EDP=y
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SYNAPTICS_TD4328=y
CONFIG_DRM_DISPLAY_CONNECTOR=y
CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_LONTIUM_LT8912B=y
CONFIG_DRM_SIMPLE_BRIDGE=m
CONFIG_FB=y
CONFIG_FB_EFI=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_ODIN2MINI=y
CONFIG_BACKLIGHT_PWM=y
CONFIG_BACKLIGHT_QCOM_WLED=y
CONFIG_BACKLIGHT_SY7758=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
@ -642,6 +686,7 @@ CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SIMPLE_MUX=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_WCD938X_SDW=m
CONFIG_SND_SOC_WSA884X=m
CONFIG_SND_SOC_LPASS_WSA_MACRO=m
CONFIG_SND_SOC_LPASS_VA_MACRO=m
CONFIG_SND_SOC_LPASS_RX_MACRO=m
@ -649,7 +694,9 @@ CONFIG_SND_SOC_LPASS_TX_MACRO=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD=m
CONFIG_SND_AUDIO_GRAPH_CARD2=m
CONFIG_HID_BATTERY_STRENGTH=y
CONFIG_HIDRAW=y
CONFIG_UHID=y
CONFIG_HID_A4TECH=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
@ -673,6 +720,7 @@ CONFIG_USB_ULPI_BUS=y
CONFIG_USB_CONN_GPIO=y
CONFIG_USB_OTG=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
@ -708,7 +756,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC_MUX_FSA4480=y
CONFIG_TYPEC_MUX_GPIO_SBU=y
CONFIG_TYPEC_MUX_NB7VPQ904M=m
CONFIG_TYPEC_MUX_NB7VPQ904M=y
CONFIG_TYPEC_DP_ALTMODE=y
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=32
@ -718,7 +766,6 @@ CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_ACPI=y
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_MSM=y
CONFIG_MMC_SDHCI_MSM_DOWNSTREAM=y
CONFIG_MMC_SPI=y
CONFIG_MMC_DW=y
CONFIG_MMC_HSQ=y
@ -732,6 +779,7 @@ CONFIG_LEDS_CLASS_MULTICOLOR=y
CONFIG_LEDS_HTR3212=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_GROUP_MULTICOLOR=y
CONFIG_LEDS_PWM_MULTICOLOR=y
CONFIG_LEDS_QCOM_LPG=y
CONFIG_LEDS_TRIGGER_TIMER=y
@ -836,7 +884,7 @@ CONFIG_IIO_TRIGGERED_BUFFER=m
CONFIG_QCOM_SPMI_VADC=y
CONFIG_QCOM_SPMI_ADC5=y
CONFIG_PWM=y
CONFIG_PWM_SN3112=m
CONFIG_PWM_SN3112=y
CONFIG_QCOM_PDC=y
CONFIG_QCOM_MPM=y
CONFIG_RESET_GPIO=m
@ -872,6 +920,9 @@ CONFIG_ARM_DMC620_PMU=m
CONFIG_HISI_PMU=y
CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU=m
CONFIG_NVIDIA_CORESIGHT_PMU_ARCH_SYSTEM_PMU=m
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder"
CONFIG_NVMEM_LAYOUT_SL28_VPD=m
CONFIG_NVMEM_QCOM_QFPROM=y
CONFIG_NVMEM_QCOM_SEC_QFPROM=y
@ -924,30 +975,43 @@ CONFIG_PSTORE_RAM=m
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y
CONFIG_NFSD=y
CONFIG_NLS_DEFAULT="utf-8"
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_PERSISTENT_KEYRINGS=y
CONFIG_ENCRYPTED_KEYS=y
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_APPARMOR=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,bpf"
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,apparmor,bpf"
CONFIG_CRYPTO_USER=y
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_ECDH=y
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_BLAKE2B=y
CONFIG_CRYPTO_CMAC=y
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_SHA3_ARM64=m
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_CRYPTO_AES_ARM64=y
CONFIG_CRYPTO_AES_ARM64_BS=y
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
CONFIG_CRYPTO_DEV_QCE=y
CONFIG_CRYPTO_DEV_QCOM_RNG=y
@ -968,8 +1032,11 @@ CONFIG_CONSOLE_LOGLEVEL_DEFAULT=4
CONFIG_CONSOLE_LOGLEVEL_QUIET=1
CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_DEBUG_INFO_REDUCED=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_FTRACE is not set
CONFIG_FUNCTION_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_MEMTEST=y

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,16 @@
# Armbian defconfig generated with 6.18
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_DEFAULT_HOSTNAME=""
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_LSM=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_DYNAMIC=y
CONFIG_RCU_EXPERT=y
CONFIG_RCU_BOOST=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_FAVOR_DYNMODS=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_SCHED=y
@ -36,12 +33,17 @@ CONFIG_BOOT_CONFIG=y
CONFIG_EXPERT=y
CONFIG_KALLSYMS_ALL=y
CONFIG_PERF_EVENTS=y
CONFIG_SOC_SPACEMIT=y
CONFIG_SOC_SPACEMIT_K1X=y
CONFIG_ARCH_SPACEMIT=y
CONFIG_SMP=y
CONFIG_NR_CPUS=8
CONFIG_NUMA=y
CONFIG_RISCV_SBI_V01=y
# CONFIG_RISCV_BOOT_SPINWAIT is not set
CONFIG_PARAVIRT=y
CONFIG_RANDOMIZE_BASE=y
CONFIG_PM_WAKELOCKS=y
CONFIG_PM_QOS_CPU_SYSTEM_WAKEUP=y
CONFIG_ENERGY_MODEL=y
CONFIG_CPU_IDLE=y
CONFIG_RISCV_SBI_CPUIDLE=y
CONFIG_CPU_FREQ=y
@ -50,7 +52,8 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
CONFIG_SPACEMIT_K1X_CPUFREQ=y
CONFIG_CPUFREQ_DT=m
CONFIG_CPUFREQ_VIRT=m
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_MODULES=y
@ -58,20 +61,20 @@ CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_COMPRESS=y
CONFIG_MODULE_COMPRESS_XZ=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_BSD_DISKLABEL=y
CONFIG_CMDLINE_PARTITION=y
CONFIG_OF_PARTITION=y
CONFIG_IOSCHED_BFQ=y
CONFIG_BINFMT_MISC=y
CONFIG_ZSWAP=y
CONFIG_ZSWAP_DEFAULT_ON=y
CONFIG_ZSMALLOC_STAT=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
CONFIG_PAGE_REPORTING=y
CONFIG_CMA=y
CONFIG_CMA_DEBUGFS=y
CONFIG_CMA_SYSFS=y
CONFIG_CMA_AREAS=8
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_DIAG=m
@ -115,7 +118,6 @@ CONFIG_TCP_CONG_CDG=m
CONFIG_IPV6_SIT=m
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=m
CONFIG_NETFILTER_NETLINK_HOOK=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_ZONES=y
CONFIG_NF_CONNTRACK_EVENTS=y
@ -166,26 +168,17 @@ CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XTABLES_COMPAT=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_NAT=m
CONFIG_NETFILTER_XT_TARGET_NETMAP=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
@ -201,7 +194,6 @@ CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_CPU=m
CONFIG_NETFILTER_XT_MATCH_DCCP=m
CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
CONFIG_NETFILTER_XT_MATCH_DSCP=m
CONFIG_NETFILTER_XT_MATCH_ESP=m
@ -209,7 +201,6 @@ CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
CONFIG_NETFILTER_XT_MATCH_HELPER=m
CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_IPVS=m
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
@ -218,7 +209,6 @@ CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_NFACCT=m
CONFIG_NETFILTER_XT_MATCH_OSF=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_POLICY=m
CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
@ -336,7 +326,7 @@ CONFIG_L2TP=m
CONFIG_L2TP_V3=y
CONFIG_L2TP_IP=m
CONFIG_L2TP_ETH=m
CONFIG_BRIDGE=y
CONFIG_BRIDGE=m
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_NET_DSA=m
CONFIG_NET_DSA_TAG_NONE=m
@ -376,7 +366,6 @@ CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
CONFIG_IEEE802154=m
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_FQ_CODEL=y
CONFIG_NET_CLS_CGROUP=m
CONFIG_BATMAN_ADV=m
CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
@ -402,7 +391,6 @@ CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
CONFIG_BT_6LOWPAN=m
CONFIG_BT_LEDS=y
# CONFIG_BT_DEBUGFS is not set
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_MTK=y
@ -434,10 +422,8 @@ CONFIG_BT_INTEL_PCIE=m
CONFIG_AF_RXRPC=m
CONFIG_AF_KCM=m
CONFIG_CFG80211=m
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
CONFIG_RFKILL=y
CONFIG_RFKILL_INPUT=y
CONFIG_RFKILL_GPIO=m
@ -482,15 +468,20 @@ CONFIG_LWTUNNEL=y
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCIE_DW_PLAT_HOST=y
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_EXTRA_FIRMWARE="esos.elf"
CONFIG_EXTRA_FIRMWARE_DIR="firmware"
CONFIG_MOXTET=m
CONFIG_MHI_BUS=m
CONFIG_MHI_BUS_PCI_GENERIC=m
CONFIG_MHI_BUS_EP=m
CONFIG_CONNECTOR=y
CONFIG_SYSFB_SIMPLEFB=y
CONFIG_EFI_BOOTLOADER_CONTROL=m
CONFIG_EFI_CAPSULE_LOADER=m
CONFIG_RESET_ATTACK_MITIGATION=y
CONFIG_GNSS=y
CONFIG_GNSS_MTK_SERIAL=m
CONFIG_GNSS_SIRF_SERIAL=m
@ -509,8 +500,8 @@ CONFIG_ZRAM_BACKEND_ZSTD=y
CONFIG_ZRAM_BACKEND_DEFLATE=y
CONFIG_ZRAM_BACKEND_842=y
CONFIG_ZRAM_BACKEND_LZO=y
CONFIG_ZRAM_WRITEBACK=y
CONFIG_ZRAM_MEMORY_TRACKING=y
CONFIG_ZRAM_MULTI_COMP=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_NVME=y
@ -521,14 +512,15 @@ CONFIG_NVME_TARGET=m
CONFIG_NVME_TARGET_PASSTHRU=y
CONFIG_NVME_TARGET_LOOP=m
CONFIG_DUMMY_IRQ=m
CONFIG_RPMB=y
CONFIG_ENCLOSURE_SERVICES=m
CONFIG_SRAM=y
CONFIG_NTSYNC=m
CONFIG_EEPROM_AT24=y
CONFIG_EEPROM_AT25=y
CONFIG_MISC_RTSX_PCI=m
CONFIG_MISC_RTSX_USB=m
CONFIG_UACCE=m
CONFIG_MISC_RP1=m
CONFIG_RAID_ATTRS=m
CONFIG_BLK_DEV_SD=y
CONFIG_CHR_DEV_ST=m
@ -539,8 +531,14 @@ CONFIG_CHR_DEV_SCH=m
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_ISCSI_TCP=m
CONFIG_ISCSI_BOOT_SYSFS=m
CONFIG_SCSI_DH=y
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
CONFIG_SATA_AHCI_PLATFORM=m
CONFIG_AHCI_DWC=m
CONFIG_SATA_DWC=m
CONFIG_SATA_DWC_OLD_DMA=y
CONFIG_ATA_GENERIC=m
CONFIG_MD=y
CONFIG_MD_LINEAR=y
CONFIG_BCACHE=y
@ -570,20 +568,28 @@ CONFIG_DM_VERITY_FEC=y
CONFIG_DM_SWITCH=y
CONFIG_DM_LOG_WRITES=y
CONFIG_DM_INTEGRITY=y
CONFIG_TARGET_CORE=m
CONFIG_TCM_IBLOCK=m
CONFIG_TCM_FILEIO=m
CONFIG_TCM_PSCSI=m
CONFIG_TCM_USER2=m
CONFIG_LOOPBACK_TARGET=m
CONFIG_ISCSI_TARGET=m
CONFIG_REMOTE_TARGET=m
CONFIG_NETDEVICES=y
CONFIG_BONDING=m
CONFIG_DUMMY=m
CONFIG_WIREGUARD=m
CONFIG_MACVLAN=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_OVPN=m
CONFIG_MACVLAN=y
CONFIG_IPVLAN=y
CONFIG_VXLAN=y
CONFIG_PFCP=m
CONFIG_AMT=m
CONFIG_MACSEC=m
CONFIG_TUN=m
CONFIG_VETH=m
CONFIG_VETH=y
CONFIG_VIRTIO_NET=y
CONFIG_NETKIT=y
CONFIG_CAIF_DRIVERS=y
CONFIG_CAIF_TTY=m
CONFIG_CAIF_VIRTIO=m
@ -624,10 +630,10 @@ CONFIG_CAIF_VIRTIO=m
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_MICROSOFT is not set
# CONFIG_NET_VENDOR_MUCSE is not set
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_NET_VENDOR_NI is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETERION is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
@ -648,7 +654,7 @@ CONFIG_R8169_LEDS=y
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_K1X_EMAC=y
CONFIG_SPACEMIT_K1_EMAC=y
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
# CONFIG_NET_VENDOR_SYNOPSYS is not set
@ -662,18 +668,16 @@ CONFIG_K1X_EMAC=y
CONFIG_FDDI=m
CONFIG_DEFXX=m
CONFIG_SKFP=m
CONFIG_HIPPI=y
CONFIG_ROADRUNNER=m
CONFIG_ROADRUNNER_LARGE_RINGS=y
CONFIG_LED_TRIGGER_PHY=y
CONFIG_MOTORCOMM_PHY=m
CONFIG_REALTEK_PHY=y
CONFIG_REALTEK_PHY_HWMON=y
CONFIG_SMSC_PHY=m
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
CONFIG_MDIO_BUS_MUX_GPIO=m
CONFIG_MDIO_BUS_MUX_MULTIPLEXER=m
CONFIG_MDIO_BUS_MUX_MMIOREG=m
CONFIG_MDIO_BITBANG=y
CONFIG_MDIO_GPIO=y
CONFIG_MDIO_BUS_MUX_GPIO=y
CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y
CONFIG_MDIO_BUS_MUX_MMIOREG=y
CONFIG_PPP=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_FILTER=y
@ -686,14 +690,64 @@ CONFIG_PPPOL2TP=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_USB_RTL8152=m
# CONFIG_WLAN_VENDOR_ADMTEK is not set
# CONFIG_WLAN_VENDOR_ATH is not set
# CONFIG_WLAN_VENDOR_ATMEL is not set
CONFIG_ADM8211=m
CONFIG_ATH5K=m
CONFIG_ATH9K=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_DYNACK=y
CONFIG_ATH9K_CHANNEL_CONTEXT=y
CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_HTC=m
CONFIG_ATH9K_HWRNG=y
CONFIG_CARL9170=m
# CONFIG_CARL9170_LEDS is not set
CONFIG_CARL9170_HWRNG=y
CONFIG_ATH6KL=m
CONFIG_ATH6KL_USB=m
CONFIG_ATH6KL_TRACING=y
CONFIG_AR5523=m
CONFIG_WIL6210=m
CONFIG_WIL6210_TRACING=y
# CONFIG_WIL6210_DEBUGFS is not set
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_AHB=y
CONFIG_WCN36XX=m
CONFIG_ATH11K=m
CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_PCI=m
CONFIG_ATH11K_TRACING=y
CONFIG_ATH12K=m
CONFIG_ATH12K_AHB=y
CONFIG_ATH12K_TRACING=y
CONFIG_AT76C50X_USB=m
# CONFIG_WLAN_VENDOR_BROADCOM is not set
# CONFIG_WLAN_VENDOR_INTEL is not set
# CONFIG_WLAN_VENDOR_INTERSIL is not set
# CONFIG_WLAN_VENDOR_MARVELL is not set
# CONFIG_WLAN_VENDOR_MEDIATEK is not set
CONFIG_LIBERTAS=m
CONFIG_LIBERTAS_USB=m
CONFIG_LIBERTAS_SPI=m
CONFIG_LIBERTAS_MESH=y
CONFIG_LIBERTAS_THINFIRM=m
CONFIG_LIBERTAS_THINFIRM_USB=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
CONFIG_MWIFIEX_USB=m
CONFIG_MWL8K=m
CONFIG_MT7601U=m
CONFIG_MT76x0U=m
CONFIG_MT76x0E=m
CONFIG_MT76x2E=m
CONFIG_MT76x2U=m
CONFIG_MT7603E=m
CONFIG_MT7615E=m
CONFIG_MT7663U=m
CONFIG_MT7915E=m
CONFIG_MT7921E=m
CONFIG_MT7921U=m
CONFIG_MT7996E=m
CONFIG_MT7925E=m
CONFIG_MT7925U=m
# CONFIG_WLAN_VENDOR_MICROCHIP is not set
# CONFIG_WLAN_VENDOR_PURELIFI is not set
CONFIG_RT2X00=m
@ -710,8 +764,6 @@ CONFIG_RT2800USB_RT55XX=y
CONFIG_RT2800USB_UNKNOWN=y
CONFIG_RTL8180=m
CONFIG_RTL8187=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
CONFIG_RTW88=m
CONFIG_RTW88_8822BE=m
CONFIG_RTW88_8822BS=m
@ -732,17 +784,20 @@ CONFIG_RTW88_8814AE=m
CONFIG_RTW88_8814AU=m
CONFIG_RTW89=m
CONFIG_RTW89_8851BE=m
CONFIG_RTW89_8851BU=m
CONFIG_RTW89_8852AE=m
CONFIG_RTW89_8852AU=m
CONFIG_RTW89_8852BE=m
CONFIG_RTW89_8852BU=m
CONFIG_RTW89_8852BTE=m
CONFIG_RTW89_8852CE=m
CONFIG_RTW89_8852CU=m
CONFIG_RTW89_8922AE=m
CONFIG_RTL8852BS=m
# CONFIG_WLAN_VENDOR_RSI is not set
# CONFIG_WLAN_VENDOR_SILABS is not set
# CONFIG_WLAN_VENDOR_ST is not set
# CONFIG_WLAN_VENDOR_TI is not set
# CONFIG_WLAN_VENDOR_ZYDAS is not set
CONFIG_ZD1211RW=m
# CONFIG_WLAN_VENDOR_QUANTENNA is not set
CONFIG_VIRT_WIFI=m
CONFIG_WAN=y
@ -761,15 +816,15 @@ CONFIG_WWAN=m
CONFIG_RPMSG_WWAN_CTRL=m
CONFIG_IOSM=m
CONFIG_MTK_T7XX=m
CONFIG_INPUT_SPARSEKMAP=m
CONFIG_INPUT_EVDEV=y
CONFIG_KEYBOARD_ADC=y
CONFIG_KEYBOARD_GPIO=y
CONFIG_KEYBOARD_GPIO_POLLED=y
CONFIG_KEYBOARD_MATRIX=m
# CONFIG_INPUT_MOUSE is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_UINPUT=y
CONFIG_INPUT_SPACEMIT_POWERKEY=y
CONFIG_HALL_SENSOR_AS1911=y
CONFIG_RMI4_CORE=y
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SPI=m
@ -777,15 +832,28 @@ CONFIG_RMI4_SMB=m
CONFIG_RMI4_F03=y
CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F1A=y
CONFIG_RMI4_F21=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
CONFIG_RMI4_F3A=y
CONFIG_RMI4_F54=y
CONFIG_SERIO_GPIO_PS2=m
CONFIG_USERIO=m
CONFIG_GAMEPORT=m
CONFIG_GAMEPORT_EMU10K1=m
CONFIG_GAMEPORT_FM801=m
# CONFIG_LEGACY_PTYS is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_FINTEK=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
CONFIG_SERIAL_PXA=y
CONFIG_SERIAL_PXA_SPACEMIT_K1X=y
CONFIG_SERIAL_PXA_CONSOLE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_TIMERIOMEM=y
@ -800,22 +868,25 @@ CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_MUX_REG=m
CONFIG_I2C_DEMUX_PINCTRL=m
CONFIG_I2C_MUX_MLXCPLD=m
CONFIG_I2C_SPACEMIT_K1X=y
CONFIG_I2C_CADENCE=m
CONFIG_I2C_CBUS_GPIO=m
CONFIG_I2C_DESIGNWARE_CORE=m
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_GPIO=y
CONFIG_I2C_GPIO_FAULT_INJECTOR=y
CONFIG_I2C_K1=y
CONFIG_I2C_TINY_USB=m
CONFIG_I2C_SLAVE_EEPROM=y
CONFIG_I2C_SLAVE=y
CONFIG_I2C_SLAVE_EEPROM=m
CONFIG_I2C_SLAVE_TESTUNIT=m
CONFIG_I3C=y
CONFIG_ADI_I3C_MASTER=m
CONFIG_CDNS_I3C_MASTER=m
CONFIG_DW_I3C_MASTER=m
CONFIG_SVC_I3C_MASTER=m
CONFIG_MIPI_I3C_HCI=m
CONFIG_MIPI_I3C_HCI_PCI=m
CONFIG_SPI=y
CONFIG_SPI_K1X=y
CONFIG_SPI_K1X_QSPI=y
CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_DW_DMA=y
CONFIG_SPI_DW_PCI=m
@ -834,14 +905,12 @@ CONFIG_PPS_CLIENT_LDISC=m
CONFIG_PPS_CLIENT_GPIO=m
CONFIG_PPS_GENERATOR=m
CONFIG_PTP_1588_CLOCK_IDTCM=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_SPACEMIT_PMIC=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_CADENCE=m
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_SYSCON=m
CONFIG_GPIO_K1X=y
CONFIG_GPIO_DWAPB=y
CONFIG_GPIO_SPACEMIT_K1=y
CONFIG_GPIO_SYSCON=y
CONFIG_GPIO_ADNP=m
CONFIG_GPIO_FXL6408=m
CONFIG_GPIO_DS4520=m
@ -853,6 +922,7 @@ CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA9570=m
CONFIG_GPIO_PCF857X=m
CONFIG_GPIO_TPIC2810=m
CONFIG_GPIO_QIXIS_FPGA=m
CONFIG_GPIO_BT8XX=m
CONFIG_GPIO_PCI_IDIO_16=m
CONFIG_GPIO_PCIE_IDIO_24=m
@ -863,6 +933,7 @@ CONFIG_GPIO_MAX7301=m
CONFIG_GPIO_MC33880=m
CONFIG_GPIO_PISOSR=m
CONFIG_GPIO_XRA1403=m
CONFIG_GPIO_MOXTET=m
CONFIG_GPIO_MPSSE=m
CONFIG_GPIO_AGGREGATOR=m
CONFIG_GPIO_LATCH=m
@ -896,14 +967,17 @@ CONFIG_W1_SLAVE_DS28E17=m
CONFIG_POWER_RESET=y
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_RESET_REGULATOR=y
CONFIG_POWER_RESET_RESTART=y
CONFIG_POWER_RESET_SYSCON=y
CONFIG_POWER_RESET_SYSCON_POWEROFF=y
CONFIG_SYSCON_REBOOT_MODE=m
CONFIG_NVMEM_REBOOT_MODE=m
CONFIG_BATTERY_SBS=y
CONFIG_CHARGER_SBS_VIRTUAL=y
CONFIG_SENSORS_DRIVETEMP=m
CONFIG_SENSORS_GPIO_FAN=m
CONFIG_SENSORS_GPIO_FAN=y
CONFIG_SENSORS_IIO_HWMON=m
CONFIG_PMBUS=y
CONFIG_SENSORS_PWM_FAN=y
CONFIG_SENSORS_DME1737=m
CONFIG_SENSORS_EMC1403=m
@ -920,19 +994,27 @@ CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_USER_SPACE=y
CONFIG_CPU_THERMAL=y
CONFIG_DEVFREQ_THERMAL=y
CONFIG_PCIE_THERMAL=y
CONFIG_K1X_THERMAL=y
CONFIG_THERMAL_MMIO=m
CONFIG_SPACEMIT_K1_TSENSOR=y
CONFIG_GENERIC_ADC_THERMAL=m
CONFIG_WATCHDOG=y
CONFIG_SOFT_WATCHDOG=m
CONFIG_SPACEMIT_WATCHDOG=y
CONFIG_MFD_SPACEMIT_PMIC=y
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_PWM=m
CONFIG_REGULATOR_VCTRL=m
CONFIG_REGULATOR_SPACEMIT=y
CONFIG_DW_WATCHDOG=m
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
CONFIG_REGULATOR_USERSPACE_CONSUMER=y
CONFIG_REGULATOR_NETLINK_EVENTS=y
CONFIG_REGULATOR_FAN53555=m
CONFIG_REGULATOR_FAN53880=m
CONFIG_REGULATOR_GPIO=y
CONFIG_REGULATOR_PWM=y
CONFIG_REGULATOR_VCTRL=y
CONFIG_CEC_CH7322=m
CONFIG_CEC_NXP_TDA9950=m
CONFIG_CEC_GPIO=m
CONFIG_USB_EXTRON_DA_HD_4K_PLUS_CEC=m
CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_RAINSHADOW_CEC=m
CONFIG_MEDIA_SUPPORT=y
@ -973,7 +1055,6 @@ CONFIG_DVB_PLATFORM_DRIVERS=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_DEINTERLACE=y
CONFIG_VIDEO_MUX=y
CONFIG_VIDEO_LINLON_K1X=m
CONFIG_DVB_M88DS3103=m
CONFIG_DVB_AF9013=m
CONFIG_DVB_RTL2830=m
@ -984,37 +1065,20 @@ CONFIG_AUXDISPLAY=y
CONFIG_HD44780=m
CONFIG_LCD2S=m
CONFIG_IMG_ASCII_LCD=m
CONFIG_HT16K33=m
CONFIG_MAX6959=m
CONFIG_SEG_LED_GPIO=m
CONFIG_DRM=y
CONFIG_DRM_SPACEMIT=y
CONFIG_SPACEMIT_MIPI_PANEL=y
CONFIG_SPACEMIT_HDMI=y
# CONFIG_DRM_LT8911EXB is not set
# CONFIG_DRM_LT9711 is not set
CONFIG_FB=y
CONFIG_FB_SIMPLE=m
CONFIG_FB_MODE_HELPERS=y
CONFIG_BACKLIGHT_PWM=y
CONFIG_BACKLIGHT_GPIO=y
CONFIG_BACKLIGHT_LED=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_SOC=y
CONFIG_SND_SOC_SPACEMIT=y
CONFIG_SPACEMIT_CARD=y
CONFIG_SPACEMIT_PCM=y
CONFIG_SPACEMIT_I2S=y
CONFIG_SPACEMIT_HDMIAUDIO=y
CONFIG_SND_SOC_K1_I2S=y
CONFIG_SND_SOC_AC97_CODEC=m
CONFIG_SND_SOC_ES7210=y
CONFIG_SND_SOC_ES8156=y
CONFIG_SND_SOC_ES8326=y
CONFIG_SND_SIMPLE_CARD=y
CONFIG_SND_AUDIO_GRAPH_CARD=m
@ -1024,17 +1088,20 @@ CONFIG_UHID=y
CONFIG_HID_MULTITOUCH=y
CONFIG_I2C_HID_OF=y
CONFIG_USB_HIDDEV=y
CONFIG_USB_LED_TRIG=y
CONFIG_USB_CONN_GPIO=y
CONFIG_USB=y
CONFIG_USB_OTG=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_K1X=y
CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_WDM=m
CONFIG_USB_STORAGE=y
CONFIG_USB_UAS=y
CONFIG_USB_DWC3=y
# CONFIG_USB_DWC3_OF_SIMPLE is not set
CONFIG_USB_DWC3_OF_SIMPLE=m
CONFIG_USB_DWC2=y
CONFIG_USB_DWC2_PCI=m
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=m
@ -1089,46 +1156,134 @@ CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_UPD78F0730=m
CONFIG_USB_SERIAL_XR=m
CONFIG_USB_SERIAL_DEBUG=m
CONFIG_USB_K1XCI_OTG=y
CONFIG_K1XCI_USB2_PHY=y
CONFIG_USB_SEVSEG=m
CONFIG_USB_LCD=m
CONFIG_USB_ONBOARD_DEV=y
CONFIG_USB_ONBOARD_DEV_USB5744=y
CONFIG_USB_ATM=m
CONFIG_USB_SPEEDTOUCH=m
CONFIG_USB_CXACRU=m
CONFIG_USB_UEAGLEATM=m
CONFIG_USB_XUSBATM=m
CONFIG_USB_ISP1301=m
CONFIG_USB_GADGET=y
CONFIG_USB_K1X_UDC=y
CONFIG_USB_CONFIGFS=y
CONFIG_USB_CONFIGFS_RNDIS=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_F_FS=y
CONFIG_USB_CONFIGFS_F_UVC=y
CONFIG_USB_CONFIGFS_F_PRINTER=y
CONFIG_TYPEC=y
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TCPCI=m
CONFIG_TYPEC_RT1711H=m
CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_FUSB302=m
CONFIG_TYPEC_UCSI=m
CONFIG_UCSI_CCG=m
CONFIG_UCSI_STM32G0=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_ANX7411=m
CONFIG_TYPEC_RT1719=m
CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_WUSB3801=m
CONFIG_TYPEC_MUX_FSA4480=m
CONFIG_TYPEC_MUX_GPIO_SBU=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_MUX_IT5205=m
CONFIG_TYPEC_MUX_NB7VPQ904M=m
CONFIG_TYPEC_MUX_PS883X=m
CONFIG_TYPEC_MUX_PTN36502=m
CONFIG_TYPEC_MUX_TUSB1046=m
CONFIG_TYPEC_MUX_WCD939X_USBSS=m
CONFIG_TYPEC_DP_ALTMODE=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
CONFIG_TYPEC_TBT_ALTMODE=m
CONFIG_MMC=y
CONFIG_PWRSEQ_SD8787=m
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=y
CONFIG_MMC_SDHCI_OF_K1X=y
CONFIG_MMC_SDHCI_OF_DWCMSHC=y
CONFIG_MMC_SDHCI_OF_K1=y
CONFIG_MMC_SPI=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_K3=m
CONFIG_MMC_DW_PCI=y
CONFIG_MMC_REALTEK_PCI=m
CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_HSQ=y
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS_MULTICOLOR=m
CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_PWM=y
CONFIG_LEDS_REGULATOR=y
CONFIG_LEDS_SYSCON=y
CONFIG_LEDS_USER=y
CONFIG_LEDS_SPI_BYTE=m
CONFIG_LEDS_GROUP_MULTICOLOR=m
CONFIG_LEDS_PWM_MULTICOLOR=m
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_ACTIVITY=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_TRANSIENT=y
CONFIG_LEDS_TRIGGER_CAMERA=y
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGER_NETDEV=y
CONFIG_LEDS_TRIGGER_PATTERN=y
CONFIG_LEDS_TRIGGER_TTY=y
CONFIG_LEDS_TRIGGER_INPUT_EVENTS=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_SPT_PMIC=y
CONFIG_RTC_DRV_SA1100=y
CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_DS1307_CENTURY=y
CONFIG_RTC_DRV_DS1374=m
CONFIG_RTC_DRV_DS1374_WDT=y
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_HYM8563=m
CONFIG_RTC_DRV_DS1302=m
CONFIG_RTC_DRV_DS1305=m
CONFIG_RTC_DRV_DS1343=m
CONFIG_RTC_DRV_DS1347=m
CONFIG_RTC_DRV_DS1390=m
CONFIG_RTC_DRV_DS1286=m
CONFIG_RTC_DRV_DS1511=m
CONFIG_RTC_DRV_DS1685_FAMILY=m
CONFIG_RTC_DRV_DS1742=m
CONFIG_RTC_DRV_DS2404=m
CONFIG_RTC_DRV_CADENCE=m
CONFIG_DMADEVICES=y
CONFIG_MMP_PDMA_DRIVER=y
CONFIG_MMP_PDMA_SPACEMIT_K1X=y
CONFIG_ADMA_SPACEMIT_K1X=y
CONFIG_USERSPACE_DMA=y
CONFIG_DW_AXI_DMAC=m
CONFIG_DW_DMAC=m
CONFIG_DW_DMAC_PCI=m
CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_UDMABUF=y
CONFIG_DMABUF_HEAPS=y
CONFIG_DMABUF_HEAPS_SYSTEM=y
CONFIG_DMABUF_HEAPS_CMA=y
CONFIG_UIO=y
CONFIG_UIO_PDRV_GENIRQ=m
CONFIG_UIO_DMEM_GENIRQ=m
# CONFIG_VIRTIO_MENU is not set
CONFIG_UIO_PDRV_GENIRQ=y
CONFIG_UIO_DMEM_GENIRQ=y
CONFIG_UIO_PCI_GENERIC=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_PMEM=m
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
CONFIG_VIRTIO_RTC=m
# CONFIG_VHOST_MENU is not set
CONFIG_STAGING=y
CONFIG_ADIS16203=m
@ -1141,56 +1296,20 @@ CONFIG_AD5933=m
CONFIG_STAGING_MEDIA=y
CONFIG_DVB_AV7110=m
CONFIG_VIDEO_MAX96712=m
CONFIG_FB_TFT=y
CONFIG_FB_TFT_AGM1264K_FL=m
CONFIG_FB_TFT_BD663474=m
CONFIG_FB_TFT_HX8340BN=m
CONFIG_FB_TFT_HX8347D=m
CONFIG_FB_TFT_HX8353D=m
CONFIG_FB_TFT_HX8357D=m
CONFIG_FB_TFT_ILI9163=m
CONFIG_FB_TFT_ILI9320=m
CONFIG_FB_TFT_ILI9325=m
CONFIG_FB_TFT_ILI9340=m
CONFIG_FB_TFT_ILI9341=m
CONFIG_FB_TFT_ILI9481=m
CONFIG_FB_TFT_ILI9486=m
CONFIG_FB_TFT_PCD8544=m
CONFIG_FB_TFT_RA8875=m
CONFIG_FB_TFT_S6D02A1=m
CONFIG_FB_TFT_S6D1121=m
CONFIG_FB_TFT_SEPS525=m
CONFIG_FB_TFT_SH1106=m
CONFIG_FB_TFT_SSD1289=m
CONFIG_FB_TFT_SSD1305=m
CONFIG_FB_TFT_SSD1306=m
CONFIG_FB_TFT_SSD1331=m
CONFIG_FB_TFT_SSD1351=m
CONFIG_FB_TFT_ST7735R=m
CONFIG_FB_TFT_ST7789V=m
CONFIG_FB_TFT_TINYLCD=m
CONFIG_FB_TFT_TLS8204=m
CONFIG_FB_TFT_UC1611=m
CONFIG_FB_TFT_UC1701=m
CONFIG_FB_TFT_UPD161704=m
CONFIG_SPACEMIT_K1X_CCU=y
CONFIG_COMMON_CLK_AXI_CLKGEN=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_FIXED_MMIO=y
CONFIG_COMMON_CLK_RPMI=m
CONFIG_SPACEMIT_K1_CCU=y
CONFIG_SPACEMIT_K3_CCU=y
CONFIG_MAILBOX=y
CONFIG_SPACEMIT_MAILBOX=y
CONFIG_K1X_MAILBOX=y
CONFIG_IOMMUFD=m
CONFIG_PLATFORM_MHU=m
CONFIG_IOMMUFD=y
CONFIG_REMOTEPROC=y
CONFIG_REMOTEPROC_CDEV=y
CONFIG_K1X_REMOTEPROC=y
CONFIG_RPMSG_CHAR=m
CONFIG_RPMSG_CTRL=m
CONFIG_RPMSG_VIRTIO=y
CONFIG_SPACEMIT_PM_DOMAINS=y
CONFIG_SPACEMIT_REBOOT_CONTROL=y
CONFIG_SPACEMIT_LID_CONTROL=y
CONFIG_SPACEMI_K1X_DMA_RANGE=y
CONFIG_SPACEMI_SOCINFO=y
CONFIG_SPACEMIT_DDRBW=y
CONFIG_CHIP_MEDIA_JPU=y
CONFIG_SPACEMIT_V2D=y
CONFIG_SPACEMIT_RFKILL=y
CONFIG_PM_DEVFREQ=y
CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
CONFIG_DEVFREQ_GOV_PERFORMANCE=m
@ -1198,7 +1317,8 @@ CONFIG_DEVFREQ_GOV_POWERSAVE=m
CONFIG_DEVFREQ_GOV_USERSPACE=m
CONFIG_DEVFREQ_GOV_PASSIVE=m
CONFIG_PM_DEVFREQ_EVENT=y
CONFIG_EXTCON_USB_K1XCI=y
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_GPIO=y
CONFIG_EXTCON_USB_GPIO=y
CONFIG_IIO=y
CONFIG_IIO_BUFFER_HW_CONSUMER=m
@ -1343,7 +1463,6 @@ CONFIG_TI_TLC4541=m
CONFIG_TI_TSC2046=m
CONFIG_VF610_ADC=m
CONFIG_XILINX_XADC=m
CONFIG_SPACEMIT_P1_ADC=m
CONFIG_AD74115=m
CONFIG_AD74413R=m
CONFIG_IIO_RESCALE=m
@ -1381,7 +1500,6 @@ CONFIG_AD5064=m
CONFIG_AD5360=m
CONFIG_AD5380=m
CONFIG_AD5421=m
CONFIG_AD5446=m
CONFIG_AD5449=m
CONFIG_AD5592R=m
CONFIG_AD5593R=m
@ -1584,7 +1702,6 @@ CONFIG_ICP10100=m
CONFIG_MPL115_I2C=m
CONFIG_MPL115_SPI=m
CONFIG_MPL3115=m
CONFIG_MPRLS0025PA=m
CONFIG_MS5611=m
CONFIG_MS5611_I2C=m
CONFIG_MS5611_SPI=m
@ -1630,15 +1747,26 @@ CONFIG_MAX31856=m
CONFIG_MAX31865=m
CONFIG_MCP9600=m
CONFIG_PWM=y
CONFIG_PWM_CLK=m
CONFIG_PWM_DWC=m
CONFIG_PWM_GPIO=m
CONFIG_PWM_PROVIDE_GPIO=y
CONFIG_PWM_ARGON_FAN_HAT=m
CONFIG_PWM_CLK=y
CONFIG_PWM_DWC=y
CONFIG_PWM_GPIO=y
CONFIG_ACLINT_SSWI=y
CONFIG_IPACK_BUS=y
CONFIG_BOARD_TPCI200=m
CONFIG_SERIAL_IPOCTAL=m
CONFIG_RESET_CONTROLLER=y
CONFIG_RESET_GPIO=m
CONFIG_RESET_K1X_SPACEMIT=y
CONFIG_RESET_GPIO=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_TI_SYSCON=m
CONFIG_RESET_TI_TPS380X=m
CONFIG_PHY_SPACEMIT_K1_USB2=y
CONFIG_DWC_PCIE_PMU=m
CONFIG_LIBNVDIMM=y
CONFIG_NVMEM_SPACEMIT_EFUSE=y
CONFIG_NVMEM_RMEM=m
CONFIG_NVMEM_SPMI_SDAM=m
CONFIG_NVMEM_U_BOOT_ENV=m
CONFIG_MUX_GPIO=m
CONFIG_MUX_MMIO=m
CONFIG_VALIDATE_FS_PARSER=y
@ -1653,9 +1781,9 @@ CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_RT=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_F2FS_FS=m
CONFIG_F2FS_FS=y
CONFIG_F2FS_FS_SECURITY=y
CONFIG_F2FS_CHECK_FS=y
CONFIG_F2FS_FS_COMPRESSION=y
@ -1664,7 +1792,7 @@ CONFIG_FANOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_OVERLAY_FS=m
CONFIG_OVERLAY_FS=y
CONFIG_NETFS_STATS=y
CONFIG_CACHEFILES=y
CONFIG_ISO9660_FS=y
@ -1687,11 +1815,9 @@ CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_EROFS_FS=m
CONFIG_NFS_FS=y
CONFIG_NFS_V4=y
CONFIG_NFS_SWAP=y
CONFIG_NFS_V4_1=y
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4_1_MIGRATION=y
CONFIG_ROOT_NFS=y
@ -1706,8 +1832,7 @@ CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
CONFIG_UNICODE=y
CONFIG_PERSISTENT_KEYRINGS=y
CONFIG_ENCRYPTED_KEYS=y
CONFIG_ENCRYPTED_KEYS=m
CONFIG_KEY_DH_OPERATIONS=y
CONFIG_SECURITY=y
CONFIG_SECURITY_APPARMOR=y
@ -1720,22 +1845,15 @@ CONFIG_CRYPTO_842=m
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
CONFIG_CRYPTO_ZSTD=y
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_USER_API_HASH=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_SPACEMIT_REE_ENGINE=y
CONFIG_SPACEMIT_REE_AES=y
CONFIG_DMA_CMA=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=8
CONFIG_CONSOLE_LOGLEVEL_QUIET=8
CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_DEBUG_INFO_BTF=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=60
# CONFIG_RCU_TRACE is not set
CONFIG_FUNCTION_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
# CONFIG_RUNTIME_TESTING_MENU is not set

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
# Armbian defconfig generated with 6.12
# Armbian defconfig generated with 6.18
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
@ -50,8 +50,6 @@ CONFIG_ARM64_ERRATUM_1286807=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_2441009=y
CONFIG_ARM64_VA_BITS_48=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_NR_CPUS=256
CONFIG_NUMA=y
CONFIG_XEN=y
@ -84,7 +82,6 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_JUMP_LABEL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLK_DEV_THROTTLING=y
@ -93,7 +90,6 @@ CONFIG_BLK_CGROUP_IOCOST=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
CONFIG_ZSWAP=y
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# CONFIG_COMPAT_BRK is not set
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTREMOVE=y
@ -160,18 +156,22 @@ CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_CT=m
CONFIG_NETFILTER_XT_TARGET_DSCP=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_HMARK=m
CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
CONFIG_NETFILTER_XT_TARGET_LED=m
CONFIG_NETFILTER_XT_TARGET_LOG=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NETFILTER_XT_NAT=m
CONFIG_NETFILTER_XT_TARGET_NETMAP=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
CONFIG_NETFILTER_XT_TARGET_TEE=m
CONFIG_NETFILTER_XT_TARGET_TPROXY=m
CONFIG_NETFILTER_XT_TARGET_TRACE=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
@ -236,16 +236,8 @@ CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_SYNPROXY=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_SECURITY=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
@ -259,15 +251,8 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_TARGET_SYNPROXY=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_META=m
@ -311,14 +296,18 @@ CONFIG_BT_MRVL=m
CONFIG_BT_MRVL_SDIO=m
CONFIG_BT_NXPUART=m
CONFIG_CFG80211=m
CONFIG_CFG80211_WEXT=y
CONFIG_MAC80211=m
CONFIG_MAC80211_MESH=y
CONFIG_MAC80211_LEDS=y
CONFIG_RFKILL=m
CONFIG_RFKILL_INPUT=y
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_NFC=m
CONFIG_NFC_DIGITAL=m
CONFIG_NFC_NCI=m
CONFIG_NFC_TRF7970A=m
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
@ -382,6 +371,7 @@ CONFIG_VIRTIO_BLK=y
CONFIG_BLK_DEV_NVME=m
CONFIG_SRAM=y
CONFIG_PCI_ENDPOINT_TEST=m
CONFIG_NTSYNC=m
CONFIG_EEPROM_AT24=m
CONFIG_EEPROM_AT25=m
CONFIG_UACCE=m
@ -554,15 +544,6 @@ CONFIG_SPMI=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_MAX77620=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_PINCTRL_IMX8MM=y
CONFIG_PINCTRL_IMX8MN=y
CONFIG_PINCTRL_IMX8MP=y
CONFIG_PINCTRL_IMX8MQ=y
CONFIG_PINCTRL_IMX8QM=y
CONFIG_PINCTRL_IMX8QXP=y
CONFIG_PINCTRL_IMX8DXL=y
CONFIG_PINCTRL_IMX8ULP=y
CONFIG_PINCTRL_IMX93=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_ALTERA=m
@ -621,7 +602,6 @@ CONFIG_MFD_HI6421_PMIC=y
CONFIG_MFD_MAX77620=y
CONFIG_MFD_MT6360=y
CONFIG_MFD_MT6397=y
CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_SL28CPLD=y
CONFIG_MFD_ROHM_BD718XX=y
CONFIG_MFD_WCD934X=m
@ -644,7 +624,6 @@ CONFIG_REGULATOR_PF8X00=y
CONFIG_REGULATOR_PFUZE100=y
CONFIG_REGULATOR_PWM=y
CONFIG_REGULATOR_QCOM_SPMI=y
CONFIG_REGULATOR_S2MPS11=y
CONFIG_REGULATOR_TPS65132=m
CONFIG_REGULATOR_VCTRL=m
CONFIG_RC_CORE=m
@ -672,7 +651,6 @@ CONFIG_VIDEO_IMX219=m
CONFIG_VIDEO_OV5640=m
CONFIG_VIDEO_OV5645=m
CONFIG_DRM=m
CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_HDLCD=m
CONFIG_DRM_MALI_DISPLAY=m
CONFIG_DRM_KOMEDA=m
@ -686,6 +664,7 @@ CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
CONFIG_DRM_DISPLAY_CONNECTOR=m
CONFIG_DRM_FSL_LDB=m
CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_LONTIUM_LT8912B=m
CONFIG_DRM_LONTIUM_LT9611=m
CONFIG_DRM_LONTIUM_LT9611UXC=m
@ -733,6 +712,7 @@ CONFIG_SND_SOC_PCM3168A_I2C=m
CONFIG_SND_SOC_RT5659=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SIMPLE_MUX=m
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_TAS571X=m
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_WCD9335=m
@ -760,7 +740,7 @@ CONFIG_HID_CYPRESS=y
CONFIG_HID_EZKEY=y
CONFIG_HID_ITE=y
CONFIG_HID_KENSINGTON=y
CONFIG_HID_LOGITECH=y
CONFIG_HID_LOGITECH=m
CONFIG_HID_REDRAGON=y
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
@ -857,15 +837,14 @@ CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_DS1307=m
CONFIG_RTC_DRV_HYM8563=m
CONFIG_RTC_DRV_MAX77686=y
CONFIG_RTC_DRV_PCF85063=m
CONFIG_RTC_DRV_PCF85363=m
CONFIG_RTC_DRV_M41T80=m
CONFIG_RTC_DRV_RX8581=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV8803=m
CONFIG_RTC_DRV_S5M=y
CONFIG_RTC_DRV_DS3232=y
CONFIG_RTC_DRV_PCF2127=m
CONFIG_RTC_DRV_PCF85063=m
CONFIG_RTC_DRV_EFI=y
CONFIG_RTC_DRV_CROS_EC=y
CONFIG_RTC_DRV_FSL_FTM_ALARM=m
@ -902,7 +881,6 @@ CONFIG_COMMON_CLK_SCMI=y
CONFIG_COMMON_CLK_SCPI=y
CONFIG_COMMON_CLK_CS2000_CP=y
CONFIG_COMMON_CLK_FSL_SAI=y
CONFIG_COMMON_CLK_S2MPS11=y
CONFIG_COMMON_CLK_PWM=y
CONFIG_COMMON_CLK_VC5=y
CONFIG_COMMON_CLK_BD718XX=m
@ -985,7 +963,6 @@ CONFIG_OF_FPGA_REGION=m
CONFIG_TEE=y
CONFIG_OPTEE=y
CONFIG_MUX_MMIO=y
CONFIG_SLIM_QCOM_CTRL=m
CONFIG_INTERCONNECT=y
CONFIG_INTERCONNECT_IMX=m
CONFIG_INTERCONNECT_IMX8MM=m
@ -993,7 +970,7 @@ CONFIG_INTERCONNECT_IMX8MN=m
CONFIG_INTERCONNECT_IMX8MQ=m
CONFIG_INTERCONNECT_IMX8MP=m
CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y
CONFIG_BTRFS_FS=m
@ -1020,7 +997,6 @@ CONFIG_NFS_V4_2=y
CONFIG_ROOT_NFS=y
# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_SMB_SERVER=m
CONFIG_SMB_SERVER_KERBEROS5=y
CONFIG_9P_FS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
@ -1035,14 +1011,10 @@ CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_GHASH_ARM64_CE=y
CONFIG_CRYPTO_SHA1_ARM64_CE=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
CONFIG_CRYPTO_SHA512_ARM64_CE=m
CONFIG_CRYPTO_SHA3_ARM64=m
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
CONFIG_CRYPTO_DEV_FSL_CAAM=m
CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m
CONFIG_CRYPTO_DEV_CCREE=m

View File

@ -32,7 +32,7 @@ declare -g MEDIATEK_GENIO_LK_BIN="${MEDIATEK_GENIO_LK_BIN:-"${BOARD}/lk/lk.bin"}
# Kernel configuration
case $BRANCH in
collabora)
edge)
declare -g LINUXCONFIG="linux-genio-$BRANCH"
declare -g KERNEL_MAJOR_MINOR="6.19"

View File

@ -23,7 +23,7 @@ case $BOARD in
ATFSOURCE='https://github.com/tq-systems/atf' # required for ram
ATFBRANCH="branch:TQM-lf_v2.10"
BOOTSOURCE='https://github.com/tq-systems/u-boot-tqmaxx.git' # u-boot mainlining is hard and has low-priority
BOOTBRANCH='commit:90aea55d842b6c3c978530532e16110123995002'
BOOTBRANCH='commit:95f15d9c75a965d06b68ca1dd7d191ccc115d2e7'
BOOTPATCHDIR="u-boot-tqma" # could be removed when distro boot patches are integrated
;;
esac

View File

@ -28,7 +28,7 @@ case $BOARD in
case $BRANCH in
current) # mainline stable kernel
KERNEL_MAJOR_MINOR="6.12"
KERNEL_MAJOR_MINOR="6.18"
;;
edge | default) # use for tests with recent mainline kernels

View File

@ -42,7 +42,7 @@ case $BRANCH in
declare -g KERNEL_MAJOR_MINOR="6.18"
;;
edge)
declare -g KERNEL_MAJOR_MINOR="6.19"
declare -g KERNEL_MAJOR_MINOR="7.0"
;;
esac

View File

@ -25,6 +25,7 @@ case $BRANCH in
current)
declare -g KERNEL_MAJOR_MINOR="6.12"
declare -g KERNELBRANCH="tag:v6.12.28" # frozen on this version
;;
esac

View File

@ -16,8 +16,14 @@ declare -g SERIALCON="ttyMSM0"
case $BRANCH in
edge)
current)
declare -g KERNEL_MAJOR_MINOR="6.18" # Major and minor versions of this kernel.
declare -g KERNELBRANCH='branch:linux-6.18.2'
declare -g KERNELSOURCE="https://github.com/radxa/kernel.git"
;;
edge)
declare -g KERNEL_MAJOR_MINOR="7.0" # Major and minor versions of this kernel.
declare -g -i KERNEL_GIT_CACHE_TTL=120 # 2 minutes; this is a high-traffic repo
;;
esac

View File

@ -60,6 +60,7 @@ case $BRANCH in
KERNELSOURCE='https://github.com/armbian/linux-rockchip.git'
KERNELBRANCH='branch:rk-6.1-rkr5.1'
KERNELPATCHDIR='rv1106-vendor-6.1'
KERNEL_BTF="no"
;;
esac

View File

@ -226,7 +226,7 @@ elif [[ "$BOOT_SOC" == "rk3506" ]]; then
local logging_prelude=""
[[ $(type -t run_host_command_logged) == function ]] && logging_prelude="run_host_command_logged"
if [ -f $1/u-boot-rockchip.bin ]; then #"$BOOT_SCENARIO" == binman
if [[ -f "$1/u-boot-rockchip.bin" ]]; then #"$BOOT_SCENARIO" == binman
${logging_prelude} dd if=$1/u-boot-rockchip.bin of=$2 bs=32k seek=1 conv=notrunc status=none
fi
}

View File

@ -14,10 +14,9 @@ declare -g BOOTENV_FILE="qcom-abl.txt"
enable_extension "image-output-abl"
case $BRANCH in
current)
declare -g KERNEL_MAJOR_MINOR="6.12" # Major and minor versions of this kernel.
declare -g KERNELBRANCH='branch:linux-6.12.y'
declare -g KERNEL_MAJOR_MINOR="6.18" # Major and minor versions of this kernel.
declare -g KERNELBRANCH='branch:linux-6.18.y'
declare -g -i KERNEL_GIT_CACHE_TTL=120 # 2 minutes; this is a high-traffic repo
;;

View File

@ -14,12 +14,12 @@ declare -g GOVERNOR="performance"
# OpenSBI
declare -g ATFSOURCE="https://gitee.com/bianbu-linux/opensbi.git"
declare -g ATFDIR="opensbi"
declare -g ATFBRANCH="tag:k1-bl-v2.2.7-release"
declare -g ATFBRANCH="tag:k1-bl-v2.2.9-release"
declare -g ATF_TARGET_MAP="PLATFORM_DEFCONFIG=k1_defconfig PLATFORM=generic ;;build/platform/generic/firmware/fw_dynamic.itb"
# U-Boot
declare -g BOOTSOURCE="https://gitee.com/bianbu-linux/uboot-2022.10.git"
declare -g BOOTBRANCH="${BOOTBRANCH_BOARD:-"tag:k1-bl-v2.2.7-release"}"
declare -g BOOTBRANCH="${BOOTBRANCH_BOARD:-"tag:k1-bl-v2.2.9-release"}"
declare -g BOOTDIR='u-boot-spacemit'
declare -g BOOTPATCHDIR="${BOOTPATCHDIR:-"legacy/u-boot-spacemit-k1"}"
declare -g UBOOT_TARGET_MAP=";;bootinfo_emmc.bin bootinfo_spinor.bin FSBL.bin fw_dynamic.itb u-boot.itb u-boot-env-default.bin"
@ -27,19 +27,24 @@ declare -g BOOTCONFIG="k1_defconfig" # Boot with generic SpacemiT K1 config
# Linux
case "${BRANCH}" in
current)
legacy)
declare -g KERNELSOURCE="https://github.com/jmontleon/linux-bianbu.git"
declare -g KERNELBRANCH="branch:linux-6.6.y"
declare -g EXTRAWIFI="no" # WiFi drivers are already included in the kernel
declare -g KERNEL_MAJOR_MINOR="6.6"
declare -g LINUXCONFIG="linux-${LINUXFAMILY}-current"
declare -g LINUXCONFIG="linux-${LINUXFAMILY}-legacy"
;;
edge)
current)
declare -g KERNELSOURCE="https://github.com/jmontleon/linux-bianbu.git"
declare -g KERNELBRANCH="branch:linux-6.18.y"
declare -g EXTRAWIFI="no" # WiFi drivers are already included in the kernel
declare -g KERNEL_MAJOR_MINOR="6.18"
declare -g LINUXCONFIG="linux-${LINUXFAMILY}-current"
;;
edge)
declare -g KERNEL_MAJOR_MINOR="7.0" # Major and minor versions of this kernel.
declare -g LINUXCONFIG="linux-${LINUXFAMILY}-edge"
declare -g EXTRAWIFI="no"
;;
esac
@ -61,7 +66,7 @@ pre_prepare_partitions() {
write_uboot_platform() {
local device=${2}
if [ -b ${2}boot0 ]; then
if [[ -b "${2}boot0" ]]; then
echo "eMMC"
DEVICE=`ls /dev/mmcblk*boot0 | sed 's/^.....//'`
echo 0 > /sys/block/${DEVICE}/force_ro

View File

@ -8,7 +8,7 @@
function mainline_kernel_decide_version__upstream_release_candidate_number() {
[[ -n "${KERNELBRANCH}" ]] && return 0 # if already set, don't touch it; that way other hooks can run in any order
if [[ "${KERNEL_MAJOR_MINOR}" == "7.0" ]]; then # @TODO: roll over to next MAJOR.MINOR and MAJOR.MINOR-rc1 when it is released
declare -g KERNELBRANCH="tag:v7.0-rc1"
declare -g KERNELBRANCH="tag:v7.0-rc2"
display_alert "mainline-kernel: upstream release candidate" "Using KERNELBRANCH='${KERNELBRANCH}' for KERNEL_MAJOR_MINOR='${KERNEL_MAJOR_MINOR}'" "info"
fi
}

View File

@ -0,0 +1,46 @@
# shellcheck shell=bash
function extension_finish_config__install_kernel_headers_for_bcmdhd_spacemit_dkms() {
if [[ "${KERNEL_HAS_WORKING_HEADERS}" != "yes" ]]; then
display_alert "Kernel version has no working headers package" "skipping bcmdhd-spacemit dkms for kernel v${KERNEL_MAJOR_MINOR}" "warn"
return 0
fi
declare -g INSTALL_HEADERS="yes"
display_alert "Forcing INSTALL_HEADERS=yes; for use with bcmdhd-spacemit dkms" "${EXTENSION}" "debug"
}
function post_install_kernel_debs__install_bcmdhd_spacemit_dkms_package() {
[[ "${INSTALL_HEADERS}" != "yes" ]] || [[ "${KERNEL_HAS_WORKING_HEADERS}" != "yes" ]] && return 0
[[ -z ${BCMDHD_SPACEMIT_TAG} ]] && return 0
[[ -z ${BCMDHD_SPACEMIT_TYPE} ]] && return 0
local file_name=
local pcie_url="https://codeberg.org/sven-ola/bcmdhd-spacemit-dkms/releases/download/${BCMDHD_SPACEMIT_TAG}/bcmdhd-spacemit-pcie-dkms_${BCMDHD_SPACEMIT_TAG#v}_all.deb"
local sdio_url="https://codeberg.org/sven-ola/bcmdhd-spacemit-dkms/releases/download/${BCMDHD_SPACEMIT_TAG}/bcmdhd-spacemit-sdio-dkms_${BCMDHD_SPACEMIT_TAG#v}_all.deb"
local usb_url="https://codeberg.org/sven-ola/bcmdhd-spacemit-dkms/releases/download/${BCMDHD_SPACEMIT_TAG}/bcmdhd-spacemit-usb-dkms_${BCMDHD_SPACEMIT_TAG#v}_all.deb"
case "${BCMDHD_SPACEMIT_TYPE}" in
"pcie")
file_name=bcmdhd-spacemit-pcie-dkms_${BCMDHD_SPACEMIT_TAG#v}_all.deb
use_clean_environment="yes" chroot_sdcard "wget ${pcie_url} -P /tmp"
;;
"sdio")
file_name=bcmdhd-spacemit-sdio-dkms_${BCMDHD_SPACEMIT_TAG#v}_all.deb
use_clean_environment="yes" chroot_sdcard "wget ${sdio_url} -P /tmp"
;;
"usb")
file_name=bcmdhd-spacemit-usb-dkms_${BCMDHD_SPACEMIT_TAG#v}_all.deb
use_clean_environment="yes" chroot_sdcard "wget ${usb_url} -P /tmp"
;;
*)
return 0
;;
esac
display_alert "Install bcmdhd-spacemit packages, will build kernel module in chroot" "${EXTENSION}" "info"
# shellcheck disable=SC2034
declare -ag if_error_find_files_sdcard=("/var/lib/dkms/bcmdhd*/*/build/*.log")
use_clean_environment="yes" chroot_sdcard_apt_get_install /tmp/"${file_name}"
use_clean_environment="yes" chroot_sdcard "rm -f /tmp/bcmdhd*.deb"
}

View File

@ -0,0 +1,142 @@
# ccache-remote: Server Setup Guide
## Redis Server
1. Install packages:
```bash
apt install redis-server avahi-daemon avahi-utils
```
2. Configure Redis — merge the settings from `misc/redis/redis-ccache.conf` into
`/etc/redis/redis.conf`, or add an `include` directive at the end of your
existing config (`include /etc/redis/redis-ccache.conf`), then restart:
```bash
sudo systemctl restart redis-server
```
**Authentication (recommended).** Set a password in the config file — either via
`requirepass` (Redis < 6) or ACL user entry (Redis 6+). See comments in
`misc/redis/redis-ccache.conf` for both methods. Generate a URL-safe password:
```bash
openssl rand -hex 24
```
**Important:** Do not use `openssl rand -base64` — base64 passwords contain
`/`, `+`, and `=` which break URL parsing in `redis://` connection strings.
On the build host, pass the password in the Redis URL:
```bash
./compile.sh ENABLE_EXTENSIONS=ccache-remote \
CCACHE_REMOTE_STORAGE="redis://default:YOUR_PASSWORD@192.168.1.65:6379" BOARD=...
```
**No authentication (trusted network only).** If all machines are on a fully
isolated private network and access control is not needed, remove `requirepass`,
set `nopass` in the ACL user entry, and set `protected-mode no`. See comments
in `misc/redis/redis-ccache.conf`. No password is needed in the URL:
```bash
./compile.sh ENABLE_EXTENSIONS=ccache-remote \
CCACHE_REMOTE_STORAGE="redis://192.168.1.65:6379" BOARD=...
```
For advanced security (TLS, ACL, rename-command), see:
https://redis.io/docs/latest/operate/oss_and_stack/management/security/
3. Publish DNS-SD service — copy `misc/avahi/ccache-redis.service` to `/etc/avahi/services/`:
```bash
cp misc/avahi/ccache-redis.service /etc/avahi/services/
```
Avahi will pick it up automatically. Clients running `avahi-browse -rpt _ccache._tcp`
will discover the Redis service.
Or use a systemd unit that ties the announcement to `redis-server` lifetime
(stops advertising when Redis is down):
```bash
cp misc/systemd/ccache-avahi-redis.service /etc/systemd/system/
systemctl enable --now ccache-avahi-redis
```
Alternatively, publish legacy mDNS hostname:
```bash
avahi-publish-address -R ccache.local <SERVER_IP>
```
Or as a systemd service (`/etc/systemd/system/ccache-hostname.service`):
```ini
[Unit]
Description=Publish ccache.local hostname via Avahi
After=avahi-daemon.service redis-server.service
BindsTo=redis-server.service
[Service]
Type=simple
ExecStart=/usr/bin/avahi-publish-address -R ccache.local <SERVER_IP>
Restart=on-failure
[Install]
WantedBy=redis-server.service
```
## HTTP/WebDAV Server (nginx)
1. Install nginx with WebDAV support:
```bash
apt install nginx-extras avahi-daemon avahi-utils
```
2. Copy `misc/nginx/ccache-webdav.conf` to `/etc/nginx/sites-available/ccache-webdav`,
then enable and prepare storage:
```bash
cp misc/nginx/ccache-webdav.conf /etc/nginx/sites-available/ccache-webdav
ln -s /etc/nginx/sites-available/ccache-webdav /etc/nginx/sites-enabled/
mkdir -p /var/cache/ccache-webdav/ccache
chown -R www-data:www-data /var/cache/ccache-webdav
systemctl reload nginx
```
3. Verify:
```bash
curl -X PUT -d "test" http://localhost:8088/ccache/test.txt
curl http://localhost:8088/ccache/test.txt
```
**WARNING:** No authentication configured.
Use ONLY in a fully trusted private network.
4. Publish DNS-SD service — copy `misc/avahi/ccache-webdav.service` to `/etc/avahi/services/`:
```bash
cp misc/avahi/ccache-webdav.service /etc/avahi/services/
```
Or use a systemd unit that ties the announcement to `nginx` lifetime:
```bash
cp misc/systemd/ccache-avahi-webdav.service /etc/systemd/system/
systemctl enable --now ccache-avahi-webdav
```
## DNS SRV Records (for remote/hosted servers)
Set `CCACHE_REMOTE_DOMAIN` on the client, then create DNS records.
Redis backend:
```text
_ccache._tcp.example.com. SRV 0 0 6379 ccache.example.com.
_ccache._tcp.example.com. TXT "type=redis"
```
HTTP/WebDAV backend:
```text
_ccache._tcp.example.com. SRV 0 0 8088 ccache.example.com.
_ccache._tcp.example.com. TXT "type=http" "path=/ccache/"
```
## Client Requirements for mDNS
Install one of the following for `.local` hostname resolution:
- **libnss-resolve** (systemd-resolved):
```bash
apt install libnss-resolve
```
`/etc/nsswitch.conf`: `hosts: files resolve [!UNAVAIL=return] dns myhostname`
- **libnss-mdns** (standalone):
```bash
apt install libnss-mdns
```
`/etc/nsswitch.conf`: `hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname`

View File

@ -0,0 +1,492 @@
# Extension: ccache-remote
# Enables ccache with remote storage for sharing compilation cache across build hosts.
# Supports Redis and HTTP/WebDAV backends (ccache 4.4+).
#
# Documentation:
# Redis: https://ccache.dev/howto/redis-storage.html
# HTTP: https://ccache.dev/howto/http-storage.html
# General: https://ccache.dev/manual/4.10.html#config_remote_storage
#
# Usage:
# # With explicit Redis server:
# ./compile.sh ENABLE_EXTENSIONS=ccache-remote CCACHE_REMOTE_STORAGE="redis://192.168.1.65:6379" BOARD=...
#
# # With HTTP/WebDAV server:
# ./compile.sh ENABLE_EXTENSIONS=ccache-remote CCACHE_REMOTE_STORAGE="http://192.168.1.65:8088/ccache/" BOARD=...
#
# # Auto-discovery via DNS-SD (no URL needed, discovers type/host/port):
# ./compile.sh ENABLE_EXTENSIONS=ccache-remote BOARD=...
#
# # DNS SRV discovery for remote build servers:
# ./compile.sh ENABLE_EXTENSIONS=ccache-remote CCACHE_REMOTE_DOMAIN="example.com" BOARD=...
#
# # Disable local cache, use remote only (saves local disk space):
# ./compile.sh ENABLE_EXTENSIONS=ccache-remote CCACHE_REMOTE_ONLY=yes BOARD=...
#
# Automatically sets USE_CCACHE=yes
#
# Supported ccache environment variables (passed through to builds):
# See: https://ccache.dev/manual/latest.html#_configuration_options
# CCACHE_BASEDIR - base directory for path normalization (enables cache sharing)
# CCACHE_REMOTE_STORAGE - remote storage URL (redis://... or http://...)
# CCACHE_REMOTE_DOMAIN - domain for DNS SRV discovery (e.g., "example.com")
# CCACHE_REMOTE_ONLY - use only remote storage, disable local cache
# CCACHE_READONLY - read-only mode, don't update cache
# CCACHE_RECACHE - don't use cached results, but update cache
# CCACHE_RESHARE - rewrite cache entries to remote storage
# CCACHE_DISABLE - disable ccache completely
# CCACHE_MAXSIZE - maximum cache size (e.g., "10G")
# CCACHE_MAXFILES - maximum number of files in cache
# CCACHE_NAMESPACE - cache namespace for isolation
# CCACHE_SLOPPINESS - comma-separated list of sloppiness options
# CCACHE_UMASK - umask for cache files
# CCACHE_LOGFILE - path to log file
# CCACHE_DEBUGLEVEL - debug level (1-2)
# CCACHE_STATSLOG - path to stats log file
# CCACHE_PCH_EXTSUM - include PCH extension in hash
#
# CCACHE_REMOTE_STORAGE format (ccache 4.4+):
# Redis: redis://[[USERNAME:]PASSWORD@]HOST[:PORT][|attribute=value...]
# HTTP: http://HOST[:PORT]/PATH/[|attribute=value...]
# Common attributes:
# connect-timeout=N - connection timeout in milliseconds (default: 100)
# operation-timeout=N - operation timeout in milliseconds (default: 10000)
# Examples:
# "redis://default:secretpass@192.168.1.65:6379|connect-timeout=500"
# "redis://192.168.1.65:6379|connect-timeout=500"
# "http://192.168.1.65:8088/ccache/"
#
# Auto-discovery (priority order):
# 1. Explicit CCACHE_REMOTE_STORAGE - used as-is, no discovery
# 2. DNS-SD browse for _ccache._tcp on local network (avahi-browse)
# 3. DNS SRV record _ccache._tcp.DOMAIN (when CCACHE_REMOTE_DOMAIN is set)
# 4. Legacy mDNS: resolve 'ccache.local' hostname (fallback)
#
# When multiple services are found, Redis is preferred over HTTP.
#
# DNS-SD service publication (on cache server):
# # For HTTP/WebDAV:
# avahi-publish-service "ccache-webdav" _ccache._tcp 8088 type=http path=/ccache/
# # For Redis:
# avahi-publish-service "ccache-redis" _ccache._tcp 6379 type=redis
#
# DNS SRV record (for remote/hosted build servers):
# Set CCACHE_REMOTE_DOMAIN to your domain, then create DNS records:
# _ccache._tcp.example.com. SRV 0 0 8088 ccache.example.com.
# _ccache._tcp.example.com. TXT "type=http" "path=/ccache/"
# The cache server must be reachable from the build host (e.g., via port forwarding).
#
# Legacy mDNS (backward compatible):
# Publish 'ccache.local' hostname via Avahi:
# avahi-publish-address -R ccache.local <SERVER_IP>
# Or create a systemd service (see below).
#
# Server setup: see README.server-setup.md and config files in misc/
# - misc/redis/redis-ccache.conf — Redis configuration example
# - misc/nginx/ccache-webdav.conf — nginx WebDAV configuration example
# - misc/avahi/ccache-*.service — Avahi DNS-SD service files (static, always announce)
# - misc/systemd/ccache-avahi-*.service — systemd units (announce only while service runs)
#
# Fallback behavior:
# If CCACHE_REMOTE_STORAGE is not set and ccache.local is not resolvable,
# extension silently falls back to local ccache only.
#
# Cache sharing requirements:
# For cache to be shared across multiple build hosts, the Armbian project
# path must be identical on all machines (e.g., /home/build/armbian).
# This is because ccache includes the working directory in the cache key.
# Docker builds automatically use consistent paths (/armbian/...).
# Default Redis connection timeout in milliseconds (can be overridden by user)
# Note: Must be set before extension loads (e.g., via environment or command line)
declare -g -r CCACHE_REDIS_CONNECT_TIMEOUT="${CCACHE_REDIS_CONNECT_TIMEOUT:-500}"
# List of ccache environment variables to pass through to builds
declare -g -a CCACHE_PASSTHROUGH_VARS=(
CCACHE_REDIS_CONNECT_TIMEOUT
CCACHE_REMOTE_DOMAIN
CCACHE_BASEDIR
CCACHE_REMOTE_STORAGE
CCACHE_REMOTE_ONLY
CCACHE_READONLY
CCACHE_RECACHE
CCACHE_RESHARE
CCACHE_DISABLE
CCACHE_MAXSIZE
CCACHE_MAXFILES
CCACHE_NAMESPACE
CCACHE_SLOPPINESS
CCACHE_UMASK
CCACHE_LOGFILE
CCACHE_DEBUGLEVEL
CCACHE_STATSLOG
CCACHE_PCH_EXTSUM
)
# Format host:port, wrapping IPv6 addresses in brackets for URL compatibility (RFC 2732)
function ccache_format_host_port() {
local host="$1" port="$2"
if [[ "${host}" == *:* ]]; then
echo "[${host}]:${port}"
else
echo "${host}:${port}"
fi
}
# Extract hostname from CCACHE_REMOTE_STORAGE URL (strips scheme, userinfo, port, path)
function ccache_extract_url_host() {
local url="$1"
local after_scheme="${url#*://}"
# Strip userinfo if present
if [[ "${after_scheme}" == *@* ]]; then
after_scheme="${after_scheme##*@}"
fi
local host
# Handle bracketed IPv6: [addr]:port
if [[ "${after_scheme}" == \[* ]]; then
host="${after_scheme#\[}"
host="${host%%\]*}"
else
# Strip port, path, and ccache attributes
host="${after_scheme%%[:\/|]*}"
fi
echo "${host}"
}
# Discover ccache remote storage via DNS-SD (mDNS/Avahi) or DNS SRV records.
# Looks for _ccache._tcp services with TXT records: type=http|redis, path=/...
# Prefers Redis over HTTP when multiple services are found.
# Sets CCACHE_REMOTE_STORAGE on success, returns 1 if nothing found.
function ccache_discover_remote_storage() {
# Method 1: DNS-SD browse on local network (requires avahi-browse)
if command -v avahi-browse &>/dev/null; then
local browse_output
browse_output=$(timeout 5 avahi-browse -rpt _ccache._tcp 2>/dev/null || true)
if [[ -n "${browse_output}" ]]; then
# Parse resolved lines: =;IFACE;PROTO;NAME;TYPE;DOMAIN;HOSTNAME;ADDRESS;PORT;"txt"...
# Prefer IPv4 (proto=IPv4), prefer type=redis over type=http
local redis_url="" http_url=""
local redis_host="" redis_host_ip="" http_host="" http_host_ip=""
while IFS=';' read -r status iface proto name stype domain hostname address port txt_rest; do
[[ "${status}" == "=" && "${proto}" == "IPv4" ]] || continue
local svc_type="" svc_path=""
# Parse TXT records from remaining fields
if [[ "${txt_rest}" =~ \"type=([a-z]+)\" ]]; then
svc_type="${BASH_REMATCH[1]}"
fi
if [[ "${txt_rest}" =~ \"path=([^\"]+)\" ]]; then
svc_path="${BASH_REMATCH[1]}"
fi
# Use hostname for URL (Docker --add-host resolves it), fall back to address
local svc_host="${hostname%.local}"
svc_host="${svc_host%.}"
[[ -z "${svc_host}" ]] && svc_host="${address}"
if [[ "${svc_type}" == "redis" ]]; then
redis_url="redis://${svc_host}:${port}|connect-timeout=${CCACHE_REDIS_CONNECT_TIMEOUT}"
redis_host="${svc_host}"
redis_host_ip="${address}"
elif [[ "${svc_type}" == "http" ]]; then
http_url="http://${svc_host}:${port}${svc_path}"
http_host="${svc_host}"
http_host_ip="${address}"
fi
done <<< "${browse_output}"
# Redis preferred over HTTP; set hostname->IP mapping for Docker --add-host
if [[ -n "${redis_url}" ]]; then
export CCACHE_REMOTE_STORAGE="${redis_url}"
declare -g CCACHE_REMOTE_HOST="${redis_host}"
declare -g CCACHE_REMOTE_HOST_IP="${redis_host_ip}"
display_alert "DNS-SD: discovered Redis ccache" "$(ccache_mask_storage_url "${CCACHE_REMOTE_STORAGE}")" "info"
return 0
elif [[ -n "${http_url}" ]]; then
export CCACHE_REMOTE_STORAGE="${http_url}"
declare -g CCACHE_REMOTE_HOST="${http_host}"
declare -g CCACHE_REMOTE_HOST_IP="${http_host_ip}"
display_alert "DNS-SD: discovered HTTP ccache" "$(ccache_mask_storage_url "${CCACHE_REMOTE_STORAGE}")" "info"
return 0
fi
fi
fi
# Method 2: DNS SRV record for remote setups (CCACHE_REMOTE_DOMAIN must be set)
if [[ -n "${CCACHE_REMOTE_DOMAIN}" ]] && command -v dig &>/dev/null; then
local srv_output
srv_output=$(dig +short SRV "_ccache._tcp.${CCACHE_REMOTE_DOMAIN}" 2>/dev/null || true)
if [[ -n "${srv_output}" ]]; then
local srv_port srv_host
# SRV format: priority weight port target
read -r _ _ srv_port srv_host <<< "${srv_output}"
srv_host="${srv_host%.}" # strip trailing dot
if [[ -n "${srv_host}" && -n "${srv_port}" ]]; then
# Check TXT record for service type and path
local txt_output svc_type="redis" svc_path=""
txt_output=$(dig +short TXT "_ccache._tcp.${CCACHE_REMOTE_DOMAIN}" 2>/dev/null || true)
if [[ "${txt_output}" =~ type=([a-z]+) ]]; then
svc_type="${BASH_REMATCH[1]}"
fi
if [[ "${txt_output}" =~ path=([^\"[:space:]]+) ]]; then
svc_path="${BASH_REMATCH[1]}"
fi
local host_port
host_port=$(ccache_format_host_port "${srv_host}" "${srv_port}")
if [[ "${svc_type}" == "http" ]]; then
export CCACHE_REMOTE_STORAGE="http://${host_port}${svc_path}"
else
export CCACHE_REMOTE_STORAGE="redis://${host_port}|connect-timeout=${CCACHE_REDIS_CONNECT_TIMEOUT}"
fi
display_alert "DNS SRV: discovered ccache" "$(ccache_mask_storage_url "${CCACHE_REMOTE_STORAGE}")" "info"
return 0
fi
fi
fi
# Method 3: Legacy fallback - resolve ccache.local hostname
local ccache_ip
ccache_ip=$(getent hosts ccache.local 2>/dev/null | awk '{print $1; exit}' || true)
if [[ -n "${ccache_ip}" ]]; then
local host_port
host_port=$(ccache_format_host_port "${ccache_ip}" "6379")
export CCACHE_REMOTE_STORAGE="redis://${host_port}|connect-timeout=${CCACHE_REDIS_CONNECT_TIMEOUT}"
display_alert "mDNS: discovered ccache" "$(ccache_mask_storage_url "${CCACHE_REMOTE_STORAGE}")" "info"
return 0
fi
return 1
}
# Query Redis stats (keys count and memory usage)
function ccache_get_redis_stats() {
local ip="$1"
local port="${2:-6379}"
local password="$3"
local stats=""
if command -v redis-cli &>/dev/null; then
local auth_args=()
[[ -n "${password}" ]] && auth_args+=(-a "${password}" --no-auth-warning)
local keys mem
keys=$(timeout 2 redis-cli -h "$ip" -p "$port" "${auth_args[@]}" DBSIZE 2>/dev/null | grep -oE '[0-9]+' || true)
mem=$(timeout 2 redis-cli -h "$ip" -p "$port" "${auth_args[@]}" INFO memory 2>/dev/null | grep "used_memory_human" | cut -d: -f2 | tr -d '[:space:]' || true)
if [[ -n "$keys" ]]; then
stats="keys=${keys:-0}, mem=${mem:-?}"
fi
else
# Fallback: try netcat for basic connectivity check
if nc -z -w 2 "$ip" "$port" 2>/dev/null; then
stats="reachable (redis-cli not installed for detailed stats)"
fi
fi
echo "$stats"
}
# Check HTTP/WebDAV storage reachability via HEAD request
function ccache_get_http_stats() {
local url="$1"
local stats=""
local http_code
http_code=$(timeout 3 curl -s -o /dev/null -w "%{http_code}" -X HEAD "${url}" 2>/dev/null || true)
if [[ -n "${http_code}" && "${http_code}" != "000" ]]; then
stats="reachable (HTTP ${http_code})"
fi
echo "$stats"
}
# Query remote storage stats based on URL scheme (redis:// or http://)
# Parses userinfo (user:pass@) from Redis URLs to pass credentials to redis-cli
function ccache_get_remote_stats() {
local url="$1"
if [[ "${url}" =~ ^redis:// ]]; then
local password="" host="" port="6379"
# Strip scheme and attributes
local authority="${url#redis://}"
authority="${authority%%|*}"
# Extract password from userinfo (before last @)
if [[ "${authority}" =~ ^(.+)@(.+)$ ]]; then
local userinfo="${BASH_REMATCH[1]}"
authority="${BASH_REMATCH[2]}"
# password is after : in userinfo (user:pass or just :pass)
[[ "${userinfo}" == *:* ]] && password="${userinfo#*:}"
fi
# Parse host:port (IPv6 in brackets or plain)
if [[ "${authority}" =~ ^\[([^]]+)\]:?([0-9]*) ]]; then
host="${BASH_REMATCH[1]}"
[[ -n "${BASH_REMATCH[2]}" ]] && port="${BASH_REMATCH[2]}"
elif [[ "${authority}" =~ ^([^:]+):?([0-9]*) ]]; then
host="${BASH_REMATCH[1]}"
[[ -n "${BASH_REMATCH[2]}" ]] && port="${BASH_REMATCH[2]}"
fi
[[ -n "${host}" ]] && ccache_get_redis_stats "${host}" "${port}" "${password}"
elif [[ "${url}" =~ ^https?:// ]]; then
# Strip ccache attributes after | for the URL
ccache_get_http_stats "${url%%|*}"
fi
}
# Mask credentials in storage URLs to avoid leaking secrets into build logs
# Handles any URI scheme with userinfo component (e.g., redis://user:pass@host)
# Uses last @ as delimiter since userinfo may contain special characters
function ccache_mask_storage_url() {
local url="$1"
if [[ "${url}" =~ ^([a-zA-Z][a-zA-Z0-9+.-]*://)(.+)@([^@]+)$ ]]; then
echo "${BASH_REMATCH[1]}****@${BASH_REMATCH[3]}"
else
echo "${url}"
fi
}
# Validate that credentials in storage URL do not contain characters unsafe for URL parsing.
# Passwords with / + = or spaces break URL parsing in ccache and in our mask function.
# Returns 1 and displays error if invalid characters are found.
function ccache_validate_storage_url() {
local url="$1"
# Extract userinfo (part between :// and last @)
if [[ "${url}" =~ ^[a-zA-Z][a-zA-Z0-9+.-]*://(.+)@[^@]+$ ]]; then
local userinfo="${BASH_REMATCH[1]}"
if [[ "${userinfo}" =~ [/+=[:space:]] ]]; then
display_alert "Password contains URL-unsafe characters (/ + = or spaces)" \
"Generate a safe password: openssl rand -hex 24" "err"
return 1
fi
fi
return 0
}
# This runs on the HOST just before Docker container is launched.
# Resolves 'ccache.local' via mDNS (requires Avahi on server publishing this hostname
# Docker hook: resolve hostnames and handle loopback for container access.
# mDNS/local DNS may not work inside Docker, so we resolve on host and
# pass the mapping via --add-host. Loopback addresses are rewritten to
# host.docker.internal.
function host_pre_docker_launch__setup_remote_ccache() {
if [[ -n "${CCACHE_REMOTE_STORAGE}" ]]; then
ccache_validate_storage_url "${CCACHE_REMOTE_STORAGE}" || return 1
display_alert "Remote ccache pre-configured" "$(ccache_mask_storage_url "${CCACHE_REMOTE_STORAGE}")" "info"
elif ! ccache_discover_remote_storage; then
display_alert "Remote ccache not found on host" "no service discovered" "debug"
fi
# Show backend stats if we have a remote storage URL
if [[ -n "${CCACHE_REMOTE_STORAGE}" ]]; then
local stats
stats=$(ccache_get_remote_stats "${CCACHE_REMOTE_STORAGE}")
if [[ -n "$stats" ]]; then
display_alert "Remote ccache stats" "${stats}" "info"
fi
fi
# Ensure hostname in CCACHE_REMOTE_STORAGE is resolvable inside Docker.
# Docker containers may not have access to host mDNS/local DNS.
if [[ -n "${CCACHE_REMOTE_STORAGE}" ]]; then
local _host
_host=$(ccache_extract_url_host "${CCACHE_REMOTE_STORAGE}")
if [[ -n "${_host}" ]]; then
# Loopback addresses: rewrite to host.docker.internal
if [[ "${_host}" == "localhost" || "${_host}" == "127.0.0.1" || "${_host}" == "::1" ]]; then
CCACHE_REMOTE_STORAGE="${CCACHE_REMOTE_STORAGE//localhost/host.docker.internal}"
CCACHE_REMOTE_STORAGE="${CCACHE_REMOTE_STORAGE//127.0.0.1/host.docker.internal}"
CCACHE_REMOTE_STORAGE="${CCACHE_REMOTE_STORAGE//\[::1\]/host.docker.internal}"
DOCKER_EXTRA_ARGS+=("--add-host=host.docker.internal:host-gateway")
display_alert "Rewriting loopback URL for Docker" "$(ccache_mask_storage_url "${CCACHE_REMOTE_STORAGE}")" "info"
# Hostname (not IP): resolve on host and pass via --add-host
elif [[ "${_host}" =~ [a-zA-Z] ]]; then
local _resolved_ip="${CCACHE_REMOTE_HOST_IP:-}"
# If not from discovery, resolve now; prefer IPv4 (Docker bridge often lacks IPv6)
if [[ -z "${_resolved_ip}" || "${CCACHE_REMOTE_HOST}" != "${_host}" ]]; then
_resolved_ip=$(getent ahostsv4 "${_host}" 2>/dev/null | awk '{print $1; exit}' || true)
[[ -z "${_resolved_ip}" ]] && _resolved_ip=$(getent hosts "${_host}" 2>/dev/null | awk '{print $1; exit}' || true)
fi
if [[ -n "${_resolved_ip}" ]]; then
DOCKER_EXTRA_ARGS+=("--add-host=${_host}:${_resolved_ip}")
display_alert "Docker --add-host" "${_host}:${_resolved_ip}" "info"
else
display_alert "Cannot resolve hostname for Docker" "${_host}" "wrn"
fi
fi
fi
fi
# Pass all set CCACHE_* variables to Docker
local var val
for var in "${CCACHE_PASSTHROUGH_VARS[@]}"; do
val="${!var}"
if [[ -n "${val}" ]]; then
DOCKER_EXTRA_ARGS+=("--env" "${var}=${val}")
local log_val="${val}"
[[ "${var}" == "CCACHE_REMOTE_STORAGE" ]] && log_val="$(ccache_mask_storage_url "${val}")"
display_alert "Docker env" "${var}=${log_val}" "debug"
fi
done
}
# Hook: Show ccache remote storage statistics after each compilation (kernel, uboot)
function ccache_post_compilation__show_remote_stats() {
if [[ -n "${CCACHE_REMOTE_STORAGE}" ]]; then
local stats_output pct
local read_hit read_miss write error
stats_output=$(ccache --print-stats 2>&1 || true)
read_hit=$(ccache_get_stat "$stats_output" "remote_storage_read_hit")
read_miss=$(ccache_get_stat "$stats_output" "remote_storage_read_miss")
write=$(ccache_get_stat "$stats_output" "remote_storage_write")
error=$(ccache_get_stat "$stats_output" "remote_storage_error")
pct=$(ccache_hit_pct "$read_hit" "$read_miss")
display_alert "Remote ccache result" "hit=${read_hit} miss=${read_miss} write=${write} err=${error} (${pct}%)" "info"
fi
}
# This runs inside Docker (or native build) during configuration
function extension_prepare_config__setup_remote_ccache() {
# Enable ccache with a consistent cache directory ($SRC/cache/ccache).
# PRIVATE_CCACHE ensures the same CCACHE_DIR is used in native and Docker builds,
# avoiding fragmented caches in /root/.cache/ccache vs $SRC/cache/ccache.
declare -g USE_CCACHE=yes
declare -g PRIVATE_CCACHE=yes
# If CCACHE_REMOTE_STORAGE was passed from host (via Docker env), it's already set
if [[ -n "${CCACHE_REMOTE_STORAGE}" ]]; then
ccache_validate_storage_url "${CCACHE_REMOTE_STORAGE}" || return 1
display_alert "Remote ccache configured" "$(ccache_mask_storage_url "${CCACHE_REMOTE_STORAGE}")" "info"
return 0
fi
# For native (non-Docker) builds, try to discover
if ccache_discover_remote_storage; then
return 0
fi
if [[ "${CCACHE_REMOTE_ONLY}" == "yes" ]]; then
display_alert "Remote ccache not available" "CCACHE_REMOTE_ONLY=yes but no remote found, ccache will be ineffective" "wrn"
else
display_alert "Remote ccache not available" "using local cache only" "debug"
fi
return 0
}
# Inject all set CCACHE_PASSTHROUGH_VARS into the given make environment array
# Uses bash nameref to write into the caller's array variable
function ccache_inject_envs() {
local -n target_array="$1"
local label="$2"
local var val
for var in "${CCACHE_PASSTHROUGH_VARS[@]}"; do
val="${!var}"
if [[ -n "${val}" ]]; then
target_array+=("${var}=${val@Q}")
local log_val="${val}"
[[ "${var}" == "CCACHE_REMOTE_STORAGE" ]] && log_val="$(ccache_mask_storage_url "${val}")"
display_alert "${label}: ${var}" "${log_val}" "debug"
fi
done
}
# This hook runs right before kernel make - add ccache env vars to make environment.
# Required because kernel build uses 'env -i' which clears all environment variables.
function kernel_make_config__add_ccache_remote_storage() {
ccache_inject_envs common_make_envs "Kernel make"
}
# This hook runs right before u-boot make - add ccache env vars to make environment.
# Required because u-boot build uses 'env -i' which clears all environment variables.
function uboot_make_config__add_ccache_remote_storage() {
ccache_inject_envs uboot_make_envs "U-boot make"
}

View File

@ -0,0 +1,10 @@
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>ccache-redis</name>
<service>
<type>_ccache._tcp</type>
<port>6379</port>
<txt-record>type=redis</txt-record>
</service>
</service-group>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>ccache-webdav</name>
<service>
<type>_ccache._tcp</type>
<port>8088</port>
<txt-record>type=http</txt-record>
<txt-record>path=/ccache/</txt-record>
</service>
</service-group>

View File

@ -0,0 +1,27 @@
# nginx WebDAV configuration for ccache remote storage
# Copy to /etc/nginx/sites-available/ccache-webdav
# Then: ln -s /etc/nginx/sites-available/ccache-webdav /etc/nginx/sites-enabled/
#
# Prepare storage directory:
# mkdir -p /var/cache/ccache-webdav/ccache
# chown -R www-data:www-data /var/cache/ccache-webdav
#
# WARNING: No authentication configured.
# Use ONLY in a fully trusted private network.
# For auth, add auth_basic directives. See nginx WebDAV documentation.
# Note: ccache does not support HTTPS directly. Use a reverse proxy for TLS.
# Requires: nginx with http_dav_module (e.g. nginx-full or nginx-extras on Debian/Ubuntu)
server {
listen 8088;
server_name _;
root /var/cache/ccache-webdav;
location /ccache/ {
dav_methods PUT DELETE;
create_full_put_path on;
dav_access user:rw group:rw all:r;
client_max_body_size 100M;
autoindex on;
}
}

View File

@ -0,0 +1,13 @@
# Redis configuration for ccache remote storage
# Copy to /etc/redis/redis-ccache.conf or merge into /etc/redis/redis.conf
#
# WARNING: This configuration is INSECURE - Redis is open without authentication.
# Use ONLY in a fully trusted private network with no internet access.
# For secure setup (password, TLS, ACL), see: https://redis.io/docs/management/security/
bind 0.0.0.0 ::
protected-mode no
# Limit memory and use LRU eviction so old cache entries are purged automatically
maxmemory 4G
maxmemory-policy allkeys-lru

View File

@ -0,0 +1,35 @@
# Redis configuration for ccache remote storage
# Copy to /etc/redis/redis-ccache.conf or merge into /etc/redis/redis.conf
#
# For advanced security (TLS, ACL, rename-command), see:
# https://redis.io/docs/management/security/
bind 0.0.0.0 ::
# --- Authentication (recommended) ---
# Clients connect with: CCACHE_REMOTE_STORAGE="redis://default:YOUR_PASSWORD@host:6379"
# Generate a URL-safe password (hex only, no special characters):
# openssl rand -hex 24
# WARNING: Do not use base64 passwords (openssl rand -base64) — they contain
# / + = characters that break redis:// URL parsing.
#
# Redis 6+: use ACL user entry (preferred, overrides requirepass):
# user default on >CHANGE_ME sanitize-payload ~* &* +@all
#
# Redis < 6: use requirepass instead:
# requirepass CHANGE_ME
#
# With authentication set, protected-mode can stay enabled (default).
# It blocks unauthenticated access from non-loopback interfaces.
protected-mode yes
# --- No authentication (trusted network only) ---
# If all build hosts and the Redis server are on a fully isolated private
# network and you do not need access control, you can skip auth:
# user default on nopass sanitize-payload ~* &* +@all
# protected-mode no
# WARNING: Anyone on the network can read/write/flush the cache.
# Limit memory and use LRU eviction so old cache entries are purged automatically
maxmemory 4G
maxmemory-policy allkeys-lru

View File

@ -0,0 +1,13 @@
[Unit]
Description=Publish ccache Redis service via Avahi DNS-SD
After=avahi-daemon.service redis-server.service
BindsTo=redis-server.service
[Service]
Type=simple
ExecStart=/usr/bin/avahi-publish-service "ccache-redis" _ccache._tcp 6379 type=redis
Restart=on-failure
RestartSec=5
[Install]
WantedBy=redis-server.service

View File

@ -0,0 +1,13 @@
[Unit]
Description=Publish ccache WebDAV service via Avahi DNS-SD
After=avahi-daemon.service nginx.service
BindsTo=nginx.service
[Service]
Type=simple
ExecStart=/usr/bin/avahi-publish-service "ccache-webdav" _ccache._tcp 8088 type=http path=/ccache/
Restart=on-failure
RestartSec=5
[Install]
WantedBy=nginx.service

View File

@ -60,7 +60,7 @@ function gxlimg_repack_fip_with_new_uboot() {
-s raw-u-boot.bin \
"${EXTRACT_DIR}/bl33.enc"
if [ -e "${EXTRACT_DIR}/lpddr3_1d.fw" ]; then
if [[ -e "${EXTRACT_DIR}/lpddr3_1d.fw" ]]; then
run_host_command_logged gxlimg \
-t fip \
--bl2 "${EXTRACT_DIR}/bl2.sign" \
@ -101,7 +101,7 @@ function gxlimg_repack_fip_with_new_uboot() {
;;
esac
if [ ! -s u-boot.bin ]; then
if [[ ! -s u-boot.bin ]]; then
exit_with_error "FIP repack produced empty u-boot.bin"
fi
}

View File

@ -100,7 +100,7 @@ function make_burn__run() {
cp "$uboot_bin" "$tmpdir/u-boot.bin"
display_alert "make_burn" "Packing burn image..." "info"
"$PACKER" -r "$tmpdir/image.cfg" "$tmpdir" "$OUT_IMG" || exit_with_error "Image pack FAILED"
env -u QEMU_CPU "$PACKER" -r "$tmpdir/image.cfg" "$tmpdir" "$OUT_IMG" || exit_with_error "Image pack FAILED"
[[ -f "$OUT_IMG" ]] || exit_with_error "Burn image not produced"
display_alert "make_burn" "Burn image created: $(basename "$OUT_IMG")" "ok"

219
extensions/kernel-rust.sh Normal file
View File

@ -0,0 +1,219 @@
# Enable Rust support for Linux kernel compilation.
#
# Installs Rust toolchain via rustup into ${SRC}/cache/tools/rustup/ and
# configures the build environment so that CONFIG_RUST appears in kernel
# menuconfig and gets enabled automatically.
#
# The toolchain is cached by a hash of (RUST_VERSION, BINDGEN_VERSION, arch,
# RUST_EXTRA_COMPONENTS, RUST_EXTRA_CARGO_CRATES). Changing any of these
# triggers a full reinstall on the next build.
#
# Other extensions can request additional rustup components or cargo crates:
# RUST_EXTRA_COMPONENTS+=("clippy" "llvm-tools")
# RUST_EXTRA_CARGO_CRATES+=("mdbook" "cargo-deb@2.11.0")
#
# Usage: ./compile.sh kernel-config BOARD=... BRANCH=... ENABLE_EXTENSIONS="kernel-rust"
#
# References:
# https://docs.kernel.org/rust/quick-start.html
# https://docs.kernel.org/rust/general-information.html
# https://rust-for-linux.com/rust-version-policy
# https://rust-lang.github.io/rustup/installation/index.html
# Rust toolchain version installed via rustup.
# Kernel >= 6.12 requires rustc >= 1.78. See rust-version-policy above.
RUST_VERSION="${RUST_VERSION:-1.85.0}"
# bindgen-cli version installed via cargo.
# APT bindgen 0.66.1 panics on kernel >= 6.19 headers (FromBytesWithNulError
# in codegen/mod.rs). Fixed in >= 0.69.
BINDGEN_VERSION="${BINDGEN_VERSION:-0.71.1}"
# Enable Rust sample kernel modules for toolchain smoke testing.
# Set to "yes" to build rust_minimal, rust_print, rust_driver_faux as modules.
# Can also be set via command line: RUST_KERNEL_SAMPLES=yes
RUST_KERNEL_SAMPLES="${RUST_KERNEL_SAMPLES:-no}"
# Extra rustup components to install (e.g. clippy, llvm-tools).
# Other extensions can append: RUST_EXTRA_COMPONENTS+=("clippy")
declare -g -a RUST_EXTRA_COMPONENTS=()
# Extra cargo crates to install. Supports "name" or "name@version" syntax.
# Other extensions can append: RUST_EXTRA_CARGO_CRATES+=("mdbook" "cargo-deb@2.11.0")
declare -g -a RUST_EXTRA_CARGO_CRATES=()
# Resolved tool paths, set by host_dependencies_ready, used by custom_kernel_make_params.
declare -g RUST_TOOL_RUSTC=""
declare -g RUST_TOOL_RUSTFMT=""
declare -g RUST_TOOL_BINDGEN=""
declare -g RUST_TOOL_SYSROOT=""
function add_host_dependencies__add_rust_compiler() {
display_alert "Adding Rust kernel build dependencies" "${EXTENSION}" "info"
# bindgen needs libclang for dlopen; available on all target distros.
EXTRA_BUILD_DEPS+=" libclang-dev "
}
# Download rustup-init binary for the current architecture.
# Follows the project pattern: curl → .tmp → mv → chmod.
_download_rustup_init() {
local target_dir="$1"
local target_triple
case "${BASH_VERSINFO[5]}" in
*aarch64*) target_triple="aarch64-unknown-linux-gnu" ;;
*x86_64*) target_triple="x86_64-unknown-linux-gnu" ;;
*riscv64*) target_triple="riscv64gc-unknown-linux-gnu" ;;
*) exit_with_error "Unsupported architecture for rustup" "${BASH_VERSINFO[5]}" ;;
esac
local url="https://static.rust-lang.org/rustup/dist/${target_triple}/rustup-init"
local dest="${target_dir}/rustup-init"
display_alert "Downloading rustup-init" "${target_triple}" "info"
curl --proto '=https' --tlsv1.2 -sSf -o "${dest}.tmp" "${url}"
mv "${dest}.tmp" "${dest}"
chmod +x "${dest}"
}
# Install or reuse cached Rust toolchain in ${SRC}/cache/tools/rustup/.
_prepare_rust_toolchain() {
local rust_cache_dir="${SRC}/cache/tools/rustup"
mkdir -p "${rust_cache_dir}"
local rustup_home="${rust_cache_dir}/rustup-home"
local cargo_home="${rust_cache_dir}/cargo-home"
# Content-addressable cache: hash of version config + architecture + extras
local cache_key="${RUST_VERSION}|${BINDGEN_VERSION}|${BASH_VERSINFO[5]}"
cache_key+="|${RUST_EXTRA_COMPONENTS[*]}|${RUST_EXTRA_CARGO_CRATES[*]}"
local cache_hash
cache_hash="$(echo -n "${cache_key}" | sha256sum | cut -c1-16)"
local marker="${rust_cache_dir}/.marker-${cache_hash}"
if [[ -f "${marker}" ]]; then
display_alert "Rust toolchain cache hit" "${cache_hash}" "cachehit"
return 0
fi
# Remove stale markers from previous versions
rm -f "${rust_cache_dir}"/.marker-*
display_alert "Installing Rust toolchain" "rustc ${RUST_VERSION}, bindgen ${BINDGEN_VERSION}" "info"
# Download rustup-init
do_with_retries 3 _download_rustup_init "${rust_cache_dir}"
# Install minimal toolchain; SKIP_PATH_CHECK suppresses warnings about
# system rustc in /usr/bin (e.g. from mtkflash in Docker images).
RUSTUP_HOME="${rustup_home}" CARGO_HOME="${cargo_home}" \
RUSTUP_INIT_SKIP_PATH_CHECK=yes \
"${rust_cache_dir}/rustup-init" -y \
--profile minimal \
--default-toolchain "${RUST_VERSION}" \
--no-modify-path
# Components: rustfmt (not in minimal profile) + rust-src (kernel needs it) + extras
local -a components=(rustfmt rust-src "${RUST_EXTRA_COMPONENTS[@]}")
display_alert "Installing rustup components" "${components[*]}" "info"
RUSTUP_HOME="${rustup_home}" CARGO_HOME="${cargo_home}" \
"${cargo_home}/bin/rustup" component add "${components[@]}"
# Cargo crates: bindgen-cli (kernel needs it) + extras
# Supports "name" or "name@version" syntax.
local -a crates=("bindgen-cli@${BINDGEN_VERSION}" "${RUST_EXTRA_CARGO_CRATES[@]}")
local crate
for crate in "${crates[@]}"; do
display_alert "Installing cargo crate" "${crate}" "info"
RUSTUP_HOME="${rustup_home}" CARGO_HOME="${cargo_home}" \
"${cargo_home}/bin/cargo" install --locked "${crate}"
done
# Mark cache as valid only after everything succeeds
touch "${marker}"
display_alert "Rust toolchain installed" "${cache_hash}" "info"
}
# Resolve absolute paths to Rust tool binaries.
# Uses direct paths into the toolchain (not rustup proxies), so that
# env -i in run_kernel_make_internal() does not need RUSTUP_HOME set.
_resolve_rust_tool_paths() {
local rustup_home="${SRC}/cache/tools/rustup/rustup-home"
local cargo_home="${SRC}/cache/tools/rustup/cargo-home"
RUST_TOOL_SYSROOT="$(RUSTUP_HOME="${rustup_home}" CARGO_HOME="${cargo_home}" \
"${cargo_home}/bin/rustc" --print sysroot)"
# Direct binaries inside the toolchain, bypassing rustup proxy
RUST_TOOL_RUSTC="${RUST_TOOL_SYSROOT}/bin/rustc"
RUST_TOOL_RUSTFMT="${RUST_TOOL_SYSROOT}/bin/rustfmt"
RUST_TOOL_BINDGEN="${cargo_home}/bin/bindgen"
}
function host_dependencies_ready__add_rust_compiler() {
_prepare_rust_toolchain
_resolve_rust_tool_paths
# Verify all tools are executable
local tool_name tool_path
for tool_name in RUST_TOOL_RUSTC RUST_TOOL_RUSTFMT RUST_TOOL_BINDGEN; do
tool_path="${!tool_name}"
[[ -x "${tool_path}" ]] || exit_with_error "Required Rust tool '${tool_name}' not found at ${tool_path}" "${EXTENSION}"
done
display_alert "Rust toolchain ready" \
"rustc $(${RUST_TOOL_RUSTC} --version | awk '{print $2}'), bindgen $(${RUST_TOOL_BINDGEN} --version 2>&1 | awk '{print $2}')" "info"
}
function artifact_kernel_version_parts__add_rust_version() {
# Include Rust toolchain version in artifact hash so that changing
# RUST_VERSION or BINDGEN_VERSION triggers a kernel rebuild.
local cache_key="${RUST_VERSION}|${BINDGEN_VERSION}"
local short
short="$(echo -n "${cache_key}" | sha256sum | cut -c1-4)"
artifact_version_parts["_R"]="rust${short}"
# Add to order array if not already present
local found=0 entry
for entry in "${artifact_version_part_order[@]}"; do
[[ "${entry}" == *"-_R" ]] && found=1 && break
done
if [[ "${found}" -eq 0 ]]; then
artifact_version_part_order+=("0086-_R")
fi
}
function custom_kernel_config__add_rust_compiler() {
# https://docs.kernel.org/rust/quick-start.html
opts_y+=("RUST")
# Build sample Rust modules for toolchain smoke testing
if [[ "${RUST_KERNEL_SAMPLES}" == "yes" ]]; then
display_alert "Enabling Rust sample modules" "${EXTENSION}" "info"
opts_y+=("SAMPLES") # Parent menu for all kernel samples
opts_y+=("SAMPLES_RUST")
opts_m+=("SAMPLE_RUST_MINIMAL")
opts_m+=("SAMPLE_RUST_PRINT")
opts_m+=("SAMPLE_RUST_DRIVER_FAUX")
fi
}
function custom_kernel_make_params__add_rust_compiler() {
# run_kernel_make_internal uses "env -i" which clears all environment
# variables, so we pass Rust paths explicitly via make parameters.
# Using direct toolchain binaries (not rustup proxies) avoids needing
# RUSTUP_HOME in the env -i context.
common_make_params_quoted+=("RUSTC=${RUST_TOOL_RUSTC}")
common_make_params_quoted+=("RUSTFMT=${RUST_TOOL_RUSTFMT}")
common_make_params_quoted+=("BINDGEN=${RUST_TOOL_BINDGEN}")
# Rust standard library source path for kernel build
local rust_lib_src="${RUST_TOOL_SYSROOT}/lib/rustlib/src/rust/library"
if [[ -d "${rust_lib_src}" ]]; then
display_alert "Rust library source" "${rust_lib_src}" "info"
common_make_envs+=("RUST_LIB_SRC='${rust_lib_src}'")
else
display_alert "Rust library source not found" "CONFIG_RUST will not appear in menuconfig" "wrn"
fi
}

View File

@ -13,7 +13,7 @@ function post_family_tweaks_bsp__initramfs() {
display_alert "${EXTENSION}" "Set initramfs config for low memory" "debug"
# Create /etc/initramfs-tools/conf.d/armbian-lowmem.conf configuration file
if [ ! -f "$destination/etc/initramfs-tools/conf.d/armbian-lowmem.conf" ]; then
if [[ ! -f "$destination/etc/initramfs-tools/conf.d/armbian-lowmem.conf" ]]; then
mkdir -p "$destination/etc/initramfs-tools/conf.d"
install -m 644 /dev/null "$destination/etc/initramfs-tools/conf.d/armbian-lowmem.conf"
@ -35,7 +35,7 @@ function post_family_tweaks_bsp__copy_lowmem_config() {
# Copy /etc/default/armbian-lowmem configuration file
# Allows user to customize swapfile size / location
if [ ! -f "$destination/etc/default/armbian-lowmem" ]; then
if [[ ! -f "$destination/etc/default/armbian-lowmem" ]]; then
install -m 664 "$SRC/packages/bsp/armbian-lowmem/etc/default/armbian-lowmem.dpkg-dist" "$destination/etc/default/armbian-lowmem"
fi

View File

@ -46,9 +46,17 @@ function post_install_kernel_debs__3d() {
declare -a pkgs=("libgl1-mesa-dri")
if [[ "${BUILD_DESKTOP}" == "yes" ]]; then
pkgs+=("libglx-mesa0") # x11 stuff all the way
pkgs+=("mesa-utils" "mesa-utils-extra")
pkgs+=("glmark2" "glmark2-wayland" "glmark2-es2-wayland" "glmark2-es2" "glmark2-x11" "glmark2-es2-x11")
pkgs+=("libglx-mesa0") # Mesa OpenGL extension library for X11
pkgs+=("mesa-utils") # Mesa utilities for OpenGL information and testing
pkgs+=("mesa-utils-extra") # Additional Mesa demonstration programs
pkgs+=("glmark2") # OpenGL 2.0/3.0 benchmark suite
pkgs+=("glmark2-wayland") # Glmark2 Wayland backend for benchmarking
pkgs+=("glmark2-es2-wayland") # Glmark2 OpenGL ES 2.0 Wayland backend
pkgs+=("glmark2-es2") # Glmark2 OpenGL ES 2.0 benchmark support
pkgs+=("glmark2-x11") # Glmark2 X11 backend for benchmarking
pkgs+=("glmark2-es2-x11") # Glmark2 OpenGL ES 2.0 X11 backend
pkgs+=("vulkan-tools") # Vulkan utilities for testing and debugging (vulkaninfo, etc.)
pkgs+=("mesa-vulkan-drivers") # Vulkan drivers for Mesa GPUs (Panfrost, Lima, Radeon, Intel, etc.)
fi
if [[ "${BUILD_DESKTOP}" == "yes" ]]; then # if desktop, add amazingfated's multimedia PPAs and rockchip-multimedia-config utility, chromium, gstreamer, etc

View File

@ -0,0 +1,79 @@
function post_family_tweaks__preset_configs() {
display_alert "$BOARD" "preset configs for rootfs" "info"
# Set PRESET_NET_CHANGE_DEFAULTS to 1 to apply any network related settings below
echo "PRESET_NET_CHANGE_DEFAULTS=1" > "${SDCARD}"/root/.not_logged_in_yet
# Enable WiFi or Ethernet.
# NB: If both are enabled, WiFi will take priority and Ethernet will be disabled.
echo "PRESET_NET_ETHERNET_ENABLED=1" >> "${SDCARD}"/root/.not_logged_in_yet
echo "PRESET_NET_WIFI_ENABLED=1" >> "${SDCARD}"/root/.not_logged_in_yet
#Enter your WiFi creds
# SECURITY WARN: Your wifi keys will be stored in plaintext, no encryption.
#echo "PRESET_NET_WIFI_SSID='MySSID'" >> "${SDCARD}"/root/.not_logged_in_yet
#echo "PRESET_NET_WIFI_KEY='MyWiFiKEY'" >> "${SDCARD}"/root/.not_logged_in_yet
# Country code to enable power ratings and channels for your country. eg: GB US DE | https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
#echo "PRESET_NET_WIFI_COUNTRYCODE='GB'" >> "${SDCARD}"/root/.not_logged_in_yet
#If you want to use a static ip, set it here
#echo "PRESET_NET_USE_STATIC=1" >> "${SDCARD}"/root/.not_logged_in_yet
#echo "PRESET_NET_STATIC_IP='192.168.0.100'" >> "${SDCARD}"/root/.not_logged_in_yet
#echo "PRESET_NET_STATIC_MASK='255.255.255.0'" >> "${SDCARD}"/root/.not_logged_in_yet
#echo "PRESET_NET_STATIC_GATEWAY='192.168.0.1'" >> "${SDCARD}"/root/.not_logged_in_yet
#echo "PRESET_NET_STATIC_DNS='8.8.8.8 8.8.4.4'" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset user default shell, you can choose bash or zsh
echo "PRESET_USER_SHELL=bash" >> "${SDCARD}"/root/.not_logged_in_yet
# Set PRESET_CONNECT_WIRELESS=y if you want to connect wifi manually at first login
echo "PRESET_CONNECT_WIRELESS=n" >> "${SDCARD}"/root/.not_logged_in_yet
# Set SET_LANG_BASED_ON_LOCATION=n if you want to choose "Set user language based on your location?" with "n" at first login
echo "SET_LANG_BASED_ON_LOCATION=y" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset default locale
echo "PRESET_LOCALE=en_US.UTF-8" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset timezone
echo "PRESET_TIMEZONE=Etc/UTC" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset root password
echo "PRESET_ROOT_PASSWORD=1234" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset username
echo "PRESET_USER_NAME=odin2" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset user password
echo "PRESET_USER_PASSWORD=1234" >> "${SDCARD}"/root/.not_logged_in_yet
# Preset user default realname
echo "PRESET_DEFAULT_REALNAME=Odin2" >> "${SDCARD}"/root/.not_logged_in_yet
}
function pre_customize_image__add_odin2_scripts() {
display_alert "Adding Odin2 Scripts" "${EXTENSION}" "info"
local launcher_dir="${SDCARD}/usr/local"
run_host_command_logged mkdir -pv "${launcher_dir}"
chroot_sdcard git clone https://github.com/Squishy123/odin2-scripts.git "$launcher_dir/odin2-scripts"
local launcher_dir="${SDCARD}/usr/local/bin"
local launcher_file="${launcher_dir}/install-odin2-scripts"
run_host_command_logged mkdir -pv "${launcher_dir}"
cat <<- 'INSTALL_ODIN_2_SCRIPT' > "${launcher_file}"
#!/usr/bin/env bash
if [[ ! -d ~/sys/odin2-scripts ]]; then
mkdir -p ~/sys
git clone https://github.com/Squishy123/odin2-scripts.git ~/sys/odin2-scripts
fi
cd ~/sys/odin2-scripts
INSTALL_ODIN_2_SCRIPT
run_host_command_logged chmod -v +x "${launcher_file}"
display_alert "Added Odin2 Scripts" "${EXTENSION}" "info"
}

View File

@ -56,7 +56,7 @@ function artifact_armbian-base-files_prepare_version() {
artifact_name="armbian-base-files-${RELEASE}-${ARCH}"
artifact_type="deb"
artifact_deb_repo="extra/${RELEASE}-utils" # release-specific repo (jammy etc)
artifact_deb_arch="${ARCH}" # arch-specific packages (arm64 etc)
artifact_deb_arch="${ARCH}" # arch-specific packages (arm64 etc)
artifact_map_packages=(["armbian-base-files"]="base-files")
# Important. Force the final reversioned version to contain the release name.
@ -114,7 +114,7 @@ function compile_armbian-base-files() {
Version: ${artifact_version}
EOD
# Keep everything else from original
cat "${destination}/DEBIAN/control" | grep -vP '^(Maintainer|Version):' >> "${destination}/DEBIAN/control.new"
grep -vP '^(Maintainer|Version):' "${destination}/DEBIAN/control" >> "${destination}/DEBIAN/control.new"
# Replace 'Debian' with 'Armbian'.
sed -i "s/Debian/${VENDOR}/g" "${destination}/DEBIAN/control.new"

View File

@ -143,19 +143,19 @@ function compile_armbian-bsp-cli() {
# Using bootscript, copy it to /usr/share/armbian
case "${bootscript_info[bootscript_src]}" in
*'.template')
display_alert "Rendering boot script template" "${bootscript_info[bootscript_file_fullpath]} -> ${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}" "info"
run_host_command_logged cat "${bootscript_info[bootscript_file_fullpath]}" |
render_bootscript_template > "${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}"
*'.template')
display_alert "Rendering boot script template" "${bootscript_info[bootscript_file_fullpath]} -> ${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}" "info"
run_host_command_logged cat "${bootscript_info[bootscript_file_fullpath]}" |
render_bootscript_template > "${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}"
if ! proof_rendered_bootscript_template "${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}" ; then
exit_with_error "Render of bootscript template was not successful. Inspect '${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}' for unrendered variables."
fi
;;
*)
display_alert "Deploying boot script" "${bootscript_info[bootscript_file_fullpath]} -> ${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}" "info"
run_host_command_logged cp -pv "${bootscript_info[bootscript_file_fullpath]}" "${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}"
;;
if ! proof_rendered_bootscript_template "${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}"; then
exit_with_error "Render of bootscript template was not successful. Inspect '${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}' for unrendered variables."
fi
;;
*)
display_alert "Deploying boot script" "${bootscript_info[bootscript_file_fullpath]} -> ${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}" "info"
run_host_command_logged cp -pv "${bootscript_info[bootscript_file_fullpath]}" "${destination}/usr/share/armbian/${bootscript_info[bootscript_dst]}"
;;
esac
if [[ "${bootscript_info[has_bootenv]}" == "yes" ]]; then
@ -229,23 +229,6 @@ function compile_armbian-bsp-cli() {
artifact_package_hook_helper_board_side_functions "postinst" board_side_bsp_cli_postinst_base "${postinst_functions[@]}" board_side_bsp_cli_postinst_finish
unset board_side_bsp_cli_postinst_base board_side_bsp_cli_postinst_update_uboot_bootscript board_side_bsp_cli_postinst_finish
### preventing upgrading stable kernels beyond version if defined
# if freeze variable is removed, upgrade becomes possible again
if [[ "${BETA}" != "yes" ]]; then
for pin_variants in $(echo $KERNEL_UPGRADE_FREEZE | sed "s/,/ /g"); do
extracted_pins=(${pin_variants//@/ })
if [[ "${BRANCH}-${LINUXFAMILY}" == "${extracted_pins[0]}" ]]; then
cat <<- EOF >> "${destination}"/etc/apt/preferences.d/frozen-armbian
Package: linux-*-${extracted_pins[0]}
Pin: version ${extracted_pins[1]}
Pin-Priority: 999
EOF
fi
done
else
touch "${destination}"/etc/apt/preferences.d/frozen-armbian
fi
# add some summary to the image # @TODO: another?
fingerprint_image "${destination}/etc/armbian.txt"
@ -322,7 +305,7 @@ function get_bootscript_info() {
bootscript_info[bootscript_file_contents]=""
bootscript_info[bootscript_file_fullpath]="${SRC}/config/bootscripts/${bootscript_source}"
if [ -f "${USERPATCHES_PATH}/bootscripts/${bootscript_source}" ]; then
if [[ -f "${USERPATCHES_PATH}/bootscripts/${bootscript_source}" ]]; then
bootscript_info[bootscript_file_fullpath]="${USERPATCHES_PATH}/bootscripts/${bootscript_source}"
fi
bootscript_info[bootscript_file_contents]="$(cat "${bootscript_info[bootscript_file_fullpath]}")"
@ -346,8 +329,8 @@ function get_bootscript_info() {
function board_side_bsp_cli_postinst_update_uboot_bootscript() {
if [[ ${BOOTSCRIPT_FORCE_UPDATE} == yes || ! -f /boot/${BOOTSCRIPT_DST} ]]; then
[ -z ${BOOTSCRIPT_BACKUP_VERSION} ] && BOOTSCRIPT_BACKUP_VERSION="$(date +%s)"
if [ -f /boot/${BOOTSCRIPT_DST} ]; then
[[ -z "${BOOTSCRIPT_BACKUP_VERSION}" ]] && BOOTSCRIPT_BACKUP_VERSION="$(date +%s)"
if [[ -f "/boot/${BOOTSCRIPT_DST}" ]]; then
cp -v /boot/${BOOTSCRIPT_DST} /usr/share/armbian/${BOOTSCRIPT_DST}-${BOOTSCRIPT_BACKUP_VERSION}
echo "NOTE: You can find previous bootscript versions in /usr/share/armbian !"
fi
@ -358,23 +341,23 @@ function board_side_bsp_cli_postinst_update_uboot_bootscript() {
rootfstype=$(sed -e 's/^.*rootfstype=//' -e 's/ .*$//' < /proc/cmdline)
# recreate armbianEnv.txt if it and extlinux does not exists
if [ ! -f /boot/armbianEnv.txt ] && [ ! -f /boot/extlinux/extlinux.conf ]; then
if [[ ! -f /boot/armbianEnv.txt && ! -f /boot/extlinux/extlinux.conf ]]; then
cp -v /usr/share/armbian/armbianEnv.txt /boot
echo "rootdev="\$rootdev >> /boot/armbianEnv.txt
echo "rootfstype="\$rootfstype >> /boot/armbianEnv.txt
fi
# update boot.ini if it exists? @TODO: why? who uses this?
[ -f /boot/boot.ini ] && sed -i "s/setenv rootdev.*/setenv rootdev \\"$rootdev\\"/" /boot/boot.ini
[ -f /boot/boot.ini ] && sed -i "s/setenv rootfstype.*/setenv rootfstype \\"$rootfstype\\"/" /boot/boot.ini
[[ -f /boot/boot.ini ]] && sed -i "s/setenv rootdev.*/setenv rootdev \\"$rootdev\\"/" /boot/boot.ini
[[ -f /boot/boot.ini ]] && sed -i "s/setenv rootfstype.*/setenv rootfstype \\"$rootfstype\\"/" /boot/boot.ini
[ -f /boot/boot.cmd ] && mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr > /dev/null 2>&1
[[ -f /boot/boot.cmd ]] && mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr > /dev/null 2>&1
fi
}
function board_side_bsp_cli_preinst() {
# tell people to reboot at next login
[ "$1" = "upgrade" ] && touch /var/run/.reboot_required
[[ "$1" == "upgrade" ]] && touch /var/run/.reboot_required
# fixing ramdisk corruption when using lz4 compression method
sed -i "s/^COMPRESS=.*/COMPRESS=gzip/" /etc/initramfs-tools/initramfs.conf
@ -391,39 +374,39 @@ function board_side_bsp_cli_preinst() {
esac
sysctl -p > /dev/null 2>&1
# replace canonical advertisement
if [ -d "/var/lib/ubuntu-advantage/messages/" ]; then
if [[ -d "/var/lib/ubuntu-advantage/messages/" ]]; then
echo -e "\nSupport Armbian! \nLearn more at https://armbian.com/donate" > /var/lib/ubuntu-advantage/messages/apt-pre-invoke-esm-service-status
cp /var/lib/ubuntu-advantage/messages/apt-pre-invoke-esm-service-status /var/lib/ubuntu-advantage/messages/apt-pre-invoke-no-packages-apps.tmpl
cp /var/lib/ubuntu-advantage/messages/apt-pre-invoke-esm-service-status /var/lib/ubuntu-advantage/messages/apt-pre-invoke-packages-apps
cp /var/lib/ubuntu-advantage/messages/apt-pre-invoke-esm-service-status /var/lib/ubuntu-advantage/messages/apt-pre-invoke-packages-apps.tmpl
fi
# disable deprecated services
[ -f "/etc/profile.d/activate_psd_user.sh" ] && rm /etc/profile.d/activate_psd_user.sh
[ -f "/etc/profile.d/check_first_login.sh" ] && rm /etc/profile.d/check_first_login.sh
[ -f "/etc/profile.d/check_first_login_reboot.sh" ] && rm /etc/profile.d/check_first_login_reboot.sh
[ -f "/etc/profile.d/ssh-title.sh" ] && rm /etc/profile.d/ssh-title.sh
[ -f "/etc/update-motd.d/10-header" ] && rm /etc/update-motd.d/10-header
[ -f "/etc/update-motd.d/30-sysinfo" ] && rm /etc/update-motd.d/30-sysinfo
[ -f "/etc/update-motd.d/35-tips" ] && rm /etc/update-motd.d/35-tips
[ -f "/etc/update-motd.d/40-updates" ] && rm /etc/update-motd.d/40-updates
[ -f "/etc/update-motd.d/98-autoreboot-warn" ] && rm /etc/update-motd.d/98-autoreboot-warn
[ -f "/etc/update-motd.d/99-point-to-faq" ] && rm /etc/update-motd.d/99-point-to-faq
[ -f "/etc/update-motd.d/80-esm" ] && rm /etc/update-motd.d/80-esm
[ -f "/etc/update-motd.d/80-livepatch" ] && rm /etc/update-motd.d/80-livepatch
[ -f "/etc/apt/apt.conf.d/02compress-indexes" ] && rm /etc/apt/apt.conf.d/02compress-indexes
[ -f "/etc/apt/apt.conf.d/02periodic" ] && rm /etc/apt/apt.conf.d/02periodic
[ -f "/etc/apt/apt.conf.d/no-languages" ] && rm /etc/apt/apt.conf.d/no-languages
[ -f "/etc/init.d/armhwinfo" ] && rm /etc/init.d/armhwinfo
[ -f "/etc/logrotate.d/armhwinfo" ] && rm /etc/logrotate.d/armhwinfo
[ -f "/etc/init.d/firstrun" ] && rm /etc/init.d/firstrun
[ -f "/etc/init.d/resize2fs" ] && rm /etc/init.d/resize2fs
[ -f "/lib/systemd/system/firstrun-config.service" ] && rm /lib/systemd/system/firstrun-config.service
[ -f "/lib/systemd/system/firstrun.service" ] && rm /lib/systemd/system/firstrun.service
[ -f "/lib/systemd/system/resize2fs.service" ] && rm /lib/systemd/system/resize2fs.service
[ -f "/usr/lib/armbian/apt-updates" ] && rm /usr/lib/armbian/apt-updates
[ -f "/usr/lib/armbian/firstrun-config.sh" ] && rm /usr/lib/armbian/firstrun-config.sh
[[ -f "/etc/profile.d/activate_psd_user.sh" ]] && rm /etc/profile.d/activate_psd_user.sh
[[ -f "/etc/profile.d/check_first_login.sh" ]] && rm /etc/profile.d/check_first_login.sh
[[ -f "/etc/profile.d/check_first_login_reboot.sh" ]] && rm /etc/profile.d/check_first_login_reboot.sh
[[ -f "/etc/profile.d/ssh-title.sh" ]] && rm /etc/profile.d/ssh-title.sh
[[ -f "/etc/update-motd.d/10-header" ]] && rm /etc/update-motd.d/10-header
[[ -f "/etc/update-motd.d/30-sysinfo" ]] && rm /etc/update-motd.d/30-sysinfo
[[ -f "/etc/update-motd.d/35-tips" ]] && rm /etc/update-motd.d/35-tips
[[ -f "/etc/update-motd.d/40-updates" ]] && rm /etc/update-motd.d/40-updates
[[ -f "/etc/update-motd.d/98-autoreboot-warn" ]] && rm /etc/update-motd.d/98-autoreboot-warn
[[ -f "/etc/update-motd.d/99-point-to-faq" ]] && rm /etc/update-motd.d/99-point-to-faq
[[ -f "/etc/update-motd.d/80-esm" ]] && rm /etc/update-motd.d/80-esm
[[ -f "/etc/update-motd.d/80-livepatch" ]] && rm /etc/update-motd.d/80-livepatch
[[ -f "/etc/apt/apt.conf.d/02compress-indexes" ]] && rm /etc/apt/apt.conf.d/02compress-indexes
[[ -f "/etc/apt/apt.conf.d/02periodic" ]] && rm /etc/apt/apt.conf.d/02periodic
[[ -f "/etc/apt/apt.conf.d/no-languages" ]] && rm /etc/apt/apt.conf.d/no-languages
[[ -f "/etc/init.d/armhwinfo" ]] && rm /etc/init.d/armhwinfo
[[ -f "/etc/logrotate.d/armhwinfo" ]] && rm /etc/logrotate.d/armhwinfo
[[ -f "/etc/init.d/firstrun" ]] && rm /etc/init.d/firstrun
[[ -f "/etc/init.d/resize2fs" ]] && rm /etc/init.d/resize2fs
[[ -f "/lib/systemd/system/firstrun-config.service" ]] && rm /lib/systemd/system/firstrun-config.service
[[ -f "/lib/systemd/system/firstrun.service" ]] && rm /lib/systemd/system/firstrun.service
[[ -f "/lib/systemd/system/resize2fs.service" ]] && rm /lib/systemd/system/resize2fs.service
[[ -f "/usr/lib/armbian/apt-updates" ]] && rm /usr/lib/armbian/apt-updates
[[ -f "/usr/lib/armbian/firstrun-config.sh" ]] && rm /usr/lib/armbian/firstrun-config.sh
# fix for https://bugs.launchpad.net/ubuntu/+source/lightdm-gtk-greeter/+bug/1897491
[ -d "/var/lib/lightdm" ] && (
[[ -d "/var/lib/lightdm" ]] && (
chown -R lightdm:lightdm /var/lib/lightdm
chmod 0750 /var/lib/lightdm
)
@ -440,20 +423,20 @@ function board_side_bsp_cli_postrm() { # not run here
function board_side_bsp_cli_postinst_base() {
# Source the armbian-release information file
# shellcheck source=/dev/null
[ -f /etc/armbian-release ] && . /etc/armbian-release
[[ -f /etc/armbian-release ]] && . /etc/armbian-release
# ARMBIAN_PRETTY_NAME is now set in armbian-base-files.
# Force ramlog to be enabled if it exists. @TODO: why?
[ -f /etc/lib/systemd/system/armbian-ramlog.service ] && systemctl --no-reload enable armbian-ramlog.service
[[ -f /etc/lib/systemd/system/armbian-ramlog.service ]] && systemctl --no-reload enable armbian-ramlog.service
# check if it was disabled in config and disable in new service
if [ -n "$(grep -w '^ENABLED=false' /etc/default/log2ram 2> /dev/null)" ]; then
if [[ -n "$(grep -w '^ENABLED=false' /etc/default/log2ram 2> /dev/null)" ]]; then
sed -i "s/^ENABLED=.*/ENABLED=false/" /etc/default/armbian-ramlog
fi
# fix boot delay "waiting for suspend/resume device"
if [ -f "/etc/initramfs-tools/initramfs.conf" ]; then
if [[ -f "/etc/initramfs-tools/initramfs.conf" ]]; then
if ! grep --quiet "RESUME=none" /etc/initramfs-tools/initramfs.conf; then
echo "RESUME=none" >> /etc/initramfs-tools/initramfs.conf
fi
@ -464,20 +447,20 @@ function board_side_bsp_cli_postinst_finish() {
ln -sf /var/run/motd /etc/motd
rm -f /etc/update-motd.d/00-header /etc/update-motd.d/10-help-text
if [ ! -f "/etc/default/armbian-motd" ]; then
if [[ ! -f "/etc/default/armbian-motd" ]]; then
mv /etc/default/armbian-motd.dpkg-dist /etc/default/armbian-motd
fi
if [ ! -f "/etc/default/armbian-ramlog" ] && [ -f /etc/default/armbian-ramlog.dpkg-dist ]; then
if [[ ! -f "/etc/default/armbian-ramlog" && -f /etc/default/armbian-ramlog.dpkg-dist ]]; then
mv /etc/default/armbian-ramlog.dpkg-dist /etc/default/armbian-ramlog
fi
if [ ! -f "/etc/default/armbian-zram-config" ] && [ -f /etc/default/armbian-zram-config.dpkg-dist ]; then
if [[ ! -f "/etc/default/armbian-zram-config" && -f /etc/default/armbian-zram-config.dpkg-dist ]]; then
mv /etc/default/armbian-zram-config.dpkg-dist /etc/default/armbian-zram-config
fi
if [ ! -f "/etc/default/armbian-firstrun" ]; then
if [[ ! -f "/etc/default/armbian-firstrun" ]]; then
mv /etc/default/armbian-firstrun.dpkg-dist /etc/default/armbian-firstrun
fi
if [ -L "/usr/lib/chromium-browser/master_preferences.dpkg-dist" ]; then
if [[ -L "/usr/lib/chromium-browser/master_preferences.dpkg-dist" ]]; then
mv /usr/lib/chromium-browser/master_preferences.dpkg-dist /usr/lib/chromium-browser/master_preferences
fi

View File

@ -24,7 +24,7 @@ copy_all_packages_files_for() {
for package_src_dir in ${PACKAGES_SEARCH_ROOT_ABSOLUTE_DIRS}; do
local package_dirpath="${package_src_dir}/${package_name}"
if [ -d "${package_dirpath}" ]; then
if [[ -d "${package_dirpath}" ]]; then
display_alert "Adding found files" "${package_dirpath} for '${package_name}'" "info"
run_host_command_logged cp -rv "${package_dirpath}/"* "${destination}/"
else

View File

@ -364,6 +364,21 @@ function armbian_kernel_config__select_nftables() {
opts_m+=("IP_SET_BITMAP_PORT")
}
# Enables netfilter legacy xtables and ebtables support for kernels 6.18+.
# Linux 6.18 removed legacy xtables support by default, which breaks Docker
# and Proxmox firewall functionality that still relies on iptables-legacy.
function armbian_kernel_config__enable_netfilter_xtables_legacy() {
if linux-version compare "${KERNEL_MAJOR_MINOR}" ge 6.18; then
display_alert "Enabling netfilter xtables legacy support" "kernel >= 6.18" "debug"
opts_y+=("NETFILTER_XTABLES_LEGACY")
opts_m+=("BRIDGE_NF_EBTABLES") # Parent for ebtables modules
opts_m+=("BRIDGE_NF_EBTABLES_LEGACY")
opts_m+=("BRIDGE_EBT_BROUTE") # Bridge ebtables broute table
opts_m+=("BRIDGE_EBT_T_FILTER") # Bridge ebtables filter table
opts_m+=("BRIDGE_EBT_T_NAT") # Bridge ebtables NAT table
fi
}
# Enables various filesystems that we expect our users to need/demand in boot dependencies.
# OVERLAY_FS isn't here b/c it's never required for boot [that this author is aware of as of 2026Jan]
# if you as a kernel family maintainer want to override this, make a function call like below:

View File

@ -7,6 +7,43 @@
# This file is a part of the Armbian Build Framework
# https://github.com/armbian/build/
# Parse a single numeric field from "ccache --print-stats" tab-separated output
# Returns 0 if field not found or not numeric
function ccache_get_stat() {
local stats_output="$1" field="$2"
local val
val=$(echo "$stats_output" | grep "^${field}" | cut -f2 || true)
[[ "${val}" =~ ^[0-9]+$ ]] || val=0
echo "$val"
}
# Calculate hit percentage from hit and miss counts
function ccache_hit_pct() {
local hit="$1" miss="$2"
local total=$(( hit + miss ))
if [[ $total -gt 0 ]]; then
echo $(( hit * 100 / total ))
else
echo 0
fi
}
# Helper function to show ccache stats - used as cleanup handler for interruption case
function ccache_show_compilation_stats() {
local stats_output direct_hit direct_miss pct
stats_output=$(ccache --print-stats 2>&1 || true)
direct_hit=$(ccache_get_stat "$stats_output" "direct_cache_hit")
direct_miss=$(ccache_get_stat "$stats_output" "direct_cache_miss")
pct=$(ccache_hit_pct "$direct_hit" "$direct_miss")
display_alert "Ccache result" "hit=${direct_hit} miss=${direct_miss} (${pct}%)" "info"
# Hook for extensions to show additional stats (e.g., remote storage)
call_extension_method "ccache_post_compilation" <<- 'CCACHE_POST_COMPILATION'
*called after ccache-wrapped compilation completes (success or failure)*
Useful for displaying remote cache statistics or other post-build info.
CCACHE_POST_COMPILATION
}
function do_with_ccache_statistics() {
display_alert "Clearing ccache statistics" "ccache" "ccache"
@ -35,8 +72,20 @@ function do_with_ccache_statistics() {
run_host_command_logged ccache --show-config "&&" sync
fi
# Register cleanup handler to show stats even if build is interrupted
add_cleanup_handler ccache_show_compilation_stats
display_alert "Running ccache'd build..." "ccache" "ccache"
"$@"
local build_exit_code=0
"$@" || build_exit_code=$?
# Show stats and remove from cleanup handlers (so it doesn't run twice on exit)
execute_and_remove_cleanup_handler ccache_show_compilation_stats
# Re-raise the error if the build failed
if [[ ${build_exit_code} -ne 0 ]]; then
return ${build_exit_code}
fi
if [[ "${SHOW_CCACHE}" == "yes" ]]; then
display_alert "Display ccache statistics" "ccache" "ccache"

View File

@ -34,7 +34,7 @@ is_enabled() {
if_enabled_echo() {
if is_enabled "$1"; then
echo -n "$2"
elif [ $# -ge 3 ]; then
elif [[ $# -ge 3 ]]; then
echo -n "$3"
fi
}
@ -473,12 +473,31 @@ function kernel_package_callback_linux_headers() {
[[ -f "${kernel_work_dir}/scripts/module.lds" ]] &&
run_host_command_logged cp -v "${kernel_work_dir}/scripts/module.lds" "${headers_target_dir}/scripts/module.lds"
# Preserve build-time kernel config as a sidecar tarball.
# postinst runs `make olddefconfig` which re-evaluates toolchain availability on the target host
# and may silently disable CONFIG_* options that were active at kernel build time
# (e.g. CONFIG_CC_IS_CLANG, CONFIG_LTO_CLANG, CONFIG_DEBUG_INFO_BTF).
# This affects both include/generated/autoconf.h (used by the C preprocessor) and
# include/config/auto.conf + include/config/ marker files (used by kbuild make rules), as well as
# include/generated/rustc_cfg (used by Rust builds).
# All of these are build artifacts and must describe the compiled kernel, not the target host.
# See: https://github.com/armbian/build/issues/9425
if [[ -f "${kernel_work_dir}/include/config/auto.conf" ]]; then
run_host_command_logged mkdir -p "${headers_target_dir}/include/generated"
local _sidecar_paths=("include/config")
[[ -f "${kernel_work_dir}/include/generated/autoconf.h" ]] && _sidecar_paths+=("include/generated/autoconf.h")
[[ -f "${kernel_work_dir}/include/generated/rustc_cfg" ]] && _sidecar_paths+=("include/generated/rustc_cfg")
run_host_command_logged tar -C "${kernel_work_dir}" -czf \
"${headers_target_dir}/include/generated/.armbian-build.tar.gz" \
"${_sidecar_paths[@]}"
fi
if [[ "${DEBUG}" == "yes" ]]; then
# Check that no binaries are included by now. Expensive... @TODO: remove after me make sure.
display_alert "Checking for binaries in kernel headers" "${headers_target_dir}" "debug"
(
cd "${headers_target_dir}" || exit 33
find . -type f | grep -v -e "include/config/" -e "\.h$" -e ".c$" -e "Makefile$" -e "Kconfig$" -e "Kbuild$" -e "\.cocci$" | xargs file | grep -v -e "ASCII" -e "script text" -e "empty" -e "Unicode text" -e "symbolic link" -e "CSV text" -e "SAS 7+" || true
find . -type f | grep -v -e "include/config/" -e "include/generated/\.armbian-build\.tar\.gz" -e "\.h$" -e ".c$" -e "Makefile$" -e "Kconfig$" -e "Kbuild$" -e "\.cocci$" | xargs file | grep -v -e "ASCII" -e "script text" -e "empty" -e "Unicode text" -e "symbolic link" -e "CSV text" -e "SAS 7+" || true
)
fi
@ -545,6 +564,7 @@ function kernel_package_callback_linux_headers() {
# make ARCH="${SRC_ARCH}" -j\$NCPU modules_prepare # depends on too much other stuff.
echo "Done compiling kernel-headers (${kernel_version_family})."
EOT_POSTINST
if [[ "${ARCH}" == "amd64" ]]; then # This really only works on x86/amd64; @TODO revisit later
@ -557,6 +577,12 @@ function kernel_package_callback_linux_headers() {
cat <<- EOT_POSTINST_FINISH
echo "Done compiling kernel-headers tools (${kernel_version_family})."
# Restore build-time config after all make steps. See: https://github.com/armbian/build/issues/9425
if [[ -f include/generated/.armbian-build.tar.gz ]]; then
tar -C . -xzf include/generated/.armbian-build.tar.gz
rm -f include/generated/.armbian-build.tar.gz
fi
EOT_POSTINST_FINISH
)
}

View File

@ -31,7 +31,7 @@ function run_kernel_make_internal() {
# If CCACHE_DIR is set, pass it to the kernel build; Pass the ccache dir explicitly, since we'll run under "env -i"
if [[ -n "${CCACHE_DIR}" ]]; then
common_make_envs+=("CCACHE_DIR='${CCACHE_DIR}'")
common_make_envs+=("CCACHE_DIR=${CCACHE_DIR@Q}")
fi
# Add the distcc envs, if any.
@ -74,7 +74,19 @@ function run_kernel_make_internal() {
common_make_params_quoted+=("${llvm_flag}")
fi
# Allow extensions to modify make parameters and environment variables
# Hook order: kernel_make_config runs first (generic extension config),
# then custom_kernel_make_params (user/board overrides can take precedence).
call_extension_method "kernel_make_config" <<- 'KERNEL_MAKE_CONFIG'
*Hook to customize kernel make environment and parameters*
Called right before invoking make for kernel compilation.
Available arrays to modify:
- common_make_envs[@]: environment variables passed via "env -i" (e.g., CCACHE_REMOTE_STORAGE)
- common_make_params_quoted[@]: make command parameters (e.g., custom flags)
Available read-only variables:
- KERNEL_COMPILER, ARCHITECTURE, BRANCH, LINUXFAMILY
KERNEL_MAKE_CONFIG
# Runs after kernel_make_config — allows user/board overrides to take precedence
call_extension_method "custom_kernel_make_params" <<- 'CUSTOM_KERNEL_MAKE_PARAMS'
*Customize kernel make parameters before compilation*
Called after all standard make parameters are set but before invoking make.

View File

@ -108,6 +108,7 @@ function kernel_drivers_prepare_harness() {
driver_rtl8189FS
driver_rtl8192EU
driver_rtl8811_rtl8812_rtl8814_rtl8821
driver_rtl8812EU_rtl8822EU
driver_xradio_xr819
driver_rtl8811CU_rtl8821C
driver_rtl8188EU_rtl8188ETV

Some files were not shown because too many files have changed in this diff Show More