site  contact  subhomenews

libseccomp bumped, cgroups in kernel

September 22, 2018 — BarryK

Now returning to developing EasyContainers, after a lapse of a couple of months. Well, I think it is getting on to about two months since I last dabbled in them.

Preparing the ground, so to speak, I want to have 'libseccomp' in EasyOS. The package is already compiled in 'oe-qky-src', my fork of OpenEmbedded, as it was needed for Flatpak (universal packages) support (that I experimented with a couple of months ago).

I have bumped 'libseccomp' from 2.3.1 to 2.3.3, see commits:

https://github.com/bkauler/oe-qky-src/commit/a0c9eb170a76d19e6794bf6080532a61903de3d4

I have also compiled the 4.14.71 kernel in EasyOS Pyro, with more support for cgroups. Previously, had only enabled "Device controller" support in cgroups (General setup -> Control group support), have now enabled these as well:

Memory controller
IO controller
CPU controller
PIDs controller
RDMA controller
Simple CPU accounting controller

The previous kernel build had "User namespaces" enabled (General setup -> Namespaces support). I have now disabled that, but the other namespaces are still enabled.

Note, have also done the same for the 4.18.9 kernel, that I compiled yesterday for the Quirky builds.

Tags: easy

Easy Beaver 0.9.4 released

September 21, 2018 — BarryK

Easy Beaver 0.9.3 was released just two days ago. It has the 4.18.8 kernel, but there was an advisory of a security issue, so have now upgraded to 4.18.9. It also has 'youtube-dl', a YouTube downloader script, but we found that no longer works -- a new script was made available yesterday and have upgraded. The "desk" icon on the desktop did not work, as the 'xserver-xephyr' DEB package was missing. These fixes were important, hence we have release 0.9.4. 

Easy Beaver 0.9.2 was released in May 2018:

http://bkhome.org/news/201805/easy-beaver-092-released.html

Mostly, I have focused on the "Pyro" series of EasyOS, built with packages compiled entirely from source, using my fork of OpenEmbedded. However, also created some builds using Ubuntu DEBs -- there were some releases based on Ubuntu Xenial Xerus DEBs, and one using Bionic Beaver DEBS (0.9.2).

Have now built EasyOS x86_64 with Bionic Beaver 18.04.1 DEBs, codenamed "Easy Beaver", version 0.9.4. Download from here:

http://distro.ibiblio.org/easyos/amd64/releases/beaver/0.9.4/

Built with latest woofQ, so from that respect on a par with the Pyro series. Building with Ubuntu DEBs does result in a considerably bigger download file, however, weigh that against compatibility with the Ubuntu DEB respositories.
The kernel is 4.18.9, patched with aufs.

The download is an image that you can write to a USB stick, as described here:

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

Pyro
Regarding the Pyro series, this generally sees more activity from me. These are the latest releases:

0.9.6.3, x86_64, Raspberry Pi3:
http://bkhome.org/news/201809/easyos-0963-64-bit-on-raspberry-pi.html

0.9.6, x86 32-bit, PC:
http://bkhome.org/news/201808/easyos-32-bit-version-096.html

0.9.6, x86_64, PC:
http://bkhome.org/news/201808/easyos-version-096-released.html

Feedback
Feedback is welcome, hosted on the Puppy Forum:

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

Tags: easy

Easy Beaver 0.9.3 released

September 19, 2018 — BarryK

NOTICE: Easy Beaver 0.9.3 was only released for two days before being replaced by 0.9.4, with important bug fixes. Please go here:

http://bkhome.org/news/201809/easy-beaver-094-released.html
 



Easy Beaver 0.9.2 was released in May 2018:

http://bkhome.org/news/201805/easy-beaver-092-released.html

Mostly, I have focused on the "Pyro" series of EasyOS, built with packages compiled entirely from source, using my fork of OpenEmbedded. However, also created some builds using Ubuntu DEBs -- there were some releases based on Ubuntu Xenial Xerus DEBs, and one using Bionic Beaver DEBS (0.9.2).

Have now built EasyOS x86_64 with Bionic Beaver 18.04.1 DEBs, codenamed "Easy Beaver", version 0.9.3. Download from here:

http://distro.ibiblio.org/easyos/amd64/releases/beaver/0.9.3/

