Technical data from systemlog!

Hi, I’d like to share some key points about this new platform. Yes, it really is a completely new platform. :star_struck:
This information was extracted from the system registry, a very long 3.44 MB file! (Technical data from systemlog! - #28 by irro94)
Then, because I’m lazy, I fed it to ChatGpt, and this is the result.
So, basically, a new ARM SOC, A-57 + M7.
Is 8 GB the amount of RAM, or does it mean NAND used as the working/scratch directory?

Let’s work together to learn more about our new TV!


Key Facts (summary)

  • Linux Kernel: 6.12.34, PREEMPT_RT build, compiled with GCC 13.2.0 (Mon Jun 30 2025);

  • SoC / CPU: NXP i.MX8MP (rev 1.1), ARM64 platform, 4 CPUs enabled; detected CPU features like CRC32, VIPT I-cache;

  • Memory: ~8 GiB total (8,388,608 KB) with CMA reserved ≈ 960 MiB;

  • Storage:

    • SDXC card mmcblk1 (label: SD64G — ~58.3 GiB)
    • eMMC mmcblk2 (DG4008 — ~7.28 GiB) with multiple partitions (p1–p4).
    • Filesystems in use: exFAT, FAT, ext4, squashfs.
  • Boot / updates: A/B partition scheme (rootA/rootB). Current boot is rootB. Kernel cmdline shows bootpartition=boot0, activeroot=rootB, conf=esp5, board_rev=v3.1. Logs show first boot after update.

  • Init / userspace: systemd 255.4 in use. Application stack includes esp5-engine (mb-engine), ui-client, audio stack (pipewire, wireplumber, pw-jack), update system swupdate (v2024.12.1). Custom scripts mb-* (fuses, license-check, update-check, system-setup).


Hardware Details

  • SoC: NXP i.MX8MP rev 1.1. Quad-core ARMv8-A (A53 class cores). SMP shows 4 CPUs online;

  • RAM: ~8 GiB detected, with ~960 MiB reserved CMA;

  • On-chip / chipset: i.MX8 pinctrl, imx-pgc power domains, imx-sdma DMA, CAAM crypto engine (caam 30900000.crypto);

  • Power / PMIC: ROHM BD71837 (bd718xx), with multiple bucks/ldos configured;

  • RTC: rtc-ds1307 on I²C, used to set system clock;

  • Storage:

    • mmc1 → SDXC card SD64G ~58.3 GiB (partition exFAT).
    • mmc2 → DG4008 ~7.28 GiB with boot0/boot1/rpmb partitions;
  • USB: xHCI controller (USB 3.0 SS supported). Plug/unplug events logged.

  • Audio: codec driver cs42516 present; ALSA initialized, though at times reports “No soundcards found.” PipeWire/WirePlumber running;

  • Serial: UARTs ttymxc0, ttymxc2, ttymxc3 registered (baud 1500000);

  • Watchdog: imx2+ watchdog active on /dev/watchdog0, timeout 30s;


Software / OS

  • Kernel: Linux 6.12.34 (PREEMPT_RT, GCC 13.2.0). KASLR disabled (no seed available);

  • Init system: systemd 255.4. Units and timers for overlays, services, custom daemons.

  • User services / apps:

    • Core engine: esp5-engine (mb-engine)
    • UI client: ui-client
    • Audio stack: pipewire, wireplumber, pw-jack, sequencer, audiograph
    • Update system: swupdate v2024.12.1
    • Custom scripts: mb-fuses, mb-license-check, mb-update-check, mb-system-setup
    • Standard daemons: dbus-daemon, polkitd

Configurations (boot & mounts)

  • Kernel cmdline: activeroot=rootB bootpartition=boot0 board_rev=v3.1 conf=esp5 rcutree.kthread_prio=95. Defines which root is active and selects config esp5;
  • Mount points in logs: /apps, /data, /var/volatile, /shared, /srv, /data/log/coredump, /mnt/sdcard. Overlay mounts for /apps cleaned at shutdown. Some partitions busy/unmountable at shutdown (/data).
  • Networking / Bluetooth: warnings show org.bluez and net.connman services not running — likely not included/enabled;

Runtime Notes / Errors

  • Engine failures: repeated "failed to connect to the engine" (UI-client can’t reach IPC socket).
  • Crash: mb-engine thread panic (tokio runtime worker), attempted core dump.
  • Unmount issues: /data sometimes still busy at shutdown;

Product / Branding Clues

  • Names in logs: machbike0, mb-*, esp5, Elektron.
  • Paths like /mnt/sdcard/Elektron/Tonverk Factory Library.
  • Suggests this is firmware for an Elektron audio hardware device, likely with embedded Linux, custom engine (esp5-engine), and audio libraries.
  • Fuse/license checks performed at boot (Verified OK);

8 Likes

serial devices enabled? wonder if we can get a shell :grimacing:

1 Like

Pipewire? Really? Facepalm
Will check full log when my TV will arrived.

2 Likes

Just type in the secret password which contain only the letters of the notes of the musical scale …

Real time linux. Amazing platform. Needs amazing devs. They sure have.

1 Like

I haven’t delved into Linux audio APIs in quite a while.

What is considered the best in class framework for low-latency, real-time audio these days?

Does anyone have any insights on how the multisampler handles memory?

I’m trying to generate multisamples outside the tonverk and so far i’ve managed to generate patches that reads up to 32 velocity layers, and then crashes.

In this case I’ve used arbitrary trim-start and trim-end points, and looking more deeply into the .elmulti files that the TV generates, i noticed that every trim point is placed at a multiple of 512

The multisample recorder allows recording for 128 velocity layers across 128 keys which amounts to a whopping 16384 slices (in theory)

To handle this amount of data and to quickly jump from a point to another, I’m assuming there must be some buffer allocation going on (which might explain the crashes due to buffer misalignment or something), but I’m quite new to all this so I’m wondering if I’m not missing something obvious

I’ve tried adding padding so that each slice’s sample length is a multiple of 512, 1024 or 2048, but in every case it crashes at layer 32

Any tips greatly appreciated
Thanks !

Maybe something like this?

Do you know how much memory the multi sample in question is using?

I’m pretty sure it’s pipewire, but to be honest I work with linux all day so when i’m home and don’t want to fiddle with things I use a mac :rofl:

Do you mean the audio file size? I’m using pretty short drum loops and it doesn’t seem to make a difference whether they are split in separate files or aggregated into a single file.

Here is a typical audio sample I use, roughly 1MB

Channels       : 2
Sample Rate    : 44100 // I handle the conversion to 48000 on export
Precision      : 16-bit
Duration       : 00:00:02.43 = 107328 samples = 182.531 CDDA sectors
File Size      : 429k
Bit Rate       : 1.41M
Sample Encoding: 16-bit Signed Integer PCM

When i concatenate 127 audio files the resulting audio file is around 100MB

Channels       : 2
Sample Rate    : 48000
Precision      : 16-bit
Duration       : 00:02:41.60 = 7756934 samples ~ 12120.2 CDDA sectors
File Size      : 31.0M
Bit Rate       : 1.54M
Sample Encoding: 16-bit Signed Integer PCM

Ah ok. The obvious first thing would have been you were running out of memory.

You said you’re generating the multi samples outside of tv? I wonder if as a control we could test a tv generated multi sample of similar complexity to eliminate that as a source of error.

A weird thing is that even when using duplicate markers on the velocity layers pointing to the same audio buffer region / file, it still crashes at 33

For example if i define the same settings for all 127 velocity layers (instead of just 1 and let Tonverk duplicate them on its own), it still crashes

It’s driving me nuts

Yes ! A Tonverk *.el* file validator would be a godsend

I’ve generated a 128x128 multisample file with super short silent samples (50ms or so) and although the .elmulti file I generate seems to match its structure, my TV crashes
128x128.emulti (3.0 MB)

Edit: 128x128 generated on the TV

1 Like

Generated on the TV? the 128x128 multi sample i mean.

Yes

Welp, then that seems to be evidence of a bug then. Are there any factory multi samples that are as complicated?

Maybe I’ll buy one to try to hack it :sweat_smile:
Have some experience with imx8 platform. Maybe it’s time to apply to Elektron!

3 Likes

It just occured to me that i haven’t even tested thouroughly the Tonverk generated 128x128 multisample.

It crashes above velocity 32 !
Gosh I’m so dumb
Thank you for saving what’s left of my sanity

1 Like

You’re very welcome! I’m glad I could help even a tiny bit :slight_smile: