Skip to content

← Firmware Downloads

Post-install setup · Reborn (Y2Linux) · Y2

DEV-02 live platform qualification — 2026-09-10

Debian-based Linux with a fast clickwheel interface for the Innioasis Y2.

Instructions published by the project, shown here word for word.

DEV-02 live platform qualification — 2026-09-10

> **Historical record.** The dates, candidate identity, "current" claims, > next steps and permissions below belong to this recorded boundary. See > [current state](../CURRENT_PLATFORM_STATE.md) for the latest physically observed result.

The physical Y2 runs Buildroot successfully with expanded RAM, four CPUs, removable-SD root, native display and all tested controls. **USB reconnect fails: the first unplug removes both ACM and Ethernet, and reconnect does not enumerate.** The owner reports that USB works again only after restarting the Y2. No restart was initiated by the assistant. The owner subsequently restarted the Y2: USB/SSH returned at uptime33.32s, down from1595.34s, with the tmpfs token missing. This proves restart recovery, not reconnect continuity. The second cycle was not performed because the first was not clean.

M2's generic core/Buildroot foundation is substantially qualified. Keep #27/#28 open for the real reconnect blocker, not the superseded RAM/input/display/SD research sequence. The later platform phases remain ahead of application work.

Evidence and identity

Complete command stdout/stderr and raw evdev bytes are retained in the evidence directory. SHA256SUMS identifies the final files; session.json distinguishes owner observations from machine measurements. The source checkpoint is a34a360, with pre-existing uncommitted DEV-02 implementation preserved. No kernel build, BOOTIMG packaging/flash, eMMC write, raw physical-memory access or arbitrary debugfs register write occurred during this pass.

uname identifies 6.18.0-y2linux-dev02; the live flattened DT SHA-256 is 57d774abaf2d410bbfbd5ec8956f7f3c4a35bf3120611fadb474cd51c12947e7, matching the built DEV-02 DT. The entire flashed BOOTIMG was not read back. The installed userspace build ID and USB serial intentionally retain Y2LINUX-DEV-01.

Physical result and failure classification

Classes: A working within the measured scope; B userspace/configuration; C driver/kernel work; D hardware acceptance requiring a subsequent kernel candidate test; E later platform work. An unavailable optional diagnostic is not proof that the underlying hardware failed.

SubsystemActual physical status / errorsClassAnother kernel flash?
Root/initBuildroot 2025.02.17, BusyBox PID1 on ext4 /dev/mmcblk0p1; not rescueANo
Removable SDY2ROOT UUID 79324c69-6e75-4801-8000-000000000001, controller 11240000.mmc; file hashes and successful persistent userspace update/readbackANo
SD operating mode13 MHz, one bit; 512 MiB ext4 inside a 119.1 GiB partition. Partition type byte remains 0x0b; actual filesystem is ext4. No resize/type rewrite attemptedA, deliberate development limitsNo
Internal eMMCmmc@11230000 disabled in live DT, no platform host/block/partition device; unmounted. No live CID is exposed to readA protectionNo
CPUsFour online, CPU0–3; cross-CPU/timer interrupts advance, interrupt error count zeroANo
RAMMemTotal 954660 KiB; 256 MiB short allocator test passes; exhaustive run capped at 600 secondsA bounded qualificationNo
ButtonsPrev 105, Menu/Back 158, Next 106, Play/Pause 164, Select 28, Volume− 114, Volume+ 115, Power 116; balanced EV_KEY press/releasesANo
Wheel/I2CBoth KEY_UP 103 and KEY_DOWN 108; 52 wheel IRQs and 52 I2C completions at the retained snapshot; no -110 regressionANo
DisplayOwner confirms white/red/green/blue plus checkerboard; active native DRM/fbcon. Standard fb0 unblank/readback worksA/BNo for visible output
Pattern diagnosticInitial/live pattern checks match; later startup checks mismatch with the fbcon cursor active. Two cursor-hidden checks and the corrected helper pass; cursor handling fixed in userspaceB fixedNo
SSH/USB EthernetRoot ED25519 authentication succeeded; usb0 10.42.0.1/24; host static USB profile fixedA before detach; B host fixedNo for initial connection
USB reconnectHost records disconnect at 21:32:50 CEST; owner reconnect does not produce enumeration, ACM, Ethernet or SSHC likely / D requalificationLikely; exact device-side cause unobserved
CDC ACMEnumerated during live boot. Initial LOG1 attempt hit host EACCES; scoped uaccess rule installed. After owner restart, LOG1 transfers61463bytes in12s with protocol headerA transfer / B host fixedNo for ACM transfer; reconnect still fails
PMIC/core busesPWRAP/MFD/regulators, PMIC key, GPIO/EINT, I2C and SD consumers operate; USB presence power_supply reports ONLINE=1 before detachA narrow coreNo
Services/runtimesyslogd, klogd, observer, crond and Dropbear PID files point to live processes; rescue mount options and module-index mismatch fixedA/BNo
Time/network/entropyWall clock starts in 1970, no RTC class; CRNG initialized at 153.97 seconds before key generation. No USB default route/DNS is intentionally configuredE; development limitationsNo current core flash
AudioNative ALSA/ASoC, AFE, CS43131, amplifier, routing and jack operation not qualifiedE / M3Later integration
PowerBattery/charging/thermal, cpufreq/cpuidle, suspend/wake, shutdown/reboot unqualified; USB presence is not battery telemetryE / M4Later integration
Radio and GPUWi-Fi/Bluetooth/firmware/calibration/BlueZ and GPU/lima not qualifiedE / M5 and final platformLater integration

Memory accounting and bounded test

