TermuxArch / TermuxArch

Experience the pleasure of the Linux command prompt in Android, Chromebook, Fire OS and Windows on smartphone, smartTV, tablet and wearable https://termuxarch.github.io/TermuxArch/
https://termuxarch.github.io/TermuxArch/
Other
915 stars 49 forks source link

Gnome desktop environment does not run in ArchLinux and Termux #36

Closed JanuszChmiel closed 3 years ago

JanuszChmiel commented 3 years ago

GNome desktop environment is very popular among many Linux users. It is attractive, contain many special Gnome applications, it even contain development environments. Unfortunately, Gnome-session refuses to run on Termux, Proot and no matter which Linux distro you would use. My goal is to make Gnome-session to run. Somebody who is very advanced have incorporated special Opengl extension for TIgervnc. So may be, that it would help. Unfortunately, simply running gnome-session without 3D acceleration check do not help. Do you think, that GNome programmers would have A good will to recode GNome-session and dependent components of Gnome, so it would support VNC protocol? Since I AM getting some bug that this kind of session is not supported when running gnome-session in combination with tigervnc. I have also tested it with XVFB and X11-vnc. But with no results.

Any help would be very welcomed. Since Gnome is very popular desktop environment. And fortunately, experts who are concentrated around ArchLinux have precompiled many GNome packages for AARCH64 architecture. Gnome is official desktop environment for Orca screen reader. We allready have very professionally functioning shared memory support thanks to MR Rausty and others. /dev/shm emulation support many shared memory operations. Including The shared memory operations, which is being used by Xvnc Tigervnc app.

JanuszChmiel commented 3 years ago

I have found out, that gnome-session need to directly communicate with Bus and systemd. So I Am afraid, that gnome-session will never run.

ZHere are error messages. [janusz@localhost /]$ gnome-session gnome-session-binary[3161]: WARNING: Failed to reset failed state of units: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.freedesktop.systemd1" does not exist gnome-session-binary[3161]: WARNING: Falling back to non-systemd startup procedure due to error: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.freedesktop.systemd1" does not exist gnome-session-binary[3161]: ERROR: Failed to connect to system bus: Nelze se připojit: Adresář nebo soubor neexistuje aborting... Trasovací/ladící past (SIGTRAP) [janusz@localhost /]$ ^C gnome-shell refuses to run, since special window manager for GNome refuses to run. But many GNome apps are working including. Nautilus, evince and others. I have allready debated on Gnome chat room. So may be, that somebody will try to answer Me.

JanuszChmiel commented 3 years ago

Unfortunately, mutter window manager for GNome refuses to run when running it standalone or in conjunction with gnome-shell. Very sad reality. Because many window managers support VNC protocol.

SDRausty commented 3 years ago

Somebody who is very advanced have incorporated special Opengl extension for TIgervnc.

Thank you for sharing. Let's see what should be done to make this work. Do you know any of the steps (code) that was used for TigerVNC?

JanuszChmiel commented 3 years ago

When I have executed yours orcaconf script it have miracly installed special opengl support for Tigervnc. And here is my code which reliably open VNC connection by using Tigervnc. Please really try to use it instead of official Archlinux script vncserver, which have caused some issues. Xvnc -localhost -geometry 1024x768 -depth 24 -SecurityTypes=None & Sure, every one have its full freedom to start Tigervnc by his own way. Really, shared memory routines, which are being used by Tigervnc are fully compatible by using /dev/shm supported incorporated routines. So there is no need to disable shared memory extension support.

Unfortunately I have opened very complex programmers issue. Gnome-session and gnome-shell will be very complex to make them usable in our userspace environment. And I Am afraid, that we do not have The chance to achieve in this informatic way without help of GNome developers or without recoding GNome source code.

But it would be miracle, if we could achieve this goal. But this issue will be very probably need to be opened for many weeks. I have really tried to debated on Gnome chat. But may be, that Gnome core programmers will simply tell. Do not bother. We will not waste our expensive time by supporting strictly userspace based variant of Linux. But I love complex goal to achieve. Sure. i will not only write I will do my best to make this goal possible. I have tried to bypass gnome-shell problem by removing /usr/bin/mutter binary code of mutter window manager. But unfortunately, it did not help. I have got error unsupported session type. I So I will search for mutter if this binary do not reside on several places. Sure, I have tried to run Marco & firstly. In The worst cases, I will have to study complex gnome-shell source code but I would had to grab it directly from ArchLinux aur source repository. gnome-session love bus and system bus and I Am afraid, that this can not be emulated virtually only by using /dev/ some folder. And creating special software protocol which would allow us to mix Proot execution with real Linux kernel which would be executed by qemu is very probably out of our scope.

