首页 新闻 会员 周边 捐助

瑞芯微平台想要在hdmi热插拔事件发生后执行xrandr屏幕旋转指令,我该怎么做? 各位佬?

0
[待解决问题]

使用udev实现hdmi设备插拔事件,sh脚本里的xrandr指令就是不被执行(这个脚本确定是执行成功了的,因为设置的串口打印有显示----HDMI disconnected...或者HDMI connected...)

脚本如下:

#!/bin/bash

# 读取HDMI连接状态
status=$(cat /sys/class/drm/card0-HDMI-A-1/status)
tty=/dev/ttyFIQ0

# 拔出事件
if [ "$status" = "disconnected" ]; then 
    echo "HDMI disconnected..." > $tty
    sudo xrandr --output HDMI-1 --rotate normal
# 插入事件
else   
    echo "HDMI connected..." > $tty
    sudo xrandr --output HDMI-1 --rotate left
fi

在此之前我也尝试在开机启动脚本中加入xrandr指令(屏幕自身是竖屏),虽然开机脚本加入了旋转指令可以让其开机显示横屏,但是一拔插hdmi线,就会又回到竖屏显示 。

ps:主板是rk3568的hdmi输出,接转接板(hdmi转mipi)到屏幕的(屏幕自身是竖屏)。需求是想让竖屏横显,且拔插hdmi线不会回到原来角度(现在是一热插拔hdmi,原本转换成的横屏就又变成竖屏了)

雒河桥南的主页 雒河桥南 | 菜鸟二级 | 园豆:202
提问于:2025-01-03 10:05
< >
分享
所有回答(1)
0

如果xrandr执行结果符合你的要求, echo打印的字符串又能正确显示,那就是权限问题.
自动脚本里肯定不能用sudo命令.用其他办法让脚本获取root权限吧

www378660084 | 园豆:1310 (小虾三级) | 2025-01-06 10:28

但是如果是权限的问题那么脚本是不能执行的呀,会不会是这个指令没有起到作用?我试了拔插hdmi线时粘贴旋转指令到终端回车执行,情况是黑屏状态下粘贴执行无效,只有屏幕亮了显示ui时执行才有效。如果是权限问题的话,我该如何获得root权限呢?

支持(0) 反对(0) 雒河桥南 | 园豆:202 (菜鸟二级) | 2025-01-06 10:59

@雒河桥南: udev应该是root执行的,不过sudo也是不需要的. 如果是需要延迟执行,那你在脚本里加个sleep等下试试看

支持(0) 反对(0) www378660084 | 园豆:1310 (小虾三级) | 2025-01-06 11:25

@www378660084: sleep几秒,它就黑屏几秒,亮屏后还是竖屏( 按理应该sudo xrandr --output HDMI-1 --rotate left变横屏的)

支持(0) 反对(0) 雒河桥南 | 园豆:202 (菜鸟二级) | 2025-01-06 11:28

@雒河桥南: 那就是hdmi也有个trigger,在你这个后面执行了...你可以找到这个trigger把它去掉. 或者后台再启动个脚本,在后台脚本里加sleep,保证你的切换最后执行

支持(0) 反对(0) www378660084 | 园豆:1310 (小虾三级) | 2025-01-06 11:32

@雒河桥南: https://baijiahao.baidu.com/s?id=1775100853162321423&wfr=spider&for=pc
https://blog.csdn.net/jay547063443/article/details/132214775
这里有两个切换hdmi方向的,要不你参考下看看有没有有,可能不用监控udev那么麻烦

支持(0) 反对(0) www378660084 | 园豆:1310 (小虾三级) | 2025-01-06 11:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册