Skip to content

← Firmware Downloads

Post-install setup · Reborn (Y2Linux) · Y2

Y2Linux 1.0 Beta 8.6 (Baseline 94)

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

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

Y2Linux 1.0 Beta 8.6 (Baseline 94)

Status: PUBLISHED as GitHub release baseline-94 (2026-10-18). Release 1.0.0-beta.8.6, Reborn 1.0.0-beta.8.6, kernel 6.18.56-y2linux-1.0.0-beta.8.6, update sequence 6800, Linux fd32cdb, Reborn cefcc8a. Built with tools/production/release.py (148 s): container suite 778 OK, host suite 805 OK, Reborn 539 tests, fmt and strict Clippy; all seal checks PASS, no MediaTek firmware in any image. Test build 94 on the owner's player is exactly this release. Milestone audits AUDIO-REVIEW-8.5 and BETA-8.6 in roadmap-gap-audit; guide: Headphone output.

ImageSHA-256
BOOTIMG51a5c6a30065cf7f62393eb875c8f5d4f068fd28cdb34fd772f6a727d67f17fc
Y2ROOT91b1d6162c476f064d74eccf2438e871b248e9d1217bfe99a75332c0da3f37cc
RECOVERY7da688f91abd681116b0dd5ca3a626caa42f0ad234ae218cceb0b7569e4abf19
Y2DATA (no SSH key)d2a777efd876a08f6b8695193a90863d74e23655109ed4a92af377fa5d0430db

What changed

A review of everything in audio playback after Beta 8.5 (owner: "do it all").

PartChange
Kernel level writeThe headphone level's PDN_HP check and the OUT_FS/HV_EN write run under the card's DAPM mutex: a stream powering up at that moment can no longer get the level written with the amplifier on (DS1155F2). y2_hp/hpload_measure refuses an open stream (EBUSY) and holds DAPM while it measures. Linux 0c8e7f5, tests/test_hp_level.py models the lock.
No loudness jumpsA fade-in carries over when the stream restarts during it (Next, a seek, another rate); volume up during a fade keeps fading; sound settings that play ≥ 1 dB louder (a profile turned off, a boosting preset, Normalize changed) fade in over 2 s.
Held pauseEvery sound-settings change gives a held pause's stream back, so Play uses the new settings; choosing the Headphone Level already in use no longer restarts the song.
BatteryAn equalizer or profile no longer asks for the heavy playback class (747.5 MHz floor, 1 ms wake-up limit); only crossfade does. The FFmpeg filter graph runs on one thread (bit-identical output).
ProfilesThe clip-safe preamp covers source rates 44.1–384 kHz (six shipped profiles 0.1–0.4 dB lower, e.g. AirPods Pro −6.0 → −6.1, Sony WF-1000XM4 −7.7 → −8.1; HD 650 unchanged). The license file no longer appears as a profile.
TestsFFI layouts pinned on both sides, sanitize idempotence, hi-res preamp, a full 10-filter profile with ReplayGain +6 dB on a new near-full-scale fixture at S24/S16 (limiter holds; without it the output clips), the real shipped-folder scan.

Device results (owner's player, test build 94 = this release, 2026-10-18)

Buttons were pressed over SSH by writing input records to the player's own input devices; the screen was read with the capture tool.

CheckResult
InstallStage + apply over SSH, ≈16 s, Acknowledged 6800; SMI hold at boot as in 8.4/8.5
Profile listK → M without "LICENSE-AutoEq"
Profile off / on while playingOff: dsp_rise_fade 2000 ms; on: no fade, preamp −6.1 dB (AirPods Pro)
EQ change in a held pausepause_released, position kept
Checked level pressed againNo restart
High while playing, Next after 0.7 slevel_raise_fade, then fade_continued with 907 ms left
RegistersPlaying Low 0xA6 / 0x10 / 0x1C, High 0x30 / 0x1E, Live matches, Master −19.5 dB, 0 xruns
hpload_measure during playbackEBUSY
AirPods Pro profile, 60 s, same song8.5: CPU floor 747.5 MHz throughout, Reborn 17.9 % of one core (playback 12.0 %), 68 248 idle entries/min. 8.6: floor 598 MHz (average 608), playback thread ≈75 MHz (≥16 % fewer cycles), 30 443 idle entries/min. Profile off: playback ≈29 MHz

Known gaps

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