Built with latest woofQ, so from that respect on a par with the Pyro series. Building with Ubuntu DEBs does result in a considerably bigger download file, however, weigh that against compatibility with the Ubuntu DEB respositories.
The kernel is 4.18.8, patched with aufs.

The download is an image that you can write to a USB stick, as described here:

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

Pyro
Regarding the Pyro series, this generally sees more activity from me. These are the latest releases:

0.9.6.3, x86_64, Raspberry Pi3:
http://bkhome.org/news/201809/easyos-0963-64-bit-on-raspberry-pi.html

0.9.6, x86 32-bit, PC:
http://bkhome.org/news/201808/easyos-32-bit-version-096.html

0.9.6, x86_64, PC:
http://bkhome.org/news/201808/easyos-version-096-released.html

Feedback
Feedback is welcome, hosted on the Puppy Forum:

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

Tags: easy

Linux kernel 4.18.8 compiled

September 17, 2018 — BarryK

I have compiled this kernel in EasyOS x86_64 "Easy Beaver" version 0.9.2.99, which is EasyOS built from Ubuntu Bionic Beaver (18.04.1 LTS) DEB packages. This is an in-house version, the next official release is likely to be 0.9.3.

The kernel source, patches and build scripts are here:

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

The intention is to use this kernel for the next official releases of Easy Beaver (EasyOS) and Quirky Beaver (Quirky). Might release them simultaneously.

Tags: easy, quirky

Locator map and satellite viewer

September 12, 2018 — BarryK

Puppy Forum member Geoffrey has created this great frontend for Google Maps:

http://murga-linux.com/puppy/viewtopic.php?t=97622&start=30

It only needs 'yad' and 'gtkdialog', so is a tiny PET package, and will work in all pups.

There was a problem with recent versions of librsvg, now fixed. The fixed PET, with a few small tweaks, is here (9.4KB):

http://distro.ibiblio.org/easyos/noarch/packages/pet/pet_packages-noarch/locator-3.7.2.pet

My tweaks are tiny: it was in the Utility menu, and looked out-of-place, so I moved it to Network -> utility, which is a tad better, but also the Network category in the menu is very under-populated.

I also changed the 'pet.specs' file to show the deps "+yad,+gtkdialog".

The dep 'yad' can be found in the PPM (Package Manager), if not already installed (type "which yad" in a terminal to find out).

Locator will be in next release of EasyOS and Quirky.

Tags: easy, quirky

EasyOS 0.9.6.3 64-bit on Raspberry Pi

September 05, 2018 — BarryK

Yep, EasyOS has been compiled for ARM aarch64 and is now running on the Raspberry Pi3. This is the "Pyro" series, compiled from source in 'oe-qky-src', my fork of OpenEmbedded (OE). The binary packages are then used in woofQ, to build EasyOS.

First, I built Quirky Linux in OE and created SD-cards for both RPI3 and Rock64 boards. Quirky is the same binary packages as used to build EasyOS, the difference is that Quirky is designed as a conventional "full" installation.

As the Rock64 has 4GB RAM and a USB3 socket, it is more suitable as a compiling platform. I compiled the kernel for the Pi -- I had to compile my own kernel, as it requires aufs patch, and aufs and squashfs drivers to be builtin.

I also compiled SeaMonkey, Scribus, and some other apps.

The aarch64 compile in OE is generic, without any particular optimization for video hardware acceleration. Therefore, we cannot expect stellar performance when playing videos.

Version 0.9.6.3 is the first build for the Pi, and has had cursory testing. I checked the main apps, and they are OK. Well, mostly. Going to youtube.com with SeaMonkey is not a good experience -- it can't play much more than 360p, and I locked the browser a few times.

Interesting to contrast with the Rock64, which played up to 720p, but it looked like some frames were getting dropped.

If anyone takes a liking to EasyOS on the Pi, you are welcome to have a go at tweaking it. Just click the "sfsget" icon at top of screen to download the "devx" file, which will turn Easy into a complete compiling environment. There is also a kernel source SFS file, if you want to compile a kernel module.

There are some features of EasyOS that are works-in-progress, especially EasyShare and EasyContainers. On the desktop, there is an icon labeled "desk", which is a complete desktop in a container -- this works, though playing with it on the Pi I did manage to crash the file manager.

Read more about EasyOS here:

http://bkhome.org/easy/

Also tagged posts in my blog:

http://bkhome.org/news/tag_easy.html

Download the image file for SD-card:

http://distro.ibiblio.org/easyos/aarch64/releases/pyro/0.9.6.3/

The image file is gzipped, which Windows apps such as Etch understand. Here is information how to write the file to a SD-card:

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

The file is only 641MB when uncompressed, and at first bootup will expand to fill the entire SD-card. Any card from 2GB up will work, though 8GB or more is recommended for ongoing usage.

If you want to directly download the SFS files, they are here:

http://distro.ibiblio.org/easyos/aarch64/packages/sfs/pyro/

Kernel source, patches and build scripts are here:

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

I intend to start a Forum thread for feedback, and post the link here. That's if anyone is interested!

Tags: easy

LittlevGL evaluation part 3

August 23, 2018 — BarryK

Progress! Parts 1 and 2 are here:

http://bkhome.org/news/201808/first-go-at-evaluating-littlevgl.html

http://bkhome.org/news/201808/tentative-first-step-framebuffer-with-littlevgl.html

I didn't know how to get the mouse working without X, so posted a question to the developer's site:

https://github.com/littlevgl/lvgl/issues/374

Now have a window with buttons, and a mouse! Furthermore, it is compiled statically with uClibc and the executable is 217KB -- bigger than it needs to be as have included more modules than actually used.

I used my fork of Landley's uClibc-based Aboriginal chrootable filesystem:

http://distro.ibiblio.org/easyos/project/aboriginal/

...follow the instructions, and you will end up with a filesystem folder that you can chroot into.

LittlevGL is the pc-simulator tarball, as explained in the earlier posts. But first, the exciting part... I excited from X and executed 'demo":

image

The "mouse pointer" is that little power-button symbol, don't yet know how to create a proper image. I can move the pointer over a button, click, and get output on the screen. Yay!

My changes to 'lv_conf.h':

#define LV_COLOR_DEPTH     24                     /* BKColor depth: 1/8/16/24*/

Changes to 'lv_drv_conf.h':

#define USE_FBDEV           1
...
#define USE_EVDEV 1

Here is my 'Makefile':

#
# Makefile
#
CC = gcc
#CFLAGS = -Wall -Wshadow -Wundef -Wmaybe-uninitialized
CFLAGS = -Wall -Wshadow -Wundef
CFLAGS += -O3 -g3 -I./
#LDFLAGS += -lSDL2 -lm
BIN = demo
VPATH =
LDFLAGS = -static

LVGL_DIR = ${shell pwd}

MAINSRC = main.c

#LIBRARIES
include ./lvgl/lv_core/lv_core.mk
include ./lvgl/lv_hal/lv_hal.mk
include ./lvgl/lv_objx/lv_objx.mk
include ./lvgl/lv_misc/lv_fonts/lv_fonts.mk
include ./lvgl/lv_misc/lv_misc.mk
include ./lvgl/lv_themes/lv_themes.mk
include ./lvgl/lv_draw/lv_draw.mk

#DRIVERS
include ./lv_drivers/display/display.mk
include ./lv_drivers/indev/indev.mk

OBJEXT ?= .o

AOBJS = $(ASRCS:.S=$(OBJEXT))
COBJS = $(CSRCS:.c=$(OBJEXT))

MAINOBJ = $(MAINSRC:.c=$(OBJEXT))

SRCS = $(ASRCS) $(CSRCS) $(MAINSRC)
OBJS = $(AOBJS) $(COBJS)

## MAINOBJ -> OBJFILES

all: clean default

%.o: %.c
@$(CC) $(CFLAGS) -c $< -o $@
@echo "CC $<"

default: $(AOBJS) $(COBJS) $(MAINOBJ)
$(CC) -o $(BIN) $(MAINOBJ) $(AOBJS) $(COBJS) $(LDFLAGS)

clean:
rm -f $(BIN) $(AOBJS) $(COBJS) $(MAINOBJ)
Here is my 'main.c':
#include "lvgl/lvgl.h"
#include "lv_drivers/display/fbdev.h"
#include "lv_drivers/indev/evdev.h"
#include <unistd.h>
#include <stdio.h>

//Add a display for the LittlevGL using the frame buffer driver
void register_display(void)
{
lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
disp_drv.disp_flush = fbdev_flush; //It flushes the internal graphical buffer to the frame buffer
lv_disp_drv_register(&disp_drv);
}

