Compare commits

..

834 Commits

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
Tong
47db6e853e
extensions: radxa-aic8800: allow 6.19; skip DKMS only on >= 6.20 (#9397) 2026-02-14 06:30:00 +01:00
Austin Lane
95b7fa50ab rockchip: Allow dt overlays that disable nodes
CONFIG_ROCKCHIP_MINI_KERNEL implicitly sets
CONFIG_DTC_OMIT_DISABLED=y
CONFIG_DTC_OMIT_EMPTY=y

this causes bundled devicetree overlays which set nodes to "disabled" to become noop.

Disable these DTC_OMIT options to restore overlay disable functionality.
2026-02-13 11:32:03 +01:00
Igor Pecovnik
208187f807 Race conditions: installing packages before adding a repo 2026-02-12 22:06:22 +01:00
Austin Lane
396ccb439c rockchip: Add CSC board ForLinx OK3506-S12 (RK3506J) 2026-02-12 19:35:49 +01:00
Igor Velkov
94e2da0097 Revert "build(deps): bump setuptools from 80.10.2 to 82.0.0"
This reverts commit 1925fa7228.
2026-02-12 05:15:22 +01:00
Austin Lane
e2421ab485 RK3506: Pin U-Boot to known-working commit
Kwiboo's `rk3506` branch is WIP / rebased often. Pin to commit hash while upstreaming work is underway.

Also revert (broken) changes that attempted to keep up with this branch.
2026-02-12 01:30:43 +01:00
Igor Velkov
9e251e885f extension: kernel-version-toolchain for compiler in artifact version
Add opt-in extension that includes gcc/clang major.minor version in the
kernel artifact version string for cache invalidation when the toolchain
changes. Enable with ENABLE_EXTENSIONS="kernel-version-toolchain".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 14:21:28 -05:00
Igor Velkov
baa0fdb2dc artifact/kernel: add hook for customizing version parts
Replace single-line version suffix assembly with an extensible two-array
approach: artifact_version_parts (associative, key=value) and
artifact_version_part_order (indexed, "NNNN-KEY" for sortable insertion).

Extensions can add, modify, or remove parts via the
artifact_kernel_version_parts hook. Keys starting with "_" are
internal-only and not prefixed in the output.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 14:21:28 -05:00
Igor Velkov
2f834c2508 artifact/kernel: deduplicate config hash inputs
Reduce kernel_config_modifying_hashes to last assignment per key before
hashing, so that overridden config options do not cause unnecessary
cache invalidation. Uses tac|sort to implement last-value-wins
deduplication.

Co-Authored-By: tabrisnet <tabrisnet@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 14:21:28 -05:00
dependabot[bot]
1925fa7228 build(deps): bump setuptools from 80.10.2 to 82.0.0
Bumps [setuptools](https://github.com/pypa/setuptools) from 80.10.2 to 82.0.0.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v80.10.2...v82.0.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 82.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 00:32:40 +01:00
dependabot[bot]
c7c9ad8755 build(deps): bump tj-actions/changed-files from 47.0.1 to 47.0.2
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 47.0.1 to 47.0.2.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](e002140703...8cba46e29c)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 00:06:03 +01:00
EvilOlaf
c3e34150e2 rockchip64: rewrite kernel patches 2026-02-09 23:59:10 +01:00
EvilOlaf
df7994be78 meson64: rewrite kernel patches 2026-02-09 23:59:10 +01:00
dependabot[bot]
5b4bacc0b3 build(deps): bump pip from 26.0 to 26.0.1
Bumps [pip](https://github.com/pypa/pip) from 26.0 to 26.0.1.
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/compare/26.0...26.0.1)

---
updated-dependencies:
- dependency-name: pip
  dependency-version: 26.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-09 23:58:06 +01:00
Patrick Yavitz
ca4598306f Revert "Sunxi64 EDGE: Add missing audio related modules and other"
This reverts commit 7b00e3ad79.
2026-02-09 15:46:33 +01:00
Werner
fd6a6c0520
mainline-kernel: bump to v6.19 final, prepare 7.0 for 7.0-rc1 2026-02-09 10:17:14 -03:00
EvilOlaf
11453292d4 add env for step 2026-02-09 11:50:24 +01:00
EvilOlaf
ea22abd68f a few more untested fixes 2026-02-09 11:50:24 +01:00
EvilOlaf
a58df19920 address nit-picks 2026-02-09 11:50:24 +01:00
EvilOlaf
69836f6766 address a few Rabbit's concerns. Untested yet 2026-02-09 11:50:24 +01:00
EvilOlaf
1ded131446 create rewrite-patches workflow 2026-02-09 11:50:24 +01:00
Igor Pecovnik
4e1e853318 Build targets: enable and disable build targets 2026-02-09 11:46:25 +01:00
Patrick Yavitz
7b00e3ad79 Sunxi64 EDGE: Add missing audio related modules and other
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-09 11:15:18 +01:00
Igor Pecovnik
1aa5aa627c Orangepi lite2 and one plus: change crust config 2026-02-09 02:18:35 -05:00
Igor Velkov
5269c8c7f0 Fix errors in .editorconfig 2026-02-09 00:28:39 +01:00
Ian Leung
a792906065 Orange Pi 3B: Update config
Changes:
- Bump U-Boot to v2026.01
- Add "current" option to kernel target
- Simplify U-Boot processes
2026-02-09 00:27:51 +01:00
tparys
3006a0826c
Restore qemu performance fix for Ubuntu Noble (#9371)
This restores a performance boost introduced via #6644, which appears to have been accidentally reverted in 021af5d. Additionally, a note was added to the config to indicate why that setting is important.

A write up for this issue was posted to the Armbian forums at https://forum.armbian.com/topic/57887-arm64-performance-regression-in-qemu/.
2026-02-08 14:41:13 -05:00
Rosen Penev
65d823f343
board configs: disable unprivelaged BPF (#9082)
Fixes wrong CPU vulnerability output:

/sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation:Vulnerable: Unprivileged eBPF enabled

It's enabled but CONFIG_BPF_UNPRIV_DEFAULT_OFF being unset causes the warning.

This warning happens on ARM32 and ARM64 devices.

Edited with:
find -name "*.config" -exec sed -i 's/# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set/CONFIG_BPF_UNPRIV_DEFAULT_OFF=y/g' '{}' ;

CONFIG_BPF_UNPRIV_DEFAULT_OFF is a Linux kernel build-time hardening option that disables unprivileged use of the bpf() syscall (and thus unprivileged eBPF loading) by default by setting kernel.unprivileged_bpf_disabled=2 at boot. With this default, only privileged processes (e.g., with CAP_SYS_ADMIN / CAP_BPF, depending on kernel) can load eBPF unless an administrator explicitly relaxes it. [1], [2]
Operational behavior you should know

kernel.unprivileged_bpf_disabled semantics (as documented in the kernel sysctl docs/patch):

    0: unprivileged bpf() allowed
    1: unprivileged bpf() blocked and cannot be re-enabled until reboot (no transition back to 0 while running)
    2: unprivileged bpf() blocked but admin can later switch to 0 or 1 if needed
    If CONFIG_BPF_UNPRIV_DEFAULT_OFF=y, the default becomes 2 instead of 0. [2]

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2026-02-08 14:33:35 -05:00
Patrick Yavitz
9a9adf1cb7 OrangePi 3 LTS: Use pine_h64 crust defconfig
It is identical to the one that was being created via patch.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-08 06:22:47 -05:00
Patrick Yavitz
e778848389 OrangePi 3 LTS: Update u-boot defconfig
Source of defconfig additions and mmc patch:
https://github.com/LibreELEC/LibreELEC.tv/tree/master/projects/Allwinner/patches/u-boot

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-08 06:22:47 -05:00
okrc
09b7895004 Radxa-E52C: normalize u-boot patches
Signed-off-by: okrc <okrc@hexo.dev>
2026-02-07 09:12:37 -06:00
okrc
b31f093eb0 Radxa E52C: add mainline U-Boot support and kernel target configuration
Signed-off-by: okrc <okrc@hexo.dev>
2026-02-07 09:12:37 -06:00
M. Efe Çetin
114bbfc832
khadas-edge2: remove legacy uboot (#9367)
Agreed during maintainer meeting
2026-02-07 09:11:32 -06:00
Timothy Parys
3dc8e865e2 Remove general-gpio-driver-no-sleep from Rockchip (32 bit) patch series 2026-02-07 00:10:45 +01:00
Timothy Parys
72b61b90d7 Remove Rockchip gpio patch, already applied upstream 2026-02-07 00:10:45 +01:00
Patrick Yavitz
d984ed1649 OrangePi 3 LTS: Add ethernet support to u-boot defconfig
Consolidate all defconfig patches to one patch.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-06 08:27:47 -05:00
Patrick Yavitz
2fb7dc90f6 OrangePi 3 LTS: By default downclock to 1608MHz
To run at 1800MHz:
echo "1" > /sys/devices/system/cpu/cpufreq/boost

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-06 05:59:38 -05:00
Patrick Yavitz
c0336ce695 Sunxi64-current: Set CONFIG_CPUFREQ_DT=y
This is already so in the edge defconfig.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-06 05:59:38 -05:00
Patrick Yavitz
d1e9c9032e OrangePi 3 LTS: Use extlinux and remove aw859a-wifi.service
For "reasons" extlinux provides a more stable boot.

Remove aw859a-wifi.service:
The service modprobes sprdwl_ng later in the boot process. Which
is not required. Just enabling it in modules-load.d will suffice.

I believe the reasoning for this service was to prevent a crash
which occurs if sprdwl_ng loads before cpufreq_dt. To prevent
the crash we will set in the defconfig CONFIG_CPUFREQ_DT=y.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-06 05:59:38 -05:00
Milivoje Legenovic
1890d7f656 Odroid-M2: update uboot to v2025.10
Signed-off-by: Milivoje Legenovic <m.legenovic@gmail.com>
2026-02-05 10:53:09 +01:00
Ricardo Pardini
a50ac096bd meson64: ressurect 6.12 as BRANCH=oldlts
- it's not a legacy. it's just an old LTS
- config
  - from last 6.12 rewrite back when 6.12 was current: eaac082190
  - plus enablements from 6.19 (mostly rtw wifi et al)
- since no boards enable it, it should have zero impact on CI etc
  - but still allows to build it by specifying `BRANCH=oldlts`
2026-02-05 01:04:57 +01:00
Jiali Chen
e6d22be90d feat: add extraargs from armbianEnv for mkbootimg
Signed-off-by: CodeChenL <2540735020@qq.com>
2026-02-05 01:04:38 +01:00
Patrick Yavitz
5e8cca7279 OrangePi 3 LTS: Fixup u-boot LED nodes
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-05 01:04:23 +01:00
schwar3kat
ea8bcbc983 radxa-e54c: board config: remove wayland-sessions-mask extension
Wayland is now working on this board, so the extension is no longer necessary
2026-02-05 12:50:42 +13:00
Andrei Aldea
8ba25ce903
Fix K3 issues - APT Caching, PB2, Missing KConfig (#9349)
* Fix K3 issues - APT Caching, PB2, Missing KConfig

Fixes Apt catching by post_repo_customize_image__install_ti_packages

Fix PB2 DTB name change

Add missing KConfig required for PCIe
2026-02-04 16:53:06 -06:00
Igor Pecovnik
a97f9a1d26 Odroid M2: Move main build target to CURRENT kernel branch 2026-02-04 22:57:54 +01:00
Igor Pecovnik
83635f568c Automation: when board data changes on push, execute inventory rebuild at armbian.github.io 2026-02-04 22:18:50 +01:00
Igor
f76c762516
Promoting Opi 3LTS and Odroid M2, demoting cubox-i and Jetson Nano (#9353)
* Jetson Nano: retire automatic images generation - they don't work
* Cubox-i: move it to the EOS as it doesn't boot anymore and since old.
* Odroid M2: promote the board to standard support
* Orangepi3 LTS: Promote back to the supported list
2026-02-04 21:52:54 +01:00
JohnTheCoolingFan
3f635a890f Rock 5B Plus: Add GPIO names to dts 2026-02-04 15:41:23 +03:00
Patrick Yavitz
1e5512da7d OrangePi 3 LTS: Remove property kaslr-seed from chosen node
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-04 06:50:27 -05:00
Patrick Yavitz
1df4c30aaa OrangePi 3 LTS: Add DTS and DEFCONFIG to u-boot v2026.01
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-04 06:50:27 -05:00
Igor Pecovnik
5abb97453f Refactor mesa-vpu extension: simplify and add arch-specific browser selection
- Remove legacy panfork/kisak PPAs and image suffix logic
- Restrict Rockchip multimedia to noble+vendor only
- Simplify chromium installation (remove distribution checks)
- Add new post_armbian_repo_customize_image__browser() function for
  architecture-dependent browser selection:
  - amd64: google-chrome-stable
  - arm64/armhf: chromium
  - other: firefox

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-02-03 18:14:41 +01:00
Igor Pecovnik
f169f2c22c Change PIN-ing policy. We host non snap versions of Firefox and Thunderbird 2026-02-03 18:14:41 +01:00
Igor Pecovnik
04b623b3d9 Enable riscv64 arhitecture on riscv64. It is slow but it works. 2026-02-03 18:14:41 +01:00
Clark McCauley
0ed771091f Enable "uboot-btrfs" extension 2026-02-03 07:44:57 -05:00
Clark McCauley
30e820adf2 Support BTRFS on NanoPi R3S-LTS 2026-02-03 07:44:57 -05:00
Patrick Yavitz
7998491d80 KickPi K2B: Fixup typo in u-boot patch
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-03 07:42:47 -05:00
Patrick Yavitz
e82e3b4a7c Update sun50iw9-bpi family to atf lts-v2.12.9
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-03 07:42:47 -05:00
Patrick Yavitz
b3457908c7 BPI-M4-Zero / KickPi K2B: Update $board.conf(s)
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-03 07:42:47 -05:00
Patrick Yavitz
d855d83c88 KickPI K2b: Fixup linux DTS
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-03 07:42:47 -05:00
Patrick Yavitz
7e38101ed6 BPI-M4-Zero / KickPi K2B: Update u-boot to v2026.01
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-03 07:42:47 -05:00
dependabot[bot]
93f9581853 build(deps): bump rich from 14.3.1 to 14.3.2
Bumps [rich](https://github.com/Textualize/rich) from 14.3.1 to 14.3.2.
- [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.1...v14.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 07:53:09 +01:00
dependabot[bot]
644bd9ffcc build(deps): bump pip from 25.3 to 26.0
Bumps [pip](https://github.com/pypa/pip) from 25.3 to 26.0.
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/compare/25.3...26.0)

---
updated-dependencies:
- dependency-name: pip
  dependency-version: '26.0'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 07:52:54 +01:00
Igor Pecovnik
6f02217474 Extension: Bump Nvidia propriatery driver
- drop settings
- don't install on minimal images

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-02-02 15:23:04 +01:00
Igor Pecovnik
9b1e571d43 File was removed while it remained in series control file. Removing it from there too. 2026-02-02 15:18:08 +01:00
Igor Pecovnik
12729d43e5 KDE Neon: drop conflicting packages in order to assemble KDE desktop 2026-02-02 13:57:06 +01:00
igorpecovnik
1d917c5794 Automatic board configs status synchronise 2026-02-02 08:10:29 +01:00
Igor Pecovnik
6a94cf423a Chat utilities: remove missing package 2026-02-02 06:42:48 +01:00
Patrick Yavitz
29d2d19be9 bcm2711 Family: Remove post_family_tweaks_bsp__rpi_firmware func
No longer required using linux-6.18.y and up.

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-02-02 06:41:29 +01:00
Ricardo Pardini
293dbfa540 rockchip64-6.19: rewrite against 6.19-rc8 2026-02-02 06:41:07 +01:00
Ricardo Pardini
111bcd59b6 rockchip(64)-6.19: drop upstreamed patch in -rc8 2026-02-02 06:41:07 +01:00
Ricardo Pardini
eac99d20a6 mainline-kernel: bump 6.19 to 6.19-rc8 2026-02-02 06:41:07 +01:00
Ricardo Pardini
57954a916b odroidm1: u-boot: bump to v2026.01
- tested on actual hardware
- small fixes for:
  - LEDs (new names; was wrong also in v2025.10 and previous)
  - remove duplicate enablement of CONFIG_CMD_USB_MASS_STORAGE
  - comment about lower USB3 port not working due share with OTG/UMS
    micro-usb port that is enabled
2026-02-02 06:40:40 +01:00
Ricardo Pardini
5eabdce18a rockchip64-6.19: odroidm1: ethernet TXD timing 0x4f -> 0x35 for much better performance
- See https://lore.kernel.org/r/20250819075522.2238643-1-tobetter@gmail.com which never landed
2026-02-02 06:40:40 +01:00
Igor Pecovnik
d92b94eb0a kernel: add AMD DC support for UEFI boards
Enable AMD Display Controller support for AMD Radeon GPUs on UEFI systems.
Add custom_kernel_config__enable_amd_dc() to uefi_common.inc with the
following kernel options for all UEFI boards except cloud:

- DRM_AMD_DC: AMD Display Controller
- DRM_AMD_DC_DCN: Display Core Next support
- DRM_AMD_DC_DSC_SUPPORT: Display Stream Compression

Provides proper display engine support for AMD graphics cards on x86,
arm64, and loong64 UEFI platforms.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-02-01 23:56:33 +01:00
Paolo Sabatino
b499b45368 rockchip/64: import mainline patch to fix gpio can_sleep issue 2026-02-01 21:15:29 +01:00
Igor Pecovnik
956b70340d forge1: switch to RK3506J variant and add OPTEE support
- Change BOOTCONFIG from rk3506b to rk3506j variant
- Update btrfs patch to target correct defconfig
- Add OPTEE image support for secure boot functionality
2026-02-01 17:46:14 +01:00
Marvin Wewer
7bf6574e18 Resolving boot issues 2026-02-01 17:45:45 +01:00
Werner
078dde1916
armbianmonitor: fix error message at the end of every report (#9325) 2026-02-01 12:28:20 +01:00
Igor Pecovnik
4128ef0a83 apt: bypass apt-helper wait-online on multi-NIC systems
apt-daily-upgrade.service uses `apt-helper wait-online` as an ExecStartPre
step. On multi-NIC systems with systemd-networkd this helper directly calls
systemd-networkd-wait-online in strict mode, waiting for all managed links
to become online.

On boards with multiple Ethernet ports where some interfaces are commonly
unplugged, this results in repeated timeouts and causes
apt-daily-upgrade / unattended-upgrades to abort, even when at least one
interface is already fully routable.

Replace the ExecStartPre step with a direct invocation of
systemd-networkd-wait-online using `--any`, allowing the service to proceed
as soon as one interface is online.

This preserves the intent of waiting for network availability while making
the behavior robust on multi-NIC and router-style systems.
2026-02-01 00:41:50 +01:00
Igor
f12ac15a65 Update extensions/network/net-systemd-networkd.sh 2026-02-01 00:41:50 +01:00
Igor Pecovnik
071f421c3e networking: relax networkd-wait-online to avoid multi-NIC timeouts
Multi-port boards (e.g. NanoPi R6S) frequently have unused interfaces with
no-carrier. With the default systemd-networkd-wait-online behavior this can
result in "Online state: partial" and a timeout while waiting for all managed
links to become online.

That failure breaks units that depend on network-online.target such as
apt-daily-upgrade / unattended-upgrades.

Install a systemd drop-in overriding ExecStart to use:
  systemd-networkd-wait-online --any --timeout=20

This keeps the intended "wait for networking" semantics while preventing
unplugged/unused ports from blocking boot and timers.
2026-02-01 00:41:50 +01:00
Igor Velkov
50538c1ba2 followup #9164 2ba07662b - add ubuntu resolute,questing to optional-cli 2026-02-01 00:40:32 +01:00
Igor Pecovnik
4c963e2930 docker: improve auto-pull cronjob with opt-in flag and cleanup
- Add ARMBIAN_DOCKER_AUTO_PULL environment variable (opt-in, must be explicitly set to "yes")
- Move auto-pull cronjob setup from requirements to docker CLI
- Add automatic cleanup of cronjob files when flag is disabled/removed
- Remove verbose "unchanged" messages for cleaner output
- Simplify control flow in docker_ensure_auto_pull_cronjob()
2026-02-01 00:22:54 +01:00
Igor Pecovnik
882d7e3dfd docker: add automatic image pull cronjob and cleanup system
- Add docker_cleanup_old_images() to remove dangling images and keep only 2 most recent per tag
- Add docker_pull_with_marker() to pull images and update marker files tracking last pull time
- Add docker_setup_auto_pull_cronjob() to create/update system cronjob and wrapper script via hash-based detection
- Add docker_ensure_auto_pull_cronjob() to ensure cronjob is installed and up-to-date
- Create self-contained wrapper script at /usr/local/bin/armbian-docker-pull for cron execution
- Store configuration hash in /var/lib/armbian/docker-pull.hash for smart update detection
- Install cronjob at /etc/cron.d/armbian-docker-pull to pull images every 12 hours
- Move cronjob setup from docker_cli_prepare() to requirements command
- Cronjob is now only installed when users explicitly run ./compile.sh requirements
- Prevents "12 hours since last pull, pulling again" delay during builds

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-02-01 00:22:54 +01:00
EvilOlaf
a01887d50d rewrite kernel patches 2026-01-31 23:02:50 +01:00
EvilOlaf
589a7d0b91 sun55i: rewrite recent uboot patches 2026-01-31 23:02:50 +01:00
EvilOlaf
f5789c2eb2 sun55i: adjust patch filenames and subjects where valuable 2026-01-31 23:02:50 +01:00
EvilOlaf
3c4855433c sun55i: migrate recent patches to standard uboot patch tree 2026-01-31 23:02:50 +01:00
EvilOlaf
85901d98f4 fix patch order 2026-01-31 23:02:50 +01:00
Patrick Yavitz
2b72aeb113 OrangePi 3 LTS: Re-Add mmc-hs200-1_8v; to &mmc2 node
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-31 11:33:29 -05:00
Patrick Yavitz
288f545c90 OrangePi 3 LTS: Fixup reg_aldo2 node
Remove regulator-enable-ramp-delay = <100000>;

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-31 11:33:29 -05:00
Patrick Yavitz
34052c3868 Add SPRD bring up bluetooth script
Requires hciattach_opi_arm64_upstream blob

Drops dependency on Add sunxi-addr driver - Used to fix uwe5622
bluetooth MAC addresses patch

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-31 11:33:29 -05:00
Patrick Yavitz
642a75f5b3 Add NEW hciattach_opi blob
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-31 11:33:29 -05:00
Patrick Yavitz
317831dbf6 Add OrangePi 3 LTS u-boot-v2026.01 patches
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-31 11:33:29 -05:00
Patrick Yavitz
688644d238 Update OrangePi 3 LTS linux DTS
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-31 11:33:29 -05:00
Patrick Yavitz
b3ce22d01a Update OrangePi 3 LTS $board.conf
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-31 11:33:29 -05:00
Igor Velkov
b7bc3a770d clang: enable colored diagnostic output for kernel compilation
When building kernels with KERNEL_COMPILER=clang, compiler warnings
were displayed without color despite -fdiagnostics-color=always being
set in KCFLAGS. This GCC-native flag is not reliably honored by clang
when invoked through ccache and the kernel build system with LLVM=1.

Add -fcolor-diagnostics (clang's native flag) to the clang-specific
extra_warnings to ensure colored warning output.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 17:12:25 +01:00
Julian Sikorski
2c4b43bf73 Update odroidxu4-current to 6.6.122 2026-01-31 17:07:46 +01:00
EvilOlaf
b463f4f877 rockchip64-current: rewrite patches due to upstream changes 2026-01-31 13:52:11 +01:00
Igor Velkov
e9f1902134
uwe5622: fix compilation with clang on Linux 6.19 (#9314)
In Linux 6.19, net_device->dev_addr is const unsigned char *.
Clang with -Werror,-Wincompatible-pointer-types-discards-qualifiers
rejects passing dev_addr to non-const parameters and memcpy into it.

Fix by:
- Replacing memcpy(dev->dev_addr, ...) with dev_addr_set()
- Using local buffer + ether_addr_copy for sprdwl_set_mac_addr call
  that needs mutable addr (the function modifies it in-place)
- Changing u8 *mac pointer to u8 mac[ETH_ALEN] array in cfg80211.c
  where dev_addr was assigned to a non-const pointer

Relates to #9049
2026-01-31 13:51:07 +01:00
Paolo Sabatino
6d84ec9928 rockchip: fix memory controller voltage excursion for a sensitive board 2026-01-31 11:55:57 +01:00
Paolo Sabatino
8eae228718 rockchip: declare rockchip gpio driver back as non-sleeping
* this fixes huge load of WARN_ON() messages when gpio-ir-recv
   driver receives input. see the patch commit message for other
   details
2026-01-31 11:55:57 +01:00
Werner
513fc71cf8
Deprecate Matrix (#9318)
* Deprecate Matrix

close to nobody is using Matrix. The bridge doesn't run reliable too. Get rid of maintenance burden.
2026-01-31 09:32:23 +01:00
Marvin Wewer
6afba3a119
sunxi a523: add support for PCIe, SPI Flash and Iommu (#9280) 2026-01-31 06:52:26 +01:00
Igor Pecovnik
e05e27bc6f rockchip64-6.18: fix helios64 pcie patch
Remove ep-gpios property and max-link-speed, set status to okay for pcie0.
2026-01-30 15:55:29 +01:00
EvilOlaf
6dfbbc6f5b rockchip64-current: rewrite patches 2026-01-30 12:34:00 +01:00
Werner
42c75f41e9
sunxi: drop unneeded patches (#9312)
* sunxi-edge: remove unneeded patches

* remove more unneeded patches
2026-01-30 07:32:40 +01:00
Igor Pecovnik
170ebf2733 Rockchip 6.19: drop upstreamed patches 2026-01-28 01:21:11 +01:00
igorpecovnik
c83ccc7150 Automatic board configs status synchronise 2026-01-28 00:25:58 +01:00
Werner
8cb191c387 bump kernel to rc7 2026-01-27 23:46:33 +01:00
EvilOlaf
c817f70a17 rockchip64: rewrite patches 2026-01-27 23:46:33 +01:00
EvilOlaf
a6d1719859 rockchip64: adjust patches due to upstream changes in 6.19-rc7 2026-01-27 23:46:33 +01:00
retro98boy
cf13423d42 sm8250: Build USB sound card driver as module in current kernel 2026-01-27 23:45:43 +01:00
retro98boy
616ff52a16 sm8250: Build all USB-CAN drivers as module in current kernel 2026-01-27 23:45:43 +01:00
retro98boy
25a0da70a9 sm8250: Rewrite current kernel config 2026-01-27 23:45:43 +01:00
Jianfeng Liu
138da1c47f qcs6490: fix patched dtb not compiled 2026-01-27 23:45:29 +01:00
Paolo Sabatino
a621bdcfff rockchip64: fix clang build error 2026-01-27 23:44:34 +01:00
Igor Pecovnik
25790ca604 fix: motd: simplify uptime display format and align properly
Replace verbose "1 day, 6 hours, 17 minutes" format with compact
"1d 6h" style for better readability. Fix alignment with Load
and Local users fields. Reads uptime directly from /proc/uptime.
2026-01-27 23:41:53 +01:00
Igor Pecovnik
ad45d09ca4 fix: motd: fix inconsistent delimiter in container names display
The paste -sd', ' - command treats each character as a separate
delimiter to alternate between, resulting in inconsistent spacing.
Fix by using single comma delimiter then adding spaces with sed.
2026-01-27 23:41:53 +01:00
Igor Pecovnik
e2653ecb39 fix: motd: improve command alignment in 41-commands script
- Simplify printf format string and fix invalid %-0s specifier
- Use underscore for intentionally unused sudo variable
- Add proper color formatting to commands
- Improve alignment of command output
2026-01-27 23:41:53 +01:00
Igor Pecovnik
75ff6500e4 fix: motd: security hardening for 41-commands script
- Replace unquoted variable parsing with IFS+read for proper splitting
- Quote all variables to prevent word splitting and globbing
- Use proper [[ test ]] instead of [ test ] for consistency
- Fix printf format string to use proper argument passing
- Add short-circuit evaluation for "true" conditions to avoid eval
- Maintain same functionality with improved security
2026-01-27 23:41:53 +01:00
Igor Pecovnik
a4574e824a fix: motd: handle empty temperature values in printf
Fixes "printf: : invalid number" error when ambient temperature or board
temperature values are empty on systems without temperature sensors.

Adds error suppression and fallback to "0" for temperature formatting
to prevent script errors on systems without these sensors.
2026-01-27 23:41:53 +01:00
retro98boy
f5650639d9 SMART AM40: Fix typo in dts 2026-01-27 23:40:43 +01:00
retro98boy
4ca40d63f2 SMART AM40: Bump U-Boot to v2026.01 2026-01-27 23:40:43 +01:00
Igor Pecovnik
f4f91860b4 Odroid XU4: remove upstreamed patches 2026-01-27 23:39:39 +01:00
retro98boy
3bda2f5260 BesTV R3300-L: Bump U-Boot to v2026.01 2026-01-27 23:36:38 +01:00
retro98boy
40de50f93b CAINIAO CNIoT-CORE: Bump U-Boot to v2026.01 2026-01-27 23:36:17 +01:00
schwar3kat
55d6f1aba1 Remove outdated Cinnamon menu appletblob from desktop skeleton 2026-01-27 15:30:01 +13:00
dependabot[bot]
5c2ec122f3 build(deps): bump setuptools from 80.9.0 to 80.10.2
Bumps [setuptools](https://github.com/pypa/setuptools) from 80.9.0 to 80.10.2.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v80.9.0...v80.10.2)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-version: 80.10.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-26 21:58:28 +01:00
dependabot[bot]
9f0960a78e build(deps): bump rich from 14.2.0 to 14.3.1
Bumps [rich](https://github.com/Textualize/rich) from 14.2.0 to 14.3.1.
- [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.2.0...v14.3.1)

---
updated-dependencies:
- dependency-name: rich
  dependency-version: 14.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-26 21:58:17 +01:00
Jiali Chen
9aa6e1e29e patch: sm8250: current: some reasonable modifications were made
Based on the AI review

Co-authored-by: retro98boy <retro98boy@qq.com>
Signed-off-by: CodeChenL <2540735020@qq.com>
2026-01-25 13:27:26 +01:00
Jiali Chen
446fdd8bfa patch: sm8250: current: add Retroid Pocket SM8250 Patch series
Signed-off-by: CodeChenL <2540735020@qq.com>
2026-01-25 13:27:26 +01:00
Jiali Chen
7a2b090888 patch: sm8250: current: add a patche
From https://lore.kernel.org/all/20251230-ncm-refactor-v1-0-793e347bc7a7@google.com/

To fix slow startup, and the issue where the system fails
to release ncm devices when shutting down after plugging
or unplugging a usb hub, which references a null pointer

This is important for devices without serial ports,
such as the Elixir, because they enable NCM
by default for headless debugging,
making it easy to trigger related bugs.

Signed-off-by: CodeChenL <2540735020@qq.com>
2026-01-25 13:27:26 +01:00
Jiali Chen
cf5fa9a727 config: kernel: sm8250: current: optimize the config
To equip the current kernel version.

Signed-off-by: CodeChenL <2540735020@qq.com>
2026-01-25 13:27:26 +01:00
Jiali Chen
e46899dff3 patch: sm8250: current: add some patches
From https://gitlab.postmarketos.org/soc/qualcomm-sm8250/linux/-/commits/6.17.0?ref_type=HEADS

Made some modifications to be compatible with the latest kernel.

Signed-off-by: CodeChenL <2540735020@qq.com>
2026-01-25 13:27:26 +01:00
Jiali Chen
5953329909 sm8250: bump current to 6.18
Signed-off-by: CodeChenL <2540735020@qq.com>
2026-01-25 13:27:26 +01:00
Ricardo Pardini
82a8f85644 cli: kernel-dtb: check dtc for version 1.7.2 before producing normalized dts
- 1.7.2 does not resolve phandles in dts<->dts mode, which is much more useful
- I learned about this from https://lore.kernel.org/u-boot/20251219024102.145220-1-marek.vasut+renesas@mailbox.org/
- also add `-s` (sorted) flag, which further enhances comparability
- hint: Debian Trixie has 1.7.2; Ubuntu Noble only 1.7.0
2026-01-25 11:36:34 +01:00
Igor Velkov
b3624e40df extension: add arm64-compat-vdso for 32-bit vDSO support
Add extension that enables 32-bit compat vDSO for arm64 kernels.

Without vDSO, 32-bit applications using gettimeofday() syscall heavily
suffer significant performance penalty on arm64 systems.

The extension:
- Adds gcc-arm-linux-gnueabi as build dependency
- Sets CROSS_COMPILE_COMPAT for kernel make
- Enables CONFIG_COMPAT_VDSO in kernel config

Enable with: ENABLE_EXTENSIONS=arm64-compat-vdso

Refs: https://github.com/armbian/build/issues/9216

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 11:36:20 +01:00
Igor Velkov
a661744d1d kernel: add custom_kernel_make_params extension hook
Add a new extension hook point in run_kernel_make_internal() that allows
extensions to modify kernel make parameters before compilation.

Extensions can now modify:
- common_make_params_quoted - parameters passed to make
- common_make_envs - environment variables for make

This enables features like CROSS_COMPILE_COMPAT for 32-bit compat vDSO
on arm64 builds without modifying core build scripts.

Refs: https://github.com/armbian/build/issues/9216

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 11:36:20 +01:00
Igor Velkov
ecd55f4ba5 atf: rk3399: fix PL330 DMA controller initialization
Mainline TF-A doesn't initialize SGRF_SOC_CON8-CON15 which control
DMAC0 and DMAC1 configuration. Without this, the PL330 DMA controllers
cannot be accessed from Linux and PERIPH_ID reads as 0x0.

The fix configures SGRF registers to set DMAC manager threads to
running state and non-secure mode, then pulses DMAC reset to apply
the new configuration.

Based on community reverse-engineering:
- https://lists.denx.de/pipermail/u-boot/2023-April/514267.html
- https://gist.github.com/CrystalGamma/a68333fa4c9fda7eb6c09d30ad4937fe

Tested on Helios64 (RK3399).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 11:36:06 +01:00
Igor Pecovnik
95c6eed29a sm8550: enable EDGE kernel option on Odin2 2026-01-25 11:35:47 +01:00
Alex Ling
602129c7b6 sm8550: Added edge branch with kernel 6.18.y
Signed-off-by: Alex Ling <ling_kasim@hotmail.com>
2026-01-25 11:35:47 +01:00
Alex Ling
b9b5fb8b0c sm8550: Add patches for 6.18
Signed-off-by: Alex Ling <ling_kasim@hotmail.com>
2026-01-25 11:35:47 +01:00
Igor Pecovnik
6b1f235243 Rockchip EDGE: drop upstreamed patches 2026-01-25 11:33:23 +01:00
okrc
8de93dbda3 Delete patch/u-boot/v2026.01/board_nanopi-r5c/nanopi-r5c_kaslrseed.patch 2026-01-25 11:33:12 +01:00
okrc
dede3f2a50 NanoPi R5C: Update to v2026.01; enable BTRFS support
Signed-off-by: okrc <okrc@hexo.dev>
2026-01-25 11:33:12 +01:00
Igor Pecovnik
3993783628 Rockchip 6.18.y: drop upstreamed patches 2026-01-23 12:00:06 +01:00
Ricardo Pardini
4392af1ae9 orangepi5-plus: u-boot: restore vendor uboot with blobs
- mainline AT-F only for non-vendor BRANCH
- vendor branch uses vendor u-boot with rkbin blobs
- sorry for the confusion; I overlooked the conditional here
- Fixes: f45765e510
2026-01-23 11:25:03 +01:00
Igor Pecovnik
97f91102c1 rootfs: enable loong64 in qemu binfmt registration
Add loong64 to the list of architectures prepared by prepare_host_binfmt_qemu_cross().
This allows automatic registration and use of qemu-user emulation for LoongArch64
guests, enabling rootfs bootstrap and CI workflows targeting loong64.

This aligns Armbian with Debian’s upcoming native loong64 support (Forky) and allows
testing already via debian-ports and qemu-system-loongarch64.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-22 14:32:05 +01:00
igorpecovnik
539a239462 Automatic board configs status synchronise 2026-01-22 14:31:48 +01:00
Jianfeng Liu
e159691349 extension: grub: deploy qemu binary when doing cross build 2026-01-22 13:19:24 +01:00
Ricardo Pardini
f45765e510 orangepi5-plus: u-boot: use mainline ATF; bump to v2026.01; drop funky CE config options
- also drop BOOT_SUPPORT_SPI & BOOT_SPI_RKSPI_LOADER as those are for vendor u-boot, not used here
2026-01-22 13:19:06 +01:00
Igor Velkov
e9885c71af Fix "modpost not foud" error since error in rust coreutils uutils/coreutils#8924 2026-01-22 12:25:08 +01:00
schwar3kat
2cd63afadf
radxa-e54c: board config: replace hacky Wayland fix (#9281)
enable_extension "wayland-sessions-mask" instead
2026-01-22 22:10:34 +13:00
schwar3kat
968464532c Add board-level extension to mask Wayland desktop sessions 2026-01-21 19:25:26 +01:00
Alex Ling
7e0cd3bf40 rockchip64: station-m3: Enable USB type-C port
Signed-off-by: Alex Ling <ling_kasim@hotmail.com>
2026-01-21 01:40:34 +01:00
Igor Velkov
ccfe604902 memoize: add user feedback and configurable timeout for flock
When the memoize cache lock is held by another process (e.g., a stale
Docker container from a previous interrupted build), the build would
hang indefinitely without any feedback to the user.

This change:
- First tries non-blocking flock, acquiring immediately if available
- If lock is busy, informs user and waits with periodic status messages
- Adds MEMOIZE_FLOCK_WAIT_INTERVAL (default 10s) for message frequency
- Adds MEMOIZE_FLOCK_MAX_WAIT (default 0=infinite) for optional timeout
- Allows user to interrupt with Ctrl+C
- Suggests checking for stale containers: docker ps -a | grep armbian

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 01:40:21 +01:00
Ricardo Pardini
3b25162398 change-tracking: also track UBOOT_COMPILER & KERNEL_COMPILER 2026-01-21 01:39:50 +01:00
Ricardo Pardini
304457c993 config: arch: amd64: fix building kernel amd64 target with on arm64 host
- oops, this was pretty hard to find
- Fixes: dde721c3ea
2026-01-21 01:39:50 +01:00
Ricardo Pardini
dee80ba959 radxa-zero2/khadas-vim3l: u-boot: disable LWIP
- LWIP has issues with TFTP (serverip/tftpserverip) on v2026.01
- Kwiboo is already sending fixes, few separate series; check v2026.04 one day
- for now just disable the 2 boards I had enabled it for and use the legacy network stack again
- Fixes: 332e43bc8c
- Fixes: d88d32b248
2026-01-21 01:39:38 +01:00
Igor Velkov
40e8c03730 Framework: Add "Repeat Build Options" string at the end in case of error or break 2026-01-21 01:39:23 +01:00
EvilOlaf
45f96e7bf6 uefi-x86: rewrite against rc6 2026-01-21 01:39:09 +01:00
EvilOlaf
1f09c649ec uefi-arm64: rewrite against rc6 2026-01-21 01:39:09 +01:00
EvilOlaf
b78b28a47f meson64: rewrite patches against rc6 2026-01-21 01:39:09 +01:00
EvilOlaf
58a7ec95cb rockchip64: rewrite patches against rc6 2026-01-21 01:39:09 +01:00
EvilOlaf
ac46a2b965 mainline: bump to 6.19-rc6 2026-01-21 01:39:09 +01:00
Ricardo Pardini
c4b7488fa6 odroidhc4: u-boot: add regulator-boot-on also for u-boot
- Same as https://lore.kernel.org/linux-amlogic/20260116-odroid-hc4-dts-v1-1-459b601cd5cf@linuxdev.slmail.me/ but for u-boot
- u-boot ARCH_MESON uses OF_UPSTREAM; post-v2026.01 u-boot might eventually get this via dt-rebasing, but it might take a while
- All credit to Eric for the find and fix
2026-01-20 10:12:17 +03:00
Ricardo Pardini
ee69f53cb9 meson64-6.18: board-odroid-sm1-regulators-boot-on.patch from 6.19 2026-01-20 10:12:17 +03:00
EAN
e1618f9a8d meson64-6.19: odroid-sm1: regulator-boot-on patch: update from lore & rewrite
- Eric submitted upstream, thanks!
- Neil RB'ed it
- `b4 am -o- --add-link --check-newer-revisions  "https://lore.kernel.org/all/20260116-odroid-hc4-dts-v1-1-459b601cd5cf@linuxdev.slmail.me/" > patch/kernel/archive/meson64-6.19/board-odroid-sm1-regulators-boot-on.patch`
  - Armbian's patching.py chokes on b4's "cover-below-the-fold" style, small manual fix needed before rewrite
2026-01-20 10:12:17 +03:00
EAN
243f5f2bfb meson64-6.19: Add regulator-boot-on to meson-sm1-odroid and -hc4 to fix power cycle during boot
Fix power cycle glitch to SD, USB, HDMI, and especially SATA during
 boot handoff from U-Boot to kernel (causing HDDs emergency head retract, etc.)
2026-01-20 10:12:17 +03:00
dependabot[bot]
00b6e17abf build(deps): bump yamllint from 1.37.1 to 1.38.0
Bumps [yamllint](https://github.com/adrienverge/yamllint) from 1.37.1 to 1.38.0.
- [Release notes](https://github.com/adrienverge/yamllint/releases)
- [Changelog](https://github.com/adrienverge/yamllint/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/adrienverge/yamllint/compare/v1.37.1...v1.38.0)

---
updated-dependencies:
- dependency-name: yamllint
  dependency-version: 1.38.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 00:11:28 +01:00
Igor Pecovnik
6ae81d5ea2 arm64: enable AMD DC display controller for RDNA2 GPU support
Enable CONFIG_DRM_AMD_DC, CONFIG_DRM_AMD_DC_DCN, and
CONFIG_DRM_AMD_DC_DSC_SUPPORT for all arm64 UEFI kernel configs.

This enables proper display support for modern AMD GPUs including
Radeon RX 6000 series (RDNA2 architecture) such as the Radeon 6400.

The Display Controller (DC) is required for display output on modern
AMD GPUs, while DCN (Display Core Next) provides support for newer
architectures. DSC (Display Stream Compression) enables better
bandwidth utilization for high-resolution displays.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-19 19:38:01 +01:00
Werner
62458070f9
rpi4b: fix build and boot issues (#9267)
* rpi4b: rename kernel configs

* rewrite kernel configs
2026-01-18 12:42:30 +01:00
EvilOlaf
339bbeeb1f meson64: rewrite current patches 2026-01-18 11:44:17 +01:00
EvilOlaf
007754793f meson64: remove upstreamed patched 2026-01-18 11:44:17 +01:00
igorpecovnik
5ccee8c9d5 Automatic board configs status synchronise 2026-01-16 15:59:05 +01:00
Igor Pecovnik
7a58d69b7d ci: organize GitHub Actions into meaningful categories
Reorganize workflow files and names into 3 main categories:
- Data: Data collection and synchronization workflows
- Infrastructure: Infrastructure tasks (mirroring, forking)
- Maintenance: All PR checks, labels, notifications, and maintenance tasks

All workflows now have capitalized category prefixes for consistency.

Also update internal workflow references to reflect new names.
2026-01-16 15:55:01 +01:00
Ricardo Pardini
160688703e meson64-6.19: radxa-zero2: fusb302 (minimal by me + full impl by Neil/Christian)
- I submitted the basic enablement, got feedback on ML, reworked it to the minimal, valid, description
- Picked and rebased Neil/Christian's original full implementation from 2024 on top of it
  - See https://gitlab.com/superna9999/linux/-/tree/topic/amlogic/radxa-zero2/fusb302
  - This includes a driver for the CH482D chip (under `CONFIG_TYPEC_MUX_GPIO_SWITCH`, enabled here)
  - Quick search revealed two CH482D's are also present `rockchip/rk3566-radxa-cm3-io.dts` but thus far undescribed
    - see https://dl.radxa.com/cm3/io_board/radxa_cm3_io_board_v1.32_schematic.pdf pages 7 and 13
    - maybe we can work with them to help test driver and bindings?
- See https://lore.kernel.org/linux-amlogic/20260114-arm64-dts-amlogic-radxa-zero2-additions-v1-0-8b5cdf328fde@pardini.net/
- See https://lore.kernel.org/linux-amlogic/20260115-arm64-dts-amlogic-radxa-zero2-additions-v2-1-948bb0479a45@pardini.net/
2026-01-16 14:51:39 +01:00
Ricardo Pardini
332e43bc8c radxa-zero2: u-boot: bump to v2026.01; make fancy 2026-01-16 14:51:39 +01:00
Patrick Yavitz
3c845c46a9 BananaPi CM4/M2S: Update $board.conf to u-boot-v2026.01
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-16 08:12:04 -05:00
Patrick Yavitz
2ca6da15e4 BananaPi CM4/M2S: Update u-boot to v2026.01
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-16 08:12:04 -05:00
Igor Velkov
0a52e654ad Disable APA for sid too
(https://github.com/armbian/build/pull/9164#issuecomment-3756552792)
2026-01-16 08:10:03 -05:00
Igor Velkov
976b7ae524 Revert "lib / main-config.sh: enable APA extension for questing and resolute builds. Closes: #8966"
This reverts commit ca73176bd9.
2026-01-16 08:10:03 -05:00
Igor Velkov
614738ccda create generic config/dir for ubuntu questing to allow boot questing images 2026-01-16 08:10:03 -05:00
Igor Velkov
2ba07662b7 enable ubuntu Resolute image config dirs as copy of Noble 2026-01-16 08:10:03 -05:00
Igor Velkov
3066ea9652 rockchip64: Helios64: fix Type-C PD negotiation
Remove usb-role-switch property from fusb302 node and replace with
extcon property. The usb-role-switch property breaks PD negotiation
and DP alt mode on kernel 6.18+.

Fix based on PR #9245 (Pinebook Pro) by amazingfate.

Apply Helios64: fix Type-C PHY registration #9158 to 6.19.
2026-01-16 09:25:33 +01:00
Ricardo Pardini
d88d32b248 khadas-vim3l: u-boot: update v2026.01 u-boot fanciness
- use LWIP for networking
- enable some USB network drivers
- drop (now-default) kaslrseed as it was redundant
- add gpio expander support (for "red" LED)
- flash leds once on preboot (incl red one)
2026-01-16 08:15:10 +01:00
Ricardo Pardini
c90b6e31d8 rockchip64_common: emit log at the start of prepare_boot_configuration()
- different families/boards call this method at different times, this
  helps debug/understand what is going on and when
2026-01-16 08:13:01 +01:00
Ricardo Pardini
1b5bf375b1 config: arch: simplify code; always set ATF_COMPILER if unset
- if we get to arch code without an ATF_COMPILER, default it, no matter
  what the value of ATF_COMPILE is (yes/no/?)
2026-01-16 08:13:01 +01:00
Ricardo Pardini
947d349385 change-tracking: track most ATF related vars 2026-01-16 08:13:01 +01:00
TuAFBogey
bc871ca243 Fix OP-TEE build on older toolchains (Ubuntu Jammy)
Check if linker supports --no-warn-rwx-segments flag before using it.
Older binutils versions in ubuntu:jammy don't recognize this flag.
2026-01-15 21:01:19 +01:00
Ricardo Pardini
1a95f44062 genio: collabora: bump to collabora's 6.19-rc5 2026-01-15 20:18:01 +01:00
Ricardo Pardini
373355e3bb nuvoton-ma35d1: drop ATF_USE_GCC
- no longer needed/useful/real
2026-01-15 20:17:43 +01:00
Ricardo Pardini
dde721c3ea config: arch: amd64: always use x86_64-linux-gnu- for x86 stuff
- it doesn't matter on what it is running, it's always the same compiler
2026-01-15 20:17:43 +01:00
Ricardo Pardini
e01008b607 config/torrents: drop all; dead code; toolchain stuff 2026-01-15 20:17:43 +01:00
Ricardo Pardini
021af5dd9f config: arch: simplify arm64 and armhf code
- "are we on arch_xyz? no? then use this `-none-` compiler. Oh wait, now remove all `-none-` substrings from compiler. Deal."
2026-01-15 20:17:43 +01:00
Ricardo Pardini
46ec01f762 config: drop redundant ATF_COMPILER declarations from arm64 family code
- those are the arch defaults, no need to repeat
2026-01-15 20:17:43 +01:00
Ricardo Pardini
1f4d149ef7 config: riscv64: move ATF_COMPILER to arch code
- no need to keep repeating this across families
2026-01-15 20:17:43 +01:00
Ricardo Pardini
b48c253f67 inventory-boards-csv: report ATFSOURCE and ATFBRANCH 2026-01-15 20:17:43 +01:00
Ricardo Pardini
edc3dc124d artifact-uboot: hash ATFSOURCE
- if/when we change `ATFSOURCE`, we want u-boot artifacts to be rebuilt
2026-01-15 20:17:43 +01:00
Nikita Maslo
731763297d jethub-burn: add cleanup handlers and partition validation 2026-01-15 18:11:52 +03:00
Nikita Maslo
e1cab845df jethub-burn:
- Add license and copyright header
 - Refactor code and fix trap losetup
2026-01-15 18:11:52 +03:00
Nikita Maslo
0ee6cf8638 Add post-build Armbian extension for burnable JetHub boards
Signed-off-by: Nikita Maslo <nikitamalco203@gmail.com>
2026-01-15 18:11:52 +03:00
rpardini
5182e2a668 Automatic: kernel config rewrite 2026-01-15 02:13:34 +01:00
Ricardo Pardini
4fb20f36db meson64-6.18: de-bork PCIe for 6.18.5, again, again
- Fixes: 4eac206ecf which over-dropped
- meanwhile for increased insanity, patch changed name as it went upstream:
  - ML was `PCI: meson: Remove meson_pcie_link_up() timeout, message, speed check`
  - torvalds got `PCI: meson: Report that link is up while in ASPM L0s and L1 states`
- Greg KH has already queued for 6.18.6 (coming from 6.19-rc5, so torvalds name), so remove this when that is released
2026-01-14 23:58:01 +01:00
Ricardo Pardini
c2fa5b5609 linux-uefi-riscv64-current.config: recover options lost during 6.12 -> 6.18 bump
- ... sorry!
2026-01-14 23:58:01 +01:00
Ricardo Pardini
228dab4371 linux-uefi-riscv64-current: rewrite config against 6.18.5
- I messed up, so normalize first...
2026-01-14 23:58:01 +01:00
Ricardo Pardini
effa4f1e51 linux-uefi-loong64-current.config: recover options lost during 6.12 -> 6.18 bump
- ... sorry!
2026-01-14 23:58:01 +01:00
Ricardo Pardini
304fe065fc linux-uefi-loong64-current: rewrite config against 6.18.5
- I messed up, so normalize first...
2026-01-14 23:58:01 +01:00
Ricardo Pardini
c1893315d9 linux-uefi-arm64-current.config: recover options lost during 6.12 -> 6.18 bump
- ... sorry!
2026-01-14 23:58:01 +01:00
Ricardo Pardini
36f34503d5 linux-uefi-x86-current.config: recover options lost during 6.12 -> 6.18 bump
- ... sorry!
2026-01-14 23:58:01 +01:00
Ricardo Pardini
1f6403cb96 linux-uefi-x86-current: rewrite config against 6.18.5 2026-01-14 23:58:01 +01:00
Ricardo Pardini
9a655b7d33 linux-meson64-current: recover options lost during 6.12 -> 6.18 bump
- ... sorry!
2026-01-14 23:58:01 +01:00
Ricardo Pardini
43524cc6a5 linux-meson64-current: rewrite against 6.18.5
- I messed up, so normalize first...
2026-01-14 23:58:01 +01:00
Ricardo Pardini
2ef2a1e7d9 radxa-e24c: unbreak fragile metadata parser in rewrite job
- yeah, "parsing" bash is not a good idea
  - source in a subshell and echo the var instead
- here, just unbreak for now
2026-01-14 23:58:01 +01:00
Ricardo Pardini
9132473bb7 nanopi-m5: unbreak fragile metadata parser in rewrite job
- yeah, "parsing" bash is not a good idea
  - source in a subshell and echo the var instead
- here, just unbreak for now
2026-01-14 23:58:01 +01:00
Ricardo Pardini
644eb9661e mixtile-blade3: unbreak fragile metadata parser in rewrite job
- yeah, "parsing" bash is not a good idea
  - source in a subshell and echo the var instead
- here, just unbreak for now
2026-01-14 23:58:01 +01:00
Ricardo Pardini
cb36a6b10b lib: drop unused functions/general/downloads.sh (get_urls())
- dead code for a very long time
2026-01-14 20:08:21 +01:00
Ricardo Pardini
acfd9c8dcb "get completely rid of dead code toolchain stuff", pt2
- this stuff has been laying around, unused, for years
2026-01-14 20:08:21 +01:00
Ricardo Pardini
84a7e45f29 u-boot: fix and unify CROSS_COMPILE and PATH after predatory maintenance
- also avoid spurious space in `CROSS_COMPILE` when `CCACHE` is not set
2026-01-14 20:08:21 +01:00
Ricardo Pardini
c51b973217 drop UBOOT_USE_GCC, KERNEL_USE_GCC, ATF_USE_GCC completely
- also `CRUST_USE_GCC`
- those don't serve any purpose and cause confusion
2026-01-14 20:08:21 +01:00
Ricardo Pardini
6889c8c0a4 drop find_toolchains, SKIP_EXTERNAL_TOOLCHAINS and all $toolchain PATH injections
- we've had SKIP_EXTERNAL_TOOLCHAINS=yes for ~5 years now
- drop all usages, mostly through `find_toolchains()`
- drop all manual PATH env injections (we've centralized if ever needed)
2026-01-14 20:08:21 +01:00
sicxnull
0e2fec109e Fix PantherX2 2026-01-14 20:07:49 +01:00
Jianfeng Liu
4cb522e968 rockchip64-current: sync config from edge 2026-01-14 17:03:02 +01:00
Jianfeng Liu
8ced9d8a62 rockchip64-6.18: fix PD negotiation on pbp 2026-01-14 17:03:02 +01:00
Jianfeng Liu
a345becef5 rockchip64-6.19: update rk3399 typec alt mode patch 2026-01-14 17:03:02 +01:00
Jianfeng Liu
30fba6f1b1 rockchip64-6.19: fix PD negotiation on pbp 2026-01-14 17:03:02 +01:00
EvilOlaf
c0e8ba8423 meson64: remove upstreamed patch 2026-01-14 13:24:10 +01:00
EvilOlaf
e145d689c2 mainline: bump to rc5 2026-01-14 13:24:10 +01:00
Ricardo Pardini
1d91ae2ebb mixtile-core3588e: u-boot: v2026.01: add patch for debugging fdt_fixup_ethernet()
- a bit verbose but confirms missing `ethernet0`/`1` alias was the cause of random MACs for at least a few boards
- there's quite a few boards to fix, so we might want to pull this one level up later
2026-01-13 20:39:37 +01:00
Ricardo Pardini
0a0889501b mixtile-core3588e: alias ethernet0 to gmac0 for stable MAC address
- phew. this was all it takes. u-boot does the rest of the magic
2026-01-13 20:39:37 +01:00
Ricardo Pardini
746a3ec5b5 mixtile-core3588e: u-boot: enable ramboot, add usb471/2 to targets 2026-01-13 20:39:37 +01:00
Ricardo Pardini
6a1cfbc613 rockchip64-6.19: arm64: dts: rockchip: describe pcie ethernets on FriendlyElec NanoPC-T6
- By fully describing the pcie hardware for the RTL8125s (rtl8169) present on the
  board, we get to alias them to ethernet0/1. In return, (mainline) u-boot will by
  default patch the runtime FDT though it's fdt_fixup_ethernet() implementation,
  hopefully resulting in fully stable MAC addresses without the need to program
  the RTL NIC's EEPROM; as an added benefit, u-boot MAC & kernel MAC would match,
  facilitating network-boot setups.
2026-01-13 20:39:22 +01:00
Jianfeng Liu
73aab5ff66 rockchip64-edge: enable Verisilicon IOMMU for Rockchip RK3588 2026-01-13 20:39:02 +01:00
Jianfeng Liu
801b4c9e0f rockchip64-6.19: add patches for verisilicon av1 decoder 2026-01-13 20:39:02 +01:00
Jianfeng Liu
9eb346830d rockchip64-current: enable Verisilicon IOMMU for Rockchip RK3588 2026-01-13 20:39:02 +01:00
Jianfeng Liu
2499a2b446 rockchip64-6.18: add patches for verisilicon av1 decoder 2026-01-13 20:39:02 +01:00
igorpecovnik
3295cebe48 Automatic board configs status synchronise 2026-01-13 20:38:51 +01:00
EvilOlaf
fe7b8eee12 orangepizero2: fix bluetooth in edge kernel 2026-01-13 20:38:30 +01:00
Viacheslav Bocharov
43a786c327 JetHub: Update JetHub D2 uboot to 2025.04
Signed-off-by: Viacheslav Bocharov <adeep@lexina.in>
2026-01-13 09:00:36 +03:00
Viacheslav Bocharov
b24a33b917 jethub d2: update device tree files 2026-01-13 09:00:36 +03:00
Patrick Yavitz
3e40fe954b Meson64: Delete patches that are not required
general-input-touchscreen-Add-D-WAV-Multitouch.patch (not enabled)
general-memory-marked-nomap.patch (not required)

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-12 19:38:40 -05:00
igorpecovnik
25f6eec773 Automatic board configs status synchronise 2026-01-13 00:05:27 +01:00
Ricardo Pardini
001c65df07 u-boot: run binwalk on all the produced u-boot bins (always)
- optionally, if UBOOT_BINS_TO_OUTPUT=yes, copy them out to output/
- this might reveal differences in binwalk itself more than u-boot
- but better than nothing
2026-01-12 23:37:03 +01:00
Igor Velkov
18848f530d rockchip64: Helios64: fix Type-C PHY and TCPM registration
Problem:
On Helios64 boot, the Type-C PHY (ff7c0000.phy) gets stuck in
"deferred probe" state with unknown reason. This causes:
- USB 3.0 SuperSpeed via Type-C port not working
- DisplayPort via Type-C (Alt Mode) not working

The following messages appear in dmesg:
  platform ff7c0000.phy: deferred probe pending: (reason unknown)
  platform fe800000.usb: deferred probe pending: wait for supplier /phy@ff7c0000/usb3-port
  platform fec00000.dp: deferred probe pending: wait for supplier /phy@ff7c0000/dp-port

Along with dependency cycle warnings:
  /phy@ff7c0000/dp-port: Fixed dependency cycle(s) with /i2c@ff3d0000/typec-portc@22/connector

Root cause:
The Helios64 DTS uses a legacy Type-C connection method:

  &tcphy0 {
      extcon = <&fusb0>;  // Expects extcon from fusb302
  };

However:
1. The FUSB302 driver with TCPM support (since kernel ~4.14) does NOT
   create extcon devices
2. Instead, it uses the Type-C connector class (/sys/class/typec/)
3. The phy-rockchip-typec driver calls extcon_get_edev_by_phandle(),
   fails to find an extcon device at the specified phandle, and
   returns -EPROBE_DEFER
4. The PHY remains in deferred probe indefinitely

The extcon-cables property is present in the DTS, but without a
typec_extcon_bridge node it serves no purpose.

This bug has existed since Type-C support was added to Helios64
(at least since kernel 6.6). It likely worked with older fusb302
driver versions, but broke after the transition to TCPM.

Solution:
Use the typec-extcon-bridge driver (Armbian patch from Ondrej Jirman/megi)
which translates Type-C connector class events to the extcon interface.

The Pinebook Pro patch (board-pbp-add-dp-alt-mode.patch) implements this
correctly: it has a typec_extcon_bridge node, and all extcon references
point to it rather than directly to fusb0.

Changes:
1. Add typec_extcon_bridge node with compatible = "linux,typec-extcon-bridge"
2. Change extcon = <&fusb0> to extcon = <&typec_extcon_bridge> in
   tcphy0, cdn_dp, u2phy0, usbdrd_dwc3_0 nodes
3. Add usb-role-switch, mode-switch, orientation-switch properties
   to fusb0 connector for integration with the bridge
4. Update PDO definitions with DUAL_ROLE and DATA_SWAP flags
5. Convert typec-altmodes property to modern altmodes subnode format
   (required for TCPM port registration)
6. Add extcon,ignore-usb to u2phy0 (following Pinebook Pro pattern)
7. Add snps,usb3-phy-reset-quirk to usbdrd_dwc3_0

After this fix:
- Type-C PHY (ff7c0000.phy) no longer stuck in deferred probe
- USB 3.0 SuperSpeed via Type-C port should work
- DisplayPort via Type-C (Alt Mode) should work
- Correct cable orientation detection
- USB role switching (host/device)

Known remaining issues:
- FUSB302 fails to register TCPM port with error:
    4-0022    typec_fusb302: cannot register tcpm port
  This prevents USB Power Delivery negotiation. The root cause
  appears to be in the connector configuration and requires
  further investigation.
2026-01-12 23:36:43 +01:00
EvilOlaf
b6da7a9b4c rewrite everything 2026-01-12 23:34:35 +01:00
EvilOlaf
3e5da30cc7 rename already independent patch 2026-01-12 23:34:35 +01:00
EvilOlaf
29da31a00d cb1: combine patches 2026-01-12 23:34:35 +01:00
EvilOlaf
892bf74638 ac200: split hunks to combine 3 into 2 logical patches removing cross patch dependency 2026-01-12 23:34:35 +01:00
EvilOlaf
2e63422c7f combine drm sun4i hdmi patches 2026-01-12 23:34:35 +01:00
EvilOlaf
3d947f6108 re-add Makefile entries 2026-01-12 23:34:23 +01:00
EvilOlaf
77dc5f7154 sunxi: switch current and edge back to auto bumping 2026-01-12 19:19:14 +01:00
Ricardo Pardini
f9a1e52aeb genio: u-boot: patch: include pxefile_addr_r == scriptaddr at 0x40000000
- include pxefile_addr_r == scriptaddr at 0x40000000 so PXE works OOB
  - before this, would need to be set in env manually

Fixes: 431f53df3e
2026-01-12 19:18:57 +01:00
Ricardo Pardini
1b1e24e4d7 genio: add alsa-ucm-conf + ucm2 config for working audio in userspace
- from Collabora's Debian 13 impl
2026-01-12 19:18:57 +01:00
Ricardo Pardini
22f72c064b linux-genio-collabora: built-in boot-essential; add crypto & squashfs stuff
- modules -> built-in: essential stuff for accessing UFS/eMMC storage, regulators, i2c, spi
- add in-kernel crypto modules (for wifi) & squashfs compression
- somehow `CONFIG_PCI_MESON` was left enabled here, disable
2026-01-12 19:18:57 +01:00
TuAFBogey
b954ad893f Fix copyright year to 2026 2026-01-12 13:18:53 +01:00
TuAFBogey
9b12e0b978 Address final review: declare -g consistency, function keyword, move compile_optee inside hook, use echo in write_uboot_platform 2026-01-12 13:18:53 +01:00
TuAFBogey
60650cf015 Address rpardini review round 2: major cleanup
- Use SERIALCON instead of systemd override for serial console
- Remove fdtfile from bootenv (use BOOT_FDT_FILE instead)
- Remove ATF_COMPILER (arm64 default)
- Inline OPTEE variables into fetch_sources_tools hook
- Remove empty family_tweaks() and family_tweaks_bsp()
- Use only debug mode for ATF build
- Build fiptool in atf_custom_postprocess
- Move header creation inline into uboot_custom_postprocess
- Use <<- heredoc for Python script
2026-01-12 13:18:53 +01:00
TuAFBogey
e5752ad9ee Run rewrite-kernel-config for proper defconfig format 2026-01-12 13:18:53 +01:00
TuAFBogey
c9f8f3caef Address rpardini review: remove BTF patches, use full kernel config, use fetch_from_repo for OP-TEE 2026-01-12 13:18:53 +01:00
TuAFBogey
f24801893c Use EXTRA_BUILD_DEPS for OP-TEE dependencies instead of runtime apt-get 2026-01-12 13:18:53 +01:00
TuAFBogey
9ecd83082e fix: address review comments
- Rename board config to .csc (no maintainer)
- Remove duplicate board name from comment
- Change verbosity from 7 to 1 (default)
- Remove ATF patch, use ATF_SKIP_LDFLAGS_WL instead
- Move CONFIG_RD_* to kernel config (fix artifact caching)
- Fix networking comment (chrony -> NetworkManager)
- Replace -j12 with -j8
- Add fdt addr/resize after DTB reload on overlay error
2026-01-12 13:18:53 +01:00
TuAFBogey
c6e8c5b680 board: add Nuvoton MA35D1 NuMaker IoT board support
Add support for Nuvoton MA35D1 SoC family:
- ARM Cortex-A35 dual-core @ 800MHz + Cortex-M4 heterogeneous
- NuMaker IoT MA35D16F90 board (512MB DDR)
- Vendor kernel 5.10.140 from Nuvoton GitHub
- TF-A (BL2/BL31) + OP-TEE (BL32) + U-Boot (BL33) boot chain
- SD card boot support

Vendor kernel modules (pending):
Nuvoton provides closed-source Verisilicon licensed drivers:
- dcultrafb.ko (DCUltra display controller)
- ma35d1-vc8000.ko (H.264 video codec)
- galcore.ko (GPU driver)

These modules require exact kernel vermagic match:
  5.10.140-vendor-nuvoton-ma35d1 SMP mod_unload aarch64

Nuvoton is preparing custom builds of these modules for Armbian.

Signed-off-by: TuAFBogey <uguvenen@gmail.com>
2026-01-12 13:18:53 +01:00
Werner
19446b0d1f
sunxi: bump current and edge to latest minor (#9229) 2026-01-12 08:30:24 +01:00
Alex Ling
02475685e7 rockchip64: Automatic fan speed and USB 3.0 fix for station-m3
Signed-off-by: Alex Ling <ling_kasim@hotmail.com>
2026-01-11 23:19:24 +01:00
EvilOlaf
324a4f5418 sunxi: Add CONFIG_TTY_OVERY_SDIO to edge kernel config 2026-01-11 23:13:22 +01:00
Werner
d79582dd76
sunxi: refactor full patchset 2026-01-11 19:54:48 +01:00
Igor Pecovnik
09ce370e55 feat: implement parallel repository management workflow
This commit implements a complete parallel repository management system
that allows building and publishing Debian repositories in parallel,
significantly reducing build time for multiple distributions.

- `update-main`: Builds common/main component once for all releases
- `update -R <release>`: Builds release-specific components in isolated DBs
- `merge`: Combines common + release-specific components into final repos

- Isolated databases (aptly-isolated-<release>) avoid locking during parallel builds
- Common component built once, not duplicated per release
- Release-specific components (utils, desktop) built independently
- Final merge combines all components with proper GPG signing

- Fixed GPG signing to target top-level Release files (dists/{release}/Release)
- Pool cleanup before publishing avoids "file already exists" errors
- Smart package import skips duplicates during merge
- Proper handling of empty repositories and missing components
- Improved error handling and logging throughout

1. update-main: Build common component (once)
2. update -R <release>: Parallel workers build release-specific components
3. merge: Combine all components and publish with GPG signatures

This enables GitHub Actions to run multiple release builders in parallel,
reducing total repository build time from hours to minutes.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-11 00:37:46 +01:00
Ricardo Pardini
9e7f6dc264 rockchip64: patch ATF 2.13 to build on gcc-14+ (ref rk3399's m0)
- move patches into version folder (`atf-rockchip` -> `atf-rockchip/v2.13`)
- also prepares patches for v2.14 since I had them anyway
- keeps using v2.13 for now, someone can test v2.14 later and bump; I've no rk3399
- new patches:
  - add `-no-pie` to rk3399's m0 build LDFLAGS (since upstream doesn't honor M0_LDFLAGS)
  - bump PMSURAM_RSIZE from 8k to 16k to avoid overflows - confirmed working by Amazingfate
- build tested OK on jammy/bookworm/trixie/noble/resolute
  - resolute's gcc 15 and it still builds
2026-01-10 11:13:47 +01:00
EvilOlaf
3874bc250b fix patching config
`overlay-directories:` has been commented by accident
2026-01-10 11:10:27 +01:00
EvilOlaf
6d7c35e244 rewrite 2026-01-10 11:10:27 +01:00
EvilOlaf
c4975eed99 sunxi64: move whole device trees out of patches
adjust patches which modify the dts afterwards
adjust series
2026-01-10 11:10:27 +01:00
EvilOlaf
5d007ab5bc sunxi: move whole new device tree out of patches 2026-01-10 11:10:27 +01:00
EvilOlaf
6881a93e06 sunxi: cleanup old patchsets
leave 6.15 for reference
2026-01-10 09:50:11 +01:00
Ricardo Pardini
cbfbfb680e sunxi-6.18: rename patch that does fixups for clarity 2026-01-09 20:49:21 +01:00
EvilOlaf
ffcc7b713e adjust series 2026-01-09 20:34:24 +01:00
EvilOlaf
857c6edb1a adjust patching_config, remove overlays from patches 2026-01-09 20:34:24 +01:00
EvilOlaf
00ca186341 actually copy everything and adjust do not commit regex 2026-01-09 20:34:24 +01:00
EvilOlaf
e082431348 copy arm64 overlays 2026-01-09 20:34:24 +01:00
EvilOlaf
e8a8754a04 copy armhf overlays 2026-01-09 20:34:24 +01:00
EvilOlaf
9dec3a39af rewrite for cleanup, disable dt patch which was moved for testing beforehand, enable overlay autopatcher 2026-01-09 20:34:24 +01:00
Ricardo Pardini
c02a76b1dd sunxi/sunxi64-6.18: rework patching config for 32/64; extract one DT from null-patch to bare
- now each arch has its own dt folder, with its own Makefile auto-patched
- simple Makefile autopatching with `add-only: true`
- as example convert 01 null-patch to bare-dt in `dt_32/` (drop from series too)
2026-01-09 20:29:08 +01:00
Ricardo Pardini
1ab9073db2 patching: Makefile Autopatcher: only add entries for DTs in same target_dir
- when auto-patching more than one Makefile, only add the DTs added to the corresponding directory
2026-01-09 20:29:08 +01:00
Ricardo Pardini
0770f880ea genio-6.19: switch to add-only DT Makefile AutoPatcher 2026-01-09 20:29:08 +01:00
Ricardo Pardini
d03b9a924a rockchip64-6.19: switch to add-only DT Makefile AutoPatcher 2026-01-09 20:29:08 +01:00
Ricardo Pardini
a85a5aef67 patching: introduce add-only mode for DT Makefile AutoPatcher
- Autopatcher was commiting atrocities to the upstream DTs that are so
  carefully hand-crafted, by simply rewriting everything, or trying to be
  smart and failing at it (`incremental: true`)
- Instead, add `add-only: true` mode, where we simply only ever add to the
  end of the Makefile, adding each new .dts and optionally the `subdir-y`
  for overlays
2026-01-09 20:29:08 +01:00
Patrick Yavitz
a61ff239af NanoPi R3S LTS: Update to u-boot-v2026.01
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-09 13:18:14 -05:00
Igor Pecovnik
21f3af10ba Drop USB wireless driver that doesn't want to compile 2026-01-09 08:17:19 +01:00
Ricardo Pardini
6e7d2798e3 u-boot: allow custom LOGLEVEL with UBOOT_LOGLEVEL (default to 6) 2026-01-09 00:40:11 +01:00
Ricardo Pardini
7213d8e8c6 u-boot: better CONFIG_LOG/LOGLEVEL/LOG_MAX_LEVEL (=6) 2026-01-09 00:40:11 +01:00
Igor Pecovnik
d7a4c1b3ab Fix broken patch due to upstream changes, drop edge kernel as its not used 2026-01-08 21:38:09 +01:00
Ricardo Pardini
287931ac6e armbian-kernel: more eBPF-oriented options for userspace tooling 2026-01-08 19:40:54 +01:00
igorpecovnik
35be053fc1 Automatic board configs status synchronise 2026-01-08 19:29:12 +01:00
Ricardo Pardini
1d64ede95c grub: remove invalid hack for hvc0
- hvc0 (virtio console) used to be a challenge, but no longer, for a long time already
2026-01-08 19:28:55 +01:00
Ricardo Pardini
574abb9cad host-release: allow to build on resolute 2026-01-08 19:28:26 +01:00
Igor Pecovnik
4eac206ecf Fix rootfs compilation (dropping deprecated gtk2 engines), broken patch on meson64, series update 2026-01-08 19:27:48 +01:00
Ricardo Pardini
5baaad4e8d extensions/mtkflash: mtk-flash --no-erase-mmc1 landed upstream as --preserve-boot1
- of course, avoid a negation. example of how upstream is always best
2026-01-08 18:55:09 +01:00
EvilOlaf
ee4c79b19a rewrite everything
except patches adding overlays for sunxi and sunxi64
2026-01-08 17:58:43 +01:00
EvilOlaf
45aac305ac fix broken patch 2026-01-08 17:58:43 +01:00
EvilOlaf
e38d028214 sunxi-current: bump to 6.12.64 2026-01-08 17:58:43 +01:00
juanesf
2c025ef929 sun55iw3.conf bump u-boot to v2026.01 (final)
Based on (https://github.com/armbian/build/pull/9179)
2026-01-08 17:58:17 +01:00
EvilOlaf
176f78fdc4 Let's do edge only for now 2026-01-08 15:38:23 +01:00
EvilOlaf
881e231ba5 rewrite all patches 2026-01-08 15:38:23 +01:00
EvilOlaf
ee06d8cdd7 fix borked tz data 2026-01-08 15:38:23 +01:00
EvilOlaf
40173173cf fix broken patch 2026-01-08 15:38:23 +01:00
EvilOlaf
ba7701a991 sunxi: bump edge to 6.18.4 current to 6.12.64 2026-01-08 15:38:23 +01:00
Igor Pecovnik
63cf880b6e Rockchip maint: drop upstreamed patch 2026-01-08 15:36:51 +01:00
Ricardo Pardini
063c641686 genio: bootscript: boot-genio: rework addr's so can boot large initrd's
- desktop images have half the world in their initrd (plymouth?)
- `bdinfo` shows reserved regions, which are hit depending on the size of initrd
- when reserved region is hit, u-boot says `** Reading file would overwrite reserved memory **`
- done by AI after looking at `bdinfo` reserved regions
- hard lesson: all `0x` hex have to be double quoted, otherwise `Wrong image format for "source" command`
- add note about Meco having conjured up `load_addr` (it's `loadaddr`); doesn't hurt
- while at it, remove copypasta/duplicate bootlogo/consoleargs stanza
2026-01-08 12:30:24 +01:00
Ricardo Pardini
230f937d4b extensions/mtkflash: Mediatek mtk-flash direct flashing after build
- similar to `rkdevflash`, but for Mediatek devices
- also simpler; lk.bin & fip.img are produced by image build and directly used
- requires Rust+Cargo, so add those to hostdeps
  - since this is a core extension, those will be included in all Docker images too
  - which was bound to happen anyway since Rust in Linux Kernel is no longer an experiment
- extensions/mtkflash: sha1-based bin path, use fork & add `--no-erase-boot1`
- example invocation:
  - `BOARD=radxa-nio-12l BRANCH=collabora RELEASE=trixie EXT=ufs,mtkflash MTKFLASH_TTYACM_DEVICE=1`
2026-01-08 12:30:24 +01:00
Ricardo Pardini
d3d5bd2134 radxa-nio-12l: u-boot: config: extra CMD options
- `CONFIG_CMD_ITEST`   # itest expects integers on both sides, whereas regular test assumes strings
- `CONFIG_CMD_BOOTZ`   # bootz allows booting zImages
- `CONFIG_CMD_MEMINFO` # meminfo shows memory info in u-boot
- `CONFIG_CMD_SETEXPR` # setexpr allows arithmetic expressions in setenv
2026-01-08 12:30:24 +01:00
Ricardo Pardini
04cb12bfe0 radxa-nio-12l: u-boot: fix u-boot env conflict; include userspace tooling
- u-boot stores env in UFS LUN 1
- use a 2mb offset (different from vendor/Collabora's) to avoid any env conflict
- point fw_printenv/setenv at it at the correct offset and size
2026-01-08 12:30:24 +01:00
Ricardo Pardini
150f2e28b2 radxa-nio-12l: include SRC_CMDLINE for extlinux booting; add explanations
- set SRC_CMDLINE, used in extlinux/EXT=u-boot-menu scenarios
- note about d4/d8/d16 irrelevance now as we have RAM autodetection
- note about where the blobs (libdram/libbase/lk.bin) live in GH: https://github.com/armbian/mtkbin
2026-01-08 12:30:24 +01:00
Ricardo Pardini
431f53df3e genio: u-boot: patch: fdt_addr_r/kernel_addr_r/ramdisk_addr_r for large kernels/initrds
- this patches u-boot default addresses with the same values used in the boot-genio bootscript
- this enables booting extlinux with large kernels and initrd (eg: `EXT=u-boot-menu`)
2026-01-08 12:30:24 +01:00
Ricardo Pardini
324d1ed403 genio: u-boot: patch: UFS 4k UMS fixes + BTRFS fixes/enablement
- backport fixes from upstream u-boot for
  - BTRFS (plus enable BTRFS and BZIP2 support for radxa-nio-12l)
    - tested with `CARD_DEVICE=/dev/mmcblk1 ROOTFS_TYPE=btrfs BTRFS_COMPRESSION=zstd` (no UFS!)
    - also with `EXT=ufs CARD_DEVICE=/dev/sdc ROOTFS_TYPE=btrfs BTRFS_COMPRESSION=zstd` (UFS!)
  - 4k block size UFS for UMS: fixes block size issue (USB issues unhandled)
- Enable "bind" command for the Mediatek-standard USB Gadget Ethernet
2026-01-08 12:30:24 +01:00
Ricardo Pardini
872863b95a genio: u-boot: patch: mt8195: boot order: SD -> UFS -> eMMC -> USB -> Network
- this way, one doesn't need to cripple UFS to be able to boot from SD
- USB didn't get the same treatment as it's slow and **not working**...
  - ...and beyond me to fix; both OTG and Host mode are funky in u-boot...
  - ...but seem to work fine in kernel
- IMPORTANT: keep in mind: "SDcard is NOT UFS (4k block)" and don't fall for traps!
- Network note:
    - `setenv ethaddr xx:xx:xx:xx:xx:xx` & `saveenv` & `reset`
    - required for network booting; mtk doesn't use random/cpu# MAC
    - required for stable MAC in kernel (keep IP from changing, etc)
2026-01-08 12:30:24 +01:00
Ricardo Pardini
a03b88841c genio: u-boot: patch: mt8195: adjust memory size at runtime and fixup fdt
- Use TFA + libdram to obtain and set the actual memory size.
- Overwrite the memory size in the devicetree that is passed to the kernel with the actual size detected.
- All credit to Bartosz Bilas' work for the mt8188/mt8370.
- This doesn't really "use" TF-A/libdram though, those call bl33 with magic arguments which we read here.
- That is implemented by a patch in TF-A for the mt8195 platform.
2026-01-08 12:30:24 +01:00
Ricardo Pardini
5911f02880 genio: mt8195: atf: patch: add TF-A RAM size autodetection pass to bl33
- With this, bl2 will pass down the DRAM size it gets from libdram
  down to bl33 (u-boot proper) via a magic location
- This is a rework of the implementation for another MTK plat (GRINN)
2026-01-08 12:30:24 +01:00
Ricardo Pardini
ca4fe3da9a radxa-nio-12l: enable build u-boot from sources
- using family code
2026-01-08 12:30:24 +01:00
Ricardo Pardini
91b2454496 genio: export (from the image) bins needed for flashing
- so regular armbian/build users can get them in `output/images`
2026-01-08 12:30:24 +01:00
Ricardo Pardini
8c727d0f3a genio: implement complete OPTEE/u-boot/TF-A (x2)/FIP build
- genio: implemented complete bootloader build according to Collabora's scripts
  - main difference from other similar stack is that TF-A builds final FIP, not u-boot
  - thus I first disable ATF build initially, then build it in hook
  - alternatively: we could build our own FIP, but that would diverge too much
  - declare functions inside hook so hashing does all the versioning automatically
- write_uboot_platform() is a no-op; don't write bootloader to image
- ensure bootloader _builds_ across bookworm/trixie/jammy/noble/resolute
  - keep in mind original code is for bookworm (tested to build and work on trixie)
  - need to juggle the `-Wl,` prefix on LDFLAGS
    - this is not mainline ATF and it does "stupid with flags"
- genio: u-boot: always clean optee & first atf build before building
  - so one can switch build host with `DOCKER_ARMBIAN_BASE_IMAGE` (UFS...)
- genio: u-boot: using `armbian/mtkbin` repo
  - outputs fip.img & lk.bin directly to output(/images)
  - disk images do _not_ contain any bootloader
2026-01-08 12:30:24 +01:00
Ricardo Pardini
48237dda3f genio: u-boot: patches: rewrite Collabora patches 2026-01-08 12:30:24 +01:00
Ricardo Pardini
d6b1aedb52 genio: u-boot: patches: cosmetic formatting fixes on top of Collabora
- small hack to get around stupid "From xx" parsing in Armbian patcher
- also: fix attribution in `0023-watchdog-mtk_wdt-Correct-maximum-timeout-from-15-to`
2026-01-08 12:30:24 +01:00
Ricardo Pardini
8794a26af3 genio: u-boot: patches: ATF patches from Collabora (pristine)
- From https://gitlab.collabora.com/mediatek/aiot/boot/-/tree/main/patches/trusted-firmware-a at bc779c20dd5ea72a9f3edd248eb08460e3c837b6
2026-01-08 12:30:24 +01:00
Ricardo Pardini
121c89763a genio: u-boot: patches: vendor u-boot patches from Collabora (pristine)
- from https://gitlab.collabora.com/mediatek/aiot/boot/-/tree/main/patches/u-boot at 2db9a7b3f8c9c2141af6a01dd9372dbba809cf95
- I can see atleast one is a bit malformed so commit separately
2026-01-08 12:30:24 +01:00
Igor Velkov
94dd1fef1f fix for uninitialized variable 2026-01-08 12:29:01 +01:00
Igor Velkov
c580068245 enable btrfs support in uBoot 2026-01-08 12:29:01 +01:00
Igor Velkov
6bc25ea2c2 feeding rabbit 2026-01-08 12:29:01 +01:00
Igor Velkov
c60f78e0ec Helios64: update uBoot to v2026-01-rc5
- Switched to the binman-atf-mainline scenario with the same rkbin DDR blob
    rk3399_ddr_933MHz_v1.25.bin (TPL blob, as in the old working loader). DRAM init is correct, full
    4 GB visible, Linux boots.
  - U-Boot and DTS updated to v2026.01-rc5. Added MDIO/PHY node and phy-handle in rk3399-kobol-
    helios64.dts, fixing “mdio node is missing”. Disabled i2s2 in the U-Boot DT to avoid rockchip-
    i2s ... Could not register PCM.
  - boot_targets in U-Boot config shortened (mmc1, scsi0, usb0, pxe, dhcp) to avoid env_buf ... too
    small; however, the last built binary still shows the warning (needs rebuild with the shortened
    list or enlarging the buffer).
  - Boot flow: bootstd scans SD (mmc0) and eMMC (mmc1); SD boot works even without mmc0 in
    boot_targets.
  - Other changes: defconfig has CONFIG_ROCKCHIP_EXTERNAL_TPL=y to use the external DDR blob.

Boots.
2026-01-08 12:29:01 +01:00
Werner
660c52bc53
rock-3a: unset BOOTFS_TYPE for non-vendor builds (#9068)
* rock-3a: unset `BOOTFS_TYPE` for non-vendor builds

* unset BOOTFS_TYPE at all

following recommendations from Jianfeng and Ricardo
2026-01-08 12:25:00 +01:00
Igor Velkov
9922402de8 !fixup cleanup 2026-01-08 12:24:18 +01:00
Igor Velkov
e92c53a03f Include DEST_LANG in rootfs cache hash calculation
The `DEST_LANG` variable affects rootfs cache content (locale is generated via
`locale-gen "${DEST_LANG}"` before cache is packaged), but it was not included in the
cache hash calculation.

This meant that changing `DEST_LANG` would not invalidate the existing cache,
potentially resulting in images with incorrect locale.

Include `DEST_LANG` in the `hash_hooks` calculation in `calculate_rootfs_cache_id()`.

Changes
- `lib/functions/rootfs/create-cache.sh`: Add `LANG=${DEST_LANG}` to the hash input

Result
Changing `DEST_LANG` now properly invalidates rootfs cache, ensuring the correct locale
is generated.
2026-01-08 12:24:18 +01:00
Igor Velkov
3e71438048 Fix locale warnings during chroot operations
Build process generated numerous locale warnings like:
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
perl: warning: Setting locale failed

This happened because the Docker container and host environment were
configured to use `en_US.UTF-8`, but the rootfs cache may not contain
this locale (only `C.utf8` and whatever `DEST_LANG` specifies,
e.g. `en_GB.utf8`).

When `chroot_sdcard` runs commands inside the rootfs, environment variables
are inherited from the host/Docker, causing locale lookup failures.

Then use `C.UTF-8` locale for the build environment instead of `en_US.UTF-8`.
This locale is always available in rootfs immediately after mmdebstrap,
requiring no generation.

Changes
`lib/functions/host/docker.sh`: Remove `en_US.UTF-8` locale generation,
set `LANG=C.UTF-8` in container environment
`lib/functions/host/prepare-host.sh`: Change locale exports
from `en_US.UTF-8` to `C.UTF-8`
2026-01-08 12:24:18 +01:00
Igor
43c7710bfd
tools/repository/extract-repo.sh: simplify extraction by copying directly from pool (#9174)
* tools/repository/extract-repo.sh: simplify extraction by copying directly from pool

Remove dependency on Packages index files. Instead of parsing package metadata
to find file locations, directly scan the pool/ directory structure and copy all
.deb files found in each component subdirectory.

This simplifies the code and makes it more robust since it doesn't rely on
index files being present or correctly formatted.

Signed-off-by: Igor Pecovnik <igor@armbian.com>

* Add helper script: recursively clean Armbian Debian package artifacts

* Update tools/repository/cleanup-debs.sh

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Signed-off-by: Igor Pecovnik <igor@armbian.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-08 12:23:40 +01:00
Ricardo Pardini
0562e3a79f atf: once again no-warn-rwx-segment woes
- turns out everybody was wrong, including me
- some (older?) ATF sources won't work, ever; thus
  - introduce ATF_SKIP_LDFLAGS=yes to skip it completely
  - introduce ATF_SKIP_LDFLAGS_WL=yes to only skip the `-Wl,` prefix
    - this is for ATF's that pass flag directly to linker, not gcc
- artifact-uboot: hash atf-building code into artifact version
2026-01-08 12:20:14 +01:00
Ricardo Pardini
f60c1dcf12 genio: collabora: bump to Collabora's 6.19-rc4 2026-01-08 12:09:02 +01:00
Ricardo Pardini
6cf92aa21c linux-genio-collabora: enable USB Gadget stuff
- Genio has an actual USB3 UDC, so it makes sense to enable USB Gadget
  options so one can try those out at (hopefully) 5Gbit/s
2026-01-08 12:09:02 +01:00
Ricardo Pardini
40a2619e19 linux-genio-collabora: disable all platforms except CONFIG_ARCH_MEDIATEK
- this is very obviously a single family kernel, no use having dtb's for
  every other board here
- should make it a bit lighter to build too
2026-01-08 12:09:02 +01:00
Ricardo Pardini
1ba21aefe8 linux-genio-collabora: update defconfig, no changes (6.18 -> 6.19-rc1 bump) 2026-01-08 12:09:02 +01:00
Ricardo Pardini
55b14505dd genio-6.19: add patching config, -extra DT for Radxa NIO-12L
- this prepares everything for the more boards in the family
  - which will need `dt/` folder to avoid null-patches
- label & make LEDs useful
- alias mmc0/mmc1 so they match u-boot
- expose i2c3 which is exposed in the 40-pin 27:SCL3 28:SDA3 (blue pins)
  - shows up at i2c1 to userspace; why would Collabora alias an undescribed bus?
2026-01-08 12:09:02 +01:00
Ricardo Pardini
11c1424b97 genio: collabora: drop KERNELPATCHDIR override, be standard
- patches should go into `patch/kernel/archive/genio-6.19` as per default
2026-01-08 12:09:02 +01:00
Ricardo Pardini
9109d4897c genio: Collabora's kernel is at 6.19-rc1; use SHA1 instead of branch
- so it does not keep changing beneath us as happened with 6.18 -> 6.19
2026-01-08 12:09:02 +01:00
Ricardo Pardini
0771c181b4 genio: don't force INSTALL_HEADERS=yes for collabora branch
- while it is nice having them, and also a good test of being able to
  build the headers "board-side",  enabling it by default should be a
  global change, and not specific to genio
2026-01-08 12:09:02 +01:00
Ricardo Pardini
3be9a59c8d uefi-loong64-6.19: rewrite against 6.19-rc4 2026-01-08 12:08:49 +01:00
Ricardo Pardini
7e2a0b362f rockchip-6.19: rewrite against 6.19-rc4 2026-01-08 12:08:49 +01:00
tabris
1e7201fc06 kernel filogic - use extension_hook_opt_out for ntsync 2026-01-08 12:07:56 +01:00
tabris
8d0f889bf2 documentation extensions - fix link for documenting opt-out functionality 2026-01-08 12:07:56 +01:00
tabris
abde4ddc94 filogic kernel family - update comments around armbian_kernel_config__enable_various_filesystems to use extension_hook_opt_out 2026-01-08 12:07:56 +01:00
tabris
4cc12701e7 framework - update comments around armbian_kernel_config__enable_various_filesystems to use extension_hook_opt_out 2026-01-08 12:07:56 +01:00
tabris
fc9c989904 framework - extension_hook_opt_out 2026-01-08 12:07:56 +01:00
Ricardo Pardini
0f5db61567 u-boot: bump u-boot to v2026.01 (final) for boards that had -rcX
- cm3588-nas: u-boot: bump v2026.01-rc2 -> v2026.01-rc
- khadas-vim3l: u-boot: bump v2026.01-rc2 -> v2026.01
- mekotronics-458-4x4: : bump v2026.01-rcX -> v2026.01
- nanopct6: u-boot: bump v2026.01-rc2 -> v2026.01
- nanopi-r6c: u-boot: bump v2026.01-rc2 -> v2026.01
- nanopi-r76s: u-boot: bump v2026.01-rcX -> v2026.01
- odroidhc4: u-boot: bump v2026.01-rc2 -> v2026.01
- odroidn2: u-boot: bump v2026.01-rcX -> v2026.01
- rock-5b: u-boot: bump v2026.01-rc2 -> v2026.01
- this is tedious. time for `UBOOT_MAJOR_MINOR`?
2026-01-08 12:07:20 +01:00
Ricardo Pardini
4164b77d24 mixtile-blade3: board: disable 'edge' kernel, as it's not ready for end-users yet
- one can still build and try with `BRANCH=edge` forced
- but mainline is simply not ready for this yet
- help wanted!
2026-01-08 12:06:59 +01:00
Ricardo Pardini
d8830d5c20 mixtile-blade3: edge: u-boot: bump to v2026.01; boot order; symlinked DT
- fix bootorder (SD -> NVMe -> eMMC); USB disabled as nonworking with mainline still
- use the DT from rockchip64-6.18 so a single source for both u-boot and kernel
- note: the first (and only) RTL8169 used by u-boot is the port closest to board edge
2026-01-08 12:06:59 +01:00
Ricardo Pardini
9c4f8fa339 mixtile-blade3: mainline: updates to mainline DT with "working" RTL8169's
- For 6.18 + 6.19
- mixtile-blade3: add 4-pin header fan at 40c
- mixtile-blade3: add gpu nodes
- mixtile-blade3: add vcc5v0-host-en "usb" pinctrl
  - somehow results in 2 working RTL8169's behind the ASM1182e on pcie2x1l0
  - which just means the _schematics lie_
- mixtile-blade3: drop rst pinctrl from  pcie2x1l0 and pcie2x1l1
  - this is me probably being stupid, but also required for working ASM1182e/RTL8169
- Status of this mainline port:
  - Initially started by Joshua Riek (2023?)
  - I then added some PCIe3x4 stuff, but never got around to finishing it
  - Specifically, the 2 FUSB302's are beyond me for now
    - One of them _powers_ the board. To use with mainline, power the board some other way with 12V, otherwise kaboom.
      - See sre's talk on this issue; Blade3 should be similar to Rock-5b in this aspect.
  - A challenge has been the PCI2x1 lanes to the miniPCIe and ASM1182e switch
    - Which by themselves seem to work, but the devices behind them (Switch + RTL8169 NICs) do not get powered
    - Until one day I tried to describe a (in theory) USB-related power pin, and suddenly both PCIe NICs started working!
  - All that said, the board is really not stable with this; end-users are much better off with vendor kernel for now.
  - Any and all help is appreciated. Those boards are nice, they've 2 FUSB302, and fancy PCIe Endpoint mode stuff.
  - Schematics we have access to are in https://damwold5pt25n.cloudfront.net/blade3/file/Schematic_Blade_3_v1.1.0.pdf
    - Those clearly lie.
2026-01-08 12:06:59 +01:00
Ricardo Pardini
df970b8bee mvebu64: re-revitalize espressobin - can build (under noble) again
- try to squash all shellcheck warnings
- drop toolchain stuff we don't have anymore
- then it becomes obvious there was a spurious `/` in `ATF1`
- requires & works with `compile_atf()`'s LDFLAGS handling in https://github.com/armbian/build/pull/9162
- build-tested on noble (default Docker image)
- does NOT build on trixie+:
  - and apparently never will: https://lists.trustedfirmware.org/archives/list/tf-a@lists.trustedfirmware.org/thread/A2NLSTWUNTSH3WAGOW4LGATKYYCTZXXZ/
    - the whole thing has been dropped from TF-A CI, so it's effectively junk now
- also fixes `macchiatobin-doubleshot`, but that is .eos anyway
  - that builds on noble & trixie
- Fixes: 81ad50f257
2026-01-08 12:06:19 +01:00
Igor Velkov
74e8171074 Remove -Wno-error=unknown-warning-option from clang KCFLAGS.
This flag was breaking kernel's cc-option detection, causing GCC-specific
warnings (-Wpacked-not-aligned, -Wstringop-truncation, -Wmaybe-uninitialized)
to be incorrectly added to btrfs/drm/coresight builds when using clang.
2026-01-08 12:04:39 +01:00
Igor Pecovnik
f1c53ccac2 PR actions scripts: fix workflow execution name 2026-01-08 12:03:19 +01:00
Paolo Sabatino
288b14defa apply rtl8723cs bluetooth only with kernels >= 6.1 2026-01-08 11:56:44 +01:00
juanesf
62ebe93890 Add BOARD_VENDOR 2026-01-08 10:44:28 +01:00
Juan Sanchez
005cb424ae Enable OrangePi 4A CSC Initial Support 2026-01-08 10:44:28 +01:00
rpardini
7f9d6633ba Automatic: kernel config rewrite 2026-01-07 16:15:32 +01:00
Ricardo Pardini
d3ddbb0c31 rk35xx-legacy: opt-out of driver_rtl8723cs so it builds again
- legacy is slated for removal and only useful to flash the RTL8169 MAC EEPROM
2026-01-07 13:02:43 +01:00
Ricardo Pardini
64581d1b39 sun55iw3-syterkit: opt-out of driver_rtl8723cs so it builds again 2026-01-07 13:02:43 +01:00
Ricardo Pardini
d61b644ef5 framework & kernel options - simplify armbian_kernel_config_apply_opts_from_arrays, no more ambiguity opts_m vs opts_y (part 2) 2026-01-07 11:14:30 +01:00
tabris
0c21be1f67 framework & kernel options - simplify armbian_kernel_config_apply_opts_from_arrays, no more ambiguity opts_m vs opts_y 2026-01-07 11:14:30 +01:00
tabris
7ea0983321 framework and kernel config hooks - split FS modules into a separate hook function to allow customization 2026-01-07 11:14:30 +01:00
Paolo Sabatino
707025f422 rtl8723cs: stop including proprietary driver for kernel 6.19 onwards
* rtw88 mainline driver has good enough support for rtl8723cs
   so stop patching the kernel with this ancient driver
 * fixes rtl8703b (same chip as 8723cs) bluetooth firmware name file
2026-01-07 09:50:08 +01:00
Ricardo Pardini
ee2f374f7b extensions/ufs: don't check sfdisk version also when BUILDING_IMAGE!=yes
- fixes download-artifact issue
  - matrix-prep was solved by CONFIG_DEFS_ONLY previously
2026-01-06 23:19:08 +01:00
Ricardo Pardini
88de6d8758 arm64-sc8280xp/thinkpad-x13s: recover PCIE_QCOM=y
- can't be a module anymore
2026-01-06 23:16:14 +01:00
Ricardo Pardini
fcd4bf1528 arm64-sc8280xp/thinkpad-x13s: pull steev's 6.18 qcom_laptops.config
- sanely disables a bunch of non-qcom stuff
- enables sched_ext, CONFIG_QCOM_TZMEM_MODE_SHMBRIDGE
2026-01-06 23:16:14 +01:00
Ricardo Pardini
76640a1798 arm64-sc8280xp/thinkpad-x13s: rewrite .config against steev's 6.18
- apparently PCIE_QCOM quit his job (not buildable as module anymore
  - will revisit later
2026-01-06 23:16:14 +01:00
Ricardo Pardini
bb3a375912 thinkpad-x13s: bump arm64-sc8280xp to steev's 6.18.y 2026-01-06 23:16:14 +01:00
Ricardo Pardini
db0b46bfd8 arm64-sc8280xp/thinkpad-x13s: rewrite .config against steev's 6.17 2026-01-06 23:16:14 +01:00
Ricardo Pardini
63192a5e21 rockchip64-6.19: rewrite against 6.19-rc4 2026-01-06 21:47:54 +01:00
Ricardo Pardini
a16da53a5f rockchip64-6.19: drop mainline-overwriting DT rk3568-9tripod-x3568-v4
- as confirmed in https://github.com/armbian/build/pull/9067#issuecomment-3698058523
2026-01-06 21:47:54 +01:00
Ricardo Pardini
6a8e3f20d5 rockchip64-6.19: Enable audio for HDMI0 on station-m3 (repick from 6.18)
- from 545b6e28bb
2026-01-06 21:47:54 +01:00
Ricardo Pardini
1bc8f20f77 mainline-kernel: bump 6.19 to 6.19-rc4 2026-01-06 21:47:54 +01:00
Ricardo Pardini
2b9699c601 rockchip64-6.19: update rk3588 NPU patches; remove always-on from NPU regulator
- I've submitted upstream, and got feedback ref the always-on.
- See https://lore.kernel.org/linux-rockchip/20260101-arm64-dts-rockchip-rk3588-npu-enablements-v2-0-013cf5d5c39d@pardini.net
- update: merged to linux-rockchip for-next, should land in 6.20/7.0
2026-01-06 21:47:54 +01:00
Ricardo Pardini
a086111128 rockchip64-6.19: rewrite against 6.19-rc3 2026-01-06 21:47:54 +01:00
Ricardo Pardini
7cfb5732ef rockchip64-6.19: re-copy patches added to 6.18 since 6.19 bump started
- hopefully I got them all
- not `rk3528-01-arm64-dts-rockchip-Add-PCIe-Gen2x1-controller-for-RK` as that was a 6.19 backport
2026-01-06 21:47:54 +01:00
Ricardo Pardini
7033048722 rockchip64-6.19: re-copy overlay/ changed from 6.18 since 6.19 bump started
- hopefully I got them all
2026-01-06 21:47:54 +01:00
Ricardo Pardini
204dc67823 rockchip64-6.19: re-copy dt/ changed from 6.18 since 6.19 bump started
- hopefully I got them all
2026-01-06 21:47:54 +01:00
Jianfeng Liu
fa5ac4cdc8 rockchip64-6.19: add rkvdec v7 patches
- The deleted patch is not necessary because rkvdec patch v7 has removed
h264 sps check at start. And future version of chromium can also get rid
of the issue that patch has fixed.
- rpardini: squash with removal of v5
2026-01-06 21:47:54 +01:00
Fabian Wolter
793f53297a rockchip64-6.19: fix general-v4l2-iep-driver (IEP driver) 2026-01-06 21:47:54 +01:00
EvilOlaf
d9b72ab3c9 rockchip64-6.19: fix net-ethernet-realtek-add-r8169-LED-configuration-from-OF 2026-01-06 21:47:54 +01:00
EvilOlaf
76d2e86cb6 rockchip64-6.19: fix general-rt5651-add-mclk 2026-01-06 21:47:54 +01:00
EvilOlaf
83b0263622 rockchip64-6.19: disable broken rk3308-acodec-vendor-driver 2026-01-06 21:47:54 +01:00
EvilOlaf
32f3b7c693 rockchip64-6.19: disable broken rk3308-fix-10mbit-ethernet 2026-01-06 21:47:54 +01:00
EvilOlaf
8002936aac rockchip64-6.19: disable broken rk3308-0001-pinctrl-slew-mux 2026-01-06 21:47:54 +01:00
EvilOlaf
760ee0dcca rockchip64-6.19: disable broken rk3399-usbc-usb-typec-altmodes-displayport-Respect-DP_CAP_RECEPT 2026-01-06 21:47:54 +01:00
EvilOlaf
a5f02aa850 rockchip64-6.19: disable broken general-add-panel-simple-dsi 2026-01-06 21:47:54 +01:00
EvilOlaf
210f77b770 rockchip64-6.19: drop partially upstreamed general-driver-tm16xx-led-driver 2026-01-06 21:47:54 +01:00
Werner
ef32b3427e rockchip64-6.19: rk3328-roc-cc-enable-dms: fix opp-microvolt settings
- fix Rabbit's mess
2026-01-06 21:47:54 +01:00
EvilOlaf
84597d5502 rockchip64-6.19: rock-s0: fix typo in patch subject 2026-01-06 21:47:54 +01:00
EvilOlaf
d8ec59144a rockchip64-6.19: rock-3a: fix wrong gpio descriptions 2026-01-06 21:47:54 +01:00
EvilOlaf
250a3c6107 rockchip64-6.19: fix patch name typo "mail" -> "mali" 2026-01-06 21:47:54 +01:00
EvilOlaf
ba230b5abe rockchip64-6.19: rk3399-fine3399: remove duplicate &gpu node from dts 2026-01-06 21:47:54 +01:00
EvilOlaf
6b173a1ee2 rockchip64-6.19: rk3328-dusun-dsom-010r: fix typo in dts 2026-01-06 21:47:54 +01:00
EvilOlaf
c857cf01fb rockchip64-6.19: rk3399-am40: fix typo in dts 2026-01-06 21:47:54 +01:00
Werner
4c0380e140 rockchip64-6.19: rk3328-nanopi-neo3-rev02: fix "pinctl-0" -> "pinctrl-0" 2026-01-06 21:47:54 +01:00
Werner
0c40865147 rockchip64-6.19: rk3399-orangepi-4-lts: fix "disable" -> "disabled" 2026-01-06 21:47:54 +01:00
Ricardo Pardini
bacd8dff88 rockchip64_common: bump edge 6.18 -> 6.19, current 6.12 -> 6.18 2026-01-06 21:47:54 +01:00
EvilOlaf
b5107d405b rockchip64-6.19: update patching-config for 6.19 2026-01-06 21:47:54 +01:00
EvilOlaf
a5fad3b3d7 rockchip64-6.19: copy patches from 6.18 2026-01-06 21:47:54 +01:00
Alex Ling
545b6e28bb rockchip64-6.18: Enable audio for HDMI0 on station-m3
Signed-off-by: Alex Ling <ling_kasim@hotmail.com>
2026-01-06 18:44:25 +01:00
Paolo Sabatino
748a082c71 rockchip: fix rtw88 broken driver
* hundred of read32/write8 errors with rtl8723cs
   chipset, caused by a driver mistake. Backporting solution
   from 6.19-rc4 fixes the issue
2026-01-06 18:13:52 +01:00
Paolo Sabatino
911a160980 rockchip: other fixes and cleanups for current/edge kernels
* DFI driver fix to let DDR3 rk322x handle DMC driver
 * edge kernel: removal for Gigabit Ethernet DMA
   workaround for rk3288
 * reinstate CONFIG_DEBUG_FS=y with both current/edge kernels
2026-01-06 18:13:52 +01:00
Paolo Sabatino
4ccaf7e473 rockchip: bump edge kernel to 6.19 2026-01-06 18:13:52 +01:00
Paolo Sabatino
329ec0626a rockchip: bump current kernel to v6.18 2026-01-06 18:13:52 +01:00
dependabot[bot]
7abef3e3a4 build(deps): bump gitpython from 3.1.45 to 3.1.46
Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.45 to 3.1.46.
- [Release notes](https://github.com/gitpython-developers/GitPython/releases)
- [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
- [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.45...3.1.46)

---
updated-dependencies:
- dependency-name: gitpython
  dependency-version: 3.1.46
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-05 23:24:33 +01:00
Igor Pecovnik
6d2d2e97a8 Fix repository management script for parallel execution
- Remove redundant run_cmd function, use run_aptly consistently
- Include EOS releases in repository processing (remove -ve 'eos' filter)
- Fix showall command to auto-discover repos from isolated databases
- Fix source file preservation in parallel mode (keep sources for workers)
- Fix snapshot management to handle published snapshots correctly
- Fix drop_unsupported_releases to only drop unsupported, not all repos
- Remove isolated DB cleanup that caused data loss on each run
- Remove inappropriate sudo usage from html and date commands
- Enable FORCE_PUBLISH by default for better workflow
- Improve common snapshot creation in isolated mode
- Add isolated database support to showall function

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-05 01:48:26 +01:00
Werner
4648add145
radxa-cubie-a5e: maint and fixes (#9152)
* radxa-.cubie-a5e: bump atf branch to v4 and fix fdt file name

* bump u-boot to rc5
because why not?

* potential fix for corrupted images
2026-01-03 14:19:06 +01:00
schwar3kat
b003d6c675
Modify radxa-e54c board config to fix leds, network and Gnome desktop init. (#9111)
* Modify radxa-e54c board config to fix leds, network and Gnome

Modify led setup section to use new led device names

Add a keyfile /etc/NetworkManager/conf.d/99-unmanaged-devices.conf to set the internal ethernet, end1, used to connect to the internal switch chip to unmanaged.  This interface doesn't accept dhcp IP addresses and Network Manager attempts to connect it via dhcp causing errors.

A vendor kernel build with Gnome desktop attempts to use Wayland unsuccessfully causing the desktop to take over 10 minutes to initialise eventually using X11.  Modify the board /usr/lib/armbian/armbian-firstlogin file to set WaylandEnable = false if the build is for a vendor kernel with a Gnome desktop.

* Update config/boards/radxa-e54c.conf

Tested the suggestion and it works.

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Removing the RedHat-specific plugin

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-01-03 16:59:53 +13:00
cantalupo555
504ccc45d2 fix: replace comm with grep to support uutils coreutils
Ubuntu 25.04+ replaced GNU coreutils with uutils coreutils, a Rust-based
reimplementation of Unix core utilities. These are different projects
with the same package name:

- GNU coreutils 9.x (C) - Ubuntu ≤24.04
- uutils coreutils 0.x (Rust) - Ubuntu ≥25.04

The uutils comm doesn't recognize sort output as sorted, causing
"comm: file is not in sorted order" errors.

Replace comm patterns with:
- grep -vxFf for set difference (lines in B but not in A)
- sort | uniq -d for finding duplicates

These alternatives don't depend on comm, ensuring compatibility
with both GNU and uutils coreutils.
2026-01-02 21:52:32 +01:00
igorpecovnik
927658d458 Automatic board configs status synchronise 2026-01-02 21:11:04 +01:00
EvilOlaf
c98fc56724 rockchip64: fix broken patch in 6.18.3, rewrite everything 2026-01-02 20:47:31 +01:00
Igor
bfe31ce37f
Forky: libfuse2t64 has been removed (#9155) 2026-01-02 20:47:15 +01:00
Igor Pecovnik
e70fab2a19 Revert few Rabbit's suggestions that broke repository management 2026-01-02 20:46:16 +01:00
Igor
4bba1d3c5e
Repo tools: add parallel repository generation support (#9150)
**Repository tools: enable parallel repo generation and refactor repo.sh**

Add support for parallel repository generation using GitHub Actions, allowing
multiple workers to build different releases concurrently without database
locking conflicts.

### Highlights
- Add `-R/--single-release`, `update-main`, and `merge` for CI-level parallelism
- Use isolated per-release databases; remove local `-j/--parallel-jobs`
- Sign all Release files; optimize signing order
- Add `extract-repo.sh` for extracting and reorganizing packages from repositories
- Replace file-based logging with syslog (`logger`), removing sudo requirement
- Improve error handling, signing logic, and robustness
- Refactor repo.sh for better readability and documentation
- Apply CodeRabbit-recommended fixes

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-02 16:48:06 +01:00
Jianfeng Liu
f01745cfa9 allow build on forky host 2026-01-01 11:06:13 +01:00
Igor
78c7556e7e
CI: Add watchdog action script and adjust log cleaning parameter (#9147)
* CI: add watchdog action script and adjust log cleaning parameter

- Replace hardcoded GH_TOKEN env with granular permissions
- Add proper error handling for workflow/run lookups
- Fix duplicate condition checking "failure" twice
- Only rerun failed workflows, exclude cancelled ones
- Improve jq parsing with cleaner variable extraction
- Add debug logging for troubleshooting
- Use dynamic repository reference for portability
2025-12-31 13:58:46 +01:00
Ricardo Pardini
448881496a meson64-6.19: de-bork PCIe, again (missed a patch from 6.18)
- `b4 am -o- "https://lore.kernel.org/linux-amlogic/20251103221930.1831376-1-helgaas@kernel.org/"  > patch/kernel/archive/meson64-6.19/x-PCI-meson-Remove-meson_pcie_link_up-timeout-message-speed-check.patch`
  - this was the trick, I had mixed up with a different one in 6.18, half of which (`elbi` stuff) actually landed in 6.19-rc1
- `b4 am -o- "https://lore.kernel.org/linux-amlogic/20251127170908.14850-1-18255117159@163.com/" > patch/kernel/archive/meson64-6.19/x-PATCH-v7-2-2-PCI-dwc-Remove-redundant-MPS-configuration.patch`
  - to de-slow PCIe on meson64 (simple refresh, we already had it)
2025-12-30 18:35:22 +01:00
Jianfeng Liu
4e9dded00c uefi-loong64-edge: bump to 6.19 2025-12-30 10:28:26 +01:00
Jianfeng Liu
d2f6c47f6d Revert "uefi-loong64: *temporary* hold uefi-loong64 edge at 6.18"
This reverts commit e0f38cb9be.
2025-12-30 10:28:26 +01:00
Ricardo Pardini
30389a6763 wsl2(-all): drop forgotten wsl2 patches for dropped wsl2 "boards"
Fixes: 6e12c118b2
2025-12-29 16:33:29 +01:00
Ricardo Pardini
61a5d307ce uefi(-all): legacy 6.6 -> 6.12; current/cloud 6.12 -> 6.18 2025-12-29 16:33:29 +01:00
Ricardo Pardini
db850a319c uefi-arm64-6.19: rework net-stmmicro-stmmac Phytium driver + ACPI glue patches for 6.19
- adapting to
  - 26ab9830be
  - efd3c8cc52
  - 85081acc6b
2025-12-29 16:33:29 +01:00
Ricardo Pardini
91feaacaaa uefi-arm64-6.19: rewrite against 6.19-rc3 2025-12-29 16:33:29 +01:00
EvilOlaf
33b86b7fbb uefi-arm64-6.19: copy patches from 6.18 2025-12-29 16:33:29 +01:00
EvilOlaf
5c5f5c1246 uefi-x86-6.19: update patches from t2linux 6.19 branch + rewrite
- https://github.com/t2linux/linux-t2-patches/tree/6.19
  - except `1002-Put-apple-bce-in-drivers-staging.patch` where we had already diverged
  - except `7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch` to keep attribution
- (don't) Apply suggestion from rabbit (loose quote) - rabbit was wrong
- rewritten against 6.19-rc3
2025-12-29 16:33:29 +01:00
EvilOlaf
32ef352ad9 uefi-x86-6.19: copy patches from 6.18 2025-12-29 16:33:29 +01:00
Ricardo Pardini
e0f38cb9be uefi-loong64: *temporary* hold uefi-loong64 edge at 6.18
- while amazingfate works 6.19 separately
2025-12-29 16:33:29 +01:00
Ricardo Pardini
f4a269f095 uefi_common: bump edge 6.18 -> 6.19 (x86/arm64/risc64/loongarch64) 2025-12-29 16:33:29 +01:00
Ricardo Pardini
ab787f6f28 meson64-6.18: rewrite against 6.18.2 2025-12-29 12:50:02 +01:00
Ricardo Pardini
91ea87dacb meson64_common: bump current 6.12 -> 6.18 2025-12-29 12:50:02 +01:00
Ricardo Pardini
3a320d17e1 meson64-6.19: rewrite against 6.19-rc3 2025-12-29 12:50:02 +01:00
Ricardo Pardini
94f09f8a0f meson64-6.19: pick dwc-MPS-slowness-fix patch that missed the bus from 6.18 2025-12-29 12:50:02 +01:00
Ricardo Pardini
fc62cbaf1d mainline-kernel: bump 6.19 to 6.19-rc3 2025-12-29 12:50:02 +01:00
EvilOlaf
5580066a4a meson64-6.19: use llm suggestion for overlay README 2025-12-29 12:50:02 +01:00
EvilOlaf
671270edd9 meson64-6.19: rewrite patches against 6.19-rc2 2025-12-29 12:50:02 +01:00
Ricardo Pardini
186e5b4375 mainline-kernel: bump 6.19 to 6.19-rc2 2025-12-29 12:50:02 +01:00
EvilOlaf
7161c9cbb1 meson64-6.19: rework patches for 6.19-rc1
- fix jethome
- fix socinfo patch, re-enable another
- seems like no longer needed, upstream code has changed
- disable more breaking patches. Buildable state
- remove upstreamed patch
- adjust patching_config kernel versions
2025-12-29 12:50:02 +01:00
Ricardo Pardini
6467d998a4 meson64_common: meson64 bump edge to 6.19 2025-12-29 12:50:02 +01:00
EvilOlaf
8e81ee08d5 meson64-6.19: copy 6.18 patches into 6.19 2025-12-29 12:50:02 +01:00
Ricardo Pardini
1a63a5a22c Revert "meson64: bump edge to 6.19; current 6.12 -> 6.18 (#9069)" (wrong squash)
This reverts commit f1b5acc9a1.
2025-12-29 12:50:02 +01:00
Werner
f1b5acc9a1
meson64: bump edge to 6.19; current 6.12 -> 6.18 (#9069)
* meson64-6.19: copy 6.18 patches into 6.19

* meson64_common: meson64 bump edge to 6.19

* meson64-6.19: rework patches for 6.19-rc1

- fix jethome
- fix socinfo patch, re-enable another
- seems like no longer needed, upstream code has changed
- disable more breaking patches. Buildable state
- remove upstreamed patch
- adjust patching_config kernel versions

* mainline-kernel: bump 6.19 to 6.19-rc2

* meson64-6.19: rewrite patches against 6.19-rc2

* meson64-6.19: use llm suggestion for overlay README

* mainline-kernel: bump 6.19 to 6.19-rc3

* meson64-6.19: pick dwc-MPS-slowness-fix patch that missed the bus from 6.18

* meson64-6.19: rewrite against 6.19-rc3

* meson64_common: bump `current` 6.12 -> 6.18

* meson64-6.18: rewrite against 6.18.2

---------

Co-authored-by: Ricardo Pardini <ricardo@pardini.net>
2025-12-29 12:30:26 +01:00
SuperKali
50d6519612
rockchip64: add edge kernel support for Youyeetoo YY3588 (#9137)
- Add mainline device tree for YY3588 board
- Enable all peripherals: USB 3.0, Ethernet, PCIe, HDMI
- Add RK8602 PMIC regulators for CPU/NPU power
- Enable I2C buses for PMIC and RTC
- Fix pinctrl conflicts (I2C1 M2, disable SFC for UART7)
- Configure USB-C and USB 3.0 host ports
- Add HDMI0 output with HDPTX PHY
- Enable thermal management with PWM fan
- Add SD card and eMMC storage support
- Configure all UARTs, I2S audio, and SPI buses
- ES8323 audio codec currently disabled for further debugging
2025-12-29 12:18:56 +01:00
Ricardo Pardini
32eaeb6193 mixtile-core3588e: drop vendor u-boot (mainline works great)
- no need for vendor u-boot, as mainline can boot vendor kernel fine
- update comments with hardware pin references
- mainline boot order: NVMe -> USB -> eMMC
2025-12-29 09:29:20 +01:00
Ricardo Pardini
b8344d2bea mixtile-core3588e: edge: u-boot defconfig/dt with working nvme/gmac/usb
- boot order: NVMe -> MMC
- GMAC works
- nvme works
- `ums` et al working
- usb3 ports (on carrier board) work
- DT is copy (not symlink) from kernel DT due to NPU nodes
2025-12-29 09:29:20 +01:00
Ricardo Pardini
77aa36d799 rockchip64-6.18: mixtile-core3588e: device tree additions & fixes
- on top of Joshua Riek's DT, add:
  - GPU
  - NPU
  - i2c5 (40-pin)
  - saradc
  - tsadc (thermals)
  - pwm2 / tacho / cooling fan
  - sys-led
  - usb2 otg (for flashing / UMS - microusb port)
  - USB3 ports (via usb hub on carrier board)
  - hdmi0 & hdmi0 audio & vop
  - uart1 (40-pin)
2025-12-29 09:29:20 +01:00
Ricardo Pardini
42a0055940 mixtile-core3588e: add board with vendor and edge branches (Joshua Riek + fixes)
- vendor:
  - kernel: armbian/linux-rockchip already had a DTS from jriek
  - u-boot: taken from jriek (reorg'ed the defconfig)
- edge:
  - kernel: taken from jriek's 6.11 wip branch
  - u-boot: generic (can only boot SD/eMMC)
2025-12-29 09:29:20 +01:00
Igor Pecovnik
4d4390541e Making Rabbbit happy - drop .orig garbage from the patches 2025-12-29 09:25:58 +01:00
EvilOlaf
aa2e963721 add allwinner: a523: Support SPI controllers patch series
https://patchwork.kernel.org/project/linux-arm-kernel/cover/20251221110513.1850535-1-wens@kernel.org/
2025-12-29 09:25:58 +01:00
Rosen Penev
f8bb6a1f30 kernel: mvebu: enable tickless idle
Switch to NO_HZ_IDLE for energy saving. Also enable Menu cpuidle
governor for tickless systems.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Igor Pecovnik <igor@armbian.com>
2025-12-29 09:25:02 +01:00
tabris
eaac082190 kernel configs - enable EROFS as module, ditto overlayfs & F2FS 2025-12-29 09:16:28 +01:00
Ricardo Pardini
2c881a87a0 rockchip64-6.18: Enable HDMI1 and audio for HDMI0/1 on CM3588-NAS 2025-12-29 09:16:04 +01:00
Igor Pecovnik
fcb01b6da1 Missing variable in board config - address JSON matrix warnings 2025-12-29 09:15:46 +01:00
Patrick Yavitz
09f7b36373 SpacemiT: Fixup eMMC boot on the MusePi Pro "SPINOR"
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-28 17:05:50 -05:00
Igor Pecovnik
23ca293cea Missing upstream package mousetweaks
https://packages.debian.org/trixie/mousetweaks

Not sure that this is urgently needed anyway
2025-12-28 22:11:46 +01:00
Ricardo Pardini
415f118520 gha: check-pr-pictures: allow declare -g BOARD_VENDOR=
- I can't grok any of this, copilot did it
2025-12-28 19:12:42 +01:00
Ricardo Pardini
d0444e1e9d mekotronics-r58-4x4: enable edge branch with mainline kernel & u-boot
> merry everything and a happy always
- mainline:
  - enable "edge" branch, with custom DT
    - works: almost everything
    - does NOT work:
      - USB-C port is only for OTG/UMS (NOT USB3-host) - didn't describe fusb302 et al in DT
      - any of the 3x HDMI -> MIPI (or whatever) HDMI-In's (thus this is a 1x1, not 4x1)
      - front USB3 blue ports are actually USB2 (also in vendor kernel)
      - front USB2 black ports don't work (but are powered)
      - Analog audio - didn't describe, could be, but I've no way to test
  - use mainline u-boot v2026.01-rc5 (with custom DT/defconfig/etc) with mainline ATF
  - boot order: SD -> NVMe -> USB -> eMMC -> ETH
- adapt usage of shared "mekotronics" vendor include only for vendor/legacy
- also fix DTB: `rockchip/rk3588-blueberry-r58-4x4.dtb` for vendor
  - same across vendor and mainline
  - mainline u-boot kinda-boots vendor kernel, but TF-A mismatch ref HDMI-rx
    - so use vendor u-boot and rk blob for vendor branch/kernel
2025-12-28 12:38:02 +01:00
Ricardo Pardini
27d283ced9 mekotronics-r58-4x4: add v2026.01 mainline u-boot
- DT is a copy from kernel, minus the NPU nodes (which u-boot doesn't know about yet)
2025-12-28 12:38:02 +01:00
Ricardo Pardini
47b982f678 mekotronics-r58-4x4: fix vendor u-boot
- add missing symlink to u-boot patches, same as other meko boards
2025-12-28 12:38:02 +01:00
Ricardo Pardini
dce9abba2e rockchip64-6.18: mekotronics-r58-4x4: rtl8125/8169 describe in DT for stable MAC
- this will later be patched by an u-boot board file fdt_init() with ethaddr
- for now just hardcoded
2025-12-28 12:38:02 +01:00
Ricardo Pardini
d176957476 rockchip64-6.18: mekotronics-r58-4x4: usb 2.0 type-A ports & regulator/pinctrl
- straight-ish from vendor (which is a complete mess)
- front:
  - blue ports work (in usb2.0 mode, which also happens in vendor kernel)
  - black ports do NOT work (but are powered...?)
- back:
  - white ports work in usb 2.0 mode (as expected, also in vendor kernel)
    - those ports have too-long wires (flat cable) and reset all the time
- in summary: blue "USB3" ports at the front work in USB2.0 mode
  - rest doesn't
2025-12-28 12:38:02 +01:00
Ricardo Pardini
941dc725bc rockchip64-6.18: mekotronics-r58-4x4: uart6 and bluetooth part of BCM43752
- all credit to armsom sige7 DT, otherwise I'd be lost forever
2025-12-28 12:38:02 +01:00
Ricardo Pardini
e49880669b rockchip64-6.18: mekotronics-r58-4x4: uart1 (green connector on back of board) 2025-12-28 12:38:02 +01:00
Ricardo Pardini
3c9243b5d0 rockchip64-6.18: mekotronics-r58-4x4: wifi on pcie2x1l0 with clock and wifi_host_wake_irq 2025-12-28 12:38:02 +01:00
Ricardo Pardini
9164cc93ca rockchip64-6.18: mekotronics-r58-4x4: rtc 2025-12-28 12:38:02 +01:00
Ricardo Pardini
fa672fbfcb rockchip64-6.18: mekotronics-r58-4x4: hdmi-in (hdmirx)
- the 4x4 has 4 HDMI-In's, only one of them (labeled "HDMI IN60") is 3588-native
2025-12-28 12:38:02 +01:00
Ricardo Pardini
7e531c09e3 rockchip64-6.18: mekotronics-r58-4x4: hdmi audio (out) 2025-12-28 12:38:02 +01:00
Ricardo Pardini
24a9e994bd rockchip64-6.18: mekotronics-r58-4x4: "power" led & pinctrl 2025-12-28 12:38:02 +01:00
Ricardo Pardini
8aa448f8f8 rockchip64-6.18: mekotronics-r58-4x4: i2c2 regulator and NPU 2025-12-28 12:38:02 +01:00
Ricardo Pardini
94fa014ac1 rockchip64-6.18: mekotronics-r58-4x4: hdmi, vop, gpu, saradc, tsadc
- all work fine
2025-12-28 12:38:02 +01:00
Ricardo Pardini
b0da2145ad rockchip64-6.18: mekotronics-r58-4x4: pcie2x1l0 (wifi) and pcie2x1l1 (rtl8169)
- wifi doesn't come up; guess I'll have to add bus-range later
- rtl8169 works
2025-12-28 12:38:02 +01:00
Ricardo Pardini
dfcc8cd7b6 rockchip64-6.18: mekotronics-r58-4x4: pcie3x4 (NVMe) 2025-12-28 12:38:02 +01:00
Ricardo Pardini
2a54f483e9 rockchip64-6.18: mekotronics-r58-4x4: simple u2phy0(_otg) and usb_host0_xhci for UMS 2025-12-28 12:38:02 +01:00
Ricardo Pardini
3c073a94e0 rockchip64-6.18: mekotronics-r58-4x4: big voltage for big cores 2025-12-28 12:38:02 +01:00
Ricardo Pardini
166c1a3d08 rockchip64-6.18: mekotronics-r58-4x4: eMMC & SD fixes +regulator 2025-12-28 12:38:02 +01:00
Ricardo Pardini
312bfd4905 rockchip64-6.18: mekotronics-r58-4x4: adapt rk806 according to vendor
- a translation of the vendor "&rk806single" and its "pmic-power-off" with rk806_dvs1_slp
2025-12-28 12:38:02 +01:00
Ricardo Pardini
9b03d788d7 rockchip64-6.18: mekotronics-r58-4x4: basic DT with SD/eMMC/UART/rk806
- very basic, started from a mainlined DT, stripped almost everything
- only SD/eMMC/debug UART and basic regulators
2025-12-28 12:38:02 +01:00
Ricardo Pardini
1a4d46d3d7 mekotronics(all): bump generic mainline u-boot to v2026.01-rc5
- also enable CONFIG_ROCKCHIP_MASKROM_IMAGE for quick development
- fix conflicting vendor hook
  - only hack the vendor u-boot down to next-dev-v2024.03 for vendor/legacy
2025-12-28 12:38:02 +01:00
Ricardo Pardini
d40033d2a0 mekotronics: u-boot: generic mainline u-boot 2025.01
- this is hidden under `MEKO_USE_MAINLINE_UBOOT=yes`
- also disable PLYMOUTH then
2025-12-28 12:38:02 +01:00
Mecid
b62d0ae4f1
Genio: Change INSTALL_ARMBIAN_FIRMWARE to 'yes' (#9134) 2025-12-28 12:05:11 +01:00
Nikita Maslo
1e7ef9d064
fix(rootfs): unset GIT_FIXED_WORKDIR after debootstrap/mmdebstrap clone (#9132)
* fix(rootfs): pass GIT_FIXED_WORKDIR inline to fetch_from_repo

Instead of using 'export GIT_FIXED_WORKDIR' and then 'unset' after,
pass the variable inline to the fetch_from_repo call. This ensures
the variable only exists in the context of that specific command
and doesn't leak into subsequent calls.

This follows the same pattern used in uboot-git.sh and kernel-git.sh.
---------

Co-authored-by: Viacheslav Bocharov <adeep@lexina.in>
2025-12-27 08:15:36 +03:00
Igor Pecovnik
810ff67c90 chore: cleanup mirror_to_codeberg.yml workflow
- Remove redundant daily cron schedule (already runs on push to main)
- Add concurrency control to cancel old runs
- Improve formatting and add clarifying comments
- Add push trigger for main branch
2025-12-26 15:42:35 +01:00
Werner
b397590b28 Create mirror_to_codeberg.yml 2025-12-26 14:36:55 +01:00
Werner
8fb61c91d7
dts: orangepi-4-lts: fix mispelled disable properites (#9123) 2025-12-25 12:44:57 +01:00
Igor Pecovnik
abd6f2d35f docs: improve README and add Armbian Imager promotion
- Restructure README for better scannability and information hierarchy
- Add prominent Armbian Imager recommendation at the top
- Improve Build Host Requirements organization (Hardware/OS/Software)
- Simplify and clarify language throughout
- Better resource link descriptions
- Remove redundant "Download Prebuilt Images" section

The README now better guides users to Armbian Imager while still
providing clear information for those building from source.
2025-12-25 12:03:48 +01:00
Igor Pecovnik
4d60ce08f2 chore: update copyright years to 2026
Update all copyright notices in shell scripts from 2025 to 2026.

## Changes

- **Igor Pecovnik**: 2013-2025 → 2013-2026 (129 files)
- **Ricardo Pardini**: 2023-2025 → 2023-2026, 2020-2025 → 2020-2026 (5 files)

## Additional Improvements

Also updated the backtitle in `lib/functions/configuration/interactive.sh`:
- Changed title from "Armbian building script" to "Armbian Linux build framework"
- Removed docs link for cleaner display
- Uses dynamic year calculation with separate declaration (fixes shellcheck SC2155)
2025-12-25 12:03:34 +01:00
Igor Pecovnik
28f5839d08 chore: standardize workflow names
Make all workflow names consistent and action-oriented:
- Use action verb first (Announce, Auto-label, Build, Check, Clean, Help, Label, Lint, Listen, Rewrite, Scan, Sync, Welcome)
- Keep names concise and descriptive
- Remove unnecessary details from the name

Changes:
- Analyze kernel security (was: Kernel Hardening Analysis)
- Announce merge (was: Announce PR merge to Discord)
- Announce PR (was: Announce PR on Discord for review)
- Auto-label PR (was: Automatic Pull Request Labeling)
- Build PR artifacts (was: Generate Artifacts on PR if...)
- Check PR assets (was: Check new board assets exist...)
- Clean workflow logs (was: Clean Workflow Logs)
- Sync Jira (was: Jira Sync)
- Help forks (was: Forked Helper)
- Label PR on approval (was: PR review labeler)
- Lint scripts (was: Lint on Scripts)
- Listen PR review (was: PR review listener)
- Rewrite kernel configs (was: Rewrite kernel configs - same)
- Scan security (was: Scorecards Security Scan)
- Sync board list (was: Update Board Lists)
- Sync labels (was: Sync Labels from YAML)
- Sync maintainers (was: Sync maintainers status)
- Sync tools (was: Update Tools in Scripts)
- Welcome first-time contributor (was: Welcome first-time issue contributor)
- Welcome first-time PR contributor (was: same - kept as is)
2025-12-25 12:00:52 +01:00
Igor Pecovnik
f56bfc7553
chore: rename workflow files to action-oriented naming
Rename all workflow files to follow a consistent action-oriented naming pattern similar to armbian.github.io:

- adjust-maintainers.yml → sync-maintainers-status.yml
- clean-workflow-logs.yml → cleanup-workflow-logs.yml
- forked-helper.yml → help-forked.yml
- issue-welcome-first-time.yml → welcome-issue-first-time.yml
- labels-from-yml.yml → sync-labels.yml
- merge-announce.yml → announce-merge.yml
- open-jira-ticket.yml → create-jira-ticket.yml
- pr-announce.yml → announce-pr.yml
- pr-auto-labeler.yml → auto-label-pr.yml
- pr-build-artifacts.yml → build-pr-artifacts.yml
- pr-check-pictures.yml → check-pr-pictures.yml
- pr-kernel-security-analysis.yml → analyze-pr-kernel-security.yml
- pr-label-on-approved.yml → label-pr-on-approval.yml
- pr-lint-scripts.yml → lint-pr-scripts.yml
- pr-review-listener.yml → listen-pr-review.yml
- pr-welcome-first-time.yml → welcome-pr-first-time.yml
- rewrite-kernel-configs.yml → rewrite-kernel-config-files.yml
- update-board-list.yml → sync-board-list.yml
- update-tools.yml → sync-tools.yml

This makes the workflow names more descriptive and consistent with the action verb first, followed by the target object.
2025-12-25 11:43:57 +01:00
Igor Pecovnik
60e869c42c Move boards with vendor intel_amd under generic vendor 2025-12-22 22:08:34 +01:00
Viacheslav Bocharov
492b96aeeb fix(apt-utils): add fallback for Ubuntu LTS releases without -updates suffix in JSON
Problem: armbian-base-files artifact for jammy fails to build because
apt_find_upstream_package_version_and_download_url() looks for 'jammy-updates'
in https://github.armbian.com/base-files.json, but only 'jammy' key exists.

Root cause:
- For Ubuntu LTS (focal, jammy), code sets package_download_release to '${RELEASE}-updates'
- JSON file from github.armbian.com only has base release keys (jammy, noble, etc)
- jq query returns null for 'jammy-updates'
- Artifact excluded from build matrix after 10 retries

Solution: Add fallback logic
- First try with '-updates' suffix (jammy-updates)
- If not found and release ends with '-updates', retry with base release (jammy)
- This allows using base release data when -updates is not available

Impact:
- Fixes jammy base-files artifact build
- Allows jammy images to build (they depend on this artifact)
- Maintains preference for -updates when available
- No impact on other releases (Debian, non-LTS Ubuntu)
2025-12-22 21:26:37 +01:00
Igor Pecovnik
8f6e41e84a Adjusting board names - cosmetic issue 2025-12-22 21:26:27 +01:00
dependabot[bot]
25c45dc8ae build(deps): bump actions/github-script from 7 to 8
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 21:23:13 +01:00
dependabot[bot]
7387a01316 build(deps): bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-22 21:23:04 +01:00
Igor Pecovnik
ecbe66fdb5 We don't want to use defaults but override 2025-12-22 21:22:51 +01:00
EvilOlaf
3c9d3e227a make sun55iw3 inherent to sunxi64, remove duplicates 2025-12-22 21:22:51 +01:00
EvilOlaf
6ccc327967 sun55iw3: move to general sunxi patchset 2025-12-22 21:22:51 +01:00
EvilOlaf
430d9ab41b Port patches from PR #8831 2025-12-22 21:22:51 +01:00
EvilOlaf
145fd0b799 fix indentations 2025-12-22 21:22:51 +01:00
EvilOlaf
6520578103 sunxi: backport allwinner a523/t527 patches from 6.19 2025-12-22 21:22:51 +01:00
igorpecovnik
823d977933 Automatic board configs status synchronise 2025-12-22 09:34:31 +01:00
Werner
4b431536e8
adjust function names for the sake of consistency (#9108)
* adjust function names for the sake of consistency

* missed one
2025-12-22 05:22:13 +01:00
Fabian Wolter
3aacc125a6 rockchip64: Fix IEP driver 2025-12-21 13:42:12 +01:00
igorpecovnik
8a6d280518 Automatic board configs status synchronise 2025-12-21 13:38:39 +01:00
Igor Pecovnik
f6b90e515c Fix missing board vendor relations 2025-12-20 23:27:15 +01:00
Igor Pecovnik
7e8a64f4ec Board vendors adjustements for generic targets
Failback to SoC and not use generic as this is reserved for UEFI while none of those are close to that.
2025-12-20 22:02:06 +01:00
igorpecovnik
69e8482426 Automatic board configs status synchronise 2025-12-20 06:21:06 +01:00
Igor Pecovnik
3d66969166 Bump rockchip edge to 6.18.y 2025-12-19 20:53:57 +01:00
Andrei Aldea
f37e972f40 TI SK-AM62-SIP Remove Edge Target
Caused build failures in OS because not in upstream u-boot yet.
2025-12-19 20:52:57 +01:00
brentr
7a84087f74
DevTree overlays to enable RK3308 UARTS (#9072)
* rk3308 dts overlays to enable its built-in uarts
* Add rk3308 uart enabling device tree overlays
2025-12-19 16:30:25 +01:00
Ricardo Pardini
4cfdd3c361 radxa-e24c: enable edge branch by picking from Kwiboo's WiP tree
- works pretty nice (albeit no USB support in kernel, only u-boot)
- this is still `WiP`: once Kwiboo lands his rk3528 patchset,
  most of this will change / be much simpler. Just be patient!
- Important: the Realtek DSA switch chip is not really understood
  by the likes of NetworkManager and systemd-networkd; they'll think
  the board has 4 ethernet interfaces, which is not really true.
  Only one real MAC address (the SoC's GMAC) exists; in front of it
  is a programmable switch; to make it work one needs custom setup
  to bridge the LANx ports and keep WAN separate. Even then, the
  WAN port will have the same MAC as LANx and needs to be really
  used on a separate physical network, otherwise chaos/conflicts.
  For simple usage/testing, I recommend to connect only LAN1 and
  disable the other ports in NetworkManager after the first boot.
- Note: `edge` u-boot can be written to MTD/SPI-FLASH and works.
  But keep in mind  it _cannot_ boot the vendor kernel (it hangs
  during pcie init); might work when booting from SD, if pcie is
  not enumerated by u-boot.
2025-12-19 16:16:17 +01:00
Ricardo Pardini
4be2185a50 rockchip64-6.18: radxa-e24c: map LEDs to RTL DSA switch ports 2025-12-19 16:16:17 +01:00
Ricardo Pardini
cc58129bc6 rockchip64-6.18: add DeviceTree for radxa-e24c (picked from Kwiboo)
- works: PCIe/NVMe, GMAC, Realtek DSA switch, SD, SPI-NOR
- does not work: USB (I didn't manage to pick correctly; lets wait for Kwiboo on this)
- untested: everything else
2025-12-19 16:16:17 +01:00
Ricardo Pardini
a28680603d rockchip64-6.18: rk3528: PCIe & SFC enablement; RTL DSA fixes
- rk3528 PCIe patch from 6.19
- rest is all Kwiboo
- I didn't pick GRF/USB/thermal stuff as I couldn't make it work
2025-12-19 16:16:17 +01:00
Ricardo Pardini
d3683b7230 radxa-e24c: u-boot: edge: disable gmac1 as the dsa switch won't work anyway
- the gmac works, but is connected to switch chip that is not supported by u-boot
- here I disable gmac1 for the u-boot DT
- that allows for easier booting from USB ethernet adapters
2025-12-19 16:16:17 +01:00
Ricardo Pardini
b2086d997f radxa-e24c: u-boot: edge: add USB NET drivers to defconfig
- so we can boot from USB network in u-boot
2025-12-19 16:16:17 +01:00
Ricardo Pardini
4a8a557669 radxa-e24c: u-boot: edge: enable the wondrous CONFIG_ROCKCHIP_MASKROM_IMAGE
- also include `u-boot-rockchip-usb471.bin` and `u-boot-rockchip-usb472.bin`
2025-12-19 16:16:17 +01:00
Ricardo Pardini
ea57d65665 radxa-e24c: u-boot: edge: mainline u-boot, picked from Kwiboo's WIP branch
- I couldn't wait
- Using a few commits _after_ v2026.01-rc4
2025-12-19 16:16:17 +01:00
EvilOlaf
010fd7a898 sunxi: bump current and edge to latest minor, rewrite patches 2025-12-19 16:15:50 +01:00
Werner
95535bb6dc
rpi4b: bump legacy, current and edge to new major versions (#9097) 2025-12-19 15:08:26 +01:00
Ricardo Pardini
d4f7046c88
compress-checksum: introduce COMPRESS_OUTPUTIMAGE=zst (#9101) 2025-12-19 13:00:45 +01:00
Ricardo Pardini
de044ed362
meson64: 6.18: drop cacheref S922X fix patch as it landed on 6.18.2 (#9100) 2025-12-18 20:08:41 +02:00
EvilOlaf
13c79f67fe add overlay folder to Makefile
The autopatcher thingy seems borked as it seems this line should be included automatically (??)
2025-12-18 14:20:54 +01:00
EvilOlaf
79b934e886 remove auto-generated files 2025-12-18 14:19:17 +01:00
EvilOlaf
44403a53be h616: rename misleading patch, adjust header 2025-12-18 14:19:17 +01:00
Igor Pecovnik
6e12c118b2 WSL2: Drop UEFI images designed specially for WSL2 as they are not needed anymore 2025-12-18 14:17:39 +01:00
Jonas Wood
d97928ba17 ti: configs: boards: Clean up ATF args into one var
Signed-off-by: Jonas Wood <jw@ti.com>
2025-12-17 19:08:01 -06:00
Jonas Wood
93175364dd ti: configs: boards: Add SK-AM62-SIP (AM62x SoC) board support
Signed-off-by: Jonas Wood <jw@ti.com>
2025-12-17 19:08:01 -06:00
Jonas Wood
04d3ad59cb ti: configs: boards: Add SK-AM62-LP (AM62x SoC) board support
Signed-off-by: Jonas Wood <jw@ti.com>
2025-12-17 19:08:01 -06:00
github-actions[bot]
7828271e27
tools: Bump BATCAT_VERSION from 0.26.0 to 0.26.1 (#9083)
Co-authored-by: igorpecovnik <6281704+igorpecovnik@users.noreply.github.com>
2025-12-17 18:34:07 +02:00
Jonas Wood
dd44469fc6
ti: configs: family: k3: Update baseline to 11.02.08 (#9091)
Signed-off-by: Jonas Wood <jw@ti.com>
Co-authored-by: Andrei Aldea <7153954+Grippy98@users.noreply.github.com>
2025-12-16 17:05:52 -06:00
Igor Pecovnik
7add411587 Add new required information to board config BOARD_VENDOR="friendlyelec" 2025-12-16 23:48:54 +01:00
Jana Rettig
e53ef4fd5e add NanoPi Zero2 support 2025-12-16 23:48:54 +01:00
Patrick Yavitz
cb892185de Add BOARD_VENDOR var to BananaPi BPI-F3 and MusePi Pro
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
91d18529ec SpacemiT: Fixup formatting in lcd_tc358762xbg_dpi_800x480.dtsi
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
4e7df4389e MusePi Pro: Fixup rgmii0: phy
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
e2acf04eb5 SpacemiT: Fixup cpus node
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
4614131784 SpacemiT: EDGE: Remove # CONFIG_MODULE_SIG is not set
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
9f67e56298 Fixup SpacemiT K1X Fixups patch
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
7467512a73 SpacemiT: Fixup linux-6.18.y overlay support
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
6ed0845292 Update spacemit edge defconfig
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
eb1351b2a1 SpacemiT: 6.6.y: Fixup patching config yaml
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
aee1cbb759 Add MusePi Pro DTS and fixup linux patching
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
e2ba02a797 SpacemiT: Fixup family spacemit.conf
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
f7ed4bb371 Add SpacemiT MusePi Pro board.conf
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
04d854805a SpacemiT: Update family.conf
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
41b0fa731b SpacemiT: Add linux-6.18.y support
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Patrick Yavitz
ca532ed704 SpacemiT: Add UEFI boot support
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-16 14:24:48 -05:00
Igor Pecovnik
87dc516cb5 Fix PR comments for forked submissions 2025-12-16 17:32:28 +01:00
Igor Pecovnik
c34c7cf9c2 GHA: Enforce board and vendor image availability for newly added boards 2025-12-16 14:48:57 +01:00
Werner
3d46ef80e0
sunxi: bump edge to 6.18 (#9049)
* sunxi-6.18: make the mess even worse

* fixing one of megis patches and add sunxi 32bit to the mess

* rewrite against 6.18

* fix media-ov5640-Don-t-powerup-the-sensor-during-driver-probe.patch

* fix media-sun6i-csi-implement-vidioc_enum_framesizes.patch

* fix misc-modem-power-Power-manager-for-modems.patch

* Fix usb-gadget-Fix-dangling-pointer-in-netdev-private-data.patch, include rewrite

* fix mmc-sunxi-mmc-Remove-runtime-PM.patch, two hunks no longer apply

* re-extract all of megis patches

* remove unneeded branch

* add note to disabled patch

* auto-generated, out of date

* drop megous drm patches in favor of Jernej's work. disable broken patches

* disable patch which breaks compilation for armhf

* disable breaking patch, rewrite everything

* remove patches unrelated to sunxi family

* fix spi dev compatible patch

* fix tsc2007 patch

* drop mainlined patch, adjust x96 mate T95 eth sd card hack

* remove upstreamed patch

* re-enable no longer broken

* another rewrite to align stuff properly

* adjust various comments in series.conf

* recover lost overlays

* uew5622: fix compilation against Linux 6.18

* fix Add-sunxi-addr-driver-Used-to-fix-uwe5622-bluetooth-MAC-address.patch

* adjust patch subject to make sense

* restore fixup creation
restore overlay prefix on opiz2
this needs to be properly sorted at some point

* bump to 6.18.1
sunxi and sunxi64 build just fine

* fix and re-enable drv-mfd-axp20x-add-sysfs-interface.patch

* rewrite patches
2025-12-16 12:35:24 +01:00
Ricardo Pardini
f2dd38e622 extensions/gen-sample-extension-docs: fix to output non-garbage
- bash variable scoping is a b...
2025-12-15 20:59:37 +01:00
Ricardo Pardini
fcd990bc0b extensions/gen-sample-extension-docs: output Markdown to userpatches/extensions
- otherwise it is lost in a temp dir that is cleaned before the end of run
- same place as the `sample-extension.sh`
- keep in mind original limitations of this still apply:
  - only extension methods _actually used_ by the specific run are included
    - thus, it will _never_ be complete
2025-12-15 20:59:37 +01:00
dependabot[bot]
6e86bc241f build(deps): bump peter-evans/create-pull-request from 7 to 8
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7 to 8.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v7...v8)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 20:59:19 +01:00
dependabot[bot]
7383cbc91f build(deps): bump tj-actions/changed-files
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from abdd2f68ea150cee8f236d4a9fb4e0f2491abf1b to e0021407031f5be11a464abee9a0776171c79891.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](abdd2f68ea...e002140703)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-version: e0021407031f5be11a464abee9a0776171c79891
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 20:59:07 +01:00
dependabot[bot]
3b8dd0dea1 build(deps): bump actions/download-artifact from 6 to 7
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 20:58:53 +01:00
dependabot[bot]
cb63041d23 build(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 20:58:43 +01:00
dependabot[bot]
dab0c2e9e9 build(deps): bump dtschema from 2025.8 to 2025.12
Bumps [dtschema](https://github.com/devicetree-org/dt-schema) from 2025.8 to 2025.12.
- [Release notes](https://github.com/devicetree-org/dt-schema/releases)
- [Commits](https://github.com/devicetree-org/dt-schema/compare/v2025.08...v2025.12)

---
updated-dependencies:
- dependency-name: dtschema
  dependency-version: '2025.12'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 20:58:33 +01:00
Igor Pecovnik
d73bfc596d CodeRabbit review noise reduction 2025-12-15 20:56:55 +01:00
Julian Sikorski
235a729262 Update odroidxu4-current to 6.6.119 2025-12-15 10:51:35 +01:00
Julian Sikorski
462d714489 Adjusted the patches to apply on top of the hardkernel tree
6.6-stable commit 4e83377 is not easily mergeable with hardkernel 0cd454a
and it is not clear whether the memleak it fixes occurs with the
hardkernel code at all. As such, drop it entirely.
2025-12-15 10:51:35 +01:00
Julian Sikorski
da8c5ce849 Update odroidxu4-current to 6.6.118 2025-12-15 10:51:35 +01:00
igorpecovnik
2c82b6244a Automatic board configs status synchronise 2025-12-15 10:39:42 +01:00
EvilOlaf
aefdf1c3e7 re-enable extrawifi 2025-12-15 10:37:46 +01:00
Patrick Yavitz
9877a95348 Meson64: linux-6.18.y: Improve 6.18.y support for G12/SM1
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-12-15 10:37:30 +01:00
EvilOlaf
682ee1cb09 sunxi: bump current to latest minor 2025-12-14 21:30:26 +08:00
Igor
4850dbfbf9
Add BOARD_VENDOR to board configs (#9063)
* Add BOARD_VENDOR to board configs

* Add BOARD_VENDOR to all board configuration files

- Added BOARD_VENDOR variable to board configuration files
- Using lowercase vendor slugs (e.g., friendlyelec, radxa, xunlong)
- Set 'generic' for boards without clear vendor match
- TV box files (.tvb) excluded as they have no clear vendor
- Enables better board categorization and vendor-specific handling

* Manual adjustements on top of AI matching

* Drop doubled definition and add retroid vendor
2025-12-14 10:28:37 +01:00
Werner
86f473d7ab
nanopi-r76s: move patch to board specific folder (#9062)
avoid cross-contamination from other boards/families that will use this uboot version in future
2025-12-13 18:32:45 +01:00
Rolf Leggewie
9f08183a9f lib / rootfs-create: make rm command more robust
this fixes the issue raised in armbian/apa#32
2025-12-13 11:57:01 +08:00
simple
413d6d4d59 add SND_SOC_RT5645 tristate 2025-12-11 14:22:14 +01:00
simple
7106434581 Enable CONFIG_SND_SOC_RT5651 2025-12-11 14:22:14 +01:00
Mecid Urganci
ff59a4bc96 Genio: Address PR comments 2025-12-11 14:20:51 +01:00
Mecid Urganci
8f56288384 Genio: Update boot cmd 2025-12-11 14:20:51 +01:00
Mecid Urganci
8687e9d31a Radxa-Nio-12L: Switch Uboot flow from EFI to extlinux 2025-12-11 14:20:51 +01:00
Ricardo Pardini
4e027a40d6 rockchip64_common: rk3528: add ROCKUSB_BLOB 2025-12-11 04:36:51 +08:00
Ricardo Pardini
45753ae6d9 Add Radxa E24C; vendor kernel and vendor u-boot only for now
- vendor stuff boots, mostly works
- edge started, using Kwiboo's tree, but not enabled
  - u-boot mostly works, but needs rework against v2026.01
  - revisit after 6.19
    - rk3528 pcie already landed
  - the RTL8367RB switch vs the GMAC might need more work
2025-12-11 04:36:51 +08:00
Ricardo Pardini
7460168a98 rockchip64-edge (6.18): enable Realtek DSA switches (NET_DSA_REALTEK_RTL8365MB)
- for the Radxa E24C
2025-12-11 04:36:51 +08:00
Igor Pecovnik
c68d4c62d4 Enable direct flashing method in armbian-install menu
https://github.com/armbian/configng/pull/705
2025-12-11 04:36:06 +08:00
Igor Velkov
6142670754 enable "watchdog" extension for Helios64 2025-12-11 04:06:24 +08:00
Igor Velkov
61ee51f211 enable "watchdog" extension for ODroid-N2 2025-12-11 04:06:24 +08:00
Igor Velkov
4cb597be8c enable "watchdog" extension for ODroid-M1 2025-12-11 04:06:24 +08:00
Igor Velkov
5de9913cec Extension adds watchdog package and enable watchdog device (/dev/wachdog)
support in config
2025-12-11 04:06:24 +08:00
Mecid
4cb8369f39
qcs6490: VP9 fix backported from mailing list
* QCS6490: Fix VP9 decode for SC7280 on venus driver
* QCS6490: Make VP9 Patch work with build system
2025-12-11 03:57:10 +08:00
EvilOlaf
83d07710d3 rockchip-current: rewrite kernel patches 2025-12-11 03:47:08 +08:00
EvilOlaf
b62098db3f sunxi-current: bump to latest 6.12.y version 2025-12-11 03:44:59 +08:00
igorpecovnik
fd0a6d7224 Automatic board configs status synchronise 2025-12-10 16:31:14 +01:00
Nikita Maslo
ed39efa76b jethubj200: update JetHub D2 DT file for I2C display and GPIO expander support
Signed-off-by: Nikita Maslo <nikitamalco203@gmail.com>
2025-12-10 10:03:56 +03:00
Andy Yan
e1efe2a6b7 Add support for rk3566-box-demo
This is a rk3566 tv box evaluation demo board.

Specification:
- Rockchip RK3566
- DDR4 4GB
- TF sd scard slot
- eMMC
- AP6398S for WiFi + BT
- Gigabit ethernet
- HDMI out
- USB HOST 2.0 x 2
- USB 3.0 x 1
- USB OTG 2.0  x 1
- 12V DC Power supply

Signed-off-by: Andy Yan <andyshrk@gmail.com>
2025-12-10 00:43:20 +01:00
Lemon
c48393a3e6 dts: rockchip: rk3399-fine3399: adjust pwm-fan control strategy
-cooling-levels = <0 30 60 90 120 160>;
+cooling-levels = <0 50 100 150 200 255>;

-temperature = <50000>;
+temperature = <55000>;
2025-12-10 00:42:37 +01:00
Jianfeng Liu
e34c660423 rockchip64-edge: enable CONFIG_ROCKCHIP_DW_DP 2025-12-10 00:41:25 +01:00
SuperKali
e4ff220fef
nanopct6: Add ALSA sound card configuration (#9045)
Add asound.state configuration for NanoPC T6 and T6 LTS to properly
configure audio devices and mixer settings.

- Set ASOUND_STATE variable in board config
- Add asound.state.nanopct6 blob with preconfigured mixer settings

This ensures audio devices are properly initialized on first boot.
2025-12-09 09:55:42 +01:00
igorpecovnik
8725a9a253 Automatic board configs status synchronise 2025-12-09 00:11:55 +01:00
SuperKali
9e1d62fbec
rtw88: Add kernel 6.18 support and clean up patch logic (#9041)
- Created patch/misc/rtw88/6.18/ directory with upstream driver patches
- Removed obsolete kernel 6.16 reference from patch conditions
- Updated comment to clarify that RF path detection fix is only needed
  for kernel 6.1.x (upstreamed in 6.18+)

This fixes RTL8822CS WiFi initialization failures on kernel 6.18 where
the driver was not being properly patched due to missing version directory.

Fixes SDIO timeout errors during chip initialization.
2025-12-08 23:58:15 +01:00
Jianfeng Liu
3dbd4e8e09 rockchip64-6.18: add patch to fix av1 decoding on rk3588 2025-12-08 21:38:14 +01:00
Mecid
22a5c46fdd Rock-5B-Plus: Fix Mainline u-boot
Tested on Rock-5B-Plus:
- SD-Card (empty SPI)
- NVMe (SPI flashed)
2025-12-08 21:32:36 +01:00
Igor Pecovnik
ffd425799a Drop libproxy1-plugin-gsettings as its gone from Forky / Sid and replaced with libproxy1v5 2025-12-08 06:39:00 +01:00
Rolf Leggewie
f9cf9ae2ca lib / distro-agnostic.sh: drop chmod on /bin/ping
we are way past buster now (if ever this was needed to begin with)
2025-12-07 08:53:57 +01:00
Jesse R Codling
d1fc474d50 Typo fix from @tabrisnet
Co-authored-by: tabrisnet <96966042+tabrisnet@users.noreply.github.com>
2025-12-07 08:49:22 +01:00
Jesse R Codling
9f164a21ce Use docker --version for podman detection 2025-12-07 08:49:22 +01:00
Jesse R Codling
3fb2606d00 Conditionally add volume flags for building with Podman
Use $DOCKER_INFO to check for podman vs dockerd, and conditionally
`exec` and `dev` volume options, which are needed on podman but not
allowed on dockerd.
2025-12-07 08:49:22 +01:00
Jesse R Codling
3aea2de999 Add needed volume mount opts for Docker/Podman
It hasn't been an issue for Docker because their defaults didn't
conflict, but Podman mounts volumes with nodev (and formerly noexec) by
default, which would break the build. Adding `dev` and `exec` to the
volume mount options ensures the needed setting whatever the defaults.
2025-12-07 08:49:22 +01:00
tabris
f53eac4253 framework - enable NTSYNC as a module on most kernels 2025-12-05 19:38:00 +01:00
Igor Pecovnik
43addca1d4 Add compilation of resolve_btfids to the kernel headers postinst script 2025-12-05 19:36:05 +01:00
Igor Pecovnik
43e89b4313 Make pahole as hard dependency on kernel headers 2025-12-05 19:36:05 +01:00
Igor Pecovnik
5e537cdd47 ZFS requires package pahole in order to compile zfs module with success 2025-12-05 19:36:05 +01:00
letwir
fb95e49c3c
Rock-4D: Enable Wi-Fi & Bluetooth (#9029) 2025-12-05 15:54:01 +01:00
Ricardo Pardini
d8781395c9 rockchip64-6.18: Enable the NPU on Turing RK1
- already had the regulator (`vdd_npu_s0`)
2025-12-04 18:56:21 +01:00
Ricardo Pardini
ed4ede9429 config/kernel: (many) change CONFIG_DUMMY=y to =m
- having CONFIG_DUMMY=y causes a fake/dummy interface `dummy0` to be
  _always_ present
  - that in turn can confuse things like cloud-init in nocloud-net mode
- changing it to module, it can still be used (just modprobe)
- I found this using `linux-rk35xx-vendor`, but I reason it applies to
  all kernels; most other kernels already have it `=m`
2025-12-04 18:40:12 +01:00
Andrew Davis
6f4e67b936
ti: configs: Update K3 kernel configs (#9019)
A couple of these configs have gotten out of sync with is making it
difficult for the automation scripting to properly re-write these
configs correctly. Mostly due to the "edge" kernel being updated
to the latest v6.18 kernel, but also due to the RT config not being
updated in some time. Manually update these configs and check for
correctness.

Signed-off-by: Andrew Davis <afd@ti.com>
2025-12-02 10:26:59 -06:00
igorpecovnik
9413beed81 Automatic board configs status synchronise 2025-12-02 14:40:45 +01:00
Werner
d91efd329e fix missing bracket 2025-12-02 07:54:31 +01:00
EvilOlaf
41536fefb6 meson64: fix broken patch and overall rewrite patches 2025-12-02 07:54:31 +01:00
Mecid
676832645d Genio: Collabora Kernel config post rewrite 2025-12-01 22:27:42 +01:00
Mecid
5364b6806b Genio: Update Linux Kernel config
Based on: ba2528bd91/arch/arm64/configs/defconfig
2025-12-01 22:27:42 +01:00
dependabot[bot]
8866134334 build(deps): bump tj-actions/changed-files
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 6da3c88b60ebf09464ada9b06fba5b6f2d34bb94 to abdd2f68ea150cee8f236d4a9fb4e0f2491abf1b.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](6da3c88b60...abdd2f68ea)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-version: abdd2f68ea150cee8f236d4a9fb4e0f2491abf1b
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 22:01:56 +01:00
EvilOlaf
3b1f59dbf3 bump VERSION 2025-12-01 22:01:46 +01:00
EvilOlaf
dc5dcaf5b6 edge: bump to stable and rewrite patches 2025-12-01 22:01:35 +01:00
5232 changed files with 542070 additions and 722216 deletions

View File

@ -5,3 +5,13 @@ reviews:
labels: ["Needs review"]
ignore_usernames: ["dependabot[bot]", "renovate[bot]"]
ignore_title_keywords: ["wip", "draft"]
review_level: "high" # BIG one
max_comments: 10 # hard cap
inline_comments: false # summary-only reviews
request_changes: false # no aggressive blocking
focus:
- "bugs"
- "security"
- "performance"

View File

@ -17,7 +17,7 @@ trim_trailing_whitespace = false
[*.md]
indent_style = space
indent_size = 4
insert_final_newline = false
trim_trailing_whitespace = false
[*.json]
indent_style = space
@ -36,7 +36,6 @@ function_next_line = false
[*.{yaml,yml}]
indent_style = space
indent_size = 2
insert_final_newline = false
[*.py]
indent_size = 4

110
.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
@ -93,8 +98,10 @@ config/boards/mba8mpxl.conf @schmiedelm
config/boards/mekotronics-r58-4x4.conf @150balbes
config/boards/mekotronics-r58hd.conf @igorpecovnik
config/boards/mixtile-blade3.csc @rpardini
config/boards/mixtile-core3588e.csc @rpardini
config/boards/mksklipad50.conf @torte71
config/boards/mkspi.csc @redrathnure
config/boards/musepipro.conf @pyavitz
config/boards/nanopct6-lts.conf @SuperKali @Tonymac32
config/boards/nanopct6.conf @SuperKali @Tonymac32
config/boards/nanopi-m5.conf @SuperKali
@ -107,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
@ -116,21 +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 @biot
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
@ -143,19 +155,24 @@ config/boards/pocketbeagle2.conf @Grippy98
config/boards/pocketchip-sd.csc @TheSnowfield
config/boards/qemu-uboot-arm64.csc @rpardini
config/boards/qemu-uboot-x86.csc @rpardini
config/boards/radxa-cm4-io.conf @JohnTheCoolingFan
config/boards/radxa-cm5-io.conf @JohnTheCoolingFan @amazingfate
config/boards/radxa-dragon-q6a.conf @HeyMeco
config/boards/radxa-e20c.csc @mattx433
config/boards/radxa-e24c.wip @rpardini
config/boards/radxa-e25.conf @krachlatte
config/boards/radxa-e52c.conf @amazingfate @schwar3kat
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
config/boards/rk3318-box.tvb @paolosabatino
config/boards/rk3328-heltec.csc @sicXnull
config/boards/rk3566-box-demo.csc @andyshrk
config/boards/rock-2a.conf @CodeChenL
config/boards/rock-2f.conf @CodeChenL
config/boards/rock-3a.conf @ZazaBR @amazingfate @catalinii @vamzii
@ -170,7 +187,9 @@ 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
config/boards/sk-am62p.conf @jonaswood01
config/boards/sk-am64b.conf @jonaswood01
@ -187,12 +206,12 @@ config/boards/tmds62levm.conf @jonaswood01
config/boards/tritium-h3.conf @Tonymac32
config/boards/tritium-h5.conf @Tonymac32
config/boards/uefi-arm64.conf @rpardini
config/boards/uefi-loong64.conf @amazingfate
config/boards/uefi-x86.conf @rpardini
config/boards/visionfive2.csc @libiunc
config/boards/wsl2-arm64.csc @rpardini
config/boards/wsl2-x86.csc @rpardini
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
@ -208,19 +227,19 @@ config/kernel/linux-k3-beagle-vendor-*.config @Grippy98
config/kernel/linux-k3-vendor-*.config @Grippy98 @glneo @jonaswood01
config/kernel/linux-meson-*.config @hzyitc @juanlufont
config/kernel/linux-meson-s4t7-*.config @adeepn @leggewie @pyavitz @rpardini
config/kernel/linux-meson64-*.config @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @biot @engineer-80 @igorpecovnik @jeanrhum @jomadeto @pyavitz @retro98boy @rpardini @teknoid
config/kernel/linux-meson64-*.config @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @engineer-80 @igorpecovnik @jeanrhum @jomadeto @pyavitz @retro98boy @rpardini @teknoid
config/kernel/linux-mvebu-*.config @Heisath @leggewie
config/kernel/linux-mvebu64-*.config @igorpecovnik
config/kernel/linux-odroidxu4-*.config @joekhoobyar
config/kernel/linux-phytium-embedded-*.config @chainsx
config/kernel/linux-qcs6490-*.config @HeyMeco
config/kernel/linux-rk35xx-*.config @150balbes @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @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-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
@ -228,62 +247,58 @@ config/kernel/linux-sunxi64-*.config @AGM1968 @IsMrX @JohnTheCoolingFan @Kreyre
config/kernel/linux-thead-*.config @chainsx
config/kernel/linux-tqma-*.config @schmiedelm
config/kernel/linux-uefi-arm64-*.config @rpardini
config/kernel/linux-uefi-loong64-*.config @amazingfate
config/kernel/linux-uefi-x86-*.config @rpardini
config/kernel/linux-wsl2-arm64-*.config @rpardini
config/kernel/linux-wsl2-x86-*.config @rpardini
config/kernel/linux-xpressreal-t3-*.config @wei633
patch/atf/atf-arm64/ @PeterChrz @rpardini
patch/atf/atf-bcm2711/ @PanderMusubi @teknoid
patch/atf/atf-genio/ @HeyMeco
patch/atf/atf-imx8/ @schmiedelm
patch/atf/atf-k3-beagle/ @Grippy98
patch/atf/atf-k3/ @Grippy98 @glneo @jonaswood01
patch/atf/atf-mvebu64/ @igorpecovnik
patch/atf/atf-phytium-embedded/ @chainsx
patch/atf/atf-qcs6490/ @HeyMeco
patch/atf/atf-rockchip64/ @ColorfulRhino @SuperKali @Tonymac32 @ahoneybun @amazingfate @andyshrk @joekhoobyar @linhz0hz @paolosabatino @prahal
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/atf/atf-wsl2-arm64/ @rpardini
patch/kernel/archive/bcm2711-*/ @PanderMusubi @teknoid
patch/kernel/archive/genio-*/ @HeyMeco
patch/kernel/archive/imx8m-*/ @schmiedelm
patch/kernel/archive/k3-*/ @Grippy98 @glneo @jonaswood01
patch/kernel/archive/k3-beagle-*/ @Grippy98
patch/kernel/archive/meson-*/ @hzyitc @juanlufont
patch/kernel/archive/meson-s4t7-*/ @adeepn @leggewie @pyavitz @rpardini
patch/kernel/archive/meson64-*/ @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @biot @engineer-80 @igorpecovnik @jeanrhum @jomadeto @pyavitz @retro98boy @rpardini @teknoid
patch/kernel/archive/meson64-*/ @NicoD-SBC @SteeManMI @Tonymac32 @adeepn @engineer-80 @igorpecovnik @jeanrhum @jomadeto @pyavitz @retro98boy @rpardini @teknoid
patch/kernel/archive/mvebu-*/ @Heisath @leggewie
patch/kernel/archive/mvebu64-*/ @igorpecovnik
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
patch/kernel/archive/uefi-x86-*/ @rpardini
patch/kernel/archive/wsl2-arm64-*/ @rpardini
patch/kernel/archive/wsl2-x86-*/ @rpardini
patch/kernel/genio-1200-*/ @HeyMeco
patch/kernel/phytium-embedded-*/ @chainsx
patch/kernel/rk35xx-vendor-*/ @150balbes @CodeChenL @ColorfulRhino @HeyMeco @JackHuang021 @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 @vidplace7
patch/kernel/rk35xx-vendor-*/ @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 @vidplace7
patch/kernel/rv1106-vendor-*/ @vidplace7
patch/kernel/starfive2-*/ @libiunc
patch/kernel/sun55iw3-syterkit-*/ @chainsx
patch/kernel/thead-*/ @chainsx
patch/kernel/wsl2-arm64-*/ @rpardini
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/ @150balbes @CodeChenL @HeyMeco @JackHuang021 @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
patch/u-boot/u-boot-meson-s4t7/ @adeepn @leggewie @pyavitz @rpardini
@ -291,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 @prahal @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
@ -299,26 +314,26 @@ patch/u-boot/u-boot-tqma/ @schmiedelm
patch/u-boot/u-boot-xpressreal/ @wei633
patch/u-boot/v2022.01/ @teknoid
patch/u-boot/v2022.07/ @Tonymac32 @igorpecovnik
patch/u-boot/v2022.10/ @NicoD-SBC
patch/u-boot/v2023.07.02/ @engineer-80
patch/u-boot/v2023.10/ @adeepn
patch/u-boot/v2024.01/ @Tonymac32 @igorpecovnik
patch/u-boot/v2024.04/ @Tonymac32 @utlark
patch/u-boot/v2024.07-coolpi-cm5/ @andyshrk
patch/u-boot/v2024.07/ @adeepn @igorpecovnik
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/ @jeanrhum @joekhoobyar @pyavitz @torte71
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 @andyshrk @mlegenovic @retro98boy @rpardini
patch/u-boot/v2025.07/ @pyavitz
patch/u-boot/v2025.10/ @HeyMeco @SuperKali @ZazaBR @alexl83 @amazingfate @catalinii @efectn @fridtjof @igorpecovnik @paolosabatino @pyavitz @rpardini @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/ @ColorfulRhino @SuperKali @Tonymac32 @amazingfate @biot @linhz0hz @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
@ -331,7 +346,7 @@ sources/families/meson-g12b.conf @NicoD-SBC @Tonymac32 @jeanrhum @pyavitz @retr
sources/families/meson-gxbb.conf @igorpecovnik @teknoid
sources/families/meson-gxl.conf @SteeManMI @Tonymac32 @igorpecovnik @jomadeto @retro98boy
sources/families/meson-s4t7.conf @adeepn @leggewie @pyavitz @rpardini
sources/families/meson-sm1.conf @Tonymac32 @biot @igorpecovnik @rpardini
sources/families/meson-sm1.conf @Tonymac32 @igorpecovnik @rpardini
sources/families/meson8b.conf @hzyitc @juanlufont
sources/families/mvebu.conf @Heisath @leggewie
sources/families/mvebu64.conf @igorpecovnik
@ -339,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 @SuperKali @ZazaBR @amazingfate @andyshrk @catalinii @efectn @hoochiwetech @hqnicolas @krachlatte @mattx433 @pyavitz @sputnik2019 @tdleiyao @vamzii
sources/families/rockchip-rk3588.conf @150balbes @ColorfulRhino @HeyMeco @JackHuang021 @SeeleVolleri @SuperKali @Tonymac32 @alexl83 @amazingfate @andyshrk @chainsx @efectn @fridtjof @ginkage @igorpecovnik @kamilsaigol @lanefu @linhz0hz @mahdichi @prahal @rpardini @schwar3kat
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
@ -359,4 +374,5 @@ sources/families/sun7i.conf @DylanHP @janprunk
sources/families/sun8i.conf @1ubuntuuser @AaronNGray @Janmcha @StephenGraf @Tonymac32 @igorpecovnik @lbmendes @leggewie @mhawkins-consultant @sgjava @spendist
sources/families/thead.conf @chainsx
sources/families/uefi-arm64.conf @PeterChrz @rpardini
sources/families/uefi-loong64.conf @amazingfate
sources/families/uefi-x86.conf @rpardini

View File

@ -1,121 +0,0 @@
name: "Sync maintainers status"
# Script connects to the contacts database once per hour and updates BOARD_MAINTAINER property in the board config files.
# If there are any changes, it opens a Pull Request
#
# spdx-id: GPL-2.0-or-later
# copyright-owner: @igorpecovnik
on:
schedule:
- cron: "0 * * * *"
workflow_dispatch:
jobs:
Build:
name: "Maintainers sync"
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'armbian' }}
steps:
- name: "Checkout build repo"
uses: actions/checkout@v6
with:
repository: armbian/build
ref: main
fetch-depth: 0
clean: false
- name: "Install SSH key for storage"
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.KEY_UPLOAD }}
known_hosts: ${{ secrets.KNOWN_HOSTS_ARMBIAN_UPLOAD }}
if_key_exists: replace
- name: "Download JSON file"
run: |
# download json that is prepared in https://github.com/armbian/armbian.github.io
curl -o /tmp/armbian_maintainers.json https://github.armbian.com/maintainers.json
- name: "Update maintainers"
run: |
# reset all maintainers so we generate from scratch
sed -i "s/BOARD_MAINTAINER.*/BOARD_MAINTAINER=\"\"/" config/boards/*.{conf,wip,eos,tvb}
# extract values fron JSON
declare -A MAINTAINERS
{
# By default, bash run the pipe command in subshells
# which make variable can't be assigned to.
# And yes, lastpipe can solve it
# But this is better.
while read -r i; do
NAME="$(echo "$i" | jq --raw-output '.First_Name')"
BOARD="$(echo "$i" | jq --raw-output '.Maintaining')"
MAINTAINER_GITHUB="$(echo "$i" | jq --raw-output '.Github' | cut -d"/" -f4)"
if [[ "$BOARD" != null && "$MAINTAINER_GITHUB" != null ]]; then
echo "- [$NAME](https://github.com/${MAINTAINER_GITHUB})"
while read -r i; do
echo -e " - $i"
MAINTAINERS["$i"]+="$MAINTAINER_GITHUB "
done < <( echo "$BOARD" | sed "s/,/\n/g" | sort -u )
fi
done < <(jq -c '.[]' /tmp/armbian_maintainers.json)
for cfg in config/boards/*.{conf,wip,csc,eos,tvb}; do
board_name="$(echo "${cfg##*/}" | sed -E 's/\..*//')"
declare -a maintainers
readarray -t maintainers < <(echo "${MAINTAINERS[${board_name}]}" | xargs -n1 | sort -u)
sed -i "s/BOARD_MAINTAINER=.*/BOARD_MAINTAINER=\"${maintainers[*]}\"/" "${cfg}"
done
} >> "$GITHUB_STEP_SUMMARY"
- name: "Mark csc for no maintainer"
run: |
grep BOARD_MAINTAINER=\"\" config/boards/*.{wip,conf} | cut -d":" -f1 |
while read -r line; do
if [[ "${line}" != "${line/.conf/.csc}" ]]; then
mv -v "$line" "${line/.conf/.csc}"
fi
if [[ "${line}" != "${line/.wip/.csc}" ]]; then
mv -v "$line" "${line/.wip/.csc}"
fi
done
- name: "Re-generate CODEOWNERS"
run: |
./.github/generate_CODEOWNERS.sh
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: '`Automatic` board configs status synchronise'
signoff: false
branch: update-maintainers
delete-branch: true
title: '`Automatic` board configs status synchronise'
body: |
Update maintainers and board status
- synced status from the database
- rename to .`csc` where we don't have anyone
If you want to become a board maintainer, [adjust data here](https://www.armbian.com/update-data/).
Ref:
- [Board Maintainers Procedures and Guidelines](https://docs.armbian.com/Board_Maintainers_Procedures_and_Guidelines/)
- [Contribute](https://docs.armbian.com/Process_Contribute/)
labels: |
Work in progress
#assignees: igorpecovnik
#reviewers: Must be org collaborator
draft: false

View File

@ -1,27 +0,0 @@
name: Clean Workflow Logs
on:
schedule:
- cron: "0 0 * * 1" # Runs "At 00:00 on Monday." (see https://crontab.guru)
workflow_dispatch:
inputs:
runs_older_than:
description: "The amount of days old to delete"
default: "21"
required: false
env:
SCHEDULED_RUNS_OLDER_THAN: "21"
SCHEDULED_RUNS_TO_KEEP: "0"
jobs:
clean-logs:
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- uses: igorjs/gh-actions-clean-workflow@v7
with:
runs_older_than: ${{ github.event.inputs.runs_older_than || env.SCHEDULED_RUNS_OLDER_THAN }}
runs_to_keep: ${{ github.event.inputs.runs_to_keep || env.SCHEDULED_RUNS_TO_KEEP }}

22
.github/workflows/data-jira-ticket.yml vendored Normal file
View File

@ -0,0 +1,22 @@
name: "Data: Create Jira ticket"
run-name: 'Sync Jira - Issue #${{ github.event.issue.number }} ("${{ github.event.issue.title }}")'
on:
issues:
types: [opened]
jobs:
sync:
name: Sync Items
runs-on: ubuntu-latest
steps:
- name: Sync
uses: igorpecovnik/github-action-issue-to-jira@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
jiraHost: armbian.atlassian.net
jiraUsername: ${{ secrets.JIRA_USER }}
jiraPassword: ${{ secrets.JIRA_PASSWORD }}
project: AR
assignee: default_assignee

View File

@ -0,0 +1,24 @@
name: "Data: Sync board list"
run-name: Update board JSON at armbian/armbian.github.io
on:
push:
paths:
- "config/boards/*.*"
branches: [main]
permissions:
contents: read
jobs:
update-board-list-dispatch:
name: Send dispatch
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ secrets.ACCESS_TOKEN }}
repository: armbian/armbian.github.io
event-type: "Data: Generate build engine inventory"

39
.github/workflows/data-sync-labels.yml vendored Normal file
View File

@ -0,0 +1,39 @@
name: "Data: Sync labels"
run-name: Sync Labels from YML on ${{ github.event_name }}
on:
workflow_dispatch:
push:
branches:
- "main"
paths:
- ".github/labels.yml"
pull_request:
paths:
- ".github/labels.yml"
permissions:
contents: read
jobs:
labeler:
permissions:
contents: read # for actions/labeler to determine modified files
pull-requests: write # for actions/labeler to add labels to PRs
issues: write # for actions/labeler to add labels to issues
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Run Labeler
uses: crazy-max/ghaction-github-labeler@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
yaml-file: .github/labels.yml
dry-run: ${{ github.event_name == 'pull_request' }}
exclude: |
Maintenance*

View File

@ -0,0 +1,121 @@
name: "Data: Sync maintainers"
# Script connects to the contacts database once per hour and updates BOARD_MAINTAINER property in the board config files.
# If there are any changes, it opens a Pull Request
#
# spdx-id: GPL-2.0-or-later
# copyright-owner: @igorpecovnik
on:
schedule:
- cron: "0 * * * *"
workflow_dispatch:
jobs:
Build:
name: "Maintainers sync"
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'armbian' }}
steps:
- name: "Checkout build repo"
uses: actions/checkout@v6
with:
repository: armbian/build
ref: main
fetch-depth: 0
clean: false
- name: "Install SSH key for storage"
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.KEY_UPLOAD }}
known_hosts: ${{ secrets.KNOWN_HOSTS_ARMBIAN_UPLOAD }}
if_key_exists: replace
- name: "Download JSON file"
run: |
# download json that is prepared in https://github.com/armbian/armbian.github.io
curl -o /tmp/armbian_maintainers.json https://github.armbian.com/maintainers.json
- name: "Update maintainers"
run: |
# reset all maintainers so we generate from scratch
sed -i "s/BOARD_MAINTAINER.*/BOARD_MAINTAINER=\"\"/" config/boards/*.{conf,wip,eos,tvb}
# extract values fron JSON
declare -A MAINTAINERS
{
# By default, bash run the pipe command in subshells
# which make variable can't be assigned to.
# And yes, lastpipe can solve it
# But this is better.
while read -r i; do
NAME="$(echo "$i" | jq --raw-output '.First_Name')"
BOARD="$(echo "$i" | jq --raw-output '.Maintaining')"
MAINTAINER_GITHUB="$(echo "$i" | jq --raw-output '.Github' | cut -d"/" -f4)"
if [[ "$BOARD" != null && "$MAINTAINER_GITHUB" != null ]]; then
echo "- [$NAME](https://github.com/${MAINTAINER_GITHUB})"
while read -r i; do
echo -e " - $i"
MAINTAINERS["$i"]+="$MAINTAINER_GITHUB "
done < <( echo "$BOARD" | sed "s/,/\n/g" | sort -u )
fi
done < <(jq -c '.[]' /tmp/armbian_maintainers.json)
for cfg in config/boards/*.{conf,wip,csc,eos,tvb}; do
board_name="$(echo "${cfg##*/}" | sed -E 's/\..*//')"
declare -a maintainers
readarray -t maintainers < <(echo "${MAINTAINERS[${board_name}]}" | xargs -n1 | sort -u)
sed -i "s/BOARD_MAINTAINER=.*/BOARD_MAINTAINER=\"${maintainers[*]}\"/" "${cfg}"
done
} >> "$GITHUB_STEP_SUMMARY"
- name: "Mark csc for no maintainer"
run: |
grep BOARD_MAINTAINER=\"\" config/boards/*.{wip,conf} | cut -d":" -f1 |
while read -r line; do
if [[ "${line}" != "${line/.conf/.csc}" ]]; then
mv -v "$line" "${line/.conf/.csc}"
fi
if [[ "${line}" != "${line/.wip/.csc}" ]]; then
mv -v "$line" "${line/.wip/.csc}"
fi
done
- name: "Re-generate CODEOWNERS"
run: |
./.github/generate_CODEOWNERS.sh
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: '`Automatic` board configs status synchronise'
signoff: false
branch: update-maintainers
delete-branch: true
title: '`Automatic` board configs status synchronise'
body: |
Update maintainers and board status
- synced status from the database
- rename to .`csc` where we don't have anyone
If you want to become a board maintainer, [adjust data here](https://www.armbian.com/update-data/).
Ref:
- [Board Maintainers Procedures and Guidelines](https://docs.armbian.com/Board_Maintainers_Procedures_and_Guidelines/)
- [Contribute](https://docs.armbian.com/Process_Contribute/)
labels: |
Work in progress
#assignees: igorpecovnik
#reviewers: Must be org collaborator
draft: false

104
.github/workflows/data-sync-tools.yml vendored Normal file
View File

@ -0,0 +1,104 @@
name: "Data: Sync tools"
run-name: Update Tools in Scripts by @${{ github.actor }}
#
# Some of our scripts download tools from a repo. These can't be bumped by dependabot, so this workflow is a self-created dependabot to bump versions of those tools to stay up-to-date.
# This workflow only creates a PR if the version was actually updated.
# To add a new tool, it just needs to be added to the matrix below by filling out all the variables.
#
permissions:
contents: write
pull-requests: write
on:
workflow_dispatch:
schedule:
- cron: "42 3 16 * *" # Run monthly on the 16th day of the month at 03:42 AM (random value as to not overload GitHub)
jobs:
update-tool-version:
name: Update ${{ matrix.tool.REPO_NAME }} version
runs-on: ubuntu-latest
# Add new tools here, no need to add anything anywhere else.
# Only works for tools hosted on GitHub for now.
strategy:
matrix:
tool:
# Shellcheck
- USER_NAME: "koalaman" # GitHub user name
REPO_NAME: "shellcheck" # GitHub repo name
PROJECT_NAME: "koalaman/shellcheck" # This is always USER_NAME/REPO_NAME (like in the GitHub URL)
VAR_FILE: "lib/tools/shellcheck.sh" # Where the version variable of the tool is saved
VERSION_VAR: "SHELLCHECK_VERSION" # Version variable how it appears in the script
# Shellcheck #2
- USER_NAME: "koalaman"
REPO_NAME: "shellcheck"
PROJECT_NAME: "koalaman/shellcheck"
VAR_FILE: "lib/functions/general/shellcheck.sh"
VERSION_VAR: "SHELLCHECK_VERSION"
# Shellfmt
- USER_NAME: "mvdan"
REPO_NAME: "sh"
PROJECT_NAME: "mvdan/sh"
VAR_FILE: "lib/tools/shellfmt.sh"
VERSION_VAR: "SHELLFMT_VERSION"
# ORAS
- USER_NAME: "oras-project"
REPO_NAME: "oras"
PROJECT_NAME: "oras-project/oras"
VAR_FILE: "lib/functions/general/oci-oras.sh"
VERSION_VAR: "ORAS_VERSION"
# Bat
- USER_NAME: "sharkdp"
REPO_NAME: "bat"
PROJECT_NAME: "sharkdp/bat"
VAR_FILE: "lib/functions/general/bat-cat.sh"
VERSION_VAR: "BATCAT_VERSION"
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Get current ${{ matrix.tool.PROJECT_NAME }} version
id: get-version-current
run: |
version_current=$(grep -Po '(?<=${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-)[0-9.]+(?=})' ${{ matrix.tool.VAR_FILE }})
echo "version_current=$version_current" >> $GITHUB_OUTPUT
- name: Get latest ${{ matrix.tool.PROJECT_NAME }} version
id: get-version-latest
# Multi-line string for CHANGE_LOG env, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
# Further exmplanation for the CHANGE_LOG env:
# The first 'sed' expression replaces "#123" with "username/repo#123" to link to the correct repo (would otherwise auto-link to own repo)
# The second 'sed' expression replaces GitHub URLs with "redirect.github.com" to prevent "This was referenced" in the external repo's PRs/issues
run: |
version_latest=$(curl --silent "https://api.github.com/repos/${{ matrix.tool.PROJECT_NAME }}/releases/latest" | jq -r .tag_name)
version_latest=${version_latest#v} # Removing the 'v' prefix since the script uses only plain numbers
echo "version_latest=$version_latest" >> $GITHUB_OUTPUT
- name: Update ${{ matrix.tool.VERSION_VAR}} in script
# @TODO Make sure that the version is actually higher, not lower (the 'latest' tag does not neccessarily mean that the version is higher!)
run: |
version_latest=${{ steps.get-version-latest.outputs.version_latest }}
sed -i "s/${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-[0-9.]*}/${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-$version_latest}/g" ${{ matrix.tool.VAR_FILE }}
- name: Create Pull Request to update ${{ matrix.tool.VERSION_VAR}} for ${{ matrix.tool.PROJECT_NAME }}
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "tools: Bump `${{ matrix.tool.VERSION_VAR}}` from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }}"
branch: update-version-${{ matrix.tool.VAR_FILE }}-${{ matrix.tool.PROJECT_NAME }}-${{ steps.get-version-latest.outputs.version_latest }}
delete-branch: true
title: "Bump ${{ matrix.tool.PROJECT_NAME}} from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }} in `${{ matrix.tool.VAR_FILE}}`"
body: |
Bump [${{ matrix.tool.PROJECT_NAME}}](https://github.com/${{ matrix.tool.PROJECT_NAME }}) from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }} by bumping `${{ matrix.tool.VERSION_VAR}}` in `${{ matrix.tool.VAR_FILE}}`.
Check <a href="https://github.com/${{ matrix.tool.PROJECT_NAME }}/releases/latest">the upstream release notes</a>.
<p><em>Please note that the above link only shows the release notes for the latest release.</em></p>
labels: Dependencies, Bash

View File

@ -1,33 +0,0 @@
name: Forked Helper
run-name: Forked Helper dispatch on ${{ github.event_name }}
on:
push:
release:
deployment:
pull_request:
workflow_dispatch:
jobs:
dispatch-on-forked-repo:
name: 📢 Run repository dispatch on fork
env:
DISPATCH_SECRET: ${{ secrets.ARMBIAN_SELF_DISPATCH_TOKEN }}
if: ${{ github.repository_owner != 'armbian' }} # Run only on forks
runs-on: ubuntu-latest
steps:
- name: Dispatch event on forked repository
if: ${{ env.DISPATCH_SECRET != '' }} # Check that the secret has been set, if not, exit
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ env.DISPATCH_SECRET }}
repository: ${{ github.repository }}
event-type: armbian
client-payload: >
{
"event": "${{ github.event_name }}",
"ref": "${{ github.ref }}",
"base_ref": "${{ github.base_ref }}",
"sha": "${{ github.sha }}",
"event_details": ${{ toJSON(github.event) }}
}

View File

@ -0,0 +1,36 @@
name: "Infrastructure: Dispatch to fork"
run-name: Forked Helper dispatch on ${{ github.event_name }}
on:
push:
release:
deployment:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
dispatch-on-forked-repo:
name: 📢 Run repository dispatch on fork
env:
DISPATCH_SECRET: ${{ secrets.ARMBIAN_SELF_DISPATCH_TOKEN }}
if: ${{ github.repository_owner != 'armbian' }} # Run only on forks
runs-on: ubuntu-latest
steps:
- name: Dispatch event on forked repository
if: ${{ env.DISPATCH_SECRET != '' }} # Check that the secret has been set, if not, exit
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ env.DISPATCH_SECRET }}
repository: ${{ github.repository }}
event-type: armbian
client-payload: >
{
"event": "${{ github.event_name }}",
"ref": "${{ github.ref }}",
"base_ref": "${{ github.base_ref }}",
"sha": "${{ github.sha }}",
"event_details": ${{ toJSON(github.event) }}
}

View File

@ -0,0 +1,34 @@
# Pushes the contents of the repo to the Codeberg mirror
name: "Infrastructure: Mirror to Codeberg"
permissions:
contents: read
on:
push:
branches:
- main
workflow_dispatch:
# Cancel older runs if a new one starts (per workflow + branch)
concurrency:
group: ${{ github.workflow }}-${{ github.repository }}-${{ github.ref }}
cancel-in-progress: true
jobs:
codeberg:
# Extra safety so forks don't try to run it
if: ${{ github.repository == 'armbian/build' }}
runs-on: ubuntu-latest
steps:
- name: Checkout full history
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Mirror to Codeberg
uses: pixta-dev/repository-mirroring-action@v1
with:
target_repo_url: git@codeberg.org:armbian/build.git
ssh_private_key: ${{ secrets.GHA_SSH_KEY }}

View File

@ -1,27 +0,0 @@
name: "Welcome first-time issue contributor"
on:
issues:
types: opened
jobs:
welcome-first-time-contributor:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: plbstl/first-contribution@v4
with:
labels: "Good first issue"
issue-opened-msg: |
### Hey @{fc-author}! 👋
Thanks for opening your first issue with the Armbian project — were glad to have you here! 🧡
Your input doesnt just help us improve the project — it benefits everyone who uses Armbian.
If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at [armbian.com/update-data](https://www.armbian.com/update-data/).
This helps us keep in touch without relying solely on GitHub notifications.
Also, dont forget to ⭐ star the repo to support the work — and welcome aboard! 🚀

View File

@ -1,36 +0,0 @@
name: Sync Labels from YAML
run-name: Sync Labels from YML on ${{ github.event_name }}
on:
workflow_dispatch:
push:
branches:
- "main"
paths:
- ".github/labels.yml"
pull_request:
paths:
- ".github/labels.yml"
jobs:
labeler:
permissions:
contents: read # for actions/labeler to determine modified files
pull-requests: write # for actions/labeler to add labels to PRs
issues: write # for actions/labeler to add labels to issues
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Run Labeler
uses: crazy-max/ghaction-github-labeler@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
yaml-file: .github/labels.yml
dry-run: ${{ github.event_name == 'pull_request' }}
exclude: |
Maintenance*

View File

@ -0,0 +1,25 @@
name: "Maintenance: Announce merge"
on:
push:
branches: [ main ]
permissions:
contents: read
jobs:
announcepush:
# Do not run this workflow in forks
if: ${{ github.repository == 'armbian/build' }}
runs-on: ubuntu-latest
steps:
- name: Get repo
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Send push to Discord
run: |
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data \
"{\"username\": \"Github\", \"avatar_url\": \"${{ secrets.AVATARURL }}\", \"content\": \"\
:white_check_mark: **Merged** into [$GITHUB_REPOSITORY](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY>) by [$GITHUB_ACTOR](<$GITHUB_SERVER_URL/$GITHUB_ACTOR>) - \
[Link](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/commit/$GITHUB_SHA>): *$(git show -s --format=%s)*\"}" ${{ secrets.WEBHOOKURL }}

View File

@ -0,0 +1,28 @@
name: "Maintenance: Announce PR"
run-name: 'Announce PR #${{ github.event.pull_request.number }} on Discord for review'
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:
- name: Get repo
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Discord webhook
run: |
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 }}

View File

@ -0,0 +1,113 @@
name: "Maintenance: Auto-label PR"
# Sets labels automatically based on:
# - PR size (job: label-size)
# - File categories using .github/labeler config (job: label-category)
# - PR creation date for quarterly tracking (job: label-by-date)
# - Removes "Ready to merge" label on PR update (job: label-remove)
run-name: 'Set labels - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
on: pull_request_target
# Grant required permissions globally
permissions:
contents: read # Required for checking changed files
pull-requests: write # Required for labeling PRs
issues: write # Required for adding/removing labels
jobs:
label-remove:
name: "Remove Ready to merge"
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
runs-on: ubuntu-latest
steps:
- name: Checkout the pull request
uses: actions/checkout@v6
- name: Check for label using GH CLI
id: check
run: |
gh pr view ${{ github.event.pull_request.number }} --json labels -q '.labels[].name' | grep -q 'Ready to merge' && echo "has_label=true" >> $GITHUB_OUTPUT || echo "has_label=false" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Remove "Ready to merge" label
if: steps.check.outputs.has_label == 'true'
uses: PauMAVA/add-remove-label-action@v1.0.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add: ""
remove: "Ready to merge"
label-category:
name: "Category Labels"
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Checks out the repository to read files for matching with labeler config
- uses: actions/checkout@v6
# Applies labels based on the .github/labeler.yml config
- uses: actions/labeler@v6
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
label-size:
name: "Size Label"
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Automatically adds size labels based on total changed lines
- name: Label by size
uses: pascalgn/size-label-action@v0.5.5
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
sizes: >
{
"0": "small",
"50": "medium",
"250": "large"
}
label-by-date:
name: "Date label (Quarters)"
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Determines the label (02, 05, 08, 11) based on PR creation month
- name: Determine quarter label
env:
PR_CREATED_AT: ${{ github.event.pull_request.created_at }}
run: |
echo "PR created at: $PR_CREATED_AT"
# Extract the numeric month (e.g., 04 for April)
MONTH=$(date -d "$PR_CREATED_AT" +%m | sed 's/^0*//')
echo "Month extracted: $MONTH"
# Determine quarter-end label based on month
if [ "$MONTH" -le 2 ] || [ "$MONTH" -eq 12 ]; then
LABEL="02"
elif [ "$MONTH" -le 5 ]; then
LABEL="05"
elif [ "$MONTH" -le 8 ]; then
LABEL="08"
else
LABEL="11"
fi
# Set as environment variable for next step
echo "LABEL=${LABEL}" >> $GITHUB_ENV
# Adds the quarter label to the PR
- name: Add quarter label
uses: PauMAVA/add-remove-label-action@v1.0.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add: "${{ env.LABEL }}"

View File

@ -0,0 +1,41 @@
name: "Maintenance: Build artifacts"
run-name: "Generate artifacts - PR #${{ github.event.pull_request.number }} - by @${{ github.actor }}"
#
# If PR is labeled with "Build" and you are a member of "Release manager" team it will start a build train (additional security feature).
# In the run name, ${{ github.actor }} shows who's privileges are used for this run.
#
on: pull_request_target
jobs:
Check:
permissions:
pull-requests: read
name: Check label and authorization
runs-on: Linux
outputs:
member: ${{ steps.checkUserMember.outputs.isTeamMember }}
steps:
- uses: tspascoal/get-user-teams-membership@v3
if: contains(github.event.pull_request.labels.*.name, 'Build')
id: checkUserMember
with:
username: ${{ github.actor }}
organization: armbian
team: "Release manager"
GITHUB_TOKEN: ${{ secrets.ORG_MEMBERS }}
Compile:
needs: Check
name: Generate artifacts
concurrency:
group: pipeline-pr-${{github.event.pull_request.number}}
cancel-in-progress: true
if: ${{ github.repository_owner == 'Armbian' && needs.Check.outputs.member == 'true' }}
uses: armbian/os/.github/workflows/complete-artifact-matrix-all.yml@main
secrets:
ORG_MEMBERS: ${{ secrets.ORG_MEMBERS }}
with:
extraParamsAllBuilds: "UPLOAD_TO_OCI_ONLY=no"
ref: ${{ github.event.pull_request.head.sha }}

View File

@ -0,0 +1,172 @@
name: "Maintenance: Check board assets"
on:
pull_request_target:
paths:
- "config/boards/**"
env:
WEBSITE_REPO: "armbian/armbian.github.io"
WEBSITE_REF: "main"
BOARDS_PATH: "config/boards"
BOARD_IMAGES_DIR: "board-images"
VENDOR_LOGOS_DIR: "board-vendor-logos"
permissions:
contents: read
jobs:
Check:
name: "Verify assets for newly added boards"
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: write
issues: write
steps:
- name: "Checkout build repo (PR head)"
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: "Checkout armbian.github.io (images repo)"
uses: actions/checkout@v6
with:
repository: ${{ env.WEBSITE_REPO }}
ref: ${{ env.WEBSITE_REF }}
path: website
fetch-depth: 1
- name: "Find newly added board configs in PR"
id: added
shell: bash
run: |
set -euo pipefail
BASE_SHA="${{ github.event.pull_request.base.sha }}"
HEAD_SHA="${{ github.event.pull_request.head.sha }}"
git diff --name-status "${BASE_SHA}" "${HEAD_SHA}" -- "${BOARDS_PATH}" \
| awk '$1=="A"{print $2}' \
| grep -E '\.(conf|csc|wip|tvb)$' \
> added-files.txt || true
echo "New board config files:"
cat added-files.txt || true
if [[ ! -s added-files.txt ]]; then
echo "No new board configs detected."
echo "none=true" >> "$GITHUB_OUTPUT"
else
echo "none=false" >> "$GITHUB_OUTPUT"
fi
- name: "Validate board image + vendor logo exist on website repo"
id: validate
if: ${{ steps.added.outputs.none != 'true' }}
shell: bash
run: |
set -euo pipefail
missing_any=0
comment_file="$(mktemp)"
{
echo "This PR adds new board configuration(s). Required assets must already exist in [github/${WEBSITE_REPO}](https://github.com/${WEBSITE_REPO})."
echo "They are required by [Armbian Imager](https://github.com/armbian/imager) to ensure all boards are displayed with proper images."
echo ""
echo "- Board images: \`${BOARD_IMAGES_DIR}/<board>.png\` (1920x1080 px transparent)"
echo "- Vendor logos: \`${VENDOR_LOGOS_DIR}/<vendor>-logo.png\` (512x512 px transparent)"
echo ""
echo "### Missing items"
echo ""
} > "$comment_file"
while IFS= read -r cfg; do
[[ -z "${cfg}" ]] && continue
file="$(basename "$cfg")"
board="${file%.*}"
vendor="$(
grep -E '^[[:space:]]*(export[[:space:]]+|declare[[:space:]]+-g[[:space:]]+)?BOARD_VENDOR[[:space:]]*=' -m1 -- "$cfg" 2>/dev/null \
| sed -E 's/^[[:space:]]*(export[[:space:]]+|declare[[:space:]]+-g[[:space:]]+)?BOARD_VENDOR[[:space:]]*=[[:space:]]*//; s/^"//; s/"$//' \
| tr '[:upper:]' '[:lower:]' \
| tr '_' '-' \
| awk 'NF{print; exit}' \
|| true
)"
board_img_match="$(find "website/${BOARD_IMAGES_DIR}" -maxdepth 1 -type f -iname "${board}.png" | head -n1 || true)"
if [[ -z "${board_img_match}" ]]; then
{
echo "- ❌ **Board image missing** for \`${board}\`"
echo " - Expected: \`${BOARD_IMAGES_DIR}/${board}.png\`"
echo " - Fix: add the file to **${WEBSITE_REPO}** (folder \`${BOARD_IMAGES_DIR}/\`)"
echo ""
} >> "$comment_file"
missing_any=1
fi
if [[ -z "${vendor}" ]]; then
{
echo "- ❌ **BOARD_VENDOR not found** in \`${cfg}\`"
echo " - Fix: add e.g. \`BOARD_VENDOR=\"radxa\"\` (lowercase recommended)"
echo ""
} >> "$comment_file"
missing_any=1
continue
fi
found_logo="$(find "website/${VENDOR_LOGOS_DIR}" -maxdepth 1 -type f \
\( -iname "${vendor}-logo.png" -o -iname "${vendor}-logo.jpg" -o -iname "${vendor}-logo.jpeg" -o -iname "${vendor}-logo.svg" \) \
| head -n1 || true)"
if [[ -z "${found_logo}" ]]; then
{
echo "- ❌ **Vendor logo missing** for vendor \`${vendor}\` (used by board \`${board}\`)"
echo " - Expected: \`${VENDOR_LOGOS_DIR}/${vendor}-logo.png\`"
echo " - Fix: add the file to **${WEBSITE_REPO}** (folder \`${VENDOR_LOGOS_DIR}/\`)"
echo " - Naming rules: lowercase, dashes (e.g. \`kobol-logo.png\`, not \`Kobol_logo.png\`)"
echo ""
} >> "$comment_file"
missing_any=1
fi
done < added-files.txt
if [[ "${missing_any}" -ne 0 ]]; then
echo "missing=true" >> "$GITHUB_OUTPUT"
echo 'comment<<EOF' >> "$GITHUB_OUTPUT"
cat "$comment_file" >> "$GITHUB_OUTPUT"
echo 'EOF' >> "$GITHUB_OUTPUT"
echo "::warning ::Missing required assets (see PR comment)."
else
echo "missing=false" >> "$GITHUB_OUTPUT"
fi
- name: "Comment on PR with missing asset instructions"
if: always() && github.event_name == 'pull_request_target' && steps.validate.outputs.missing == 'true'
uses: actions/github-script@v8
env:
COMMENT_BODY: ${{ steps.validate.outputs.comment }}
WEBSITE_REPO: ${{ env.WEBSITE_REPO }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const body =
`### 🚫 Missing required board assets
${process.env.COMMENT_BODY}
Once the missing files are added (or a PR is opened in **${process.env.WEBSITE_REPO}**), re-run this check.
`;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body
});

View File

@ -0,0 +1,54 @@
name: "Maintenance: Analyze kernel security"
run-name: 'Check kernel security options - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
#
# Check the Linux kernel options against security hardening
#
# Attention! Changing security parameters may also affect system performance and functionality of userspace software!
# More info:
# https://github.com/a13xp0p0v/kernel-hardening-checker
on:
workflow_dispatch:
pull_request:
types: [ready_for_review, opened, reopened, synchronize]
permissions:
contents: read
concurrency:
group: pipeline-security-${{github.event.pull_request.number}}
cancel-in-progress: true
jobs:
Analysis:
name: Check kernel security options
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'Armbian' }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v46.0.3
- name: Checkout repository
uses: actions/checkout@v6
with:
repository: a13xp0p0v/kconfig-hardened-check
path: kconfig-hardened-check
- name: Check kernel config for security issues
# Run kernel-hardening-checker for each kernel config file excluding RISC-V configs, since they are not supported yet.
# See https://github.com/a13xp0p0v/kernel-hardening-checker/issues/56
# sed explanation: 1) Put spaces in front of every line 2) replace colored output with emojis since GitHub Actions job summaries don't support colored output
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ "${file}" = config/kernel/*.config && ! $(head -n 10 "${file}" | grep -q "riscv") ]]; then
kconfig-hardened-check/bin/kernel-hardening-checker -m show_fail -c $file | sed 's/^/ /; s/\x1b\[32m/✅ /; s/\x1b\[31m/❌ /; s/\x1b\[0m//' >> $GITHUB_STEP_SUMMARY
fi
done

View File

@ -0,0 +1,30 @@
name: "Maintenance: Clean workflow logs"
on:
schedule:
- cron: "0 0 * * 1" # Runs "At 00:00 on Monday." (see https://crontab.guru)
workflow_dispatch:
inputs:
runs_older_than:
description: "The amount of days old to delete"
default: "10"
required: false
env:
SCHEDULED_RUNS_OLDER_THAN: "10"
SCHEDULED_RUNS_TO_KEEP: "0"
permissions:
contents: read
jobs:
clean-logs:
runs-on: ubuntu-latest
permissions:
actions: write
steps:
- uses: igorjs/gh-actions-clean-workflow@v7
with:
runs_older_than: ${{ github.event.inputs.runs_older_than || env.SCHEDULED_RUNS_OLDER_THAN }}
runs_to_keep: ${{ github.event.inputs.runs_to_keep || env.SCHEDULED_RUNS_TO_KEEP }}

View File

@ -0,0 +1,58 @@
name: "Maintenance: Label PR on approval"
on:
workflow_run:
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@v8
with:
name: pr-number-${{ github.event.workflow_run.id }} # same unique name
path: .
run-id: ${{ github.event.workflow_run.id }} # ← CRITICAL: fetch from the upstream run
github-token: ${{ secrets.GITHUB_TOKEN }}
- id: pr
run: echo "number=$(cat pr.txt)" >> $GITHUB_OUTPUT
- name: Label when approved
uses: j-fulbright/label-when-approved-action@v1.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
label: 'Ready to merge'
require_committers_approval: 'true'
remove_label_when_approval_missing: 'true'
comment: '✅ This PR has been reviewed and approved — all set for merge!'
pullRequestNumber: ${{ steps.pr.outputs.number }}
- name: Remove review-related labels
if: ${{ success() }}
uses: actions/github-script@v8
with:
script: |
const { owner, repo } = context.repo;
const issue_number = ${{ steps.pr.outputs.number }};
const labelsToRemove = ["Needs review", "Work in progress", "Backlog", "Can be closed?", "Help needed", "Needs Documentation"];
for (const name of labelsToRemove) {
try {
await github.rest.issues.removeLabel({ owner, repo, issue_number, name });
core.info(`Removed label "${name}"`);
} catch (e) {
core.warning(`Could not remove label "${name}": ${e.message}`);
}
}

View File

@ -0,0 +1,59 @@
name: "Maintenance: Lint scripts"
run-name: 'Shellcheck - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
#
# Run ShellCheck on all scripts and generate report as build artifact
#
on:
workflow_dispatch:
pull_request:
types: [opened, reopened, synchronize]
permissions:
contents: read
concurrency:
group: pipeline-lint-${{github.event.pull_request.number}}
cancel-in-progress: true
jobs:
Shellcheck:
name: Shell script analysis
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'Armbian' }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 2
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v46.0.3
- name: List all changed files
run: |
# Use framework internal mechanism for checking `lib` and `extensions` code only one file is passed,
# and source's are followed, thus the whole project is "understood" by shellcheck.
# For example, when checking individual files, one variable might be thought "unused" because it
# is only used in another file, which does not happen when done properly.
bash lib/tools/shellcheck.sh
ret=0
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ ! "${file}" =~ lib/|extensions/|.py|.service|.rules|.network|.netdev ]]; then
if grep -qE "^#\!/.*bash" $file; then
shellcheck --severity=error $file || ret=$?
fi
fi
done
exit $ret

View File

@ -0,0 +1,23 @@
name: "Maintenance: Listen PR review"
on:
pull_request_review:
types: [submitted]
permissions:
contents: read
jobs:
ping:
if: ${{ github.event.review.state == 'approved' }}
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Save PR number
run: echo "${{ github.event.pull_request.number }}" > pr.txt
- uses: actions/upload-artifact@v7.0.0
with:
# unique name: includes workflow run id
name: pr-number-${{ github.run_id }}
path: pr.txt

View File

@ -0,0 +1,296 @@
name: "Maintenance: Rewrite kernel configs"
on:
schedule:
- cron: "0 0 * * MON"
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
build-matrix:
name: Build dynamic matrix
runs-on: super
outputs:
matrix: ${{ steps.gen.outputs.matrix }}
count: ${{ steps.gen.outputs.count }}
steps:
- uses: actions/checkout@v6
- name: "Produce inventory JSON"
run: |
./compile.sh inventory-boards
- name: Build matrix from inventory (simple sanitize)
id: gen
shell: bash
run: |
set -euo pipefail
JSON="output/info/image-info.json"
tmp="$(mktemp)"
jq -c '
def norm_branches:
if . == null then []
elif (type=="string") then ( gsub("[,\\s]+";" ") | split(" ") | map(select(length>0)) )
elif (type=="array") then ( map(tostring) | map(select(length>0)) )
else [] end;
# 1) Expand to rows: (board, linuxfamily, branch)
[ .[]
| {
board: (.out.HOST // .in.inventory.BOARD // ""),
linuxfamily: (.out.LINUXFAMILY // .in.inventory.BOARDFAMILY // ""),
branches: ((.in.inventory.BOARD_POSSIBLE_BRANCHES
// .in.inventory.BOARD_TOP_LEVEL_VARS.BOARD_POSSIBLE_BRANCHES)
| norm_branches)
}
| select((.board|length>0) and (.linuxfamily|length>0) and (.branches|length>0))
| . as $o
| $o.branches[]
| { board: $o.board, linuxfamily: $o.linuxfamily, branch: . }
]
# 2) Remove exact triplet duplicates
| unique_by([.linuxfamily,.branch,.board])
# 3) If same (board,branch) appears in multiple families, keep the one with smallest family (lexicographic)
| sort_by(.board, .branch, .linuxfamily)
| group_by([.board,.branch]) | map(.[0])
# 4) If multiple boards share same (family,branch), keep smallest board (lexicographic)
| sort_by(.linuxfamily, .branch, .board)
| group_by([.linuxfamily,.branch]) | map(.[0])
' "$JSON" > "$tmp"
echo "count=$(jq 'length' "$tmp")" >> "$GITHUB_OUTPUT"
echo "matrix=$(jq -c . "$tmp")" >> "$GITHUB_OUTPUT"
rewrite-configs:
name: "Rewrite ${{ matrix.board }} (${{ matrix.branch }})"
needs: build-matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Run rewrite-kernel-config
env:
BOARD: ${{ matrix.board }}
BRANCH: ${{ matrix.branch }}
DOCKER_ARMBIAN_BASE_IMAGE: "debian:trixie"
run: |
set -euo pipefail
./compile.sh rewrite-kernel-config BOARD=$BOARD BRANCH=$BRANCH DOCKER_ARMBIAN_BASE_IMAGE="$DOCKER_ARMBIAN_BASE_IMAGE"
- name: Collect changes into artifact (added/modified/renamed only) + step summary
id: collect
shell: bash
run: |
set -euo pipefail
# Get changed paths, NUL-delimited (safe for spaces)
mapfile -d '' -t CHANGED < <(git diff -z --name-only --diff-filter=ACMR || true)
if [[ ${#CHANGED[@]} -eq 0 ]]; then
echo "nothing_to_upload=true" >> "$GITHUB_OUTPUT"
{
echo "### No changes in this job"
echo ""
echo "- Family: **${{ matrix.linuxfamily }}**"
echo "- Branch: **${{ matrix.branch }}**"
echo "- Board: **${{ matrix.board }}**"
} >> "$GITHUB_STEP_SUMMARY"
exit 0
fi
JOB_ID="${{ matrix.linuxfamily }}-${{ matrix.branch }}-${{ matrix.board }}"
ROOT="artifact/${JOB_ID}/payload"
mkdir -p "$ROOT"
# Copy files while preserving directory structure
printf '%s\0' "${CHANGED[@]}" | xargs -0 -I{} cp --parents -a -- "{}" "$ROOT/"
# --- Build GitHub Step Summary with numstat (additions/deletions) ---
# Note: numstat shows '-' for binary changes; we treat those as 0
NUMSTAT="$(mktemp)"
git diff --numstat --diff-filter=ACMR > "$NUMSTAT" || true
total_add=0
total_del=0
file_count=0
{
echo "### Changes for \`$JOB_ID\`"
echo ""
echo "| File | + | - | Δ |"
echo "|---|---:|---:|---:|"
} >> "$GITHUB_STEP_SUMMARY"
# Read tab-delimited: added<TAB>deleted<TAB>path
while IFS=$'\t' read -r add del path; do
[[ -z "${path:-}" ]] && continue
# Handle binary markers '-'
[[ "$add" =~ ^[0-9]+$ ]] || add=0
[[ "$del" =~ ^[0-9]+$ ]] || del=0
delta=$(( add - del ))
total_add=$(( total_add + add ))
total_del=$(( total_del + del ))
file_count=$(( file_count + 1 ))
# Escape pipes in path for Markdown safety
path_esc="${path//|/\\|}"
printf '| %s | %d | %d | %d |\n' "$path_esc" "$add" "$del" "$delta" >> "$GITHUB_STEP_SUMMARY"
done < "$NUMSTAT"
{
echo ""
echo "**Files changed:** $file_count"
echo ""
printf "**Total lines:** +%d / -%d (Δ %d)\n" "$total_add" "$total_del" "$(( total_add - total_del ))"
} >> "$GITHUB_STEP_SUMMARY"
- name: Upload artifact (per job; unique; overwrite safe)
if: steps.collect.outputs.nothing_to_upload != 'true'
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 }}
if-no-files-found: ignore
retention-days: 7
overwrite: true
aggregate-pr:
name: Aggregate changes & open PR
needs: [build-matrix, rewrite-configs]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Download all change artifacts (no merge)
continue-on-error: true
uses: actions/download-artifact@v8
with:
path: _artifacts
pattern: changes-*
- name: Apply all artifacts
shell: bash
run: |
set -euo pipefail
shopt -s nullglob
# Count artifacts
FOUND=0
for d in _artifacts/changes-*; do
[[ -d "$d" ]] || continue
FOUND=$((FOUND+1))
# Apply payload files (add/update)
if [[ -d "$d/payload" ]]; then
# rsync preserves paths; trailing slashes mean "copy contents"
rsync -a "$d/payload/" .
fi
# Accumulate deletions
if [[ -f "$d/deletions.txt" ]]; then
cat "$d/deletions.txt" >> /tmp/all_deletions.txt
fi
done
echo "Aggregated artifacts: $FOUND"
# Apply deletions (dedup + ignore non-existent)
if [[ -s /tmp/all_deletions.txt ]]; then
sort -u /tmp/all_deletions.txt > /tmp/all_deletions_uniq.txt
xargs -r -d '\n' git rm -f --ignore-unmatch < /tmp/all_deletions_uniq.txt || true
fi
# Did anything actually change?
if git diff --quiet; then
echo "NO_CHANGES=true" >> "$GITHUB_ENV"
fi
- name: Build PR body (summary table)
if: env.NO_CHANGES != 'true'
shell: bash
run: |
set -euo pipefail
rm -rf _artifacts || true
mkdir -p output/info
# Per-file stats
git diff --numstat > output/info/numstat.txt || true
total_add=0; total_del=0; files=0
{
echo "# Rewrite kernel configs"
echo
echo "### What this PR does"
echo "- Regenerates and **synchronizes Linux kernel config fragments** across boards/families based on the prepared inventory."
echo "- Runs \`./compile.sh rewrite-kernel-config\` for each scheduled (family, branch) and aggregates all changes into **one PR**."
echo "- No userspace changes; only **Kconfig option** updates (enable/disable/modules/values) aligned with the targeted kernel branches."
echo
echo "### How it was produced"
echo
echo "This PR is produced from [this](/armbian/build/tree/main/.github/workflows/maintenance-rewrite-kernel-configs.yml) GHA script."
echo
echo "1. Built a matrix: \`./compile.sh inventory-boards\` (deduped, sanitized)."
echo "2. Executed \`rewrite-kernel-config\` per matrix."
echo "3. Collected only changed files from each job as artifacts; aggregated and committed them here."
echo
echo "### Review tips"
echo "- Skim the table below for big deltas; open those configs to verify intent."
echo "- If a particular change is undesirable, comment on that file and we can exclude/adjust and re-run."
echo
echo "### Files changed"
echo
echo "| File | + | - | Δ |"
echo "|---|---:|---:|---:|"
while IFS=$'\t' read -r add del path; do
[[ -z "${path:-}" ]] && continue
[[ "$add" =~ ^[0-9]+$ ]] || add=0
[[ "$del" =~ ^[0-9]+$ ]] || del=0
delta=$(( add - del ))
total_add=$(( total_add + add ))
total_del=$(( total_del + del ))
files=$(( files + 1 ))
path_esc="${path//|/\\|}"
printf "| %s | %d | %d | %d |\n" "$path_esc" "$add" "$del" "$delta"
done < output/info/numstat.txt
echo
printf "**Files:** %d • **Lines:** +%d / -%d (Δ %d)\n" "$files" "$total_add" "$total_del" "$(( total_add - total_del ))"
echo
if compgen -G "output/info/annotated-configs/*.md" > /dev/null; then
echo "## Annotated configs"
for f in output/info/annotated-configs/*.md; do
echo "- ${f}"
done
echo
fi
} > PR_BODY.md
- name: Open / Update PR
if: env.NO_CHANGES != 'true'
uses: peter-evans/create-pull-request@v8
with:
add-paths: |
config/kernel/*
token: ${{ secrets.GITHUB_TOKEN }}
branch: update-kernel-configs
delete-branch: true
title: "`Automatic` kernel config rewrite"
commit-message: "Automatic: kernel config rewrite"
body-path: PR_BODY.md
labels: |
Needs review

View File

@ -0,0 +1,135 @@
name: "Maintenance: Rewrite patches"
on:
workflow_dispatch:
inputs:
board:
description: "Board name (e.g. bananapim5, khadas-vim3)"
required: true
type: string
branch:
description: "Branch to use"
required: true
type: choice
options:
- legacy
- vendor
- current
- edge
whattodo:
description: "rewrite uboot or kernel patches"
required: true
type: choice
options:
- rewrite-kernel-patches
- rewrite-uboot-patches
permissions:
contents: write
pull-requests: write
jobs:
rewrite-patches:
name: "Rewrite ${{ inputs.board }} (${{ inputs.branch }})"
runs-on: rewrite
timeout-minutes: 60
steps:
- name: Update existing repository
env:
REF_NAME: ${{ github.ref_name }}
REPO: ${{ github.repository }}
run: |
# Clone or update the repository
if [ -d .git ]; then
# Repo exists: update it
git fetch origin "$REF_NAME"
git checkout "$REF_NAME"
git reset --hard "origin/$REF_NAME"
git clean -fd
else
# No repo: clone it
git clone --depth 1 --filter=blob:none -b "$REF_NAME" "https://github.com/${REPO}" .
git checkout "$REF_NAME"
fi
- name: "Run ${{ inputs.whattodo }}"
env:
BOARD: ${{ inputs.board }}
BRANCH: ${{ inputs.branch }}
WHATTODO: ${{ inputs.whattodo }}
run: |
./compile.sh "BOARD=$BOARD" "BRANCH=$BRANCH" "$WHATTODO" KERNEL_GIT=shallow
- name: Check for changes
env:
WHATTODO: ${{ inputs.whattodo }}
id: check_changes
run: |
set -euo pipefail
if git diff --quiet; then
echo "has_changes=false" >> "$GITHUB_OUTPUT"
echo "::notice::No changes detected after ${WHATTODO}"
else
echo "has_changes=true" >> "$GITHUB_OUTPUT"
echo "::notice::Changes detected after ${WHATTODO} - PR will be created"
fi
- name: Build PR body
env:
WHATTODO: ${{ inputs.whattodo }}
id: build_pr_body
if: steps.check_changes.outputs.has_changes == 'true'
run: |
set -euo pipefail
# Per-file stats
tmp_stats=$(mktemp)
tmp_body=$(mktemp)
git diff --numstat > "$tmp_stats" || true
total_add=0; total_del=0; files=0
{
echo "| File | + | - | Δ |"
echo "|---|---:|---:|---:|"
while IFS=$'\t' read -r add del path; do
[[ -z "${path:-}" ]] && continue
[[ "$add" =~ ^[0-9]+$ ]] || add=0
[[ "$del" =~ ^[0-9]+$ ]] || del=0
delta=$(( add - del ))
total_add=$(( total_add + add ))
total_del=$(( total_del + del ))
files=$(( files + 1 ))
path_esc="${path//|/\\|}"
printf "| %s | %d | %d | %d |\n" "$path_esc" "$add" "$del" "$delta"
done < "$tmp_stats"
echo
printf "**Files:** %d • **Lines:** +%d / -%d (Δ %d)\n" "$files" "$total_add" "$total_del" "$(( total_add - total_del ))"
} > "$tmp_body"
echo "pr_body_path=$tmp_body" >> "$GITHUB_OUTPUT"
- name: Open / Update PR
id: create_pr
if: steps.check_changes.outputs.has_changes == 'true'
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: rewrite-patches/${{ inputs.board }}-${{ inputs.branch }}
delete-branch: true
base: main
title: "`[${{ inputs.branch }}]` `${{ inputs.whattodo }}` for `${{ inputs.board }}`"
commit-message: "[${{ inputs.branch }}] ${{ inputs.whattodo }} for ${{ inputs.board }}"
body-path: ${{ steps.build_pr_body.outputs.pr_body_path }}
labels: |
Needs review
- name: Cleanup temp files
if: steps.build_pr_body.outputs.pr_body_path != ''
run: |
rm -f "${{ steps.build_pr_body.outputs.pr_body_path }}" || true
- name: Reset working directory for next run
if: always()
run: |
git reset --hard HEAD
git clean -fd

View File

@ -0,0 +1,66 @@
name: "Maintenance: Security scan"
run-name: Scan scorecards security on ${{ github.event_name }}
on:
# Only the default branch is supported.
branch_protection_rule:
schedule:
# Weekly on Saturdays.
- cron: "30 1 * * 6"
push:
branches: [main]
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
if: ${{ github.repository_owner == 'Armbian' }}
name: Scorecards analysis
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Used to receive a badge. (Upcoming feature)
id-token: write
actions: read
contents: read
steps:
- name: "Checkout code"
uses: actions/checkout@v6
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@v2.4.3
with:
results_file: results.sarif
results_format: sarif
# (Optional) Read-only PAT token. Uncomment the `repo_token` line below if:
# - you want to enable the Branch-Protection check on a *public* repository, or
# - you are installing Scorecards on a *private* repository
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
repo_token: ${{ secrets.SCORECARD_READ_TOKEN }}
# Publish the results for public repositories to enable scorecard badges. For more details, see
# https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories, `publish_results` will automatically be set to `false`, regardless
# of the value entered here.
publish_results: true
# 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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@v4
#5f532563584d71fdef14ee64d17bafb34f751ce5 # v1.0.26
with:
sarif_file: results.sarif

View File

@ -0,0 +1,98 @@
#
# This action recreate action for building stable images
#
name: "Maintenance: Watchdog"
on:
schedule:
- cron: '*/30 * * * *'
workflow_dispatch:
permissions:
actions: write
contents: read
env:
GH_TOKEN: ${{ github.token }}
concurrency:
group: watchdog-${{ github.ref }}
cancel-in-progress: true
jobs:
gradle:
strategy:
fail-fast: false
max-parallel: 8
matrix:
# list scripts you want to watch and execute failed jobs x-times
script: ["maintenance-rewrite-kernel-configs"]
name: R
runs-on: ubuntu-latest
steps:
- name: "Restart ${{ matrix.script }}.yml"
run: |
set -e # Exit on any error
# Configuration
OWNER_REPO="${{ github.repository }}" # Use dynamic repo reference
ATTEMPTS="6" # Maximum retry attempts
SCRIPT="${{ matrix.script }}" # Workflow name to monitor
echo "::group::Workflow Lookup"
echo "Looking for workflow: ${SCRIPT}.yml in ${OWNER_REPO}"
# Get the workflow ID by searching for the workflow file path
WORKFLOW=$(gh api "/repos/${OWNER_REPO}/actions/workflows" \
| jq ".workflows[] | select(.path==\".github/workflows/${SCRIPT}.yml\")" \
| jq -r '.id')
# Validate that we found the workflow
if [[ -z "$WORKFLOW" ]]; then
echo "::error::Workflow '${SCRIPT}.yml' not found"
exit 1
fi
echo "Found workflow ID: ${WORKFLOW}"
echo "::endgroup::"
echo "::group::Run Analysis"
# Get the most recent workflow run (latest = first in array)
RUN_DATA=$(gh api "/repos/${OWNER_REPO}/actions/workflows/${WORKFLOW}/runs" \
| jq '.workflow_runs[0]')
# Extract run details
ID=$(echo "$RUN_DATA" | jq -r '.id')
STATUS=$(echo "$RUN_DATA" | jq -r '.conclusion')
ATTEMPT=$(echo "$RUN_DATA" | jq -r '.run_attempt')
# Validate that we have run data
if [[ -z "$ID" || "$ID" == "null" ]]; then
echo "::error::No workflow runs found"
exit 1
fi
echo "Latest run: ${ID}"
echo "Status: ${STATUS}"
echo "Attempt: ${ATTEMPT} of ${ATTEMPTS}"
echo "::endgroup::"
# Only rerun if:
# - We haven't exceeded max attempts (attempt < 6)
# - The run failed (not cancelled, success, etc)
if [[ "${ATTEMPT}" -lt "${ATTEMPTS}" ]] && [[ "$STATUS" == "failure" ]]; then
echo "::notice::Rerunning failed jobs for run ${ID} (attempt ${ATTEMPT})"
gh api --method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/${OWNER_REPO}/actions/runs/${ID}/rerun-failed-jobs"
echo "Rerun triggered successfully"
else
echo "No rerun needed:"
echo " - Attempt: ${ATTEMPT}/${ATTEMPTS}"
echo " - Status: ${STATUS}"
fi

View File

@ -0,0 +1,30 @@
name: "Maintenance: Welcome first-time issue contributor"
on:
issues:
types: opened
permissions:
contents: read
jobs:
welcome-first-time-contributor:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: plbstl/first-contribution@v4
with:
labels: "Good first issue"
issue-opened-msg: |
### Hey @{fc-author}! 👋
Thanks for opening your first issue with the Armbian project — were glad to have you here! 🧡
Your input doesnt just help us improve the project — it benefits everyone who uses Armbian.
If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at [armbian.com/update-data](https://www.armbian.com/update-data/).
This helps us keep in touch without relying solely on GitHub notifications.
Also, dont forget to ⭐ star the repo to support the work — and welcome aboard! 🚀

View File

@ -0,0 +1,29 @@
name: "Maintenance: Welcome first-time PR contributor"
on:
pull_request_target:
types: opened
permissions:
contents: read
jobs:
welcome-first-time-contributor:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: plbstl/first-contribution@v4
with:
pr-opened-msg: |
### Hey @{fc-author}! 👋
Thanks for submitting your first pull request to the Armbian project — we're excited to have you contributing! 🧡
Your effort doesnt just improve Armbian — it benefits the entire community of users and developers.
If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at [armbian.com/update-data](https://www.armbian.com/update-data/).
This helps us keep in touch without relying solely on GitHub notifications.
Also, dont forget to ⭐ star the repo if you havent already — and welcome aboard! 🚀

View File

@ -1,22 +0,0 @@
name: "Announce PR merge to Discord"
on:
push:
branches: [ main ]
jobs:
announcepush:
# Do not run this workflow in forks
if: ${{ github.repository == 'armbian/build' }}
runs-on: ubuntu-latest
steps:
- name: Get repo
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Send push to Discord
run: |
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST --data \
"{\"username\": \"Github\", \"avatar_url\": \"${{ secrets.AVATARURL }}\", \"content\": \"\
:white_check_mark: **Merged** into [$GITHUB_REPOSITORY](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY>) by [$GITHUB_ACTOR](<$GITHUB_SERVER_URL/$GITHUB_ACTOR>) - \
[Link](<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/commit/$GITHUB_SHA>): *$(git show -s --format=%s)*\"}" ${{ secrets.WEBHOOKURL }}

View File

@ -1,22 +0,0 @@
name: Jira Sync
run-name: 'Sync Jira - Issue #${{ github.event.issue.number }} ("${{ github.event.issue.title }}")'
on:
issues:
types: [opened]
jobs:
sync:
name: Sync Items
runs-on: ubuntu-latest
steps:
- name: Sync
uses: igorpecovnik/github-action-issue-to-jira@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
jiraHost: armbian.atlassian.net
jiraUsername: ${{ secrets.JIRA_USER }}
jiraPassword: ${{ secrets.JIRA_PASSWORD }}
project: AR
assignee: default_assignee

View File

@ -1,25 +0,0 @@
name: "Announce PR on Discord for review"
run-name: 'Announce PR #${{ github.event.pull_request.number }} on Discord for review'
on:
pull_request:
types: [ labeled ]
jobs:
Announce:
permissions:
pull-requests: read
runs-on: ubuntu-latest
if: ${{ github.repository == 'armbian/build' && github.event.label.id == '6210849975' }}
steps:
- name: Get repo
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Discord webhook
run: |
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 }}

View File

@ -1,113 +0,0 @@
name: Automatic Pull Request Labeling
# Sets labels automatically based on:
# - PR size (job: label-size)
# - File categories using .github/labeler config (job: label-category)
# - PR creation date for quarterly tracking (job: label-by-date)
# - Removes "Ready to merge" label on PR update (job: label-remove)
run-name: 'Set labels - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
on: pull_request_target
# Grant required permissions globally
permissions:
contents: read # Required for checking changed files
pull-requests: write # Required for labeling PRs
issues: write # Required for adding/removing labels
jobs:
label-remove:
name: "Remove Ready to merge"
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
runs-on: ubuntu-latest
steps:
- name: Checkout the pull request
uses: actions/checkout@v6
- name: Check for label using GH CLI
id: check
run: |
gh pr view ${{ github.event.pull_request.number }} --json labels -q '.labels[].name' | grep -q 'Ready to merge' && echo "has_label=true" >> $GITHUB_OUTPUT || echo "has_label=false" >> $GITHUB_OUTPUT
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Remove "Ready to merge" label
if: steps.check.outputs.has_label == 'true'
uses: PauMAVA/add-remove-label-action@v1.0.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add: ""
remove: "Ready to merge"
label-category:
name: "Category Labels"
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Checks out the repository to read files for matching with labeler config
- uses: actions/checkout@v6
# Applies labels based on the .github/labeler.yml config
- uses: actions/labeler@v6
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
label-size:
name: "Size Label"
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Automatically adds size labels based on total changed lines
- name: Label by size
uses: pascalgn/size-label-action@v0.5.5
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
sizes: >
{
"0": "small",
"50": "medium",
"250": "large"
}
label-by-date:
name: "Date label (Quarters)"
runs-on: ubuntu-latest
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
steps:
# Determines the label (02, 05, 08, 11) based on PR creation month
- name: Determine quarter label
env:
PR_CREATED_AT: ${{ github.event.pull_request.created_at }}
run: |
echo "PR created at: $PR_CREATED_AT"
# Extract the numeric month (e.g., 04 for April)
MONTH=$(date -d "$PR_CREATED_AT" +%m | sed 's/^0*//')
echo "Month extracted: $MONTH"
# Determine quarter-end label based on month
if [ "$MONTH" -le 2 ] || [ "$MONTH" -eq 12 ]; then
LABEL="02"
elif [ "$MONTH" -le 5 ]; then
LABEL="05"
elif [ "$MONTH" -le 8 ]; then
LABEL="08"
else
LABEL="11"
fi
# Set as environment variable for next step
echo "LABEL=${LABEL}" >> $GITHUB_ENV
# Adds the quarter label to the PR
- name: Add quarter label
uses: PauMAVA/add-remove-label-action@v1.0.3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
add: "${{ env.LABEL }}"

View File

@ -1,41 +0,0 @@
name: Generate Artifacts on PR if 'Build' label exists
run-name: "Generate artifacts - PR #${{ github.event.pull_request.number }} - by @${{ github.actor }}"
#
# If PR is labeled with "Build" and you are a member of "Release manager" team it will start a build train (additional security feature).
# In the run name, ${{ github.actor }} shows who's privileges are used for this run.
#
on: pull_request_target
jobs:
Check:
permissions:
pull-requests: read
name: Check label and authorization
runs-on: Linux
outputs:
member: ${{ steps.checkUserMember.outputs.isTeamMember }}
steps:
- uses: tspascoal/get-user-teams-membership@v3
if: contains(github.event.pull_request.labels.*.name, 'Build')
id: checkUserMember
with:
username: ${{ github.actor }}
organization: armbian
team: "Release manager"
GITHUB_TOKEN: ${{ secrets.ORG_MEMBERS }}
Compile:
needs: Check
name: Generate artifacts
concurrency:
group: pipeline-pr-${{github.event.pull_request.number}}
cancel-in-progress: true
if: ${{ github.repository_owner == 'Armbian' && needs.Check.outputs.member == 'true' }}
uses: armbian/os/.github/workflows/complete-artifact-matrix-all.yml@main
secrets:
ORG_MEMBERS: ${{ secrets.ORG_MEMBERS }}
with:
extraParamsAllBuilds: "UPLOAD_TO_OCI_ONLY=no"
ref: ${{ github.event.pull_request.head.sha }}

View File

@ -1,54 +0,0 @@
name: Kernel Hardening Analysis
run-name: 'Check kernel security options - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
#
# Check the Linux kernel options against security hardening
#
# Attention! Changing security parameters may also affect system performance and functionality of userspace software!
# More info:
# https://github.com/a13xp0p0v/kernel-hardening-checker
on:
workflow_dispatch:
pull_request:
types: [ready_for_review, opened, reopened, synchronize]
permissions:
contents: read
concurrency:
group: pipeline-security-${{github.event.pull_request.number}}
cancel-in-progress: true
jobs:
Analysis:
name: Check kernel security options
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'Armbian' }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@6da3c88b60ebf09464ada9b06fba5b6f2d34bb94 # v46.0.3
- name: Checkout repository
uses: actions/checkout@v6
with:
repository: a13xp0p0v/kconfig-hardened-check
path: kconfig-hardened-check
- name: Check kernel config for security issues
# Run kernel-hardening-checker for each kernel config file excluding RISC-V configs, since they are not supported yet.
# See https://github.com/a13xp0p0v/kernel-hardening-checker/issues/56
# sed explanation: 1) Put spaces in front of every line 2) replace colored output with emojis since GitHub Actions job summaries don't support colored output
run: |
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ "${file}" = config/kernel/*.config && ! $(head -n 10 "${file}" | grep -q "riscv") ]]; then
kconfig-hardened-check/bin/kernel-hardening-checker -m show_fail -c $file | sed 's/^/ /; s/\x1b\[32m/✅ /; s/\x1b\[31m/❌ /; s/\x1b\[0m//' >> $GITHUB_STEP_SUMMARY
fi
done

View File

@ -1,54 +0,0 @@
name: PR review labeler
on:
workflow_run:
workflows: ["PR review listener"]
types: [completed]
jobs:
label:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
pull-requests: write
steps:
- name: Download PR number artifact from upstream run
uses: actions/download-artifact@v6
with:
name: pr-number-${{ github.event.workflow_run.id }} # same unique name
path: .
run-id: ${{ github.event.workflow_run.id }} # ← CRITICAL: fetch from the upstream run
github-token: ${{ secrets.GITHUB_TOKEN }}
- id: pr
run: echo "number=$(cat pr.txt)" >> $GITHUB_OUTPUT
- name: Label when approved
uses: j-fulbright/label-when-approved-action@v1.2
with:
token: ${{ secrets.GITHUB_TOKEN }}
label: 'Ready to merge'
require_committers_approval: 'true'
remove_label_when_approval_missing: 'true'
comment: '✅ This PR has been reviewed and approved — all set for merge!'
pullRequestNumber: ${{ steps.pr.outputs.number }}
- name: Remove review-related labels
if: ${{ success() }}
uses: actions/github-script@v8
with:
script: |
const { owner, repo } = context.repo;
const issue_number = ${{ steps.pr.outputs.number }};
const labelsToRemove = ["Needs review", "Work in progress", "Backlog", "Can be closed?", "Help needed", "Needs Documentation"];
for (const name of labelsToRemove) {
try {
await github.rest.issues.removeLabel({ owner, repo, issue_number, name });
core.info(`Removed label "${name}"`);
} catch (e) {
core.warning(`Could not remove label "${name}": ${e.message}`);
}
}

View File

@ -1,59 +0,0 @@
name: Lint on Scripts
run-name: 'Shellcheck - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
#
# Run ShellCheck on all scripts and generate report as build artifact
#
on:
workflow_dispatch:
pull_request:
types: [opened, reopened, synchronize]
permissions:
contents: read
concurrency:
group: pipeline-lint-${{github.event.pull_request.number}}
cancel-in-progress: true
jobs:
Shellcheck:
name: Shell script analysis
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'Armbian' }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 2
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@6da3c88b60ebf09464ada9b06fba5b6f2d34bb94 # v46.0.3
- name: List all changed files
run: |
# Use framework internal mechanism for checking `lib` and `extensions` code only one file is passed,
# and source's are followed, thus the whole project is "understood" by shellcheck.
# For example, when checking individual files, one variable might be thought "unused" because it
# is only used in another file, which does not happen when done properly.
bash lib/tools/shellcheck.sh
ret=0
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do
if [[ ! "${file}" =~ lib/|extensions/|.py|.service|.rules|.network|.netdev ]]; then
if grep -qE "^#\!/.*bash" $file; then
shellcheck --severity=error $file || ret=$?
fi
fi
done
exit $ret

View File

@ -1,20 +0,0 @@
name: PR review listener
on:
pull_request_review:
types: [submitted]
jobs:
ping:
if: ${{ github.event.review.state == 'approved' }}
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Save PR number
run: echo "${{ github.event.pull_request.number }}" > pr.txt
- uses: actions/upload-artifact@v5
with:
# unique name: includes workflow run id
name: pr-number-${{ github.run_id }}
path: pr.txt

View File

@ -1,26 +0,0 @@
name: "Welcome first-time PR contributor"
on:
pull_request_target:
types: opened
jobs:
welcome-first-time-contributor:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: plbstl/first-contribution@v4
with:
pr-opened-msg: |
### Hey @{fc-author}! 👋
Thanks for submitting your first pull request to the Armbian project — we're excited to have you contributing! 🧡
Your effort doesnt just improve Armbian — it benefits the entire community of users and developers.
If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at [armbian.com/update-data](https://www.armbian.com/update-data/).
This helps us keep in touch without relying solely on GitHub notifications.
Also, dont forget to ⭐ star the repo if you havent already — and welcome aboard! 🚀

View File

@ -1,296 +0,0 @@
name: "Rewrite kernel configs"
on:
schedule:
- cron: "0 0 * * MON"
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
build-matrix:
name: Build dynamic matrix
runs-on: super
outputs:
matrix: ${{ steps.gen.outputs.matrix }}
count: ${{ steps.gen.outputs.count }}
steps:
- uses: actions/checkout@v6
- name: "Produce inventory JSON"
run: |
./compile.sh inventory-boards
- name: Build matrix from inventory (simple sanitize)
id: gen
shell: bash
run: |
set -euo pipefail
JSON="output/info/image-info.json"
tmp="$(mktemp)"
jq -c '
def norm_branches:
if . == null then []
elif (type=="string") then ( gsub("[,\\s]+";" ") | split(" ") | map(select(length>0)) )
elif (type=="array") then ( map(tostring) | map(select(length>0)) )
else [] end;
# 1) Expand to rows: (board, linuxfamily, branch)
[ .[]
| {
board: (.out.HOST // .in.inventory.BOARD // ""),
linuxfamily: (.out.LINUXFAMILY // .in.inventory.BOARDFAMILY // ""),
branches: ((.in.inventory.BOARD_POSSIBLE_BRANCHES
// .in.inventory.BOARD_TOP_LEVEL_VARS.BOARD_POSSIBLE_BRANCHES)
| norm_branches)
}
| select((.board|length>0) and (.linuxfamily|length>0) and (.branches|length>0))
| . as $o
| $o.branches[]
| { board: $o.board, linuxfamily: $o.linuxfamily, branch: . }
]
# 2) Remove exact triplet duplicates
| unique_by([.linuxfamily,.branch,.board])
# 3) If same (board,branch) appears in multiple families, keep the one with smallest family (lexicographic)
| sort_by(.board, .branch, .linuxfamily)
| group_by([.board,.branch]) | map(.[0])
# 4) If multiple boards share same (family,branch), keep smallest board (lexicographic)
| sort_by(.linuxfamily, .branch, .board)
| group_by([.linuxfamily,.branch]) | map(.[0])
' "$JSON" > "$tmp"
echo "count=$(jq 'length' "$tmp")" >> "$GITHUB_OUTPUT"
echo "matrix=$(jq -c . "$tmp")" >> "$GITHUB_OUTPUT"
rewrite-configs:
name: "Rewrite ${{ matrix.board }} (${{ matrix.branch }})"
needs: build-matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Run rewrite-kernel-config
env:
BOARD: ${{ matrix.board }}
BRANCH: ${{ matrix.branch }}
DOCKER_ARMBIAN_BASE_IMAGE: "debian:trixie"
run: |
set -euo pipefail
./compile.sh rewrite-kernel-config BOARD=$BOARD BRANCH=$BRANCH DOCKER_ARMBIAN_BASE_IMAGE="$DOCKER_ARMBIAN_BASE_IMAGE"
- name: Collect changes into artifact (added/modified/renamed only) + step summary
id: collect
shell: bash
run: |
set -euo pipefail
# Get changed paths, NUL-delimited (safe for spaces)
mapfile -d '' -t CHANGED < <(git diff -z --name-only --diff-filter=ACMR || true)
if [[ ${#CHANGED[@]} -eq 0 ]]; then
echo "nothing_to_upload=true" >> "$GITHUB_OUTPUT"
{
echo "### No changes in this job"
echo ""
echo "- Family: **${{ matrix.linuxfamily }}**"
echo "- Branch: **${{ matrix.branch }}**"
echo "- Board: **${{ matrix.board }}**"
} >> "$GITHUB_STEP_SUMMARY"
exit 0
fi
JOB_ID="${{ matrix.linuxfamily }}-${{ matrix.branch }}-${{ matrix.board }}"
ROOT="artifact/${JOB_ID}/payload"
mkdir -p "$ROOT"
# Copy files while preserving directory structure
printf '%s\0' "${CHANGED[@]}" | xargs -0 -I{} cp --parents -a -- "{}" "$ROOT/"
# --- Build GitHub Step Summary with numstat (additions/deletions) ---
# Note: numstat shows '-' for binary changes; we treat those as 0
NUMSTAT="$(mktemp)"
git diff --numstat --diff-filter=ACMR > "$NUMSTAT" || true
total_add=0
total_del=0
file_count=0
{
echo "### Changes for \`$JOB_ID\`"
echo ""
echo "| File | + | - | Δ |"
echo "|---|---:|---:|---:|"
} >> "$GITHUB_STEP_SUMMARY"
# Read tab-delimited: added<TAB>deleted<TAB>path
while IFS=$'\t' read -r add del path; do
[[ -z "${path:-}" ]] && continue
# Handle binary markers '-'
[[ "$add" =~ ^[0-9]+$ ]] || add=0
[[ "$del" =~ ^[0-9]+$ ]] || del=0
delta=$(( add - del ))
total_add=$(( total_add + add ))
total_del=$(( total_del + del ))
file_count=$(( file_count + 1 ))
# Escape pipes in path for Markdown safety
path_esc="${path//|/\\|}"
printf '| %s | %d | %d | %d |\n' "$path_esc" "$add" "$del" "$delta" >> "$GITHUB_STEP_SUMMARY"
done < "$NUMSTAT"
{
echo ""
echo "**Files changed:** $file_count"
echo ""
printf "**Total lines:** +%d / -%d (Δ %d)\n" "$total_add" "$total_del" "$(( total_add - total_del ))"
} >> "$GITHUB_STEP_SUMMARY"
- name: Upload artifact (per job; unique; overwrite safe)
if: steps.collect.outputs.nothing_to_upload != 'true'
uses: actions/upload-artifact@v5
with:
name: changes-${{ matrix.linuxfamily }}-${{ matrix.branch }}-${{ matrix.board }}-${{ github.run_attempt }}
path: artifact/${{ matrix.linuxfamily }}-${{ matrix.branch }}-${{ matrix.board }}
if-no-files-found: ignore
retention-days: 7
overwrite: true
aggregate-pr:
name: Aggregate changes & open PR
needs: [build-matrix, rewrite-configs]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Download all change artifacts (no merge)
continue-on-error: true
uses: actions/download-artifact@v6
with:
path: _artifacts
pattern: changes-*
- name: Apply all artifacts
shell: bash
run: |
set -euo pipefail
shopt -s nullglob
# Count artifacts
FOUND=0
for d in _artifacts/changes-*; do
[[ -d "$d" ]] || continue
FOUND=$((FOUND+1))
# Apply payload files (add/update)
if [[ -d "$d/payload" ]]; then
# rsync preserves paths; trailing slashes mean "copy contents"
rsync -a "$d/payload/" .
fi
# Accumulate deletions
if [[ -f "$d/deletions.txt" ]]; then
cat "$d/deletions.txt" >> /tmp/all_deletions.txt
fi
done
echo "Aggregated artifacts: $FOUND"
# Apply deletions (dedup + ignore non-existent)
if [[ -s /tmp/all_deletions.txt ]]; then
sort -u /tmp/all_deletions.txt > /tmp/all_deletions_uniq.txt
xargs -r -d '\n' git rm -f --ignore-unmatch < /tmp/all_deletions_uniq.txt || true
fi
# Did anything actually change?
if git diff --quiet; then
echo "NO_CHANGES=true" >> "$GITHUB_ENV"
fi
- name: Build PR body (summary table)
if: env.NO_CHANGES != 'true'
shell: bash
run: |
set -euo pipefail
rm -rf _artifacts || true
mkdir -p output/info
# Per-file stats
git diff --numstat > output/info/numstat.txt || true
total_add=0; total_del=0; files=0
{
echo "# Rewrite kernel configs"
echo
echo "### What this PR does"
echo "- Regenerates and **synchronizes Linux kernel config fragments** across boards/families based on the prepared inventory."
echo "- Runs \`./compile.sh rewrite-kernel-config\` for each scheduled (family, branch) and aggregates all changes into **one PR**."
echo "- No userspace changes; only **Kconfig option** updates (enable/disable/modules/values) aligned with the targeted kernel branches."
echo
echo "### How it was produced"
echo
echo "This PR is produced from [this](/armbian/build/tree/main/.github/workflows/rewrite-kernel-configs.yml) GHA script."
echo
echo "1. Built a matrix: \`./compile.sh inventory-boards\` (deduped, sanitized)."
echo "2. Executed \`rewrite-kernel-config\` per matrix."
echo "3. Collected only changed files from each job as artifacts; aggregated and committed them here."
echo
echo "### Review tips"
echo "- Skim the table below for big deltas; open those configs to verify intent."
echo "- If a particular change is undesirable, comment on that file and we can exclude/adjust and re-run."
echo
echo "### Files changed"
echo
echo "| File | + | - | Δ |"
echo "|---|---:|---:|---:|"
while IFS=$'\t' read -r add del path; do
[[ -z "${path:-}" ]] && continue
[[ "$add" =~ ^[0-9]+$ ]] || add=0
[[ "$del" =~ ^[0-9]+$ ]] || del=0
delta=$(( add - del ))
total_add=$(( total_add + add ))
total_del=$(( total_del + del ))
files=$(( files + 1 ))
path_esc="${path//|/\\|}"
printf "| %s | %d | %d | %d |\n" "$path_esc" "$add" "$del" "$delta"
done < output/info/numstat.txt
echo
printf "**Files:** %d • **Lines:** +%d / -%d (Δ %d)\n" "$files" "$total_add" "$total_del" "$(( total_add - total_del ))"
echo
if compgen -G "output/info/annotated-configs/*.md" > /dev/null; then
echo "## Annotated configs"
for f in output/info/annotated-configs/*.md; do
echo "- ${f}"
done
echo
fi
} > PR_BODY.md
- name: Open / Update PR
if: env.NO_CHANGES != 'true'
uses: peter-evans/create-pull-request@v7
with:
add-paths: |
config/kernel/*
token: ${{ secrets.GITHUB_TOKEN }}
branch: update-kernel-configs
delete-branch: true
title: "`Automatic` kernel config rewrite"
commit-message: "Automatic: kernel config rewrite"
body-path: PR_BODY.md
labels: |
Needs review

View File

@ -1,66 +0,0 @@
name: Scorecards Security Scan
run-name: Scan scorecards security on ${{ github.event_name }}
on:
# Only the default branch is supported.
branch_protection_rule:
schedule:
# Weekly on Saturdays.
- cron: "30 1 * * 6"
push:
branches: [main]
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
if: ${{ github.repository_owner == 'Armbian' }}
name: Scorecards analysis
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Used to receive a badge. (Upcoming feature)
id-token: write
actions: read
contents: read
steps:
- name: "Checkout code"
uses: actions/checkout@v6
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@v2.4.3
with:
results_file: results.sarif
results_format: sarif
# (Optional) Read-only PAT token. Uncomment the `repo_token` line below if:
# - you want to enable the Branch-Protection check on a *public* repository, or
# - you are installing Scorecards on a *private* repository
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat.
repo_token: ${{ secrets.SCORECARD_READ_TOKEN }}
# Publish the results for public repositories to enable scorecard badges. For more details, see
# https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories, `publish_results` will automatically be set to `false`, regardless
# of the value entered here.
publish_results: true
# 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@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
# Upload the results to GitHub's code scanning dashboard.
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@v4
#5f532563584d71fdef14ee64d17bafb34f751ce5 # v1.0.26
with:
sarif_file: results.sarif

View File

@ -1,21 +0,0 @@
name: Update Board Lists
run-name: Update board list at armbian/os
on:
push:
paths:
- "config/boards/*.*"
branches: [main]
jobs:
update-board-list-dispatch:
name: Send dispatch
if: ${{ github.repository_owner == 'Armbian' }}
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v4
with:
token: ${{ secrets.ACCESS_TOKEN }}
repository: armbian/os
event-type: "Refresh board list"

View File

@ -1,104 +0,0 @@
name: Update Tools in Scripts
run-name: Update Tools in Scripts by @${{ github.actor }}
#
# Some of our scripts download tools from a repo. These can't be bumped by dependabot, so this workflow is a self-created dependabot to bump versions of those tools to stay up-to-date.
# This workflow only creates a PR if the version was actually updated.
# To add a new tool, it just needs to be added to the matrix below by filling out all the variables.
#
permissions:
contents: write
pull-requests: write
on:
workflow_dispatch:
schedule:
- cron: "42 3 16 * *" # Run monthly on the 16th day of the month at 03:42 AM (random value as to not overload GitHub)
jobs:
update-tool-version:
name: Update ${{ matrix.tool.REPO_NAME }} version
runs-on: ubuntu-latest
# Add new tools here, no need to add anything anywhere else.
# Only works for tools hosted on GitHub for now.
strategy:
matrix:
tool:
# Shellcheck
- USER_NAME: "koalaman" # GitHub user name
REPO_NAME: "shellcheck" # GitHub repo name
PROJECT_NAME: "koalaman/shellcheck" # This is always USER_NAME/REPO_NAME (like in the GitHub URL)
VAR_FILE: "lib/tools/shellcheck.sh" # Where the version variable of the tool is saved
VERSION_VAR: "SHELLCHECK_VERSION" # Version variable how it appears in the script
# Shellcheck #2
- USER_NAME: "koalaman"
REPO_NAME: "shellcheck"
PROJECT_NAME: "koalaman/shellcheck"
VAR_FILE: "lib/functions/general/shellcheck.sh"
VERSION_VAR: "SHELLCHECK_VERSION"
# Shellfmt
- USER_NAME: "mvdan"
REPO_NAME: "sh"
PROJECT_NAME: "mvdan/sh"
VAR_FILE: "lib/tools/shellfmt.sh"
VERSION_VAR: "SHELLFMT_VERSION"
# ORAS
- USER_NAME: "oras-project"
REPO_NAME: "oras"
PROJECT_NAME: "oras-project/oras"
VAR_FILE: "lib/functions/general/oci-oras.sh"
VERSION_VAR: "ORAS_VERSION"
# Bat
- USER_NAME: "sharkdp"
REPO_NAME: "bat"
PROJECT_NAME: "sharkdp/bat"
VAR_FILE: "lib/functions/general/bat-cat.sh"
VERSION_VAR: "BATCAT_VERSION"
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Get current ${{ matrix.tool.PROJECT_NAME }} version
id: get-version-current
run: |
version_current=$(grep -Po '(?<=${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-)[0-9.]+(?=})' ${{ matrix.tool.VAR_FILE }})
echo "version_current=$version_current" >> $GITHUB_OUTPUT
- name: Get latest ${{ matrix.tool.PROJECT_NAME }} version
id: get-version-latest
# Multi-line string for CHANGE_LOG env, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
# Further exmplanation for the CHANGE_LOG env:
# The first 'sed' expression replaces "#123" with "username/repo#123" to link to the correct repo (would otherwise auto-link to own repo)
# The second 'sed' expression replaces GitHub URLs with "redirect.github.com" to prevent "This was referenced" in the external repo's PRs/issues
run: |
version_latest=$(curl --silent "https://api.github.com/repos/${{ matrix.tool.PROJECT_NAME }}/releases/latest" | jq -r .tag_name)
version_latest=${version_latest#v} # Removing the 'v' prefix since the script uses only plain numbers
echo "version_latest=$version_latest" >> $GITHUB_OUTPUT
- name: Update ${{ matrix.tool.VERSION_VAR}} in script
# @TODO Make sure that the version is actually higher, not lower (the 'latest' tag does not neccessarily mean that the version is higher!)
run: |
version_latest=${{ steps.get-version-latest.outputs.version_latest }}
sed -i "s/${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-[0-9.]*}/${{ matrix.tool.VERSION_VAR}}=\${${{ matrix.tool.VERSION_VAR}}:-$version_latest}/g" ${{ matrix.tool.VAR_FILE }}
- name: Create Pull Request to update ${{ matrix.tool.VERSION_VAR}} for ${{ matrix.tool.PROJECT_NAME }}
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "tools: Bump `${{ matrix.tool.VERSION_VAR}}` from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }}"
branch: update-version-${{ matrix.tool.VAR_FILE }}-${{ matrix.tool.PROJECT_NAME }}-${{ steps.get-version-latest.outputs.version_latest }}
delete-branch: true
title: "Bump ${{ matrix.tool.PROJECT_NAME}} from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }} in `${{ matrix.tool.VAR_FILE}}`"
body: |
Bump [${{ matrix.tool.PROJECT_NAME}}](https://github.com/${{ matrix.tool.PROJECT_NAME }}) from ${{ steps.get-version-current.outputs.version_current }} to ${{ steps.get-version-latest.outputs.version_latest }} by bumping `${{ matrix.tool.VERSION_VAR}}` in `${{ matrix.tool.VAR_FILE}}`.
Check <a href="https://github.com/${{ matrix.tool.PROJECT_NAME }}/releases/latest">the upstream release notes</a>.
<p><em>Please note that the above link only shows the release notes for the latest release.</em></p>
labels: Dependencies, Bash

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

@ -1,25 +1,19 @@
<h2 align="center">
<h3 align="center">
<a href=#><img src="https://raw.githubusercontent.com/armbian/.github/master/profile/logosmall.png" alt="Armbian logo"></a>
<br><br>
</h2>
</h3>
### Purpose of This Repository
## Purpose of This Repository
The **Armbian Linux Build Framework** creates minimal, efficient, and fully [customizable operating system images](https://docs.armbian.com/#key-features) based on **Debian** or **Ubuntu**. It is designed specifically for **low-resource single board computers (SBCs)** and other embedded devices.
The **Armbian Linux Build Framework** creates customizable OS images based on **Debian** or **Ubuntu** for **single-board computers (SBCs)** and embedded devices.
This toolchain compiles a custom **Linux kernel**, **bootloader**, and **root filesystem**, providing fine-grained control over:
It builds a complete Linux system including kernel, bootloader, and root filesystem, giving you control over versions, configuration, firmware, device trees, and system optimizations.
- Kernel versions and configuration
- Bootloader selection and customization
- Filesystem layout and compression
- Additional firmware, overlays, and device trees
- System optimizations for performance and size
The framework supports **native**, **cross**, and **containerized** builds for multiple architectures (`x86_64`, `aarch64`, `armhf`, `riscv64`) and is suitable for development, testing, production, or automation.
The framework supports **native**, **cross**, and **containerized** builds for multiple architectures (`x86_64`, `aarch64`, `armhf`, `riscv64`), and is suitable for development, testing, production deployment, or automation pipelines.
> **Looking for prebuilt images?** Use [Armbian Imager](https://github.com/armbian/imager/releases) — the easiest way to download and flash Armbian to your SD card or USB drive. Available for Linux, macOS, and Windows.
It ensures **consistency across devices** while remaining modular and extensible through a variety of configuration files, templates, and user patches.
### Quick Start
## Quick Start
```bash
git clone https://github.com/armbian/build
@ -27,59 +21,57 @@ cd build
./compile.sh
```
### Resources
<a href="#how-to-build-an-image-or-a-kernel"><img src=".github/README.gif" alt="Build demonstration" width="100%"></a>
[Documentation](https://docs.armbian.com/Developer-Guide_Overview/) • [Website](https://www.armbian.com) • [Blog](https://blog.armbian.com) • [Community Forums](https://forum.armbian.com)
## Build Host Requirements
### Hardware
- **RAM:** ≥8GB (less with `KERNEL_BTF=no`)
- **Disk:** ~50GB free space
- **Architecture:** x86_64, aarch64, or riscv64
### Operating System
- **Native builds:** Armbian or Ubuntu 24.04 (Noble)
- **Containerized:** Any Docker-capable Linux
- **Windows:** WSL2 with Armbian/Ubuntu 24.04
<a href="#how-to-build-an-image-or-a-kernel"><img src=".github/README.gif" alt="Armbian logo" width="100%"></a>
### Software
- Superuser privileges (`sudo` or root)
- Up-to-date system (outdated Docker or other tools can cause failures)
### Build Host Requirements
## Resources
- **Supported Architectures:** `x86_64`, `aarch64`, `riscv64`
- **System:** VM, container, or bare-metal with:
- **≥ 8GB RAM** (less with `KERNEL_BTF=no`)
- **~50GB disk space**
- **Operating System:**
- Armbian / Ubuntu 24.04 (Noble) for native builds
- Any Docker-capable Linux for containerized setup
- **Windows:** Windows 10/11 with WSL2 running Armbian / Ubuntu 24.04
- **Access:** Superuser rights (`sudo` or `root`)
- **Important:** Keep your system up-to-date — outdated tools (e.g., Docker) can cause issues.
- **[Documentation](https://docs.armbian.com/Developer-Guide_Overview/)** — Comprehensive guides for building, configuring, and customizing
- **[Website](https://www.armbian.com)** — News, features, and board information
- **[Blog](https://blog.armbian.com)** — Development updates and technical articles
- **[Forums](https://forum.armbian.com)** — Community support and discussions
### Download
## Contributing
Prebuilt Armbian OS Images: <https://www.armbian.com/download>
We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on reporting issues, submitting changes, and contributing code.
### Contribute
## Support
Learn how to report issues, suggest improvements, or submit code: [CONTRIBUTING.md](CONTRIBUTING.md)
### Community Forums
Get help from users and contributors on troubleshooting, configuration, and development.
👉 [forum.armbian.com](https://forum.armbian.com)
### Support
### Real-time Chat
Join discussions with developers and community members on IRC or Discord.
👉 [Community Chat](https://docs.armbian.com/Community_IRC/)
Armbian offers multiple support channels, depending on your needs:
### Paid Consultation
For commercial projects, guaranteed response times, or advanced needs, paid support is available from Armbian maintainers.
👉 [Contact us](https://www.armbian.com/contact)
- **Community Forums**
Get help from fellow users and contributors on a wide range of topics — from troubleshooting to development.
👉 [forum.armbian.com](https://forum.armbian.com)
## Contributors
- **Discord / IRC/ Matrix Chat**
Join real-time discussions with developers and community members for faster feedback and collaboration.
👉 [Community Chat](https://docs.armbian.com/Community_IRC/)
- **Paid Consultation**
For advanced needs, commercial projects, or guaranteed response times, paid support is available directly from Armbian maintainers.
👉 [Contact us](https://www.armbian.com/contact) to discuss consulting options.
### Contributors
Thank you to all the people who already contributed to Armbian!
Thank you to everyone who has contributed to Armbian!
<a href="https://github.com/armbian/build/graphs/contributors">
<img src="https://contrib.rocks/image?repo=armbian/build" />
<img alt="Contributors" src="https://contrib.rocks/image?repo=armbian/build" />
</a>
## Armbian Partners
Armbian's [partnership program](https://forum.armbian.com/subscriptions) helps to support Armbian and the Armbian community! Please take a moment to familiarize yourself with [our Partners](https://armbian.com/partners).
Our [partnership program](https://forum.armbian.com/subscriptions) supports Armbian's development and community. Learn more about [our Partners](https://armbian.com/partners).

View File

@ -1 +1 @@
25.11.0-trunk
26.02.0-trunk

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

@ -1,5 +1,6 @@
# Rockchip RK3568 quad core 2GB-8GB RAM SoC 2 x GBE eMMC USB3 WiFi/BT PCIe SATA NVMe
BOARD_NAME="9Tripod X3568 v4"
BOARD_VENDOR="rockchip"
BOARDFAMILY="rockchip64"
BOARD_MAINTAINER="rbqvq"
KERNEL_TARGET="current,edge"

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,5 +1,6 @@
# Amlogic A311D 2/4GB RAM eMMC GBE USB3
BOARD_NAME="Libre Computer Alta"
BOARD_NAME="Alta"
BOARD_VENDOR="libre-computer"
BOARDFAMILY="meson-g12b"
BOARD_MAINTAINER="Tonymac32"
KERNEL_TARGET="current,edge"

View File

@ -1,5 +1,6 @@
# Amlogic S912 octa core 3Gb RAM SoC eMMC
BOARD_NAME="Magicsee C400 Plus"
BOARD_VENDOR="amlogic"
BOARDFAMILY="meson-gxl"
BOARD_MAINTAINER="jomadeto"
BOOTSIZE="512"

View File

@ -1,5 +1,6 @@
# MXQ TV box based on Amlogic S805 quad core 1GB RAM SoC GBE
BOARD_NAME="MXQ"
BOARD_VENDOR="amlogic"
BOARDFAMILY="meson8b"
BOARD_MAINTAINER=""
KERNEL_TARGET="current"

View File

@ -1,5 +1,6 @@
# Amlogic s905d3 2/4GB RAM eMMC GBE USB3
BOARD_NAME="Libre Computer Solitude"
BOARD_VENDOR="libre-computer"
BOARDFAMILY="meson-sm1"
BOARD_MAINTAINER="Tonymac32"
KERNEL_TARGET="current,edge"

View File

@ -1,6 +1,7 @@
# Amlogic S9xx based TVBox
BOARD_NAME="aml-s9xx-box"
BOARDFAMILY="meson-gxl"
BOARD_VENDOR="amlogic"
BOARD_MAINTAINER="SteeManMI"
BOOTSIZE="512"
BOOTFS_TYPE="fat"

View File

@ -1,7 +1,9 @@
# Amlogic S912 octa core 3Gb RAM SoC eMMC chinese clone
BOARD_NAME="T95Z Plus" # (a q201 Chinese clone with internal amlogic ethernet 1gbit, complete with a chunk of metal inside to delay thermal throttling)
BOARD_VENDOR="amlogic"
BOOT_FDT_FILE="amlogic/meson-gxm-t95z-plus.dtb" # From chewitt's patches
BOARDFAMILY="meson-gxl" # s912's are actually meson-gxm, no harm done.
BOARD_VENDOR="generic"
BOOTCONFIG="meson-gxm-t95z-plus_defconfig" # patched-in
BOARD_MAINTAINER=""
KERNEL_TARGET="edge"

View File

@ -1,5 +1,6 @@
# Rockchip RK3588 SoC octa core 8-32GB SoC 2.5GBe eMMC USB3 NvME
BOARD_NAME="ArmSoM AIM7 IO"
BOARD_VENDOR="armsom"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER=""
BOOTCONFIG="armsom-aim7-io-rk3588_defconfig"

View File

@ -1,5 +1,6 @@
# Rockchip RK3576 SoC octa core 8-64GB SoC GBe eMMC USB3 NvME WIFI
BOARD_NAME="ArmSoM CM5 IO"
BOARD_VENDOR="armsom"
BOARDFAMILY="rk35xx"
BOOTCONFIG="armsom-cm5-io-rk3576_defconfig"
KERNEL_TARGET="vendor"

View File

@ -1,5 +1,6 @@
# Rockchip RK3576 SoC octa core 8-64GB SoC GBe eMMC USB3 NvME WIFI
BOARD_NAME="ArmSoM CM5 CM4 IO"
BOARD_VENDOR="armsom"
BOARDFAMILY="rk35xx"
BOOTCONFIG="armsom-cm5-rpi-cm4-io-rk3576_defconfig"
KERNEL_TARGET="vendor"

View File

@ -1,5 +1,6 @@
# Rockchip RK3506J triple core 512MB SoC 2x100MBe NAND USB2
BOARD_NAME="ArmSoM Forge1"
BOARD_VENDOR="armsom"
BOARDFAMILY="rockchip"
BOOTCONFIG="forge1-rk3506b_defconfig"
BOARD_MAINTAINER="amazingfate"

View File

@ -1,5 +1,6 @@
# Rockchip RK3528 quad core 1-8GB SoC GBe eMMC USB3 Wifi Bt
BOARD_NAME="ArmSoM Sige1"
BOARD_VENDOR="armsom"
BOARDFAMILY="rk35xx"
BOOTCONFIG="hinlink_rk3528_defconfig"
BOARD_MAINTAINER="amazingfate"

View File

@ -1,5 +1,6 @@
# Rockchip RK3568 quad core 1-8GB SoC GBe eMMC USB3
BOARD_NAME="ArmSom Sige3"
BOARD_VENDOR="armsom"
BOARDFAMILY="rk35xx"
BOARD_MAINTAINER="amazingfate"
BOOTCONFIG="armsom-sige3-rk3568_defconfig"

View File

@ -1,5 +1,6 @@
# Rockchip RK3576 SoC octa core 8-64GB SoC 2*GBe eMMC USB3 NvME WIFI
BOARD_NAME="ArmSoM Sige5"
BOARD_VENDOR="armsom"
BOARDFAMILY="rk35xx"
BOOTCONFIG="armsom-sige5-rk3576_defconfig"
KERNEL_TARGET="vendor,edge"

View File

@ -1,5 +1,6 @@
# Rockchip RK3588 SoC octa core 8-64GB SoC 2*2.5GBe eMMC USB3 NvME WIFI
BOARD_NAME="ArmSoM Sige7"
BOARD_VENDOR="armsom"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER=""
BOOTCONFIG="armsom-sige7-rk3588_defconfig"

View File

@ -1,5 +1,6 @@
# Rockchip RK3588 SoC octa core 8-32GB SoC 2.5GBe eMMC USB3 NvME
BOARD_NAME="ArmSoM W3"
BOARD_VENDOR="armsom"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER=""
BOOTCONFIG="armsom-w3-rk3588_defconfig"

View File

@ -1,5 +1,6 @@
# Allwinner Cortex-A55 octa core 2/4GB RAM SoC USB3 USB-C 2x GbE LCD
BOARD_NAME="Avaota A1"
BOARD_VENDOR="allwinner"
BOARDFAMILY="sun55iw3-syterkit"
BOARD_MAINTAINER="chainsx"
KERNEL_TARGET="legacy"

View File

@ -1,41 +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_MAINTAINER="FantasyGmm"
declare -g BOARD_VENDOR="ayntec"
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() {
@ -57,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
@ -86,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

@ -1,5 +1,6 @@
# Allwinner A20 dual core 1Gb RAM SoC 1xSATA GBE
BOARD_NAME="Banana Pi"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER="DylanHP janprunk"
BOOTCONFIG="Bananapi_defconfig"

View File

@ -1,5 +1,6 @@
# Amlogic A311D 4GB RAM eMMC GBE USB3
BOARD_NAME="Banana Pi CM4IO"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="meson-g12b"
BOARD_MAINTAINER="pyavitz"
BOOTCONFIG="bananapi-cm4-cm4io_defconfig"
@ -10,8 +11,8 @@ FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-g12b-bananapi-cm4-cm4io.dtb"
BOOTBRANCH_BOARD="tag:v2025.01"
BOOTPATCHDIR="v2025.01"
BOOTBRANCH_BOARD="tag:v2026.01"
BOOTPATCHDIR="v2026.01"
# CPUFREQ (/etc/default/cpufrequtils)
CPUMIN=1000000

View File

@ -1,8 +1,10 @@
# SpacemiT K1 octa core RISC-V SoC 2GB/4GB RAM 8GB/16GB eMMC 4x USB3 2x GbE
BOARD_NAME="BananaPi BPI-F3"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="spacemit"
BOARD_MAINTAINER="pyavitz"
KERNEL_TARGET="current,edge"
BOARD_VENDOR="spacemit"
KERNEL_TARGET="legacy,current,edge"
BOOT_FDT_FILE="spacemit/k1-bananapi-f3.dtb"
BOOTDELAY=1
SRC_EXTLINUX="yes"

View File

@ -1,5 +1,6 @@
# Allwinner A20 dual core 1Gb SoC GBE WiFi 1xSATA
BOARD_NAME="Banana Pi M1+"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER=""
BOOTCONFIG="bananapi_m1_plus_defconfig"

View File

@ -1,5 +1,6 @@
# A31s quad core 1Gb SoC Wifi
BOARD_NAME="Banana Pi M2"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun6i"
BOARD_MAINTAINER=""
BOOTCONFIG="Sinovoip_BPI_M2_defconfig"

View File

@ -1,5 +1,6 @@
# Allwinner H3 quad core 1Gb RAM SoC Wifi GBE
BOARD_NAME="Banana Pi M2+"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER="leggewie"
BOOTCONFIG="bananapi_m2_plus_h3_defconfig"

View File

@ -1,5 +1,6 @@
# Amlogic S905X3 quad core 2-4GB RAM SoC eMMC GBE USB3 SPI Wifi
BOARD_NAME="Banana Pi M2Pro"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="meson-sm1"
BOARD_MAINTAINER="igorpecovnik"
BOOTCONFIG="bananapi-m2-pro_defconfig"

View File

@ -1,5 +1,6 @@
# Amlogic A311D 4GB RAM eMMC 2xGBE USB3
BOARD_NAME="Banana Pi M2S"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="meson-g12b"
BOARD_MAINTAINER="jeanrhum pyavitz"
BOOTCONFIG="bananapi-m2s_defconfig"
@ -10,8 +11,8 @@ FULL_DESKTOP="yes"
SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-g12b-a311d-bananapi-m2s.dtb"
BOOTBRANCH_BOARD="tag:v2025.01"
BOOTPATCHDIR="v2025.01"
BOOTBRANCH_BOARD="tag:v2026.01"
BOOTPATCHDIR="v2026.01"
# CPUFREQ (/etc/default/cpufrequtils)
CPUMIN=1000000

View File

@ -1,5 +1,6 @@
# Allwinner R40 quad core 2Gb SoC Wifi eMMC
BOARD_NAME="Banana Pi M2 Ultra"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER=""
BOOTCONFIG="Bananapi_M2_Ultra_defconfig"

View File

@ -1,5 +1,6 @@
# Allwinner H2+ quad core 512MB SoC Wi-Fi/BT
BOARD_NAME="Banana Pi M2 Zero"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER="mhawkins-consultant"
BOOTCONFIG="bananapi_m2_zero_defconfig"

View File

@ -1,5 +1,6 @@
# Allwinner A83T octa core 2Gb SoC Wifi
BOARD_NAME="Banana Pi M3"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER="AaronNGray"
BOOTCONFIG="Sinovoip_BPI_M3_defconfig"

View File

@ -1,5 +1,6 @@
# Allwinner H618 quad core 2/4GB RAM 8GB eMMC SoC WiFi\Bt HDMI SPI USB-C
BOARD_NAME="BananaPi M4 Berry"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun50iw9-bpi"
BOARD_MAINTAINER="The-going"
BOOTCONFIG="bananapi_m4_berry_defconfig"

View File

@ -1,5 +1,6 @@
# Allwinner H618 quad core 1/2/4GB RAM SoC WiFi SPI USB-C
BOARD_NAME="BananaPi BPI-M4-Zero"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun50iw9-bpi"
BOARD_MAINTAINER="pyavitz"
BOOTCONFIG="bananapi_m4zero_defconfig"
@ -11,8 +12,8 @@ KERNEL_TARGET="current,edge"
KERNEL_TEST_TARGET="current"
MODULES_BLACKLIST="rtw88_8821c rtw88_8821cu"
FORCE_BOOTSCRIPT_UPDATE="yes"
BOOTBRANCH_BOARD="tag:v2025.07"
BOOTPATCHDIR="v2025.07"
BOOTBRANCH_BOARD="tag:v2026.01"
BOOTPATCHDIR="v2026.01"
PACKAGE_LIST_BOARD="rfkill bluetooth bluez bluez-tools"
function post_family_tweaks_bsp__bananapi_firmware() {

View File

@ -1,5 +1,6 @@
# Amlogic S905X3 quad core 2-4GB RAM SoC eMMC GBE USB3 SPI
BOARD_NAME="Banana Pi M5"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="meson-sm1"
BOARD_MAINTAINER="igorpecovnik"
BOOTCONFIG="bananapi-m5_defconfig"

View File

@ -1,6 +1,7 @@
# Rockchip RK3576 SoC octa core 8-64GB SoC 2*GBe eMMC USB3 NvME WIFI
source "${SRC}/config/boards/armsom-sige5.csc"
BOARD_NAME="Banana Pi M5 Pro"
BOARD_VENDOR="sinovoip"
BOARD_MAINTAINER="efectn"
BOOTCONFIG="bananapi-m5-pro-rk3576_defconfig"
BOOT_FDT_FILE="rockchip/rk3576-bananapi-m5-pro.dtb"

View File

@ -1,5 +1,6 @@
# Allwinner A64 quad core 2GB RAM SoC WiFi/BT eMMC GBE
BOARD_NAME="Banana Pi M64"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun50iw1"
BOARD_MAINTAINER="devdotnetorg"
BOOTCONFIG_DEFAULT="sun50iw1p1_config"

View File

@ -1,6 +1,7 @@
# Rockchip RK3588 octa core 8-32GB RAM SoC 2*2.5GBe eMMC USB3 NvME WIFI
source "${SRC}/config/boards/armsom-sige7.csc"
BOARD_NAME="Banana Pi M7"
BOARD_VENDOR="sinovoip"
BOARD_MAINTAINER="amazingfate"
BOOT_FDT_FILE="rockchip/rk3588-bananapi-m7.dtb"
# Those are included in armsom-sige7.csc, but this file is parsed directly

View File

@ -1,5 +1,6 @@
# Allwinner A20 dual core 1GB RAM SoC 1xSATA GBE Wifi
BOARD_NAME="Banana Pi Pro"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="sun7i"
BOARD_MAINTAINER=""
BOOTCONFIG="Bananapro_defconfig"

View File

@ -1,5 +1,6 @@
# Mediatek MT7623n quad core 2GB mPci 2xSATA 2xUSB3.0 5xGBE
BOARD_NAME="Banana Pi R2"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="mt7623"
BOARD_MAINTAINER=""
KERNEL_TARGET="current"

View File

@ -1,5 +1,6 @@
# Rockchip RK3568 quad core 2GB-4GB 5GBE eMMC SATA USB3 Mini PCIE M.2 key-e
BOARD_NAME="Banana Pi R2 Pro"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="rockchip64"
BOARD_MAINTAINER=""
BOOTCONFIG="bpi-r2-pro-rk3568_defconfig"

View File

@ -1,5 +1,6 @@
# Mediatek MT7988a quad core Cortex-A73 4/8GB RAM 8GB EMMC mPci USB3.0 4xGBE
BOARD_NAME="Banana Pi R4"
BOARD_VENDOR="sinovoip"
BOARDFAMILY="filogic"
BOARD_MAINTAINER=""
KERNEL_TARGET="current"

View File

@ -1,6 +1,7 @@
# BeagleBone AI-64 Texas Instruments TDA4VM dual core 4GB GBE USB3 OSPI DisplayPort HDMI
BOARD_NAME="BeagleBone AI-64"
BOARD_VENDOR="beagleboard"
BOARDFAMILY="k3"
BOARD_MAINTAINER="Grippy98"
BOOT_SOC="j721e"

View File

@ -1,6 +1,7 @@
# BeaglePlay Texas Instruments AM62 quad core 2GB DDR4 eMMC GBE SPE HDMI
BOARD_NAME="BeaglePlay"
BOARD_VENDOR="beagleboard"
BOARDFAMILY="k3"
BOARD_MAINTAINER="Grippy98"
BOOT_SOC="am62"

View File

@ -1,5 +1,6 @@
# RISC-V StarFive BeagleV
BOARD_NAME="BeagleV"
BOARD_VENDOR="beagleboard"
BOARDFAMILY="starfive"
BOARD_MAINTAINER=""
KERNEL_TARGET="edge"

View File

@ -1,6 +1,7 @@
# BeagleY-AI Texas Instruments AM67A quad core 4GB DDR4 USB3 4TOPS
BOARD_NAME="BeagleY-AI"
BOARD_VENDOR="beagleboard"
BOARDFAMILY="k3-beagle"
BOARD_MAINTAINER="Grippy98"
BOOT_SOC="j722s"

View File

@ -1,5 +1,6 @@
# Allwinner H3 quad core 1GB SoC WiFi eMMC
BOARD_NAME="Beelink X2"
BOARD_VENDOR="beelink"
BOARDFAMILY="sun8i"
BOARD_MAINTAINER=""
BOOTCONFIG="beelink_x2_defconfig"

View File

@ -1,5 +1,6 @@
# Amlogic S905L-B 1GB RAM 8GB eMMC microSD FE USB2 RTL8189FTV WiFi
BOARD_NAME="BesTV R3300-L"
BOARD_VENDOR="amlogic"
BOARDFAMILY="meson-gxl"
BOARD_MAINTAINER="retro98boy"
BOOTCONFIG="bestv-r3300-l_defconfig"
@ -10,8 +11,8 @@ SERIALCON="ttyAML0"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="amlogic/meson-gxl-s905x-bestv-r3300-l.dtb"
PACKAGE_LIST_BOARD="alsa-ucm-conf" # Contain ALSA UCM top-level configuration file
BOOTBRANCH_BOARD="tag:v2025.04"
BOOTPATCHDIR="v2025.04"
BOOTBRANCH_BOARD="tag:v2026.01"
BOOTPATCHDIR="v2026.01"
enable_extension "gxlimg"
enable_extension "amlogic-fip-blobs"

View File

@ -1,5 +1,6 @@
# Allwinner H616 quad core 512MB/1GB RAM SoC WiFi
BOARD_NAME="BigTreeTech CB1"
BOARD_VENDOR="bigtreetech"
BOARDFAMILY="sun50iw9"
BOARD_MAINTAINER="JohnTheCoolingFan"
BOOTCONFIG="bigtreetech_cb1_defconfig"

View File

@ -1,5 +1,6 @@
# Rockchip RK3566 quad core 2GB-8GB GBE eMMC NVMe USB3 WiFi
BOARD_NAME="BigTreeTech CB2"
BOARD_VENDOR="bigtreetech"
BOARDFAMILY="rockchip64"
BOARD_MAINTAINER="JohnTheCoolingFan"
BOOTCONFIG="bigtreetech-cb2-rk3566_defconfig"

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