Skip to content

← Firmware Downloads

Post-install setup · Reborn (Y2Linux) · Y2

The radio daemon (y2-radiod)

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

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

The radio daemon (y2-radiod)

Since Beta 9.3 one process owns Bluetooth and both radios' power. It replaced five owners that coordinated through lock and intent files (Reborn's D-Bus worker, y2-platform bluetooth-power, y2-bt-reconnect, the sleep helper's radio steps, the kernel's own recovery). Why and how it was planned: BLUETOOTH-REIMPLEMENTATION-PLAN.md.

Pieces

PieceSourceJob
Arbiter (main thread)platform/crates/y2-radiod/src/arbiter.rsWi-Fi power (per-device rfkill, never the type, F37), the wake order (Wi-Fi waits up to 12 s for the headset connected before the sleep), the codec ceiling while Wi-Fi is on (/run/y2/bt-codec-ceiling), Wi-Fi power save following Bluetooth streaming, the published state
Bluetooth controller (one thread)src/bt/BlueZ and BlueALSA over the system D-Bus; every long call asynchronous with its own deadline
Socket serversrc/server.rs/run/y2/radiod.sock, root only, one JSON object per line (y2p_contract::radiod)
y2-radiod ctlsrc/ctl.rswhat y2-radio (boot, sleep, shutdown) asks; without the daemon it switches the radios directly

Contract

Requests (Request) describe a wish, never a step, and are answered at once (Reply); only a sleep's power-down is answered when it is done. Subscribers get every new State; /run/y2/radiod-state.json holds the latest. Reborn keeps one Status built from it (Y2Reborn/crates/reborn-platform/src/bluetooth.rs); a connected headset that is not Ready yet is settling and not playable. Before opening BlueALSA's stream Reborn takes a Stream lease; no codec changes while one is open.

Bluetooth controller

Records

RecordWriterReaders
/data/bluetooth/enabled, /data/network/enableddaemon (owner's switches)daemon, sleep helper
/data/bluetooth/preferred-audiodaemon (the trusted headset that connected last)daemon
/data/bluetooth/radiod.jsondaemon (codec choice, devices that connect only when asked, #78)daemon, error reports
/data/bluetooth/codec-history.jsondaemondaemon
/data/system/platform/bluetooth-journal.jsonldaemon (state changes, calls, disconnect reasons, recovery)error reports
/run/y2/radiod-state.jsondaemonservice daemon (coexistence, Wi-Fi power save), error reports

status asks the daemon on its socket for bluetooth.reconnect. BlueZ's and BlueALSA's objects and the encoder statistics in status still come from y2-bt-observe (read-only).

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