Detectar monitor remoto en sesión Live Debian por CLI

lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención   -  
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   -

Hola a todos :),

Tengo un sistema Debian en una sesión en vivo (Clonezilla personalizado con, entre otras cosas, paquetes integrados útiles para la administración del sistema y la red), al que accedo de forma remota mediante SSH (sin GUI, solo en CLI). Desde él, quiero probar diferentes monitores VGA (desconectar, volver a conectar) en los puertos VGA y Display Port y ver que funcionen. El problema es que en cuanto desconecto el primer monitor, cuando vuelvo a conectar el siguiente (que funciona, preciso), la pantalla permanece negra, no se detecta.

En este caso, ¿qué harían ustedes para volver a detectar los monitores sin tener que reiniciar y recargar la sesión en vivo (actualmente está realizando una tarea delicada que no puedo interrumpir)?

La idea es poder utilizar una "sesión en vivo" para un montón de operaciones sin tener que reiniciarla, incluida la prueba de hardware que no es plug and play.

No sé si mi solicitud es clara, puedo precisar ...

Nota: para estar seguros de que estamos hablando de lo mismo, no hay un entorno Xorg ni otro, ya que estoy en CLI.

Con afecto,

lnj



6 respuestas

mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
 

Hola lenainjaune,

El único comando que conozco para listar las pantallas (incluidos los "DP" de los que hablas) es el comando xrandr, que como su nombre sugiere se basa en el servidor gráfico.

A priori, puedes salir del paso con el contenido de /sys/class/drm, que está poblado incluso si no tienes un servidor gráfico.

 (mando@silk) (~) $ ls /sys/class/drm card0 card0-eDP-1 card0-HDMI-A-1 renderD128 version

Sería interesante ver qué dicen los logs en el momento en que conectas/desconectas una pantalla:

