tmp 目录无权限运行失败分析

tmp 目录无权限运行失败分析

Q:SylixOS 下运行 QT 程序出现提示 tmp 下目录无权限导致运行失败。
设备在更换镜像及文件系统后,启动正常,但是调试串口提示QT程序启动运行错误,提示信息如下:

Qt for Embedded Linux data directory has incorrect permissions: /tmp/qtembedded-1

Qt for Embedded Linux data directory has incorrect permissions: /tmp/qtembedded-0

 尝试删除 /tmp 路径下的 qtembedded-0 和 qtembedded-1 的文件夹,但提示没有权限。

分析:

1、查看存储设备的分区格式情况:以 eMMC 为例


发现 eMMC 的第二个分区是FAT32的;

2、问题所在,FAT不支持符号链接,所以文件系统上某些文件会执行错误。

还有一种情况:
3、/tmp 目录公用的临时文件存储点,一部分文件在系统重启后会自动清除,某些情况下不能被自动清除的临时文件与系统更新镜像不匹配就会出现如上情况,需要清除 /tmp 目录使系统自动重新生成 /tmp 目录文件。

修改操作:

1. 重新给 eMMC 分区,第一个分区,容量为 5% ,格式为 FAT;

2. 第二个分区,容量为 eMMC 剩余容量,格式为 TpsFS ;

3. 格式化2个分区,重新部署内核和文件系统;

4. 第一次启动,还是QT程序会提示如下:

Qt for Embedded Linux data directory has incorrect permissions: /tmp/qtembedded-1

Qt for Embedded Linux data directory has incorrect permissions: /tmp/qtembedded-0

5. 手动删除 /tmp 路径下的 qtembedded-0 和 qtembedded-1 的文件夹,然后运行QT程序正常。

    • Related Articles

    • Qt for Embedded Linux data directory has incorrect permissions

      Q:SylixOS 下运行 QT 程序出现提示 tmp 下目录无权限导致运行失败。 设备在更换镜像及文件系统后,启动正常,调试串口提示 QT 程序启动运行错误,提示信息如下: Qt for Embedded Linux data directory has incorrect permissions: /tmp/qtembedded-1 Qt for Embedded Linux data directory has incorrect permissions: ...
    • Qt运行报错:could not bind to file /tmp/qtembedded-0/QtEmbedded-0

      Q:Qt 运行报错 :could not bind to file /tmp/qtembedded-0/QtEmbedded-0 该如何解决? 进程正在运行... QWSServerSocket::init: Address already in use OWSServerSocket::could not bind to file /tmp/qtembedded-0/QtEmbedded-0  QWSServerPrivate::initserver: server socket not ...
    • (Qt)多进程报错:could not bind to file /tmp/qtembedded-0/QtEmbedded-0

      Q:同时运行多个界面(Qt)进程报错:could not bind to file /tmp/qtembedded-0/QtEmbedded-0 第一个进程是可以运行的,继续运行第二个进程的时候报错,操作示例如下: [root@sylixos:/apps/test]# ./app1 -qws & [root@sylixos:/apps/tset]# ./app2 -qws QWSServerSocket::init: Address already in use ...
    • QT 异常:QNativeSocketEngine::initialize unable to inline out-of-band data

      Q:TCPClient 通信,普通 QT 正常,翼辉 QT 异常:QNativeSocketEngine::initialize unable to inline out-of-band data 翼辉系统的协议层暂不支持 OOB
    • Qt 桌面级应用进程通信

      1. 适用范围      本文档适用于对 Qt 中 DBus 使用有需求或者 Qt 间应用通信需求的开发工程师。 2. 问题描述       问:SylixOSQt 是否支持 DBus 桌面级应用进程通信?是否还有其他通信方式?       答:目前 SylixOS Qt 并不支持 DBus,因为 DBus 目前为 linux 独有通信方式。后续 SylixOSQt 可能会对 DBus 进行适配。       对于进程间通信,SylixOS 也有其支持的 IPC ...