AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 736679
Accepted
Robert Siemer
Robert Siemer
Asked: 2023-02-24 08:31:08 +0800 CST2023-02-24 08:31:08 +0800 CST 2023-02-24 08:31:08 +0800 CST

Como fazer com que o xrandr emita três sinais de vídeo de 1680x1050 neste dock USB-C a 60 Hz?

  • 772

Tenho três monitores idênticos de 1680 x 1050 e estou tentando usá-los por meio do “HP G5 USB-C dock” no meu laptop Razer Blade 15" 2018 e sua porta Thunderbolt 3. Com isso, às vezes consigo fazer com que todos os monitores funcionem simultaneamente, mas nunca xrandrno resoluções que eu quero.

Se eu mesmo construir modelines, posso executar todos os três com 1680x1050 com 49Hz. 60Hz não é possível? Talvez seja um problema de relógio de pixel.

xrandr | egrep '^[^ ]' | grep -v 'Screen 0:' | sed -e 's/ (.*//'

imprime isso sem o dock conectado:

eDP-1 connected primary 1920x1080+0+0
DP-1 disconnected
DP-2 disconnected
HDMI-1-1 disconnected
DP-1-3 disconnected

depois de conectar o dock com hotplug, vejo:

eDP-1 connected primary 1920x1080+0+0
DP-1 disconnected
DP-2 disconnected
DP-1-1 connected
DP-1-2 connected
DP-1-3 disconnected
HDMI-1-1 disconnected

inicializar com o dock mostra:

eDP-1 connected primary 1920x1080+0+0
DP-1 disconnected
DP-2 disconnected
DP-1-1 connected
DP-1-2 connected
DP-1-3 connected
HDMI-1-1 disconnected
DP-1-6 disconnected

Com o dock conectado, não consigo configurar xrandr --output DP-1-3 --auto. eu entendo xrandr: cannot find preferred mode. A inicialização com ele funciona, no entanto.

Tentar habilitar o terceiro monitor com 1680x1050@60 produz xrandr: Configure crtc 0 failed. Eu até usei um modeline gerado com cvt -r. Acho que os monitores são muito antigos para CVT-RBv2.

[perguntando por um amigo @bain]

usb
  • 1 1 respostas
  • 41 Views

