feat: wrynose integration - #675
Conversation
Move every kas layer pin from scarthgap (5.0.18) to wrynose (6.0): - oe.yaml: bitbake 2.18, openembedded-core wrynose @ yocto-6.0.1, OE_VERSION 6.0.1 - omnect-os.yaml: meta-openembedded, meta-security, meta-swupdate, meta-virtualization - x86_64: meta-yocto-bsp, meta-secure-core, meta-perl - phytec: meta-phytec, meta-freescale, meta-imx (wrynose-6.18.20-2.0.0), meta-arm - rpi: meta-raspberrypi pinned to master (no wrynose release branch upstream yet) Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
- layer.conf: LAYERSERIES_COMPAT_omnect = "wrynose" - omnect-os-distro.conf: migrate the obsoleted *_BACKFILL_CONSIDERED to *_OPTED_OUT and opt out the full DISTRO_FEATURES_DEFAULTS set. wrynose force-appends DISTRO_FEATURES_DEFAULTS (minus *_OPTED_OUT) regardless of the absolute DISTRO_FEATURES assignment, so opting out keeps the headless feature set as lean as it was on scarthgap (bluetooth/wifi/3g stay MACHINE_FEATURES-gated). Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
In wrynose do_unpack places SRC_URI sources under ${UNPACKDIR} and git
checks out to ${UNPACKDIR}/${BP} (BB_GIT_DEFAULT_DESTSUFFIX).
- drop redundant S = "${WORKDIR}/git" (default S is now correct)
- point file:// source reads and libeis-utils git paths at ${UNPACKDIR}
- radio-firmware: S = "${UNPACKDIR}"
- add spaces around '=' assignments (CVE_PRODUCT, RUSTFLAGS); 6.0 warns on FOO="bar"
Cargo crate-path rework (omnect-device-service, iotedge, aziot-edged,
aziot-identityd) is deferred; it depends on the wrynose cargo class layout.
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
wrynose ships a current rust carrying the target-spec fixes the local 1.93
override provided, so remove the override:
- delete recipes-devtools/rust/{rust,cargo,libstd-rs,rust-llvm}_1.93.0.bb,
rust-source.inc, rust-snapshots.inc
- delete kas/patches/oe_rust-target-config.patch
- drop RUSTVERSION = "1.93%" pin from omnect-os-rust.conf
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
The *_layerdir.patch files (which inject LAYERDIR_<collection>) failed to apply on wrynose because the upstream layer.conf tails shifted. Regenerate each against its pinned wrynose commit so they apply cleanly: - meta-virtualization, meta-arm, meta-imx, meta-efi-secure-boot, meta-phytec, meta-freescale, meta-raspberrypi, oe (LAYERDIR_core) - meta-imx/meta-efi-secure-boot: drop the now-obsolete LAYERSERIES_COMPAT edit (their wrynose branches already declare wrynose) Split oe.patch: oe.yaml now applies only oe_layerdir.patch (LAYERDIR_core). The omnect bootimg-efi.py customization is deferred to a layer-local WIC plugin (x86/GRUB phase); kept in oe_bootimg_efi_wic.patch for reference. Drop meta-openembedded.patch: both hunks are obsolete on wrynose (the networkmanager girepository do_configure:prepend is gone in 1.56.0; the nspr perl/tests block is gone in 4.38.2). Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
Yocto 5.1 removed VOLATILE_LOG_DIR. /var/log is now made non-volatile by removing files/fs-perms-volatile-log.txt from FILESYSTEM_PERMS_TABLES, which base-files reads to decide whether /var/log symlinks into /var/volatile. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
wrynose's meta-imx-sdk (fsl-sdk-release) now declares LAYERDEPENDS = "freescale-distro fsl-bsp-release perl-layer", pulling in two layers omnect doesn't use. The headless image masks every meta-imx-sdk recipe anyway (graphics/multimedia), and meta-imx-bsp only depends on freescale-layer, so drop meta-imx-sdk and its now-obsolete BBMASK block. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
Yocto 6.0 WKS_SEARCH_PATH looks in <BBPATH>/files/wic; the OE-core sanity checker now errors on .wks/.wks.in left in a bare wic/ dir. Relocate them; WKS_FILE/include references are by name and resolve via the search path. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
Yocto 5.3+ warns on assignments without surrounding whitespace (LIC_FILES_CHKSUM, BBCLASSEXTEND, IMAGE_LINK_NAME, SYSTEMD_SERVICE override). Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
meta-phytec's wrynose branch bumped the imx8mm u-boot from u-boot-phytec-imx_2024.04-2.2.0-phy23 to -phy25 (the recipe whose COMPATIBLE_MACHINE still lists phygate-tauri-l-imx8mm-2; the newer 2025.04/ 2026.01 recipes are imx8mp/electra/lyra only). omnect_bootloader_versioning checksums OMNECT_BOOTLOADER_RECIPE_PATH, so it must name the existing file. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
wrynose meta-phytec renamed the ATF bbappend from imx-atf_2.10.bbappend to the version-independent imx-atf_%.bbappend, so the hardcoded path no longer globbed and omnect_bootloader_versioning fatally couldn't handle the checksum_file. Use imx-atf_*.bbappend (matching the imx-atf_*.bb entry just below) so it survives future ATF bumps. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
The wrynose phytec bootloader (u-boot 2024.04-2.2.0-phy25, imx-atf 2.14) differs from the scarthgap one, so OMNECT_BOOTLOADER_CHECKSUM_EXPECTED is updated to the newly-computed baseline. This is a new, non-rollback-compatible bootloader, so no OMNECT_BOOTLOADER_CHECKSUM_COMPATIBLE entry is added. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
Dropping meta-imx-sdk left meta-phytec's mcore-demos bbappend (imx-m33-demos) without a base recipe; 6.0 removed BB_DANGLINGAPPENDS_WARNONLY so it's a hard error. Mask the mcore-demos dir - the Cortex-M demos aren't wanted on a headless device (cf. the imx-m4-demos removal above). Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
Yocto promoted patch-status to a fatal ERROR_QA. Our local recipe patches don't carry Upstream-Status headers; move the check to WARN_QA so the build doesn't fail, without annotating every patch. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
wrynose's coreutils-dev RRECOMMENDS gawk-dev, but gawk is GPL-3.0-or-later & AGPL-3.0-or-later and excluded via INCOMPATIBLE_LICENSE. Keep it out of the image with BAD_RECOMMENDATIONS rather than whitelist a (notably AGPL) license for a package we don't ship. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
dropbear 2025.89 relocated sources under src/ and already carries the exact (!exists || S_ISREG(stb.st_mode)) ftruncate guard upstream (src/scp.c), so our Fix-inappropriate-fifo-truncate.patch no longer applies and is redundant. The dropbear bbappend existed only to carry it; remove the whole recipe dir (scp is still built via BINCOMMANDS). Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
BAD_RECOMMENDATIONS only filters at do_rootfs install time, but the gawk-dev miss fails earlier in bitbake's build-dependency graph (gawk is skipped for incompatible license GPL-3.0/AGPL-3.0). Remove it from coreutils-dev's RRECOMMENDS in metadata so it's never pulled into the graph. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
…ynose
do_configure/do_install copied file:// SRC_URI sources from ${WORKDIR}, but
wrynose unpacks them under ${UNPACKDIR}. Repoint the source reads:
- phytec u-boot bbappend: omnect_env_phycore_imx8mm.h, phycore_imx8mm.env
- omnect_uboot_configure_env.bbclass: omnect_env.h, omnect_env.env
- bootloader-versioned u-boot/grub: version-script template + grub script
- grub-env / bootloader-env: grubenv, bootloader_env_*.sh
- rpi u-boot bbappend: omnect_env_rpi.h
Generated outputs (uboot-env.bin, boot-menu.inc, the version .sh) stay on
${WORKDIR}. The x86 grub-efi_%.bbappend is deferred to the x86 phase (its
grub-efi.cfg/efi-secure-boot.inc come from base recipes needing verification).
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
6.0 warns on the missing space after '=' in SERIAL_CONSOLES ="...". A repo-wide scan confirms this was the last such bitbake-metadata assignment. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
u-boot-phytec-imx_%.bbappend is one of OMNECT_BOOTLOADER_CHECKSUM_FILES, so the UNPACKDIR source-read fix (74adb1d) changed the computed bootloader checksum. Update the expected baseline to match. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
wrynose's cargo classes moved CARGO_HOME to ${UNPACKDIR}/cargo_home, renamed the
config to config.toml, unpack destsuffix crates under ${UNPACKDIR}, and now
auto-emit [patch] redirects from SRC_URI name=/destsuffix=. Adapt the omnect
vendoring:
- drop S = "${WORKDIR}/git" (default S now correct; do_unpack errored on it)
- EXTRA_OECARGO_PATHS / patchdir crate paths ${WORKDIR}->${UNPACKDIR}
- omnect_rust_aziot-identityd_deps.bbclass: rewrite the workspace-member path
fixups against ${UNPACKDIR}/cargo_home/config.toml
- keep the cargo build output on ${WORKDIR}/build (B=${WORKDIR}/build),
and binaries still install from ${B}/target
Build-verify: the omnect EXTRA_OECARGO_PATHS may now overlap oe-core's auto
[patch]; refine against the first do_compile if cargo reports duplicate/missing
path entries.
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
wrynose meta-imx imx-atf_2.14 controls the debug build through PACKAGECONFIG[debug]="DEBUG=1,DEBUG=0" and derives its deploy folder from PACKAGECONFIG; the old ATF_DEBUG var is no longer read, so dev builds defaulted to release/ while our do_deploy:append looked in debug/. Enable the debug PACKAGECONFIG for dev images (OMNECT_RELEASE_IMAGE=0); OUTPUT_FOLDER stays aligned for the append. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
meta-phytec pins U-Boot 2024.04, whose bundled dtc/pylibfdt calls the 2-arg SWIG_Python_AppendOutput; wrynose's SWIG 4.3 made it 3-arg, so scripts/dtc/ pylibfdt fails to compile. do_configure:prepend rewrites the typemaps to the version-agnostic SWIG_AppendOutput macro (the upstream dtc 1.7.2 fix). oe-core sidesteps this with U-Boot 2026.01/dtc 1.7.2. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
The pylibfdt SWIG-4.3 fix (c672d61) edited u-boot-phytec-imx_%.bbappend, a checksummed bootloader input, so the computed checksum changed again. Update the expected baseline. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
wrynose oe-core removed the separate rust-llvm recipe (rust now provisions LLVM
itself) and upstreamed clang into oe-core. omnect's bindgen libclang setup -
building clang into rust-llvm-native (-DLLVM_ENABLE_PROJECTS=clang) and pointing
LLVM_CONFIG_PATH at .../llvm-rust/bin - is therefore dead, so bindgen panicked
'Unable to find libclang'. Depend on clang-native and set
LIBCLANG_PATH=${STAGING_LIBDIR_NATIVE} instead (aziot-identityd +
omnect_rust_azure-iot-sdk_deps); drop the obsolete rust-llvm-native override.
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
aziot recipes' cargo builds (aziot-identityd, aziot-edged, iot-hub-device-update) need PKG_CONFIG_PATH/PKG_CONFIG_SYSROOT_DIR pointing at the target sysroot to resolve system libs like tss2-tctildr (tcti-sys crate). wrynose's cargo classes only export PKG_CONFIG_ALLOW_CROSS, so pkg-config searched host paths and missed the staged tss2-tctildr.pc. inherit pkgconfig in the shared aziot class supplies those exports. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
With libclang now from host clang-native, bindgen parsed the tss2 wrapper.h
without the target headers and emitted opaque structs (only _address), so
tss-minimal failed (TPM2B_PUBLIC etc. 'has no field'). Add
--sysroot=${STAGING_DIR_TARGET} to BINDGEN_EXTRA_CLANG_ARGS (aziot-identityd +
omnect_rust_azure-iot-sdk_deps) so clang finds the real tss2 type definitions.
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
The Makefile-driven keys bindgen has no cargo TARGET, so host clang defaulted
to x86_64: it rejected the aarch64 -mcpu/-mbranch-protection from TUNE_CCARGS and
misparsed the target glibc headers (bits/timesize-32.h not found). Set
--target=${TARGET_SYS} (and keep --sysroot) and drop TUNE_CCARGS, which doesn't
affect bindgen output. Cargo-driven bindgens still get their own --target; the
extra one is harmless.
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
…n wrynose The 1.5.6 crate set pinned clang-sys 1.6.1 / bindgen 0.69.4, which can't walk oe-core clang's libclang AST: every tss2 TPM2 struct (tpm/tss-minimal/types-sys) bindgen'd to a field-less opaque `_address` blob, so tss-minimal failed to compile (E0560/E0609 on TPM2B_PUBLIC and friends). clang -fsyntax-only parsed the same wrapper.h cleanly and both the 0.60.1 and 0.69.4 bindgens produced identical opaque output, confirming the break is in bindgen/clang-sys, not the recipe's --target/--sysroot args. iot-identity-service main pins clang-sys 1.8.1 / bindgen 0.72.1, which parse the headers correctly, and keeps the same tss-minimal/types-sys/esys-sys build model. - bump SRCREV to main (1a7a6e70); regenerate the cargo-bitbake crate SRC_URI from main's Cargo.lock (320 crates.io crates, plus sd-notify added by send_sd_notify) - rebase send_sd_notify.patch onto main's workspace-style dependency list - drop fix_linker_and_linter_findings.patch and the `-D warnings` RUSTFLAG: that patch existed only to silence lints that warnings-as-errors turned fatal on the old tree; enforcing -D warnings on upstream code is not our concern and the patch is unmaintainable across versions Re-pin to a release tag once one ships carrying these crate versions. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
… 2024
iot-identity-service main (now pinned for aziot-identityd) is Rust edition 2024.
cbindgen 0.24.3 bundles syn 1.x, which cannot parse it: the Makefile cbindgen step
that regenerates aziot-keys.h failed with Error("expected path"). 0.29.2 (syn 2.x)
is the version aziot's ci/install-build-deps.sh pins alongside bindgen 0.72.1.
SRCREV -> v0.29.2 (76f41c0); crate SRC_URI + sha256sums regenerated from cbindgen's
Cargo.lock (72 crates.io deps); LICENSE md5 unchanged.
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
flash_mode_setup_network() looped forever on 'ifconfig ${if_name} up'
because the busybox initramfs has no ifconfig applet (net-tools), so the
interface never came up and the flashing host could never reach the DUT
(genericx86-64/arrakis flash-mode-2 'Waiting for eth0 ...' hang). Use
'ip link set ... up', matching the 'ip addr show' already used just below.
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
On 32-bit ARM (dehndetect) the gnueabi target triple defaults clang to soft-float, so bindgen resolved the wrong glibc ABI stubs header (gnu/stubs-soft.h, absent in a hard-float sysroot) and azure-iot-sdk-sys / aziot-identityd failed to generate bindings. Append TUNE_CCARGS (carrying -mfloat-abi=hard/-mfpu) to BINDGEN_EXTRA_CLANG_ARGS for arm targets; aarch64/x86 are left untouched. Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
Brings in main's 6 commits since omnect#665 (security sanity skip, coredump Storage=none, iot-hub-device-update 1.4.0, image-wide RELRO hardening, adu SIGSEGV fix, wifi-commissioning 0.2.1). Conflict resolution in iot-hub-device-update (1.2.6.bb -> 1.4.0.bb rename): - keep main's version bump to 1.4.0 - re-apply wrynose framework adaptations: UNPACKDIR (not WORKDIR) and the dropped S = "${WORKDIR}/git" - keep the fix-diagnostics-devicename-header-guard.patch (GCC 15 -Wheader-guard) - follow main in dropping the "rm adu-swupdate.sh" step (1.4.0 no longer installs it) Auto-merged conf/distro/include/omnect-os-distro.conf, kas/distro/omnect-os.yaml and systemd_%.bbappend (disjoint hunks; verified). Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
Signed-off-by: Marcel Lilienthal <134974+mlilien@users.noreply.github.com>
…t.service.patch from pi-bl[uetooth files Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
JanZachmann
left a comment
There was a problem hiding this comment.
Moved over from the review on #674 (same branch, review ran at commit 6c78b11). The orphaned pi-bluetooth patch finding from that review is already fixed here in ee97128 and is not repeated.
Review focus: idiomatic yocto/bitbake, comment/language rules, scarthgap->wrynose (5.0.18 -> 6.0.2) migration completeness, inconsistencies.
Overall: the migration is thorough and internally consistent. Kas pins verified against upstream (oe-core/bitbake peel exactly from tag yocto-6.0.2, no layer left on an old branch); every deleted workaround maps to an upstream wrynose fix or the dropped rust 1.93 backport; WORKDIR->UNPACKDIR is complete (no ${WORKDIR} refs left); all component SRCREVs match their claimed tags. Two blockers, both inline: the fork URL in omnect-device-service and the missing || return 1 in fs-mount.
Should still be changed in this PR (lines outside the diff, so no inline comment possible):
- README.md:102,108 — still says "compatible with ...
scarthgap" and "versioned5.0.x.y". This PR bumps OE_VERSION to 6.0.2, so these lines need updating to wrynose /6.0.x.y. - conf/machine/include/phytec-imx8mm.inc:62-72 — this PR drops meta-imx-sdk from kas, which turns the
meta-imx/meta-imx-sdk/...BBMASK entries into no-ops (BBMASK on paths outside BBLAYERS does nothing). The stale entries can go. - recipes-devtools/toml-cli/toml-cli-0.2.3.inc:1 and cargo-cyclonedx-0.5.7.inc:1 — "not compatible with scarthgap per se" should say wrynose or drop the release name.
Noticed while reviewing, but the code is already on main (follow-up material, not this PR):
- initrdscripts resize-data — three real issues: (1) lines 30-36: if a boot is interrupted between
parted resizepartandresize2fs, the next boot sees no free sectors, sets the flag, and the filesystem stays small forever — runresize2fs(idempotent) in that branch too; (2) line 56:[ $? -gt 1 ]treats e2fsck exit 2 ("errors corrected, reboot needed") as fatal — real failures start at 4, use-ge 4; (3) line 42:sgdisk -eis the only command in the block without|| return 1. - systemd_%.bbappend:65 — the coredump
Storage=nonesed silently no-ops if the conf template format drifts; suggest thegrep -q ... || bbfatalguard this repo already uses in wifi-commissioning-service.inc. - omnect-os-distro.conf:31-32 — bitbake 2.18 supports
addpylib; alib/omnect/device_cap()helper could callbb.parse.mark_dependency()and parse the JSON once instead of on everyDISTRO_FEATURESexpansion. - doc/mac_lsm.md:25-26 — says the userspace install is gated on the
apparmorDISTRO_FEATURE, butOMNECT_MAC_USERSPACEin omnect-os-image.bb is unconditional. Also line 6: "out of the box" -> "by default"; README.md:501: "levers" -> "settings". - omnect-wifi-commissioning-start.sh:30 —
True/TRUE/CRLF values ofWCS_DISABLE_BLEsilently keep BLE enabled; log the unmatched value. - omnect-os-update-image.bb:58 — the
grubenvskip has no why-comment. - files/wic/omnect-os.rpi.wks.inc:5 — bare
includewhile the.wks.infiles use${LAYERDIR_omnect}/...; works, but the asymmetry invites a wrong copy later.
Cross-repo note: the omnect-os CI whitelists are organized per release (dunfell/kirkstone/scarthgap) — a wrynose/ set will be needed there.
| # how to get omnect-device-service could be as easy as but default to a git checkout: | ||
| # SRC_URI += "crate://crates.io/omnect-device-service/0.44.0" | ||
| # SRC_URI += "crate://crates.io/omnect-device-service/0.44.1" | ||
| SRC_URI += "git://github.com/omnect/omnect-device-service.git;protocol=https;nobranch=1;branch=main" |
There was a problem hiding this comment.
critical: SRC_URI points to the personal fork. SRCREV 2a83cef is exactly the omnect/omnect-device-service 0.44.1 tag commit, so only the URL needs to go back to github.com/omnect/omnect-device-service.git.
There was a problem hiding this comment.
that was already fixed in the original PR.
| # Mounting our own tmpfs on ${ROOTFS_DIR}/run here would be shadowed by that | ||
| # move (losing anything written to it), so we only re-apply our hardened | ||
| # options to the framework's /run instead. | ||
| run_cmd mount -o remount,mode=0755,nodev,nosuid,strictatime /run |
There was a problem hiding this comment.
critical: the old mount line had || return 1; the remount does not. If the remount fails, boot continues with /run missing nodev,nosuid,strictatime. If /run was never mounted at all, everything written there later (e.g. omnect-os-initramfs.json) vanishes at switch_root without any error. Please restore || return 1.
| install -m 0644 -D ${WORKDIR}/${MACHINE}.json ${D}${sysconfdir}/omnect/device_caps.json | ||
| install -m 0644 -D ${UNPACKDIR}/${MACHINE}.json ${D}${sysconfdir}/omnect/device_caps.json | ||
| } | ||
| FILES_${PN} += "${sysconfdir}/omnect/device_caps.json" |
There was a problem hiding this comment.
FILES_${PN} is the pre-kirkstone override syntax — this line is ignored on wrynose. It works anyway because oe-core base-files packages /, but it should be FILES:${PN} += (or be deleted).
| DISTRO_FEATURES:append = " efi-secure-boot modsign" | ||
|
|
||
| # We verify the grub config with SELoader (PKCS7 .p7b), matching OMNECT_GRUB_EFI_SB_FILES | ||
| # and the LockDown/SELoader artifacts below. wrynose's meta-secure-core (commit 6d83fbf) |
There was a problem hiding this comment.
Commit hash and scarthgap-vs-wrynose history in a code comment. Keep only the mechanism, e.g.: "meta-secure-core defaults to grub's built-in GPG .sig check; we verify the grub config with SELoader (PKCS7 .p7b) instead, so pin both switches."
There was a problem hiding this comment.
lgtm, won't fix.
| @@ -1,7 +1,10 @@ | |||
| FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" | |||
|
|
|||
| # file-only recipe: sources land in ${UNPACKDIR}, not the default ${UNPACKDIR}/${BP}. | |||
There was a problem hiding this comment.
"not the default ${UNPACKDIR}/${BP}" describes what it is not. "file-only recipe: sources are unpacked directly into ${UNPACKDIR}." is enough. Same comment in 7 more recipes (bootloader-env, grub-env, omnect-os-initramfs-scripts, omnect-base-files, omnect-first-boot, omnect-wifi-commissioning, tpm-udev).
There was a problem hiding this comment.
rephrased in all locations.
| @@ -1,19 +1,22 @@ | |||
| diff --git a/arch/arm/mach-bcm283x/Makefile b/arch/arm/mach-bcm283x/Makefile | |||
There was a problem hiding this comment.
Leftovers: cmd/rstinfo.c keeps an unused extern int print_cpuinfo(void);, and the init.c hunk prints inside print_cpuinfo(), which is compiled out by the cfg fragment (# CONFIG_DISPLAY_CPUINFO is not set). Both can go.
| # this is based on the handling in openembedded-core/meta/recipes-bsp/u-boot/u-boot.inc | ||
| # openembedded-core's u-boot.inc now builds into O=${B}/${config}-${type}, | ||
| # so the initial env lives in that -${type}-suffixed dir, not ${config}/. | ||
| # UBOOT_MACHINE/UBOOT_CONFIG only ever hold a single config here. |
There was a problem hiding this comment.
Since only the first word of each variable is wanted, the nested loops with break 2 can be:
set -- ${UBOOT_MACHINE}; config=$1
set -- ${UBOOT_CONFIG}; type=$1| @@ -1,6 +1,17 @@ | |||
| # wrynose dropped the custom rust-llvm (which carried clang); bindgen now gets | |||
There was a problem hiding this comment.
Misattribution: the custom rust-llvm was our own recipe (deleted in this PR), not something the wrynose release dropped. Suggest: "the custom rust-llvm (which carried clang) was dropped with the wrynose upgrade; bindgen now gets libclang from oe-core's clang-native."
| UEFI_SELOADER = "1" | ||
| GRUB_SIGN_VERIFY = "0" | ||
|
|
||
| # for patched wic plugin bootimg-efi.py: |
There was a problem hiding this comment.
Comment drift: the patched plugin now lives in the standalone wic recipe (src/wic/plugins/source/bootimg_efi.py), patched via recipes-support/wic/wic_%.bbappend.
| INSANE_SKIP:${PN}:pn-gobject-introspection = "file-rdeps" | ||
| PACKAGECONFIG:remove:pn-apparmor = "python" | ||
|
|
||
| # disable glib-2.0 dependency to shared-mime-info |
There was a problem hiding this comment.
This pn-apparmor line sits in the glib block; the other apparmor tweaks (perl removal, PERLCONFIGTARGET) are ~20 lines up — move it next to them.
…andling improvement Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
…ake variables Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
QA during packaging now errors on every packge with an incompatible license as defined in variable `INCOMPATIBLE_LICENSE`. Placing recipe names with their respective licenses into variable `INCOMPATIBLE_LICENSE_EXCEPTIONS` now needs to be done for all packages as generated by these recipes, at least unless `license-exception` gets globally removed from `ERROR_QA` (probably to `WARN_QA`). While this is a tedious and error prone process a new class is introduced which takes all entries in `INCOMPATIBLE_LICENSE_EXCEPTIONS` and expands them to all packages an entry can generate. This class is now always inherited via omnect-os-fixes.conf. For image recipes `omnect-os-initramfs` and `omnect-os-image` license excetpion handling needs to be adapted separately. Beside above changes, in recipe `omnect-os-initramfs.bb` the comment for the `IMAGE_OVERHEAD_FACTOR` change was adjusted. Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
On phyGATE-Tauri-L-iMX8MM the wrynose BSP exhibited ~100%-reproducible
memory corruption ~14-15s into every boot, during the initramfs first-boot
resize2fs of the data partition. Crashes hit random, unrelated kernel
subsystems (init SIGSEGV, vmap byte-shift corruption, maple-tree/rcu panics,
cpuidle faults), i.e. the classic signature of marginal DRAM rather than a
single-subsystem bug.
Root cause: u-boot-phytec-imx moved phy23 -> phy25 in the wrynose meta-phytec
branch, and that delta is essentially just the phycore-imx8mm LPDDR4 timing
rewrite (upstream commits f5e9c4e8 "Update RAM Timings" + a2aeeb82 "Set correct
RAM timing fallback"). phy25 regenerates the entire base dram_timing struct
with DDR Tool v3.6.0 (DBI enabled, single frequency point) and adds an
EEPROM-SoM-revision-driven Rev6/Rev7 timing split whose fallback applies Rev7
timings when revision detection returns INVAL. On this 2GB SoM the regenerated
timings are marginal and corrupt DRAM under Linux memory pressure while passing
U-Boot's own light-load md/cmp tests.
Confirmed by isolation on hardware:
- Whole old (phy23-era) imx-boot dd'd over the wrynose card -> clean.
- Injecting the known-good ATF 2.10 bl31 into wrynose imx-boot -> still
corrupts (ATF exonerated).
- LPDDR4 training blobs are byte-identical between the builds (md5), so the
firmware is not the difference; the timings live in u-boot board C code.
- Forcing CONFIG_PHYCORE_IMX8MM_USE_SOM_REV_6 -> still corrupts, because both
phy25 paths build on the regenerated base struct, not phy23's values.
- Pinning u-boot source back to phy23 (a429a8f5) -> 10 consecutive clean
boots.
Fix: pin SRCREV to phy23 (a429a8f5) for mx8mm-nxp-bsp. phy23 selects timings
purely by DRAM size and uses the single known-good base struct; the phy23..phy25
delta contains nothing else of value for this board (only the DDR rewrite and an
irrelevant polis-rdk DTS sync), so no other fixes are lost. phygittag derives
PV/BRANCH from the recipe filename, so the phy25 label is retained without any
git-describe breakage.
Also keep the phycore_imx8mm.env fdt_high/initrd_high/bootm_size hardening,
which prevents U-Boot from relocating the DTB/initrd into the kernel's
linux,cma window (and onto the ramoops region) - a separate latent issue that
becomes relevant once pstore/ramoops is re-enabled.
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
…ons introduced where needed Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
… now UNPACKDIR Signed-off-by: Harry Waschkeit <44188360+HarryWaschkeit@users.noreply.github.com>
This pull request inherits from original pull request #674 and continues that work.