Intel GMA X3100 外接显示器分辨率问题

Intel GMA X3100 外接显示器分辨率问题

我在外接显示器上的 MacBook 4,1(Intel GMA X3100 图形芯片组)上运行 Ubuntu 12.04,但只能获得 1024 x 768 的分辨率(在 OS X 中我可以得到 1280 x 1024)。

我可以使用xrandr以下命令将分辨率强制为 1280 x 1024这些说明,但现在有两个问题:

  1. 屏幕偏离中心,可能向左上方偏移几十个像素。

  2. 该说明适用于 10.04,而使更改永久生效的说明在 12.04 中不起作用。

有任何解决这个问题的方法吗?

更新:我相信驱动程序是问题的根源。在我安装之前,Ubuntu 将图形设备列为“未知” mesa-utils。在桌面加载之前,我还在启动时收到一条消息,内容类似于00:02.0: i915 Invalid ROM contents

以下是相关输出lspci -v

00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) (rev 03) (prog-if 00 [VGA controller])
    Subsystem: Apple Inc. Device 00a1
    Flags: bus master, fast devsel, latency 0, IRQ 45
    Memory at d0100000 (64-bit, non-prefetchable) [size=1M]
    Memory at c0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at 6110 [size=8]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: <access denied>
    Kernel driver in use: i915
    Kernel modules: intelfb, i915

00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (secondary) (rev 03)
    Subsystem: Apple Inc. Device 00a1
    Flags: fast devsel
    Memory at d0200000 (64-bit, non-prefetchable) [disabled] [size=1M]
    Capabilities: <access denied>

我尝试使用它xrandr --output VGA1 --pos 10x10来查看它是否可以重新定位屏幕,但什么也没发生。

答案1

我已修复(1)。

我怀疑我在 xrandr 中输入的模式行编号不准确,所以我下载了适用于 OS X 的 SwitchResX,它有一个导出模式行的选项。所以我得到了我在 OS X 中使用的 1280 x 1024 模式的模式行,将它放入 Ubuntu 中的 xrandr 中,现在屏幕不再偏移了!

现在我只需要知道如何使这个改变永久生效。

答案2

您是否尝试过编辑 /etc/lightdm/lightdm.conf 文件?

如何强制多台显示器正确调整 LightDM 的分辨率?

例如,添加

display-setup-script=/usr/share/lightdmxrandr.sh

在登录屏幕运行上述脚本。

并添加

session-setup-script=/usr/share/lightdmxrandr.sh

在会话期间运行上述脚本。

就我的情况来说,该脚本内容如下:

#!/bin/bash

# connected external output
XCOM0=`xrandr -q | egrep '(HDMI1|VGA1|DP1) connected' | egrep -o '(HDMI1|VGA1|DP1)'`
# command to set external desktop
XCOM1=`xrandr --output LVDS1 --primary --auto --output $XCOM0 --auto --right-of LVDS1`
# command to set normal desktop
XCOM2=`xrandr --output LVDS1 --primary --auto`
# if the external monitor is connected, then we tell XRANDR to set up an extended desktop
if [ -n "$XCOM0" ] || [ ! "$XCOM0" = "" ]; then echo $XCOM1
# if the external monitor is disconnected, then we tell XRANDR to output only to the laptop screen
else echo $XCOM2
fi

exit 0;


# ERASE THESE COMMENTS:
# Forces multiple monitors correct resolutions for LightDM
# Tested with Ubuntu 12.04 LTS.
# Save this file as lightdmxrand.sh
# Set as an executable file like this: 
#  $ sudo chmod +x lightdmxrand.sh
# Move it to /usr/share/ directory like this:
#  $ sudo mv lightdmxrand.sh /usr/share/lightdmxrandr.sh
# Edit /etc/lightdm/lightdm.conf adding the given line to it: display-setup-script=/usr/share/lightdmxrandr.sh
# If you want this script to also run after the login, add: session-setup-script=/usr/share/lightdmxrandr.sh

希望它有效!

答案3

我能够在稍新一点的 Ubuntu (18.04) 上解决您的确切问题,但原理是一样的。您的显示适配器被正确识别,输出与我的相同。

-使用 xrandr 命令,因为您必须正确设置分辨率。

-使用方向命令将显示器设置为内置显示器的左侧(或右侧)

-(对我来说,这一步解决了像素重叠问题:现在进入系统设置并移动排列。

这个桌面设置应用程序肯定会因您的 Ubuntu 版本而有所不同;18.04 回到了 gnome,不再是 unity 桌面。

一旦你对适合你的 xrandr 命令集感到满意,我建议将它们放入“~/.xprofile”。当你登录终端并获取桌面时,这些命令将自动运行。

此链接来自 ubuntu wiki 的优秀内容,并为您提供了自动配置的其他选项。

注意:如您所知,配置新分辨率可能会很棘手;如果您选择的分辨率不好,您可能只会看到一个屏幕或没有屏幕。我把终端应用程序放在前面,并准备好带有分辨率设置的命令历史记录。使用箭头键和查看是否可以拨入。如果出现黑屏,通常拔下第二台显示器和/或关闭笔记本电脑盖 30 秒并重新打开它会暂时解决问题。

相关内容