ConfigureDistro¶
- Configure the initial setup
- Setup the exports
- Create a stage3 configuration
- Modifications for the demuxer process
- Adaptations within the plugins
Configure the Initial Setup¶
The SLX command slxos-setup is used for the creation of a so-called Vendor OS the source for a SLX export. This have to be known by the tool by editing the file installer/OpenSLX/OSSetup/Engine.pm. In this file is defined in which mode a Linux distribution could be added as Vendor OS (direct installation - "install" or as a clone from a running machine "clone", the tag "shell" defines, that a chroot into the Vendor OS is possible. This could be used for instance for the direct installation of further packages without e.g. re-cloning). For the installation from package source a directory of the same name is needed within lib/distro-info.
Update Ubuntu¶
The easiest way is just to copy some older system and run sed -e "s,<alteversion>,<neueversion>," in the several relevant sub directories.
Update SuSE¶
Go to ~/openslx/core/tools/ directory. The script updateDistroInfo.suse is to be adapted in the "supported versions" configuration part. This is to be run. It generates a TAR, which is to be copied/untarred to lib/distro-info apropriately.
Setup the exports¶
In the first place a filter is defined which files should be excluded (from Vendor OS installation) in the export. Normally you would exclude files like configuration data, programms and tools (and their respective autostart files), which are at least useless or at worst problematic in stateless client operation.
Create a Stage3 Configuration¶
All distro specific stage3 configuration files are located within the directory initramfs/distro-specs/<vendor-os>. Typically there is a functions-default which functions could be overwritten by a functions-<vendor-os-version>. This file has to be present even if nothing is changed.
Modifications for the Demuxer Process¶
The call to "_addFilteredKernelModules()" in boot-env/OpenSLX/makeinitramfs/Distro/<vendor-os>.pm (in "applyChanges") tells the initramfs builder that the given distro does not have the two modules specified ("hid, unix"). This is necessary because the initramfs-builder adds several basic kernel modules to the list of modules-to-be-copied, some of which do not exist on every distro.
Hardware database revisions available for hwinfo: 13.11, 14.19, 15.3, 15.21 and 16.0 ...
Adaptations within the Plugins¶
For each distribution/Vendor OS there might adaptation be required. Each OpenSLX base plugin is defined in os-plugins/plugins/<plugin-name>. There exists a subdirectory OpenSLX/Distro/ which contains at least Base.pm. The methods in it are valid for all distros, but could be overridden in the following manner (example is an Ubuntu-9.04):- Ubuntu_9_04.pm
- Ubuntu_9.pm
- Ubuntu.pm
- Base.pm
The searching stops with the first distro module that could be loaded and only that one will be used. But they usually derive from one another, too (e.g. Ubuntu will derive from Base), in order to inherit the more general implementations from the base class(es).