JanuszChmiel commented 3 years ago

The important question is if gnome-shell can run independently on gnome-session process. And if there is A way how to force gnome-shell to run without mutter gnome special window manager.

SDRausty commented 3 years ago

When I have executed yours orcaconf script it have miracly installed special opengl support for Tigervnc. And here is my code which reliably open VNC connection by using Tigervnc. Please really try to use it instead of official Archlinux script vncserver, which have caused some issues. Xvnc -localhost -geometry 1024x768 -depth 24 -SecurityTypes=None & Sure, every one have its full freedom to start Tigervnc by his own way. Really, shared memory routines, which are being used by Tigervnc are fully compatible by using /dev/shm supported incorporated routines. So there is no need to disable shared memory extension support.

Is this the code for orcarun: Xvnc -localhost -geometry 1024x768 -depth 24 -SecurityTypes=None

Is the program name orcarun ok for what we are trying to achieve?

JanuszChmiel commented 3 years ago

Yes. It can be this name. Sure. it is even possible to add && to avoid Tigervnc to display some messages on Terminal console. But personally, I do not have problem, when Tigervnc inform Me that connection was established and which TCP port it uses.

JanuszChmiel commented 3 years ago

Thanks to one kind man who is engaged on GNome chat channel, I have got important answer.

https://gitlab.gnome.org/GNOME/mutter/-/blob/master/src/core/main.c#L426 Perhaps there is some environment variable called XDG_SESSION_TYPE But I do not know which value should I set to this variable. I have also got important information. Gnome uses Wayland session by default. Not X11 session as Mate or LXDE. So may be, that I could simply try to run export XDG_SESSION_TYPE=X11 But I do not think that it will be so simple. And that Gnome-shell will run. Sure, I will have to reinstall mutter window manager. Because I have removed its binary file from/usr/bin. I will test. Next issue is, if gnome-shell can run without gnome-session module in memory. If no, problem will persists.

JanuszChmiel commented 3 years ago

Unfortunately, simply specify export XDG_SESSION_TYPE=x11 is not The solution. Because gnome-shell and gnome-session apps want to access The System Bus. So. If there is no some compilation options, which would allow those apps to run even if this kind of errorwill occur, similarly like mate-session can, somebody very advanced would had to remove all code references related to Systemd and system Bus connections. Some code even exist inside .js modules of source code of Gnome. Interesting fact is, that mate-session allow users to execute Mate desktop even if app will generate error related to The system bus connection.

I will look inside The source to get AN imagination, how many parts contain references to System bus and how complex would be to remove those references and recompile Gnome. Sure. Ideal solution would be to have fast Qemu and full ArchLinux with real Linux kernel, but it is not so easy to achieve on non rooted devices.

SDRausty commented 3 years ago

A fairly easy way to install gnome in a TermuxArch Arch Linux installation is pc gnome: Total Download Size: 261.23 MiB Total Installed Size: 1197.85 MiB: Screenshot_20201110-132443

Let us see whether we can get similar results in this issue as we are getting in issue, "Expanding setupTermuxArch so visually impaired users can install Orca screen reader (assistive technology) and have VNC support added easily #34".

I am very impressed with the work we have done on command orcarun in #34. Thank you @JanuszChmiel for helping to develop it 🎵 🎶

SDRausty commented 3 years ago

@JanuszChmiel please see https://serviceanimals.github.io/Harper/

I just lost (bullets) mine; Do you have a guidedog? If not, why?

ItsKruistz commented 2 years ago

just a suggestion: use some scripts from WSL (Windows Subsystem for Linux), may it can help you guys

SDRausty commented 2 years ago

just a suggestion: use some scripts from WSL (Windows Subsystem for Linux), may it can help you guys

How have scripts from WSL (Windows Subsystem for Linux) helped you?