在FreeBSD控制台上启用外部显示


17

tl;博士,我想在HP Pavilion g7-2270us上使用FreeBSD 10.0的外接显示器。不在乎是否已镜像,或者我必须选择其中一个。

症状如下:

  • 当将显示器插入外部VGA显示端口时,所连接的显示器和外部显示器在BIOS屏幕上均处于活动状态。
  • FreeBSD开始启动后,外部VGA显示器将不再活动。
  • 一旦启动,无论BIOS中“操作键”的状态如何,即是否需要使用修饰符,fnF4用于切换默认显示的预期击键都不会起作用(也不F4单独起作用)。

其他说明:

  • BIOS中没有与这种情况相关的选项。
  • 没有安装图形服务器,因此是X / Wayland / etc。与这个问题无关(例如xrandr)。
  • ≤9.1版似乎支持 Intel Core i3-3110M集成显卡。

grepping在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桥接器却一无所获。因此,也许就像David King所建议的那样,问题在于没有为ISA VGA设备加载驱动程序。这就解释了为什么我们在列表中没有将其视为none条目- pciconf它不是PCI设备。我不知道如何在此设备上获取更多信息,以便甚至找出要使用的驱动程序(如果这是当前的问题)。


4
从通用驱动程序切换到特定于卡的驱动程序时,听起来好像正在丢弃外部监视器。我的猜测是,您需要找到并安装运行外部VGA接口的视频卡的驱动程序。从您的dmesg日志中看,似乎是vga0: <Generic ISA VGA>...有问题的设备开始出现了
David King

Answers:


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。但是,您的键盘上没有足够的信息可以提供更多帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.