-
Notifications
You must be signed in to change notification settings - Fork 82
关于对termux:x11的支持 #113
Comments
去年8月份有一条与本话题相关的 issue: #61 How to use wayland |
现阶段,先自己手动配置吧! # 经测试发现 XDG_RUNTIME_DIR 的值为 /tmp 时会出错
unset XDG_RUNTIME_DIR
# 指定 显示端口
export DISPLAY=:2
# 启动 dbus-daemon
service dbus start
# 可以用其它 Xsession, 例如 xfce4-session, startplasma-x11
mate-session 我考虑把它加到 edition2022 里去(可能得要等很久很久)。 |
chroot好像没有MOUNT_TMP这个参数,我自己加上也没用...需要自己ln吗,具体是什么目录 |
@Xunflash 补充说明: 我并没有在 chroot/unshare 中测试过 termux-x11。
|
其实我应该开放 unshare/chroot 的 自定义挂载源与挂载点的功能。 这个其实很简单的,就是 mount /dev/xx /mnt/yy mount -o bind /xx /yy 只不过有些目录可能要加特定参数, 会比较麻烦。 |
@Xunflash 我想起了之前的一件事。 |
大佬tql每次都很耐心! |
我好像弄懂一部分了,wayland-0就是socket,只需要与系统共享wayland-0就行了,但是我现在权限给了还是依然报错 |
@Xunflash 我帮你试了一下。 这里以 debian buster 为例。
3.进入容器 sudo apt install xwayland dbus-x11 xfce4-session fonts-wqy-microhei
_UID=$(id -u)
XDG_RUNTIME_DIR="/var/run/user/$_UID"
if [[ ${_UID} = 0 ]];then
mkdir -pv ${XDG_RUNTIME_DIR}
else
sudo mkdir -pv ${XDG_RUNTIME_DIR}
sudo chmod -Rv 1777 ${XDG_RUNTIME_DIR}
fi
DISPLAY=:3
export XDG_RUNTIME_DIR DISPLAY
sudo chmod -Rv 1777 /tmp 注:其实不应该直接挂载整个 /tmp,因为会引入权限问题。
ln -svf /tmp/wayland-0 ${XDG_RUNTIME_DIR}
Xwayland -noreset ${DISPLAY} &
sudo service dbus start xfce4-session |
@Xunflash 抱歉,上面有一条命令打错了,现在已经改过来了。 |
回复的话,其实不用引用整段。 |
emmm , 其实那个功能是之前就有的,不是昨晚连夜赶出来的。 说到这,我又想起了一件事。
然后我就想起了之前连夜赶工修复每周构建容器的 bug,想想当初还蛮辛苦的。 不管怎么说,都要感谢你的支持。(●>ω<●) |
不清楚是什么情况,我貌似不能链接上,但是/var/run/user/$_UID是有wayland-0这个文件的,太怪了 |
@Xunflash 是哪个发行版?可以发一下截图吗? |
就是先选chroot,再选debian,再选stable那个喔 |
启动 Xwayland 的时候出现了什么报错? |
missing XDG-WM-Base protocol? |
|
你用 debian-10(buster) 试试? |
你是我见过最耐心最好的开发者:D |
一会儿再试试,到饭点了,先干饭吧(•́⌄•́๑)૭✧ |
我试了一下,debian 11-bullseye ( 当前的stable) 也可以。 |
上完课划了下水!刚刚试了下能开启了!我再举一反三试试之前的archlinux能不能用 |
咦,你之前能开启的是哪个系统? 说到 wayland, 其实我上次去查了一下相关的书。 我能找到这本 The wayland book 也算是意外之喜了。 |
喜:Termux-x11主要靠X11传输,但还是要有wayland-0套接字,然后没有了(Termux-x11是究极残血版Wayland) |
一样的debian 除了DISPLAY=:0.0 其它都是copy的 仍然不行... 就一直卡在xfce4-session了...
|
七个月了,看来这个问题还是没有彻底解决啊(我的issue里面,这是没有reopen的issue中open时间最长的一个:-),等edition2022 |
目前看来对termux:x11的支持最好还是暂缓吧。实际体验上同一个脚本有时候能正常工作,有时候就不行,问了另一个人对方也是同样的体验。termux:x11还需要很多完善。 |
好难 `➜ TzuHsing _UID=$(id -u) if [[ ${_UID} = 0 ]];then libEGL warning: MESA-LOADER: failed to open msm_drm: /usr/lib/dri/msm_drm_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/aarch64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) ➜ TzuHsing sudo service dbus start |
`➜ /tmp rm /tmp/.X3-lock libEGL warning: MESA-LOADER: failed to open msm_drm: /usr/lib/dri/msm_drm_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/aarch64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) missing XDG-WM-Base protocol 啊啊啊啊啊啊,好难,我只是想在chroot容器去让termux-x11运作起来 |
是的,按照您的流程,我现在遇到这个错了。请教大佬如何解决 |
我之前对termux:x11进行了尝试(在终于成功编译了一个有zerotermux签名的新版本后),姑且是成功运行了,但是之后会经常闪退,似乎是termux官方没有完全适配所有wayland api的原因导致(主要是在移动窗口时经常崩溃,似乎是termux:x11没办法解析某些x行为)(吐槽一个点,termux:x11依赖的许多项目都已经是5年前的版本了(xkbcommon,2015,准确来说是7年),连它的构建系统都变了,导致根本没办法直接替换更新。。。)我的建议是再等待一段时间,现今termux:x11还不太成熟,并且我有点怀疑官方是否真的知道自己想实现什么(名字是x11却使用wayland)所以现在还是先拿vnc做替代吧。。。(现在虽然vnc的帧率是没办法的说,不过如果在外接键鼠的情况下想还原pc端的体验我推荐avnc呢,不管是鼠标大小还是全屏都做得相当好的说:-) |
termux:x11还是相当不完善的,Wayland也是。不过在chroot(tmoe+termux)方案下好歹也是可以运行的(相当不稳定)。就算运行起来了大抵也会令人感到失望。 我在运行时参考了这个脚本: |
我搞定了。先从安卓系统直接打开termux-x11 app,然后Xwayland -noreset ${DISPLAY} & 成功! |
摸不着头脑,什么玄学;不过瞥了一眼b站这个方案用的egl surfaceless应该是不支持窗口管理器的(或者bug一堆),用不了就用不了吧 |
是的。就用llvm好了。以前用termux中的proot-distro + termux-x11+ zink,图形性能还不错。但是cpu性能不行,那个单核跑分只有chroot的80%,多核multiprocessing模块直接报错,跑不起来。 从这个程序来看,高通870性能相当于AMD R5 3400G。联想小新pad pro 平板,去淘宝扩容个16G内存美滋滋。 |
Related problem
termux:x11是原生X,仅支持xwayland
Describe the solution you'd like
在安装了termux:x11 apk并启动了服务的情况下,在容器内提供对其的支持,允许桌面通过termux:x11显示
Describe alternatives you've considered
No response
Additional context and details
No response
The text was updated successfully, but these errors were encountered: