> For the complete documentation index, see [llms.txt](https://docs.enclaive.cloud/sylica/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enclaive.cloud/sylica/documentation/getting-started/troubleshooting.md).

# Troubleshooting

### `/dev/kvm` does not exist

Check whether virtualization is enabled in the physical host firmware.

Verify CPU virtualization support:

```bash
lscpu | grep Virtualization
```

Then check the KVM modules:

```bash
lsmod | grep kvm
```

### `sev-snp-guest` is unknown

Your QEMU version does not provide the required SEV-SNP guest object.

Check:

```bash
qemu-system-x86_64 -object help | grep sev
```

You need a QEMU build with SEV-SNP support and a compatible Linux KVM implementation.

### `tdx-guest` is unknown

Check:

```bash
qemu-system-x86_64 -object help | grep tdx
```

If no `tdx-guest` object is available, the installed QEMU build does not provide TDX guest support.

### TDX VM fails during creation

Verify all layers:

```
CPU TDX support
      ↓
platform firmware
      ↓
TDX module
      ↓
Linux KVM
      ↓
QEMU TDX support
      ↓
CVMF
```

A failure at any layer prevents the TD from starting.

Also verify that:

```
kernel-irqchip=split
```

is configured.

### SEV-SNP VM fails during launch

Check:

```bash
sudo dmesg | grep -i -E 'sev|snp'
```

and verify that the `cbitpos` and `reduced-phys-bits` values match the host platform.

Do not copy host-specific values blindly between different AMD systems.

### Firmware starts but no console appears

Try:

```
-nographic
```

and ensure the guest operating system is configured with a serial console.

For Linux, the kernel command line commonly includes:

```
console=ttyS0
```

Graphical installations may be easier without `-nographic`.
