EasyOS version 2.3.2, June 22, 2020

For talk and support relating specifically to Puppy derivatives
Message
Author
lp-dolittle
Posts: 156
Joined: Mon 25 Apr 2016, 17:35

EasyOs 8.0.1

#1396 Post by lp-dolittle »

@ Barry,

maybe, the following observation is of interest to you after your success in starting a Xorg GUI in initrd:

Running totally in RAM EasyOs 8.0.1 or Quirky Xerus64-8.6, I noticed some interesting differences, as for the keyboard layout settings.

(1) In EasyOS, keyboard layout settings via the setxkbmap command in 'Sakura' always need to be refreshed after every restart of the X sever.
In contrast, running Quirky Xerus64-8.6, the same settings mostly seem to survive X server restarts but not on every machine. Comparing the hardware-info of such laptops and pc's, I so far was not able to make out which hardware component might cause these different reactions

(2) When I plug in a usb-keyboard into laptops whose (internal) keyboard layout either needs or does not need a refresh after X server restarts, sakura responds equally to both input devices as long as the external keyboard is already attached during the setting.
The situation is different if I first set the wanted keyboard layout via setxkbmap and plug in the usb-keyboard, thereafter. On laptops whose keyboard layout settings need to be refreshed after X server restarts, I now have the option to toggle in characters which belong to different layouts (in my case 'Swiss German' according to the laptop keyboard or 'US American' according to the usb-keyboard) into one and the same sakura window!! On laptops whose keyboard layout survives X server restarts (running Quirky Xerus) the internal and the external keyboard commands always are responded equally by sakura even if the usb-keyboard is plugged in only after the specific setxkbmap command.

kind regards

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#1397 Post by rufwoof »

Any chance of having lz4 support being added to the default EasyOS kernel? So a easy sfs compressed using lz4 is mountable.

I have my frugal HDD installed version using lzo level 1 compression (... sfs/easyos/oe/pyro/easy_1.0_amd64.sfs) and its real quick. lz4 can further improve upon that.

I've set it not to copy the easy sfs to ram on bootup as well, so starts up quicker. I prefer it that way as given a slower boot (easy sfs loaded into ram), faster first time run of programs, versus faster boot/slower first time run of a program (thereafter often stays cached so second time runs are comparable in speed to having had easy sfs copied to ram), the latter uses less ram in total as the former loads everything into ram whereas the latter only loads what is actually used (for instance why load gparted into ram if you don't do any disk partitioning/changes during a session ... wasteful).
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#1398 Post by rufwoof »

Some weeks back, someone asked about EasyOS and cgroup's so that limits could be set for a Easy Container for swap, memory ...etc.

I've been toying around in EasyOS with cgroups and so far these are my notes/tests that I've run so far, with a few of adding cgroup controls into my own frugal EasyOS

Code: Select all

# Check if cgroups are active

ls /sys/fs/cgroup/

# If (likely) no return is seen, then cgroup needs to be created/mounted ...

# Prepare the cgroups
mount -t tmpfs none /sys/fs/cgroup
mkdir /sys/fs/cgroup/memory
mount -t cgroup none /sys/fs/cgroup/memory -o memory

# Make a new 'easy' cgroup
mkdir /sys/fs/cgroup/memory/easy

# now we should be able to ls /sys/fs/cgroup/memory/easy and see ....

