/sys/class/drm/cardX/device/ 目录下没有vblank
时间: 2023-07-09 09:54:59 浏览: 154
如果在 `/sys/class/drm/cardX/device/` 目录下没有 `vblank` 文件,可能是因为你的显卡驱动不支持 `vblank_event`,或者是因为 `vblank` 已经被重命名或者移动到了其他目录。
你可以尝试使用 `ls /sys/class/drm/cardX/device/` 命令来查看该目录下的所有文件和目录,看看是否有其他文件或目录与 `vblank` 相关。如果还是找不到,你可以考虑更新显卡驱动或者升级系统。另外,你也可以尝试在其他Linux系统上运行同样的命令,看看是否能够找到 `vblank` 文件,这有助于确定问题是否与你的硬件相关。
相关问题
cat /sys/class/drm/card0/card0-HDMI-A-1/vblank_event
这是一个 Linux 命令,用于读取文件 "/sys/class/drm/card0/card0-HDMI-A-1/vblank_event" 的内容。这个文件是一个内核接口,它提供了一个计数器,用于跟踪显示器的垂直同步信号。当显示器完成一次垂直同步时,这个计数器会自增。应用程序可以通过读取这个文件的内容,来获取当前计数器的值,从而确定显示器的垂直同步状态。这个命令通常用于调试和优化图形应用程序,比如游戏和视频播放器。如果你需要更多关于这个命令的信息,可以在终端中输入 "man cat" 命令,查看它的手册页。
sudo chmod 777 /sys/class/drm/card0-HDMI-A-1/status echo off > /sys/class/drm/card0-HDMI-A-1/status 写一个系统服务,等桌面程序起来的时候执行一下这些命令
`sudo chmod 777 /sys/class/drm/card0-HDMI-A-1/status` 和 `echo off > /sys/class/drm/card0-HDMI-A-1/status` 这两条命令涉及到Linux系统中的文件权限设置和shell命令执行。
首先,`chmod 777` 命令用于改变指定文件的权限,使之成为对所有用户开放读、写和执行权限的状态。这里,`sudo` 前缀表示以超级用户(root)的权限执行该命令,这是因为普通用户可能没有权限修改 `/sys/class/drm/card0-HDMI-A-1/status` 文件的权限。
其次,`echo off > /sys/class/drm/card0-HDMI-A-1/status` 命令通过重定向操作符 `>` 将字符串 "off" 写入 `/sys/class/drm/card0-HDMI-A-1/status` 文件。这通常用于向内核模块或系统设备文件发送命令或配置信息。
要创建一个系统服务(通常指的是systemd服务),以便在桌面环境启动时执行这些命令,可以按照以下步骤进行:
1. 创建一个新的systemd服务文件,例如 `/etc/systemd/system/desktop-startup.service`。
2. 在该文件中定义服务的配置,包括需要执行的命令。
3. 重新加载systemd管理器配置,以便识别新服务。
4. 启用服务,使其在每次启动时自动运行。
5. 启动服务。
一个简单的服务文件例子如下:
```ini
[Unit]
Description=Run commands on desktop startup
After=graphical.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo "Setting permissions" && sudo chmod 777 /sys/class/drm/card0-HDMI-A-1/status; echo "Sending off command" && echo off > /sys/class/drm/card0-HDMI-A-1/status'
[Install]
WantedBy=multi-user.target
```
请注意,根据具体的系统配置和安全策略,直接以root权限运行脚本可能会有风险。通常不建议将文件权限设置为777,因为这可能会带来安全问题。确保你了解这些命令的含义和潜在影响。
阅读全文