Skip to content

Releases: b0bbywan/odioctl

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 17 Oct 12:35

Highlights

The settings page's DAC section becomes Audio HAT, and the board you pick is
the only one loaded, even when its EEPROM tries to configure it on its own.

  • Audio HAT: only HATs are listed, the Pi's own audio is what Reset gives back (#19).
  • HATs with an EEPROM: the board picked here is no longer loaded twice (#19).

⚠️ Picked a HAT in 0.4.0? Apply it again

The new block only lands in config.txt on the next Apply: pick the same HAT,
Apply, reboot. Until then, the 0.4.0 block keeps working as before.

🔊 Audio HAT

  • The list holds HATs only: DACs, amps, digital outputs. "Onboard audio" is no
    longer an entry: Reset gives config.txt back as it was, and Raspberry Pi
    OS already turns the jack on there. An onboard block written by 0.4.0 is
    shown as such, and Reset removes it.
  • HATs with an EEPROM (HiFiBerry, IQaudIO, Raspberry Pi…) load their own
    overlay at boot. Picking one now sets that aside, so only the board you picked
    is loaded; before, both were. Without a pick, the HAT keeps configuring itself.
  • USB DACs need nothing here: the section points to Audio Server › Default
    Sink
    .
  • Apply stays greyed out until a HAT is picked.

🔧 Under the hood

  • The block opens with an empty dtoverlay=, the firmware's documented way to
    skip a HAT's overlay, so dtparam=audio=off lands on the base device tree.
    Checked on a Pi B+ with an EEPROM HiFiBerry DAC+: Ignoring HAT overlay,
    then one load.
  • odioctl dac set onboard is gone, and its sudoers line with it.

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 18:55

Highlights

Disabling a component now actually removes it: its services stop on the next
upgrade, where they used to keep running, just no longer updated.

  • Components: a disable is carried out by the next upgrade (#16).
  • Settings page: also reachable through odio's main web UI (#12).

⚠️ Components disabled before this release are still running

odioctl used to only stop updating a component you disabled: its services kept
running. This release does not go back over them. To stop one, enable it, apply
the upgrade, then disable it and apply again.

🎵 Components

  • Disabling a component marks it "on its way out": the upgrade card lists it,
    and Apply stops its services before the rest of the upgrade runs. Until
    then, one click on the component keeps it.
  • Disabling a role takes its features with it. Enabling it again later brings
    them back.
  • If the removal fails, nothing else runs and the component stays pending:
    the next Apply tries again.
  • The list of components, their groups, labels and versions all come from the
    odios release: a new role shows up without a new odioctl.
  • The Audio group opens with the audio server in use. It is PulseAudio for
    now; once an odios release offers PipeWire, it becomes a choice there.

🖥️ Settings page

  • odio's main web UI can serve the page under its own address, so it no longer
    needs port 8021. Port 8021 still works.

🔧 Under the hood

  • odios now records each install through odioctl (odioctl state record), and
    reads it back with odioctl state show.
  • The login banner is odioctl motd, no longer a script that started Python at
    every login.
  • The DAC block goes first in config.txt (already in 0.3.2).

Full Changelog: v0.3.2...v0.4.0

v0.4.0-beta.7

v0.4.0-beta.7 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Oct 17:42

What's Changed

Full Changelog: v0.4.0-beta.1...v0.4.0-beta.7

v0.4.0-beta.6

v0.4.0-beta.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Sep 19:07

What's Changed

Full Changelog: v0.4.0-beta.1...v0.4.0-beta.6

v0.4.0-beta.5

v0.4.0-beta.5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Sep 17:32

v0.4.0-beta.4

v0.4.0-beta.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 20:07

What's Changed

Full Changelog: v0.4.0-beta.3...v0.4.0-beta.4

v0.4.0-beta.3

v0.4.0-beta.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Sep 13:51

What's Changed

Full Changelog: v0.4.0-beta.1...v0.4.0-beta.3

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 20 Sep 13:08

⚠️ Onboard audio: re-apply your DAC setting after upgrading

Until this release, odioctl dac wrote its managed block at the end of
/boot/firmware/config.txt. With onboard, its dtparam=audio=on then landed
after dtoverlay=vc4-kms-v3d, which had just disabled snd_bcm2835's legacy
HDMI card — so that dead card came back. Symptoms: two "Built-in Audio Stereo",
vchi message timeout in the journal, and a PulseAudio that settles on the dead
card and stops answering.

Only onboard is affected: every other entry of the catalog writes
dtparam=audio=off.

Upgrading the package is not enough — config.txt is rewritten only when a DAC
is set. From the Settings page, pick your card and press Apply, or:

sudo odioctl dac set onboard
sudo reboot

After the reboot, aplay -l should list bcm2835 Headphones and vc4hdmi, and
nothing else.

Fixes

  • dac: the managed block goes first in config.txt, before the file's own
    overlays. Being first is also what leaves dtparam= on the base DTB, so the
    empty dtoverlay= reset the trailing block needed is gone.
  • web: Apply judges "nothing to apply" on what config.txt would become, not
    on the selected id — a block written by an older odioctl carries the same id,
    so the page could never move it.

Full Changelog: v0.3.1...v0.3.2

v0.4.0-beta.2

v0.4.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Sep 21:40

v0.4.0-beta.1

v0.4.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Sep 19:41

What's Changed

Full Changelog: v0.3.1...v0.4.0-beta.1