web-dev-qa-db-ja.com

すべてのディスプレイ出力ポートをバッシュリストする

私はラップトップが持っているすべての視覚的な出力ポートを印刷するコマンドを探しています。

StackとGoogleをしばらく検索しましたが、答えが見つかりません。

一番近いのはxandrです

eDP-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 277mm x 156mm
   1366x768      60.00*+  40.00  
   1360x768      59.80    59.96  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   960x600       60.00  
   960x540       59.99  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   800x512       60.17  
   700x525       59.98  
   640x512       60.02  
   720x450       59.89  
   640x480       60.00    59.94  
   680x384       59.80    59.96  
   576x432       60.06  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05  
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)

のようなものを探しています

HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)

残念ながら、この出力には必要な情報が表示されません。 xrandrからの情報は正確ではありません。

Lspci、dmesg(たぶんそこにあるが見つからなかった)、lshw、およびいくつかのハードウェア一覧コマンドを試してみました。

理想的な状況は

VGA x1
HDMI x1 or mini
DP x1
DVI x1

しかし、正しい方向の指は大歓迎です

3
Rob Michiels

だから私は私のマシンでデュアルモニターの設定を変更しようといじっていて、あなたの投稿を見つけました。実際のディスプレイに興味があるので、接続されているモニターからEDIDリソースを探しています。

find /sys/devices -name "edid"

次のような出力が生成されます。

/sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/drm/card0/card0-HDMI-A-1/edid
/sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/drm/card0/card0-DVI-D-1/edid
/sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/drm/card0/card0-DP-2/edid
/sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/drm/card0/card0-HDMI-A-2/edid
/sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/drm/card0/card0-DP-1/edid

すべてが有効ではありませんが、/ sysの個々のフォルダーを見ると、次のようなstatusというファイルが存在します。

cat /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/drm/card0/card0-DP-1/status
connected

また、次のようなことを行うことにより、接続されているディスプレイデバイス(実際のビデオカード出力に対して)の詳細も表示されます。

cat /sys/devices/pci0000:00/0000:00:02.0/0000:03:00.0/drm/card0/card0-DP-1/edid | edid-decode
Extracted contents:
header:          00 ff ff ff ff ff ff 00
serial number:   41 0c 0b 09 cd 0e 00 00 32 1a
version:         01 04
basic params:    b5 46 28 78 3a
chroma info:     59 05 af 4f 42 af 27 0e 50 54
established:     bd 4b 00
standard:        d1 c0 81 80 81 40 95 0f 95 00 b3 00 81 c0 01 01
descriptor 1:    4d d0 00 a0 f0 70 3e 80 30 20 35 00 ba 8e 21 00 00 1a
descriptor 2:    a3 66 00 a0 f0 70 1f 80 30 20 35 00 ba 8e 21 00 00 1a
descriptor 3:    00 00 00 fc 00 50 48 4c 20 33 32 38 50 36 56 0a 20 20
descriptor 4:    00 00 00 fd 00 17 50 1e a0 3c 01 0a 20 20 20 20 20 20
extensions:      01
checksum:        74

Manufacturer: PHL Model 90b Serial Number 3789
Made week 50 of 2016
EDID version: 1.4
Digital display
10 bits per primary color channel
DisplayPort interface
Maximum image size: 70 cm x 40 cm
Gamma: 2.20
DPMS levels: Off
Supported color formats: RGB 4:4:4, YCrCb 4:4:4, YCrCb 4:2:2
First detailed timing is preferred timing
Established timings supported:
  720x400@70Hz
  640x480@60Hz
  640x480@67Hz
  640x480@72Hz
  640x480@75Hz
  800x600@60Hz
  800x600@75Hz
  1024x768@60Hz
  1024x768@75Hz
  1280x1024@75Hz
Standard timings supported:
  1920x1080@60Hz
  1280x1024@60Hz
  1280x960@60Hz
  1440x900@75Hz
  1440x900@60Hz
  1680x1050@60Hz
  1280x720@60Hz
Detailed mode: Clock 533.250 MHz, 698 mm x 398 mm
               3840 3888 3920 4000 hborder 0
               2160 2163 2168 2222 vborder 0
               +hsync -vsync 
Detailed mode: Clock 262.750 MHz, 698 mm x 398 mm
               3840 3888 3920 4000 hborder 0
               2160 2163 2168 2191 vborder 0
               +hsync -vsync 
Monitor name: PHL
Monitor ranges (bare limits): 23-80Hz V, 30-160kHz H, max dotclock 600MHz
Has 1 extension blocks
Checksum: 0x74 (valid)

