Увімкніть зовнішній дисплей на консолі FreeBSD


17

tl; dr, я хотів би використовувати зовнішній дисплей з FreeBSD 10.0 на HP Pavilion g7-2270us. Не байдуже, чи це дзеркальне відображення чи мені доведеться вибрати те чи інше.

Ось симптоми:

  • Коли дисплей підключено до зовнішнього порту VGA, на приєднаному дисплеї і зовнішній дисплей активні на екранах BIOS.
  • Як тільки FreeBSD починає завантажуватися, зовнішній VGA-дисплей більше не працює.
  • Після завантаження очікуване fnF4натискання клавіші для перемикання дисплея за замовчуванням не має ефекту (ані F4поодинці), незалежно від стану "клавіш дії" в BIOS, тобто потрібно використовувати модифікатор чи ні.

Інші примітки:

  • У BIOS немає варіантів, які були б відповідні для даної ситуації.
  • Не встановлено графічних серверів, тому X / Wayland / тощо. не має відношення до цього питання (наприклад 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 man

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.