Embedded Linux
Documentation

Version Latest

Reference and testing

Every Embedded Linux capability with what was verified and what was not, the module's settings, what asks before it writes to a board or the build, and how a hardware team tests it and reports back.

Capabilities and their evidence

Each capability is described, with its commands and steps, on its task page (see the Overview). This table gathers the evidence in one place.

Everything below was run on Linux only. "Stand-in" means a local SSH server, a chroot or a QEMU arm64 machine playing the build host or the board. Nothing has run on Windows, against a real build server, against Wind River Linux, or on a real board.

#CapabilityVerified (Linux)Not verified
1Work against the Linux build server over SSHOpenSSH 9.6p1 client and sshd on localhost; the running appWindows ssh.exe; a real server through a company proxy or jump host; macOS
2The build directory as the projectReal layer.conf and conf files of poky, meta-freescale, meta-ti, meta-xilinx, meta-st-stm32mp, Wind River meta-lat and meta-wr-sbomWind River Linux installs; realistic size (40 layers, 4,000 recipes)
3, 4BitBake recipes in the editor; Variable HistoryBitBake 2.8.1 (poky scarthgap) with meta-freescaleWind River Linux; a real SSH server; Windows
5Build history and comparing buildsEqual to buildhistory-diff on our own repositoriesA real build's repository
6Device treesMerged tree equal to dtc 1.6.1 and 1.7.2 on the i.MX 8M Plus gateway board and NXP's imx8mp-evk.dtsA real build server; make dtbs_check
7Image, recipe and task buildsA task run, a real do_compile failure and cancel, over a real sshdAn image build; Windows; Wind River Linux; Buildroot and PetaLinux builds
8Targets: boards over SSHStand-in BusyBox boards; the running appA real i.MX 8M Plus board; Dropbear; Windows
9Installed SDKs and application buildsA stand-in SDK; CMake 3.28.3; clangd 18.1.3 over SSHA real Yocto, Wind River or vendor SDK
10devtool modify, build, finish, reset, deploy-targetpoky scarthgap devtool over OpenSSH, offlineA copy to a board; devtool build of a target recipe
11Debug on the board, attach, core dumpsgdbserver and GDB 15.1 with x86_64 stand-insA real board with an aarch64 SDK; a WAN
12SBOM and CVE triageReal cve-check output of two releases; a CVE_STATUS line read back by BitBakeA real image SBOM; Wind River LTS 24 and 25 output
13Kernel configuration and fragmentsEqual to Kconfiglib 14.1 on 17,248 symbols of linux-imxkernel_configcheck and kernel_configme never run; no real kernel build
14Signed update packages (RAUC, SWUpdate, Mender)RAUC 1.11.3, SWUpdate 2023.12.1, Mender client 3.4.0 on stand-insA real board and reboot into the new slot; PKCS#11 signing in a build
15Licence compliance for the releaseEqual to OE-Core's oe.license on all 239 LICENSE values of poky scarthgapA real image's manifest; Buildroot legal-info
16Runtime tests and ptestA real bitbake -c testimage against a stand-in boardtestimage on QEMU; ptest-runner itself
17Layers with bitbake-layersReal BitBake 2.8.1 over a localhost sshdWriting kas files
18Kernel oops decodingA Linux 6.8 arm64 kernel in QEMU 8.2.2; every report kind decoded with the real scriptsA kernel built by BitBake; a real i.MX board
19Writing the image to a boardbmaptool 3.8.0 to a loop device; uuu 1.5.233 dry runsA board written over USB serial download or DFU; STM32CubeProgrammer never run (kit shipped)
20Verified boot: FIT signed with keys in an HSMU-Boot 2024.01 tools; SoftHSM 2.6.1 through libp11A real kernel and U-Boot build; a real HSM; a board refusing an unsigned FIT
21perf profilingperf 6.8.12 against stand-insA real board
22AMD PetaLinux and the AMD Yocto flowProject probe and command lines against AMD's ZCU104 PetaLinux 2022.1 project filesNo petalinux-* command ever run
23Build configuration, machines, distributions, fragmentsBitBake 2.8.1 and 2.18.0Wind River Linux; kas-managed local.conf
24The board's system and boot timeA QEMU arm64 board; systemd 255 in a containerA real board's boot with firmware and loader phases
25Partition layout with wicpoky scarthgap's wic on poky's .wks filesA real i.MX image
26Valgrind Memcheck and MassifValgrind 3.22.0 against stand-insA real board
27Sources and mirrorsBitBake 2.8.1 with a local HTTP mirrorYour company mirror; a check cannot prove a mirror complete
28Root file system integrity: dm-verity, IMA, EVMveritysetup 2.7.0; a QEMU arm64 boardmeta-security and meta-integrity never fetched; a TPM
29Kernel traces with ftrace and trace-cmdtrace-cmd 3.2 on QEMU arm64A real board
30Package feedsReal opkg 0.6.3 on a stand-in boarddnf and apt on parsers only; signed feeds
31New recipes and upgrades with devtoolpoky scarthgap's devtool and recipetooldevtool build of added recipes
32Cppcheck (with MISRA), sparse, checkpatch.plCppcheck 2.13.0 with the MISRA addon; sparse 0.6.4 on Linux 6.6.52A real SDK; your MISRA rule texts
33Structural coverage of tests on the boardGCC 13.3 and 14.2 with gcov, gcovr 8.6, lcov 2.0A real SDK; qualified MC/DC
34Device tree overlaysdtc and fdtoverlay 1.7.2 byte-identical to Kbuild; U-Boot v2024.04 sandboxU-Boot on an i.MX board
35LTTng traceslttng 2.13 and 2.14 on QEMU arm64A physical board
37The image's QEMUrunqemu of poky scarthgap with QEMU 8.2.2 and a stand-in imageA BitBake-built image; KVM

