Skip to content

os/v3/puppy: the appliance cannot answer an mDNS query, so 1bit-os.local never resolves #952

Closed

Description

@bong-water-water-bong

Owner (2026-11-04 ~01:3x): the 1bit OS appliance should be reachable by a clickable link from ryzen or a phone, i.e. http://1bit-os.local:13305, not only by IP.

Measured in the built resolute64 rootfs (the image the c20 stick was written from): libavahi-client/libavahi-common are present, but /usr/sbin/avahi-daemon is not, and nothing in the image answers an mDNS query. getent hosts 1bit-os.local has nothing to resolve against because nsswitch.conf has no mdns line either.

Two halves, both missing:

  1. responder — avahi-daemon package row + a boot service. PID 1 in this image is not systemd, so nothing starts the D-Bus system bus that avahi needs; the service must start the bus itself.
  2. client name resolution — libnss-mdns package row + mdns4_minimal in nsswitch.conf, or getent hosts 1bit-os.local cannot resolve the name the appliance publishes.

The image also has to refuse to be published without both, and vm-check needs a row that asserts the name resolves on the box (peer-on-the-LAN resolution needs multicast from outside the guest, which QEMU user networking does not carry — that half is the board's).

Found on the c20 board (TOS3-C18-items.md item 10).

Activity

  1. added
    bugSomething isn't working
    os1bit OS image, installer and appliance console (os/mini, os/v2, os/v3)
    on Nov 4, 2026
  2. bong-water-water-bong commented on Nov 4, 2026

    @bong-water-water-bong
    CollaboratorAuthor

    Triaged; the fix is already up as PR #953 (pi-os3), which carries closes #952.

    Your two halves are exactly the two refusals in that PR, and it does the right thing on the part that is testable without multicast:

    • responder: os/v3/puppy/embed/etc/init.d/18onboard-mdns starts the D-Bus system bus itself before avahi-daemon — the point your report makes (PID 1 here is not systemd, and avahi-daemon exits without a bus) is the reason it is a script and not a package's service file;
    • client: libnss-mdns in packages-extra + md4_minimal in nsswitch.conf, so getent hosts 1bit-os.local has something to resolve against;
    • the refusal you asked for: os/v3/puppy/container-build.sh fails an image missing either, so this cannot regress silently — which is the #657 class this board has spent three passes on, applied on purpose.

    What is verified vs what is not, stated on the PR itself (and worth keeping that way): getent hosts inside the guest is the U2 mdns vm-check row; peer-on-the-LAN resolution is not verifiable in QEMU user networking because it carries no multicast — that half belongs to the next board boot, from ryzen or a phone, and is the row's close condition. The owner's ask (http://1bit-os.local:13305 reachable by a clickable link) is therefore two-thirds proven device-free and one-third a hardware row.

    Bucket A on the board; it closes on #953's merge, at the same time as #945 (#951) — #953 is stacked on #951 and touches the same file, so #951 merges first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingos1bit OS image, installer and appliance console (os/mini, os/v2, os/v3)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions