Table of Contents
Introduction
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