site  contact  subhomenews

Considering NetworkManager for EasyOS

November 13, 2018 — BarryK

There are ongoing issues with Internet connection in EasyOS and Quirky. The pups also. We have lots of network and Internet connections apps -- in Easy there is Simple Network Setup, Frisbee, and the old Network Wizard. Puppy developers have created more, such as PeasyWiFi.

They all have problems. In Easy, there are ethernet and wifi issues -- the ethernet cable seeming to be not connected, wifi refusing sometimes to connect to my phone hotspot. Some of them have confusing UIs.

So, we get a situation where we think Internet is configured, then at next bootup it doesn't connect, and have to go through the setup again.

Darn, my baby laptop with Win10 connects and reconnects to the phone hotspot flawlessly.

I am playing with NetworkManager, and it is a very pleasant experience. This is the utility used in most of the mainline distros. It has a daemon, 'NetworkManager', and a cli app 'nmcli'. The daemon pretty much "just works" without any configuration, for ethernet anyway. Just start the daemon, that's it.

There is a tray applet, a different package, 'network-manager-applet', which does work, although I am uncomfortable with the number of dependencies.

The 'nmcli' utility could be used as the basis for our own custom GUI. For wireless, real easy:

# nmcli device wifi list
# nmcli device wifi connect <ssid> password <password>
Very keen to release Easy 0.9.8, to show off the new SFSget, however, might delay for a couple more days, throw out all the network connection apps, replace with NetworkManager. 

Tags: easy

Kernel 4.14.79 with ipvlan support

November 09, 2018 — BarryK

I posted earlier this year about configuring the kernel for veth and macvlan support:

...though, I think that should have been the "4.14.45" kernel.

I posted earlier today about macvlan bridging into containers not working for wifi:

So, started to experiment, but found that the Linux kernel is not configured to support ipvlan. CONFIG_IPVLAN is supposed to be enabled, but I had overlooked it, as it is not even listed as disabled in the .config file. How can I enable it, if it isn't even offered?

After a bit of research, discovered that something else has to be enabled, then CONFIG_IPVLAN appears and can be enabled. So, compiled the 4.14.79 kernel, with these changes:

Networking support
Networking options
[*] L3 master device support (CONFIG_NET_L3_MASTER_DEV)
Device drivers
Network device support

The kernel source, patches and build scripts, are here:

Tomorrow morning, planning to play with ipvlan! 

Tags: easy

Macvlan bridge does not work for wifi

November 09, 2018 — BarryK

I posted how EasyOS is using Macvlan bridge for Internet access in containers:

However, testers have reported in the EasyOS Forum, that it does not work for wifi, only for ethernet. Yes, this page spells it out: states that for wifi, Macvlan does not work, use Ipvlan. They recommend to definitely use Macvlan for ethernet.

Right, "back to the drawing board"!

For those who are using EasyOS right now, there is a fix. For the example of the "desk" container, open /mnt/wkg/containers/desk/configuration in a text editor, and change this line to "false":


This is theoretically slightly less secure, however, wifi should then work in the container. Do this before starting the container.

What I intend to look into this afternoon, is detect if interface is wifi then implement Ipvlan instead of Macvlan. That's the intention anyway...

Tags: easy

Racy Puppy running in container in EasyOS

November 03, 2018 — BarryK

This is very exciting. I have been working toward this for the last few weeks, and now it works. However, there are a lot of "loose ends" so probably several days away from the next release.

However, basically the concept works, hence this preliminary post to show it off. What we can do is run any Linux distribution in a container, and flip in and out of it, though it is easier to do with the Puppy distros.

Right, so choosing Racy Puppy 5.5 for the demonstration. This was a very popular pup, and still is. It is the big brother of Wary Puppy -- Wary uses the old kdrive Xvesa server, whereas Racy uses Xorg. Apart from the difference in X and xlibs, the rest is built from the same binary packages compiled in T2.

