Commit Graph

200 Commits

Author SHA1 Message Date
Igor Pečovnik
310495ddf1
Refactor armbian-bsp-cli package creation (#3378)
* Refactor armbian-bsp-cli package creation

- added general distro status for all in separate file inside BSP
- remove branch and distro specifics

* Looking for prebuild pack

* Small fixes
2022-01-06 11:50:24 +01:00
Leo
3c5e8820d1
Source /etc/armbian-release before the motd conf file (#3326)
That way the user can set $BOARD_NAME in /etc/default/armbian-motd. This is useful because e.g. the Odroid HC2 is internally an Odroid XU4, and in /etc/armbian-release it shows up as Odroid XU4.
2021-12-07 20:13:34 +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
Aristo Chen
fab9ff1dba
Remove unused variable in format string (#3105) 2021-09-02 21:51:54 +02:00
Aristo Chen
9aa60df063
Exclude IP of network interface with :avahi at the end of name (#3099) 2021-08-21 11:04:22 +02:00
Oleg
4c80535fd8
update kernel legacy 4.9.201 and current 5.10 (#2987) for jetson 2021-07-09 20:54:40 -04:00
Igor Pecovnik
8ab6aeb342 Cosmetic - supress error vnstat can't be found at first login 2021-07-03 19:27:39 +02:00
Aristo Chen
5082eb9d4e
Skip checking TX/RX for interface not exists in /var/lib/vnstat/ (#2948) 2021-07-02 07:56:27 +02:00
lanefu
cb18979a64
Merge pull request #2896 from AristoChen/master
Modify the mechanism for showing IP address in 30-armbian-sysinfo
2021-06-13 11:24:41 -04:00
AristoChen
a84da70535
Modify the mechanism for showing IP address in 30-armbian-sysinfo
Exclude "dummy0" and "lo" interface, thus the IP address for all other
interface(include those having customized name) can be properly displayed
2021-06-13 20:58:05 +08: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
Aristo Chen
78894792a5
Update URLs (#2870)
* Update URLs

* Update URLs

* Update URLs
2021-06-10 11:27:51 +02:00
Igor Pečovnik
adaf5956bb
Less chatty logs for 8189fs (#2857) 2021-06-01 19:49:21 +02:00
Werner
1f2dc3423a
Delete 80-update-htop-and-offload-tx
- users are "confused" about manipulating files in their home directories
- introduced security issues which have been worked around but there might be others too
- more recent  htop may support network stuff oob (https://armbian.atlassian.net/browse/AR-771?focusedCommentId=10546)
2021-05-26 05:49:52 +02:00
Igor Pečovnik
f7c2dc2bc3
More motd related fixed (#2848)
Fixing error when we don't have etherned
2021-05-23 18:25:21 +02:00
ThomasKaiser
0f348185be
Fix typo in f0f10a5 (workaround for 7350topless) 2021-05-23 14:48:51 +02:00
ThomasKaiser
f0f10a5b68
Workaround for 7350topless
Not touching logic or the (IMO ridiculous) behavior of this script. Just meant as a quick&dirty workaround for the specific sed/symlink attack vector. Check https://github.com/stealth/7350topless for details.
2021-05-23 13:51:04 +02:00
Igor Pečovnik
4cc754e0b3
Bugfix - vnstat doesn't like very long input parameterts and it fails on certain wireless devices (Ampak, most common ones) (#2839)
Limiting device to eth* enp* only seems like a viable workaround.
2021-05-18 09:15:55 +02:00
Igor Pecovnik
93ed1e85b8 Displays that EDGE branch is in action 2021-03-28 12:21:02 +02:00
NekoB0x
8b063ca8a6
Update armbian-ram-logging 2021-03-25 11:19:35 +02:00
NekoB0x
540d7abd88
Fix redundant log writing
Fixes calling "armbian-ramlog write" twice on systems with logrotate systemd unit.
2021-03-25 01:02:23 +02:00
NekoB0x
271756dcc4
Some 30-armbian-sysinfo fixes (#2732)
* Update 30-armbian-sysinfo

Fixed alignment of "Local users" and "IP" in third column.
Made it more compact by adding extra new line.
Added "both" traffic direction.
Removed "-h" vnstat argument because it doesn't do anything, changed "last 24h" to "today" (there is only "rx/tx for today" in --oneline output).

* Update armbian-motd.dpkg-dist

Add PRIMARY_DIRECTION description

* Update 30-armbian-sysinfo

fix new line logic
clean-up unused variables
2021-03-24 19:19:38 +01:00
Igor Pečovnik
61b87bee74
W1 temp sensor can have different properties. Adjusting (#2737) 2021-03-24 19:07:53 +01: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
9e599d0f87
Fix motd traffic stats
Fixes:
RX/TX: "Unknown parameter "1". Use --help for help."
RX always displaying "n/a"
2021-03-19 11:35:38 +02:00
lurdan
d264a8fd74
Change apt's default compression method to gzip (#2729)
APT uses lz4 as its default compression method, but Some ARM board has performance problem on it.
This setting make apt prefer gzip over lz4.

cf. https://forum.armbian.com/topic/14064-my-apt-search-has-become-super-slow-recently/page/2/
2021-03-19 07:17:30 +01:00
Oleg
9aa7aafd4f
Adding Nvidia Jetson Nano (#2720)
* add Jetson Nano

* Update jetson-nano.conf

* Update targets.conf

* Add better description

* Adjust config - try to enable ZRAM

* Packaging patch not needed

* Extlinux was solved in other commit

* Move board to CSC for now

Co-authored-by: Igor Pečovnik <igorpecovnik@users.noreply.github.com>
Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
2021-03-18 18:29:34 +01:00
NekoB0x
922f1ca49e
Fix Motd disk temperature (#2707)
Fixes displaying of "Always°C" temperature on disks without Min/Max temperature values.
2021-03-14 16:34:32 +01:00
Igor Pečovnik
44ceb61427
Read distro data from our files, not from generic locations which might be changed (#2597) 2021-02-01 08:39:54 +01:00
Igor Pecovnik
c07e6e3da5 Revert "Update 80-update-htop-and-offload-tx (#2555)"
This reverts commit ee6ead45a6.
2021-01-19 23:47:13 +01:00
eric poscher
ee6ead45a6
Update 80-update-htop-and-offload-tx (#2555)
As suggested by Igor https://forum.armbian.com/topic/16287-very-confused-etcnetworkmanagerdispatcherd80-update-htop-and-offload-tx/?tab=comments#comment-117540
2021-01-18 19:58:23 +01:00
Marcin Mielniczuk
e7406614ac
Add support for configuring CPU temperature offset (#2516)
* Add support for configuring CPU temperature offset

Some boards, such as the Orange Pi Zero LTS, report shifted CPU temperatures.
For more details, see https://forum.armbian.com/topic/11534-orange-pi-zero-lts-incorrect-temps-reported/

* Update armbian-motd.dpkg-dist

Co-authored-by: Igor Pečovnik <igorpecovnik@users.noreply.github.com>
2020-12-30 17:47:30 +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
Igor Pečovnik
f41c50db01
Cosmetical changes to MOTD regarding ZFS (#2417) 2020-12-04 21:12:37 +01:00
Igor Pečovnik
dc0cebe3d2
Cosmetical
Suppress warnings like: RX yesterday:  eth0+eth1+wlan0+wlan1: Not enough data available yet.
2020-12-03 17:37:41 +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
Piotr Szczepanik
b8991002f0
Bring back Igor's "Cosmetical changes to htop" 2020-09-18 07:43:09 +02:00
Piotr Szczepanik
3b7136416b
Revert "Cosmetical changes for htop"
This reverts commit abf6961c30.
2020-09-18 07:32:23 +02:00
Igor Pecovnik
abf6961c30 Cosmetical changes for htop 2020-09-17 22:14:11 +02:00
Igor Pecovnik
ebc497ff6b Enable GPU temperature in htop for Odroid XU4 2020-09-14 16:22:16 +02:00
Igor Pecovnik
621765292d Bugfixes including moving txoffload to the Network manager dispatcher script
Current RK3399 offload implementation is removed and enabled for rockchip64 family via dispatcher - they are all affected to this problem
2020-09-14 00:01:49 +02:00
Igor Pečovnik
045fd4a3b0
Improve HTOP with scripted updating based on network up/down (#2199)
* Improve HTOP with scripted updating based on network up/down

Also enable / disable GPU temperature - where available.

* Update Htop default configuration
2020-09-13 20:39:52 +02:00
Igor Pecovnik
e395961f77 Cosmetic bugfix + motd updating script
Motd updating script should be moved under proper service later on
2020-09-08 23:07:37 +02:00
Igor Pečovnik
4f24a622e1
Fixes wrong available memory calculation for ZRAM (#2192)
* Fixes wrong available memory calculation

* Further motd rework

- show load in %
- display GB instead of MB depending of treshold
2020-09-08 21:47:14 +02:00
matt335672
ae87d999e2
Move armbian-check-first-login.sh to separate bash script (#2190) 2020-09-07 16:28:43 +02:00
Igor Pecovnik
e6fa811d6f Moving Meson64 to 5.8.y
Tested once again on N2/N2+
Note: disabled mesond_vdec module in kernel config since it crashes complete video system when loaded. Need to be added back once stable - or perhaps we need to adjust some parameters?
2020-09-01 19:50:09 +02:00
Igor Pecovnik
dc8300a638 A pack of minor fixes:
- 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
2020-08-30 16:13:38 +02:00
1pav
4e5db96a9a
Remove superfluous newline in shell prompt (#2165)
Fixed a bug in armbian-check-first-login-reboot.sh which caused a
newline character to be prepended to the shell prompt even when a reboot
required warning was not shown to the user.
2020-08-28 18:43:54 +02:00
Igor Pecovnik
3a5b572c0f Improve multithreaded building, few changes for BUILD_ALL and removing debug code from MOTD 2020-08-18 22:31:07 +02:00