site  contact  history  index

network_tray now version 3.4

November 19, 2018 — BarryK

network_tray is the network activity applet in the tray, in EasyOS. Version 3.3 wasn't working quite right with NetworkManager.

Version 3.3 showed a network connection if any of the interfaces is up. In my PC, there are eth0, eth1, wlan0 and wlan1, but only eth0 is connected to the Internet. The others are not connected to anything, however NetworkManager has brought them up.

Note, by "up", this is what you would do if you typed "ifconfig eth1 up" in a terminal. In itself, that will not necessarily give any network or Internet connection. Normally, if the interface has a connection to (a cable in the case of eth1) a router or hotspot of some kind, with a DHCP server running on it, the PC would need to run a DHCP-client, for example "dhcpcd eth1", to be assigned an IP address. Once that is done, we may have attained Internet access.

Version 3.3 was indicating an Internet connection purely based on the interfaces being up, which is wrong.

Easy has pup_event, which, among other things, reports when Internet is up and down. There is a daemon, pup_event_frontend_d, which reports when an interface (or interfaces) has achieved Internet access, by writing the interface name to file /tmp/pup_event_backend/network_

I have changed network_tray to monitor this file, so now it accurately knows when Internet connectivity has gone up, or down.

Here is the new source:

http://distro.ibiblio.org/easyos/source/oe/pyro/network_tray-3.4.tar.gz

If interested, here is some information about pup_event:

http://bkhome.org/news/201802/pupevent-service-manager.html 


Tags: easy

Linux kernel 4.14.81 compiled

November 18, 2018 — BarryK

Here we go again... another kernel compile. This time, I found that there are some extra configuration options required to support 'iwd', the new alternative to wpa_supplicant.

I posted about iwd earlier today:

http://bkhome.org/news/201811/iwd-alternative-to-wpasupplicant.html

The 4.14.79 kernel was compiled on November 9:

http://bkhome.org/news/201811/kernel-41479-with-ipvlan-support.html

This time around, here are the changes;

Cryptographic API
<*> User-space interface for hash algorithms CONFIG_CRYPTO_USER_API_HASH
<*> Userspace cryptographic algorithm configuration CONFIG_CRYPTO_USER
<*> User-space interface for symmetric key cipher algorithms CONFIG_CRYPTO_USER_API_SKCIPHER

these were modules, changed to builtin:
{*} CMAC support CONFIG_CRYPTO_CMAC
{*} MD4 digest algorithm CONFIG_CRYPTO_MD4
{*} ARC4 cipher algorithm CONFIG_CRYPTO_ARC4
{*} DES cipher algorithm CONFIG_CRYPTO_DES
<*> SHA385 and SHA512 digest algorithm CONFIG_CRYPTO_SHA512

Security options
[*] Diffie-Hellman operations on retained keys CONFIG_KEY_DH_OPERATIONS

The kernel source, with patches and build scripts is here:

http://distro.ibiblio.org/easyos/source/kernel/4.14.81/

Should be setup for testing iwd tomorrow. 

Tags: easy

iwd, alternative to wpa_supplicant

November 18, 2018 — BarryK

Very busy day, heaps of coding...

Have been working on the SFS infrastructure, should have it "finalized" by 0.9.9, fingers crossed.

This morning I was sorting out how to handle when layers change in a container. In the main filesystem, this is handled reasonably well, that is, detection if, say, the devx sfs is inserted or removed. The init script in the initrd does some checking, a bit more after the switch_root, but that is only for the main f.s., not containers. There are things that need to be fixed when the layers change in a container.

This morning also, integrated NetworkManager so that it is part of the other managers (SNS, Frisbee, etc). That is, the old ones are not thrown out, so if you prefer one of those, they are still available.

And, have added ModemManager package, that works with NetworkManager. Also recompiled NetworkManager to support the 'iwd' backend, which is an alternative to wpa_supplicant.

I have had an ongoing problem with wpa_supplcant and my phone hotspot. This is with SNS, and the issue continues with NetworkManager.

wpa-supplcant is a daemon, that negotiates connecting with a wifi hotspot. In the case of my phone, the phone hotspot is recognized, and wpa_supplicant goes into a loop, reporting "Associating", then after a number of tries, gives up. However, if the phone hotspot has been recently turned on, or I turn it off then back on, wpa_supplicant has no trouble with associating.

It seems that the phone goes into a mode from which wpa_supplicant cannot wake it from. Yet, Win10 on my baby laptop has no difficulty doing so.

iwd is the new kid on the block, shaping up to replace wpa_supplicant. There was no recipe to compile iwd in OpenEmbedded, but I did find a very old one that was posted in 2014 (see link in recipe), which was a good starting point. Ended up with this recipe:

https://github.com/bkauler/oe-qky-src/tree/master/quirky/meta-quirky/recipes-quirky/iwd

The source is downloaded from git, but the last tag is version 0.12.

Will test it tomorrow.

Tags: easy

Thanks for the donations

November 17, 2018 — BarryK

I greatly appreciate the support with EasyOS. You guys who do testing and bug-reporting are very helpful.

Easy is on the waiting-list at distrowatch.org, and will require to be voted-up, otherwise it could sit in the waiting-list for a very long time, as has happened with some other distros. However, I don't want Easy to be voted-up just yet, as the current small group of testers is enough. Otherwise, I will be flooded.

Some people have chosen to give some money, and that is also helpful. I didn't have a donation button for years, then put it back in 2018. Since then, some donations have come in. I know at least one of these guys wants to remain anonymous, so just using first names, looking through my email history, here they are:

May 27: Ben US$40
Sept 6:   William US$20
Sept 20: Larry US$25
Oct:        Chris AU$100
Nov 15: Matt US$5

As I mentioned to Chris, his AU$100 came in just after I had paid US$65 for five years registration of easyos.org, covering the cost nicely -- serendipity!

Tags: easy

NetworkManager 1.14.4 and container bug fixed

November 17, 2018 — BarryK

EasyOS testers have reported that after running an application in a container, say SeaMonkey, the Internet disconnects. Yes, exiting from the containerized-SeaMonkey (the "www" icon in top-middle of the screen), closes-down the container, and this terminates the instance of the 'dhcpcd' daemon that serviced that container, which empties file /etc/resolv.conf ...which kills the Internet.

/usr/local/easy_containers/ec-chroot is the container startup script, and it had this line in it:

       ip netns exec ${IFcont}ns dhcpcd -b ${IFcont} #-b background immediately

Where IFcont="www1" in the case of the www container. In a nutshell, what this does is run 'dhcpcd -b www1' in the network-namespace (www1ns) of the container, where "www1" is the name of the network interface.

What I did not think about, is dhcpcd also executes scripts in /lib/dhcpcd/dhcpcd-hooks, one of which writes to /etc/resolv.conf. When that instance of dhcpcd is killed, it again writes to /etc/resolv.conf, emptying it -- which removes the nameserver information. Hence, the Internet is now dead.

It probably doesn't need to run any of those hooks. The original 'dhcpcd' instance is the one responsible for managing /etc/resolv.conf, etc. But unsure, so changed the script so only disables two of the hooks:

       ip netns exec ${IFcont}ns dhcpcd -C resolv.conf -C wpa_supplicant -b ${IFcont}

...that now works, can kill a container, and still have Internet.

Easy 0.9.8 has NetworkManager 1.4.4, as this was the version in my fork of OpenEmbedded. That is about 1.5 years ago, though, and NM is a very active project. The latest stable is 1.14.4. So, I got NM 1.14.4 from OpenEmbedded upstream, put it into my 'oe-qky-src' fork:

https://github.com/bkauler/oe-qky-src/tree/master/sumo/meta-openembedded/meta-networking

NM 1.4.4 is configured to use the external 'wpa_supplicant' and 'dhcpcd' daemons. It could also have been configured to use 'dhclient'. However, it can be configured to use its own internal DHCP client.

For 1.14.4, I decided to go for the internal DHCP client. The configure options can be seen here:

https://github.com/bkauler/oe-qky-src/blob/master/quirky/meta-quirky/recipes-connectivity/networkmanager/networkmanager_1.14.4.bbappend

Working OK. 'dhcpcd' is still being used for the containers. 

Tags: easy

Xenialpup 7.5 running in EasyOS

November 15, 2018 — BarryK

Yay, have added another Puppy to the SFS repository! Racy Puppy 5.5 was already there. Now, if you click on the "sfsget" icon on the desktop, Xenialpup will be offered to download and run in a container.

Xenialpup is created by Puppy Forum member 666philb, see discussion here:

http://murga-linux.com/puppy/viewtopic.php?t=106479

To convert it into an SFS suitable to run in EasyOS, I opened up the ISO file and extracted the SFS file. Then extracted the contents of the SFS file to a folder, then ran the 'dir2sfs' script, as explained in this earlier blog post:

http://bkhome.org/news/201811/racy-puppy-running-in-container-in-easyos.html