1 respostas

  • Voted
  1. Best Answer
    Robert Siemer
    2023-02-24T08:31:08+08:002023-02-24T08:31:08+08:00
    minhas descobertas
    1. Essa doca HP G5 ( especificação ) faz apenas USB-C. O sinal de vídeo será transmitido com aquele famoso modo alternativo USB-C para DisplayPort; a funcionalidade Thunderbolt 3 do laptop (mesma porta, modo de operação diferente) não é usada.

    2. A resolução tripla de 1680x1050 é um forte indício de que o laptop está limitado a DisplayPort 1.2 via USB-C e usa apenas 2 pistas. Ele permite uma largura de banda de 8,64 Gb/s, para a qual um triplo 1680x1050 é um ajuste perfeito, mas 60 Hz são possíveis. O que te dá tanta certeza de que os timings CVT-RBv2 não funcionariam? O erro xrandr: Configure crtc 0 failedindica que a GPU não pôde ser configurada para fazer o que você deseja. Se o monitor realmente não fosse capaz de lidar com o modo, ele só poderia indicar que em sua própria tela, pisca estranhamente ou escurece etc. Para gerar modelines úteis cvté inútil para este caso (e muitos outros). Além disso, seu -rswitch gera apenas temporizações “v1”.

    1. O problema do hotplug parece ser um bug não relacionado. Se você observar as portas sem o dock, poderá ver a DP-1-3porta ímpar. Não tenho certeza do que representa, especialmente sem DP-1-1e DP-1-2ao redor. — Acredito que essa entrada estranha seja a mesma DP-1-6entrada no caso coldplug (o número sempre sendo +3 do último DP-1-x). No evento hotplug, a enumeração sobre DP-1colide depois DP-1-1e DP-1-2com aquele espúrio DP-1-3e falha ao registrar com esse nome e não tenta nenhum outro nome, ao que parece, impossibilitando ver/manipular a última porta de vídeo do dock.
    Como proceder
    atualização de 60 Hz

    (O texto a seguir mostra maneiras de fazer as coisas funcionarem. Leia, entenda e adapte ao seu ambiente. Copiar e colar pode não funcionar.)

    Vamos colocar todos os monitores em 60 Hz. Primeiro, verifique se você está conectado a frio e se todos os 3 monitores externos funcionam em alguma resolução. Para evitar problemas de gargalo ou atingir outros limites da GPU (queremos testar os monitores!), trabalhe na tela interna e desligue todas as outras

    for no in 1 2 3; do xrandr --output DP-1-$no --off; done
    

    Agora vamos adicionar “meus” modelos:¹

    xrandr --newmode h160 119    1680 1728 1760 1840 1050 1053 1059 1080 +HSync -VSync
    xrandr --newmode h80 114.048 1680 1688 1720 1760 1050 1066 1074 1080 +HSync -VSync
    xrandr --newmode h60 112.752 1680 1688 1710 1740 1050 1066 1074 1080 +HSync -VSync
    xrandr --newmode h50 112.104 1680 1688 1705 1730 1050 1066 1074 1080 +HSync -VSync
    xrandr --newmode h40 111.456 1680 1688 1702 1720 1050 1066 1074 1080 +HSync -VSync
    xrandr --newmode h30 110.808 1680 1682 1690 1710 1050 1066 1074 1080 +HSync -VSync
    xrandr --newmode h25 110.484 1680 1682 1690 1705 1050 1066 1074 1080 +HSync -VSync
    xrandr --newmode h20 110.16  1680 1682 1690 1700 1050 1066 1074 1080 +HSync -VSync
    xrandr --newmode h12 109.642 1680 1684 1688 1692 1050 1066 1074 1080 +HSync -VSync
    

    Adicione-os ao seu monitor preferido agora (e aos outros eventualmente):

    for name in h160 h80 h60 h50 h40 h30 h25 h20 h12; do xrandr --addmode DP-1-1 $name; done
    

    Agora teste-os!

    xrandr --output DP-1-1 --mode h160
    

    h160 deve funcionar. É o chato sincronismo CVT-RB de cvt -r 1680 1050 60. Então teste h80. Este é o CVT-RBv2. Eu tenho quatro monitores antigos medíocres, todos eles podem fazer isso. Avançar:

    • em h60, meu monitor Full-HD da marca Medion obtém uma imagem instável
    • h30 é o último modelo para este monitor Full-HD da marca BenQ
    • Monitor h20 HP Full-HD (ok)
    • Monitor Dell Office 1680x1050 h12 (funcionando!)

    Em seguida, tente habilitar todos os três no último modelo que você está trabalhando.

    Solução alternativa de 60 Hz

    Conforme mencionado, o limite de largura de banda também é ditado pela versão e configuração do modo alternativo USB-C Displayport. Para obter mais largura de banda, use DP 1.3+ e/ou 4 faixas (no máximo) em vez de 2 da fiação USB-C. O primeiro não pode ser alterado no mesmo hardware, o último às vezes pode no utilitário de configuração do firmware (“BIOS”), procure por “Modo de alta resolução USB-C” ou algo assim... No modo de 4 pistas sem USB 3.x está disponível ao lado do sinal de vídeo DisplayPort, apenas USB 2.0.

    hotplug na doca

    Para os mesmos 3 estados (sem encaixe, hotplugged, coldplugged), envie a saída de

    (cd /sys/class/drm; ls */edid)
    

    Eu tenho

    card0-DP-1/edid     card0-DVI-I-2/edid
    card0-DVI-I-1/edid  card0-HDMI-A-1/edid
    

    Por exemplo, nomes totalmente diferentes em comparação comxrandr | egrep '^[^ ]' | grep -v 'Screen 0:' | sed -e 's/ (.*//'

    DisplayPort-0 connected primary 1680x1050+0+1080
    HDMI-0 connected 1680x1050+1920+1080
    DVI-0 connected 1680x1050+3840+1080
    DVI-1 connected 1680x1050+1920+0
    

    Talvez lance alguma luz sobre o que é o quê. O Razer Blade 15" Base (2018) deve ter o display interno, 1×Thunderbolt3/USB-C, 1×HDMI 2.0 e 1×Mini DisplayPort 1.4.

    Isso explica que eDP-1, HDMI-1-1 (embora não seja sua nomenclatura) e DP-1 está relacionado ao USB-C, como sabemos. Deixa DP-2 e DP-1-3. Acho que DP-2 é o Mini DisplayPort. E talvez o DP-1-3 seja o lado Thunderbolt dessa porta Thunderbolt/USB de uso duplo. Se houver uma interdependência, vamos confirmá-la habilitando-os primeiro individualmente e depois juntos. Desconecte o dock e troque --offtodas as saídas. Então

    xrandr --addmode DP-1 0x74  # some 800x600 standard modeline on my system
    xrandr --output DP-1 --mode 0x74  # does this work?
    xrandr --output DP-1 --off  # afterwards
    

    Dessa forma, você pode forçar a GPU a produzir algo lá. Tente DP-1-3 a seguir. Funciona? Você pode habilitar os dois ao mesmo tempo? Também em diferentes resoluções (baixa resolução) (por exemplo, sem espelhamento)? Você poderia pegar emprestado um conversor Thunderbolt para DP? Verifique se este adaptador usa DP-1-3.

    De qualquer forma ... se tudo isso for verdade, parece que o Xserver fez uma má escolha ao distribuir nomes conflitantes para algum tipo de divisor de saída interno. Seria interessante ver se você só poderia reiniciar o Xserver depois de fazer o hotplug do dock sem reinicialização completa. Se funcionar, o driver da GPU do kernel não parece provocar o problema, mas sim a enumeração em X11.


    ¹ Relógio de pixel calculado com a calculadora de tempo de vídeo de Tom e moldado à mão em uma linha de modelo.

    • 2

relate perguntas

  • Inicialização sem cabeça e instalação no mesmo dispositivo USB

  • Como inserir com segurança o pendrive/dispositivo USB no computador Linux?

  • Como instalar o pacote pppoe do usb em vez do cdrom?

  • Como modificar um stick USB para ter um nó de dispositivo como /dev/sda1 em vez de /dev/sda?

  • Use USBIP para dispositivos que estão sendo removidos e reconectados

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve