树莓派4 Yocto镜像下如何将HDMI屏幕旋转90度?
解决Xrandr "Can't open display" 错误及屏幕旋转方案
一、先搞定xrandr的显示问题
xrandr需要明确X服务器的显示设备编号,默认是:0,先设置环境变量再执行命令:
export DISPLAY=:0 xrandr -o 1
如果是root用户执行,还得放开X的权限(调试完成后可以用xhost -恢复权限限制):
xhost + export DISPLAY=:0 xrandr -o 1
二、让旋转配置开机自动生效
手动执行命令太繁琐,修改Xorg配置是更可靠的永久方案:
- 创建或编辑
/etc/X11/xorg.conf.d/90-monitor.conf,内容如下(Rotate可选Right/Left/Inverted,HDMI-1和分辨率需对应你的实际设备,可用xrandr命令查看设备名称):
Section "Monitor" Identifier "HDMI-1" Option "Rotate" "Right" EndSection Section "Screen" Identifier "Default Screen" Monitor "HDMI-1" SubSection "Display" Modes "1920x1080" EndSubSection EndSection
- 重启X服务器或整个系统后配置即可生效。
三、同步触摸坐标旋转
屏幕旋转后触摸坐标会出现错位,必须同步调整触摸输入的映射:
- 用
xinput list命令找到你的USB触摸设备名称(比如ILITEK ILITEK-TP) - 执行以下命令完成触摸坐标旋转(参数对应90度右旋转,方向不符可调整矩阵值):
xinput set-prop "ILITEK ILITEK-TP" --type=float "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1
要让该配置永久生效,可将这条命令添加到X的启动脚本中,比如~/.xinitrc或/etc/X11/xinit/xinitrc。
四、Yocto构建阶段预配置旋转
如果希望在Yocto镜像构建时就集成旋转设置,无需后续修改:
- 在Yocto配方中添加Xorg配置文件到镜像的
/etc/X11/xorg.conf.d/目录 - 或者修改窗口管理器的启动脚本,比如Openbox的
~/.config/openbox/autostart,将xrandr和xinput命令加入其中
内容的提问来源于stack exchange,提问作者Thugmek
相关产品推荐
相关产品推荐

