## How to Add a Web-browser to GNURoot + XSDL.

In This earlier posting – out of several – I had explained, that I’ve installed the Android apps “GNURoot Debian” and “XSDL” to my old Samsung Galaxy Tab S (first generation). The purpose is, to install Linux software on that tablet, without requiring that I root it. This uses the Android variant of ‘chroot’, which is actually also called ‘proot’, and is quick and painless.

However, there are certain things which a ch-rooted Linux system cannot do. One of them is to start services to run in the background. Another is, to access hardware, as doing the latter would require access to the host’s ‘/dev’ folder, not the local, ch-root’s ‘/dev’ folder. Finally, because XSDL is acting as my X-server, when GNURoot’s guest-software tries to connect to one, there will be no hardware-acceleration, because this X-server is really just an Android app, and does not really correspond to a display device.

This last detail can be quite challenging, because in today’s world, even many Linux applications require, direct-rendering, and will not function properly, if left just to use X-server protocol, à la legacy-Unix. One such application is any serious Web-browser.

This does not result from any malfunction of either Android app, because it just follows from the logic, of what the apps are being asked to do.

But we’d like to have a Web-browser installed, and will find that “Firefox”, “Arora” etc., all fail over this issue. This initially leaves us in an untenable situation, because even if we were not to use our Linux guest-system for Web-browsing – because there is a ‘real’ Web-browser installed on the (Android) host-system – the happenstance can take place, by which a Web-document needs to be viewed anyway – let’s say, because we want to click on an HTML-file, that constitutes the online documentation for some Linux-application.

What can we do?

## System Maintenance Today, Downtime

I take the somewhat unusual approach, Of hosting this Web-site, and therefore also my blog, on my personal computer at home. Therefore, any downtime of my home computer, also affects the visibility of the blog. And, as long as the actual Web-server is not online, I also cannot make it display a maintenance-mode page.

Just in recent days, I took the more-unusual step, of running the command:


root@Phoenix:/home/dirk# update-initramfs -u -k 3.18.0-14-generic




root@Phoenix:/home/dirk# update-initramfs -u -k 3.16.0-4-amd64



While it seemed nice for some time, to be running a kernel-version named ‘3.18.0-14-generic’, the mainstream version which a Debian / Jessie system is supposed to be running, is ‘3.16.0-4-amd64′. So, while the mainstream kernel had been receiving regular updates, I was running a kernel, which had not been receiving any updates, for years now. This helped reduce the number of reboots which I needed to carry out, due to frequent updates on the ‘3.16.0’ kernel.

But just because this was the first time in ages, that I had run the ‘update-initramfs’ command on the running kernel, I next needed to attempt a reboot, just to see whether the computer could still boot.

Therefore, readers would have experienced problems accessing my blog or site, from about 16h40 until about 17h10 today.

And No, My system Failed to Reboot.

## How SDL Accelerates Video Output under Linux.

What we might know about the Linux, X-server, is that it offers pure X-protocol to render such features efficiently to the display, as Text with Fonts, Simple GUI-elements, and small Bitmaps such as Icons… But then, when it’s needed to send moving pictures to the display, we need extensions, which serious Linux-users take for granted. One such extension is the Shared-Memory extension.

Its premise is that the X-server shares a region of RAM with the client application, into which the client-application can draw pixels, which the X-server then transfers to Graphics Memory.

For moving pictures, this offers one way in which they can also be ~accelerated~, because that memory-region stays mapped, even when the client-application redraws it many times.

But this extension does not make significant use of the GPU, only of the CPU.

And so there exists something called SDL, which stands for Simple Direct Media Layer. And one valid question we may ask ourselves about this protocol, is how it achieves a speed improvement, if it’s only installed on Linux systems as a set of user-space libraries, not drivers.

(Updated 10/06/2017 : )