packagegroups: split images into meaningful groups

Packagegroups are divided by functionality level and by features.

The functionality levels start with minimal which includes the bare
minimum packages required for the system to boot. This mainly means
firmwares and drivers.

The base packages include the packages providing basic functionality.
These are usually cli tools allowing access to different interfaces.

The extended packages include advanced tool and services providing full
functionality of the system.

BugzID: 73593

Signed-off-by: Patrick Zysset <patrick.zysset@netmodule.com>
This commit is contained in:
Alexandre Bard 2021-08-02 11:23:32 +02:00 committed by Patrick Zysset
parent e2b7364c83
commit f584e63000
21 changed files with 230 additions and 95 deletions

View File

@ -28,7 +28,6 @@ BENCH_TOOLS = " \
rt-tests \
"
GPS_TOOLS = " \
gps-utils \
ser2net \
gnss-mgr-test \
"
@ -50,18 +49,15 @@ IMAGE_INSTALL_append = " \
${GPS_TOOLS} \
${MONITORING} \
python3 \
python3-misc \
python3-pip \
python3-pycurl \
minicom \
binutils \
util-linux \
i2c-tools \
spitools \
ethtool \
evtest \
devmem2 \
board-descriptor \
tmate \
python3-pycurl \
"
OSTREE_BRANCHNAME = "${LAYERSERIES_CORENAMES}-${MACHINE}-dev"

View File

@ -6,18 +6,13 @@ SUMMARY = "Minimal image for bringup"
NO_RECOMMENDATIONS = "1"
# Minimal NM distribution + tools to fetch and flash images
IMAGE_INSTALL = " \
packagegroup-core-boot \
packagegroup-nm-minimal \
e2fsprogs-mke2fs \
devmem2 \
util-linux-agetty \
systemd-serialgetty \
networkmanager \
curl \
tar \
less \
ncurses-terminfo-base \
haveged \
"
IMAGE_INSTALL_append_netbird = " kernel-module-wlan-backports"

View File

@ -10,95 +10,16 @@ PROVIDES += "virtual/netmodule-image"
IMAGE_FEATURES_append = " \
package-management \
ssh-server-openssh \
"
BASE_TOOLS = " \
bash \
less \
curl \
parted \
mmc-utils \
"
NET_TOOLS = " \
iproute2 \
ethtool \
iptables \
networkmanager \
bridge-utils \
"
WWAN_TOOLS = " \
modemmanager \
wwan-config \
"
BT_TOOLS = " \
bluez5 \
bluez5-obex \
bluez5-noinst-tools \
${@bb.utils.contains("MACHINE_FEATURES", "tibluetooth", "tibluetooth", "", d)} \
"
WIFI_TOOLS = " \
hostapd \
iw \
wpa-supplicant \
wireless-regdb-static \
"
TIME_TOOLS = " \
chrony \
chronyc \
"
NM_TOOLS = " \
nmhw-auto-part \
udev-rules-nmhw \
nmhw-fwupdate \
packagegroup-system-state-framework \
"
IMAGE_INSTALL_append = " \
${CORE_IMAGE_BASE_INSTALL} \
${BASE_TOOLS} \
${NET_TOOLS} \
${NM_TOOLS} \
${TIME_TOOLS} \
IMAGE_INSTALL = " \
packagegroup-nm-minimal \
packagegroup-nm-base \
packagegroup-nm-extended \
${FIRMWARE} \
openssh-sftp-server \
haveged \
openvpn \
pciutils \
kernel-modules \
packagegroup-netmodule-linux \
rng-tools \
gpsd \
gps-utils \
socat \
cryptodev-module \
packagegroup-ublox-modules \
\
${@bb.utils.contains("DISTRO_FEATURES", "custom-mac-addresses", "mac-address-set", "", d)} \
\
${@bb.utils.contains("MACHINE_FEATURES", "can", "can-utils", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "wwan", "${WWAN_TOOLS}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "gnss", "gnss-mgr", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "bluetooth", "${BT_TOOLS}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "imx-boot", "", "bootloader-config", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "usb-hub-reset", "usb-hub-reset", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "v2x", "v2x-ieee802.11p", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "fpga", "fpga-image", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "am335x-wakeup-timer", "wakeup-timer", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "spi", "spitools", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "imu", "imu-setup", "", d)} \
"
IMAGE_INSTALL_append_imx8-nmhw23 = " \
gnss-init \
"
IMAGE_INSTALL_append_sota = " mount-overlay"
IMAGE_INSTALL_append_netbird = " kernel-module-wlan-backports"

View File

@ -0,0 +1,7 @@
inherit packagegroup
PACKAGES = "${PN}-minimal ${PN}-base ${PN}-extended"
SUMMARY_${PN}-minimal = "Minimal packages for ${PN}"
SUMMARY_${PN}-base = "Base packages for ${PN}"
SUMMARY_${PN}-extended = "Extended packages for ${PN}"

View File

@ -0,0 +1,13 @@
SUMMARY = "Bluetooth tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
PACKAGE_ARCH = "${MACHINE_ARCH}"
RDEPENDS_${PN}-base = " \
bluez5 \
bluez5-obex \
bluez5-noinst-tools \
${@bb.utils.contains("MACHINE_FEATURES", "tibluetooth", "tibluetooth", "", d)} \
"

