Fix installer host integration
This commit is contained in:
+23
-2
@@ -24,14 +24,35 @@ optional, explicitly enabled fallback.
|
|||||||
|
|
||||||
## The extension is missing
|
## The extension is missing
|
||||||
|
|
||||||
Check that `metadata.json` has UUID `[email protected]`, copy the extension into
|
Re-run the installer so it registers the bundle through GNOME's extension
|
||||||
`~/.local/share/gnome-shell/extensions/[email protected]`, then run:
|
installer. The installer also keeps a copy at
|
||||||
|
`~/.local/share/gnome-shell/extensions/[email protected]`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fsSL https://git.ssh.surf/snxraven/gnome-jarvis/raw/branch/main/packaging/web-installer.sh | bash -s -- --enable
|
||||||
|
```
|
||||||
|
|
||||||
|
Then confirm `metadata.json` has UUID `[email protected]` and run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gnome-extensions enable [email protected]
|
gnome-extensions enable [email protected]
|
||||||
journalctl --user -b | grep -i jarvis
|
journalctl --user -b | grep -i jarvis
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If the extension still does not appear, log out and back in once so GNOME Shell
|
||||||
|
reloads its extension search path.
|
||||||
|
|
||||||
|
## The service reports `203/EXEC` for `/usr/bin/node`
|
||||||
|
|
||||||
|
Older installers wrote a fixed `/usr/bin/node` path. Re-run the current web
|
||||||
|
installer; it records the Node executable found in the installing user's PATH
|
||||||
|
when it writes the user service. Check the result with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl --user cat jarvisd.service | grep ExecStart
|
||||||
|
command -v node
|
||||||
|
```
|
||||||
|
|
||||||
## The daemon restarts
|
## The daemon restarts
|
||||||
|
|
||||||
Inspect `journalctl --user -u jarvisd.service`. Common causes are Node version,
|
Inspect `journalctl --user -u jarvisd.service`. Common causes are Node version,
|
||||||
|
|||||||
@@ -5,11 +5,15 @@ cd "${ROOT_DIR}"
|
|||||||
echo "JARVIS-QVAC first-run setup"
|
echo "JARVIS-QVAC first-run setup"
|
||||||
echo "The daemon is GPU-gated and keeps QVAC behind one master owner."
|
echo "The daemon is GPU-gated and keeps QVAC behind one master owner."
|
||||||
echo
|
echo
|
||||||
echo "[1/4] GPU and QVAC preflight"
|
echo "[1/5] GPU and QVAC preflight"
|
||||||
npm run gpu-doctor || true
|
npm run gpu-doctor || true
|
||||||
npm run qvac:doctor || true
|
if command -v timeout >/dev/null; then
|
||||||
|
timeout --foreground 30s npm run qvac:doctor || echo "QVAC doctor timed out or reported an unavailable host dependency; continuing with local setup."
|
||||||
|
else
|
||||||
|
npm run qvac:doctor || true
|
||||||
|
fi
|
||||||
echo
|
echo
|
||||||
echo "[2/4] Microphone and PipeWire preflight"
|
echo "[2/5] Microphone and PipeWire preflight"
|
||||||
npm run voice-doctor || true
|
npm run voice-doctor || true
|
||||||
echo
|
echo
|
||||||
echo "[3/5] Wake phrase and model profile"
|
echo "[3/5] Wake phrase and model profile"
|
||||||
|
|||||||
+16
-2
@@ -1,6 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
|
NODE_BIN="$(command -v node || true)"
|
||||||
|
if [[ -z "${NODE_BIN}" ]]; then
|
||||||
|
echo "Node.js is required" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
command -v zip >/dev/null || { echo "zip is required to register the GNOME extension" >&2; exit 1; }
|
||||||
APP_DIR="${HOME}/.local/share/jarvis-qvac"
|
APP_DIR="${HOME}/.local/share/jarvis-qvac"
|
||||||
EXT_DIR="${HOME}/.local/share/gnome-shell/extensions/[email protected]"
|
EXT_DIR="${HOME}/.local/share/gnome-shell/extensions/[email protected]"
|
||||||
CONFIG_DIR="${HOME}/.config/jarvis"
|
CONFIG_DIR="${HOME}/.config/jarvis"
|
||||||
@@ -12,8 +18,16 @@ if [[ ! -d "${APP_DIR}/node_modules" ]]; then
|
|||||||
fi
|
fi
|
||||||
rm -rf "${EXT_DIR}"
|
rm -rf "${EXT_DIR}"
|
||||||
mkdir -p "${EXT_DIR}"
|
mkdir -p "${EXT_DIR}"
|
||||||
cp -a "${ROOT_DIR}/apps/gnome-extension/[email protected]/." "${EXT_DIR}/"
|
EXT_ZIP="$(mktemp "${TMPDIR:-/tmp}/jarvis-extension.XXXXXX.zip")"
|
||||||
cp "${ROOT_DIR}/packaging/jarvisd.service" "${HOME}/.config/systemd/user/jarvisd.service"
|
cleanup_ext() { rm -f "${EXT_ZIP}"; }
|
||||||
|
trap cleanup_ext EXIT
|
||||||
|
( cd "${ROOT_DIR}/apps/gnome-extension" && zip -q -r "${EXT_ZIP}" "[email protected]" )
|
||||||
|
if command -v gnome-extensions >/dev/null && gnome-extensions install --force "${EXT_ZIP}" >/dev/null 2>&1; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
cp -a "${ROOT_DIR}/apps/gnome-extension/[email protected]/." "${EXT_DIR}/"
|
||||||
|
fi
|
||||||
|
sed "s#__JARVIS_NODE__#${NODE_BIN}#" "${ROOT_DIR}/packaging/jarvisd.service" > "${HOME}/.config/systemd/user/jarvisd.service"
|
||||||
if [[ ! -f "${CONFIG_DIR}/qvac.config.json" ]]; then
|
if [[ ! -f "${CONFIG_DIR}/qvac.config.json" ]]; then
|
||||||
sed "s#__JARVIS_CACHE__#${CACHE_DIR}#g" "${ROOT_DIR}/packaging/qvac.config.template.json" > "${CONFIG_DIR}/qvac.config.json"
|
sed "s#__JARVIS_CACHE__#${CACHE_DIR}#g" "${ROOT_DIR}/packaging/qvac.config.template.json" > "${CONFIG_DIR}/qvac.config.json"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Wants=pipewire.service
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=%h/.local/share/jarvis-qvac
|
WorkingDirectory=%h/.local/share/jarvis-qvac
|
||||||
ExecStart=/usr/bin/node %h/.local/share/jarvis-qvac/daemon/index.js
|
ExecStart=__JARVIS_NODE__ %h/.local/share/jarvis-qvac/daemon/index.js
|
||||||
Environment=QVAC_CONFIG_PATH=%h/.config/jarvis/qvac.config.json
|
Environment=QVAC_CONFIG_PATH=%h/.config/jarvis/qvac.config.json
|
||||||
Environment=JARVIS_GPU_REQUIRED=1
|
Environment=JARVIS_GPU_REQUIRED=1
|
||||||
Environment=JARVIS_QVAC_OWNER=jarvisd
|
Environment=JARVIS_QVAC_OWNER=jarvisd
|
||||||
|
|||||||
Reference in New Issue
Block a user