Activer l'affichage externe sur la console FreeBSD

17

tl; dr, j'aimerais utiliser l'écran externe avec FreeBSD 10.0 sur un HP Pavilion g7-2270us. Peu importe si c'est en miroir ou si je dois sélectionner l'un ou l'autre.

Voici les symptômes:

  • Lorsqu'un écran est branché sur le port d'écran VGA externe, l'écran connecté et l'écran externe sont actifs sur les écrans du BIOS.
  • Une fois que FreeBSD commence à démarrer, l'affichage VGA externe n'est plus actif.
  • Une fois démarré, la fnF4séquence de touches attendue pour basculer l'affichage par défaut n'a aucun effet (ni F4seul), quel que soit l'état des "touches d'action" dans le BIOS, c'est-à-dire si l'on doit ou non utiliser le modificateur.

Autres notes:

  • Il n'y a aucune option dans le BIOS qui serait appropriée à cette situation.
  • Aucun serveur graphique installé, donc X / Wayland / etc. n'a aucun rapport avec cette question (par exemple xrandr).
  • La carte graphique intégrée Intel Core i3-3110M semble être prise en charge dans les versions ≤ 9.1.

grepping autour pciconfje trouve:

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

et voici quelques trucs plus utiles 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

De toute évidence, vgapci0l'écran ci-joint. Il semble alors que vga0c'est le coupable que nous essayons de faire fonctionner. C'est sur le isa0bus qui est desservi par le isab0pont ISA-PCI attaché à pci0. En effet, en fouillant, devinfoon trouve:

        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

ce qui est cohérent avec ce qui précède dmesg. Cet appareil est décrit pciconfcomme tel:

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 répertorie le connecteur de port physique en question:

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

et les graphiques standard 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

mais rien sur le pont PCI-ISA. Ainsi, comme le suggère peut-être David King , le problème est qu'aucun pilote n'est chargé pour le périphérique ISA VGA. Cela explique pourquoi nous ne le voyons pas comme une noneentrée dans la pciconfliste - ce n'est pas un périphérique PCI. Ce que je ne sais pas, c'est comment obtenir plus d'informations sur cet appareil afin de savoir quel pilote utiliser, si tel est le problème.

wxl
la source
4
Il semble que le moniteur externe soit abandonné lorsqu'il passe de pilotes génériques à des pilotes spécifiques à la carte. Je suppose que vous devrez trouver et installer les pilotes de la carte vidéo qui exécute l'interface VGA externe. D'après votre dmesgjournal, il semble que l'appareil en question soit le point de vga0: <Generic ISA VGA>...départ
David King

Réponses:

1

En regardant ce problème, vous mentionnez ce qui suit:

Lorsqu'un écran est branché sur le port d'écran VGA externe, l'écran connecté et l'écran externe sont actifs sur les écrans du BIOS. Une fois que FreeBSD commence à démarrer, l'affichage VGA externe n'est plus actif.

Cela signifie essentiellement que vous devez modifier votre fichier /boot/loader.conf.

J'essaierais quelque chose comme ceci dans /boot/loader.conf:

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

En supposant que "1024x768" est la résolution que vous recherchez.

Sources: forums freebsd.org , blog aléatoire - je n'étais pas à 100% pour le nom / l'orthographe du module , et la page de manuel FreeBSD vt

Ahhh, les touches Fn ne fonctionnent pas, j'ai presque oublié celle-là ... vous ne pouvez généralement pas détecter les pressions sur les touches Fn, cependant, votre clavier les interprète et les utilise comme modificateur de touches. Ainsi, lorsque vous frappez, disons Fn+F4, FreeBSD n'obtiendra ni Fn, ni F5événements clés, mais un autre, celui pour activer / désactiver l'écran externe, qui, afaik, dépend du type de clavier que vous utilisez. Malheureusement, FreeBSD n'a pas le pilote approprié chargé pour votre clavier, vous devrez donc trouver le module approprié et le charger de la même manière que ci-dessus <mod>_load="TRUE"dans /boot/loader.conf. Je n'ai cependant pas assez d'informations sur votre clavier pour pouvoir vous aider davantage.

la carpe
la source