I grabbed the Racy 5.5 ISO and extracted the SFS file, then opened up the SFS file and copied all of it's contents to a folder, named 'racy_5.5-r0_i686' -- not sure if I remember correctly, but I think Racy requires a i686 CPU, whereas Wary a i486 CPU -- but not 100% certain on that. Then ran 'dir2sfs':

# dir2sfs racy_5.5-r0_i686

A snapshot of the main GUI window:


File 'racy_5.5-r0_i686.sfs', 'racy_5.5-r0_i686.specs' and 'racy.png' was created, that I uploaded to the new SFS repository:

Next, click on the "sfsget" icon on the desktop (or run 'sfsget' in a terminal to see any errors), and the first window:


Next window:

images the "INSTALL" button. Note, this is a very early version of 'sfsget', and is missing some functionality -- for example, doesn't yet have detection of already-installed SFS packages.

The SFS is downloaded, and a menu-entry and an icon created on the desktop:

image on the "racy" icon, and hey-presto, Racy Puppy is running...


Well, that "hey presto" is a lie. I had to do a lot of manual fixes to get the desktop running nicely like you see in the above snapshot. The intention is to get all of those fixes automated over the next few days.

Racy runs very fast, can flip back and forth between the main desktop and the Racy desktop. Notice that the background wallpaper is now working -- that was a problem in the containerized desktop in easy 0.9.7 and earlier.

A comment: why would you want to run Racy inside EasyOS, instead of standalone? The answer is: security. Racy is very locked-down inside a container, very much mitigating any security weaknesses of the old software.

This is great fun. Unfortunately, I now have to eat and do other things, will continue developing it, well, what I am now calling EasyPak, tomorrow. 

Tags: easy

dir2sfs take-2

November 02, 2018 — BarryK

I posted recently about the new 'dir2sfs' utility for EasyOS:

Much "water under the bridge" since then!

The "Puppy database format" is now abandoned, for SFS files anyway. The 'dir2sfs' utility is for anyone who wants to create and SFS file from a folder, and invocation would be in a terminal:

# dir2sfs <name of folder>

Which will bring up this window:


...the Help button explains each of these modes. The "terminal" mode will create an icon on the desktop that will launch the container as a terminal window. The next window:


...lots of fields, but pretty straight-forward and plenty of Help buttons. Note that the online URL is not specified, decided it is unwise to hard-code it. But, the folder-path at the URL is specified. Next Window:


...actually, for 'devx' this is too locked-down. Haven't got into considering compiling inside a container yet. These snapshots are just illustrative of what the dir2sfs GUIs look like.

Finally, a SFS file is created. In the above example, it would be 'devx_0.9.7.1_amd64.sfs'. Container security and other settings are in the folder /.control inside the SFS file. The SFS file can be placed into the online repo, stay tuned!

Tags: easy

Redesign of folder hierarchy in wkg-partition

October 29, 2018 — BarryK

This is a little progress report for those who are following the technical aspects of EasyOS development. The fact that the latest version is 0.9.7 is misleading, as the underlying architecture is still undergoing major changes as we head toward a stable 1.0 release. This post is about changes to the working-partition.

In 0.9.7 and earlier, if you look in /mnt/wkg, you will see these folders:

containers home repository .session

Easy uses a per-folder encryption mechanism, and in 0.9.6 and earlier, the 'containers', 'home', 'repository' and '.session' folders were encrypted. This is encrypting everything, which is most secure, however, it also means the SFS files such as 'q.sfs' and 'devx-*.sfs' are encrypted, imposing extra delay when accessing them. These SFS files will be found in the 'repository' folder, for example repository/easy-0.9.6/q.sfs.

These SFS files do not have anything that needs to be encrypted, so it is an unnecessary overhead. Consequently, for 0.9.7, only the 'home' folder is encrypted. This encrypts all your personal files, downloads, etc., however, the '.session' folder may contain sensitive information, as well as the snapshots (rw-*.sfs files) in the 'containers' and 'repository' folders. So, 0.9.7 is not satisfactory.