CEA extension block
Extension version: 3
34 bytes of CEA data
  Video data block
    VIC  16 1920x1080@60Hz 
    VIC  31 1920x1080@50Hz 
    VIC   4 1280x720@60Hz 
    VIC  19 1280x720@50Hz 
    VIC   3 720x480@60Hz 
    VIC  18 720x576@50Hz 
    VIC   2 720x480@60Hz 
    VIC  17 720x576@50Hz 
    VIC   1 640x480@60Hz 
    VIC   5 1920x1080i@60Hz 
    VIC  20 1920x1080i@50Hz 
  Audio data block
    Linear PCM, max channels 2
    Supported sample rates (kHz): 48 44.1 32
    Supported sample sizes (bits): 24 20 16
  Speaker allocation data block
    Speaker map: FL/FR
  Vendor-specific data block, OUI 000c03 (HDMI)
    Source physical address 1.0.0.0
    DC_30bit
    DC_Y444
    DVI_Dual
    Maximum TMDS clock: 600MHz
    Extended HDMI video details:
      HDMI VIC 0 3840x2160@30Hz
      HDMI VIC 1 3840x2160@25Hz
      HDMI VIC 2 3840x2160@24Hz
Underscans PC formats by default
Basic audio support
Supports YCbCr 4:4:4
Supports YCbCr 4:2:2
1 native detailed modes
Detailed mode: Clock 27.000 MHz, 698 mm x 398 mm
                720  736  798  858 hborder 0
                480  489  495  525 vborder 0
               -hsync -vsync 
Detailed mode: Clock 74.250 MHz, 698 mm x 398 mm
               1280 1390 1430 1650 hborder 0
                720  725  730  750 vborder 0
               +hsync +vsync 
Detailed mode: Clock 148.500 MHz, 698 mm x 398 mm
               1920 2448 2492 2640 hborder 0
               1080 1084 1089 1125 vborder 0
               +hsync +vsync 
Detailed mode: Clock 147.170 MHz, 698 mm x 398 mm
               2048 2096 2128 2208 hborder 0
               1080 1083 1093 1111 vborder 0
               +hsync -vsync 
Checksum: 0x18 (valid)

EDID block does NOT conform to EDID 1.3!
        Detailed block string not properly terminated
6
Happy Heyoka

これは複雑な問題です。

xrandrは、X11サーバーの制御下にあるすべてのGPUの知識に従って、すべての出力を表示します。ただし、ハードウェアの製造元が組み込みのコンバーターを追加する場合があります。 GPUチップのDisplayPort出力をDVIに変換するか、GPUの出力の一部を未配線のままにします。 GPU、および拡張xrandrは、そのような変更について知る方法がありません。また、表示されているDisplayPort出力は、物理的にMini-DPまたはThunderbolt接続である可能性があります。

2つのGPUを備えたラップトップがあり、そのうちの1つが無効になっている場合(BIOSまたはNVidia Optimusテクノロジー用のBumblebeeなどのソフトウェアを使用)、無効にされたGPUの出力情報はxrandrで利用できません。

この問題に対処する別の方法は、dmidecodeを使用することです。dmidecode -t 8を使用すると、ハードウェアの製造元がBIOS DMIデータに記述したすべてのコネクタ/ポートのリストを取得できます。ただし、この情報は必ずしも正確または完全であるとは限りません。DMIコネクタ情報がまったく記載されていないラップトップを持っています。

6
telcoM
xrandr | awk 'BEGIN { hdmi=dp=0; }; 
    /^HDMI-/ { hdmi++;}; /^DP-/ { dp++; };
    END { printf "%8s%s\n","HDMI x",hdmi; printf "%8s%s\n","DP x",dp; }' 

  HDMI x1
    DP x0
0
Hauke Laging

sysfsのカーネルDRIデバッグは、ビデオカーネルモジュールによって認識されるコネクタを示します。

たとえば、私のビデオカーネルモジュールはi915、それから私はできる

 Sudo grep "^connector" /sys/kernel/debug/dri/0/i915_display_info

そして得る

connector 71: type eDP-1, status: connected
connector 80: type DP-1, status: disconnected
connector 86: type HDMI-A-1, status: disconnected
connector 90: type DP-2, status: disconnected
connector 95: type HDMI-A-2, status: disconnected
connector 97: type DP-3, status: disconnected
connector 105: type DP-4, status: connected
connector 101: type DP-5, status: connected

ここにリストされているポートは、xrandrからの出力とは異なる場合があることに注意してください。たとえば、私のxrandr出力はeDP-1, DP-2-2, DP-2-3

0
Ding-Yi Chen
xmonLines=`xrandr | grep " connected" | while read line ; do echo 'i' ; done`
regex="^(\w+)\s+.+$"
let "int=1"
for i in $xmonLines; do
    xmon=`xrandr | grep " connected" | sed $int!d`
    if [[ $xmon =~ $regex ]]; then
        printf "${BASH_REMATCH[1]}\n"
    fi
    let "int++"
done
0
runarsf