컴포넌트와 svideo 간 Radeon 3450 TV 출력 모드 전환

컴포넌트와 svideo 간 Radeon 3450 TV 출력 모드 전환

업데이트: 아래 댓글을 참조하세요.컴포넌트와 svideo 간 Radeon 3450 TV 출력 모드 전환

저는 Windows에서 작동하는 이 카드를 가지고 있습니다. Grub에서는 색상이 있고 보기에도 좋지만 xorg에서는 구성 요소(RGB) 케이블에서 흑백만 나옵니다. xrandr을 사용하여 TV 형식을 변경해 보았지만 아무 것도 변경되지 않았습니다. 하지만 해상도를 변경할 수는 있습니다.

구성요소 모드가 아닌 복합 모드일 수도 있습니다. 카드에는 svideo 또는 컴포넌트(rgb)에 적합한 DVI 및 DIN 플러그가 있습니다.

다음은 일부 명령의 출력입니다.

lspci:

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV620 LE [Radeon HD 3450] (prog-if 00 [VGA controller])
    Subsystem: Dell OptiPlex 980
    Flags: bus master, fast devsel, latency 0, IRQ 31
    Memory at e0000000 (64-bit, prefetchable) [size=256M]
    Memory at f7d20000 (64-bit, non-prefetchable) [size=64K]
    I/O ports at e000 [size=256]
    Expansion ROM at 000c0000 [disabled] [size=128K]
    Capabilities: [50] Power Management version 3
    Capabilities: [58] Express Legacy Endpoint, MSI 00
    Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
    Kernel driver in use: radeon
    Kernel modules: radeon

xrandr --verbose:

 Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
DIN connected primary 1024x768+0+0 (0x55) normal (normal left inverted right x axis y axis) 0mm x 0mm
    Identifier: 0x51
    Timestamp:  29475
    Subpixel:   no subpixels
    Gamma:      1.0:1.0:1.0
    Brightness: 1.0
    Clones:    
    CRTC:       0
    CRTCs:      0 1
    Transform:  1.000000 0.000000 0.000000
                0.000000 1.000000 0.000000
                0.000000 0.000000 1.000000
               filter: 
    _MUTTER_PRESENTATION_OUTPUT: 0 
    tv standard: ntsc 
        supported: ntsc, pal, pal-m, pal-60, ntsc-j, scart-pal, pal-cn, secam
    load detection: 1 
        range: (0, 1)
  1024x768 (0x55) 63.500MHz -HSync +VSync *current
        h: width  1024 start 1072 end 1176 total 1328 skew    0 clock  47.82KHz
        v: height  768 start  771 end  775 total  798           clock  59.92Hz
  800x600 (0x56) 38.250MHz -HSync +VSync
        h: width   800 start  832 end  912 total 1024 skew    0 clock  37.35KHz
        v: height  600 start  603 end  607 total  624           clock  59.86Hz
  848x480 (0x57) 31.500MHz -HSync +VSync
        h: width   848 start  872 end  952 total 1056 skew    0 clock  29.83KHz
        v: height  480 start  483 end  493 total  500           clock  59.66Hz
  720x480 (0x58) 26.750MHz -HSync +VSync
        h: width   720 start  744 end  808 total  896 skew    0 clock  29.85KHz
        v: height  480 start  483 end  493 total  500           clock  59.71Hz
  640x480 (0x59) 23.750MHz -HSync +VSync
        h: width   640 start  664 end  720 total  800 skew    0 clock  29.69KHz
        v: height  480 start  483 end  487 total  500           clock  59.38Hz

답변1

부분 답변:

Radeons에는 내부(GPU의 일부) 또는 외부(추가 칩) 코덱이 있을 수 있습니다. 일반적으로 어떤 신호가 어떤 DAC(디지털/아날로그 변환기)에 출력되는지 설정할 수 있는 레지스터가 있습니다. 인코더는 아날로그 TV용이므로 한 채널에는 합성(루마 및 크로마)을 설정하고 다른 두 채널에는 휘도(Y) 및 채도(C)를 설정하는 것이 일반적입니다. 이 방법으로 SVideo(Y/C) 및 컴포지트 케이블을 연결할 수 있습니다. 대부분의 외부 인코더에는 RGB 출력 옵션도 있습니다(유럽에서는 SCART 커넥터가 필요함).

보고 있다소스 코드, 내부("레거시") 인코더는 빨간색의 경우 Y, 녹색의 경우 C, 파란색의 경우 복합으로 설정됩니다.

WREG32(RADEON_TV_PRE_DAC_MUX_CNTL, (RADEON_Y_RED_EN |
                    RADEON_C_GRN_EN |
                    RADEON_CMP_BLU_EN |
                    RADEON_DAC_DITHER_EN));

어떤 종류의 것도 있습니다자동 감지이로 인해 신호가 다르게 분배될 수 있습니다.

이것은 DIN 플러그에서 얻는 것입니다. 그러나 특정 카드의 경우 순서가 잘못되었을 수 있습니다. 외부 인코딩 칩에 따라 다를 수 있습니다.

SCART/RGB가 아닌 SVideo를 통해 연결한다고 가정할 때 grub에 "색상이 있는" 경우 BIOS가 C와 Y를 올바른 DAC에 올바르게 할당했음을 의미합니다. 드라이버는 다양한 이유로 이러한 값을 다르게 할당할 수 있으므로 드라이버가 활성화되면 채도가 전혀 표시되지 않을 수 있습니다(따라서 색상이 표시되지 않음).

코드에서 이 할당을 재정의할 방법을 찾을 수 없습니다. load detection부울 값이 아닌 비트 필드인 경우 SVideo 케이블 크로마 터미네이션 저항기가 올바르게 감지되지 않았음을 의미할 수 있습니다(그러나 이는 추측입니다).

따라서 옵션은 (1) DAC 할당/활성화를 수동으로 무시할 수 있도록 드라이버 코드를 변경하거나 (2) 잘못된 DAC에 있는 경우 크로마 신호를 얻을 수 있도록 케이블을 패치하거나 감지 작업이 정상적으로 진행되도록 하는 것입니다. .

둘 다 쉽지 않습니다.

관련 정보