Containers for Quirky

I am thinking about the next-generation Quirky, and through 2016 have played with various software technologies, such as device-mapper and btrfs.

Another one on the list is containers, and I did a bit of reading during 2016, wasn't impressed. A Docker container has an absolute minimum size of 3.6MB. I saw one post where the person was proud that he had reduced the size of his Docker container to 25MB.
This idea of putting everything into a container, is so wasteful, and contrary to our Puppy philosophy.

It is all very well that these days we have heaps of storage, but with containers it is very easy to use it up. I am thinking of Quirky running on a Flash stick. Ideally, I would like Quirky to run happily on a 4GB stick.

I was trying to think how containers can be implemented efficiently, and thought, why not use an overlay filesystem, such as overlayfs or aufs? This is Puppy's home turf! This seems like a very good idea, and so I expected the same idea will have occurred to many other people -- which it has, lots of posts, including using overlayfs for Docker.

Firstly though, what is a container? A filesystem that you can chroot into is a container. An environment that you can run an application with isolation from the rest of the system, is a container. The basic requirement is to provide security, such as prevent a rogue app from getting out, or an outside intrusion from getting out.
Containers go some steps beyond the basic chroot, with extra levels of isolation.

This idea of using overlayfs. Instead of copying everything, libraries, etc., into a container, mount it as an overlayfs, with the read-only system as an SFS file underneath. This SFS file can be shared by all containers. This is extremely space efficient, but it also solves some implementation problems, for example as described here:

Right now, I am just reading and learning more. Nowhere near formulating what the proposed "next gen" Quirky will look like.

Currently studying this, a simple implementation of containers, very interesting:
Posted on 22 Jan 2017, 14:12 - Categories: Linux

Linux on E200HA notes

I have posted a few times about running Linux, specifically Quirky, on my Asus E200HA baby laptop. Here are some posts:

I bought this laptop because of it's small size and light weight, easy to take as carryon when flying. And it is cheap. Unfortunately, it is not very compatible with Linux.

This is a webpage with a summary of the issues of E200HA and Linux:

Here is another page, similar information, also mentions freezing with some versions of Linux:

...there is a kernel boot parameter workaround for freezing, which I haven't tried.

I had freezing issues with the 4.8.x kernel, and rolled back to 4.4.40, which I am now using. No freezing issue.
Odd that later kernels give more trouble with this SoC!

I am still very disappointed that the SD-card interface doesn't work. The above links report that it may work, partly, with later kernels.

One good thing, the USB3 interface seems OK now. There was a freezing problem with kernel 4.4.8, but 4.4.40 is OK.

But I have a new problem. I usually turn off "tap" on the touchpad when using a USB mouse, as I invariably accidentally brush the touchpad when not meaning to.
However, this touchpad is not a Synaptics type, it is recognised as a mouse. I cannot see how to turn it off.

This is all too annoying. It seems that Intel have not bothered much with Linux support for the Cherry Trail SoCs, and things have moved on since then, new SoCs, so it looks like these issues might never get resolved?

I might take out my Quirky installation and restore the Win10 partition to fill the entire drive, and donate this laptop to a charity. Then buy one that is Linux-compatible.

It has to be small and light. There are some out there, I am thinking of Dell, that would be great, but pricey.
Posted on 20 Jan 2017, 23:12 - Categories: Linux

Quirky Xerus x86_64 8.1.6 released

This release of Quirky is codenamed "Xerus" and is built from Ubuntu 16.04 x86_64 binary packages.

The background, announcement and release notes are here:

A very brief announcement blurb:

Quirky Linux 8.1.6 x86_64 is codenamed "Xerus" and is built using the woofQ Quirky Linux build system, with the help of Ubuntu 16.04 binary packages. Thus, Xerus has compatibility with all of the Ubuntu repositories.
The Linux kernel is version 4.4.40 and SeaMonkey is upgraded to version 2.46.
Quirky is a fork of Puppy Linux, and is mainly differentiated by being a "full installation" only, with special snapshot and recovery features, and Service Pack upgrades.

Instructions to install are here:

Quoting from the above link:

Quirky is provided as a 8GB USB Flash stick image, or for an SD-card. This file may be written to an 8GB or greater Flash stick. In the latter case, at first bootup there will be an offer to increase the filesystem to fill the drive.

Very easy install instructions for Windows users. The above link explains how to install from the commandline in Linux, though I intend to develop a simple GUI.

For those who still want one, there is also a live-CD ISO file.

The primary download host is Ibiblio:

There are faster mirrors, such as NLUUG:

You will notice that the Flash-stick image file is 502MB, whereas the ISO file is 398MB. The reason it is so large (by Puppy standards) is because it is gzip compressed. The same file xz-compressed is only 333MB.
Gzip compression is used as that is understood by many Windows image-writer applications. The *.img.gz file is very easy to install for Windows users.

The live-CD ISO is 398MB. It is smaller because internally it uses xz compression.

Setup notes
Please do think about the security of your Quirky. When QuickSetup is running, you will see a button to manage daemons. You can also run this from the menu, System -> Bootmanager -> Manage system services.
I recommend disable all daemons that you don't immediately need.
Also, tick the checkbox for a firewall. Leave the firewall at defaults to block all ports.

