Habilite a exibição externa no console do FreeBSD

16

tl; dr, eu gostaria de usar o monitor externo com o FreeBSD 10.0 em um HP Pavilion g7-2270us. Não me importo se é espelhado ou eu tenho que selecionar um ou outro.

Veja os sintomas:

  • Quando uma exibição é conectada à porta de vídeo VGA externa, tanto a tela conectada quanto a externa estão ativas nas telas da BIOS.
  • Uma vez que o FreeBSD começa a inicializar, o monitor VGA externo não está mais ativo.
  • Uma vez inicializado, o pressionamento de tecla esperado fn F4 para alternar a exibição padrão não tem efeito (nem F4 sozinho), independentemente do estado das "teclas de ação" no BIOS, ou seja, se é necessário usar o modificador.

Outras notas:

  • Não há opções no BIOS que seriam relevantes para essa situação.
  • Nenhum servidor gráfico instalado, portanto X / Wayland / etc. não tem relevância para essa questão (por exemplo, xrandr ).
  • Os gráficos integrados Intel Core i3-3110M parecem ser suportados em versões ≤ 9.1.

grep ping em pciconf eu encontro:

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

e aqui estão algumas coisas mais úteis 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 vgapci0 é a tela anexada. Parece então que vga0 é o culpado que estamos tentando fazer funcionar. Está no barramento isa0 que está sendo atendido pela ponte isab0 ISA-PCI conectada a pci0 . De fato, cavando em torno de devinfo encontramos:

        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 é consistente com o acima, de dmesg . Este dispositivo é descrito por pciconf como 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 lista o conector da porta física em questão:

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

e os gráficos padrão 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

mas nada sobre a ponte PCI-ISA. Então, talvez, como sugere o David King , o problema é que não há driver sendo carregado para o dispositivo ISA VGA . Isso explica por que não vemos isso como uma entrada none na listagem pciconf - não é um dispositivo PCI. O que eu não sei é como obter mais informações sobre este dispositivo para descobrir qual driver usar, se esse é o problema em questão.

    
por wxl 20.11.2015 / 21:34

1 resposta

0

Olhando para este problema, você mencionou o seguinte:

When a display is plugged into the external VGA display port, both the attached display and the external display are active on the BIOS screens. Once FreeBSD begins to boot, the external VGA display is no longer active.

Isso basicamente significa que você precisa editar seu /boot/loader.conf .

Eu tentaria algo parecido com o seguinte em /boot/loader.conf :

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

Supondo que "1024x768" é a resolução que você está procurando.

Fontes: fóruns do freebsd.org , algumas blog aleatório - Eu não era 100% para o nome / ortografia do módulo e FreeBSD página man vt

Ahhh, as teclas Fn não funcionam, quase esqueci aquela ... você não pode normalmente detectar teclas Fn, entretanto, seu teclado as interpreta e usa como um modificador de tecla. Então, quando você acertar, digamos Fn+F4 , o FreeBSD não terá nem Fn , nem F5 eventos-chave, mas outro, aquele para habilitar / desabilitar a tela externa, que depende do tipo de teclado que você usa. Infelizmente, o FreeBSD não tem o driver adequado carregado para o seu teclado, então você teria que encontrar o módulo apropriado e carregá-lo da mesma maneira que acima em <mod>_load="TRUE" in /boot/loader.conf . No entanto, não tenho informações suficientes no seu teclado para poder ajudar mais.

    
por 01.12.2017 / 11:33