Repository navigation
Releases: b0bbywan/odioctl
Release list
v0.4.1
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, sodtparam=audio=offlands on the base device tree.
Checked on a Pi B+ with an EEPROM HiFiBerry DAC+:Ignoring HAT overlay,
then one load. odioctl dac set onboardis gone, and its sudoers line with it.
Full Changelog: v0.4.0...v0.4.1
v0.4.0
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 withodioctl 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.6
v0.4.0-beta.5
v0.4.0-beta.4
v0.4.0-beta.3
v0.3.2
⚠️ 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 leavesdtparam=on the base DTB, so the
emptydtoverlay=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