Como posso configurar meu adaptador de vídeo DisplayLink USB sem ter que criar e editar um Xorg.conf?

3

Idealmente, eu gostaria de ser capaz de ligá-lo, ser avisado para o apt para obter o pacote de driver necessário, e apenas ter que fazer logoff / login ou reiniciar para conectar o monitor ao DisplayLink (ou qualquer monitor USB dispositivo, por exemplo Lilliput) para fazer parte da minha área de trabalho normal, incluindo meus outros dois monitores agindo como uma única área de trabalho.

O que precisa acontecer para que esse processo seja tão simples assim?

    
por Colin Dean 12.05.2011 / 04:37

1 resposta

2

A resposta simples é que, com o estado atual do X hotplug, você não pode. Se você está suficientemente motivado, minha compreensão (extremamente limitada) da pilha de trabalho a fazer é a seguinte:

  • 1) Teste / verifique o suporte ao XRandR no xserver-xorg-video-displaylink
  • 2) Adicione uma regra do udev que chame um script de ativação do hotplug
  • 3) Faça com que o script de ativação inicialize o dispositivo e envie RROutputChangeNotifyEvent para X
  • 4) Solucione os problemas conhecidos com o recebimento do RROutputChangeNotifyEvent que faz com que atualmente funcione apenas com determinados tipos de dispositivos de hardware (algo sobre pesquisa)

Uma vez que você chegou até aqui, você deve ser capaz de anexar um dispositivo de displaylink após o X estar rodando, e tê-lo inicializado. O modo como sua sessão lida com o dispositivo como uma exibição secundária será uma fonte interessante de bugs: há muitos casos de canto lidando com telas muito pequenas (alguns dispositivos comuns de displaylink são 800x480 ou menores) ou com dificuldades de alocação de VRAM suficiente rotinas de manuseio interessantes para telas de alta resolução).

MAS isso não está completo, porque você precisará reconectá-lo e reinicializá-lo toda vez que quiser usá-lo. Para uma solução mais rica, é necessário ativar o hotplug em um nível mais profundo, que também pode ser usado para coldplug:

  • a) Implementar pesquisa / manipulação de DDC / EDID para displaylink
  • b) Implementar pesquisa de barramento USB durante a inicialização do X
  • c) Teste / verifique o suporte ao XRandR no xorg-xserver-video-displaylink
  • d) Adicione dicas do udev para dispositivos displaylink para dizer ao X como detectá-los

Dependendo precisamente como b) é implementado, isso também deve abranger o caso hotplug, enviando atributos para X nas regras do udev (compare com a forma como o suporte a hotplug de entrada X no udev é ativado) . Uma vantagem adicional dessa implementação é que ela provavelmente também acaba adicionando suporte para adaptadores de exibição USB que usam o driver sisusb (embora isso precisaria de testes separados).

Se você estiver realmente interessado neste nível de implementação, recomendo que você analise cuidadosamente o wiki.x.org e discuta isso com os desenvolvedores do X. Várias pessoas já analisaram o problema antes, mas todas parecem ter se distraído com algo em algum momento do processo.

Se o acima estiver completo, a experiência do usuário deve ser: Anexar um dispositivo. Instale o driver. Veja como funciona (sem logout / login, sem reinicialização, etc.). Observe que o usuário não será solicitado a instalar o driver na detecção de hardware, o que é um problema totalmente separado, e acho que já passei tempo suficiente nesta resposta para deixar isso em outro momento.

    
por Emmet Hikory 05.07.2011 / 15:25