Complete Yocto mirror with license table for TQMa6UL (2038-compliance)

- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
Siggi (OpenClaw Agent)
2026-03-01 20:58:18 +00:00
commit 16accb6b24
15086 changed files with 1292356 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
if [ -n "$SSH_TTY" ]; then
cat /etc/issue.net
fi

View File

@@ -0,0 +1,49 @@
#
# this bbappend is intended to be used with example distros defined in this
# layer. It shows, how to customize the banner files /etc/issue[.net]
#
DEPENDS += "figlet-native"
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
SRC_URI:append = "\
file://handle_issue.sh \
"
dirs755:append = "\
${sysconfdir}/profile.d \
"
# this usually comes from our distro
VENDOR_LONG_NAME ??= "TQ-Systems"
DISTRO_SHORT_NAME ??= "dumpling"
do_install:append() {
install -m 0755 ${WORKDIR}/handle_issue.sh ${D}${sysconfdir}/profile.d/handle_issue.sh
}
do_install_basefilesissue:append() {
# rewrite issue.net to prevent telnetd escape codes in the banner
if [ -n "${DISTRO_NAME}" ]; then
printf "%s" "${DISTRO_NAME}" > ${D}${sysconfdir}/issue.net
if [ -n "${DISTRO_VERSION}" ]; then
distro_version_nodate="${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}','snapshot').replace('${DATE}','')}"
printf " %s" "${distro_version_nodate}" >> ${D}${sysconfdir}/issue.net
fi
echo >> ${D}${sysconfdir}/issue.net
fi
figlet -c -d ${RECIPE_SYSROOT_NATIVE}/usr/share/figlet -- "${VENDOR_LONG_NAME}" | \
sed 's,\\,\\\\,g' >> ${D}${sysconfdir}/issue
echo "\n" >> ${D}${sysconfdir}/issue
figlet -c -d ${RECIPE_SYSROOT_NATIVE}/usr/share/figlet -- "${DISTRO_SHORT_NAME}" | \
sed 's,\\,\\\\,g' >> ${D}${sysconfdir}/issue
echo "\n" >> ${D}${sysconfdir}/issue
figlet -c -d ${RECIPE_SYSROOT_NATIVE}/usr/share/figlet -- "${VENDOR_LONG_NAME}" >> \
${D}${sysconfdir}/issue.net
echo "\n" >> ${D}${sysconfdir}/issue.net
figlet -c -d ${RECIPE_SYSROOT_NATIVE}/usr/share/figlet -- "${DISTRO_SHORT_NAME}" >> \
${D}${sysconfdir}/issue.net
echo "\n" >> ${D}${sysconfdir}/issue.net
}

View File

@@ -0,0 +1,17 @@
# look for files in the layer first
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI:append = "\
file://enable-BEEP.cfg \
file://enable-DEVMEM.cfg \
file://enable-VERBOSE_USAGE.cfg \
file://enable-DD_ALL_FEATURES.cfg \
file://enable-TFTP_FULL_FEATURES.cfg \
file://disable-TELNET.cfg \
file://disable-FTP.cfg \
file://tq-busybox-options.cfg \
"
# necessary to prevent above change being reverted during "do_compile"
# BUSYBOX_SPLIT_SUID = "0"

View File

@@ -0,0 +1,2 @@
# CONFIG_FTPGET is not set
# CONFIG_FTPPUT is not set

View File

@@ -0,0 +1 @@
# CONFIG_TELNET is not set

View File

@@ -0,0 +1,3 @@
CONFIG_BEEP=y
CONFIG_FEATURE_BEEP_FREQ=4000
CONFIG_FEATURE_BEEP_LENGTH_MS=30

View File

@@ -0,0 +1,3 @@
CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_STATUS=y
CONFIG_FEATURE_DD_IBS_OBS=y

View File

@@ -0,0 +1 @@
CONFIG_DEVMEM=y

View File

@@ -0,0 +1,2 @@
CONFIG_FEATURE_TFTP_BLOCKSIZE=y
CONFIG_FEATURE_TFTP_PROGRESS_BAR=y

View File

@@ -0,0 +1 @@
CONFIG_FEATURE_VERBOSE_USAGE=y

View File

@@ -0,0 +1,89 @@
# Fri Jan 7 14:49:22 2022
CONFIG_FEATURE_CATN=y
CONFIG_FEATURE_CATV=y
CONFIG_EXPR_MATH_SUPPORT_64=y
CONFIG_NICE=y
CONFIG_NPROC=y
CONFIG_SEQ=y
CONFIG_TEST2=y
CONFIG_FEATURE_TEST_64=y
CONFIG_TIMEOUT=y
CONFIG_FEATURE_GZIP_LONG_OPTIONS=y
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
CONFIG_FEATURE_TAR_TO_COMMAND=y
CONFIG_FEATURE_TAR_UNAME_GNAME=y
CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y
CONFIG_FEATURE_CP_LONG_OPTIONS=y
CONFIG_FEATURE_CP_REFLINK=y
CONFIG_FEATURE_DATE_ISOFMT=y
CONFIG_FEATURE_DATE_NANO=y
CONFIG_FEATURE_DF_FANCY=y
CONFIG_FEATURE_FANCY_HEAD=y
CONFIG_FEATURE_SYNC_FANCY=y
CONFIG_TR=y
CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
CONFIG_FEATURE_VI_DOT_CMD=y
CONFIG_FEATURE_VI_READONLY=y
CONFIG_FEATURE_VI_SETOPTS=y
CONFIG_FEATURE_VI_SET=y
CONFIG_FEATURE_VI_ASK_TERMINAL=y
CONFIG_FEATURE_FIND_INUM=y
CONFIG_FEATURE_FIND_DELETE=y
CONFIG_FEATURE_FIND_LINKS=y
CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y
CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y
CONFIG_FEATURE_ADDUSER_TO_GROUP=y
CONFIG_FEATURE_CHECK_NAMES=y
CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
CONFIG_FEATURE_GPT_LABEL=y
CONFIG_FEATURE_FDISK_ADVANCED=y
CONFIG_FEATURE_MKSWAP_UUID=y
CONFIG_FEATURE_MOUNT_FAKE=y
CONFIG_FEATURE_MOUNT_VERBOSE=y
CONFIG_FEATURE_MOUNT_HELPERS=y
CONFIG_FEATURE_MOUNT_OTHERTAB=y
CONFIG_FEATURE_SWAPONOFF_LABEL=y
CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
CONFIG_FEATURE_VOLUMEID_UBIFS=y
CONFIG_FEATURE_DC_BIG=y
CONFIG_FEATURE_BC_INTERACTIVE=y
CONFIG_FEATURE_BC_LONG_OPTIONS=y
CONFIG_FEATURE_LESS_TRUNCATE=y
CONFIG_FEATURE_LESS_MARKS=y
CONFIG_FEATURE_LESS_REGEXP=y
CONFIG_FEATURE_LESS_WINCH=y
CONFIG_FEATURE_LESS_ASK_TERMINAL=y
CONFIG_FEATURE_LESS_DASHCMD=y
CONFIG_FEATURE_LESS_LINENUMS=y
CONFIG_FEATURE_LESS_RAW=y
CONFIG_FEATURE_LESS_ENV=y
CONFIG_FEATURE_IFCONFIG_SLIP=y
CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
CONFIG_FEATURE_NETSTAT_WIDE=y
CONFIG_FEATURE_NETSTAT_PRG=y
CONFIG_FEATURE_NSLOOKUP_BIG=y
CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y
CONFIG_FEATURE_PIDOF_SINGLE=y
CONFIG_FEATURE_PIDOF_OMIT=y
CONFIG_FEATURE_TOP_INTERACTIVE=y
CONFIG_FEATURE_TOP_SMP_CPU=y
CONFIG_FEATURE_TOP_DECIMALS=y
CONFIG_FEATURE_TOP_SMP_PROCESS=y
CONFIG_FEATURE_TOPMEM=y
CONFIG_FEATURE_UPTIME_UTMP_SUPPORT=y
CONFIG_FEATURE_SHOW_THREADS=y
CONFIG_ASH_BASH_SOURCE_CURDIR=y
CONFIG_FEATURE_SH_MATH=y
CONFIG_FEATURE_SH_MATH_64=y
CONFIG_FEATURE_SH_MATH_BASE=y
CONFIG_UNIQ=y
CONFIG_FEATURE_WC_LARGE=y

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View File

@@ -0,0 +1,3 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SPLASH_IMAGES = "file://psplash-tq-img.png;outsuffix=default"

View File

@@ -0,0 +1,83 @@
From 326947e7b24ea4615e2971fc7cd48e6c1a9245df Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Date: Wed, 7 Aug 2024 12:01:24 +0200
Subject: [PATCH] udev-builtin-net_id: add NAMING_DEVICETREE_PORT_ALIASES to
check of_node of netdevs before their parents
The net_id builtin only checked the of_node of a netdev's parent device,
not that of the netdev itself. While it is common that netdevs don't have
an OF node assigned themselves, as they are derived from some parent
device, this is not always the case. In particular when a single
controller provides multiple ports that can be referenced indiviually in
the Device Tree (both for aliases/MAC address assignment and phandle
references), the correct of_node will be that of the netdev itself, not
that of the parent, so it needs to be checked, too.
A new naming scheme flag NAMING_DEVICETREE_PORT_ALIASES is added to
allow selecting the new behavior.
Upstream-Status: Backport [https://github.com/systemd/systemd/commit/24c2e04e9a3b53bc8a57ac4a7a89d8da8e4feb72]
The new naming scheme flag is not used by default in the backported
patch; it must be enabled using the extra-net-naming-schemes build option.
---
diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h
index 3f7be08830..904a3b75ff 100644
--- a/src/shared/netif-naming-scheme.h
+++ b/src/shared/netif-naming-scheme.h
@@ -38,9 +38,10 @@ typedef enum NamingSchemeFlags {
NAMING_XEN_VIF = 1 << 13, /* Generate names for Xen netfront devices */
NAMING_BRIDGE_MULTIFUNCTION_SLOT = 1 << 14, /* Use PCI hotplug slot information associated with bridge, but only if PCI device is multifunction.
* This is disabled since v255, as it seems not to work at least for some setups. See issue #28929. */
- NAMING_DEVICETREE_ALIASES = 1 << 15, /* Generate names from devicetree aliases */
+ NAMING_DEVICETREE_ALIASES = 1 << 15, /* Generate names from devicetree aliases of a netdev's parent's OF node */
NAMING_USB_HOST = 1 << 16, /* Generate names for usb host */
NAMING_SR_IOV_R = 1 << 17, /* Use "r" suffix for SR-IOV VF representors */
+ NAMING_DEVICETREE_PORT_ALIASES = 1 << 19, /* Include aliases of OF nodes of a netdev itself, not just its parent. See PR #33958. */
/* And now the masks that combine the features above */
NAMING_V238 = 0,
diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
index 91b40088f4..faf7dd4940 100644
--- a/src/udev/udev-builtin-net_id.c
+++ b/src/udev/udev-builtin-net_id.c
@@ -781,7 +781,6 @@ static int names_platform(sd_device *dev, const char *prefix, bool test) {
static int names_devicetree(sd_device *dev, const char *prefix, bool test) {
_cleanup_(sd_device_unrefp) sd_device *aliases_dev = NULL, *ofnode_dev = NULL, *devicetree_dev = NULL;
const char *ofnode_path, *ofnode_syspath, *devicetree_syspath;
- sd_device *parent;
int r;
assert(dev);
@@ -794,14 +793,24 @@ static int names_devicetree(sd_device *dev, const char *prefix, bool test) {
if (!streq(prefix, "en"))
return -EOPNOTSUPP;
- /* check if our direct parent has an of_node */
- r = sd_device_get_parent(dev, &parent);
- if (r < 0)
- return log_device_debug_errno(dev, r, "Failed to get parent device: %m");
+ /* check if the device itself has an of_node */
+ if (naming_scheme_has(NAMING_DEVICETREE_PORT_ALIASES)) {
+ r = sd_device_new_child(&ofnode_dev, dev, "of_node");
+ if (r < 0)
+ log_device_debug_errno(dev, r, "Failed to get device of_node, ignoring: %m");
+ }
+ if (!ofnode_dev) {
+ sd_device *parent;
- r = sd_device_new_child(&ofnode_dev, parent, "of_node");
- if (r < 0)
- return log_device_debug_errno(parent, r, "Failed to get 'of_node' child device: %m");
+ /* check if our direct parent has an of_node as a fallback */
+ r = sd_device_get_parent(dev, &parent);
+ if (r < 0)
+ return log_device_debug_errno(dev, r, "Failed to get parent device: %m");
+
+ r = sd_device_new_child(&ofnode_dev, parent, "of_node");
+ if (r < 0)
+ return log_device_debug_errno(parent, r, "Failed to get device of_node: %m");
+ }
r = sd_device_get_syspath(ofnode_dev, &ofnode_syspath);
if (r < 0)

View File

@@ -0,0 +1,9 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2024 TQ-Systems GmbH <oss@ew.tq-group.com>, D-82229 Seefeld, Germany.
# Author: Matthias Schiffer
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
SRC_URI += "file://0001-udev-builtin-net_id-add-NAMING_DEVICETREE_PORT_ALIAS.patch"
EXTRA_OEMESON += "-Dextra-net-naming-schemes=latest=v255+devicetree-port-aliases"

View File

@@ -0,0 +1,41 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2024 TQ-Systems GmbH <oss@ew.tq-group.com>, D-82229 Seefeld, Germany.
# Author: Matthias Schiffer
SUMMARY = "Automatic mount of a data partition for TQ platforms"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
inherit allarch systemd update-rc.d
SRC_URI = "\
file://tq-mount-data.service \
file://tq-mount-data.sh \
"
TQ_DATA_MOUNT_TARGET ?= "/srv/data"
SYSTEMD_SERVICE:${PN} = "tq-mount-data.service"
INITSCRIPT_NAME = "tq-mount-data.sh"
INITSCRIPT_PARAMS = "start 05 S ."
RDEPENDS:${PN} += "util-linux-findmnt"
do_install() {
install -Dm 755 "${WORKDIR}/tq-mount-data.sh" "${D}${libexecdir}/tq/mount-data.sh"
sed -i -e "s,@TQ_DATA_MOUNT_TARGET@,${TQ_DATA_MOUNT_TARGET},g" "${D}${libexecdir}/tq/mount-data.sh"
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/init.d/
ln -s ${libexecdir}/tq/mount-data.sh ${D}${sysconfdir}/init.d/tq-mount-data.sh
fi
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -Dm 0644 "${WORKDIR}/tq-mount-data.service" "${D}${systemd_system_unitdir}/tq-mount-data.service"
sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" "${D}${systemd_system_unitdir}/tq-mount-data.service"
fi
install -d "${D}${TQ_DATA_MOUNT_TARGET}"
}
FILES:${PN} += "${TQ_DATA_MOUNT_TARGET}"

View File

@@ -0,0 +1,17 @@
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2024 TQ-Systems GmbH <oss@ew.tq-group.com>, D-82229 Seefeld, Germany.
# Author: Matthias Schiffer
[Unit]
Description=Data partition mount
DefaultDependencies=no
Before=sysinit.target
[Service]
ExecStart=@LIBEXECDIR@/tq/mount-data.sh
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=sysinit.target

View File

@@ -0,0 +1,40 @@
#!/bin/sh
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2024 TQ-Systems GmbH <oss@ew.tq-group.com>, D-82229 Seefeld, Germany.
# Author: Matthias Schiffer
set -e
TQ_DATA_MOUNT_TARGET='@TQ_DATA_MOUNT_TARGET@'
get_root_dev () {
findmnt --evaluate --first-only --noheadings --output SOURCE --mountpoint /
}
get_data_dev () {
local root_dev
root_dev=$(get_root_dev)
case "${root_dev}" in
# 2 and 3 are possible root partitions in our WKS files for RAUC
/dev/*2|/dev/*3)
# Data is partition 4
echo "${root_dev}" | sed -e 's/.$/4/'
;;
esac
}
main () {
local data_dev
data_dev=$(get_data_dev)
if [ -z "${data_dev}" ]; then
return 0
fi
mount "${data_dev}" "${TQ_DATA_MOUNT_TARGET}"
}
main "$@"

View File

@@ -0,0 +1,14 @@
SUMMARY = "Additinal udev rules for TQ distros"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
inherit allarch
SRC_URI = "\
file://persistent-storage-mtd.rules \
"
do_install() {
install -Dm 644 ${WORKDIR}/persistent-storage-mtd.rules \
${D}${nonarch_base_libdir}/udev/rules.d/60-persistent-storage-mtd.rules
}

View File

@@ -0,0 +1,12 @@
# do not edit this file, it will be overwritten on update
# persistent storage links: /dev/mtd/by-name
ACTION=="remove", GOTO="persistent_storage_mtd_end"
SUBSYSTEM!="mtd", GOTO="persistent_storage_mtd_end"
KERNEL!="mtd[0-9]*", GOTO="persistent_storage_mtd_end"
KERNEL=="mtd[0-9]*ro", GOTO="persistent_storage_mtd_end"
ATTR{name}=="?*", SYMLINK+="mtd/by-name/$attr{name}"
LABEL="persistent_storage_mtd_end"