- 主题:qt 可以在 framebuffer 跑起来
我试过 qt 程序一般在命令行里面加 -platform linuxfb 就可以在终端里面跑起来。稍微修改一下 alphine linux 就能让 linux 直接启动到一个 qt app 里面来。但是我发现有几个不足之处:
1. 启动后的 qt 程序没有 window manager,所以打开了对话框就不好关闭。
2. 没有自动适配鼠标。所以虽然有光标,但是动不了。
有没有什么好的方案解决这两个问题呢?
qt 运行在 vnc 里面也很有意思。
--
FROM 59.60.25.*
拿来做超精简的 linux 很爽啊。一个 linux 内核加上一个 qt 程序,链接到 ulibc, 再加个 busybox-static!
另外再考虑一种场景,我是不是可以用这个东东来实现一个 xwindow,给其它应用跑,哈哈。
【 在 dareta 的大作中提到: 】
: -platform xcb或Wayland不香吗?
: 发自「今日水木 on iPhoneProPlusMax」
--
FROM 59.60.25.*
不应该这么慢啊。你们的存储 IO 速度很慢吗?
或者你们把太多的东西放到 Qt 的主线程里面加载了?
【 在 jesce 的大作中提到: 】
: 我一直在arm9上跑framebuffer上的Qt. 不过Qt启动实在是太慢了, linux启动可以控制
: 在1~2秒, Qt大概要10来秒, 因为这个问题, 搞得产品要加个电池做休眠用.
--
FROM 117.28.155.*
你先写个 hello world 看看是不是也慢。
【 在 jesce 的大作中提到: 】
: IO虽然是慢了点(随机读25us的SLC), 但是程序才1MB多, 主任务有做延时启动, 主要还
: 是Qt的动态链接库都挺大的, serialport, serialbus, bluetooth, network一大堆都用
: 到了.
: ...................
--
FROM 117.28.155.*
我也用 qtcore 写 arm 程序,之前是跑在一台很古老的三星手机上面。性能只有普通台式机的 5% 非常烂。但也不至于启动十几秒啊。你删掉几个 qt 模块看看?是哪个模块加载慢呢?
【 在 jesce 的大作中提到: 】
: 有点差别但不明显, 也慢. 不过ctrl+c关闭后再次启动会快不少
--
FROM 117.28.155.*
linuxfb 只依赖于内核对显卡的简单抽象,没有加速。所以资源需求是最低的。但效率也是最差的。
xcb 或者说 xwindow,和 wayland 拥有一样的功能。但是消耗的资源更高。所以现在正在被 wayland 给代替掉。
后两个都是可以正常使用的。linuxfb 主要用于特别的需求。
【 在 zhaoxx 的大作中提到: 】
: 请教下 linuxfb /xcb/ wayland 对资源的需求差异有多大呢?
: #发自zSMTH@jet-shot
--
FROM 117.28.152.*
此时你可以写个 hello world 用 dlopen() 加载 Qt dll 作为启动过程的一部分。用 systemd service 启动常驻内存。后续加载 Qt 的 dll 应该就快多了。
我估计都不需要用 dlopen() 用 open() 加上 read() 事先把 Qt 的 dll 加载到文件系统缓存都会更快。因为你这个问题看起来是系统的 IO 问题,不是 Qt 的初始化问题。
【 在 jesce 的大作中提到: 】
: 主要是RAM是片上集成的, 容量问题, preload没法用. 静态编译不能走LGPL. prelink其
: 实可以, 但是一开始测了下没搞通, 然后应用程序会OTA更新, 估计会行不通.
: 想问一下, 如果一个Qt程序首次启动很慢, 关闭后第二次启动就快多了, 这是生成什么
: ...................
--
FROM 117.28.155.*