static lv_res_t btn_click_action(lv_obj_t * btn)
{
uint8_t id = lv_obj_get_free_num(btn);

printf("Button %d is released\n", id);

/* The button is released.
* Make something here */

return LV_RES_OK; /*Return OK if the button is not deleted*/
}

int main(void)
{
/*LittlevGL init*/
lv_init();

/*Linux frame buffer device init*/
fbdev_init();

// get a display
register_display();

// enable event input
evdev_init();

// get an input device like mouse
lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read = evdev_read;
// lv_indev_drv_register(&indev_drv);

lv_indev_t * mouse_indev = lv_indev_drv_register(&indev_drv);

lv_obj_t * cursor_obj = lv_img_create(lv_scr_act(), NULL); /*Create an image for the cursor */
lv_img_set_src(cursor_obj, SYMBOL_POWER); /*For simlicity add a built in symbol not an image*/
lv_indev_set_cursor(mouse_indev, cursor_obj); /* connect the object to the driver*/


/*Create a title label*/
lv_obj_t * label = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label, "Default buttons");
lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 0, 5);

/*Create a normal button*/
lv_obj_t * btn1 = lv_btn_create(lv_scr_act(), NULL);
lv_cont_set_fit(btn1, true, true); /*Enable resizing horizontally and vertically*/
lv_obj_align(btn1, label, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
lv_obj_set_free_num(btn1, 1); /*Set a unique number for the button*/
lv_btn_set_action(btn1, LV_BTN_ACTION_CLICK, btn_click_action);

/*Add a label to the button*/
label = lv_label_create(btn1, NULL);
lv_label_set_text(label, "Normal");

/*Copy the button and set toggled state. (The release action is copied too)*/
lv_obj_t * btn2 = lv_btn_create(lv_scr_act(), btn1);
lv_obj_align(btn2, btn1, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
lv_btn_set_state(btn2, LV_BTN_STATE_TGL_REL); /*Set toggled state*/
lv_obj_set_free_num(btn2, 2); /*Set a unique number for the button*/

/*Add a label to the toggled button*/
label = lv_label_create(btn2, NULL);
lv_label_set_text(label, "Toggled");

/*Copy the button and set inactive state.*/
lv_obj_t * btn3 = lv_btn_create(lv_scr_act(), btn1);
lv_obj_align(btn3, btn2, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
lv_btn_set_state(btn3, LV_BTN_STATE_INA); /*Set inactive state*/
lv_obj_set_free_num(btn3, 3); /*Set a unique number for the button*/

/*Add a label to the inactive button*/
label = lv_label_create(btn3, NULL);
lv_label_set_text(label, "Inactive");

/*Handle LitlevGL tasks (tickless mode)*/
while(1)
{
lv_tick_inc(5);
lv_task_handler();
usleep(5000);
}

return 0;
}
What we have now is a great jumping-off point for creating useful apps.

Tags: linux, easy

EasyOS 32-bit version 0.9.6

August 22, 2018 — BarryK

A couple of people have recently asked me whether I will be releasing a 32-bit EasyOS. I wasn't going to, as have been attempting to be more focused in the development. However, a 32-bit, i686, build does not take much extra effort, a couple of days.

Most of the packages are compiled automatically in my fork of OpenEmbedded. Some, such as SeaMonkey and the kernel, I still have to compile manually. Have not ported all the Qt5 apps into OE either.

I have left Qt5 and the Qt5-apps out of this build. The two main ones are Scribus desktop publishing and Symhytum simple database, both of which are in the 64-bit 0.9.6 release.

If there are any peculiarities to it, specific to being 32-bit, I can't give that much attention. I just did a quick run through the apps and utilities, they seem to be functional. I get a nice desktop, looks good. Still on the "green" theme.

Bootup is not UEFI-aware, it is for legacy booting, intended for ye olde computers prior to 2012. Though, with 4.14.65 kernel, should boot up on recent PCs. 4GB RAM limit!

Though, it might be 32-bit UEFI-aware, if you have one of those.

So, if you want a i686 EasyOS, here it is:

http://distro.ibiblio.org/easyos/x86/releases/pyro/0.9.6/

There are some release notes at the 64-bit 0.9.6 announcement:

http://bkhome.org/news/201808/easyos-version-096-released.html

Forum feedback will be in the same thread:

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

Tags: easy