Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions bin/lib/nim.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,25 @@ function detectGpu() {
}
} catch {}

// VMware virtual GPU (SVGA) — present when 3D acceleration is enabled in VMware settings
if (process.platform === "linux") {
try {
const lspciOutput = runCapture("lspci 2>/dev/null", { ignoreError: true });
if (lspciOutput && lspciOutput.toLowerCase().includes("vmware svga")) {
const nameMatch = lspciOutput.match(/VMware SVGA[^\n]*/i);
const name = nameMatch ? nameMatch[0].replace(/^\S+\s+/, "").trim() : "VMware SVGA";
return {
type: "vmware",
name,
count: 1,
totalMemoryMB: null,
perGpuMB: null,
nimCapable: false,
};
}
} catch {}
}

// macOS: detect Apple Silicon or discrete GPU
if (process.platform === "darwin") {
try {
Expand Down
3 changes: 3 additions & 0 deletions bin/lib/onboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,9 @@ async function preflight() {
} else if (gpu && gpu.type === "apple") {
console.log(` ✓ Apple GPU detected: ${gpu.name}${gpu.cores ? ` (${gpu.cores} cores)` : ""}, ${gpu.totalMemoryMB} MB unified memory`);
console.log(" ⓘ NIM requires NVIDIA GPU — will use cloud inference");
} else if (gpu && gpu.type === "vmware") {
console.log(` ✓ VMware virtual GPU detected: ${gpu.name}`);
console.log(" ⓘ NIM requires NVIDIA GPU — will use cloud inference");
} else {
console.log(" ⓘ No GPU detected — will use cloud inference");
}
Expand Down
12 changes: 6 additions & 6 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -435,10 +435,10 @@ pre_extract_openclaw() {
install_nemoclaw() {
if [[ -f "./package.json" ]] && grep -q '"name": "nemoclaw"' ./package.json 2>/dev/null; then
info "NemoClaw package.json found in current directory — installing from source…"
spin "Preparing OpenClaw package" bash -lc "$(declare -f pre_extract_openclaw); pre_extract_openclaw \"\$1\"" _ "$(pwd)" || \
spin "Preparing OpenClaw package" bash -c "$(declare -f pre_extract_openclaw); pre_extract_openclaw \"\$1\"" _ "$(pwd)" || \
warn "Pre-extraction failed — npm install may fail if openclaw tarball is broken"
spin "Installing NemoClaw dependencies" npm install --ignore-scripts
spin "Building NemoClaw plugin" bash -lc 'cd nemoclaw && npm install --ignore-scripts && npm run build'
spin "Building NemoClaw plugin" bash -c 'cd nemoclaw && npm install --ignore-scripts && npm run build'
spin "Linking NemoClaw CLI" npm link
else
info "Installing NemoClaw from GitHub…"
Expand All @@ -449,11 +449,11 @@ install_nemoclaw() {
rm -rf "$nemoclaw_src"
mkdir -p "$(dirname "$nemoclaw_src")"
spin "Cloning NemoClaw source" git clone --depth 1 https://github.com/NVIDIA/NemoClaw.git "$nemoclaw_src"
spin "Preparing OpenClaw package" bash -lc "$(declare -f pre_extract_openclaw); pre_extract_openclaw \"\$1\"" _ "$nemoclaw_src" || \
spin "Preparing OpenClaw package" bash -c "$(declare -f pre_extract_openclaw); pre_extract_openclaw \"\$1\"" _ "$nemoclaw_src" || \
warn "Pre-extraction failed — npm install may fail if openclaw tarball is broken"
spin "Installing NemoClaw dependencies" bash -lc "cd \"$nemoclaw_src\" && npm install --ignore-scripts"
spin "Building NemoClaw plugin" bash -lc "cd \"$nemoclaw_src\"/nemoclaw && npm install --ignore-scripts && npm run build"
spin "Linking NemoClaw CLI" bash -lc "cd \"$nemoclaw_src\" && npm link"
spin "Installing NemoClaw dependencies" bash -c "cd \"$nemoclaw_src\" && npm install --ignore-scripts"
spin "Building NemoClaw plugin" bash -c "cd \"$nemoclaw_src\"/nemoclaw && npm install --ignore-scripts && npm run build"
spin "Linking NemoClaw CLI" bash -c "cd \"$nemoclaw_src\" && npm link"
fi

refresh_path
Expand Down
69 changes: 69 additions & 0 deletions nemoclaw-blueprint/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.