Включить внешнее отображение на консоли FreeBSD

17

Я хотел бы использовать внешний дисплей с FreeBSD 10.0 на HP Pavilion g7-2270us. Не важно, зеркально ли это или я должен выбрать один или другой.

Вот симптомы:

  • Когда дисплей подключен к порту внешнего дисплея VGA, подключенный дисплей и внешний дисплей активны на экранах BIOS.
  • Как только FreeBSD начинает загружаться, внешний VGA-дисплей больше не активен.
  • После загрузки ожидаемое fnF4нажатие клавиши для переключения дисплея по умолчанию не оказывает никакого влияния (и не влияет F4само по себе), независимо от состояния «клавиш действия» в BIOS, т. Е. Нужно ли использовать модификатор или нет.

Другие заметки:

  • В BIOS нет опций, которые бы соответствовали этой ситуации.
  • Графические серверы не установлены, поэтому X / Wayland / etc. не имеет отношения к этому вопросу (например xrandr).
  • Встроенная графика Intel Core i3-3110M поддерживается в версиях ≤ 9.1.

grepПинг в pciconfя нахожу:

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

и вот еще несколько полезных вещей из 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

Очевидно, vgapci0это прикрепленный экран. Тогда кажется, что vga0это виновник, которого мы пытаемся заставить работать. Он находится на isa0шине, обслуживаемой подключенным к нему isab0мостом ISA-PCI pci0. Действительно, копаясь в devinfoмы находим:

        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

что согласуется с вышеизложенным из dmesg. Это устройство описано pciconfкак таковое:

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 перечисляет рассматриваемый физический порт соединителя:

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

и стандартная графика 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

но ничего о мосте PCI-ISA. Так что, возможно, как предполагает Дэвид Кинг , проблема в том, что для устройства ISA VGA не загружается драйвер. Это объясняет, почему мы не видим его как noneзапись в pciconfсписке - это не устройство PCI. Чего я не знаю, так это как получить больше информации об этом устройстве, чтобы даже выяснить, какой драйвер использовать, если это проблема под рукой.

ШхД
источник
4
Звучит так, будто он сбрасывает внешний монитор, когда переключается с общих драйверов на карты. Полагаю, вам нужно найти и установить драйверы для видеокарты с внешним интерфейсом VGA. Из вашего dmesgжурнала выглядит, что рассматриваемое устройство - это vga0: <Generic ISA VGA>...начало поиска
Дэвид Кинг

Ответы:

1

Глядя на эту проблему, вы упоминаете следующее:

Когда дисплей подключен к порту внешнего дисплея VGA, подключенный дисплей и внешний дисплей активны на экранах BIOS. Как только FreeBSD начинает загружаться, внешний VGA-дисплей больше не активен.

Это в основном означает, что вам нужно отредактировать свой /boot/loader.conf.

Я хотел бы попробовать что-то вроде следующего в /boot/loader.conf:

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

Предполагая, что «1024x768» - это разрешение, которое вы ищете.

Источники: форумы freebsd.org , какой-то случайный блог - я не был на 100% уверен в названии / написании модуля , а в справочной странице FreeBSD vt

Аааа, клавиши Fn не работают, почти забыли, что одна ... обычно вы не можете обнаружить нажатия клавиш Fn, однако ваша клавиатура интерпретирует их и использует ее в качестве модификатора клавиши. Поэтому, когда вы нажимаете , скажем Fn+F4, FreeBSD не получит ни Fn, ни F5ключевых событий, кроме другого, то, которое включает / отключает внешний экран, что зависит от того, какую клавиатуру вы используете. К сожалению, FreeBSD не имеет соответствующий драйвер загружен для клавиатуры, так что вы должны найти правильный модуль и загрузить его таким же образом , как указано выше <mod>_load="TRUE"в /boot/loader.conf. У меня недостаточно информации на твоей клавиатуре, чтобы я мог помочь тебе больше.

thecarpy
источник