You might find that the keyboard layout choices in QuickSetup don't quite meet your country/language/region requirements. Never mind, make the best choice, then later click the "setup" icon on the desktop, and you will find an "Advanced Xorg keyboard configurator", to fine-tune the keyboard localization.

There are some known issues.

1. There is Bluetooth support, but it needs work.
2. SeaMonkey has a few problems. It is stuck on DuckDuckGo for starters.
3. CLI VLC only. A full GUI video player needs to be installed.

Regarding SeaMonkey, it is version 2.46. The SM developers released 2.40 in March 2016, then nothing until 2.46 was released at the end of December 2016. Perhaps they were under pressure to get something out. Whatever, 2.46 has some issues, mostly annoyances.

Choice of video player is left up to the user for now. Here are instructions on how to install Xine or VLC:

Feedback is invited to choose the "best" and hopefully small, video player for inclusion in the next minor-point release.

Forum thread for feedback:
Posted on 14 Jan 2017, 17:57 - Categories: Linux

Xine or VLC for Xerus64

I am just about to upload Quirky Xerus x86_64 8.1.6.

It is working very well, except that the media player is broken. The commandline VLC player is installed, but GUI components are missing. There is a GUI, called SimpleVP, however that is currently not working properly.

Fortunately, working video players can be installed from the Ubuntu package repositories.

These are advance instructions, for after Xerus64 8.1.6 is released.

This is small, with few dependencies.
Run the Puppy Package Manager, and type "xine-ui" in the search-box.
It will be found in the "universe" repository.
Click on the button to find all dependencies, then choose to install them all.

Also install "libcrystalhd3", found in the "universe" repo, and "libnuma" found in the "main" repo.

Type "xine" in a terminal to run it, or it is in the Multimedia menu.

The problem is that VLC is already installed, but it is missing extra packages to run as a GUI application. Unfortunately, the Package Manager won't reinstall it and it's deps.

However, it can be tricked to do so. Open file /root/.packages/Packages-ubuntu-xenial-universe in a text editor, and copy the line starting "vlc_2.2.2-5|vlc|2.2.2-5||Multimedia|..." down to the bottom of the file.
That is, just copy and paste.

Then edit the last line so that it looks like this:


That is, just change the name from "vlc" to "zvlc" in the first two fields.

Then run the Puppy Package Manager and do a search for "zvlc", click on it, click the button to find all deps, and install them.

Note, the list of deps is rather large, and if the window is too high for the screen, hold down the ALT key and drag with the mouse. This is a standard technique in Xorg for moving windows around.

VLC may be run by typing "vlc" in a terminal, or it is in the Multimedia menu.

Default Applications Chooser
You will find this in the Setup menu. You can choose "vlc" or "xine" as the default player.

Which is best?
OK, it is a bit of a hack described above to install VLC! I intend to choose a working multimedia player for inclusion in the next minor-point release of Xerus64. Feedback will be invited on the Puppy Forum as to which one, Xine, VLC, or some other, works best.

I prefer Xine from the size point of view, but does it play most/enough video formats?
Posted on 14 Jan 2017, 3:53 - Categories: Linux

Overlayfs cannot handle zram

I have moved from aufs to overlay filesystem (it used to be named overlayfs, but they changed the name to just overlay, which is a very strange decision).

The documentation for overlay states that direct writes to the lower layers is forbidden, so that rules it out for Puppy Linux.

However, usage in Quirky does not require writes to lower layers, so overlay looks good.

Except that I have just run into a brick wall. I have discovered that overlay cannot handle the upper rw layer being a zram.

A zram is used for the live-CD. I thought that I had done everything correctly, however the 'init' script in the initramfs was failing, the kernel crashing.

I setup an experiment. Created folders just like in the initramfs: q_ro/q_sfs, q_rw, tempwork, q_new.

Using the same busybox from the initramfs, this works:
# ./busybox mount -t overlay -o lowerdir=./q_ro/q_sfs,upperdir=./q_rw,workdir=./tempwork overlay ./q_new

Then, mounting a squashfs file on the ro layer:
# ./busybox umount ./q_new
# ./busybox mount -t squashfs ./q_ro/q.sfs ./q_ro/q_sfs
# ./busybox mount -t overlay -o lowerdir=./q_ro/q_sfs,upperdir=./q_rw,workdir=./tempwork overlay ./q_new

Success again. Now create a zram:
# ./busybox umount ./q_new
# ALLOCK=1000
# USEK=500
# echo "${ALLOCK}K" > /sys/block/zram0/disksize
# echo "${USEK}K" > /sys/block/zram0/mem_limit
# mkfs.ext2 -m 0 -L qrw /dev/zram0
# mount -t ext2 /dev/zram0 ./q_rw

And try again:
# busybox mount -t overlay -o lowerdir=./q_ro/q_sfs,upperdir=./q_rw,workdir=./tempwork overlay ./q_new
mount: mounting overlay on ./q_new failed: Invalid argument

Have I misunderstood something here? Do I have to go back to aufs?
Posted on 12 Jan 2017, 10:17 - Categories: Linux

Pages: ... [4] [5] [6] [7] [8] [9] ...