EasyDD works on more distributions
I have abandoned EasyDD-portable. Too troublesome. Instead, the
'easydd' script has been enhanced, with more features, refinements, and
should work on just about all Linux distributions.
It should work in both CLI and GUI modes in all Puppy and Puppy-derivatives, including very old versions.
For other Linux distributions that do not have the 'gtkdialog' utility, EasyDD should work in CLI mode.
I have updated the introduction page:
https://bkhome.org/linux/easydd-write-image-file-to-drive.html
...of course, there is the disclaimer, see bottom of linked page. I
have created EasyDD in good faith, but as we can never 100% guarantee
perfect code, nor anticipate peculiarities of some distributions, you
need to use EasyDD entirely at your own risk. I have tried to anticipate
all eventualities, and put sanity checks throughout the script ...but,
you never really know, until you try it on your distro.
Note, 'gtkdialog' is great, but for those distros that don't have it,
and have 'zenity' or 'yad' instead, a future project could be to get
the script to use those. Then EasyDD will be able to run in GUI mode on
many more distros.
Another note: one problem that we had with old puppies was that they
have an older version of the 'dd' uility, or the busybox 'dd', which
lacks real-time progress reporting. EasyDD will now detect this, and can
still use the old 'dd', just without the real-time write-speed
reporting.
EDIT 2020-06-17:
Alfons reported that specifying a target drive in CLI mode, for example
"easydd easy-0.6-amd64.img.gz sdb", exited without doing anything. Hmmm,
yes. Fixed.
EDIT 2020-06-18:
Fixes to run EasyDD in GUI mode in Linux Mint:
https://bkhome.org/news/202006/easydd-gui-fixes-for-linux-mint.html
Tags: linux
EasyDD-portable fixed for Debian, Devuan, Mint, etc
I posted about EasyDD-portable, that is supposed to run on all
Linux distributions. All that they need is a shell interpreter and some
basic utilities such as 'cut', 'grep', 'tr', 'realpath', etc. Here is
the blog post:
https://bkhome.org/news/202005/easydd-portable-runs-on-any-linux.html
Bob, running Devuan, reported a "bad substitution" error in the 'easydd' script, and so did Jonathan, running Linux Mint.
That is because the "shebang line" is "#!/bin/sh" which in Debian and
Debian-derivatives, will run 'dash'. Unfortunately, dash is a very
primitive shell interpreter.
I recall years ago, being annoyed because dash does not understand
"echo -e ..." so cannot interpret terminal commands. That is because
dash is designed to work when there is no terminal.
Hmmm, Busybox ash handles the "-e" and that works everywhere, including direct to the screen in the initrd.
Now onto EasyDD, and I have found that dash does not understand "${var:0:1}" parameter expansion.
Then I found that dash does not understand the simplified if-then "[ "$var" ] && ...".
I am so accustomed to using the far more capable 'ash' in Busybox.
I have fixed it by changing three scripts in EasyDD-portable to use
bash. Presumably, all Linux distributions have bash, and those that are
purely busybox-based will likely have bash as an alias to ash.
EasyDD-portable fixed is uploaded here:
http://distro.ibiblio.org/easyos/project/easydd/
Note, if you are running EasyOS, EasyPup, Puppy, FatDog, or any other
Puppy-derivative, you do not need EasyDD-portable. The small EasyDD
script will work for you:
https://bkhome.org/news/202006/enhancements-for-easydd-script.html
...the only caveat is that very old versions of Puppy Linux (5-6
years ago) may have an old version of the 'dd' utility that will not
work with EasyDD, in which case use EasyDD-portable.
EDIT 2020-06-12:
I have feedback from Jonathan and Tom that the "fixed" EasyDD-portable
tried to write to the wrong drive. So I have taken it down, and will
install Debian, Devuan, or Mint and test EasyDD-portable.
EDIT 2020-06-16:
EasyDD-portable has been abandoned. Instead, the simple EasyDD script
has been enhanced to run on nearly all Linux distributions. There is an
introduction page, with download link:
Tags: linux
EasyDD-portable runs on any Linux
EasyDD is a script for writing an image file to a drive. Users of older Puppy Linuxes had a problem, the 'dd' utility lacked a required feature. Mike Walsh fixed that by bundling a newer version of 'dd', as a PET, self-extracting archive, and an AppImage:
http://www.murga-linux.com/puppy/viewtopic.php?t=116481
Mike's work is really great. All pups and Puppy-derivatives have 'gtkdialog', required for the GUI mode, however, most other distributions don't have it. So, inspired by Mike, I have created a self-extracting archive with everything in it, including 'gtkdialog', maned EasyDD-portable.
I have written a page for EasyDD:
https://bkhome.org/linux/easydd-write-image-file-to-drive.html
...notice the "no liability" disclaimer!
EasyDD-portable download (18MB):
http://distro.ibiblio.org/easyos/project/easydd/easydd.gz
I created the self-extracting archive by a grass-roots method, inspired by this page:
https://coderwall.com/p/y3upqw/creating-a-self-extracting-archive-installer-script
My project tarball is here:
http://distro.ibiblio.org/easyos/project/easydd/easydd-project.tar.gz
The tarball expands to folder 'easydd-project' and inside the is a build script, 'create-easydd'. Here is the script:
#!/bin/sh
#creates a self-extracting archive named 'easydd.run', that will run easydd.
#ref: https://coderwall.com/p/y3upqw/creating-a-self-extracting-archive-installer-script
[ -f easydd.tar.gz ] && rm -f easydd.tar.gz
tar -cvf easydd.tar easydd.dir/
gzip -9 easydd.tar
[ -f easydd ] && rm -f easydd
cat << 'EOF' >> easydd
#!/bin/sh
EXE="$(realpath ${0})"
PARAM1=''; PARAM2=''
if [ "$1" ];then
if [ "${1:0:1}" == "-" ];then
PARAM1="$1" #-h or --help
else
PARAM1="$(realpath $1)"
fi
fi
[ "$2" ] && PARAM2="$2"
mkdir -p /tmp/easydd-portable-run
cd /tmp/easydd-portable-run
tail -n +18 $EXE | gzip -vdc - | tar -xvf - > /dev/null || exit 1
cd easydd.dir
cp -a -f ./easydd.sh /tmp/easydd.sh 2>/dev/null
exec /tmp/easydd.sh ${PARAM1} ${PARAM2}
EOF
cat easydd.tar.gz >> easydd
chmod 755 easydd
It creates a script named 'easydd' with the code that you can see
between the two "EOF" markers. The chrootable 'rootfs' tarball,
easydd.tar.gz, is appended onto 'easydd'. When 'easydd' is executed, the
'rootfs' tarball is expanded at /tmp/easydd-portable-run and a script
'easydd.sh' is run.
EDIT 2020-06-16:
EasyDD-portable has been abandoned. Instead, the simple EasyDD script
has been enhanced to run on nearly all Linux distributions. There is an
introduction page, with download link:
Tags: linux
Ye olde Woof2 Puppy builder
Woof2 was the build system for Puppy, and was online in a Fossil
repository, until 2013 when it was forked to Woof-CE on github, and I
closed down Woof2.
The last pups to be built with Woof2 were Wary and Racy 5.5, see here:
http://distro.ibiblio.org/quirky/racy-5.5/
Woof-CE is a community project, and has changed a lot since 2013.
Today I received an email from Michael, asking if the original Woof2
Wary/Racy builder is still available. Well, it is possible to checkout
the original checkin of Woof-CE, here is the project site:
https://github.com/puppylinux-woof-CE/woof-CE
'dimkr' cloned woof-CE sometime ago, and this link has pretty much the original Woof2:
https://notabug.org/dimkr/woof-CE-libre/src/dfa7ea51c82b6a53dbfe8e167de5e233510db003
...the 0.1 release is very close to Woof2, and is available as a tarball here:
https://notabug.org/dimkr/woof-CE-libre/releases
...most important, one of the commits is '01micko' restored the symlinks that were lost in the original fork from Woof2.
There is an actual Fossil repo of Woof2. Puppy Forum member 'idolse'
created mpdPup, a Puppy Linux music server/jukebox, and to achieve that,
he forked Woof2:
http://chiselapp.com/user/ldolse/repository/mpdPup/home
...if you login as anonymous, go to "Files" and you will see this text:
Files of check-in [edf062515a] in the top-level directory
...in the square-brackets is a link to download the tarball. Ah, here is a direct link, no need to login to the Fossil repo:
http://chiselapp.com/user/ldolse/repository/mpdPup/tarball/edf062515a/mpdPup-edf062515a.tar.gz
...this is dated March 26, 2013, and this would be pure Woof2
as-it-was, though idolse will probably have made some changes, though
looking around, it seems all as I recall Woof2 to be. Yep, has
woof-distro/x86/pet-based/racy and wary, version 5.5.
Oh, for anyone curious about mpdPup:
http://murga-linux.com/puppy/viewtopic.php?t=70052
Tags: linux
Introduction page for EasyPup
I have created an introduction page for EasyPup:
https://bkhome.org/linux/easypup-a-blend-of-classical-puppy-and-easyos.html
A bit premature though, as the download link does not yet have
anything in it. I want to fix a few more things in EasyPup, then will
upload a release ISO, maybe also a USB-stick image.
Then back onto developing EasyOS!
Tags: linux
Raspup Buster 8.2.0 released
Do you have a Raspberry Pi board? Is it neglected? -- well, dust
it off, there is a new Puppy Linux release for the Pi, created by
Michael Amadio (01micko in the Puppy Forum). Mick sent me an email,
quoting:
Hot on the tails of your Easy release I have released Raspup Buster 8.2.0.
Announcement - http://blog.puppylinux.com/raspup-820- released
Website - http://raspup.eezy.xyz/index.php
Official release note - http://distro.ibiblio.org/puppylinux/arm/puppy-raspup-8. 2.0/release-Raspberry-8.2.0. htm
It supports all the main Pi boards but not compute module - well untested at least.
Give it a spin!
You can also get involved, read the experiences of others, provide feedback, in this thread in the Puppy Forum:
http://www.murga-linux.com/puppy/viewtopic.php?t=116841
Mick does state that it is tested on the Pi0, Pi3 and Pi4, and should
probably work on the Pi1 and Pi2. I have a Pi2B and a Pi3B, so will
fire up the latter.
Tags: linux
Puppy Linux version 8.0 released
Fantastic! I would like to congratulate Peter and Phil (peebee and 666philb in the Puppy Forum) --and everyone else involved-- for the release of Puppy 8.0 "BionicPup". Distrowatch annoncement here:
https://distrowatch.com/?newsid=10501
Project announcement here:
http://blog.puppylinux.com/bionicpup-32-bit-and-64-bit-released
This is great, as the last official release on Distrowatch was version 7.5 in December 2017.
Forum discussion for the 64-bit release, coordinated by 666philb:
http://murga-linux.com/puppy/viewtopic.php?t=114311
Forum discussion for the 32-bit release, coordinated by peebee:
http://murga-linux.com/puppy/viewtopic.php?t=113244
Tags: linux
Notes for porting UltraSNS to Puppy Linux
Or some other Puppy-derivative. UltraSNS has debuted in the latest EasyOS, version 1.0.8, see post yesterday:
http://bkhome.org/news/201902/easyos-x8664-version-108-released.html
And a post about UltraSNS and minibase-network utilities:
http://bkhome.org/news/201902/ultrasns-based-on-minibase-utilities.html
Minibase, created by Alex Suykov, can be obtained from the project page and compiled, see post:
http://bkhome.org/news/201902/minibase-super-tiny-static-system.html
I have two PETs. The utilities are statically-linked and will work in any distribution (38KB, 10KB, 41KB):
...notice the size!
In WoofE, the build system for EasyOS, in folder 'rootfs-skeleton', can be found the files for UltraSNS. The latest WoofE (94MB):
http://distro.ibiblio.org/easyos/project/woof/woof-project-20190221.tar.gz
In rootfs-skeleton/usr/local/UltraSNS are these new scripts:
usr/local/UltraSNS/rc.network
usr/local/UltraSNS/usns
Also new, are scripts in etc/net, that are called by the minibase daemons:
conf-cancel conf-request dhcp-gw identify mode-wifi
conf-renew dhcp-dns dhcp-ntp mode-lan wifi-wpa
In rootfs-skeleton, all of these scripts have been modified:
usr/local/apps/Connect/AppRun
usr/sbin/network_default_connect
usr/sbin/connectwizard
usr/sbin/networkdisconnect
usr/sbin/connectwizard_2nd
EasyOS specific, handling EasyContainers:
usr/local/easy_containers/stop-container
usr/local/easy_containers/ec-chroot
This is new:
sbin/dhcp-delayed
usr/local/defaultconnect now has this at first bootup (instead of "connectwizard"):
#!/bin/sh
exec usns
At bootup, etc/rc.d/rc.sysinit calls
usr/sbin/network_default_connect, which reads 'defaultconnect' and as it
contains "usns", calls usr/local/UltraSNS/rc.network, which launches
the minibase daemons 'ifmon' and 'wsupp'.
From then on, network handling is automatic, though wifi will need a
password first-time, by clicking on the "connect" icon on desktop, which
launched the GUI, usr/local/UltraSNS/usns
The above should be enough info for porting. One thing to look
out for, make sure that 'dhcpcd' or 'udhcpc' are not run anywhere, as
they will conflict with minibase's 'dhcp' DHCP client.
Tags: linux