Note however, the 'dir2sfs' in Easy 0.9.8 was not quite adequate. Some fixes were required, due to changes in woofCE. I will upload the latest 'dir2sfs' soon. I also want to apply the 'dir2sfs' script to a very recent pup (Xenialpup 7.5 is the latest official release on distrowatch.com, but was released in November 2017) -- the script might need some more tweaks.

It's online, so click the "sfsget" icon on the desktop, and Xenialpup is offered to download:

image1

Download, install, and there is a new icon on the desktop:

image2

...click on "xenialpup" icon, and desktop launches;

image3

...everything works!

One thing though, clicking the "install" icon runs the Puppy Package Manager, but first time it reported "already running" and quit, clicked the icon a second time, and the PPM launched. Dunno why.

Anyway, I installed 'gedit' from the Ubuntu DEB repository. Oh, had to update the package database first.

There are two great reasons for running Xenialpup in a container. Firstly, it is very locked-down, very secure. No access to the the hard drives, only '/shared-folder' is the means of reading/writing with the "outside world".

The second reason is binary compatibility with the Ubuntu Xenial Xerus (16.04) DEB repositories. So, if you want to run something that is not available in the very limited EasyOS package and SFS repositories, just run Xenialpup and browse the Ubuntu repos.

I also tested the Palemoon browser, the default in Xenialpup, and played a video at 720p at youtube.com. No problem there, and sound works.

Great fun! 

Tags: easy

EasyOS 0.9.8 released

November 14, 2018 — BarryK

This is a very exciting release, for a couple of reasons. Firstly, the move away from the traditional package manager to a manager based on SFS files and containers. Secondly, the new network manager.

For reference, you might like to browse the release notes for version 0.9.7, on October 14:

http://bkhome.org/news/201810/easyos-097-released.html

Version 0.9.8 is available courtesy of ibiblio.org:

http://distro.ibiblio.org/easyos/amd64/releases/pyro/0.9.8/

The download file is an image for writing to a USB flash stick. If uncertain how to do this, here is some guidance:

http://bkhome.org/easy/how-to-write-easyos-to-a-flash-drive.html

It is great for me that Linux development has become exciting again, as Easy evolves into something unique, powerful, and ...well, exciting. The special features with this release:

SFSget

The new preferred package manager is SFSget, introduced in a blog post a few days ago:

http://bkhome.org/news/201811/racy-puppy-running-in-container-in-easyos.html

After booting 0.9.8, click on the "sfsget" icon at top of screen, and have fun. You can download Racy Puppy and run it as a complete desktop, in its own container. There's more, such as Chromium and Firefox.

Currently, it is easy to create SFS packages for Puppy distros based on JWM and ROX-Filer. So, I intend to create some more... maybe XenialPup.

NetworkManager

I posted yesterday about ongoing issues with all of the network-connection managers in Easy, Quirky and the Puppy distros:

http://bkhome.org/news/201811/considering-networkmanager-for-easyos.html

When you boot 0.9.8, if an ethernet cable is plugged in, which gets to the Internet, then everything should be automatic. That is, nothing to do.

In the case of wifi, some configuration is required. Click the "connect" icon on the desktop, and a simple text-mode GUI, named 'nmtui', will display. This should do the trick, then connection should be automatic after that.

Note, if you want to see what wifi networks are available, in case the nmtui GUI doesn't show it, run this in a terminal:

# nmcli device wifi list

If no joy, try again:

# nmcli device wifi rescan
# nmcli device wifi list

You can also bring a wifi connection up and down:

# nmcli connection up id ssid 

...you have to substitute the appropriate ssid.

Bug fixes and warnings

0.9.8 is still considered beta-quality, even alpha-quality in a few places. As there are many changes under-the-hood, do not attempt to upgrade from an earlier version, treat this as a new installation.

At least one tester reported being unable to install Easy to the hard drive in a laptop, even though followed my instructions. I have not yet reviewed this, plan to do so soon.

Internet connection in a container, for wifi, was broken in 0.9.7. Fixed with a temporary workaround.

Note, if /etc/init.d/rc.networkmanager is changed to not-executable, then reboot, the old network managers are restored. Just in case you prefer them!

Feedback

EasyOS has a forum, I will start a 0.9.8 feedback thread here:

https://easyos.org/forum/

I am also still monitoring this thread in the Puppy Forum:

http://murga-linux.com/puppy/viewtopic.php?p=1009723#1009723

Further reading

For a quick overview of how and why EasyOS is different from other Linux distributions:

https://easyos.org/about/how-and-why-easyos-is-different.html

Documentation is here (will migrate to easyos.org one day):

http://bkhome.org/easy/

Have fun! 

Tags: easy

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