Portál AbcLinuxu, 8. června 2024 02:34


Dotaz: identifikace video zařízení /dev/dri/*

22.10.2020 12:58 MilanC | skóre: 16
identifikace video zařízení /dev/dri/*
Přečteno: 307×
Odpovědět | Admin
Ahoj,

řeším takový problém a příliš se v tom neorientuji, proto se mi možná nedaří ani pogooglit řešení. Používám ffmpeg a vaapi, přes který hw enkoduji. Toto vyžaduje odkazování na konkrétní grafické zařízení

-vaapi_device /dev/dri/renderD129 -hwaccel_device /dev/dri/renderD128

Já bych potřeboval udělat nějakou uživatelsky přívětivou konfiguraci, tj. získat: typ/popis grafiky a odkaz na toto device (ideálně ještě použitý ovladač), aby si pak uživatel jen vybral ze seznamu a použilo se odpovídající dané /dev/dri. Bohužel se mi nedaří najít žádná provázanost třeba mezi

lspci -k | grep -EA3 'VGA|3D|Display' lshw -c video

Je mi celkem jedno, v čem to bude nebo jestli to bude (bash skript, cčko...) využívat nějakou jinou utlitu. Jen nepoužívám nic grafického (without x11). Hledal jsem i možnost, jak přímo interovat přes /dev/dri a vyčíst nějaké info, ale úspěšný jsem vůbec nebyl.

Budu rád za nasměrování. Díky

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (MilanC (tazatel))
22.10.2020 13:05 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: identifikace video zařízení /dev/dri/*
Odpovědět | | Sbalit | Link | Blokovat | Admin
V /sys/class/drm/renderD128/device/ máte soubory device a vendor, u mě obsahují 0x68b8 a 0x1002
lspci -nn | grep 1002:68b8
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Juniper XT [Radeon HD 5770] [1002:68b8]
Quando omni flunkus moritati
22.10.2020 15:38 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: identifikace video zařízení /dev/dri/*
Vyřešil jsem to zatím takto, pokud by napadla nějaká optimalizace toho parsování, nechám si poradit a rád se přiučím.
#!/bin/bash

for dev in /sys/class/drm/render*; do
  echo "Processing $dev..."

  devinfo=$(cat $dev/device/uevent | tr '\n' ';')
  re="^DRIVER=([^;]+);.*PCI_ID=([^;]+);"
  [[ "$devinfo" =~ $re ]] && driver="${BASH_REMATCH[1]}" && pciid="${BASH_REMATCH[2]}"

  re="^(device|vendor)"
  devinfo=$(lspci -vmmd $pciid | sed -r "s/\s+/ /g" | tr '\n' ';')
  re="Vendor:\s+([^;]+);.*Device:\s+([^;]+);"
  [[ "$devinfo" =~ $re ]] && vendor="${BASH_REMATCH[1]}" && device="${BASH_REMATCH[2]}"

  echo "$vendor: $device, driver: $driver"
done
Processing /sys/class/drm/renderD128...
Intel Corporation: UHD Graphics 630 (Desktop), driver: i915
Processing /sys/class/drm/renderD129...
Advanced Micro Devices, Inc. [AMD/ATI]: Radeon RX 570 Pulse 4GB, driver: amdgpu
Processing /sys/class/drm/renderD130...
NVIDIA Corporation: TU116 [GeForce GTX 1650 SUPER], driver: nvidia
22.10.2020 13:12 MilanC | skóre: 16
Rozbalit Rozbalit vše Re: identifikace video zařízení /dev/dri/*
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě mě napadlo použít vainfo, což se asi nejvíce blíží. Jen ten popis grafického adaptéru úplně nevyhovuje a měl bych raději třeba ten z lspci. Ale je to zatím asi to nejlepší...

for dev in /dev/dri/render*; do echo "Processing $dev..." vainfo --display drm --device $dev echo done
Řešení 1× (MilanC (tazatel))
k3dAR avatar 22.10.2020 15:15 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: identifikace video zařízení /dev/dri/*
i=/sys/class/drm/renderD128/device; lspci -k -d $(cat ${i}/vendor):$(cat ${i}/device)
porad nemam telo, ale uz mam hlavu... nobody
10.11.2020 01:05 peci1
Rozbalit Rozbalit vše Re: identifikace video zařízení /dev/dri/*
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, na Ubuntu mam slozku /dev/dri/by-path, ktera obsahuje symlinky typu:
pci-0000:00:02.0-card -> ../card0
pci-0000:00:02.0-render -> ../renderD128
pci-0000:07:00.0-card -> ../card1
pci-0000:07:00.0-render -> ../renderD129
Po grepnuti PCI adresy uz si asi najdes veskere dalsi podrobnosti.

Na Debian GPU serveru to treba ale nevidim...

Na Raspberry Pi 4B je to jeste zajimavejsi:
$ ll /dev/dri/by-path/
lrwxrwxrwx 1 root root   8 Oct 28 14:10 platform-fec00000.v3d-card -> ../card0
lrwxrwxrwx 1 root root  13 Oct 28 14:10 platform-fec00000.v3d-render -> ../renderD128
lrwxrwxrwx 1 root root   8 Oct 28 14:10 platform-gpu-card -> ../card1

$ ll /sys/class/drm/renderD128/
-r--r--r-- 1 root root 4096 Nov 10 01:00 dev
lrwxrwxrwx 1 root root    0 Nov 10 01:00 device -> ../../../fec00000.v3d
drwxr-xr-x 2 root root    0 Nov 10 01:00 power
lrwxrwxrwx 1 root root    0 Nov 10 01:00 subsystem -> ../../../../../../class/drm
-rw-r--r-- 1 root root 4096 Nov 10 01:00 uevent
Takze pozor s tim grepovanim /sys/class/drm/renderD128/device :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.