我正在尝试在 ASUS TinkerBoard 上的 Debian(Buster) 版本上运行 AvaloniaUI 应用程序。我使用的显示器是 7 英寸 1920x1080p 触摸屏显示器。
该应用程序以类似纵向的模式运行(即以 1080x1920 运行),因此我一直在尝试旋转显示屏,以便应用程序可以这样运行。
使用 xrandr 旋转显示器并没有给我带来什么成功。当我执行时:
xrandr --output HDMI-1 --rotate left
或者
xrandr --output HDMI-1 --rotate right
它会短暂地使屏幕空白,但没有任何效果。我可以使用相同的命令反转屏幕,但这并不能完全解决问题。我还尝试使用 xrandr 和我发现的各种其他命令来更改分辨率,但到目前为止尚未成功。
我还尝试添加:
echo 1 > /sys/class/graphics/fbcon/rotate
到 /etc/rc.local 脚本。当使用“echo 3”时,这实际上会导致启动时在屏幕上运行的命令成功旋转。但是,启动进入操作系统后,显示屏不再旋转并恢复为“横向”(即 1920x1080)。尝试将其作为 shell 脚本或服务运行也没有成功。
除了基本的“xrandr”命令之外,我似乎在网上找不到太多关于如何旋转显示器的信息。我对我的错误解释表示歉意,因为我对 Linux 还比较陌生。
这是以下的输出:
xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 255mm x 255mm
1920x1080 60.00*+
1024x600 60.04 +
1600x900 60.00
1440x810 59.98
1360x768 59.80
1280x720 60.00
1152x648 60.01
1024x576 59.97
800x450 60.05
执行我期望的 xrandr 命令是:
xrandr --output HDMI-1 --rotate inverted
这样屏幕就成功翻转了。
答案1
我找到了这个问题的解决方案。我能够编辑 /etc/X11/xorg.conf.d/ 中的文件(我的文件名为“20-modesetting.conf”,但我不确定每个人都会如此)。在“屏幕”小节中,我添加了 1080x1920 的选项:
Section "Screen"
Identifier "Default Screen"
SubSection "Display"
Depth 24
Modes "1920x1080" "1280x1024" "1024x768" "800x600" "1080x1920"
EndSubSection
EndSection
然后在本节下面我添加了一个附加部分“监视器”,如下所示:
Section "Monitor"
Identifier "HDMI-1"
Option "PreferredMode" "1080x1920"
Option "DPMS" "false"
Option "Rotate" "left"
EndSection
这会强制桌面以 1080x1920 分辨率启动,而“旋转”选项则会旋转屏幕。
要在纵向模式下正确旋转屏幕,需要这两个选项。
标识符将特定于您的输入的名称,我的是“HDMI-1”。