====== Introduction ====== [[dynamic_root_filesystem_remastering|Dynamic remastering]] is about assembling 1+ initrd payload files (CPIO.GZ archives for initramfs; herein referred to as CGZs) to allow one to upgrade the core.gz without a full repacking. Dynamic MultiMaster takes this one step further to create a set of modular CGZs that allow component swap/addition from the boot loader without repeating files. ====== Prerequisites ====== * An understanding of dynamic remastering ====== Overview ====== * Examine what extensions you would like in each target boot * Fetch extensions their .dep files, and dependent extentions & .dep files. * .tree files help to broadly examine all dependencies for an extension * Determine how to modularly group the extensions into CGZs to eliminate duplicated extensions. ====== Details ====== * Extensions and their .deps should be located in [boot-tce-dir]/optional/. As of 4.7.5, that becomes /tmp/builtin/optional/ but was in /opt/tce/ before version 4.2. * Multiple CGZs function to overwrite files (and directory permissions). * An onboot.lst in [boot-tce-dir] is needed to load files on boot. As of 4.7.5, that becomes /tmp/builtin/onboot.lst ====== Examples ====== ===== TinyCore-like with XVesa, Xfb or X.Org ===== This is one of the quickest modularization examples. ==== tcxdep.cgz ==== The extensions TinyCore uses other than any X-specifics * fltk-1.1.10.tcz flwm_topside.tcz wbar.tcz Xlibs.tcz Xprogs.tcz * fltk-1.1.10.tcz and Xlibs.tcz are the dependencies for the others ==== tcxv.cgz ==== * Xvesa.tcz ==== tcxfb.cgz ==== * Xfbdev.tcz ==== tcxorgdep.cgz ==== Break out some dependencies since they are shared with other extensions since we may want those but not X.org * expat2.tcz fontconfig.tcz pixman.tcz Xorg-7.6-lib.tcz ==== tcxorgdrv.cgz ==== This can be trimmed as needed, based on desired hardware. * xf86-video-all.tcz xf86-video-apm.tcz xf86-video-ark.tcz xf86-video-ast.tcz xf86-video-ati.tcz firmware-radeon.tcz graphics-3.0.21-tinycore.tcz i2c-3.0.21-tinycore.tcz xf86-video-chips.tcz xf86-video-cirrus.tcz xf86-video-geode.tcz xf86-video-glint.tcz xf86-video-i128.tcz xf86-video-i740.tcz xf86-video-intel.tcz xf86-video-mach64.tcz xf86-video-mga.tcz xf86-video-neomagic.tcz xf86-video-newport.tcz xf86-video-nv.tcz xf86-video-openchrome.tcz xf86-video-r128.tcz xf86-video-rendition.tcz xf86-video-s3.tcz xf86-video-s3virge.tcz xf86-video-savage.tcz xf86-video-siliconmotion.tcz xf86-video-sis.tcz xf86-video-sisusb.tcz xf86-video-tdfx.tcz xf86-video-tga.tcz xf86-video-trident.tcz xf86-video-tseng.tcz xf86-video-v4l.tcz xf86-video-vmware.tcz xf86-video-voodoo.tcz xf86-video-xgi.tcz xf86-video-xgixp.tcz ==== tcxorg.cgz ==== * Xorg-7.6-bin.tcz Xorg-7.6.tcz Xorg-fonts.tcz ==== onboot.lst ==== The following will attempt to load everything (and yield a warning on files not present; blank lines used to separate content from different CGZs): fltk-1.1.10.tcz flwm_topside.tcz wbar.tcz Xlibs.tcz Xprogs.tcz Xvesa.tcz Xfbdev.tcz expat2.tcz fontconfig.tcz pixman.tcz Xorg-7.6-lib.tcz xf86-video-all.tcz xf86-video-apm.tcz xf86-video-ark.tcz xf86-video-ast.tcz xf86-video-ati.tcz firmware-radeon.tcz graphics-3.0.21-tinycore.tcz i2c-3.0.21-tinycore.tcz xf86-video-chips.tcz xf86-video-cirrus.tcz xf86-video-geode.tcz xf86-video-glint.tcz xf86-video-i128.tcz xf86-video-i740.tcz xf86-video-intel.tcz xf86-video-mach64.tcz xf86-video-mga.tcz xf86-video-neomagic.tcz xf86-video-newport.tcz xf86-video-nv.tcz xf86-video-openchrome.tcz xf86-video-r128.tcz xf86-video-rendition.tcz xf86-video-s3.tcz xf86-video-s3virge.tcz xf86-video-savage.tcz xf86-video-siliconmotion.tcz xf86-video-sis.tcz xf86-video-sisusb.tcz xf86-video-tdfx.tcz xf86-video-tga.tcz xf86-video-trident.tcz xf86-video-tseng.tcz xf86-video-v4l.tcz xf86-video-vmware.tcz xf86-video-voodoo.tcz xf86-video-xgi.tcz xf86-video-xgixp.tcz Xorg-7.6-bin.tcz Xorg-7.6.tcz Xorg-fonts.tcz ==== Command line ==== === Syslinux === * XVesa: initrd=core.gz,tcxdep.cgz,tcxv.cgz * Xfbdev: initrd=core.gz,tcxdep.cgz,tcxfb.cgz * X.org: initrd=core.gz,tcxdep.cgz,tcxorgdep.cgz,tcxorgdrv.cgz,tcxorg.cgz ===== VMware View Client ===== VMware's recent release of its full View client is of interest to some since TC could be lighter than other distros. * tcxdep.cgz, tcxv.cgz, and tcxorgdep.cgz as above. This is an excellent example of why I removed the extensions in tcxorgdep.cgz to another CGZ. ==== tcgtk.cgz ==== * atk.tcz cairo.tcz gdk-pixbuf2.tcz glib2.tcz graphics-libs-1.tcz gtk2.tcz libffi.tcz liblzma.tcz libxcb.tcz libxml2.tcz pango.tcz shared-mime-info.tcz ==== tcrdsk.cgz ==== * libao.tcz libusb.tcz pcsc-lite.tcz rdesktop.tcz ==== tcssl.cgz ==== *libssl-0.9.8.tcz openssl-1.0.0.tcz ==== tcvmview.cgz ==== * udev-lib.tcz * a choice of vmware-view-client-mk.tcz or vmware-view-client.tcz; Note that the EULA of the VMware View Client appears to prohibit redistribution. This would imply Canonical and its partners are likely under an alternate license. ==== Command Line ==== === Syslinux === initrd=core.gz,tcxdep.cgz,tcxv.cgz,tcgtk.cgz,tcrdsk.cgz,tcxorgdep.cgz,tcssl.cgz,tcvmview.cgz