ls /sys/fs/cgroup/memory/easy
blkio.io_merged
blkio.io_merged_recursive
blkio.io_queued
blkio.io_queued_recursive
blkio.io_service_bytes
blkio.io_service_bytes_recursive
blkio.io_serviced
blkio.io_serviced_recursive
blkio.io_service_time
blkio.io_service_time_recursive
blkio.io_wait_time
blkio.io_wait_time_recursive
blkio.leaf_weight
blkio.leaf_weight_device
blkio.reset_stats
blkio.sectors
blkio.sectors_recursive
blkio.time
blkio.time_recursive
blkio.weight
blkio.weight_device
cgroup.clone_children
cgroup.event_control
cgroup.procs
cgroup.sane_behavior
cpuacct.stat
cpuacct.usage
cpuacct.usage_all
cpuacct.usage_percpu
cpuacct.usage_percpu_sys
cpuacct.usage_percpu_user
cpuacct.usage_sys
cpuacct.usage_user
cpu.shares
devices.allow
devices.deny
devices.list
memory.failcnt
memory.force_empty
memory.kmem.failcnt
memory.kmem.limit_in_bytes
memory.kmem.max_usage_in_bytes
memory.kmem.slabinfo
memory.kmem.tcp.failcnt
memory.kmem.tcp.limit_in_bytes
memory.kmem.tcp.max_usage_in_bytes
memory.kmem.tcp.usage_in_bytes
memory.kmem.usage_in_bytes
memory.limit_in_bytes
memory.max_usage_in_bytes
memory.move_charge_at_immigrate
memory.oom_control
memory.pressure_level
memory.soft_limit_in_bytes
memory.stat
memory.swappiness
memory.usage_in_bytes
memory.use_hierarchy
notify_on_release
release_agent
tasks

# Set the amount of memory which tasks in the easy cgroup can use :
echo 100000000 > /sys/fs/cgroup/memory/easy/memory.limit_in_bytes
# and set the cgroup to also have swap turned off ... 
# See what currently is allocated swap

cat /sys/fs/cgroup/memory/easy/memory.swappiness
# mine returns 60

# and set it to zero
echo "0" > /sys/fs/cgroup/memory/easy/memory.swappiness
# ... or whatever limits/things you want to apply to the cgroup task(s)

# start a new shell, so we can later exit out of it 
sh

# Move the current (new) shell process into the easy cgroup
# so that all other processes started in this shell are automatically also
# moved into the easy cgroup:

echo $$ > /sys/fs/cgroup/memory/easy/tasks

### THIS IS WHERE WE WOULD START THE EASY CONTAINER I.E. 
### AS A MEMBER OF THE EASY CGROUP (THAT HAS WHATEVER
### LIMITS WE SET BEING APPLIED).

# and see what we're permitted for swap now
cat /sys/fs/cgroup/memory/easy/memory.swappiness
# should return 0

# We set a 100,000,000 byte memory limit above, so create a python script
# that eats memory (I called mine eat-mem) ...

f = open("/dev/urandom", "r")
data = ""

i=0
while True:
    data += f.read(10000000) # 10mb
    i += 1
    print "%dmb" % (i*10,)

# no need to make it executable as
# we run that with python ./eat-mem
# ... and you should see ...
10mb
20mb
30mb
40mb
50mb
60mb
70mb
80mb
Killed

# cgroups can’t be removed until every processes in the tasks file has exited or
# been reassigned to another group. 
# Exit the shell to exit the easy cgroup
exit

# now back at the original shell level
cat /sys/fs/cgroup/memory.swappiness
#should see 60 (or whatever swap was previously available
# also if you now run the eat-mem script, it should get a lot further
# (I ctrl-c'd out of it once it had clearly passed 100MB).

# DON'T rm -rf the /sys/fs/cgroup/memory/easy FOLDER
# ... just use rmdir instead.
Note that in the above I disabled swap, as otherwise even with a memory limit it could start using swap to appear to have access to more than 100MB of memory.

Of course, you can also set other things such as attaching the easy containers cgroup to a particular core(s)
cat /sys/fs/cgroup/cpuset/cpuset.cpus
0-3

cpuset.mems="0"
cpuset.cpus="0-1"

... etc
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#1399 Post by rufwoof »

