LATEST RELEASES ARE:
build_weedog_initramfs05_s207.sh
Previous Release Announcement (21Sept2019) and details remain very relevant:
http://www.murga-linux.com/puppy/viewto ... 92#1037492
build_firstrib_rootfs_104.sh
The earlier release (17Sept2019) details remain very relevant:
http://www.murga-linux.com/puppy/viewto ... 51#1037251
-------------------------------------------------------------------------------------------------------
NEW MULTI-DISTRO WeeDog Release announcement. Currently builds flavours: void, ubuntu, debian, devuan (Arch Linux flavour under development)
where:
distro can currently be one of:
ubuntu, debian, devuan, void
release can currently be one of:
oldstable, stable, testing, unstable; or xenial, bionic, dingo; stretch, buster, sid; ascii, ceres, beowulf
arch can currently be one of:
amd64, i686 (i386 for debian/ubuntu/devuan), arm64 (though build_weedog_initramfs needs modded for arm64 use).
If you plan to boot this via WeeDog initramfs05.gz, then you definitely need to supply a suitable firstrib00.plug_*** in (like the provided exemplars) during the build.
Downloads for the Main Build Scripts are at the foot of current post.
DOWNLOAD locations for some useful build system utilities such as for modifying initramfs and others for facilitating chroot alterations of firstrib_rootfs are at this post:
http://www.murga-linux.com/puppy/viewto ... 57#1028957
DOWNLOAD locations for additional/optional USER-CONTRIBUTED firstrib plugins, utilities and howtos are at this post:
http://www.murga-linux.com/puppy/viewto ... 29#1029029
===============================================
For latest CHANGES, including optional inram00.plug use for zram swap, see here:
http://www.murga-linux.com/puppy/viewto ... 69#1035869
New versions of the two main scripts released. As you'll see some big changes (read the commandline args carefully).
Otherwise works the same though so old void firstrib00.plug should work fine on WeeDog Linux void flavour builds.
It is IMPORTANT to test with the relevant firstrib00.plug_distro_release_arch files attachedl
Note, for grub config, that the initramfs is now model 05. i.e. initramfs05.gz
Also, NOTE WELL that build initramfs no longer uses arg kernel=void, now it simply is <distro_name>, for example: void, ubuntu, debian, or devuan
So much to test and I've only had limited time testing so far, so need lots... Ubuntu proved tricky... turned out needed --no-install-recommends when apt installing its kernel (or ran into lots of trouble with ubuntu updating its own initramfs and grub2 nonsense). Anyway, currently added that option to all debian-based plugin files (though debian and devuan didn't care). Currently devuan using sysvinit, and debian and ubuntu using their default systemd (but you can change that).
Here is quick info on the two new scripts:
Code: Select all
# ./build_firstrib_rootfs_XXX.sh --help
Usage:
./build_firstrib_rootfs_XXX.sh distro release arch [filename.plug] or
./build_firstrib_rootfs_XXX.sh distro release arch [filename.plug.tgz]
NOTE WELL that primary plugin (e.g. firstrib00.plug) is not a script,
it is simply a list of commandlines without any hash bang shell header.
Also NOTE that a tgz (or tar.gz) form of plugin must contain the primary
plugin. It can also contain a plugins directory, which itself contains
other plugins and/or executable scripts. These get copied into
firstrib_rootfs/tmp so that primary plugin can subsequently source or
execute the plugins dir contents from /tmp/plugins/*
A primaryplug.tar.gz plugin should contain two first level items in its
archive: primaryplug.plug plugins/
For example, firstrib00.plug.tar.gz should contain firstrib00.plug
alongside directory plugins/
-v --version display version information and exit
-h --help -? display this help and exit
FOR EXAMPLE: NOTE: I 'think' I tested ubuntu bionic amd64 with WeeDog initramfs, but I've been doing so many tests I can't remember - hopefully fine. I certainly tested debian buster amd64 and devuan beowulf amd64. I did not test any i386 builds (but did build an arm64 firstrib_rootfs, but can't as yet build initramfs for that till I modify the script further with arm64 busybox alternative - anyway, I don't have any arm64 hardware myself)...
Code: Select all
./build_firstrib_rootfs_XXX.sh ubuntu bionic amd64 firstrib00.plug_ubuntu_bionic_amd64
FOR SOME EXTRA DETAILS on build_firstrib_rootfs, see post:
http://www.murga-linux.com/puppy/viewto ... 51#1037251
Code: Select all
# ./build_weedog_initramfs05_s204.sh --help
Usage:
./build_weedog_initramfs05_sNNN.sh [OPTIONS]
-v --version display version information and exit
-h --help -? display this help and exit
distro_name (i.e. void, ubuntu, debian, or devuan)
auto-insert Linux distro modules/firmware into
initramfs and output associated Linux kernel;
all of which must be pre-installed into
firstrib_rootfs build.
Optional second argument is mksquashfs compression (or "default")
Optional third argument is "huge" (or "default") initramfs
"huge" includes 01firstrib_rootfs.sfs inside initramfs/boot/initramfsNN
Optional fourth argument is busybox_url (in case, e.g. arm64 required)
EXAMPLES:
./build_weedog_initramfs05_sNNN.sh void # or debian, ubuntu, devuan etc
./build_weedog_initramfs05_sNNN.sh void "-comp lz4 -Xhc"
./build_weedog_initramfs05_sNNN.sh void default huge
Once booted, set up shadow passwords with pwconv and grpconv and
REMEMBER to set: passwd root
FOR SOME EXTRA DETAILS on build_weedog_initramfs05, see post:
http://www.murga-linux.com/puppy/viewto ... 92#1037492
I'm currently just posting the new scripts (along with the importand firstrib00.plug_distro_release_arch exemplars) on this post (consider them alpha/beta) since not tested enough quite yet.
So FirstRib/WeeDog a multi-distro build system now, and will be adding Arch Linux flavour later.
Please let me know how any tests go. Take care not to mix up kernels and plugins and avoid the mistake I made today, which was to forget to delete my upper_changes folder between tests (and left me wondering for hours why my config changes didn't work as I expected!...).
ADDITIONAL INFO
i.e. The optional plugin_name needs to be fourth arg if used.
Note that, for any distro_build (be it ubuntu, debian, devuan, or void), if the plugin name is simply and exactly firstrib00.plug, you do not need to include the plugin name in the build line (though you can if you wish).
You can also of course do the likes of Ubuntu Dingo release:
Code: Select all
./build_firstrib_rootfs_NNN.sh ubuntu dingo amd64 <filename.plug>
and can modify the firstrib00.plug_ubunt_XXX to suit.
Of course, for many of these distro's you can also use alternative arch of i386.
Example grub4dos menu.lst entry:
Examples show using (hd0,0) i.e. /dev/sda1 boot partition of harddrive
Change following to the drive boot partition you are actually using
This example is for slow boot device, hence using optional usbwait value
The bootfrom parameter is required and must be accurate:
For grub4dos
Example shows using (hd0,0) i.e. /dev/sda1 boot partition
Code: Select all
title WeeDog Linux (Multi-Distro-Flavour)
root (hd0,0)
kernel /firstrib/vmlinuzX.XX bootfrom=/mnt/sda1/firstrib # optional changes=RAM copy2ram; optional altNN=path2dir
initrd /firstrib/initramfs05.gz
NOTE (revision s205 plus): If no usbwait parameter given (best) then weedog waits on bootpartition being successfully mounted, otherwise the delay is fixed at usbwait=NN value in seconds.
EDIT. NOTE WELL. The Linux host used for the build DOES NOT need debootstrap or perl installed on it should you be building a debian-based system - I do that all inside firstrib using a specially static uClibc compile of pkgdetails that I made (for debootstrap to not require perl). So should build anywhere, even on small distros like tinycore with nothing much installed on it.