- 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>
* Add new function apply_patch_series
* Apply a series of patches if a series.conf file exists
* Add all megous orange-pi-5.15 branch patches as series
* Add an Exception for version 5.15 for sanxi
* Adjust the switch for sunxi
* Fix megous patches series for v5.15.3
* Switch version to 5.15.3 for sunxi
* Check the exception for 5.15 sunxi
* Allocate repository cleanup to a separate function.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Add a waiter function to serve a shallow local git repository.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Configuration shallow repository in sunxi64_common.inc file
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Configuration shallow repository in sunxi_common.inc file
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* An example of using the function of creating a shallow local repository.
This example is a very bad crutch.
It is necessary to come up with another option for permanent use.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Fix variable KERNELSOURCENAME as 'name=megous' for sunxi32
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Required variables cannot be empty
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Print an action message.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Store changelog for upstream changes in the cache/hash/
* Cleanup
* Calculate urls
* Use URL
Don't merge since it doesn't work properly yet
* Check if OLDHASHTARGET commit exists otherwise use oldest
* Fix log updating
* Improve log format, add better support for sunxi
* introduce DEB_COMPRESS for dpkg-deb+kernel's KDEB_COMPRESS
- Avoids zstd which is now default in Ubuntu Impish, but can't be read by Debian dpkg
- Allows for xz, gzip, or none; defaults to xz; use gzip for faster, and none for much faster.
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
* use KDEB_COMPRESS in packages/armbian/builddep for 5.12+ kernels too
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
- Escape $TERM, this is meant to be resolved at runtime and not in armbian/build's context
- This was very hard to track down, if building manually $TERM is actually valid (builder's $TERM)
- When building without a tty this shows up as "unknown"
Signed-off-by: Ricardo Pardini <ricardo@pardini.net>
That lead to glued packagelist when build images in a row.
[ o.k. ] Installing the desktop packages for [ Armbian ]
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package remminaanacron
Host machines with 4Gb physical memory are unable to build all images. During workiin on CI improvements it was noticed that runners with just 4Gb of memory are unable to create rootfs cache or make an images even that should be sufficient. Memory reservations are set very conservatively and we can keep that since adding a swap into the equation proves to be enough. If host machine is running Armbian (which will be in most cases) our ZRAM / ZSWAP memory management takes care of securing that extra needed memory.
RC images are neither beta neither stable. If we use this parameter, they are put into subdir RC. If they are made from beta or not, we choose with other BETA=yes parameter
* Upgrading sunxi and sunxi64 EDGE to 5.13
Both variants tested for building
* Bump imx6 to 5.13.y
Tested
* Bump Jetson nano kernel to 5.13.y
* Move mvebu and mvebu64 edge to 5.13.y
* move pinebook tweaks
* fix dest
* Add also special keys definitions
* Clear out tech dept
* Delete prepare.sh
Co-authored-by: Igor Pečovnik <igorpecovnik@users.noreply.github.com>
* Added support for Linux Mint 20.3 Uma
Because there is actual support for Linux Mint 20.x based on Ubuntu 20.04 is it technically the same version. Only the code name change every new release. Today is Linux Mint 20.2 Uma released so i added it to the host check.
* Update general.sh
Co-authored-by: Werner <EvilOlaf@users.noreply.github.com>
* Improvements for BSP creation
- add support for the same principle found in desktop creation. For CLI package we are copying content from "bsp-cli" folders.
- moving bsp* copy function to image-helpers
- improve readme
* Add support for desktop board support package
Extracting from https://github.com/armbian/build/pull/2776 which can be closed after.
* Desktop BSP creation is working, but need broader testing and some quick how-to
* Create empty files as examples where we can put things.
* Fixing Pinebook desktop bsp creation
* We need to have information about ARCH in the desktop bsp package. This ain't universal.
* prepare_host_basic: Code cleanup and optimization
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Checking and install at the beginning the basic utilities
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Logging has been removed because it makes little sense.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* kbuild: deb-pkg: do not build linux-headers package if CONFIG_MODULES=n
Since commit 269a535ca931 ("modpost: generate vmlinux.symvers and
reuse it for the second modpost"), with CONFIG_MODULES disabled,
"make deb-pkg" (or "make bindeb-pkg") fails with:
find: ‘Module.symvers’: No such file or directory
If CONFIG_MODULES is disabled, it doesn't really make sense to build
the linux-headers package.
Author: Masahiro Yamada <masahiroy@kernel.org>
Date: Wed Oct 14 03:38:19 2020 +0900
Upstream commit bac977cbc0d6731fb8e67c2be0e4acbd959e10b3
Fixes: 269a535ca931 ("modpost: generate vmlinux.symvers and reuse it for the second modpost")
Reported-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* mkdebian: fix: build a package for version 5.13
upstream commit 82526ef43399a7556b860538041802042b3872c1
Author: Masahiro Yamada <masahiroy@kernel.org>
Date: Tue Apr 20 02:05:05 2021 +0900
kbuild: deb-pkg: change the source package name to linux-upstream
Change the source package name from 'linux-$(KERNELRELEASE)' to
'linux-upstream'.
Initially, I tried to use 'linux' to be aligned with the Debian
kernel package, but Ben suggested 'linux-upstream' so that it is
clearly distinguished from distribution packages. [1]
The filenames will be changed as follows:
[Before]
linux-5.12.0-rc3+_5.12.0-rc3+-1.dsc
linux-5.12.0-rc3+_5.12.0-rc3+.orig.tar.gz
linux-5.12.0-rc3+_5.12.0-rc3+-1.diff.gz
[After]
linux-upstream_5.12.0-rc3+-1.dsc
linux-upstream_5.12.0-rc3+.orig.tar.gz
linux-upstream_5.12.0-rc3+-1.diff.gz
Commit 3716001bcb7f ("deb-pkg: add source package") introduced
KDEB_SOURCENAME. If you are unhappy with the default name, you can
override it via KDEB_SOURCENAME.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Search by template when updating initramfs
Search by pattern first, then use in the command.
If unsuccessful then exit by mistake.
Fix:
depmod: WARNING:
could not open modules.order at /var/tmp/mkinitramfs_bp3vP5/lib/modules/5.13.0-sunxi64:
No such file or directory
could not open modules.builtin at /var/tmp/mkinitramfs_bp3vP5/lib/modules/5.13.0-sunxi64:
No such file or directory
When a valid directory lib/modules/5.13.0-rc6-sunxi64
Or when the user added a localversion to the configuration file
and valid directory lib/modules/5.13.0-rt7-sunxi64
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Code Cleanup: kernel build: Removing EXTRAVERSION Cleanup
This was intended for the EDGE kernel and is no longer required.
Moreover, this code is not working.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Move function run_on_sdcard to more appropriate location
* Focus on bash headers, unify, adjust (c)
* Adjust (c) to range
* Cleanup compile.sh
* Cleaning main
* Build all, main configs
* fine tunning
* Improve readme
* Remove Docker version check from compile.sh since its deprecated
* Remove meta package creation which was needed for upgrade
* Update in-code documentation
* Bugfix
* Making oneliner
* Remove Groovy debug leftovers
* Add readme to distributions
* Update
* More text adjust
* Add virtual
* add more
* Enable Virtual qemu build targets
* Bugfix - saving build number is being overwritten before saved
* Remove stable builds, not needed
* Update kernel config, enable current instead of edge
* Make builder dockerfile to be x64 and aarch64 compatible
and building speed optimization
* remove hardcoded amd64
currently docker from edge not work, stable works, then stable instead edge
* libc6-dev-armhf-cross need to build rockchip uboot for helios64 under arm64
* need to add architecture to avoid blame for no docker for i386 arch
* hirsute uses same names for qemu-user-static
* let's only x64 use aptly from dev
* Improve patch hashing method
When running script inside Github runner, hashing is different due to slightly different sort ...
* Also change method for creating hashes and supress error
* Sort is locale dependent ... of course ;)
* Cleanup
* Rework make linux headers
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Make linux-source first and clear the memory
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Bump imx6 edge to 5.12.y
* Bump odroid xu4 edge to 5.12.y
* Bump Jetson nano edge to 5.12.y
* WIP: Bump sunxi to 5.12.y
- create a copy of patches and make a new link
- wireless patches needs adjutement to 5.12
- some patches are still failing
* Adjust wireless patches to build on 5.12.y
* Remove template wireless patch
* Move Espressobin edge to 5.12.y
* Bump mvebu to 5.12
- patch 92-mvebu-gpio-remove-hardcoded-timer-assignment.patch was disabled @heisath
- adjusted wireless driver for 8723ds
* Adjust sunxi / sunxi64 edge to compile
* Fix kernel config for Jetson nano edge
* bump meson64 to 5.12.y
* bump rockchip edge to 5.12.y
* Bump rockchip64 to 5.12.y
* Bump rk322x edge to 5.12.y
@paolosabatino
* Cleanup im6, re-add 5.10.y patches since one is missing in 5.12.y
* Update odroidxu4 edge links
* rk322x: moved rk322x-edge to kernel 5.12, fix overlay compilation, retouched included kernel modules
* Cleanup: remove deprecated config
Co-authored-by: Paolo Sabatino <paolo.sabatino@gmail.com>
* New build kernel if version ge 5.12
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Rename packagename for kernel in the armbian style
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Fix depends pkg for build linux-*
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Fixed version search by Source field
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* Fix postinst, prerm scripts for headers pkg
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
* VENDOR, rock-pi-n10, RM_LIST for armbian-config/zsh
VENDOR parameter in configuration
zsh is the best of course...
Static MAC for networkd
ROCK Pi N10 (Radxa) - Initial support, knwon bugs:
- Problem with poweroff (kernel panic).
- DeviceTree is not fully verified, I suspect missing and unnecessary
entries.
- No support for NPU
- u-boot without NVME support
- I have doubts if I chose the right preboot loader for RK3399Pro, NPU
and installed DDR memory.
* New RK3399Pro boot preloaders.
* rootfs checksum, DEBOOTSTRAP_LIST fix, output.log fix
Repaired checksum for rootfs
Added use PACKAGE_LIST_RM to purge DEBOOTSTRAP_LIST
Better logging to output.log
Fix for new host distribution detection (ie Debian Bullseye).
ubootdebs as new cleaning option
* lsb-release package is getting deprecated
It is not present on Hirsute anymore so we better remove its dependency
* - remove lsb-release dependency from docker
- exit if Docker version is too low (check works only on Ubuntu builds, else doesn't do anything)
Reference: https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1916485
* Cleanup
* Remove quotes for proper pkg install
* Automatically upgrade Docker engine
* Missing python dependencies
* Bugfix - debian name is not just one word
* Put this back
* provoke error
* Revert
* Adjust Github runner to make bionic and focal and compile u-boot for test
* Adjust cron
* Remove Bionic, cron back to 14 days
* Change to ubuntu-latest
There are already emmc nodes in rk3288-tinker-s.dts, adding these nodes
to rk3288-tinker.dtsi will cause emmc busy loop on original Tinkerboard.
Signed-off-by: Jack Chen <redchenjs@live.com>
Adds Xilinx Bootgen tools to build environment (alongside sunxi-tools, etc ..)
Adds new SoC family Zynq (7000 series, not MP/UltraScale)
Adds new board Avnet MicroZed
- remove creating repository for xenial and stretch
- creating meta upgrade packages which are gone with apt autoremove
Tested on focal and stretch
Note: we lost BRANCH information from /etc/armbian-release file https://armbian.atlassian.net/browse/AR-731
* Renaming the BSP package to armbian-bsp
Extracted from https://github.com/armbian/build/pull/2776
* Update naming
* Create meta package for upgrade and remove deprecated mpv related config management
* Probably we want to keep our internal release version in filename
add user path for configuration scan
check for NetworkManager/networkd
support for bullseye
(i.e. path: config/cli and files: packages, packages.remove)
We are using several alternative sources for main Linux kernel code, but not for linux-firmware which is also mirrored the exact same way. This will have major impact on users that are located in Asia and use mirrors from there.
* add extlinux.conf
* - make sure armbianEnv is not added - we don't need variables for NAME_KERNEL and NAME_INITRD. This is not going to change - also MAIN_CMDLINE could at least be renamed so its clear to belong to EXT configuration. Elsewhere this doesn't apply since we have boot scripts
Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
* Bump rockchip DEV 32b to 5.11.y
* Move mvebu64 DEV to 5.11.y
* Move Rockchip64 DEV to 5.11.y
Disabling general-rkvdec_nv15.patch - need more attention
* Add Meson DEV / Odroid C1
* Move OdroidXU4 DEV to tobetter's 5.11.y branch
* Bump sunxi DEV to 5.11.y
* Bump mvebu DEV to 5.11.y
* Apply a fix for lightdm-gtk-greeter bug
Applied at 1st run but can probably be moved to build
* Move fix rather to BSP so fix will be applied to upgrade
* Set image compression levels to maximum
This feature is used mainly by us or other distributors. An internal function. Compression time and CPU usage for this process is significantly increased but the size of the daily batch was decreased from 80Gb -> 50Gb. Mitigate upload speed bottleneck.
* Small improvement for internal build process
* Typo
* Add support for ZSH / TMUX / oh-my-zsh
* Selecting default shell at 1st run
* Install ZSH by default except on minimal image
* Lets rather create armbian-zsh package
* - fix remaining ZSH problems
- add systemd timer to remove default desktop autologin feature
- change DESKTOP_AUTOLOGIN to disabled by default
* Few small improvements
* Oneliner for revering all users back to BASH if package is uninstalled
* Properly escape variables
* Fixing chmod
* More cryptic awk magic to fix permissions for all normal users that are getting zsh magic
Try to create bootloader and kernel packages several times during
one VM session and you will see in /tmp/ many temporary folders like:
tmp.6D2bjgqMQ9
tmp.7Uj9BtIXPy
tmp.f3a2tmt7Cu
......
Some folders contain armbian-config packages
Temporary folders should be deleted!
If kernel is build with GCC9.2 we can't compile modules with DKMS. Reverting compiler to 8.3 until better solution emerges. No known side effects. Tested - working.
https://armbian.atlassian.net/browse/AR-557
* Cosmetical: exchange mv with rsync
Also make build script output less chatty to console. Show SD and mount size % only.
* Leave output here
* Add delete after option
* Change Ubuntu Eoan to Ubuntu Groovy and enable it as CSC
Tested CLI and desktop image, but needs cache creation and repository before it will be possible to build without error.
* Update Groovy compiler for chroot
* Adjust pkg dependencies for groovy
Sadly htop doesn't build
* Don't delete /boot/armbianEnv.txt file at least for meson64
fix for #2249 ODroid-N2 armbian-config-->hardware menu not work
* Update meson.txt
* Update boot-odroid-n2.ini
Co-authored-by: Igor Pečovnik <igorpecovnik@users.noreply.github.com>
Pinebook-Pro Support:
suspend to idle via key and lid close
brightness keys
volume control keys
wifi, bluetooth frimware
touchpad tweaks
keyboard config
armbian-hardware-optimization
bootsplash
Co-authored-by: Britt Dodd <britt@reactornet.net>
* Dockerfile update
Add package to fill-in missing ssh-keygen dependency
(required by lib/distributions.sh when CRYPTROOT_ENABLE is true)
* lib/chroot-buildpackages.sh: Fix mistakes with shellcheck linting
This breaks the apt command line, resulting in the following error:
> E: Invalid operation
* lib/configuration.sh: cryptroot >= 2.1 uses memory intensive key derivation
fix that by reverting to the < 2.1 default algorithm (pbkdf2)
- remove Debian stretch from image creations.
- if LOCAL_MIRROR is defined use just that, not armbian upstream packages
- move aptly web server from 8080 to 80
- adjust welcome motd
- remove Ubuntu Eoan from distribution selection menu
* Add initial support for Odroid N2+
* Update C4 config and test booting
* Updates to C4, N2, N2+
- merge C4 and N2 legacy under meson64, same u-boot
- upgrade legacy kernel to meed DTB from mainline
- merge N2 and N2+, add a hack to display + in motd when N2+ is detected
- shortly spin N2 fan at startup
- merged N2 mainline and legacy boot script
- add upstream patches
* One of the regulators were breaking booting of Odroid N2
Co-authored-by: Werner <EvilOlaf@users.noreply.github.com>
* Add support for two dedicated package lists for BOARD and FAMILY
- PACKAGE_LIST_BOARD
- PACKAGE_LIST_FAMILY
* Add some info about recently added features to the README.md
* enable root auto login on first boot, automatically determine timezone from geolocation
* Improve tzdata and locales detection
* Add timeouts for Curl and support for selecting more locales per location.
* Disable NetworkManager-wait-online.service
https://askubuntu.com/questions/1018576/what-does-networkmanager-wait-online-service-do
* Improve overall UX when creating new username and changing root password
- check password quality and reject if not good enough. Not very heavy.
- shorter way of adding new username
* Resolve killing inactive consoles, remove FAQ silently since we open more consoles