# Troubleshooting ## The panel says the loopback device is missing Check the running kernel, matching headers, DKMS build, and configured label: ```bash uname -r cat "/usr/lib/modules/$(uname -r)/pkgbase" dkms status cat /sys/class/video4linux/video50/name ``` The final command must print `Omarchy Phone Camera`. If the module was already loaded with different options, close applications using loopback cameras and reload it: ```bash sudo modprobe -r v4l2loopback sudo modprobe v4l2loopback systemctl --user restart phonecamd ``` After a kernel update, reboot into the updated kernel or make sure its matching header package is installed before diagnosing DKMS. ## The phone is listed as approval required Unlock the phone and accept the USB debugging prompt. If no prompt appears: 1. Change the USB cable or port; many charging cables have no data wires. 2. In Developer options, revoke USB debugging authorizations. 3. Run `adb kill-server`, reconnect, and approve the new key. 4. Check `adb devices -l` directly. ## `scrcpy` exits immediately Collect the structured diagnostics and recent pipeline output: ```bash phonecamctl diagnostics --json journalctl --user -u phonecamd.service -n 100 --no-pager ``` Some phones declare camera sizes or frame rates their encoder cannot actually use. Try 720p at 30 fps, then reconnect: ```bash phonecamctl resolution 720p phonecamctl fps 30 phonecamctl connect DEVICE_ID ``` ## Chromium, Zoom, or Discord cannot see the output Select **Omarchy Phone Camera**, not the phone's USB name and not a built-in laptop webcam. Restart the app if it enumerated cameras before the loopback producer started. Confirm `exclusive_caps=1` and keep the daemon running so a producer owns the loopback node: ```bash cat /sys/module/v4l2loopback/parameters/exclusive_caps phonecamctl status v4l2-ctl --device /dev/video50 --all ``` Restart an application that enumerated cameras before the loopback producer started. The privacy frame normally prevents this race after login. Idle privacy holds the loopback open with a still black frame and does not keep encoding; `sustain_framerate` repeats that frame so apps still see a live camera. ## The wrong Intel IPU camera is selected Omacam never takes the first `/dev/video*` node. It requires a `Video Capture` capability and a usable pixel format, and it identifies its own output by the exact `Omarchy Phone Camera` label. Use that label inside the calling application as well. ## Wi-Fi reconnect stopped working Wireless debugging can turn off after a reboot or network change. Re-enable it on the phone. If the connection port changed, run: ```bash phonecamctl wifi-connect PHONE_IP:NEW_PORT phonecamctl devices ``` Pairing normally survives; do not pair again unless Android forgot the computer. ## Logs and state ```text ~/.config/omarchy-phonecam/config.json ~/.local/state/omarchy-phonecam/status.json ~/.local/state/omarchy-phonecam/phonecamd.log ~/.local/state/omarchy-phonecam/pipeline.log ``` The service socket is `$XDG_RUNTIME_DIR/phonecamd.sock` and is accessible only to the current user.