Włącz wyświetlanie zewnętrzne na konsoli FreeBSD

17

tl; dr, chciałbym użyć zewnętrznego wyświetlacza z FreeBSD 10.0 na HP Pavilion g7-2270us. Nie obchodzi mnie, czy jest dublowany, czy muszę wybrać jedno lub drugie.

Oto objawy:

  • Po podłączeniu wyświetlacza do zewnętrznego portu wyświetlania VGA, zarówno ekran podłączony, jak i wyświetlacz zewnętrzny są aktywne na ekranach systemu BIOS.
  • Gdy FreeBSD zaczyna się uruchamiać, zewnętrzny wyświetlacz VGA przestaje być aktywny.
  • Po uruchomieniu oczekiwane fnF4naciśnięcie klawisza w celu przełączenia domyślnego wyświetlania nie ma żadnego efektu (ani też nie działa F4samo), niezależnie od stanu „klawiszy akcji” w BIOS-ie, tj. Czy należy użyć modyfikatora.

Inne notatki:

  • W systemie BIOS nie ma opcji, które byłyby odpowiednie w tej sytuacji.
  • Brak zainstalowanych serwerów graficznych, więc X / Wayland / etc. nie ma związku z tym pytaniem (np xrandr.).
  • Wygląda na to, że zintegrowana grafika Intel Core i3-3110M jest obsługiwana w wersjach ≤ 9.1.

grepping wokoło pciconfznajduję:

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

a oto kilka bardziej przydatnych rzeczy z 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

Oczywiście vgapci0jest dołączony ekran. Wygląda więc na vga0to, że to sprawca, który staramy się zrobić. Jest w isa0autobusie obsługiwanym przez isab0dołączony most ISA-PCI pci0. Rzeczywiście, po przekopaniu się devinfoznajdujemy:

        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

co jest zgodne z powyższym z dmesg. To urządzenie jest opisane pciconfjako:

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 wyświetla dane fizyczne złącze portu:

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

oraz standardowa grafika 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

ale nic o mostku PCI-ISA. Być może, jak sugeruje David King , problem polega na tym, że nie ma ładowanego sterownika dla urządzenia VGA ISA. To wyjaśnia, dlaczego nie widzimy tego jako nonewpisu na pciconfliście - to nie jest urządzenie PCI. Nie wiem, jak uzyskać więcej informacji na temat tego urządzenia, aby nawet dowiedzieć się, jakiego sterownika użyć, jeśli to jest problem.

wxl
źródło
4
Wygląda na to, że upuszcza monitor zewnętrzny, gdy zmienia standardowe sterowniki na specyficzne dla karty. Domyślam się, że musisz znaleźć i zainstalować sterowniki karty graficznej z zewnętrznym interfejsem VGA. Z twojego dmesgdziennika wynika, że ​​dane urządzenie vga0: <Generic ISA VGA>...zaczyna tam szukać
David King

Odpowiedzi:

1

Patrząc na ten problem, wspominasz:

Po podłączeniu wyświetlacza do zewnętrznego portu wyświetlania VGA, zarówno ekran podłączony, jak i wyświetlacz zewnętrzny są aktywne na ekranach systemu BIOS. Gdy FreeBSD zaczyna się uruchamiać, zewnętrzny wyświetlacz VGA przestaje być aktywny.

Zasadniczo oznacza to, że musisz edytować /boot/loader.conf.

Chciałbym spróbować czegoś takiego /boot/loader.conf:

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

Zakładając, że „1024x768” to rozdzielczość, której szukasz.

Źródła: fora freebsd.org , jakiś przypadkowy blog - nie byłem w 100% za nazwą / pisownią modułu i stroną podręcznika FreeBSD vt

Ahhh, klawisze Fn nie działają, prawie o tym zapomniałem ... zwykle nie można wykryć naciśnięć klawiszy Fn, jednak klawiatura interpretuje je i używa go jako modyfikatora klawisza. Więc kiedy uderzysz, powiedzmy Fn+F4, FreeBSD nie dostanie ani Fnżadnych F5kluczowych zdarzeń, ale inne, to, które włącza / wyłącza ekran zewnętrzny, które zależy, od rodzaju używanej klawiatury. Niestety, FreeBSD nie ma odpowiedniego sterownika ładowany za pomocą klawiatury, więc trzeba znaleźć właściwą moduł i załadować go w taki sam sposób, jak powyżej <mod>_load="TRUE"w /boot/loader.conf. Nie mam jednak wystarczającej ilości informacji na twojej klawiaturze, aby móc ci pomóc.

karpa
źródło