Working toward 0.9.8, the folders are now:

containers home releases sfs .session

The 'repository' folder has been renamed to 'releases', which more accurately describes its function. The new sfs folder has the SFS files, and symlinks are placed to the SFS files from within the 'containers' and 'releases' folders.

Now we are back to encrypting 'containers', 'home', 'releases' and '.session', for maximum security, but the SFS files are in an un-encrypted folder. The snapshots, 'rw-*.sfs' files, remain inside the encrypted folders.

So, we have maximum security, without unnecessary decryption overhead.

As an example, /mnt/wkg/releases/easy- is a symlink:


...notice that the name of q.sfs has been changed. This renaming, and the folder hierarchy inside the 'sfs' folder, are to support the upcoming EasyPak SFS package management. Which it is intended to describe later!

Tags: easy

pngoverlay utility improved

October 24, 2018 — BarryK

Puppy Forum member Vovchik has created some great little CLI utilities that are used in Puppy Linux and derivatives, including EasyOS.

'pngoverlay' is one of these. The drive partitions that you see on the desktop with little "close box" at top-right, is achieved by merging two images using pngoverlay.
Previously, pngoverlay had a limitation that it had to be in the same folder as the images that it is working on. Vovchik has now removed that limitation. The utility is in source package 'pup-tools-20181024.tar.gz':

Another one is 'picscale', for resizing and converting images. I have recently used this the new 'dir2sfs' utility, to convert images to a standard size, 48x48, and PNG.

picscale source is also at the above link.

Tags: easy

dir2sfs utility for SFS package manager

October 23, 2018 — BarryK

As posted about recently, I am working toward the EasyOS Package Manager based on SFS mega-packages, not on individual PET, DEB, or whatever, packages. This has tremendous advantages and is very container-friendly, see this post:

SFS packages will require some enhancements, including a new package-database format. I have extended the Puppy-standard package database format, and (mostly) written a utility 'dir2sfs', which will convert a folder into a SFS file.

There will be various meta-data inside the SFS file, that is a story for later. Regarding the extended database format, the 'dir2sfs' utility will bring up this GUI window:


It will generate a one-line database entry, just like the Puppy database format, but with more fields, and some fields redefined.

Notice that the URL for the SFS package is hard-coded. I decided to do it this way, as it makes it easy for anyone who wants to contribute SFS packages to Easy and host them somewhere of their choosing. In the case of ibiblio, where there may be mirrors, I might introduce a notation to indicate "ibiblio mirror".

An SFS package will normally be downloaded and installed in a container. There are decisions to be made here, hence lots of little "?" buttons to provide guidance. The SFS will be in one container, but could have more than one app and hence more than one icon on the desktop. Container install mode is "individual", "desk", or "terminal" -- the latter two will create a single icon on the desktop.

Note, the above snapshot is just to illustrate the GUI. In practice, the 'devx' SFS would be a development environment, so Install mode of "desk" or "terminal" would be appropriate.

Notice in the above snapshot, the dependency is "q&eq0.9.7". This is just an example. It means that the container must have 'q.sfs' version 0.9.7 as the bottom layer.

Another example, "rust&ge4.5,q", which means the 'rust' SFS version 4.5, and q.sfs underneath -- if no version given, then it is just the current version in EasyOS.

These SFS packages do not have to be EasyOS packages, they could be Puppy Linux, even some other Linux distro, as long as a base-SFS dependency is available.

Notice the naming of SFS files. In the above snapshot it is "devx_0.9.7-r0_pyro64.sfs". I have adopted the DEB naming, which is "<name>_<version>-<release>_<arch>.sfs".

There is a lot more to do, this is just a progress report.

EDIT 2018-11-02:
Many changes, see updated dir2sfs here: 

Tags: easy