Repository navigation
Ubuntu 26.04 install path: the PPA's lemond runs our HRX llama-server - #483
Conversation
The Lemonade PPA's lemond (2026.42.1~26.04) has no onebit recipe, and the fork's Debian 13 .deb needs libcpp-httplib0.41, which 26.04 lacks. The stock lemond's HRX recipe (llamacpp-hrx) takes its llama-server from LEMONADE_HRX_HRX_BIN / hrx.hrx_bin and then downloads nothing, so no Lemonade patch is needed: - config/lemonade/1bit-hrx.conf: systemd drop-in for lemond.service that sets LEMONADE_HRX_HRX_BIN to the package's lemonade-hrx. - scripts/lemonade-hrx: runs the package's HRX llama-server on Lemonade's argv, in the environment `1bit serve --print-backend-env` prints (strict placement, TheRock libhsa, CWSR placement, ternary decode), adding -ngl 99, --cache-reuse 256 and -kvu where Lemonade's argv leaves them out. - serve: --print-backend-env, the --print-backend env as NAME=VALUE lines. - scripts/install-lemonade-ppa.sh: post-install for the engine tarball: copies it to /opt/1bit, installs the drop-in, reloads and restarts lemond. - scripts/check-ubuntu-2604-lemond.sh: the whole path in a clean ubuntu:26.04 container (CPU stand-in, or --gpu on Strix Halo). - package-linux.sh packs the three files; tests/lemonade_hrx.sh and tests/print_backend.sh cover the wrapper and the flag. - weekly.sh: the lemonade-onebit tarball's --transform rewrote symlink targets too, so every libggml*/libllama*/libmtmd* soname link in 1bit/hrx/llama/bin pointed into a missing directory and the packaged HRX llama-server could not load its libraries (seen in the tosreh2 rehearsal package). Rename members only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Reviewer Guide 🔍(Review updated until commit facb331)Here are some key observations to aid the review process:
|
…x wrapper Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Persistent review updated to latest commit facb331 |
…nside Lemonade) (#488) - README: lead with the census (43/43 on the GPU, #476/#480/#481) and Qwen3.8-27B MTP 36.0/26.8/29.9 tok/s (#487); one hop (#475), strict placement (#482), hw-gate kernels and placement (#478/#484), allocation safety (#486), Ubuntu 26.04 PPA lemond (#483), ONNX on the NPU via the user's Ryzen AI install (#386); Vulkan/ROCm/CUDA/ZINC/ComfyUI/MLX/Windows cut (#306); no release date; NPU in progress with no speed numbers. - npu.md: a status page with the public parts only (model format, serving, add-on hook, build); no runtime method, no NPU speeds. - releases.md: "Releases", first release when the checklist is done; neutral package checks. - lemonade.md, serve.md, hrx.md, laya.md, PORTING.md, registry.md: one hop, MTP on HRX (#487), census lead, add-on wording without private repository names or NPU speeds. Co-authored-by: bong-water-water-bong <bong-water-water-bong@1bit.gg> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Gantt: "Install path on Ubuntu 26.04: PPA lemond + one engine package".
The Lemonade PPA's lemond (2026.42.1~26.04) has no
onebitrecipe. The fork's Debian 13.debcannot install on 26.04 because it depends onlibcpp-httplib0.41. This PR uses the stock lemond's HRX recipe (llamacpp-hrx) instead, with no Lemonade patch. lemond takes that recipe's llama-server fromLEMONADE_HRX_HRX_BIN, or fromhrx.hrx_binin config.json, and when that is a path it skips its own HRX download (Lemonade v2026.42.1BackendUtils::find_external_backend_binary). It forks and execs the backend with its own environment plusGGML_DISABLE_VULKAN=1, so variables set on the service reach llama-server.What's added
config/lemonade/1bit-hrx.conf: a systemd drop-in forlemond.servicethat setsLEMONADE_HRX_HRX_BIN=/opt/1bit/lemonade-hrx.scripts/lemonade-hrx: runs the package's HRX llama-server, with our HIP kernels, on Lemonade's argv unchanged. It gets the environment from1bit serve --print-backend-env, which also makes serve's architecture and memory checks:GGML_HRX_STRICT=1, TheRock libhsa, CWSR placement and ternary decode. Where Lemonade's argv leaves them out, it adds-ngl 99,--cache-reuse 256, and-kvuwhen--parallelis above 1. A value already set in lemond's environment wins.1bit serve --print-backend-env: the--print-backendenv asNAME=VALUElines.scripts/install-lemonade-ppa.sh: post-install step for the engine tarball. It copies the package to /opt/1bit, writes the drop-in to/etc/systemd/system/lemond.service.d/, then runs daemon-reload and restarts lemond.scripts/check-ubuntu-2604-lemond.sh: runs the whole path in a cleanubuntu:26.04container. It installs the PPA and the package, registers a model withllamacpp-hrx, then loads it and runs a chat. It passes only if lemond did not install its own HRX build and the running llama-server hasGGML_HRX_STRICT=1.scripts/package-linux.shpacks the three files. New ctestlemonade_hrx;print_backendcovers the new flag.Packaging fix found on the way (scripts/weekly.sh). The lemonade-onebit tarball's
tar --transform "s,^,lemonade-onebit-$tag/,"also rewrites symlink targets. In the tosreh2 rehearsal package, everylibggml*.so.0/libllama*.so.0/libmtmd*.so.0link in1bit/hrx/llama/binpoints tolemonade-onebit-rehearsal-tosreh2/..., so the packaged HRX llama-server cannot load its libraries. With theSflag only member names change.Verified (ryzen, no GPU, ROCR_VISIBLE_DEVICES=-1)
ctest -R "print_backend|lemonade_hrx": 2/2 pass.tools/copyright.py --checkis clean.scripts/check-ubuntu-2604-lemond.sh <package> Qwen3-0.6B-Q4_K_M.gguf: PASS, with lemond 2026.42.1~26.04 from the PPA. The model is listed asllamacpp-hrx, load succeeds, and the chat replies "2 + 3 = 5". lemond ran/opt/1bit/lemonade-hrxwith-m … --ctx-size 4096 --device HRX0 --port 8001 --jinja --metrics --parallel 1 -ngl 99 --cache-reuse 256and envGGML_HRX_STRICT=1 GGML_HRX_REPORT=1. A CPU stand-in replaced llama-server here.hrx-b99from ROCm/ggml-staging-automation intocache/bin/llamacpp-hrx.Still to run on Strix Halo (needs gfx1151), with a package built from main (libomp packed since #472):
Not merged; the Strix Halo run comes first.
🤖 Generated with Claude Code