sudo tail -f /var/log/*

Buena suerte

1
lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención   62
 
 root@CZ-LIVE:~# ls /sys/class/drm version root@CZ-LIVE:~# cat /sys/class/drm/version drm 1.1.0 20060810 root@CZ-LIVE:~# ls -l /sys/class/drm* /sys/class/drm: total 0 -r--r--r-- 1 root root 4096 20 sept. 11:54 version /sys/class/drm_dp_aux_dev: total 0 root@CZ-LIVE:~# ls -al /sys/class/drm_dp_aux_dev/ total 0 drwxr-xr-x 2 root root 0 20 sept. 10:43 . drwxr-xr-x 65 root root 0 20 sept. 10:33 .. # => aucun fichier

Por lo tanto, los DP no están listados, pero quise investigar la pista del drm:

 root@CZ-LIVE:~# lsmod | sort | grep dp cec 61440 2 drm_dp_helper,i915 drm 614400 5 drm_dp_helper,drm_kms_helper,drm_buddy,i915,ttm drm_dp_helper 159744 1 i915 drm_kms_helper 192512 2 drm_dp_helper,i915 

=> habría el controlador drm_dp_helper (dp = Display Port ?)

PD: parece corroborado por https://sources.debian.org/src/linux/5.10.140-1/include/drm/drm_dp_helper.h

Por cierto, gracias :) por tail -f /var/log/* que es muy práctico para ver la evolución en todos los archivos (usaba tail -f en un solo archivo)

0
lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención   62
 

Olvidé:

 tail -f /var/log/*

No detecta nada en lo que respecta a la conexión/desconexión de VGA/DP

0
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940 > lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención  
 

¿Me confirmas que xrandr no está instalado? Si es así, ¿no puedes considerar un live más completo (por ejemplo, Ubuntu) para tenerlo?

0
lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención   62 > mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención  
 

Dado que es una sesión en CLI, no hay servidor X.

Sí, podría tomar otra sesión en vivo (probé Porteus, basado en Slackware, que realmente me pareció genial en sesión gráfica en vivo). Pero confieso que tengo un debilidad por Clonezilla, basado en Debian, que manejo bien (sencillo, ligero, rápido, configurable a voluntad porque sé cómo añadir todos los paquetes que necesito en la imagen interna). Además, no quiero multiplicar los soportes. Prefiero tener poco y poder hacer casi todo con ello.

No tiene nada que ver, pero estoy buscando una solución para desfragmentar un sistema Windows... desde Linux (lo que me evitaría todas las herramientas de Micromou y me permitiría quedarme en mi sesión en vivo).

Pero más allá de eso, me gustaría entender... e imaginaba que era más simple (más arriba hablaba de una solución para actualizar el reconocimiento de dispositivos USB, si sigues el hilo, hay un desarrollador que elaboró un pequeño programa para compilar y ejecutar que funciona de maravilla)!

Dejo el hilo abierto y cuando tenga más experiencia en el tema, haré un retorno (creo en ello :) )

0
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940 > lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención  
 
  • Las imágenes en vivo de Debian son muy pero están diseñadas para ser mínimas para ser ligeras de descargar, ya que no se necesita mucho para instalar Debian y hacer un chroot (y esa es su función). Aquí te desvias un poco de su uso inicial y por lo tanto no se les puede "reprochar" que algunas herramientas (udev, acpi, xrandr, etc.) estén ausentes. Así que quizás sea el momento de considerar Ubuntu o Porteus o cualquier otro live un poco más completo, ya que no sé qué falta en este caso.
  • Con respecto a xrandr, el comando puede estar presente a pesar de todo (lo está en una Debian instalada sin interfaz gráfica), por eso vale la pena probar. Pero hay una gran probabilidad de que no funcione.
  • En tu caso, no sé por qué /sys/class/drm no contiene mucho, puedes intentar ver si está en otro lugar (así fue como encontré /sys/class/drm)
find /sys | grep DP | more
  • En cuanto al resto (desfragmentación, reconocimiento USB, etc.), reconozco que me cuesta seguirte y me parece fuera de lugar con respecto al tema inicial, así que si quieres discutirlo, te invito a abrir un nuevo hilo de discusión en el que expliques mejor qué es lo que estás tratando de hacer y las preguntas que te planteas.

Buena suerte

0
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
 

Hola,

Hay algo que no entiendo en tu pregunta: si tienes la posibilidad de cambiar la pantalla en la computadora, ¿por qué necesitas ssh? ¿Por qué no trabajar directamente con el sistema operativo que se ejecuta en la computadora a la que conectas tus pantallas?

En teoría, incluso en modo texto, tu tarjeta de video debería detectar cuando conectas/desconectas una pantalla. ¿No es simplemente que tu pantalla tiene varias interfaces de entrada (como VGA, DVI, display port) y no recibe la señal en la entrada correcta? ¿Y en ese caso no es a nivel de Linux, sino a nivel de los botones de la pantalla donde hay que actuar?

Buena suerte

0
lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención   62
 

Hola mamiemando y gracias por ayudarme una vez más ;)

Después de haber iniciado el Live USB, comencé el proceso delicado mientras el monitor estaba conectado al puerto VGA y funcionando. Como quería probar un adaptador de DisplayPort a VGA y no tenía otra pantalla, lo desconecté del conector VGA y lo conecté al DP. Como no tenía señal, volví a conectar el VGA, que tampoco muestra nada ahora.

Sé que en un sistema clásico (digamos Debian), se puede conectar/desconectar sin reiniciar, pero como estoy en un entorno Live, no debe haber los procesos habituales que actualizan la detección.

Lo que quiero saber es cómo se detectan las pantallas en segundo plano para poder volver a activar su detección sin tener que reiniciar, etc. Ya hice esto para USB (por ejemplo, ver este hilo), así que debe ser posible.

PD: Fuera de tema, pero aún tengo una respuesta que darte desde hace un tiempo (ver aquí), pero como no he vuelto al tema, no he tenido la oportunidad de responderte. Esto vendrá pronto, ya que debo actualizar el viejo portátil en cuestión para mi pareja.


0
avion-f16 Mensajes publicados 19182 Fecha de registro   Estado Colaborador Última intervención   4 511
 

Hola,

Puede ser necesario volver a adjuntar la consola con la siguiente instrucción :

echo 1 > /sys/class/vtconsole/vtcon0/bind

(adaptar según los vtconX en tu sistema)

Ver aquí : https://www.kernel.org/doc/html/latest/fb/fbcon.html

0
lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención   62
 

Hola :)

Lo creí ... pero no funcionó, pero es este tipo de respuesta que busco.

A tener en cuenta:

  1. para los vtconX tengo vtcon0 y vtcon1 y la operación no ha dado resultado en ninguno de los 2
  2. raramente el DP desde esta sesión en vivo soporta el plug and play, pero no el VGA (?)
  3. desde otra sesión en vivo en otro PC (que pude probar temporalmente durante la pausa), el VGA funciona en PnP

Al final, no sé por qué no tengo el mismo comportamiento en las 2 máquinas.

Nota: Estudiaré con cuidado el enlace que me propones, pero no ahora porque tengo urgencias y sobre todo no tengo Internet en casa después de una mudanza (aquí estoy en el trabajo).

0
avion-f16 Mensajes publicados 19182 Fecha de registro   Estado Colaborador Última intervención   4 511 > lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención  
 

Hola,

Puedes intentar eventualmente eliminar (modprobe -r ...) y luego recargar (modprobe ...) el/los controlador(es) correspondiente(s) a tu GPU, aunque esto puede conducir a comportamientos inestables o bloqueos.

Otra técnica puede ser expulsar la GPU y luego escanear los dispositivos PCI para encontrarla de nuevo. Ver aquí.

0
lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención   62 > avion-f16 Mensajes publicados 19182 Fecha de registro   Estado Colaborador Última intervención  
 

Me parece haber constatado esto en sesión Live (no puedo confirmarlo debido a un problema de hardware - ver abajo):

  • si conecto la pantalla por DP antes del arranque del sistema, el VGA estará indisponible
  • si conecto la pantalla a través del VGA, el DP estará indisponible

Para colmo, acabo de ver que de los 2 adaptadores DP-VGA que acabamos de pedir, el primero nunca funcionó y el segundo funcionaba pero ahora tiene un comportamiento errático (¡vaya m**rdas!), así que mientras espero los adaptadores DP de reemplazo, no puedo probar el DP.

Sin embargo, he recuperado la información y seguido tus propuestas.

Recuperar la información:

 root@cz-live:~# dmidecode -t 8 | awk -v RS="" -v ORS="\n\n" '/VGA|DISPLAY PORT/' Handle 0x001A, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: 00H Internal Connector Type: None External Reference Designator: VGA Port External Connector Type: DB-15 female Port Type: Video Port Handle 0x001B, DMI type 8, 9 bytes Port Connector Information Internal Reference Designator: 00H Internal Connector Type: None External Reference Designator: DISPLAY PORT External Connector Type: Other Port Type: Video Port root@cz-live:~# lshw -c display *-display NON RECLAMADO description: Controlador compatible con VGA producto: 2nd Generation Core Processor Family Integrated Graphics Controller fabricante: Intel Corporation identificador hardware: 2 información bus: pci@0000:00:02.0 versión: 09 bits: 64 bits reloj: 33MHz funcionalidades: msi pm vga_controller bus_master cap_list configuración: latency=0 recursos: memoria:e0c00000-e0ffffff memoria:d0000000-dfffffff puertoE/S:3000(tamaño=64) memoria:c0000-dffff *-graphics producto: VESA VGA identificador hardware: 1 nombre lógico: /dev/fb0 funcionalidades: fb configuración: depth=16 resolución=800,600 root@cz-live:~# lspci -vv | awk -v RS="" -v ORS="\n\n" '/ VGA /' 00:02.0 Controlador compatible con VGA: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) (prog-if 00 [controlador VGA]) DeviceName: Onboard IGD Subsistema: Dell 2nd Generation Core Processor Family Integrated Graphics Controller Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Estado: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latencia: 0 Interrupción: pin A enrutada a IRQ 11 Región 0: Memoria en e0c00000 (64-bit, no prefetchable) [tamaño=4M] Región 2: Memoria en d0000000 (64-bit, prefetchable) [tamaño=256M] Región 4: Puertos I/O en 3000 [tamaño=64] ROM de expansión en 000c0000 [virtual] [desactivada] [tamaño=128K] Capacidades: [90] MSI: Enable- Count=1/1 Maskable- 64bit- Dirección: 00000000 Datos: 0000 Capacidades: [d0] Power Management versión 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Estado: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capacidades: [a4] Funciones avanzadas de PCI AFCap: TP+ FLR+ AFCtrl: FLR- AFStatus: TP- Módulos del kernel: i915 

Tus propuestas:

 root@cz-live:~# echo 1 > /sys/bus/pci/rescan => KO la pantalla sigue apagada root@cz-live:~# lsmod | grep i915 | sort cec 61440 2 drm_dp_helper,i915 drm 614400 5 drm_dp_helper,drm_kms_helper,drm_buddy,i915,ttm drm_buddy 20480 1 i915 drm_dp_helper 159744 1 i915 drm_kms_helper 192512 2 drm_dp_helper,i915 i2c_algo_bit 16384 1 i915 i915 3166208 0 ttm 86016 1 i915 video 57344 1 i915 root@cz-live:~# modprobe -r i915 root@cz-live:~# lsmod | grep i915 | wc -l 0 root@cz-live:~# modprobe i915 root@cz-live:~# lsmod | grep i915 | wc -l 9 => KO la pantalla sigue apagada root@cz-live:~# for d in $( find /sys/bus/pci/devices -maxdepth 1 -type l ) ; do echo 1 > "$d/rescan" ; done => KO la pantalla sigue apagada

Nota: no sé cómo ver si el sistema detecta bien la pantalla por el DP en la sesión Live en CLI, por lo que fuera de una sesión gráfica X (xrandr); en particular, journalctl -f no muestra actividad ...

0
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
 

Hola,

Recargar el módulo de la tarjeta gráfica puede efectivamente desbloquear la solución. Pero según yo, deberías asegurarte de que los paquetes acpid y udev estén bien instalados en tu sistema en vivo.

sudo apt update sudo apt install udev acpid acpi-support-base

Si eso no es suficiente, ¿has mirado este tutorial y puedes aplicarlo?

Buena suerte

0
lenainjaune Mensajes publicados 726 Fecha de registro   Estado Colaborador Última intervención   62
 

En mi caso faltaba: acpi-support-base acpid y la dependencia libudev1

Intenté (ver post #7):

 root@cz-live:~# echo 1 > /sys/bus/pci/rescan root@cz-live:~# modprobe -r i915 root@cz-live:~# modprobe i915 root@cz-live:~# for d in $( find /sys/bus/pci/devices -maxdepth 1 -type l ) ; do echo 1 > "$d/rescan" ; done

y un hot-plug VGA->DP

=> KO la pantalla sigue apagada

Voy a probar el tutorial, pero tengo la impresión de que necesita un servidor X, en mi caso estoy en CLI únicamente.

{edit]

udevadm monitor no parece detectar los plugs/unplug de los monitores

Una idea:

Consigo encontrar el controlador del VGA (aquí i915) con lspci -vv, pero ¿cómo puedo hacer para el DP ya que no está listado por lspci?

[/edit]

0
mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 940
 

Hola,

Respecto al mensaje #16:

Sí, xrandr requiere que el servidor gráfico esté en ejecución. Ten cuidado, no debe ejecutarse como root (ya que no hay razón para hacerlo), al igual que el servidor gráfico. Por lo tanto, no es una buena opción si no quieres instalar y ejecutar un servidor gráfico.

Regresando a tu problema

En cuanto a /sys/class/drm, está poblado por el controlador de la tarjeta de video (ve por ejemplo esta discusión y esta discusión), pero en un sistema live, hay muchas posibilidades de que solo cargues módulos muy básicos para su soporte. Esto explicaría por qué en tu caso /sys/class/drm está vacío.

En el caso de tu tarjeta de video, consulta este enlace. Qué bien, tengo esta tarjeta de video en mi portátil, así que aquí están los módulos que se cargan en condiciones normales:

 (mando@silk) (~) $ lsmod | grep i915 i915 2965504 76 drm_buddy 20480 1 i915 i2c_algo_bit 16384 1 i915 drm_display_helper 180224 1 i915 cec 61440 2 drm_display_helper,i915 ttm 90112 1 i915 drm_kms_helper 192512 2 drm_display_helper,i915 drm 602112 17 drm_kms_helper,drm_display_helper,drm_buddy,i915,ttm video 57344 2 asus_wmi,i915

Creo que en tu caso, cargar el módulo drm debería ser suficiente para cargar en cascada todos los módulos mencionados y poblar /sys/class/drm. Como root o mediante sudo:

modprobe drm ls /sys/class/drm

Buena suerte

0