EasyOS 2.4.1 amd64

Since the last seven years I started to work with Puppy Linuxes I’ve met and successfully solved many challenge around them. I started to like Puppy Linux because it has frugal mode which make it capable to use from ntfs partition and works with savefile so you can make it absolutely portable, filesystem independently. To use it system rescue and for „emergency OS” even from a fat32 PenDrive.

I learned from my community mates also to write gtkdialog and shell scripts to get the most of Puppy Linux. Puppy is still maintained by community support from all around the world, but in my opinion it is getting harder to do. I mean the common Linux problem around the dependencies’ coherence, libc mismatch and so other.

Let me talking about EasyOS now.

We can read on distrowatch: „EasyOS is an experimental Linux distribution which uses many of the technologies and package formats pioneered by Puppy Linux.”

The latest current version of EasyOS now reached the level where I now can say it is ready to work with. Every development needs time to mature.

The current release of EasyOS is now positively surprised me. The only disadvantage of EasyOS of it’s advantage on the same way: it works (frugally) only with ext filesystem like savefolder as working directory on it. I declare this because we have to edit initrd to get it work at all which exclusively needs a Linux system and an ext filesystem to do.

So the good times went away, when you downloaded an iso image file and extracted it to a PenDrive configured by syslinux and or Grub4Dos on that, under another operating system different than Linux.

Without a Linux system you can not get work with EasyOS. In contrast the Puppy iso could be written from different OS without the necessity to have Linux or ext filesystem, the only thing you need an iso image writer application which is more user friendly I think.

Aam yes I prefer the option to be kept to choose between savefile or save folder, my only argument in favor of this is the portability and filesystem independence by this feature.

  1. As described on frugal manual install I did it, everything works well except the vga=792 I had to fit it to my hardware: vesa=322, but it started to boot: 1 point.
  2. It asks for keyboard layout, I’ve choose 23 hu, but it set itself 22 hu101.
  3. After that asks for password for system and for working dir encryption. The working direcotry is on the same ext4 partition like easy bootdir only in a different folder on it, a message appears like this: the working directory can not be encrypted only system password set.
  4. Finally the system booted up with recognized vga driver and direct rendering yes: 1 point.
  5. I’ve successfully set up hidden wifi (static ip not tested at this time), worked: 1 point .
  6. I’ve successfully set up firefox manually with libcorrection script to launch from default application chooser. It has sound with inbuilt apulse, works great: 1 point .
  7. I could ran my gtkdialog player scripts without major problems, one was that there is no defaultterminal in the usr local bin. After I’ve set it up everything could work: 1 point.
  8. It has Apps Shortcut on the deskpot which is similar to the GSM (GTK start menu) and you can set up 8 custom app launch option in it: 1 point.
  9. I could install LibreOffice with Hungarian language support and with its all dependencies: 1 point
  10. I could install via petget also the vlc first, it has been installed successfully only a qt5 and a vlc dependency missing, but it can not be found on repositories at all. Anyway after I set up VLC to use ALSA default, it started to work without flaws. : 1 point.
  11. I could successfully install via petget too the simplescreenrecorder, set it up to ALSA, worked: 1 point.
  12. I've enabled glipper and it kept enabled: 1 point.

So now it is ready to use for me. If I would like to install later other programs too, I probably can do it via petget from debian buster repository. Overall test rating: 10/12 points : excellent.

Test machine was an AMD M320 ASUS K51AE with 4GB DDR2 800MHz.

Screenshot1 Screenshot2 Screenshot3 Screenshot4 Screenshot1 Screenshot

My Grub4Dos entries were:

select Grub4Dos entries

title EasyOS frugal install (sda1/easy)
find --set-root uuid () 00000000-0000-0000-0000-000000000000
kernel /easy/vmlinuz rw vesa=322
initrd /easy/initrd

title EasyOS commandline, no X
find --set-root uuid () 00000000-0000-0000-0000-000000000000
kernel /easy/vmlinuz rw vesa=322 qfix=nox
initrd /easy/initrd

title EasyOS frugal install (sda1/easy)\n bak Rollback to last saved session
find --set-root uuid () 00000000-0000-0000-0000-000000000000
kernel /easy/vmlinuz rw vesa=322 qfix=bak
initrd /easy/initrd

title EasyOS frugal install (sda1/easy)\n new Rollback to pristine first-bootup
find --set-root uuid () 00000000-0000-0000-0000-000000000000
kernel /easy/vmlinuz rw vesa=322 qfix=new
initrd /easy/initrd