Settings

All keys are under neuralInverse.embeddedLinux.. Credentials are never settings.

SettingMeaning
enabledTurns the environment on (default false)
buildHostsBuild hosts and the build directory on each
targetsBoards: name, host, user, port, identityFile, machine, notes
sshPathThe OpenSSH client; empty for System32\OpenSSH\ssh.exe on Windows, then ssh on PATH
connectTimeoutSeconds before a build host is reported unreachable
sdkDirectoriesFurther folders searched for installed SDKs (/opt and the home folder are always searched)
applicationsApplications built with an SDK outside BitBake
clangd.argumentsExtra clangd arguments for SDK applications
companyMirrorsCompany source and shared-state mirrors and allowed hosts
perf.path, traceCmd.path, traceCmd.localPath, babeltrace2.path, babeltrace2.localPath, trace.localFolderAnalysis tools on the build host and on this computer
coverage.toolFoldersWhere gcovr, lcov and genhtml are on the build host
targetSystemRefreshSecondsReads of a board's running system while its System group is shown
analysis.cppcheckPath, analysis.checks, analysis.misra, analysis.misraRuleTexts, analysis.suppressionsFile, analysis.exclude, analysis.sparsePathStatic analysis of SDK applications and kernel drivers
labHostsLab machines the boards and card readers are attached to, for writing images: name, host, user, port, identityFile, folder, notes
imageWriting.localFolderWhere images are copied on this computer before uuu or STM32CubeProgrammer writes them
paths.uuu, paths.stm32Programmer, paths.bmaptoolThe writing tools on this computer: the executable or its folder; empty for PATH and the vendors' install folders

Confirmations and records

  • Writes to a board ask first, naming the board and every path: saves, new files, deletes, renames and pastes in a board's folder; Copy to Target; Reboot and Power Off; deploy-target; installing an update package (with the board, the package, its SHA-256 and the slots or devices written); writing an image (a device changed after confirmation is refused, and system and mounted disks are refused).
  • Writes to the build ask first: a BitBake build started by an agent, devtool finish (with its dry run), a CVE_STATUS line (with the file and line), INCOMPATIBLE_LICENSE lines, FIT signing (with the key and the exact command; a PKCS#11 PIN comes from MKIMAGE_SIGN_PIN in the build account's environment, never from the Editor).
  • Agent tools: listing and reading are read-only; every command, build, devtool action, board write, signing and update is always confirmed.
  • Records: each BitBake build writes a record to <build directory>/.neuralinverse/builds/ with MACHINE and layer revisions; the licence record exports with each required source archive's SHA-256; the Embedded Linux output channel logs sessions, commands and project reads, never credentials.

With Neural Inverse Govern, builds started as tasks and changes to Neural Inverse settings are decided by the in-app policy check. See Govern.

Testing it and reporting back

The hardware team's checks need a Windows 10 or 11 laptop without administrator rights, your Linux build server with a Wind River Linux, NXP i.MX, TI, AMD or ST build directory, and a board's debug UART.

  1. Check that ssh.exe works from a Windows terminal: ssh <you>@<build server> true (with your ProxyJump in %USERPROFILE%\.ssh\config).
  2. Add the settings from Set up the build host and trust the workspace.
  3. Check that Trust Build Host Key shows the same SHA256 fingerprint as ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub on the server.
  4. Compare the Build Directory view with bitbake-layers show-layers and bitbake -e | grep -E '^(MACHINE|DISTRO)=' on the server.
  5. Run Select Build Target..., build with Ctrl+Shift+B, cancel during a build, and check with ps -u $USER | grep bitbake on the server that nothing is left.
  6. For the serial console: Open Serial Monitor at 115200 baud on the board's debug UART; check the U-Boot prompt, the full kernel log, the login prompt, and on Windows that the COM port opens without administrator rights.

Send back the operating system and version, ssh -V, the build server's distribution, the product (Wind River Linux LTS or BSP release), the BitBake version, the results and the Embedded Linux output log.

Troubleshooting

ProblemWhat to do
Nothing appearsTurn on neuralInverse.embeddedLinux.enabled and trust the workspace.
The status bar says the host key is not trustedCompare the fingerprint with the server's, then run Trust Build Host Key.
The host is unreachableCheck the VPN and your SSH configuration; the message says what to do. connectTimeout sets the wait.
The key is refused and no agent runsRun Set Build Host Key Passphrase....
Builds need a buildtools environmentSet buildEnvironmentScript for the build host.
Opening a board's device tree takes minutes over a remote hostA known issue: one SSH session per file call. It needs a batched remote listing.

Next: What's next.

Last reviewed 17 October 2026View as Markdown

Reference and testing · Docs · Neural Inverse