## The Sort Of Software that will Not Run, on my Linux Tablet

In this posting I wrote, that I had installed Linux in a chroot-environment, on my old Samsung Galaxy Tab S, First Generation tablet, which remains an Android-based tablet. I did this specifically using the apps from the Google play store, named ‘GNURoot’ and ‘XSDL’, which do not require root.

Here, I gave a compendium of Linux-applications which do run in the resulting Linux guest-system.

I think that I need to point out a broad category of Linux applications that will always remain poor choices:

• Audio Editors,
• Video Editors.

The problem with any Audio Editor, is that it will eventually need to input and output Audio – not just edit sound files – and any Video Editor, needs to give a preview of all its video-clips – not just edit video files. This seems like a silly thing to write, but is non-trivial in my present context.

I have taken a Linux engine – GNURoot – and connected it to an externally-supplied X-server emulation – XSDL. The pipeline between these two Android apps is very narrow. It consists of X-server protocol – which is excellent and rendering text and GUIs, of shared memory at its maximum, and of a PulseAudio server, visible on the Linux side as such, but collectively running on the Android side as an SDL client.

I have no way to provide OpenGL or SDL on the Linux-side. What this means, is that virtually any non-linear video editor will want to see both installed on the Linux side, while neither is provided.

## I have now installed ‘xine’ on my Linux tablet.

In this earlier posting, I had written that I’ve installed Linux on an older tablet of mine, that being my Samsung Galaxy Tab S, First Generation, with only 16GB of storage.

In order to do so, I used the (non-rooted) applications from Google Play, ‘GNURoot’ and ‘XSDL’.

One feature which the author of ‘XSDL’ pointed out, is the fact that we may download a shared library to run under Linux, which when preloaded, makes the shared-memory extension available, for the purpose of running one application. By default pure X-server protocol does not have this, even though any half-decent Linux system has shared memory extension, X-Video extension, and beyond that, ‘vdpau‘, to allow fast video playback.

One Linux application which I had been using this way, was ‘gnome-mplayer’ , for which I had also written a shell-script, that preloads the shared-memory library. The video-player application was launching and running fine, but I’m no longer convinced that it was ever benefiting from shared memory. More specifically, we can set in the preferences of the player application, to use ‘X11′ as its video output-mode, and ‘pulseaudio’ as its audio output-mode.

Literally, selecting X11 in this way, does not mean shared memory as the output-mode, although the player could have bee negotiating with the (fake) X-server over this parameter…

So. To make sure I’d be obtaining the full benefit of shared memory, when playing back video-streams more seriously, I next proceeded to install ‘xine-ui’. It is highly-configurable, in that we can choose shared memory video-output explicitly.

## An observation about UIDs under Android, and what that means for running Linux under Android.

In this earlier posting I had written, that I had installed Linux on my Android tablet, that being the Samsung Galaxy Tab S, First Generation, and that I had done so without rooting the tablet, and without using any kind of image-file that can act as a virtual drive, via a kernel loop-mount.

Simply using this arrangement makes something obvious to me, which I have already known.

Under Android, the userids which the kernel keeps for file-ownership are one userid per app. Hence, when we run Linux on it, all the processes really have the same userid, that being the userid of the app ‘GNURoot’ in my case. The ‘chown’ and ‘chmod’ commands have no effect. This is what a regular ‘ls -al’ command reveals:


total 100
drwxrwx---.  2 root 9997  4096 Sep 27 17:03 .
drwxrwx---. 25 root 9997  4096 Sep 26 15:27 ..
-rw-rw----.  1 root 9997     0 Sep 27 17:03 dir_listing.txt
-rw-rw----.  1 root 9997     8 Sep 26 03:07 test_1.aux
-rw-rw----.  1 root 9997  5625 Sep 26 08:28 test_1.fdb_latexmk
-rw-rw----.  1 root 9997  5473 Sep 26 03:07 test_1.fls
-rw-rw----.  1 root 9997 18213 Sep 26 03:07 test_1.log
-rw-rw----.  1 root 9997 38253 Sep 26 03:07 test_1.pdf
-rw-rw----.  1 root 9997  1467 Sep 26 03:07 test_1.synctex.gz
-rw-rw----.  1 root 9997   734 Sep 26 08:28 test_1.tex
-rw-rw----.  1 root 9997   734 Sep 26 03:07 test_1.tex~




(Edit 10/08/2017 :

Here, the Android O/S itself and its (Dalvik) bytecode interpreter / flash-compiler, run as root. )

I can use the ‘adduser’ command to create a userid, which only my fake-rooted Linux system sees, and doing so assigns a useless password, but aside from that, only helps Linux organize personal data into a defined home-folder. Even if I was to proceed to launch my desktop manager as (fake) user ‘root’, as the Android kernel sees things, all the resulting processes would run as belonging to the same userid, as when I run the desktop manager as my created userid, that real userid still belonging to the one app ‘GNURoot’.

One effect this does have, is that if I use ‘GVim’ to edit a file and save the changes, I get a warning, that my userid does not have write-permissions for that file. Yet afterward, the new version of the file has been saved. Also, data which that Linux system’s applications store, does get stored. This appears to result, because GVim only looks at the UID before displaying that message, while the GID would suggest I have write-permission.

But it can become a little bit more interesting, if I use some other, non-Linux app, to store a file in one of my Linux-subfolders, and then want to alter those files from within Linux. That other, Android, file-management app has its own userid. And then there is one reason why each Android app can read the data of the other:

Each userid belongs to one group-id as well as numerous others, determined by the Android host system, that was granted because we gave both apps the permission to read and write files personally belonging to the Android user.

But, we cannot change the permission bits ourselves, nor the ownership, because we don’t really have root.

(Updated 09/29/2017 : )

## I’ve just installed LaTeX on my Android / Linux tablet.

In This Posting, I roughly explained how I was able to install Linux on my Samsung Galaxy Tab S.

Since then, the Linux software that I was able to install, and which works, include, among other applications,

• GIMP
• Blender
• LibreOffice (a Comprehensive Install)
• InkScape
• GVim
• MPlayer (Video With Sound)
• LaTeX
• LyX (A Word-Processor based on LaTeX, and not quite WYSIWYG)
• (a Graphical LaTeX Code-Editor)
• ‘Dia’ (a Useful Diagram-Editor)
• Miscellaneous Diagram-Drawing Software (that uses LaTeX as a Back-End)
• wxMaxima (a Computer Algebra System with GUI)
• GNUPlot (Gives 3D Plots)
• Yacas (Yet Another Computer Algebra System)
• ‘mkvtoolnix-gui’ (A video-file concatenation tool)

But, doing so also consumed several GB of storage, even though that tablet only has 16GB of storage. Currently, my Linux guest-system is taking up 4.41GB.

(Updated 10/08/2017 : )