title EasyOS frugal install (sda1/easy)\n fsck Filesystem check of working-partition
find --set-root uuid () 00000000-0000-0000-0000-000000000000
kernel /easy/vmlinuz rw vesa=322 qfix=fsck
initrd /easy/initrd

bbswitch and /etc/init.d/rc.bumble

I wrote to murga forum about the problem.

The following solution only for testing!

The original script from a search result pointing to stackexchange.

Placing the rc.bumble file in /etc/init.d


select rc.bumble

# chkconfig: 2345 20 80
# description: Description comes here....

# Source function library.
# . /etc/init.d/functions

start() {
    insmod /root/bbswitch.ko load_state=1 unload_state=0 &

stop() {
    rmmod bbswitch &

case "$1" in
       # code to check status of app comes here
       # example: status program_name
       echo "Usage: $0 {start|stop|status|restart}"

exit 0

This for bbswitch.ko when you have it in /root in puppy linux. And you want to load it at boot process before X starts.

gtkdialog-0.8.3 on Ubuntu 20.04

There is a way to install gtkdialog on Ubuntu 20.04 for exmple to use my Online Stream Recorder script which currently presented here. It was set up Hungarian but later I will make an English version.

After Clean Install of Ubuntu 20.04
Make internet connection.

from Terminal:

sudo apt install geany
sudo apt install ffmpeg
sudo apt install mpv
sudo apt-get install gtk+2.0

Geany for editing codes and texts, mpv for playing streams under recording, ffmpeg for recording streams and gtk+2.0 to compile gtkdialog.

Download gtkdialog source version:0.8.3 from google.

Extract in a folder at home/username

open the extracted folder into Terminal:



sudo ./configure

sudo make

sudo make install

Keep this folder for later:
sudo make uninstall also from here, if you would like to uninstall later.

Now if everything went well you can now set the filemanager behavior to run text based executables to be able to run. Check script's permission to executable then double click on it. It should be start and work correctly.

alsa trick for crackling microphone

Crackling microphone solution RS880 AMD and other cases:

in puppy linux:

insert at the bottom of /etc/modprobe.d/alsa-base.conf:

select parameter
options snd-hda-intel model=MODEL position_fix=3

and reboot with savefile in frugal mode.

source: Link



This found originally here. A Hungarian video about this:

From the re-thought solution I made an sfs.

Placing the 90-sonidos_usb.rules file in /etc/udev/rules.d


select 90-sonidos_usb.rules

DRIVER=="usb", ACTION=="add", RUN+="/usr/bin/aplay /usr/share/sounds/inserted.wav"

SUBSYSTEM=="usb", ACTION=="remove", RUN+="/usr/bin/aplay /usr/share/sounds/removed.wav"

Puppy Linux hiawatha webserver + stunnel

/etc/hiawatha/hiawatha.conf to hiawatha_bak.conf first:

hiawatha config





hiawatha terminal 



This is a great thing! sample configuration:

select sample config

; Sample stunnel configuration file for Unix by Michal Trojnara 1998-2019
; Some options used here may be inadequate for your particular configuration
; This sample file does *not* represent stunnel.conf defaults
; Please consult the manual for detailed description of available options

; **************************************************************************
; * Global options                                                         *
; **************************************************************************

; It is recommended to drop root privileges if stunnel is started by root
;chroot = /usr/local/var/run/stunnel/
;setuid = stunnel
;setgid = stunnel
debug = 7
; PID file is created inside the chroot jail (if enabled)
pid = /usr/local/var/run/stunnel/

; Debugging stuff (may be useful for troubleshooting)
foreground = yes
debug = info
output = stunnel.log

; Enable FIPS 140-2 mode if needed for compliance
fips = no

; The pkcs11 engine allows for authentication with cryptographic
; keys isolated in a hardware or software token
; MODULE_PATH specifies the path to the pkcs11 module shared library,
; e.g. softhsm2.dll or
; Each section using this feature also needs the "engineId = pkcs11" option
;engine = pkcs11
;engineCtrl = MODULE_PATH:/usr/lib/softhsm/
;engineCtrl = PIN:1234

; **************************************************************************
; * Service defaults may also be specified in individual service sections  *
; **************************************************************************

; Enable support for the insecure SSLv3 protocol
;options = -NO_SSLv3

; These options provide additional security at some performance degradation
;options = SINGLE_ECDH_USE
;options = SINGLE_DH_USE

; **************************************************************************
; * Include all configuration file fragments from the specified folder     *
; **************************************************************************

;include = /usr/local/etc/stunnel/conf.d

; **************************************************************************
; * Service definitions (remove all services for inetd mode)               *
; **************************************************************************

; ***************************************** Example TLS client mode services

; The following examples use /etc/ssl/certs, which is the common location
; of a hashed directory containing trusted CA certificates.  This is not
; a hardcoded path of the stunnel package, as it is not related to the
; stunnel configuration in /usr/local/etc/stunnel/.

;client = yes
;accept =
;connect =
;verifyChain = yes
;CApath = /etc/ssl/certs
;checkHost =
;OCSPaia = yes

;client = yes
;accept =
;connect =
;verifyChain = yes
;CApath = /etc/ssl/certs
;checkHost =
;OCSPaia = yes

;client = yes
;accept =
;connect =
;verifyChain = yes
;CApath = /etc/ssl/certs
;checkHost =
;OCSPaia = yes

; Encrypted HTTP proxy authenticated with a client certificate
; located in a cryptographic token
;client = yes
;accept =
;connect =
;engineId = pkcs11
;cert = pkcs11:token=MyToken;object=MyCert
;key = pkcs11:token=MyToken;object=MyKey

; ***************************************** Example TLS server mode services

;accept  = 995
;connect = 110
;cert = /usr/local/etc/stunnel/stunnel.pem

;accept  = 993
;connect = 143
;cert = /usr/local/etc/stunnel/stunnel.pem

; Either only expose this service to trusted networks, or require
; authentication when relaying emails originated from loopback.
; Otherwise the following configuration creates an open relay.
;accept  = 465
;connect = 25
;cert = /usr/local/etc/stunnel/stunnel.pem

; TLS front-end to a web server
client = no
accept  = 8443
connect =
cert = /root/cert.pem
; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SChannel
; Microsoft implementations do not use TLS close-notify alert and thus they
; are vulnerable to truncation attacks
TIMEOUTclose = 0

; Remote shell protected with PSK-authenticated TLS
; Create "/usr/local/etc/stunnel/secrets.txt" containing IDENTITY:KEY pairs
;accept = 1337
;exec = /bin/sh
;execArgs = sh -i
;PSKsecrets = /usr/local/etc/stunnel/secrets.txt

; Non-standard MySQL-over-TLS encapsulation connecting the Unix socket
;cert = /usr/local/etc/stunnel/stunnel.pem
;accept = 3307
;connect = /run/mysqld/mysqld.sock

; vim:ft=dosini

First I created the directories, then commented out the required lines. chmod 600 cert.pem and there is a control script, which restart it if it suddenly quit:

select script


while true

if [ "$(pidof stunnel)" == "" ];then
echo "stunnel restarted!!!!!! NEMFUT"
sleep 2
lxterminal -e stunnel

sleep 5
echo "ciklus lefutott FUT"

And after:

iftop -i eth0 -P

Planned antenna test

I found here a really well detailed solution for installing a Rybakov 806 kind short wave antenna so in the future I plan to test on that described modes.

Some ffmpeg solution

Convert image and sound to video and with copy audio:

  ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v mpeg4 -c:a aac -b:a 192k -pix_fmt yuv420p -shortest out.mp4

ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v mpeg4 -b:v 2M -c:a aac -b:a 192k -pix_fmt yuv420p -shortest -vf scale=852:480 out.mp4

ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v mpeg4 -b:v 2M -c:a copy -pix_fmt yuv420p -shortest out.mp4

split them:

ffmpeg -v quiet -y -i out.mp4 -vcodec copy -acodec copy -ss 00:00:00 -t 00:08:46 -sn split1.mp4

ffmpeg -v quiet -y -i out.mp4 -vcodec copy -acodec copy -ss 00:08:46 -t 00:17:32 -sn split2.mp4

Another screen recording command with ffmpeg:

ffmpeg -s 1366x768 -framerate 30 -f x11grab -i :0.0+0,0 -f alsa -sample_rate 44k -channels 2 -i hw:0 -ac 1 -vcodec mpeg4 -vb 1500k -acodec aac -ab 128k out.avi

USB boot HDD Linux

ext2 /boot - sda1 (Primary)
ext4 / - sda5 (Extended Logical)
swap - sda6 (Extended Logical)


TS3 server on LX7 Puppy Linux

  1. Download the x86 compressed file from the 32-bit server from the TeamSpeak site.
  2. Expand, right click >> expand here in PCmanFM file manager.
  3. Enter the folder to create the .ts3server_license_accepted file, enter: license_accepted=1 and save
  4. Edit the file to start the server. Add after/between one of the first lines: export SSL_CERT_DIR=/usr/share/ca-certificates
  5. If you can't start the shell file successfully from a terminal (./ start), stop it (./ stop) and then install the ca-certificates package from Puppy Package Manager by checking for dependencies.
  6. In principle, according to the previous points, we should already see our admin token and the server is running. Connect to it and then configure yourself in the client by giving the token to admin.





Original project at: 

Github: Link

Forum thread and Download: Link

BionicPup-8_32_hu - RT

BionicPup-8_32_hu_Pmoon_K4.6.3_Pae.iso --> k4.14.63-rt37

(SUKK project page.)
here kernel. Here kernel source. Replacing kernel:


renaming and replacing vmlinuz and zdrv.




title 1T1mx_i915\n (sda1/data) mx_frugal
root (hd0,0)
kernel /data/mx_frugal/vmlinuz bdir=/data/mx_frugal persist_static i915.modeset=1 buuid=000000000000000
initrd /data/mx_frugal/initrd.gz

title 0mx_nomodeset-vesa\n (sda1/data) mx_frugal
root (hd0,0)
kernel /data/mx_frugal/vmlinuz bdir=/data/mx_frugal persist_static nomodeset xorg=vesa,1280x800 buuid=0000000000000000
initrd /data/mx_frugal/initrd.gz


xcalib(64) Linux and uefi boot

/root/Startup : 


sleep 9

/mnt/home/data/SLAcko/xcalib64 -c && sleep 2 && /mnt/home/data/SLAcko/xcalib64 -d :0 -s 0 -co 90 -a

xcalib Download 

Run from terminal without paramters to get help.

UEFI grub.cfg grub4dos fat32 pendrive:

set color_normal=red/black
set color_highlight=yellow/black

menuentry "BioPen_x32kernel_Cruzer16" {
set root=(hd0,msdos1)

linux /data/BioPen/vmlinuz psubdir=data/BioPen

initrd /data/BioPen/initrd.gz

menuentry "BioPen_x32kernel_Cruzer16_NOx" {
set root=(hd0,msdos1)

linux /data/BioPen/vmlinuz psubdir=data/BioPen pfix=nox

initrd /data/BioPen/initrd.gz


menuentry "BioPen_x32kernel_Cruzer16_RAM" {
set root=(hd0,msdos1)

linux /data/BioPen/vmlinuz psubdir=data/BioPen pfix=ram

initrd /data/BioPen/initrd.gz


menuentry "BioPen_x32kernel_Cruzer16_RAM_NOx" {
set root=(hd0,msdos1)

linux /data/BioPen/vmlinuz psubdir=data/BioPen pfix=ram,nox

initrd /data/BioPen/initrd.gz


menuentry "nos55-pup_x32kernel_Cruzer16" {
set root=(hd0,msdos1)

linux /data/nos55-pup/vmlinuz psubdir=data/nos55-pup

initrd /data/nos55-pup/initrd.gz

menuentry "nos55-pup_x32kernel_Cruzer16_NOx" {
set root=(hd0,msdos1)

linux /data/nos55-pup/vmlinuz psubdir=data/nos55-pup pfix=nox

initrd /data/nos55-pup/initrd.gz


menuentry "nos55-pup_x32kernel_Cruzer16_RAM" {

set root=(hd0,msdos1)

linux /data/nos55-pup/vmlinuz psubdir=data/nos55-pup pfix=ram

initrd /data/nos55-pup/initrd.gz


menuentry "nos55-pup_x32kernel_Cruzer16_RAM_NOx" {
set root=(hd0,msdos1)

linux /data/nos55-pup/vmlinuz psubdir=data/nos55-pup pfix=ram,nox

initrd /data/nos55-pup/initrd.gz


menuentry "OFF" {
menuentry "REBOOT" {

Linux kind mounts


sudo mount -t ext3 /path/to/file.3fs /media/3fs


sudo mount -t squashfs /path/to/file.sfs /media/sfs


sudo mount -o loop /path/to/file.iso /media/iso


sudo mount -o iocharset=utf8 -t cifs // /media/folder -o rw,user=Username,password=pass_sword,vers=1.0

sudo mount -o iocharset=utf8 -t cifs // /media/folder -o rw,guest,vers=1.0


Only audio stream for older vlc


cvlc -vvv alsa://hw:0,0 --sout '#transcode{acodec=mp3,ab=32,channels=2,samplerate=44100}:http{mux=mp3,dst=:8080/mp3}'


Recording screen from Terminal

ffmpeg -s 1280x800 -framerate 30 -f x11grab -i :0.0+0,0 -f alsa -sample_rate 44k -channels 2 -i hw:0 -ac 1 -vcodec libx264 -preset ultrafast -vb 1500k -acodec libmp3lame -ab 128k /mnt/sda9/media/video/001.avi

To stop:

Ctrl + c