Ilustrace k článku Jak zprovoznit kameru na Arch Linuxu

Kamera na Arch Linuxu: jak ji zprovoznit a odladit bez chaosu

Kamera na Arch Linuxu většinou neselže kvůli „Linuxu obecně“, ale kvůli jedné konkrétní vrstvě: zařízení se nenačte, chybí PipeWire, aplikace nemá oprávnění nebo používá špatný backend. V tomhle postu projdeme rychlou diagnostiku, základní balíčky i ověření ve skutečných aplikacích.

Nejdřív ověřte, že systém kameru vůbec vidí

První krok je prostý: zjistit, jestli je problém v hardwaru, nebo až nad ním. U USB kamery začněte přes lsusb. U integrované kamery v notebooku dává větší smysl podívat se rovnou na zařízení /dev/video* a na to, co hlásí kernel.

lsusb
ls /dev/video*
dmesg | grep -iE 'uvc|camera|video'

Pokud nevidíte žádné /dev/video0 nebo podobné zařízení, nezačínejte instalovat půl repozitáře. Nejdřív zkuste jiný USB port, vypnout hub a zkontrolovat, jestli se po připojení kamery objeví něco nového v dmesg. Když systém zařízení vůbec nezaregistruje, bývá problém níž než v aplikaci.

Balíčky, které na Archu pro webkameru reálně potřebujete

Na Arch Linuxu často stačí minimum, ale kamera na Arch Linuxu dnes obvykle běží nejlépe s kombinací V4L2 + PipeWire + WirePlumber. Pokud máte čistší instalaci nebo jste stavěli systém postupně, některá vrstva může chybět. A pak kamera funguje třeba v testovacím nástroji, ale ne v browseru nebo Zoomu.

sudo pacman -Syu
sudo pacman -S v4l-utils pipewire pipewire-pulse wireplumber xdg-desktop-portal xdg-desktop-portal-gtk ffmpeg

v4l-utils vám dá diagnostiku, PipeWire řeší multimediální vrstvu a xdg-desktop-portal je důležitý hlavně pro aplikace, které jedou přes desktopová oprávnění. Na GNOME, KDE i lehčích desktopech se může lišit konkrétní portal backend, ale bez něj bývá přístup ke kameře v sandboxovaných aplikacích nespolehlivý.

PipeWire a služby, které musí skutečně běžet

Instalace balíčků nestačí. Další častý problém je, že služby nejsou spuštěné v uživatelské session. To je přesně ten stav, kdy kamera na Arch Linuxu „někde jde a někde ne“ a hledání chyby je zbytečně drahé na čas.

systemctl --user status pipewire
systemctl --user status pipewire-pulse
systemctl --user status wireplumber
systemctl --user enable --now pipewire pipewire-pulse wireplumber

Když některá z těchto služeb padá, podívejte se do logu přes journalctl --user -xe. Typicky narazíte na konflikt starší konfigurace, chybějící portal backend nebo rozbitou session po větším upgradu. Tady doporučujeme nejdřív opravit služby a až potom testovat konkrétní aplikaci.

Otestujte obraz mimo prohlížeč a mimo videokonference

Než otevřete Meet, Zoom nebo Teams, ověřte si samotný obraz z kamery jednoduchým nástrojem. Tím oddělíte problém zařízení od problému aplikace. Na Archu je na to praktické v4l2-ctl a třeba ffplay z balíku FFmpeg.

v4l2-ctl --list-devices
v4l2-ctl --all --device /dev/video0
ffplay /dev/video0

Když ffplay ukáže obraz, hardware i základní ovladač jsou pravděpodobně v pořádku. Pokud ne, zkontrolujte ještě modul uvcvideo, protože většina běžných USB kamer běží právě přes něj. U některých notebooků ale může jít o specifičtější ovladač nebo firmware závislý na konkrétním modelu.

lsmod | grep uvcvideo
sudo modprobe uvcvideo

Prohlížeč, Zoom a sandbox: kde se kamera láme nejčastěji

Jakmile funguje surový obraz, přichází vrstva aplikací. Browsery a konferenční nástroje mají vlastní pravidla: oprávnění webu, výběr vstupního zařízení, někdy i rozdíl mezi nativním balíčkem a Flatpakem. Tady vzniká velká část hlášek typu „kamera není dostupná“, i když systém kameru normálně vidí.

U Firefoxu a Chromia nejdřív ověřte, že web opravdu dostal oprávnění ke kameře. U Flatpaku bývá kritický právě portal. U Zoomu nebo Teams se vyplatí zkontrolovat, jestli aplikace neotevírá špatné zařízení, třeba virtuální kameru místo fyzické. Pokud máte víc video vstupů, je to častější, než by člověk čekal.

Když je zařízení vidět, ale obraz je černý nebo zamrzá

Tohle už je jemnější diagnostika. Kamera na Arch Linuxu může být rozpoznaná správně, ale aplikace si sáhne na nepodporovaný formát, rozlišení nebo framerate. Výsledek je černé okno, zasekaný obraz nebo náhodné pády při přepnutí vstupu.

v4l2-ctl --list-formats-ext --device /dev/video0

Vypište si podporované formáty a zkuste kameru otestovat v nižším rozlišení. Levnější USB kamery bývají citlivé na kombinaci 1080p + vysoké FPS a některé aplikace si výchozí profil vyberou dost nešťastně. Pokud obraz běží v 720p stabilně, problém není „že Linux neumí kameru“, ale že stack vybral špatný režim.

Praktický debug na Archu, když nechcete střílet naslepo

Když se chcete dostat k výsledku rychle, držte se pořadí vrstev. 1) zařízení je vidět v systému, 2) funguje přes v4l2, 3) běží PipeWire, 4) aplikace má oprávnění, 5) aplikace používá správný vstup a formát. Jakmile tenhle sled přeskočíte, snadno skončíte u náhodných pokusů bez závěru.

Hodně pomůže i oficiální ArchWiki, protože u podobných systémových problémů bývá přesnější než obecné návody pro Ubuntu. Na diagnostiku zařízení se hodí také V4L utilities a pro multimediální vrstvu PipeWire. Tyhle zdroje doporučujeme číst ve chvíli, kdy už víte, v jaké vrstvě problém skutečně leží.

Co si zprovoznění kamery na Arch Linuxu odnést

Nejrychlejší cesta není hledat „magický fix“, ale rozdělit problém na hardware, ovladač, multimediální vrstvu a aplikaci. Jakmile kamera na Arch Linuxu projde přes /dev/video, v4l2-ctl a běžící PipeWire, bývá zbytek už jen o oprávněních nebo volbě správného vstupu. Přesně tenhle postup šetří čas a eliminuje zbytečné zásahy do systému.

KATEGORIE:

SDÍLET:

Časté otázky

Proč kamera na Arch Linuxu funguje v jednom programu, ale v jiném ne?
Nejčastější důvod je rozdíl mezi aplikacemi, které používají starší přístup přes V4L2, a těmi, které jdou přes PipeWire a portál oprávnění. Kamera může být v systému správně detekovaná, ale konkrétní aplikace nemá potřebné balíčky, neumí pracovat s PipeWire nebo běží v sandboxu bez přístupu k zařízení. Proto je potřeba ověřit nejen /dev/video zařízení, ale i stav PipeWire, WirePlumberu a oprávnění aplikace.
Jak poznám, že problém není v hardwaru, ale v konfiguraci Arch Linuxu?
Začněte tím, že ověříte, jestli se kamera objeví přes lsusb nebo v4l2-ctl --list-devices. Pokud ji systém vidí, hardwarová vrstva bývá většinou v pořádku a problém bývá v modulu jádra, PipeWire, oprávněních nebo konkrétní aplikaci. Když zařízení nevidí ani kernel a v dmesg jsou chyby po připojení USB, je větší šance na problém s kabelem, hubem, napájením nebo samotnou kamerou.
Musím na Arch Linuxu používat PipeWire, nebo stačí samotné V4L2?
Pro základní test kamery samotné V4L2 často stačí. Pokud ale chcete bez problémů používat videohovory v moderních desktopových aplikacích a prohlížečích, PipeWire je dnes prakticky standard. Řeší předávání obrazu mezi aplikacemi, spolupracuje s desktop portály a bývá stabilnější než starší kombinace různých zvukových a video vrstev. Na běžném desktopu doporučujeme PipeWire neobcházet, ale správně ho nastavit.
Co dělat, když po aktualizaci Archu kamera přestane fungovat?
Nejdřív zkontrolujte, jestli po aktualizaci běží pipewire, pipewire-pulse a wireplumber a jestli se nezměnilo jméno zařízení v /dev/video*. Pak projděte pacman.log a journalctl, protože často jde o chybějící doplněný balíček, konflikt konfigurace nebo regresi v jádře. Praktický postup je otestovat kameru přes v4l2-ctl a ffplay, potom prohlížeč. Když selže jen jedna aplikace, problém obvykle není v celé systémové vrstvě.

Komentáře (0)

Načítám komentáře...

Přidat komentář

Váš email nebude zveřejněn. Všechny komentáře procházejí schválením administrátorem.

Tento web je chráněn službou reCAPTCHA a platí Zásady ochrany osobních údajů a Smluvní podmínky společnosti Google.