Domain modules
Documentation

Version Latest

Embedded Linux (early development)

The Embedded Linux module for Yocto Project, Wind River Linux and vendor BSP builds on a Linux build server over SSH, everything built behind its setting, and the state of each part.

The Embedded Linux module is for engineers who build embedded Linux products on Wind River Linux, the silicon vendors' Yocto BSPs (NXP i.MX, TI, AMD, ST), the Yocto Project and kas, with Buildroot as a second path. The engineer works on a company laptop, often Windows, against the team's Linux build server: the module reaches that server through the operating system's OpenSSH client and opens the existing build directory on it as the project. Boards are reached over SSH in the same way.

State: early development, not ready for use

The module is a base platform behind the setting neuralInverse.embeddedLinux.enabled, which is off by default and works only in a trusted workspace. Much is built behind it, and every page of this section says what each part has been run against. Read this before trying it:

  • Modelled on Linux only. Every capability has run on Linux against OpenSSH 9.6p1 (client and server on the same machine), stand-in build hosts and stand-in boards (BusyBox and Dropbear in QEMU arm64, chroots, a systemd container), and the real Yocto and Linux tools where a page says so (BitBake 2.8.1 with poky scarthgap, devtool, wic, RAUC, SWUpdate, Mender, U-Boot tools, perf, Valgrind, trace-cmd, LTTng, Cppcheck, gcov).
  • Not run on Windows, which is the laptop the module is designed for.
  • Not run against a real build server over a real network, or against Wind River Linux.
  • No real board (such as the i.MX 8M Plus EVK) has been used, and no image built by BitBake for a real board has been opened.
  • No vendor tool run: no petalinux-* command has run, and STM32CubeProgrammer has never written a board.
  • Known issues include very slow device tree opening over a remote build host (512 to 570 seconds, against 79 ms on a local disk) and a copy to a Dropbear board that ended with EPIPE.

Do not use it for production work. It is documented so hardware teams can test it and send results back (Reference and testing).

Turn it on

Run Neural Inverse: Enable Embedded Linux Environment from the command palette, or set neuralInverse.embeddedLinux.enabled to true in the workspace settings, then trust the workspace. Disable Embedded Linux Environment turns it off again. While the setting is off, no SSH session, view, status entry, file system, BitBake navigation, build history or agent tool exists; the BitBake language (colouring) is always registered and runs nothing.

The module's commands are in the command palette under Neural Inverse Embedded Linux. Its views are in the Embedded Linux side bar: Build Directory, Variable History, Targets and AMD PetaLinux. Its log is the Embedded Linux output channel, which records sessions, commands and project reads, never credentials.

The Embedded Linux side bar with the Build Directory view: machine, distribution, layers with priorities and release series, and images of an NXP i.MX build directory.The Embedded Linux side bar with the Build Directory view: machine, distribution, layers with priorities and release series, and images of an NXP i.MX build directory.

What is built, by task

TaskPageState
Reach the build server over SSH, trust its key, run commands, edit its filesSet up the build hostModelled on Linux (localhost sshd)
Open the build directory: machine, distribution, layers, images, recipes, kas, Buildroot; manage layersThe build directory and layersModelled with real BitBake 2.8.1
Read and change local.conf, machines, distributions and configuration fragmentsBuild configurationModelled with BitBake 2.8.1 and 2.18.0
Edit recipes, follow require and inherit, see why a variable has its valueBitBake recipes and Variable HistoryModelled with BitBake 2.8.1
Build an image, a recipe or a task with Ctrl+Shift+B, failures in ProblemsBuildsModelled; no image build
Compare builds from build historyBuild historyModelled on test repositories
devtool modify, build, finish, deploy; new recipes and upgradesdevtoolModelled with poky scarthgap devtool
Applications built with the SDK, clangd with the sysrootSDK applicationsModelled with a stand-in SDK
Cppcheck with MISRA, sparse, checkpatch.plStatic analysisModelled with real tools
Boards over SSH: files, copy, terminal, rebootTargetsModelled with stand-in boards
A board's processes, services, kernel log and boot timeThe board's system and boot timeModelled on QEMU and a container
Debug an application on the board, attach, core dumpsDebug on the boardModelled with x86_64 stand-ins
Kernel configuration and fragments; kernel oops decodingKernel configuration and crash reportsModelled; kernel_configcheck never run
Device trees, overlays and KERNEL_DEVICETREEDevice treesModelled with dtc and fdtoverlay
Write the image to a board; partition layout with wicImages and partition layoutModelled; no board written
Start the build's image in QEMUQEMUModelled with a stand-in image
RAUC, SWUpdate and Mender packagesUpdate packagesModelled on stand-in boards
Package feeds and the board's package managerPackage feedsModelled with opkg
FIT signing with an HSM; dm-verity, IMA and EVMVerified boot and file system integrityModelled with SoftHSM and veritysetup
SBOM and CVE triageSBOM and CVEsModelled with real cve-check output
Licence review against a company policyLicence complianceModelled
Mirrors, offline builds and fetch evidenceSources and mirrorsModelled with a local mirror
testimage, ptest and coverage on the boardTests and coverage on the boardModelled with stand-in boards
perf, Valgrind Memcheck and MassifProfiling and memory checkingModelled with stand-in boards
ftrace, trace-cmd and LTTngKernel and system tracesModelled on QEMU arm64
PetaLinux projects and the AMD Yocto flowAMD PetaLinuxChecked against AMD's project files; no PetaLinux command run

Settings, confirmations and the hardware team's test steps are in Reference and testing. What is not built yet is listed in What's next.

How it relates to the Embedded module

Embedded Linux is its own module. It shares the Embedded module's process host, environment gate and log channel, the clangd client, the GDB/MI debug session and Cppcheck's check groups. Cortex-M firmware on the same SoC (for example the i.MX 8M Plus Cortex-M7) is built and debugged by the Embedded module.

The serial console for U-Boot and kernel logs is the Embedded module's Open Serial Monitor: typing at the U-Boot prompt, the kernel log and the login prompt go through it. It has run only between two virtual serial ports on Linux, never on a real board's console.

Agents use the same services: listing and reading are read-only agent tools, and every command, build, devtool action, board write, signing and update is a tool that always asks the person first.

Next: Set up the build host.

Last reviewed 17 October 2026View as Markdown

Embedded Linux (early development) · Docs · Neural Inverse