xrandr 切换crtc只能切换到已存在的crtc上

 

xrandr 切换crtc只能切换到已存在的crtc上。

如果使用xrandr命令 xrandr --output <device> --crtc <crtc>,只能切换一次。比如,目前板子连接了两个设备,CRT和DVI, CRT在IGA1上,DVI在IGA2上。如果使用命令 xrandr --output CRT --crtc 1, 则CRT 将被分配到 IGA2 上,但是如果在使用命令 xrandr --output CRT --crtc 0,则xrandr会提示错误,CRT没有合适的crtc.这是因为,在使用xrandr进行crtc的切换的时候,设备分配的那个crtc上必须有内容。
xrandr进行crtc切换的步骤是:
1.首先遍历当前所有的crtc,调用 crtc_disable()函数把crtc给关掉。
2.然后调用crtc_apply()函数,把crtc给打开。在crtc_apply()函数中,会判断当前分配的crtc有没有内容,
   if (!crtc->changing || !crtc->mode_info)
 return RRSetConfigSuccess;
   如果没有内容,这个函数会直接返回,而不会对当前的device进行重新设置,所以device是点不亮的。

### Linux HDMI 带有帧同步信号的实现与配置 #### 一、HDMI输出中的帧同步信号需求 对于HDMI输出而言,准确无误的像素时钟频率以及同步信号(例如水平同步HSync和垂直同步VSync)是至关重要的。这些参数需依据显示装置所提供的扩展显示器识别数据(EDID),或是按照预设的标准分辨率来设定,比如常见的720p或1080p等规格[^1]。 #### 二、Linux下的具体实现方式 在Linux操作系统里处理HDMI接口涉及到多个层面的工作,从硬件抽象层直到用户空间的应用程序编程接口(APIs)。针对帧同步方面: - **DRM框架**:Direct Rendering Manager (DRM) 是负责管理图形硬件的主要子系统之一,在这里可以找到用于控制视频模式设置的功能,包括但不限于调整刷新率、解析度以及其他定时属性。 - **KMS机制**:Kernel Mode Setting(KMS)允许内核直接参与屏幕模式切换过程,从而确保当连接新的监视器或其他类型的视觉终端时能够即时更新其对应的同步脉冲特性。 为了使能并正确配置上述功能,通常会涉及修改`/sys/class/drm/card*/mode`文件夹下相应节点的内容,或者通过命令行工具如`xrandr`来进行动态变更操作。此外,某些特定平台可能还会提供额外的API供开发者调用来简化这一流程。 #### 三、代码实例展示如何查询当前使用的模式及时序信息 下面给出了一段Python脚本的例子,利用`subprocess`模块执行shell指令获取有关已激活CRTC(Cursor, Raster & Timing Controller)的信息,其中就包含了关于帧同步的关键细节。 ```python import subprocess def get_crtc_info(): result = subprocess.run(['cat', '/sys/kernel/debug/dri/0/*crtc*'], stdout=subprocess.PIPE) output = result.stdout.decode('utf-8') crtc_details = [] lines = output.splitlines() for line in lines: if 'active' in line or 'hdisplay' in line or 'vdisplay' in line \ or 'hsync_start' in line or 'vsync_start' in line: crtc_details.append(line.strip()) return "\n".join(crtc_details) print(get_crtc_info()) ``` 此段代码读取了位于调试目录内的所有与CRTC相关的条目,并筛选出了那些描述活动状态及水平/垂直方向上显示尺寸、同步起点位置的数据项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值