Commit Graph

296 Commits

Author SHA1 Message Date
Oleg
7d69cfeb6e
fix install u-boot to eMMC (#3448) 2022-02-02 10:49:41 +01:00
Igor Pecovnik
1d80b5cde3
Revert "When checking for shell, use strict grep (#3437)"
This reverts commit b77bd30460.
2022-01-26 20:18:46 +01:00
Igor Pečovnik
b77bd30460
When checking for shell, use strict grep (#3437) 2022-01-25 23:26:05 +01:00
Aristo Chen
21b4d4bd42
Ask user again if the response is not expected (#3411) 2022-01-20 14:44:40 +01:00
Igor Pečovnik
e76a5b0bfe
Improve fist login UX (#3375)
* Improve 1st login script

* Update packages/bsp/common/usr/lib/armbian/armbian-firstlogin

Co-authored-by: Manuel Rüger <manuel@rueg.eu>

* Address accessibility issue

Co-authored-by: Manuel Rüger <manuel@rueg.eu>
2022-01-05 17:55:10 +01:00
Oleg
3f8da052e8
fixes the manual launch of the installation script from USB media (#3377) 2022-01-05 17:54:30 +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
aaa050959b
Replace which with command -v (#3253) 2021-11-15 23:30:39 +01:00
Igor Pecovnik
612529aa8f
Fixing errors in armbianmonitor and add release info
Close https://github.com/armbian/build/issues/2798
2021-10-28 23:22:29 +02:00
Piotr Szczepanik
0069ad60a6
Preliminary support for rockchip rk35xx boards (#3111) 2021-09-15 22:08:39 +02:00
Aristo Chen
905cf37bd3
Enlarge dialog size to prevent string cut off (#3141) 2021-09-12 19:26:33 +02:00
Werner
23d5aa12ba
Possible fix for syntax error (#3115)
https://forum.armbian.com/topic/18838-invalid-armbian-trucate-logs-error/
I assume all userspaces have bash shipped anyways?
2021-09-02 20:47:46 +02:00
Igor Pečovnik
84b111487f
Fixing first login shows "degraded" (#3091)
Status is shown to stdout, but we don't want that in 1st login screen
2021-08-11 00:01:21 +02:00
lanefu
4b91e49c72
khadas edge tweaks (#3022)
* remove static mac assignment hack for khadas edge

* khadased edge rk3399 default asound
2021-07-18 23:14:02 -04:00
Oleg
1e5133dd2b
fix u-boot sector station (#2999) 2021-07-12 09:32:35 +02:00
Oleg
6bd67e18e5
add media kernel for arm64 (#2971) 2021-07-07 16:15:34 +02:00
lanefu
71f67e664e
wait for systemd fully started before first login (#2979) 2021-07-06 22:32:37 -04:00
Nathaniel Wesley Filardo
2606d17ec7 armbian-ramlog: extra rsync options
Add two bash arrays, XTRA_RSYNC_{FROM,TO}, defined in
/etc/default/armbian-ramlog, and expand these in the two rsync
invocations in /usr/lib/armbian/armbian-ramlog.

The use of bash arrays simplifies the use of multiple arguments and also
allows for in-band commentary between array elements.

When expanding, safely test for these arrays to exist.  This is, sadly,
a little verbose in bash, so, while here, split the rsync invocations to
use line continuations.

Fixes https://github.com/armbian/build/issues/2846
2021-06-12 02:25:23 +01:00
Laurent
a9f5c0a050
AR-315: Add support for GPT table inside nand-sata-install (#2856) 2021-06-10 11:49:29 +02:00
Aristo Chen
78894792a5
Update URLs (#2870)
* Update URLs

* Update URLs

* Update URLs
2021-06-10 11:27:51 +02:00
Aristo Chen
9f27fd9274
Fix issues in read_password() (#2860)
- When trying to delete by using "backspace", it will also print a "*"
and also appended to password
- When pressing keys too fast, it is possible that some characters
actually printed on the screen
2021-06-01 19:49:08 +02:00
Igor Pečovnik
73e8dfcc7e
Extracting branch and write it to the /etc/armbian-release file. This information is still needed for armbian-config (#2831) 2021-05-15 18:38:11 +02:00
Przemysław Sztoch
486a821a55
VENDOR, rock-pi-n10, RM_LIST for armbian-config/zsh, Static MAC for networkd (#2789)
* 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
2021-05-11 21:50:14 +02:00
Oleg
20c06c0ba3
fix install-nand for extlinux.conf (#2775) 2021-04-15 01:16:13 +02:00
lanefu
3369a0d538
Merge pull request #2608 from ChrisDumont/fix-alignment
fix arithmetic to align filesystem sizes to 16MiB (not 16KiB)
2021-04-11 15:02:29 -04:00
Chris Dumont
5bbf2f0396 Fix arithmetic to align filesystem sizes to 16MiB on nand devices. 2021-04-03 10:18:23 -07:00
Igor Pečovnik
d9e3657171
First login keyboard configuration bugfix (#2746)
* 1st login keyboard configuration bugfix

- added small bugfix which caused to select locales too broad
- switch "automated" keyboard detection for selection prompt

* Remove dpkg-reconfigure keyboard-configuration

* Remve unused variable
2021-04-02 08:21:59 +02:00
Gauthier Provost
5e69351b3d
Re-enable network checksum TX offload on rockchip64 family (#2623)
* Re-enable network checksum TX offload on rockchip64 family

* Adjust gmac PBL setting for rk3399 legacy to fix network issues with MTU 1500

* Adjust gmac PBL setting for rk3328 in rockchip64-legacy to fix network issues with MTU 1500

Co-authored-by: Piotr Szczepanik <piter75@gmail.com>
2021-03-23 08:00:10 +01:00
NekoB0x
975025f170
Fix armbian-hardware-optimization logrotate (#2705)
Fixes editing of logrotate configs when ramlog is enabled and /var/log is mounted on zram device other than /dev/zram0.
2021-03-13 19:43:18 +01:00
Igor Pečovnik
3a74abe43d
Merge desktop branch (#2662)
Co-authored-by: Miouyouyou (Myy) <myy@miouyouyou.fr>
Co-authored-by: Igor Pečovnik <igorpecovnik@users.noreply.github.com>
Co-authored-by: Richard Neese <r.neese@gmail.com>
Co-authored-by: iav <iav@iav.lv>
Co-authored-by: lanefu <lanefu@users.noreply.github.com>
Co-authored-by: Werner <EvilOlaf@users.noreply.github.com>
Co-authored-by: Oleg <balbes-150@yandex.ru>
Co-authored-by: Lane Jennison <lane@lane-fu.com>
Co-authored-by: JMCC <jmcc1@gmx.com>
2021-02-24 18:19:09 +01:00
tparys
37c324975f
Detect overlay capability from uboot boot.cmd (#2628) 2021-02-22 21:50:50 +01:00
Lukas Pirl
4e25b7257b
remove mount option "nodiratime" where "noatime" is given (#2645)
mount option "noatime" implies "nodiratime", see, e.g.:
https://github.com/torvalds/linux/blob/v5.11/fs/inode.c#L1807-L1808
2021-02-22 21:49:04 +01:00
Uglymotha
af90b3237e
Fix armbianmonitor -n for vlan interfaces (#2594)
Currently armbianmonitor -n does not detect vlan interfaces correctly.
This is because of an incorrect egrep -o which filters out the parent interface name:
network interface: 100
instead of
network interface: eth0.100

Cascading into:
armbianmonitor: line 1095: eth0. - 0 : syntax error: invalid arithmetic operator (error token is ". - 0 ")

Fixed by changing the egrep logic to filter out the last field of route -n output.

Also fixes a timer issue by moving the timer start to after the interface selection.
time controller adjustment: -2.43
/usr/bin/armbianmonitor: line 1128: read: -2.43: invalid timeout specification
2021-02-03 20:19:08 +01:00
Igor Pecovnik
6679449bdf Bugfix and further optimisations of first login script 2021-02-03 18:23:08 +01:00
Chris Dumont
561833ea28 fix arithmetic to align filesystem sizes to 16MiB (not 16KiB) 2021-02-02 09:45:18 -08:00
Igor Pečovnik
a1fb805d64
Rework first login script (#2578)
* At first login we set users locales based on his location which seems to be to agressive

Add a question before setting it should suffice. Closing https://github.com/armbian/build/issues/2398

* Read it silently

* Detect locales selection only if we choose to add normal user

* Asking for shell right after seting root password

* Move selections inside traps

* Remove duplicated call
2021-01-26 09:16:25 +01:00
Igor Pečovnik
315ca731f0
Fix shell selection bug in Bionic version (#2573) 2021-01-22 12:54:39 +01:00
Igor Pečovnik
57604fa275
Change locales detection methodology and add failsafe mechanism (#2561)
In case they are not deteced for some reason
2021-01-19 23:24:57 +01:00
Igor Pecovnik
555171ac09 Bugfix - calculation of free ain't number
Closing https://github.com/armbian/build/issues/2548
2021-01-13 08:37:33 +01:00
Igor Pecovnik
604fced6ff ZSH - if choosen at first boot - tell user to logout / login
Executing shell from BASH can cause troubles ...
2020-12-30 20:17:24 +01:00
Thomas Kaiser
8e7ef752e3 Make zram and zswap mutually exclusive.
(TODO: document 'expert mode': how to get rid of zram on systems with fast storage)
2020-12-29 17:40:14 +01:00
Uglymotha
d186d70191
Added parameters to armbian-zram-config (#2463)
Added 2 configuration parameters to armbian-zram-config.
First paramter (SWAP=) can explicitely disable zram swap (while leaving log and tmp untouched).
Second parameter (TMP_SIZE) can be used to explicitely set tmp ramdisk size.
The behaviour of existing configurations is not changed.

New function activate_zram() to initialize zram devices and parameters.
Changed script to use zramctl to more flexibly establish zram devices to use for log and tmp.
This also fixes issues which result from both armbian-zram-config and armbian-ramlog being hardcoded to use zram0
2020-12-22 11:21:21 -05:00
Igor Pečovnik
a4f315c72d
Add support for ZSH / TMUX / oh-my-zsh (#2478)
* 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
2020-12-21 00:44:22 +01:00
Werner
053fb76d61
Fix typo 2020-12-15 15:03:19 +01:00
Duncan Bellamy
4a689f8b89
change DEFAULT_BOOTSIZE to 256 for nand-sata-install and debootstrap.sh (#2437) 2020-12-10 21:17:13 +01:00
Duncan Bellamy
4947f95b46
nand-sata-install increase DEFAULT_BOOTSIZE to 200 as 96 is not enough to upgrade (#2425) 2020-12-10 11:47:09 +01:00
Igor Pečovnik
6c8a9fff22
Fixing stuck at locales genarate (#2407) 2020-12-03 18:00:28 +01:00
Igor Pečovnik
d00410d1c3
Adding MOTD support for vnstat and ZFS and fix minor bugs (#2402)
* Move default values where they should be and fix for updates not showing up
* Add support for vnstat and ZFS
* Cosmetical
* Put defaults back
* Update data displaying
* Add support for displaying "reboot required" when regular packages like e.g. dbus requires a reboot
* Add dependency problem check
* Also add storage to user defaults
2020-12-03 01:39:12 +01:00
Igor Pečovnik
ac44b87406
Non-existing keyboard can be selected in firstlogin script. Adding check (#2385) 2020-11-30 16:52:21 +01:00
Aditya Prayoga
d749589810
Fix race condition on armbian-hardware-optimization (#2301)
* armbian-hardware-optimization: delay applying eth0 tweak on rk3399

* armbian-hardware-optimization: delay applying eth0 tweak on rockchip64

* armbian-hardware-optimization: fixed irq smp affinity for usb

on rockchip64.

Similar like the one applied to rk3399 on commit [eaf6853]
2020-11-04 08:20:43 +01:00