View File

@ -0,0 +1,10 @@
SUMMARY = "Bootloader management tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
PACKAGE_ARCH = "${MACHINE_ARCH}"
RDEPENDS_${PN}-extended = " \
${@bb.utils.contains("MACHINE_FEATURES", "imx-boot", "", "bootloader-config", d)} \
"

View File

@ -0,0 +1,12 @@
SUMMARY = "CAN tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-base = " \
can-utils \
"
RDEPENDS_${PN}-extended = " \
cannelloni \
"

View File

@ -0,0 +1,8 @@
SUMMARY = "FPGA image for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-base = " \
fpga-image \
"

View File

@ -0,0 +1,13 @@
SUMMARY = "GNSS tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
PACKAGE_ARCH = "${MACHINE_ARCH}"
RDEPENDS_${PN}-extended = " \
gpsd \
gps-utils \
${@bb.utils.contains("MACHINE_FEATURES", "advanced-gnss", "gnss-mgr", "", d)} \
"

View File

@ -0,0 +1,8 @@
SUMMARY = "IMU tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-extended = " \
imu-setup \
"

View File

@ -0,0 +1,23 @@
SUMMARY = "Network tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
# less is needed for nmcli to show proper output
RDEPENDS_${PN}-minimal = " \
networkmanager \
less \
"
RDEPENDS_${PN}-base = " \
iproute2 \
packagegroup-core-ssh-openssh \
openssh-sftp-server \
"
RDEPENDS_${PN}-extended= " \
ethtool \
iptables \
bridge-utils \
openvpn \
"

View File

@ -0,0 +1,8 @@
SUMMARY = "SPI tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-base = " \
spitools \
"

View File

@ -0,0 +1,9 @@
SUMMARY = "Time tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-extended = " \
chrony \
chronyc \
"

View File

@ -0,0 +1,8 @@
SUMMARY = "V2X tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-extended = " \
v2x-ieee802.11p \
"

View File

@ -0,0 +1,8 @@
SUMMARY = "Wakeup Timer driver for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-extended = " \
wakeup-timer \
"

View File

@ -0,0 +1,11 @@
SUMMARY = "Wifi tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-extended = " \
hostapd \
iw \
wpa-supplicant \
wireless-regdb-static \
"

View File

@ -0,0 +1,9 @@
SUMMARY = "WWAN tools for NetModule distributions"
LICENSE = "MIT"
require packagegroup-feature.inc
RDEPENDS_${PN}-extended = " \
modemmanager \
wwan-config \
"

View File

@ -0,0 +1,15 @@
SUMMARY = "Netmodule Linux Base Packages"
LICENSE = "MIT"
require packagegroup-nm.inc
FEATURE_LEVEL = "base"
RDEPENDS_${PN} = " \
packagegroup-nm-minimal \
bash \
curl \
parted \
mmc-utils \
usbutils \
udev-rules-nmhw \
"

View File

@ -0,0 +1,26 @@
DESCRIPTION = "Netmodule Linux Extended Packages"
LICENSE = "MIT"
require packagegroup-nm.inc
FEATURE_LEVEL = "extended"
RDEPENDS_${PN} = " \
packagegroup-nm-base \
nmhw-auto-part \
nmhw-fwupdate \
packagegroup-system-state-framework \
${@bb.utils.contains("DISTRO_FEATURES", "custom-mac-addresses", "mac-address-set", "", d)} \
\
rng-tools \
cryptodev-module \
kernel-modules \
\
socat \
pciutils \
"
# Hacks for V2X-GNSS-HUB power sequence on HW23
RDEPENDS_${PN}_append_imx8-nmhw23 = " \
usb-hub-reset \
gnss-init \
"

View File

@ -0,0 +1,13 @@
SUMMARY = "Netmodule Linux Minimal Packages"
LICENSE = "MIT"
require packagegroup-nm.inc
FEATURE_LEVEL = "minimal"
RDEPENDS_${PN} = " \
packagegroup-core-boot \
util-linux-agetty \
systemd-serialgetty \
ncurses-terminfo-base \
haveged \
"

View File

@ -0,0 +1,22 @@
inherit packagegroup
PACKAGE_ARCH = "${MACHINE_ARCH}"
# FEATURE_LEVEL must be defined by including file
RDEPENDS_${PN}_append = " \
\
packagegroup-nm-net-${FEATURE_LEVEL} \
packagegroup-nm-boot-tools-${FEATURE_LEVEL} \
packagegroup-nm-time-${FEATURE_LEVEL} \
\
${@bb.utils.contains("MACHINE_FEATURES", "bluetooth", "packagegroup-nm-bluetooth-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "can", "packagegroup-nm-can-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "imu", "packagegroup-nm-imu-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "fpga", "packagegroup-nm-fpga-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "gnss", "packagegroup-nm-gnss-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "spi", "packagegroup-nm-spi-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "v2x", "packagegroup-nm-v2x-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "wakeup-timer", "packagegroup-nm-wakeup-timer-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "wifi", "packagegroup-nm-wifi-${FEATURE_LEVEL}", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "wwan", "packagegroup-nm-wwan-${FEATURE_LEVEL}", "", d)} \
"