Commit Graph

43 Commits

Author SHA1 Message Date
Igor Pecovnik
dc558d7c01 UEFI kernels, legacy = 6.6, current & edge 6.13 2025-01-19 20:21:52 +01:00
Ricardo Pardini
716844e04a uefi-* / edge: bump to 6.12; rework arm64 Phytium stmmac acpi patches
- recover lost patches in 6.9/6.10 cycle
2024-10-13 19:16:20 +02:00
Igor Pecovnik
759274b7a1 UEFI x86 and arm64: Bump EDGE kernels to 6.10.y 2024-07-27 12:40:25 +02:00
Igor
07047176cc Bump UEFI edge kernels with kernel config rewrite (#6666)
* Bump UEFI edge kernels with kernel config rewrite
* Update wireless drivers that breaks compilation
2024-06-01 22:35:46 +02:00
ColorfulRhino
55d9513c24 uefi: edge kernel: Bump from 6.7 to 6.8
- Kernel configs updated via ./compile.sh rewrite-kernel-config
2024-03-17 18:57:28 +00:00
David Andreoletti
22df643222 uefi-*: customizable SERIALCON per architecture 2024-03-06 01:10:32 +01:00
Gunjan Gupta
a57329d611 remove remnants of SKIP_BOOTSPLASH 2024-01-17 04:13:40 +05:30
Ricardo Pardini
22848254e5 uefi: don't spell out KERNELBRANCH anymore, KERNEL_MAJOR_MINOR is sufficient now 2024-01-07 18:58:36 +01:00
Ricardo Pardini
c434c3613c core: semantic change, KERNELSOURCE must be explicitly 'none' to avoid kernel compilation (not unset) 2024-01-07 18:58:36 +01:00
Ricardo Pardini
9cb365aad2 uefi: all: edge: bump to 6.7-rc7; arm64: fix Phytium stmmac patch (by Igor)
Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
2023-12-27 13:29:37 +01:00
Ricardo Pardini
eb37e17d26 uefi: all: rollover edge 6.6.y to current, taking over 6.1.y 2023-12-27 13:29:37 +01:00
Ricardo Pardini
5a01fb8fae uefi: all: rollover current 6.1.y to legacy, taking over 5.15.y 2023-12-27 13:29:37 +01:00
Ricardo Pardini
ef995dafc2 uefi: common: stop using symlinks, instead point directly to KERNEL_MAJOR_MINOR
- uefi: common: drop kernel symlinks
- remove duplicate decls
- simplify
- some comments
2023-12-27 13:29:37 +01:00
Ricardo Pardini
0488392964 meson64 / rockchip64 / uefi / rk3568-odroid: edge 6.6: bump to 6.6.y; rebase patches to v6.6(.0) 2023-10-31 08:14:01 +01:00
Ricardo Pardini
98c0ab47f5 meson64 / rockchip64 / uefi / rk3568-odroid: edge 6.6: bump to 6.6-rc7; rebase/rewrite patches for 6.6-rc7 2023-10-26 14:30:48 +02:00
Ricardo Pardini
b89858d4d2 uefi edge 6.6: bump to 6.6-rc6; rebase patches
- also bump `qemu-uboot` variant's uboot from 23.10-rc4 to final 23.10
2023-10-21 13:59:32 +02:00
Ricardo Pardini
55feeb39c5 uefi-arm64/edge: bump to 6.6-rc4 (#5777)
* `uefi-arm64`/`edge`: bump to 6.6-rc4 - initial copy from 6.5

* `uefi-arm64`/`edge` 6.6.y: bump to 6.6-rc4 - fix phytium stmmac acpi patch for 6.6

* `uefi-arm64`/`edge` 6.6.y: futher fix for phytium stmmac acpi glue
2023-10-03 13:53:22 +02:00
Ricardo Pardini
e55dd491c4 qemu-uboot-{x86,arm64} fixes + bump to u-boot 23.10-rc4 + rework x86 patches 2023-09-29 14:27:09 +02:00
Ricardo Pardini
f1b41bb771 uefi-arm64/edge: bump to 6.5.y; rebase all patches vs v6.5(.0); fix Phytium's stmmac patch
- hammer patch `driver-phytium-stmmac-acpi.patch`
  - use `.remove_new` due to "net: stmmac: Make stmmac_pltfr_remove() return void"
2023-09-02 14:47:33 +02:00
Igor Pecovnik
89a6750d78 Bump UEFI edge to 6.4.y 2023-07-11 11:15:00 +02:00
Ricardo Pardini
64f7ff599a uefi/edge: bump to 6.3 2023-04-28 21:32:52 +02:00
Ricardo Pardini
d9f2ec3255 qemu-uboot-arm64/qemu-uboot-x86: split more x86/arm64 differences, add some docs, bump to u-boot 23.04 +update-patches; add arm64 bootscript 2023-04-28 21:32:52 +02:00
Ricardo Pardini
62f5fe1596 config: fix: replace undue export statements with declare -g; shellfmt 2023-03-31 09:37:37 +02:00
Igor Pečovnik
b7b8eb7b72 Add / modify (c) in bash scripts (#4922)
* Add / modify (c) in bash scripts

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

* Add (c) to the source config files

---------

Signed-off-by: Igor <igor@armbian.com>
2023-03-09 18:30:40 +01:00
Igor Pečovnik
ad827fe0a5 Move UEFI legacy to 5.15.y, current to 6.1.y and edge to 6.2.y (#4896) 2023-03-05 17:02:52 +01:00
Ricardo Pardini
68e20a4bf4 qemu-uboot-xxx: fix missed rootfs cache due to pkg removals 2023-02-18 07:46:41 -03:00
Ricardo Pardini
6ceb772a7a v6.2-rc7: bump edge to v6.2-rc7 for UEFI / meson64 / rk3568-odroid / rockchip-rk3588 2023-02-18 07:46:29 -03:00
Ricardo Pardini
353bf93bb5 armbian-next: uefi-common: declare -g, not export 2023-02-18 07:41:58 -03:00
Ricardo Pardini
4a9529dd34 armbian-next: qemu-uboot-arm64 and qemu-uboot-x86 new boards
- sharing most UEFI code, will replace the `virtual` one soon
- x86: patch uboot defconfig to use the `q35` machine type, not `i440fx`
  - separate x86 bootscript, due to non-uInitrd-ness of it
  - hack ramdisk load address both in u-boot source and bootscript
  - use 32-bit u-boot, not 64-bit
- grub: introduce `UEFI_GRUB=skip`, does not deploy GRUB (but does the kernel packages, etc)
- auto-enable qcow2 output for these
- works with both distro's and Armbian's kernels
2023-02-18 07:40:33 -03:00
Ricardo Pardini
66c81e96db armbian-next: sources and sources/family armbian-next changes - MEGASQUASH - squashed changes from c9cf3fc241cfb4c872f4aef7bbc41d5854db7ea3 to 6809de3d6063cb041205a8318e19da6a4dee68c9 ref extensions_08_10_2022_pre_v30 2023-02-18 07:38:42 -03:00
Ricardo Pardini
fc19046930 uefi: bump kernel to 6.1.y; remove dangling symlinks (#4555) 2022-12-12 19:59:06 +01:00
Igor Pečovnik
3e701a857a Add initial RiscV support (#4387)
* Add initial RISCV support

* Add UEFI edge and current kernel configs

* Cleanup and adjust packages

* Those files were in wrong path

* Fix locations

* Ubuntu images built

* Remove Debian support as its too fragile

* Remove Pinta as it doesn't work under riscv

* Limitation is only for building images

* Remove obsolete switch

* Cleanup major arch config files

* Support for Docker building
2022-11-06 20:33:11 +01:00
Igor Pečovnik
5a82aea458 Bump UEFI edge kernels to 6.0.y (#4340) 2022-10-25 20:38:44 +02:00
Ricardo Pardini
5e17c4f533 run shellfmt on all of sources/families 2022-10-08 14:40:37 +02:00
Igor Pečovnik
9006c54f70 GRUB optimisations (#4213)
* Add wallpaper to grup, set fixed screen size, enable hidpi mode on lightdm

* Enable graphics terminal on UEFI x86, ARM64 can't test

* Missing folder

* Enable `Plymouth`

* Add proper HiDpi support and enable intel graphics auto probing

Tested on Intel and Nvidia, both works OOB. Plymouth works as expected, no text logs on screen, if OEM vendor logo is present, it picks it up auto, otherwise shows armbian (chip) logo

Co-authored-by: hzy <hzyitc@outlook.com>
2022-09-23 09:35:07 +02:00
Ricardo Pardini
43b302eff9 uefi-(arm64|x86)-edge/5.19: bump to 5.19.y (#4046)
- uefi-arm64-edge/5.19: add patch for ACPI enablement of PHYT0004 onboard network card
  - reworked 5.10 version of patch to 5.19, trivial datatype change
  - sent by Dragonbox/Pythium person via @lanefu
- uefi-(arm64|x86)-edge/5.19: split patch dir from x86, otherwise identical
2022-08-04 21:49:10 +02:00
Igor Pečovnik
8ba7b7e214 Switching the rest to 5.18.y (#3860)
* Update kernel configs

* Switch sunxi edge to 5.18.y

* Move sunxi to 5.18.y and re-enable AUFS

* Change version - temporally to make a build from here

* Update config

* 88xx was fixed in the mean time.

* Put version back

* Fix sunxi legacy, disable aufs on 5.10.y since its broken

* Upstream changed in the mean time

* Add a patch to enable 8821cu compilation at 5.18

https://github.com/armbian/build/pull/3814

* Re-enable CONFIG_RTL8822BU in edge

* Update CONFIG_RTL8XXXU

* Bump imx6

* Bump uefi kernels to 5.18.y

* Bump mvebu64 and switch odroid xu4 to 5.18
2022-06-07 07:49:08 +02:00
Igor Pečovnik
ac35415e4e Detach kernels from tag to branches (#3843) 2022-05-29 17:18:32 +02:00
Igor Pečovnik
2b03a9a646 Upgrade UEFI EDGE kernels to 5.17.y (#3680) 2022-04-16 09:11:54 +02:00
Igor Pečovnik
ed589b248a Move away from fixed versions (#3518) 2022-03-01 15:10:04 +01:00
Oleg
e894bf25d3 Pin kernel branches to versions rather then branches (#3500)
* fix source media

* Update versions

* Fix other kernels as well

* More fixes

Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
2022-02-26 15:05:00 +01:00
Igor Pečovnik
cfa4188d4e Bump UEFI current & edge kernels to 5.15.y / 5.16.y (#3491) 2022-02-14 23:34:40 +01:00
Ricardo Pardini
90e0fe0ba2 extensions framework + UEFI aarch64/x86 + rpi4b + core changes/fixes (#3300)
* extensions framework (née "fragments")

- this should actually change nothing at this point, just add capabilities
- the framework is implemented in lib/extensions.sh
- the "if function x exists then call x" replaced with call_extension_method()
  - +inline documentation
  - +compatibility names

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* extensions framework; meta-extensions: auto-docs and sample extension gen

- 2 extensions dealing with extensibility itself
  - detect-unused-extensions: shows which extensions are enabled, but never called.
  - gen-sample-extension-docs: generates a sample empty extension & Markdown documentation for extensions

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* new extension methods and features via config variables in core Armbian

- `SKIP_EXTERNAL_TOOLCHAINS=yes` - does not download or use any linaro toolchains, only build host-installed ones
- `SKIP_BOOTSPLASH=yes` - does not patch kernel for splash file
- `EXTRA_BSP_NAME=xyz` - allows for BSP variants, useful for when extensions modify the BSP
- `EXTRA_ROOTFS_MIB_SIZE=x` - add x mib's to rootfs size, for use with very small images
- `KERNEL_EXTRA_TARGETS` - what extra targets to make kernel for, default to "modules dtbs"
- `BOOTCONFIG=none` - does not build nor install u-boot; also doesn't handle bootscripts et al
- `unset KERNELSOURCE` - does not build nor install kernel, nor build initrd, nor build nor install firmware
- `ARMHF_ARCH=skip` - does not add armhf to apt/dpkg, thus pure arm64
- `SKIP_ARMBIAN_REPO=yes` - results in armbian.list.disabled in the final image
- define `APT_EXTRA_DIST_PARAMS` with apt-cacher-ng options and use it for `PACKAGE_LIST_INSTALL/REMOVE` et al
- initial support for targeting x86/amd64 UEFI and BIOS
    - some do's/don'ts for x86/amd64, like a different `UBUNTU_MIRROR` default
    - GPT/EFI(ESP) partitions (fat, `UEFISIZE=256` to enable, mount `UEFI_MOUNT_POINT=/boot/efi`, first on disk but ends
      up at `$uefipart`=15)
    - GPT/BIOS partitions (fat, `BIOSSIZE=1` to enable, second on disk but ends up at partition 14)
    - `UEFI_FS_LABEL="armbiefi"` - to set the FAT label for the EFI partition, visible in Win/Mac
    - hard-requires gdisk package host-side
- add add_host_dependencies() extension method; fill `EXTRA_BUILD_DEPS="pkg pkg2"` to install to host before toolchains
  download
- add pre_prepare_partitions() extension method, for custom partition size calculations
- add create_partition_table() extension method, used to do full-custom partitioning if `USE_HOOK_FOR_PARTITION=yes`
- add post_create_partitions() extension method, mostly for easy debugging
- add post_write_sdcard() extension method, where you can also set `SKIP_VERIFY=yes` to skip sdcard verification
- add post_install_kernel_debs() extension method.
- multiple fixes to bsp to avoid spurious errors when files are not where it expects
- v4: detect `update-initramfs` failure and abort build with useful message if it does
- v4: show useful stacktrace in `exit_with_error`
  - if `ERROR_DEBUG_SHELL=yes`, drop into a shell before unmounting/deleting everything, so we can inspect what went wrong
- v4: display a message before `apt-get remove PACKAGE_LIST_BOARD_REMOVE` packages, so any errors while removing are easy to understand
- v4: preserve kernel .config's dates when copying

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* extensions framework; refactor tool fetching/building into extensions

- a few examples of core refactoring using extensions
- sunxi-tools extension, enabled by 2 different sunxi family includes ("reuse" example)
- marvel-tools extension, enabled by 2 different mvebu family includes
- rkbin-tools extension, enabled by rockship64_common family include
- amlogic-fip/c2-blobs stuff refactored directly into meson64_common.inc ("single-use" example)
- removed the 'testings' fetch_from_repo completely since not used anywhere.

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* .wip's for UEFI arm64 and UEFI/BIOS x86 via new GRUB extension

- v3: added `growroot`-awareness to `armbian-resize-filesystem`
    - the partition-growing part of `armbian-resize-filesystem` does not deal correctly with the UEFI layout
    - `growroot` is installed on UEFI images by default, that handles growing partition during initramfs
    - now `armbian-resize-filesystem` handles `resize2fs` only, and works.
- v4: reworked UEFI board/family/include structure:
    - use Distro's `linux-generic` kernel only for `current`
    - `edge` now builds it's own pure-mainline `5.15.y` kernel, for both x86 and arm64
        - `.config` taken from Ubuntu, probably needs tuning for EXTRAWIFI=yes et al
- v4: introduce `SKIP_KERNEL_SYMLINK=yes`, tested in `builddeb`
    - to avoid symlinking kernel; u-boot likes it, but grub and flash-kernel hates it
- v5: many fixes
- v7: more small fixes.

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* .wip for the RaspberryPi 4B via new flash-kernel extension

- this does not build it's own kernel "yet", but uses default linux-raspi kernel from Ubuntu
- flash-kernel is not really a bootloader
    - it just prepares kernel et al a FAT partition for booting by the RPi4b bootloader
    - flash-kernel is standard Debian package, but has only been tested on Ubuntu releases
- it is really only known-working since Hirsute release.
  - Debian's rpi kernel is armhf only, so out of scope here, at least until we add source-built kernels.
- v3: fixed focal rootfs build. untested.
- v3: better variable names, preparing for source-built kernel.
- v5: new edge build with pure mainline kernel.
- v6: many fixes and some hacks for packaging and layout, also firmware (using Ubuntu's)

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* Added first patch to edge x86 related to wifi drivers

* extensions: leave hostapd alone; remove hackish ext; block reentrancy

- package-list-utils does not belong in this PR
- grub or bcm2711 is not the place to remove hostapd
- block recursive enable_extension() calls, for now.

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* gen-sample-extension-docs: fix: avoid counter in generated sample

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* extensions: dependencies: enable_extension() in extensions with a stack

- and better stacktraces, I hope

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* Remove code from package list since we don't have it in repository
Adjust kernel config to disable driver that needs further polishing.

* Allow amd64 to build the same desktops as aarch64. We only have this limit for armhf, where some desktops don't work

* amd64: allow building amd64 on aarch64 with system toolchain

- conditionally add gcc-x86-64-linux-gnu to hostdeps

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* add libelf-dev directly to hostdeps (and Dockerfile), remove extension

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* packaging: remove SKIP_KERNEL_SYMLINK hack, fix the root cause

- which was the missing $image_name for non-arm64 & non-arm, so: x86 for example

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* grub: really obliterate u-boot stuff from BSP

- for now. soon we'll refactor u-boot so not have to do this

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* flash-kernel: really obliterate u-boot stuff from BSP

- for now. soon we'll refactor u-boot so not have to do this

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* extensions: add host_dependencies_ready() hook

- this passes FINAL_HOST_DEPS containing all hostdeps for the run after they're installed

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* Add verification functions for correct selection.

* If UEFI Skip symlink creation

* Do not create dtb package for amd64

* Skip scripts folder cleaning if build process native.

Skip creating  postinst prerm scripts  for headers.

* Skip applying headers-debian-byteshift.patch if build native

* Fix architecture syntax as x86_64

* Revert "amd64: allow building amd64 on aarch64 with system toolchain"

This reverts commit 0c5ee20bb1.

* Compare architectures before starting compilation.



Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>

* extensions: cleanups after fixes by the-Going

- packaging:
  - there is _no need_ anymore for the symlink hack, CONFIG_EFI or no. But check is great, see below
  - it's not `amd64` that has no DTB's, it's all UEFI, thus: `is_enabled CONFIG_EFI`, thanks!
- Explicitly disallow "reverse cross compile" in amd64.conf.
- whitespace-only-deletions: revert. we shall shellfmt the whole thing one day, but not today.
- fix a few syntax warnings in newly introduced code (floating `$ARCH` vs `"${ARCH}`) - blame shellcheck

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* packaging: fix: turns out a lot of boards have CONFIG_EFI=y, can't use that for dtb/no-dtb decision.

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* grub: remove debug

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* firmware: allow installing `armbian-firmware-full`; make it really full

- can now use `BOARD_FIRMWARE_INSTALL="-full"` to install full firmware for the board. enable for UEFI.
- don't rely on KERNELSOURCE for firmware-related decisions. introduce `INSTALL_ARMBIAN_FIRMWARE` which defaults to `yes`
- rpi4b/flash-kernel: disable Armbian firmware; we need linux-firmware-raspi2, which conflicts.

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* extensions: log to /${LOG_SUBPATH}/ instead of fixed /debug/

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* extensions: introduce cleanup_extension_manager() called by build-all-ng's unset_all()

- to reset/unset everything done by the the initializer, so build can run again

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* extensions: remove 'global' logging, for use with build_all_ng

- enable_extensions() will have to live on without logging to file. it's just too early.
- now init EXTENSION_MANAGER_TMP_DIR in initialize_extension_manager()
- now init EXTENSION_MANAGER_LOG_FILE in initialize_extension_manager()

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* extensions: build-all-ng.sh bugfix due to extension's debug to stdout

- extensions (among other things) can produce output to stdout when activated
- fix: check_hash() produced "idential" (sic, now changed to IDENTICAL) to stdout as a trigger
- debugging output got mixed with "idential", rendering hash cache void for families that used extensions
  - eg: sunxi, others
- fix is to send stdout to the bitbucket when sourcing the board & arch config files
- proper fix would be stop using stdout in this case and use return code for check_hash()
  - one day soon

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>

* Add CI build targets

Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
Co-authored-by: The-going <48602507+The-going@users.noreply.github.com>
2021-12-06 09:49:49 +01:00