Ubuntu 20.04下需root权限的Qt GUI应用启动失败问题求助
可行解决方案
下面提供两类可独立使用的方案,按需选择即可:
方案一:root用户正常启动GUI应用(操作最简单,适合临时测试)
- 首先在普通用户终端执行命令,允许root用户访问X显示服务:
xhost +local:root
注:该配置重启终端/系统后失效,若需要永久生效可将上述命令添加到当前用户的
~/.bashrc文件末尾。
- 启动应用时携带显示环境变量即可正常运行:
sudo DISPLAY=$DISPLAY XAUTHORITY=$HOME/.Xauthority CGUTLGUI_Qt
方案二:普通用户调用依赖库(更安全,适合长期使用)
核心逻辑是提前加载内核模块并开放设备访问权限,避免应用运行时触发需要root权限的modprobe操作:
- 第一步:配置系统开机自动加载
cgosdrv内核模块
新建配置文件/etc/modules-load.d/cgosdrv.conf,写入以下内容:cgosdrv - 第二步:配置udev规则开放模块对应设备的普通用户访问权限
新建规则文件/etc/udev/rules.d/99-cgosdrv.rules,写入以下内容:KERNEL=="cgosdrv*", MODE="0666" - 第三步:重载规则使配置生效
依次执行命令:sudo udevadm control --reload-rules sudo udevadm trigger sudo modprobe cgosdrv
配置完成后直接以普通用户身份启动CGUTLGUI_Qt即可正常运行。
额外说明:终端输出的
QObject::connect警告属于Qt版本兼容问题,不影响应用功能,无需处理。
内容的提问来源于stack exchange,提问作者A. Amori
相关产品推荐
相关产品推荐

