Answers:
我认为您可以将显示模式添加到中/etc/X11/xorg.conf
。
如果没有xorg.conf
,则可以使用以下内容作为基础。您需要用名称替换条目Modeline
,Driver
并Modes
用系统的正确条目替换。根据您的硬件,您可能需要其他条目,例如,如果系统具有多个图形芯片。
Section "Monitor"
Identifier "Monitor0"
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Modeline "1024x768_60.00" 63.50 1024 1072 1176 1328 768 771 775 798 -hsync +vsync
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Modes "1280x1024_60.00" "1024x768_60.00"
EndSubSection
EndSection
Section "Device"
Identifier "Card0"
Driver "nvidia"
EndSection
如果您不知道系统正在使用的视频驱动程序的名称,则可能会得到如下名称(如果您具有intel图形芯片,则驱动程序名称仅为“ intel”):
lshw -class display | grep "driver"
可以通过以下方式生成模式行cvt
:
cvt <h-resolution> <v-resolution> [refresh]
cvt
命令生成的modeline 和从另一个命令生成的驱动程序(也尝试vesa
过),但是它只是挂起而没有任何错误消息。乔恩·罗伯茨(Jon Roberts)的解决方案非常适合我,并且与您在此处提到的显卡驱动程序之类的东西无关,对于新手来说,这很容易出错,因此,我投票赞成他的回答。
lshw
输出i915
,但是正确的驱动程序是intel
。
修改/etc/lightdm/lightdm.conf
以添加以下选项:
display-setup-script>在登录屏幕出现之前调用mycustomloginvideo.sh
session-setup-script>在用户桌面会话开始之前调用mycustomdesktopvideo.sh
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh
您可能具有“ arandr” gui工具来生成上述sh脚本,并从当前会话的X配置中选择参数。
确保您的shell脚本是可执行的:
chmod a+x /usr/share/mycustom*video.sh
您可以通过在终端上运行它来测试它是否有效(即,您的xrandr命令中没有错别字或配置错误):
/usr/share/mycustomdesktopvideo.sh
如果登录脚本由于任何原因无法正常运行,则您的计算机可能无法完成登录屏幕的启动过程。如果桌面脚本失败,则登录后可能无法获得桌面。如果设置外部监视器,则断开连接时这些脚本将失败,并且X会话将不会启动。
display-setup-script
脚本,因为Xfce已由显示设置进行了设置,因此session-setup-script
刚刚在登录屏幕上将我甩了下来。
有人发布了另一种解决方法,尽管我必须说这对我不起作用。它可能为您工作。就我而言,这破坏了团结,我只能四处移动鼠标光标。应用程序指示器的顶部面板看起来是空的,但是拔下LCD的电源后,我能够删除添加的行,并且一切恢复正常。
编辑档案 /usr/sbin/lightdm-session
这是该文件的第一部分现在的样子:
#!/bin/sh
#
# LightDM wrapper to run around X sessions.
echo "Running X session wrapper"
# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
if [ -f "$file" ]; then
echo "Loading profile from $file";
. "$file"
fi
done
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode CRT1 1368x768_60.00
xrandr --output CRT1 --mode 1368x768_60.00
# Load resources
请注意,应更改Xrandr设置以匹配您的设置。
我已经尝试解决类似问题已有一段时间了,并且找到了一个对我有用的解决方案,因此希望它将对您有所帮助...
我有一个老旧的AOA110,我的屏幕坏了太多次了,在购买了一台新笔记本电脑之后,我决定将其变成HTPC,但是X不能识别我的外接显示器,所以我不得不对其进行多次“调整”,以使其以正确的分辨率工作。
这是我所做的:
在使用此http://ubuntuforums.org/showthread.php?t=1112186教程至第5步之后,我能够在xrandr中找到一个可行且可接受的分辨率,但是在LightDM登录屏幕上却无法使用。
不要按照上面的步骤来使其持久化,但是我认为这是在11.10中实现它的正确方法。我在ArchWiki https://wiki.archlinux.org/index.php/Xorg上找到了适合我需要的帖子。
首先在这里创建一个文件: /etc/X11/xorg.conf.d/10-monitor.conf
然后为您的显示添加适当的X详细信息,这是我的外观:
Section "ServerLayout"
Identifier "DualSreen"
Screen 0 "Screen0"
Screen 1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
#Option "Xinerama" "1" #To move windows between screens
EndSection
Section "Monitor"
Identifier "LVDS1"
Option "ignore" "true"
EndSection
Section "Monitor"
Identifier "VGA1"
Option "Enable" "true"
Modeline "1440x900_60.00" 106.47 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync
EndSection
Section "Device"
Identifier "Device0"
Driver "intel"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "intel"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "VGA1"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
Modes "1440x900_60.00"
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "LVDS1"
DefaultDepth 24
Option "TwinView" "0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
要添加的重要位在适当的位置Section "Monitor"
包括Modeline
使用时找到的适当位置,gtf 1440 900 60.00
然后在相应的位置Section "Screen"
包含正确的位置Modes
。
您会注意到,我试图做的不仅是将VGA1连接设置为合适的分辨率,而且还告诉它不要使用我的LVDS1输出。显然,您需要进行适当的调整以匹配正确数量的输出以及适合您的设置的“设备”,“屏幕”和“显示”部分。
抱歉,这是史诗般的帖子,一段时间以来,我一直在使用我一直在使用的Hannspree显示器来调整xorg.conf文件,而我在11.10之前使用的旧xorg.conf设置再也无法正常工作了,这是我发现唯一可行的解决方案。
祝好运!
xrandr -q
应为您提供有关正在使用的显示器以及可能的模式的正确信息。
Xorg :1 -configure
,该文件将创建一个新的X服务器并从中生成一个配置文件-可以将其从复制/root/xorg.conf.new
到/etc/X11/xorg.conf
。我发现上面的答案
如上所述,我的笔记本电脑也遇到类似的问题,我想在对话中添加一些内容。如果您不关心登录分辨率(我不希望),但希望实际的工作区是正确的分辨率,则可以将监视器信息添加到LightDM,但在登录之前不要打开完整分辨率。
我刚刚在文件中为监视器添加了以下脚本: lighdmxrandr
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00
然后我叫它 /etc/lightdm/lightdm.conf
display-setup-script=/usr/bin/lightdmxrandr
登录后,即使在我重新登录后(用于给我带来一个严重的错误),也可以在“显示器”中设置我的显示器,并且该显示器可以工作。
作为对Jon Roberts答案的增强,让我指定arandr不在其sh脚本生成中包括当前会话中工作的所有参数。主监视器(如果使用双监视器配置),例如,不包括每个监视器的刷新率和伽玛设置。我的会话脚本如下所示:
#!/bin/sh
xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary
xrandr --output VGA-1 --gamma 0.8:0.7:0.55
我在第一行中手动添加了--rate和--primary选项,然后在第二行中手动添加了伽马校正功能,因为每当将显示器切换至主屏幕时,显然xrandr伽马设置都会丢失。
我不知道使显示器成为主要显示器时使用gamma设置的这种特定行为是故意的还是错误的。
而且,会话shell脚本不是由lightdm调用的,而是作为启动应用程序调用的,因为看来lightdm在事情准备好进行xrandr和奇怪的事情发生之前就调用了该脚本。
我的问题是希望在新的LXDE框(不是双重克隆)上扩展显示,找到了正确的命令,但无法使其永久保存。
xrandr --output VGA-0 --right-of DVI-0
以上方法似乎太难了/不是正确的方法。
我最终找到了这个:http : //www.sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/
可以用,但是我改用了gedit:
gksu gedit /etc/xdg/lxsession/LXDE/autostart
然后在行末添加@符号:
@xrandr --output VGA-0 --right-of DVI-0
希望对您有所帮助,并感谢您使用sudo-juice。
PS请注意-
xrandr命令中的双精度字符--
(在我的屏幕上显示得不太清楚)。
创建一个新文件并命名,例如/home/yourusername/yourscriptname.sh
输入
#!/bin/bash
xrandr --newmode "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace
并将其保存在您的主文件夹中(这会将分辨率设置为1600x900)
打开启动应用程序(或运行gnome-session-properties
),然后单击“添加”。输入名称并在命令行中输入:
bash /home/yourusername/yourscriptname.sh
保存它,现在您每次登录时都将运行该脚本,因此您需要先注销才能使其生效。bash /home/yourusername/yourscriptname.sh
在终端中运行命令(例如)也是检查脚本是否有效的好主意。
/usr/bin
无效,但是使用gnome-session-properties
成功将该脚本添加到我的启动应用程序中!
根据上级的响应,我进行了一些测试,找到了一种对我有用的有用方法,然后我创建了一个简单的脚本,通过自动安装将其自动化。但这对其他任何情况都适用。
创建一个脚本installxrandrfixed.sh添加以下行:
#Variables for lightdm script and xrandr script to setup fixed resolution for old displays:
xrandrscript=/usr/local/bin/xrandrscript.sh
lightdmstartscript=/usr/share/lightdm/lightdm.conf.d/60-xrandrscript.conf
#Added old style configuration for lightdm:
sudo ln -s /usr/share/lightdm/lightdm.conf.d /etc/lightdm/lightdm.conf.d
#A fix to some old displays in high school at Fray Bentos, fix to 1024x768
#Some useful information comes from: http://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent
sudo sh -c "echo '[SeatDefaults]' > $lightdmstartscript"
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
sudo sh -c "echo 'display-setup-script=$xrandrscript' >> $lightdmstartscript"
# for your desktop session
sudo sh -c "echo 'session-setup-script=$xrandrscript' >> $lightdmstartscript"
sudo sh -c "echo 'xrandr --size 1024x768 --rate 60.0' > $xrandrscript"
sudo chmod +x $xrandrscript
它将为lightdm显示和会话创建脚本和文件。不要忘记给它执行权限
chmod + x脚本installxrandrfixed.sh
并执行
./scriptinstallxrandrfixed.sh(您必须放置在文件所在的目录中。)
如果不在同一目录中:/path/to/script/scriptinstallxrandrfixed.sh
修改它以满足您的需求。亲切的问候。巴勃罗。