Commit Graph

245 Commits

Author SHA1 Message Date
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
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
Jianfeng Liu
e159691349 extension: grub: deploy qemu binary when doing cross build 2026-01-22 13:19:24 +01:00
schwar3kat
968464532c Add board-level extension to mask Wayland desktop sessions 2026-01-21 19:25:26 +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
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
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
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
tabris
8d0f889bf2 documentation extensions - fix link for documenting opt-out functionality 2026-01-08 12:07:56 +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
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
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
Igor Velkov
5de9913cec Extension adds watchdog package and enable watchdog device (/dev/wachdog)
support in config
2025-12-11 04:06:24 +08:00
Rolf Leggewie
42851ab469 extensions: add uboot-btrfs extension to add btrfs support in u-boot 2025-12-01 04:37:20 +08:00
retro98boy
dbc7b23b6d extensions: gxlimg: Update repo URL 2025-11-16 20:29:04 +01:00
tabris
28b459d8a7 Related to armbian/documentation#842, update
extensions/gen-sample-extension-docs.sh to reference the opt-out docs
for hooks
2025-11-15 20:44:21 +01:00
Mecid
ebc129fa52
UFS: Fix CI behavior (#8924)
Commented out the declaration of DOCKER_ARMBIAN_BASE_IMAGE as it needs to be set manually outside.
2025-11-12 23:23:46 +01:00
Mecid
2e4e238f62
UFS: Fix ci config generation (#8923) 2025-11-12 21:47:34 +01:00
Austin Lane
4c68c97ce7 LowMem: Slim down initramfs and set /run size 2025-11-10 11:47:40 +01:00
Jonas Wood
9cc6e3ab15 ti: extensions: ti-debpkgs: Switch pkg install from rootfs to image
This switches TI deb pkgs to be added to the image package list,
instead of being cached in the rootfs.

Signed-off-by: Jonas Wood <jw@ti.com>
2025-11-06 08:16:59 +01:00
Austin Lane
896afe2f91 LowMem extension (for boards with < 256MB RAM) 2025-11-04 22:38:39 +01:00
Ricardo Pardini
1d9338a951
extensions/image-output-utm: fix serial console ttyAMA0 for arm64 (#8851)
* extensions/image-output-utm: fix serial console ttyAMA0 for arm64
2025-11-03 18:14:00 +01:00
Alex Simkin
1653fdacec apply cryptroot fixes to grub-riscv64 too re. #6280 2025-11-02 20:15:19 +01:00
Alex Simkin
b47445c990 add CRYPTROOT_AUTOUNLOCK option and fix CRYPTROOT for uefi builds
fixes #6280
2025-11-02 20:15:19 +01:00
Ricardo Pardini
a8f10eee53 grub: don't set CLOUD_INIT_CONFIG_LOCATION
- that was for my never-upstreamed cloud-init extension
- "/boot/efi" can't be used for cloud seed anymore since trixe
  - as it's not going to be mounted by the time cloud-init runs
2025-11-02 18:12:08 +01:00
retro98boy
6fcbc04929 extensions: gxlimg: Add new function to repack FIP with u-boot.bin 2025-10-23 22:31:23 +02:00
EvilOlaf
3db41e086b get rid of vendor uboot, adjust aic8800 2025-10-22 11:08:20 +02:00
HackingGate
33f04bcd57 extensions: radxa-aic8800: allow 6.17; skip DKMS only on >= 6.18
The upstream driver in radxa-pkg/aic8800 builds successfully against Linux 6.17. Relax the version guard so we only skip installing the aic8800 DKMS package on kernels >= 6.18.
2025-10-08 22:43:49 +02:00
Mecid Urganci
5ddf398fbb UFS Extension: Add DOCKER_ARMBIAN_BASE_IMAGE 2025-09-25 10:18:34 +08:00
Jianfeng Liu
16a2a377ab extensions: grub: increase UEFISIZE to 260M for UFS 4K sector size 2025-09-25 10:18:34 +08:00
retro98boy
b2e25712e0 extensions: add gxlimg and amlogic-fip-blobs 2025-09-15 21:10:38 +02:00
Mecid
af34815f66 Apply coderabbit suggestion: Guard against errexit on missing sfdisk
Use a presence check before version parsing.
2025-08-30 01:05:04 +08:00
Mecid
6e342b7e2b Extension: UFS 2025-08-30 01:05:04 +08:00
leggewie
bc79acbdee extensions: standardize apt-get option placement & separate package arguments in APA
make coderabbitai happy

Move the --[no-]install-recommends flag after the install subcommand and pass each package as its own argument to avoid them being interpreted as a single package name.

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-16 17:44:40 +02:00
Rolf Leggewie
2e9c5a954f extensions: fix minor spelling mistake in APA 2025-08-16 17:44:40 +02:00
Rolf Leggewie
5d88567b52 extensions: remove *.inactive sources snippet from APA 2025-08-16 17:44:40 +02:00
Rolf Leggewie
e3dfa51165 extensions: make handling of INSTALL_RECOMMENDS in APA more robust 2025-08-16 17:44:40 +02:00
Rolf Leggewie
a65a5e896d extensions: add missing "install" instruction to APA extension 2025-08-11 18:25:21 +02:00
Patrick Yavitz
09f263f751 AIC8800 Extension: Increase support to Linux 6.16.y
fc7cbdd179

Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2025-08-05 07:39:19 -04:00
Jianfeng Liu
947b035fc5 add yt6801 dkms extension 2025-08-04 17:34:24 +08:00
Jianfeng Liu
fb363e8829 add initial loong64 support 2025-08-04 17:34:24 +08:00
Vladimir Panov
0d11f67c23 Don't attempt to copy id_ecdsa if it is not needed. 2025-07-31 11:08:31 +08:00
Andrei Aldea
48e0eeb50b extensions: Add TI's repo and install specified packages in k3-*
Texas Instruments maintains a custom apt repository [0] that contains:
    * tools like k3conf, which run on K3 devices
    * TI's versions of upstream packages (such as mesa)
    * out-of-tree drivers and firmware for graphics, wifi etc

Therefore, add TI's custom repository as the highest priority repository
in the filesystem. Doing this ensures that if apt finds a version of a
package that exists in both upstream Debian and the TI repository, it
picks the latter.

Additionally, introduce K3_PACKAGES variable to store a list of packages
that should be installed by-default in a K3 image. Initialize it to hold
TI's CC33xx packages.

Also set EXTRAWIFI to "no" in `current` image.

[0] https://github.com/TexasInstruments/ti-debpkgs

Co-authored-by: Suhaas Joshi <s-joshi@ti.com>
Signed-off-by: Suhaas Joshi <s-joshi@ti.com>
2025-06-26 17:04:11 +08:00
Rolf Leggewie
affc5ef302 extensions: export APA_IS_ACTIVE marker for the current build 2025-06-23 20:36:23 +02:00
Werner
15407330c6
Preparation for http proxy caching (#8281)
* always use http for apt repos

* pass possible proxy arguments to docker

* populate lower-case env variables with upper-case ones if not set otherwise
2025-06-13 10:31:24 +02:00