-
-
Notifications
You must be signed in to change notification settings - Fork 159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lets discuss which shared memory .so library would be downloaded and stored in to resulting ArchlLinux container #228
Comments
Thank you for contributing to make this project better😎 Keep up and follow to solve this issue. |
Stale issue message |
This commit a2e8c54 @JanuszChmiel and upstream may have resolved your issue. You are welcome to comment here. |
This commit TermuxArch/TermuxArch@19d112e rewrote memory integration. File knownconfigurations.bash has information regarding proot binds/mounts. @JanuszChmiel could you try testing with |
Dear Mr Rausty,
Sure, i will be very glad to test and reinstall Arch Linux by using
latest setup script. Thank you very very much that you have invested The
time and that you have implemented new approach to shared memory.
Did you used android shared memory from Pelia on Github? Or did you find
other complex C native library? Or did you even have written new code from
scratch?
I know that I could observe it according to The script, but yours
professional answer will explain it to me.
Thank you again very very much. I will remove my archLinux installation and
I will begin from scratch.
I only do not know how to completely clean Arch data from Termux, because I
Am getting error when using
rm -rf arch
command. SO I willd o not have to pull Termux data or reinstall Termux.
Thank you very much for yours answer.
|
I Am installing Termux and whole ArchLinux from scratch, it will be The best
ssolution. I will not be lazy, since you had to spend many hours to recode
The script. I will test if I will have to use android-shmem.so still, or if
you have made some magic that responsible .so library which is allready The
part of installed ArchLinux will try to do its best to implement shared
memory support.
I have compared Qemu with Proot. And unfortunately, really, Proot is much
more closer to be usable Linux executor on A top of Android kernel. I Am
helpless to root my phone, install Kqemu kernel module and then use Qemu
with accelerated virtualisation setting. And Termux provides robust sound
support thanks to its Pulseaudio implementation.
Advanced ArchLinux packagers have even stared to build Seamonkey more often.
I think, that my posts are bringing sweets fruids to many ArchLinux for
ANdroid users.
|
I will test shared memory by The most difficult task available. Running
tigervnc without -extension MIT-SHM
command line option. X11vnc is also very intensive process which uses shared
memory very often.
But I know that it is too fast shared memory exchanges at a little time.
Yours script modiffication have no bad affect on installation process of
ArchLinux. I Am installing mate mate-extra tigervnc orca espeak-ng
speech-dispatcher pulseaudio-alsa
|
There is no need to reinstall. Refresh is sufficient;
You can use |
Dear professional MR Rausty. I can confirm, that you have professionally
solved shared memory support on Arch Linux. And I Am sure that yours
revolutionar approach will be signed to various professional books for The
students of informatic sciences. Because with yours approach The stability
and speed of all Linux distros which are being executed by Proot from Termux
on A top of Android kernel will dramatically increase its quality.
I can even use tigervnc with no need to disable shared memory. Very well
done.
I AM only sad that I had a wrong assumption, that build in flash chips will
be too slow to replace RAM shared memory. But important is, that yours work
have brought next sweets fruids for many Arch Linux users.
Is it possible to extend Ubuntu Debian and other distros by using yours
approach? Or advanced user would had to install those distros and copy files
from /dev/shm when those distros have been installed by using normal
standalone AArch64 compatible device?
Really, excellent job and thank you for yours time, which you have invested
to this new feature.
|
New shared memory feature work outstandingly. Tigervnc really work and I do
not have to disable build in shared memory support.
But why pcmanfm display The following error.
(pcmanfm:10165): Gdk-WARNING **: 14:04:19.915: shmget failed: error 38
(function not implemented)
It is only a little sosmetic think. But I would like to know, why GTK
library can not call shmget but other apps including xvnc process can
perfectly manipulate with shared memory.
I Am only curious, please do not think that I want to overload and bother
you too much. But I want to learn new thinks thanks to you.
|
Thank you; I am flattered. It would be nice to see https://en.wikipedia.org/wiki/Special:Search?search=termux published too. This page termux/termux-packages#1930 is the deleted wikipedia Termux page. Does this commit TermuxArch/TermuxArch@93f2793 resolve the Gdk-WARNING? It adds |
A thank you can also go to @sudomain who helped catalyze this change with pull requests that have also let Termux:API function. |
You are welcome; And I enjoy your assistance very much @JanuszChmiel too. Thank you. |
Oh you are elite. Thank you very very much. If also this shared memory
function will work it will dramatically speed up Linux.
I can even rerun seamonkey when I terminate it at evening in The morning
without severe crash. When I have been forced to use android-shmem.so it
have caused Termucx processes crash when Seamonkey have been terminated ate
The evening and When I terminated Orca too. In the morning, when I have re
run orca and seamonkey, Before WSeamonkey have been activated, processes
crashed.
Very probably whole AArchLinux process tree or may be even all Termux sub
processes.
Thank you agin for yours help and for yours time.
|
I AM very sorry, but even when I have executed yours setup script by typing
refresh
option, /dev/shmget
really exist inside /dev folders tree. But pcmanfm still report error shmget
function not implemented. I have exited arch Linux and restarted it twice,
but still The same. its look that it will be something very complex to
solve.
|
There can be also other problem. May be, thatz Proot C code do not have The
chance to use so many file operations at The same time, so SHMget is
ignored, but I do not believe that, since Proot display debug run time
warnings in such cases.
Phone is also not very hod thanks to flash chips usage, Kernel of Android is
not becoming unstable so I think, that you are very near to The 100 % shared
memory solution. I will be patiently waiting for An future Scripts update.
|
This commit TermuxArch/TermuxArch@d12e974 drops shmget support from the PRoot init statement. @JanuszChmiel file knownconfigurations.bash has instructions how to construct the PRoot init statement. Refresh the installation with |
Very strange, still do not work. Still The same error.
I have refreshed and I have run
startarch c mkdir /dev/shm/shmget
I have evidence, that shared memory work also because /dev/shm contain more
than one files. But sub folder /dev/shm//shmget is still empty.
May be, that you had right firstly and that data must really reside in
/dev/shmget.
I AM very sorry if I have given you A wrong advice previously.
|
/dev/shm have The following files available.
pulse-PKdhtXMmr18n shmget time-admin.pid
|
Dear Mr Rausty and others.
Shared memory have dramatically changed The life of Orca screen readers
users like I Am. Flat review mode gets much more faster to be initialized.
System stability have been increased. No hangs, no processes crashes.
Even Tigervnc shared memory is working and it is very fast data exchange at
A time.
because mate-session and Xvnc exchange data between each others really very
fast.
RReally. Very well done. It is A real revolution in using non only X11 apps
in Termux.
I even think that postgresql and other Mysql database tools will work
perfectly thanks to this shared memory implementation.
GTK3 warning is not fatal. Since Pcmanfm C code has two codes for shared
memory and also for non shared.
To solve this, sombody would had to debate with GTK3 developers, because
they knows their complex and long C code very best.
The issue in such cases is, if .so library can detect if chroots from Termux
and Android are being executed so their new approach inside their complex C
code would work with this shared memory implementation.
Fact is, that shmget must work reliably because mate-session and tigervnc
must use this function very intensively and if shmget would not work, I do
not believe, that shared memory would work in such case.
So I Am very very happy.
I can write E-mail by using Seamonkey with Orca and Gradio is playing my
favourite 80S song in The background. My phone board is not getting hot even
if shared memory works.
|
@JanuszChmiel
EDIT: Disable CheckSpace in pacman.conf. It does not work in chroots. |
This commit TermuxArch/TermuxArch@9cd376d resolves the pacman |
I will refresh ArchLinux install. Unfortunately I have only devices with
Android 9.1.
No greaterversion.
|
When shadow package is being upgraded I Am getting The following message:
Could not set capabilities on /usr/bin/newuidmap: Permission denied
|
Shmget is really The severe problem.
Since also X11vnc can not communicate with Xorg which have been executed by
using xinit.
So other Shared memory functions are working except shmget.
shmget(scanline) failed.
16/07/2020 19:23:49 shmget: Function not implemented
|
But X11vnc do not crash. And its VNC protocol work. So it is interesting
informatic phenomena.
Maz be, that in fact, shmget normallz work, but because Libc do not know
zours profi work around it states some error but data transfer in RAm work.
I think, that if shared memorz would not work at all, X11vnc would dsplaz
more crztical erro. I have tried it before zours patch and before I have
known libandroid/shmem.so
And if shared memorz have not been implemented at all, it have even stopped.
So thank zou again and manz users can be happz.
|
aOh no. x11vnc process really terminate. I have read terminal bad.
So now, Tigervnc work really without disabling shared memory support with
The option.
-extension MIT-SHM
I will try to read some articles about shared memory in Linux, because The
situation is very strange.
|
@JanuszChmiel an important issue is semaphore support
|
OK. Thank you for yours professional explanation. So now our attempt to
implement shared memory by using /dev/shm do not hurt anythink but do not
work if I have understood it correctly.
|
@JanuszChmiel this probably will not improve the error, but it might. Can you run |
@JanuszChmiel also can you share results from |
Sure I will be glad to test yours newest ArchLinux setup scripts. I have
also found out, that when running Debian on 2,2 2 core CPU with 1 TB
harddisk with 900 GB partition or a little more, that loading whole Debian
Buster takes much time and that even Huavei contain strange kernel, which do
not like Proot very much, that even in those cyrcumstances it is possible to
load Mate and ArchLinux much more faster from chips.
I only know, that I will have to invest some money on future to buy other
phone moel, but it can not containbuild in encrypion, since also encryption
kernel driver slowdowns Proot operations.
I will debate with manufacturers such as Doogee about kernel and about its
Pokedata and partial file case insensitive file system.
Samsung contain too secure Android kernel and I Am afraid, that their kernel
will contain some block of Proot functions. May be, that I Am wrong, but I
do not know.
|
This may be relevant here. I installed a fresh copy from the TermuxArch/TermuxArch repo a while ago, set up xfce and Firefox doesn't work anymore. I get this error :
It used to work earlier. Any idea how I can fix this? |
It should be fixed now. I was awaiting a reply. Thank you for sharing @petkar. Run |
Mr Bednarski have Made A C library patch for special Android shared memory
library. It have been possible to run Postgresssql reliably thanks to it. I
have been even able to generate MySQL database for more than 5 hours and
database has more than 28 GB of data. No crash, no instability.
His patch is The part of The special script which generate The environment
to prepare MYSQL database with Openstreets maps data for specific country.
Patch is here.
https://gist.github.com/michalbednarski/6b0213e691f512573519cbd2b901a759?fbc
lid=IwAR0JixQsg4032jkRhk4d9s0Kh6AFTGnRkSRwFkBqICvj2O4w_p8MxifovjA
The change to C code of .so library is contained inside Bash script.
|
Amazing! It got resolved! Appreciate your work mate!
I'm aware of this. My previous installation had an error with xauth (not starting up at all).
I installed many packages, was messing with makepkg, fakeroot-tcp and aur, and refreshed my install to keep up with the updates(on the previous installation). After many hours of looking up and checking conflicting packages/configs, I wasn't able to resolve it so I decided to go for the reinstallation.
Assuming that it might be a problem with copying configs and desperate to keep the installation, I proceeded to create a user with the useradd command. |
I Am just installing everyting from scratch, I will check two server
initialisations. Running Xorg by using xinit or running Tigervnc XVNC server
by running vncserver command.
I will also experiment with asgmem.so patch from MR Bednarski, but I will
run it by using " and special command to test, if it support all shared
memory functions or if it have been pecifically patched for Debian and
Postgressql.
Now everything work fines, including ArchLinux upgrading process, I Am now
installing
pacman -S mate mate-extra orca tigervnc espeak
I think, that shared memory will aprtially work thanks o C++ experts, who
will upgrade some .so libraryes. And Semaphores will allow to do that on
future. But it will not be easy debugging and development task.
|
Tigervnc work ammazingly even after ArchLinux installation scripts upgrade.
If somebody want to run Xorg from non console session, it is necessary to
edit or create /etc/X11/Xorg.wrap
file. And add The following words finished by pressing Enter key.
allowed_users = anybody
In this case, you can run Xorg by using startx or by using Xinit.
If you want to use xinit you mast install xorg-xinit xorg xterm
Now it is possible to use Tigervnc or A combination with XVFB and x11vnc. Or
you can use Xinit and Xorg in combination with x11vnc.
|
Dear MR Rausty,
Thank you for yours countinous programmers work Yours script really provides
The best possibility to run Linux distribution on Android devices thanks to
Termux and Proot. It is possible to run many many apps. And you are always
incorporating The most modern programmers trends so also modern Android
devices are supported.
You and yours cooperators have introduced /proc folder emulation, which is
very important. Because I can use Marco window manager. Openbox do not allow
Me to run Orca automatically at mate-session start, some focus freezes are
presented when user uses Openbox with some Mate apps.
So Marco window manager have its importance to be used with Mate. Thanks to
TCP stack I can even use special tool to build pkg packages on A isolated
environment.
When I Am sad I Am listening Gradio which is very accessible. I can even use
VLC and various GTK compatible file managers.
Thanks to Tigervnc I can use TAB and SHIFT+TAB appropriately without
confusements. Tigervnc is even very fast and do not produces memory leaks.
Seamonkey work excepts Czech dictionary, because even Pluma can not load
important .so libraryes. And I do not know why? If those .so libraryes are
using incompatible calls with Proot, I do not know.
|
You are welcome @JanuszChmiel and thank for sharing! Please consider submitting a pull request to this You might find this information about pulse-audio that @petkar just shared interesting too. |
Thanks to one very advanced C developer, Proot support some shared memory functions. May be that all of functions, which exist on special android-shmem.so library or may be even more. Here is The link about This important new Proot feature. It is necessary to specifi |
Thank you for sharing @JanuszChmiel; This is a really nice surprise! This 6e29c71 commit adds the |
Yes, It is here. I have spent many many hours while working with ArchLinux. It is really Linux distribution for vide range of users, advanced users, server admins and programmers. BUt There are many applications, which require shared memory. And even their developers have prepared its source code so it contain also alternative development techniques, which do not stricly depend on shared memory, if shared memory will not be available, apps will run slowly. SOme apps even refuse to run if shared memory is not supported.
We do not have to forget, that we must find universal shared memory library. Termux contain one. But it is not for Libc on regulalLinux distros. So there are two shared memory concepts, I do not know about others.
The most reliable and stable is Thepart of Debian no root source code.
It is little compiled .so library. I have intensively tested it with mate and many apps including PCManfm file manager and with Orca.
Sure. Very complex shared memory routines, when app allocate and free too much memory regions are not supported by this .so library. The good example of such app is x11vnc if somebody would try to run it without -noshm option.
Debian no root source is here and excellent .so libraryesto add shared memory support are The part of The source code.
Next shared memory technique is The part of Userland source code.
I do not know its extact name. When I have ttried shared memory library from Pelia it really do its best to support shared memory operations as possible.
You can load this library in The case when some app will call it by adding The following line to /etc/profile or inside other Bash script.
If you want SHM extension to work in Linux chroot - download file libandroid-shmem.so from here:
https://github.com/pelya/cuntubuntu/tree/master/dist
copy it to chroot, set executable flag, and execute this in chroot before other commands:
export LD_PRELOAD=/path/to/libandroid-shmem.so
Hapy working with apps which need shared memory.
The text was updated successfully, but these errors were encountered: