Commit Graph

9454 Commits

Author SHA1 Message Date
Igor Pečovnik
c0ef5f0666
Improve CI test builds (#3327) 2021-12-07 20:13:15 +01:00
Igor Pečovnik
450043a212
Mitigate Samba NetBios timeouts (#3328) 2021-12-07 20:13:03 +01:00
Ricardo Pardini
da062debdd
[PR] multiple fixes for the eval + PIPESTATUS construct (#3280)
- try this on your bash shell:
  - `ONEVAR="testing" eval 'bash -c "echo value once $ONEVAR && false && echo value twice $ONEVAR"' '| grep value'  '| grep value' ; echo ${PIPESTATUS[*]}`
  - Notice how PIPESTATUS has only one element. and it is always true, although we failed explicitly with false in the middle of the bash.
  - That is because eval itself is considered a single command, no matter how many pipes you put in there, you'll get a single value, the return code of the LAST pipe.
  - Lets export the value of the pipe inside eval so we know outside what happened:
  - `ONEVAR="testing" eval 'bash -e -c "echo value once $ONEVAR && false && echo value twice $ONEVAR"' '| grep value'  '| grep value' ';EVALPIPE=(${PIPESTATUS[@]})' ; echo ${EVALPIPE[*]}`
- also: pass LC_ALL=C LANG=C to avoid locale warnings

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2021-12-07 20:10:47 +01:00
Igor Pečovnik
b054239120
Enable desktop packages creation after kernel is built (#3324) 2021-12-06 23:53:39 +01:00
Piotr Szczepanik
c2a1962013
Add SoC based image names (rk3566/rk3568) in rk35xx u-boot 2021-12-06 22:36:12 +01:00
Igor Pečovnik
9c730fb27b
Github actions - adding desktop package builder (#3323)
* Cleanup
* Adding desktop package builder
2021-12-06 21:03:48 +01:00
eiffel-fl
734c93a955
Add package needed to satisfy CONFIG_DEBUG_INFO_BTF. (#3299)
CONFIG_DEBUG_INFO_BTF relies on libelf-dev and pahole (provided by dwarves
package).
This commit add dwarves package both as hostdeps and to Dockerfile.
2021-12-06 15:57:07 +01:00
Igor Pecovnik
bddce2c432
Two small bug fixes
- disabling samba on desktop builds since it delays 1st login and throws out an error in case we have no network (laptop usage)
- disabling broken build target
2021-12-06 15:55:16 +01:00
Ricardo Pardini
a3db0f4397 flash-kernel: disable Armbian core's update_initramfs, it's already done
- correct mechanism, wrong/bad variable name, but should work.

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2021-12-06 12:50:36 +01:00
Ricardo Pardini
2d418d2561 amd64: fixes for REPOSITORY_INSTALL scenario, don't disable amd64 repo
- now we have proper amd64 repo published!, remove disable
- amd64 does not have dtb package anymore, don't try to install it from repo

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2021-12-06 12:50:21 +01:00
Ricardo Pardini
54349c2dcc bcm2711: allow building KERNEL_ONLY=yes even with unsupported RELEASE
- Check for compatibility is only relevant when building complete board or userspace, not kernel.
- this should allow CI to complete, finally

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2021-12-06 10:22:03 +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
Igor Pečovnik
2ab8795ae9
Github actions fixes (#3319) 2021-12-05 17:39:26 +01:00
Igor Pecovnik
2eae831889
Calculate patches changes only on first level since this fails when including subfolder. Bug in sort. Needs to be reworked once
Also cleanup few patches we don't need.
2021-12-05 16:53:08 +01:00
Igor Pecovnik
9daf120b21
Bugfix - build all - add another kernel build exception 2021-12-05 12:44:05 +01:00
Igor Pečovnik
261b91b0a8
Add box64 package from 3rd party repository (#3265)
* Add box64 package from 3rd party repository
2021-12-05 09:10:11 +01:00
Igor Pecovnik
0e86dc162e
Bugfix on hash making
- include subfolders
- compare .patch files only
2021-12-05 09:01:34 +01:00
Igor Pečovnik
d8285296ec
Bugfix - safer way of deleting headers (#3316) 2021-12-04 23:53:00 +01:00
Igor Pečovnik
2aa23f485e
A pack of CI fixes (#3315) 2021-12-04 23:42:10 +01:00
Igor Pečovnik
59aaac2469
Change default kernel config to enable CONFIG_MODULE_FORCE_UNLOAD (#3310) 2021-12-04 12:11:49 +01:00
Igor Pečovnik
3bf7fc9669
Bugfix - hash calculation depends on locale settings (#3312) 2021-12-04 12:11:07 +01:00
Vyacheslav
c8358d4151
JetHome: Update U-Boot to 2022.01-rc2. Clean u-boot patches. (#3264)
* JetHome: Fix governor, cosmetic fixes, update u-boot to 2022.01-rc3

* JetHome: Clean u-boot patches for 2022.01-rc3.
2021-12-03 20:50:36 +01:00
Julian Sikorski
aed2717909
Update odroidxu4-current to 5.4.163 (#3308) 2021-12-02 20:26:36 +01:00
Igor Pečovnik
d80839df75
Optimisations after changing sunxi / sunxi64 to the mainline (#3309) 2021-12-02 20:25:12 +01:00
Igor Pečovnik
43b4d75fb2
Several tiny improvements of GH actions (#3304) 2021-12-02 00:34:15 +01:00
Igor Pečovnik
42588b585a
Add composite actions to support cache build process (#3302) 2021-11-30 21:51:32 +01:00
Igor Pečovnik
dde00cf6cf
Add cache integrity checking - used internally when making cache (#3303) 2021-11-30 21:51:04 +01:00
Vyacheslav
39263b5e76
JetHome: fix thermal zones in JetHub D1 dts file (#3301) 2021-11-30 19:00:19 +01:00
Igor Pecovnik
9e61b3a762
Implementing workaround for correct AUFS sources selection
Closes https://github.com/armbian/build/issues/3297
2021-11-29 11:59:13 +01:00
The-going
bfe0300700
Fix warning: "IEEE80211_MAX_AMPDU_BUF" redefined if rtl8723cs module build (#3286)
All warning:
debug> grep warning: compilation.log | wc -l
152
A large number of garbage warnings:
debug> grep warning: compilation.log | grep IEEE80211_MAX_AMPDU_BUF | wc -l
103

After v4.19 linux kernel, this definition is not required.

Check:
list="$(find drivers/net/wireless/realtek/ -type f)"
for f in $list;do awk -v f=$f '/IEEE80211_MAX_AMPDU_BUF/{print f}' $f;done
drivers/net/wireless/realtek/rtlwifi/base.c
drivers/net/wireless/realtek/rtl8723cs/include/wifi.h

Only one drivers/net/wireless/realtek/rtlwifi/base.c file uses
the definition IEEE80211_MAX_AMPDU_BUF_HT.
or
See `git log -p b8042b3da925f390c1482b -3` command in
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
2021-11-28 21:32:07 +01:00
The-going
ada47377b5
Patches megous current branch to v5.10.82 (#3294)
* Kernel switch tag: v5.10.82
* Rework series megouse for v5.10.82
* Switch new packaging for kernel 5.10 and more
2021-11-28 21:31:24 +01:00
The-going
33c413c679
Patches megous 5.15.5 (#3295)
* Rework patches for sunxi 5.15.4

* Rework patches sunxi for 5.15.5

* Kernel switch tag=v5.15.5 for sunxi EDGE

* Temporarily disabled, requires rework.

drivers/clk/sunxi-ng/sun8i-de33.c: In function ‘sunxi_de33_clk_probe’:
drivers/clk/sunxi-ng/sun8i-de33.c:155:8:
 error: implicit declaration of function ‘sunxi_ccu_probe’;
 did you mean ‘of_sunxi_ccu_probe’? [-Werror=implicit-function-declarati>
  ret = sunxi_ccu_probe(pdev->dev.of_node, reg, ccu_desc);
        ^~~~~~~~~~~~~~~
        of_sunxi_ccu_probe
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:277:
         drivers/clk/sunxi-ng/sun8i-de33.o] Error 1
make[2]: *** [scripts/Makefile.build:540: drivers/clk/sunxi-ng] Error 2

* Correct the comment.
2021-11-28 16:48:47 +01:00
The-going
7964a578f5
Patches megous 5.10 (#3293)
* Add a series of patches for sunxi 5.10

Patches from the repository
https://github.com/megous/linux branches of orange-pi-5.10

* Patches adapted to the kernel version v5.10.81

* Remove unnecessary patches 5.10.19-5.10.75

* Kernel switch tag=v5.10.81 for the current sunxi

* Adjust broken patches, build tested on sunxi and sunxi64

* Remove patch added by mistake

Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
2021-11-27 00:48:30 +01:00
Igor Pecovnik
f0541c3b4b
Add internal switch which allows to skip building certain kernel families even conditions are met.
This helps when we have no time to work on certain branch patches right now, while all others builds without a problem.

We create a file this way:
c0c6fd3a02
2021-11-25 14:39:15 +01:00
Igor Pecovnik
a7da24a2f4
Revert "[PR] multiple fixes for the eval + PIPESTATUS construct (#3280)"
This reverts commit efeb4d19e2.
2021-11-25 12:11:53 +01:00
Heisath
d861f37a9f Fix mvebu patches once more 2021-11-25 09:05:55 +01:00
Igor Pecovnik
38455f7f12
After changing sunxi to the mainline sources we manage to produce a bug
We need to handle an exception
https://github.com/armbian/build/pull/3272
2021-11-24 19:25:24 +01:00
Paolo Sabatino
b4749af062
rk332x: fix esp8089 module option 2021-11-24 17:28:03 +00:00
Oleg
9204ef6f81
fix dts firefly-rk3399 for edge (#3287) 2021-11-23 23:10:17 +01:00
Igor Pecovnik
b45c239654
Merge 2021-11-23 23:08:27 +01:00
Igor Pecovnik
cf2b423b5c
Disabling two broken patches that prevent kernel recompilation
@heisath
2021-11-23 23:07:37 +01:00
Igor Pečovnik
a55122a1d2
Another pack of updates for Github actions (#3288) 2021-11-23 22:37:06 +01:00
Paolo Sabatino
e9fe8fe177
rockchip64: remove mainlined patches/hunks for current 5.10 kernel 2021-11-23 14:51:15 +00:00
Igor Pecovnik
956e1acabb
Move Docker generation stop hook further into the code to include Toolchains 2021-11-22 21:34:01 +01:00
Igor Pečovnik
9b36028128
Add action to build qemu image inside CI created Docker image (#3285)
* Add action to build qemu image inside CI created Docker image
* Disable automatic executing until its not tested
2021-11-22 14:26:32 +01:00
Igor Pečovnik
154a81b2c8
Adding sudo package to the Docker image creation configuration (#3284)
* Adding sudo package to the Docker image creation configuration
* Add more missing dependencies
2021-11-22 14:24:16 +01:00
Ricardo Pardini
4a0da762d5
[PR] dev: enable tracing of functions return trap (#3281)
- via environment variable ARMBIAN_ENABLE_CALL_TRACING=yes

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2021-11-22 11:06:50 +01:00
Ricardo Pardini
efeb4d19e2
[PR] multiple fixes for the eval + PIPESTATUS construct (#3280)
- try this on your bash shell:
  - `ONEVAR="testing" eval 'bash -c "echo value once $ONEVAR && false && echo value twice $ONEVAR"' '| grep value'  '| grep value' ; echo ${PIPESTATUS[*]}`
  - Notice how PIPESTATUS has only one element. and it is always true, although we failed explicitly with false in the middle of the bash.
  - That is because eval itself is considered a single command, no matter how many pipes you put in there, you'll get a single value, the return code of the LAST pipe.
  - Lets export the value of the pipe inside eval so we know outside what happened:
  - `ONEVAR="testing" eval 'bash -e -c "echo value once $ONEVAR && false && echo value twice $ONEVAR"' '| grep value'  '| grep value' ';EVALPIPE=(${PIPESTATUS[@]})' ; echo ${EVALPIPE[*]}`
- also: pass LC_ALL=C LANG=C to avoid locale warnings

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2021-11-22 11:04:38 +01:00
Ricardo Pardini
c33211bee6
[PR] jammy/bullseye/impish fixes for qemu-x86_64-static (#3279)
- really gotta refactor this.

Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
2021-11-22 10:59:17 +01:00
Igor Pečovnik
12d9198ed3
Push EDGE build targets to Ubuntu Jammy (#3283) 2021-11-22 10:16:08 +01:00