This is what my ec-chroot-easy now looks like (restricts easy container maximum memory to 500MB (approx), and disables the easy container access to swap

Code: Select all

#!/bin/sh

# if not already set up a easy cgroup then ...
TST=`mount | grep "/sys/fs/cgroup/memory"`
if [ -z "$TST" ]; then

	# enable cgroup's
	mount -t tmpfs none /sys/fs/cgroup
	mkdir /sys/fs/cgroup/memory
	mount -t cgroup none /sys/fs/cgroup/memory -o memory

	# create a easy cgroup
	mkdir /sys/fs/cgroup/memory/easy

	# limit memory and disable swap to easy cgroup
	echo 500000000 > /sys/fs/cgroup/memory/easy/memory.limit_in_bytes
	echo "0" > /sys/fs/cgroup/memory/easy/memory.swappiness

fi

# attach this pid to the easy cgroup before running the easy container
echo $$ > /sys/fs/cgroup/memory/easy/tasks
empty -f ec-chroot easy
Running a eat-mem script within the container now gets to 440MB shown, stalls for a bit, then shows 'Killed'. So now a runaway program or hack attempt inside the easy container doesn't lockup the main system.

EDIT: After some playing around and setting cgroup limits etc. I decided to leave the code in place (for reference), but commented out. The easy container all too easily became 'jerky' in actual use - most likely due to my (poor) choices of tweaks/settings, whilst the standard (commented out code) ... is just sweet/great, works (very) well.
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#1400 Post by rufwoof »

I created a Debian bootstrap ... so minimal debian (cli). 120MB .gz filesize. Official Debian (main repo's only).

dir2sfs'd that folder to form a EasyPack (sfs), ensuring that the content was all in a sub-directory (otherwise when you load it, it fails (system crashes). Booting with that sfs loaded and I've set it so it appears as /debian-stretch.

Adding a Xephyr :1 (resizeable window) I'm chrooting into that using pflask and it works really well. I've added (Debian apt-get) xorg, mpv, firefox-esr and it all runs as well as the main Easy system, no lag apparent etc. ... at least when using cwm for the window manager (if I use jwm it does seem to conflict in some areas with the main EasyOS's jwm).

Currently I've set the chroot to have all capabilities. But I guess when I run firefox-esr within that I should first be dropping the chroot capability as part of firefox-esr invocation.

Great how EasyOS acts as a hypervisor - such as being able to drag/drop files to/from EasyOS into the debian chroot. I find that having the debian running on desktop 2 serves as a visual reminder of which OS your actually using. Also nice having access to fully patched up choices (run debians apt-get update;apt-get upgrade), along with the full debian repo.
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

zygo
Posts: 243
Joined: Sat 08 Apr 2006, 20:15
Location: UK

Hiawatha with HTML directory index MY ERROR IT WORKS

#1401 Post by zygo »

Barry,

Could you compile Hiawatha with xslt support. This would allow it to produce the directory index in HTML. Then it would be compatible with sfsget.

Edit: Sorry: HTML directory index works but no sfs found by sfsget.

Thanks
Last edited by zygo on Fri 15 Mar 2019, 05:13, edited 1 time in total.

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#1402 Post by rufwoof »

I dropped unsquashfs into the initrd (used the main sfs version and copied over the ldd's for that into initrd's /lib folder - expands initrd to around 8.3MB (non compressed)).

Testing main session snapshots using lzo level 1, lz4 and lz4 high compression ... had respective compressed file sizes of 376, 435, 368 MB (noted purely for relative comparison).

I've tweaked the /sbin/rollback script within initrd so that when doing a rollback of the main session, instead of rm -rf of the existing .session it just mv's that to a .delme version and kicks off a rm -rf of that .delme folder in the background ... so the boot is less held up wating to wade through 1GB or whatever of deleting existing .session folder content

I've also replaced the mount and cp existing method of roll back (.session) with a unsquashfs.

Overall considering time to create a snapshot (choice of compression) and time to rollback a session within the initrd ... I've settled for a choice of -comp lzo -Xcompression-level 1 for snapshots created within easy-version-control. Takes around 30 seconds with the unsquashfs progress bar being shown when initrd rolls back that 376MB snapshot sfs on my (11 year old HDD frugal install) setup.

That's for a debian bootstrapped save folder content, with firefox-esr/cwm installed. I've noticed that with use (firefox cache) the save folder (.session) can grow to 750MB+ compressed (lzo level 1) size quite easily (and potentially considerably more if other Debian packages were installed/used (Openshot, Libre, Audacity, Gimp ..etc.), so the standard/as-is EasyOS method of rm -rf and then mount/cp the .session when using considerably slower gzip ... could/will lead to considerably slow reboots when rolling back for some. lzo level 1 based compression/decompression seems to me to be the better choice for reducing down those delays, at least for HDD frugal based EasyOS setups. Especially if Iike me you rollback often (under Puppy things changes are stored in (finite) ram and you can set it to only (optionally) save at the end of a session, so if you have a clean version you might just shutdown without saving, so the next reboot is also clean. With EasyOS the approach is different (changes are stored on disk - so only restricted by available disk space), set things up, and create a snapshot (sfs) of that clean version, use it, then roll back (unsquashfs) the clean version back into the .session (save) area. So you end up tending to rollback at each/every reboot in order to achieve repeated clean boots (as opposed to wading around in muddy boots :)))
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#1403 Post by BarryK »

Guys, lots of posts for me to read back on sometime. For now, getting the work done so far out as a release, version 1.0.11 has arrived:

http://bkhome.org/news/201903/easyos-x8 ... eased.html

This is a very interesting release. Not much has changed after bootup, all the new stuff happens at early bootup.
[url]https://bkhome.org/news/[/url]

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#1404 Post by rufwoof »

I'm still on 1.0. ec-chroot within that doesn't cater for already having another Xephyr process running (i.e. if using Xephyr for something else). That may have been fixed in a later release however ???

I'm running both the easy container (on :1) and a pure debian (on :2), so a workaround is to just ensure I start the easy container first.

A nice 'feature' is that provided you leave one window open in each of the main, easy and debian displays, then alt-tab flips you between them.

Screenshot is with debian firefox-esr running on :2, easy container with firefox quantum running on :1 and the main session as per the screenshot, running top. Both the separate firefox sessions are playing youtubes ... but the sound is only heard from one (whichever grabs /dev/snd first).
Attachments
capture17226.png
(149.55 KiB) Downloaded 695 times
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

Sage
Posts: 5536
Joined: Tue 04 Oct 2005, 08:34
Location: GB

#1405 Post by Sage »

1.0.11: Works well. Some duplication setting locale lang+k/b at boot up and again in setup panel? Regret the logic of direct frugal install to HD doesn't help in respect of .iso on optical media when using for diagnosis, rectification, demonstration, etc.

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#1406 Post by BarryK »

Already a couple of bugs found in 1.0.11:

http://bkhome.org/news/201903/bugs-in-easyos-1011.html

...note item-2, upgrading an existing installation, requires a manual fix.
[url]https://bkhome.org/news/[/url]

blgs
Posts: 34
Joined: Fri 07 Dec 2018, 17:37

#1407 Post by blgs »

manual fix fix for easyOS 1.0.11 wasn' the correct solution for me. Switched back to the previous version (1.0.8),

Waiting for the permanent fix before updating again.

User avatar
Billtoo
Posts: 3720
Joined: Tue 07 Apr 2009, 13:47
Location: Ontario Canada

EasyOS 1.0.11, March 8, 2019

#1408 Post by Billtoo »

New install to a 64GB Sandisk Cruzer flash drive.
Installed firefox and devx sfs files,added Vlc and Gnome MPV with
petget.
Gnome MPV and Vlc work well.

Enjoying new version so far,
Thanks.

EDIT: the flash drive is a Sandisk Ultra,

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#1409 Post by BarryK »

BarryK wrote:Already a couple of bugs found in 1.0.11:

http://bkhome.org/news/201903/bugs-in-easyos-1011.html

...note item-2, upgrading an existing installation, requires a manual fix.
I fixed those two bugs, and have re-uploaded 1.0.11.

The "salt" problem with encryption is fixed, I think. Now using a fixed string for the salt, and for an existing installation, if the fixed string fails, it falls back to using the $WKG_DISKID as the salt, as before.

Notice to everyone, if you want to do an install to hard drive, grab this latest upload. From now on, the salt problem shall be no more.
[url]https://bkhome.org/news/[/url]

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

Re: EasyOS 1.0.11, March 8, 2019

#1410 Post by BarryK »

Billtoo wrote:New install to a 64GB Sandisk Cruzer flash drive.
Installed firefox and devx sfs files,added Vlc and Gnome MPV with
petget.
Gnome MPV and Vlc work well.

Enjoying new version so far,
Thanks.

EDIT: the flash drive is a Sandisk Ultra,
Good, thanks for confirming that the media-player PETs work.
[url]https://bkhome.org/news/[/url]

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#1411 Post by BarryK »

blgs wrote:manual fix fix for easyOS 1.0.11 wasn' the correct solution for me. Switched back to the previous version (1.0.8),

Waiting for the permanent fix before updating again.
Grab the re-uploaded 1.0.11 image file. To upgrade an existing installation, when you click on 'initrd', don't choose the automatic fix. You will need to manually edit 'BOOT_SPECS' to have the correct values for the BOOT_UUID and WKG_UUID.

For future upgrades, automatic fixing of BOOT_SPECS should work, as long as I don't shift the gaol-posts again. :)
[url]https://bkhome.org/news/[/url]

blgs
Posts: 34
Joined: Fri 07 Dec 2018, 17:37

#1412 Post by blgs »

Downloaded easy-1.0.11-amd64.img.gz 2019-Mar-08 16:08:47. (latest update?)

Running easyOS 1.0.8. Did open the new image file (easy-1.0.11) by clicking two times. Copied the 3 files to the boot partition.
Manualy edit the initird file wit the correct UUID's for boot and the working partition.

Rebooted the computer. During bootup the boot and working partition are recognized. The screens regarding the language/keyboard and pasword setiing appears.

Then it stops....

I have attached a jpg file with the error.

Currently I'm switching back to easyos 1.0.8.
Attachments
IMG_20190308_194448.jpg
(173.64 KiB) Downloaded 77 times

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#1413 Post by BarryK »

blgs wrote:Downloaded easy-1.0.11-amd64.img.gz 2019-Mar-08 16:08:47. (latest update?)

Running easyOS 1.0.8. Did open the new image file (easy-1.0.11) by clicking two times. Copied the 3 files to the boot partition.
Manualy edit the initird file wit the correct UUID's for boot and the working partition.

Rebooted the computer. During bootup the boot and working partition are recognized. The screens regarding the language/keyboard and pasword setiing appears.

Then it stops....

I have attached a jpg file with the error.

Currently I'm switching back to easyos 1.0.8.
The fact that you get the GUI asking for locale/keyboard-layout shows that the BOOT_SPECS file is wrong.

You only get that GUI at first bootup, not when doing an upgrade.

The reason for this is probably that you did not fix WKG_DIR. For example, if you had previously set it as WKG_DIR='easy/', then you will have to manually do so to the new BOOT_SPECS.

I have now fixed the script that handles this, /usr/sbin/edit-initramfs, which will be in Easy 1.0.12, and have updated the docs online:

https://easyos.org/user/easy-version-up ... grade.html

But, you can test the script. Download, remove the fake ".gz", make sure it is executable, and replace the script in /usr/sbin

I hope that you have success this time!
Attachments
edit-initramfs.gz
(11.29 KiB) Downloaded 94 times
[url]https://bkhome.org/news/[/url]

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#1414 Post by rufwoof »

I do like the fundamental flipping of the EasyOS design.

Puppy pulls in other systems (Debian ... etc.) programs to use as its own, within its own environment; EasyOS core permits other systems to be run within controlled environment, set up a debian bootstrap folder for instance and use a combination of Xephyr, unshare, capabilities dropping and chroot ... to run the native (kernel/binary compatible) version of that ... Easy OS in effect becomes a hypervisor that can limit (or not) what system resources are made available.

Puppy saves changes to ram, which is finite. EasyOS saves changes to disk and via snapshots/rollbacks caters for whether changes are persistent, or not.

Of the two, EasyOS's design feels to be distinctly better IMO.

I've just added a debian bootstrap folder into /usr/local/debian-stretch for instance, which expanded the easy.sfs by around 50MB. Fire up a terminal and chroot that and I'm in a pure debian (main repo only) terminal session, into which I can use apt to build whatever debian system I desire within that, and EasyOS caters for what resources are made available, or not, or whether those changes are saved, or not. I can even create different versions, saving each to separate snapshots ... such that any one of those snapshots can be restored at any time, without having to reboot.

Multiple desktops are nice, as that way you can better mentally separate what systems might be running at the same time. Leave desktop 1 for EasyOS main, Easy container on desktop 2, Debian on desktop 3 ...etc. Yet despite such multiple systems running concurrently, operationally they're as good as running on bare metal (because fundamentally they are). Works incredibly well, even on my 11 year old (2GB ram) hardware. And software choice galore. Want to run Audacity? Then pick which OS you'd rather run that under, Puppy, Debian, Ubuntu ...etc. and just install/run it within that environment/desktop. Neat! Thanks Barry.
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

User avatar
rufwoof
Posts: 3690
Joined: Mon 24 Feb 2014, 17:47

#1415 Post by rufwoof »

1.0.11 for my kit (BIOS, frugal HDD installed) the framebuffer isn't activated until very late. Predominately a text boot, with the kernel activating the framebuffer just before X is loaded.

So the current init in 1.0.11 throws out a error message on first run (/dev/fb0 exists but isn't activated, so when the logo for instance is run ... ERROR>> messages are generated).

The way I had X and network connection (and everything else) working inside init before was to actually chroot the main systems sfs sbin/init, and tagged on a exit (back into initrd's init) at the end of /etc/profile. Along with a flagging setup so that on subsequent loads it didn't just exit after re-running /etc/profile.

EDIT:

Ran checks and if prior to using the framebuffer in initrd/init such as loading the logo, running cp /dev/fb0 /dev/null and checking $? (return code) is one way to ensure the framebuffer is active before writing to it. The copy does however take a second or so to do when it is available (booting with video=640x480 i.e. text mode flashes through that (fails) pretty much instantly), so rather than copying the whole framebuffer, just coping 10 bytes or so is quicker. Line 254 or so in initrd being changed to ...

Code: Select all

#190307 display logo, -f = reduces to fit screen, keeps proportions
[ -e /dev/fb0 ] && head -c 10 /dev/fb0 > /dev/null && idump -f logo1920x1440.png
There are a couple of other /dev/fb0 usage in init, but they're subject to ext4 and I'm booting frugally to a non ext4 partition so I haven't tested those (no password being set, so no need for ask keyboard/password etc.).
Last edited by rufwoof on Sat 09 Mar 2019, 19:43, edited 2 times in total.
[size=75]( ͡° ͜ʖ ͡°) :wq[/size]
[url=http://murga-linux.com/puppy/viewtopic.php?p=1028256#1028256][size=75]Fatdog multi-session usb[/url][/size]
[size=75][url=https://hashbang.sh]echo url|sed -e 's/^/(c/' -e 's/$/ hashbang.sh)/'|sh[/url][/size]

Post Reply