Habilitar visualización externa en la consola de FreeBSD

17

tl; dr, me gustaría usar la pantalla externa con FreeBSD 10.0 en un HP Pavilion g7-2270us. No me importa si está reflejado o si tengo que seleccionar uno u otro.

Aquí están los síntomas:

  • Cuando se conecta una pantalla al puerto de pantalla VGA externo, tanto la pantalla adjunta como la pantalla externa están activas en las pantallas del BIOS.
  • Una vez que FreeBSD comienza a arrancar, la pantalla VGA externa ya no está activa.
  • Una vez arrancado, la fnF4pulsación de tecla esperada para alternar la pantalla predeterminada no tiene ningún efecto (ni F4solo), independientemente del estado de las "Teclas de acción" en el BIOS, es decir, si uno necesita usar el modificador o no.

Otras notas:

  • No hay opciones en el BIOS que sean relevantes para esta situación.
  • No hay servidores gráficos instalados, por lo que X / Wayland / etc. no tiene relevancia para esta pregunta (por ejemplo xrandr).
  • Los gráficos integrados Intel Core i3-3110M parecen ser compatibles con las versiones ≤ 9.1.

grepping alrededor en pciconfencontrar:

vgapci0@pci0:0:2:0:     class=0x030000 card=0x1843103c chip=0x01668086 rev=0x09 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '3rd Gen Core processor Graphics Controller'
    class      = display
    subclass   = VGA
    bar   [10] = type Memory, range 64, base 0x52000000, size 4194304, enabled
    bar   [18] = type Prefetchable Memory, range 64, base 0x80000000, size 268435456, enabled
    bar   [20] = type I/O Port, range 32, base 0x4000, size 64, enabled
    cap 05[90] = MSI supports 1 message 
    cap 01[d0] = powerspec 2  supports D0 D3  current D0
    cap 13[a4] = PCI Advanced Features: FLR TP

y aquí hay algunas cosas más útiles de dmesg:

vgapci0: <VGA-compatible display> port 0x4000-0x403f mem 0x52000000-0x523fffff irq 16 at device 2.0 on pci0
agp0: <IvyBridge mobile GT2 IG> on vgapci0
agp0: aperture size is 256M, detected 65532k stolen memory
vgapci0: Boot video device
pci0: <simple comms> at device 22.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0

Obviamente vgapci0es la pantalla adjunta. Parece que ese vga0es el culpable que estamos tratando de hacer que funcione. Está en el isa0bus al que está isab0conectado el puente ISA-PCI conectado pci0. De hecho, hurgando en devinfoencontramos:

        isab0 pnpinfo vendor=0x8086 device=0x1e59 subvendor=0x103c subdevice=0x1843 class=0x060100 at slot=31 function=0 handle=\_SB_.PCI0.LPCB
          isa0
            sc0
            vga0
                I/O ports:
                    0x3c0-0x3df
                I/O memory addresses:
                    0xa0000-0xbffff

que es consistente con lo anterior de dmesg. Este dispositivo se describe pciconfcomo tal:

isab0@pci0:0:31:0:      class=0x060100 card=0x1843103c chip=0x1e598086 rev=0x04 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = 'HM76 Express Chipset LPC Controller'
    class      = bridge
    subclass   = PCI-ISA
    cap 09[e0] = vendor (length 12) Intel cap 1 version 0
                 features: AMT, 4 PCI-e x1 slots

dmidecode enumera el conector del puerto físico en cuestión:

Handle 0x0012, DMI type 8, 9 bytes
Port Connector Information
        Internal Reference Designator: CN5001
        Internal Connector Type: None
        External Reference Designator: CRT
        External Connector Type: DB-15 female
        Port Type: Video Port

y los gráficos estándar 0x0166:

Handle 0x001D, DMI type 41, 11 bytes
Onboard Device
        Reference Designation: Intel(R) Graphics 4000
        Type: Video
        Status: Enabled
        Type Instance: 1
        Bus Address: 0000:00:02.0

pero nada sobre el puente PCI-ISA. Entonces, tal como sugiere David King , el problema es que no se está cargando ningún controlador para el dispositivo ISA VGA. Esto explica por qué no lo vemos como una noneentrada en la pciconflista, no es un dispositivo PCI. Lo que no sé es cómo obtener más información sobre este dispositivo para incluso averiguar qué controlador usar, si ese es el problema en cuestión.

wxl
fuente
44
Parece que está cayendo el monitor externo cuando cambia de controladores genéricos a controladores específicos de la tarjeta. Supongo que necesitará encontrar e instalar los controladores para la tarjeta de video que ejecuta la interfaz VGA externa. Desde su dmesgregistro, parece que el dispositivo en cuestión es el que vga0: <Generic ISA VGA>...comienza a mirar allí
David King el

Respuestas:

1

Mirando este problema, mencionas lo siguiente:

Cuando se conecta una pantalla al puerto de pantalla VGA externo, tanto la pantalla adjunta como la pantalla externa están activas en las pantallas del BIOS. Una vez que FreeBSD comienza a arrancar, la pantalla VGA externa ya no está activa.

Esto básicamente significa que necesitas editar tu /boot/loader.conf.

Intentaría algo como lo siguiente en /boot/loader.conf:

i915kms_load="YES" 
kern.vt.fb.default_mode="1024x768"

Suponiendo que "1024x768" es la resolución que busca.

Fuentes: foros de freebsd.org , algún blog al azar: no estaba al 100% por el nombre / ortografía del módulo y la página de manual de FreeBSD vt

Ahhh, las teclas Fn no funcionan, casi olvidaste esa ... normalmente no puedes detectar las pulsaciones de teclas Fn, sin embargo, tu teclado las interpreta y las usa como un modificador de teclas. Así que cuando se pulse, por ejemplo Fn+F4, FreeBSD obtendrá ni Fn, ni los F5eventos clave, pero otra, la una para activar / desactivar la pantalla externa, que yo sepa, depende del tipo de teclado que se utiliza. Lamentablemente, FreeBSD no tiene el controlador adecuado para su carga teclado, por lo que tendría que encontrar el módulo adecuado y la carga de la misma manera que el anterior <mod>_load="TRUE"en /boot/loader.conf. Sin embargo, no tengo suficiente información en su teclado para poder ayudar más.

thecarpy
fuente