Add passthrough.md
This commit is contained in:
commit
26c1902b55
99
passthrough.md
Normal file
99
passthrough.md
Normal file
@ -0,0 +1,99 @@
|
||||
## GPU Passthrough Status for All Your Containers
|
||||
|
||||
### Already Fully Configured ✅ — No Changes Needed
|
||||
|
||||
**CT 120 (nvidia-gpu-cuda)** and **CT 122 (ollama)** already have complete GPU passthrough config. Nothing to do there.
|
||||
|
||||
***
|
||||
|
||||
### Containers That Need GPU Added
|
||||
|
||||
Based on your workloads, only **CT 108 (openclaw)** is the AI container that needs GPU. CT 130 (video.takeone.bh) could optionally benefit for hardware video encoding.
|
||||
|
||||
***
|
||||
|
||||
## Exact Lines to Add
|
||||
|
||||
### CT 108 — openclaw (AI assistant)
|
||||
|
||||
Run on the host:
|
||||
|
||||
```bash
|
||||
cat >> /etc/pve/lxc/108.conf << 'EOF'
|
||||
|
||||
# GPU Passthrough
|
||||
lxc.cgroup2.devices.allow: c 195:* rwm
|
||||
lxc.cgroup2.devices.allow: c 510:* rwm
|
||||
lxc.cgroup2.devices.allow: c 235:* rwm
|
||||
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia1 dev/nvidia1 none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia-caps dev/nvidia-caps none bind,optional,create=dir
|
||||
lxc.environment: NVIDIA_VISIBLE_DEVICES=all
|
||||
lxc.environment: NVIDIA_DRIVER_CAPABILITIES=compute,utility
|
||||
lxc.environment: CUDA_DEVICE_ORDER=PCI_BUS_ID
|
||||
EOF
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
### CT 130 — video.takeone.bh (optional, for hardware video encoding)
|
||||
|
||||
```bash
|
||||
cat >> /etc/pve/lxc/130.conf << 'EOF'
|
||||
|
||||
# GPU Passthrough (hardware encoding)
|
||||
lxc.cgroup2.devices.allow: c 195:* rwm
|
||||
lxc.cgroup2.devices.allow: c 510:* rwm
|
||||
lxc.cgroup2.devices.allow: c 235:* rwm
|
||||
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia1 dev/nvidia1 none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file
|
||||
lxc.mount.entry: /dev/nvidia-caps dev/nvidia-caps none bind,optional,create=dir
|
||||
lxc.environment: NVIDIA_VISIBLE_DEVICES=all
|
||||
lxc.environment: NVIDIA_DRIVER_CAPABILITIES=compute,utility,video,encode,decode
|
||||
lxc.environment: CUDA_DEVICE_ORDER=PCI_BUS_ID
|
||||
EOF
|
||||
```
|
||||
|
||||
> Note: CT 130 has `unprivileged: 1` — the bind mounts will still work because of the `optional` flag.
|
||||
|
||||
***
|
||||
|
||||
## What to Do Inside Each Container After Restart
|
||||
|
||||
Once you restart the container, install the matching NVIDIA **userspace libs only** (no kernel modules) inside it:
|
||||
|
||||
```bash
|
||||
# Inside CT 108 or 130 (Debian/Ubuntu)
|
||||
# Add the same CUDA repo from the host, then:
|
||||
apt install -y libnvidia-compute-580 nvidia-utils-580
|
||||
# Verify:
|
||||
nvidia-smi
|
||||
```
|
||||
|
||||
Or if the container already has the CUDA local repo mounted/copied from the host, just run:
|
||||
|
||||
```bash
|
||||
nvidia-smi # should show both RTX 3060s
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
## Summary Table
|
||||
|
||||
| CT | Name | GPU Needed | Status | Action |
|
||||
|----|------|-----------|--------|--------|
|
||||
| 120 | nvidia-gpu-cuda | ✅ Yes | Already done | Nothing |
|
||||
| 122 | ollama | ✅ Yes | Already done | Nothing |
|
||||
| 108 | openclaw | ✅ Yes | **Missing** | Add config above |
|
||||
| 130 | video.takeone.bh | Optional | **Missing** | Add config above if you want HW encoding |
|
||||
| All others | web/DB/network | ❌ No | N/A | Skip |
|
||||
|
||||
The **cgroup device majors** to remember for this host: `195:*` (GPU cores), `510:*` (UVM/CUDA), `235:*` (nvidia-caps/MIG).
|
||||
Loading…
x
Reference in New Issue
Block a user