# 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 : )

There seemed to be two packages which would not run:

1. ‘Firefox-ESR’
2. Dia‘ – A very useful application for creating Diagrams and exporting those either to SVG or to PNG Format.

Example (1) above does not surprise me. All the jailed applications which I am running, need to communicate with the externally-supplied X-server, 100% through X-server-protocol. Modern Web-browsers need to do so much complex rendering, that there could be no way they could run without shared memory, and in some cases, browsers only run well with H/W support fully enabled, and with GL enabled locally.

The fact that we can change individual setting-flags via ‘about:config’ may not be significant anymore, because to remove all dependencies on hardware may in fact require reprogramming Firefox at this point in time.

Now, ‘XSDL’ is the externally-supplied X-server, for which there exists a library that gives access to the Android shared memory, as if that was Linux shared memory, if the library is preloaded. But unfortunately, doing so does not enable Firefox to start running, even though it seems to improve the performance of ‘gnome-mplayer’.

The capabilities of this one, small library, may just not be complex enough for the needs of Firefox.

Example (2) above surprised me a little bit more. I had hoped that ‘dia’ would run. To get ‘dia’ to run under GNURoot / XSDL, we need to take into account that installing the standard, non-GNOME version, effectively gives us two versions of the same application: ‘dia-normal’ , and ‘dia-integrated’ . By default, especially if system-specific details are not detected, the package-manager will set ‘dia-integrated’ to be the version that gets run. On this platform, that version will crash. In order to fix this, we need to run:


update-alternatives --config dia
(1)




We need to choose ‘dia-normal’ to provide ‘dia’. In my experience, ‘Dia’ will then run.

But the simple reality of certain apps not running like this, is ‘par for the course’ .

What might be a bit more problematic, than just not being able to surf the Web from within Linux, while I have a browser installed for Android, is that without Firefox-ESR installed, the symlink ‘x-www-browser’ will also not exist, unless it’s a broken symlink, and one behavior of some apps might be, to launch the default, graphical Web-browser, let’s say because we clicked on a ‘Help’ button, but Help with one program may not be installed locally, or may just be installed locally in the form of HTML-Files. This would require that ‘x-www-browser’ be set up, which it currently is not, on my tablet.

One thing which I have done, is to install the text-based browser ‘Lynx’, that never displays any sort of images. Lynx runs fine. I could also just add a symlink manually, named ‘x-www-browser’, but pointing to ‘xxx-browser’. That way I wouldn’t need to make anything executable myself – which I don’t have the ability to do – and if ‘x-www-browser’ was called, at least something would run.

But there is actually a serious problem, with running Lynx as an alternative to provide ‘x-www-browser’ : Lynx needs to be launched from within a terminal window. It will not open a terminal window, unless we somehow configure it to do so… And one problem with the solution that was provided at the underlined link, is that the command ‘xdg-settings’ does not work, and that its related functionality, to set ‘LXSession Default Applications’, actually requires that the DBUS Daemon be running. Because we are running LXDE in a jail – essentially – we have started it without any DBUS-Daemon. The only way to keep that simplicity, is instead to follow this example, via ‘xdg-mime’ (Solution 39). Yet, while this will set how to open a static HTML File, it still does not really set the default browser.

This problem could easily be solved, if I could simply create a shell-script named ‘x-www-browser’, and if I could then make that executable. But because my Linux is running in a jail, I have no way to set that to executable. The only comparable thing I was able to do so far, was set the default program for opening .SH Files, to be ‘/usr/bin/bash’ . And that had to be done from within the GUI.

There do exist ways to run services inside the chroot environment. But AFAICT, these need to be invoked from outside the jail, to become visible inside the jail. Because ‘GNURoot’ plunks me inside the jail, before I can do anything, these approaches will not work for me. Besides, there is something to be said for the simplicity of what I have: It acts as a kind shell, for the purpose of executing one program, and after I’m done with it, I also don’t need to worry about having to stop services – which I would have to remember to do, if I had ever launched any services.

Finally, I was a bit worried until today, that even though the application-windows for GIMP open, they may not be able to display their images correctly. So I have just tested this today, and found, that although large images are slow to load, GIMP can make use purely of X-server-protocol to do so (see first screen-shot).