The described bank is 992 MiB, [0x80000000,0xbe000000). The 40 MiB loader guard, 1 MiB in-bank high reservation and 16 KiB low guard leave 973808 KiB = 950.984375 MiB before ordinary kernel reservations. Actual MemTotal is 954660 KiB = 932.28515625 MiB. The remaining difference is 19148 KiB (18.69921875 MiB), covering kernel/static and early allocation overhead, including memory-management structures. It is not missing addressable RAM and is not current userspace memory consumption. The boot log gives the early kernel/reserved breakdown; freed boot allocations make the later MemTotal differ from the early Memory: ... available value.

HighTotal is 228352 KiB. During allocator testing HighFree fell to 872 KiB and Mlocked reached 262144 KiB, corroborating substantial use of HIGHMEM through the normal allocator. MemAvailable stayed at least 656140 KiB in recorded samples. No /dev/mem, reserved range, physical address selection or swap was used.

03-ram.txt retains memtester 256M 1, periodic meminfo/dmesg, and deliberate termination at 600 seconds (exit 143). Address, random, arithmetic, sequence and solid-bit tests completed; the exhaustive block/bit-pattern suite did not finish. This is not a full-suite pass. To obtain a completed short qualification, 11-ram-short.txt runs 256 MiB with mask 0xff: stuck address plus random, XOR/SUB/MUL/DIV/OR/AND and sequential increment. All pass, memory is locked, and both helper and SSH return zero in about 39 seconds. No mismatch, OOM, oops/panic, allocation fault or memory corruption message was observed. This does not certify overnight stress, every RAM page or all inherited DMA.

Display inspection

DSI-1 is connected/enabled with one 480×360 mode. CRTC 55 is enabled/active, plane 35 uses fb 56 allocated by fbcon, XRGB8888 (XR24), pitch 1920, GEM allocation 692224 bytes. fb0 maps 691200 visible bytes. The boot driver's safe diagnostics report GEM DMA and OVL scanout both 0x84900000, match=1. The fbdev smem_start and generic GEM debug start report zero; those fields must not be interpreted as the live DMA address.

Boot vblank samples advance 18→86→154→221. Live IRQ/state snapshots were retained; no generic live vblank counter file exists in this build. fbcon vtcon1 is bound. Backlight reports brightness/actual/max 32. fb0 initially reports blank=4 while the DRM CRTC is active. Writing 0 through its supported sysfs interface succeeds; the explicit live pattern checksum matches a40f4cc5 and the owner confirms physical visibility. Consoleblank is already zero; a timeout is not established as the original cause. A later startup-helper check mismatches with fbcon cursor active. Two checks with the cursor temporarily hidden pass, as does the revised startup helper. Cursor hiding/restoration now brackets the checksum in canonical S25y2-pattern. No new display kernel is required for this correction.

USB failure and next evidence boundary

reconnect-events.json starts with uptime 1595.34 seconds and a tmpfs continuity token, then records physical USB removal. The host kernel records removal of device 22 and cdc_ether. After the owner confirms reconnect, no new Y2 USB device appears and repeated bounded SSH attempts time out. The owner says it works only after restarting. The owner then explicitly restarted the Y2. USB device23 and SSH return with uptime33.32s and the original tmpfs token missing; the monitor correctly rejects boot continuity. Its old parser puts the next uname line in the missing-token field, so that literal field is not a boot token; fixed parsing now emits MISSING. The470.29s host absence includes waiting and the owner restart, not a controlled 10-second successful reconnect. No second unplug cycle follows.

The exact running adapter in kernel/usb/y2_musb.c polls PMIC presence, detaches the MUSB controller and restores digital session inputs, then gates re-entry on power/clock/PHY/DMA state. A failed gate becomes terminal teardown. Host evidence localizes the problem before networking, but cannot distinguish a failed guard, disconnect callback/lifecycle failure, missing pullup or lost device execution. Existing fixtures substitute upstream callbacks and cannot prove this hardware path. Do not remove the safety guards or invent a register correction from the host timeout. A recovered device-side detach/reconnect log/status is the next smallest evidence boundary; a USB-focused integrated DEV-03 may then be justified. No BOOTIMG was prepared merely to add diagnostics missing from userspace.

Reproducible userspace changes and remaining validation

Real Buildroot defconfig resolution preserves all planned diagnostic selections. Targeted shell/Python syntax, archive hash/path checks and the existing removable root-selection rejection test pass. Live readbacks verify the applied module and runtime corrections. Whole-tree whitespace checking reports pre-existing patch context whitespace in 0008-mt6582-i2c.patch; that unrelated work is preserved. The owner restart revalidates persistent Buildroot, runtime mount permissions, module indexing, key identity and automatic host network setup. No assistant reboot or controlled clean-shutdown test was performed. /var/log points into volatile /tmp, so old kernel logs cannot be recovered after restart. The new y2-usb-record helper is explicitly invoked, bounded to at most600seconds, checks removable Y2ROOT, and retains dmesg plus existing cached USB status on SD. Its five-second connected smoke test passes; it neither changes USB state nor starts automatically. A future targeted failure capture can use it without a new kernel.

Roadmap decision

The satisfied narrow #22–26 research/bring-up issues are closed, with their remaining production/long-run concerns explicitly assigned to #29–32. Issues #27 and #28 remain open for USB reconnect recovery; optional physical UART #16 remains separate. After core reconnect qualification: M3 complete native audio; M4 full power; M5 Wi-Fi/Bluetooth; GPU/lima and final whole-platform qualification. Only then begin Y2PlayerNative. This newer owner gate supersedes the earlier wording that allowed the application workstream after only a wired-player vertical slice.

Published by the schulzcode/y2linux project [1] [3]