ConfigureDistro
Version 10 (dvs, 05/11/2011 06:01 pm)
| 1 | 1 | dvs | h1. ConfigureDistro |
|---|---|---|---|
| 2 | 1 | dvs | |
| 3 | 4 | dvs | p>. !http://openslx.org/images/de.png! [[DistroEinrichten|Deutsche Version des Eintrags]] |
| 4 | 3 | dvs | |
| 5 | 3 | dvs | |
| 6 | 1 | dvs | # Configure the initial setup |
| 7 | 1 | dvs | # Setup the exports |
| 8 | 1 | dvs | # Create a stage3 configuration |
| 9 | 1 | dvs | # Modifications for the demuxer process |
| 10 | 1 | dvs | # Adaptations within the plugins |
| 11 | 1 | dvs | |
| 12 | 2 | dvs | h2. Configure the Initial Setup |
| 13 | 2 | dvs | |
| 14 | 2 | dvs | 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_. |
| 15 | 1 | dvs | |
| 16 | 9 | dvs | h3. Update Ubuntu |
| 17 | 9 | dvs | |
| 18 | 9 | dvs | The easiest way is just to copy some older system and run @sed -e "s,<alteversion>,<neueversion>,"@ in the several relevant sub directories. |
| 19 | 9 | dvs | |
| 20 | 9 | dvs | h3. Update SuSE |
| 21 | 9 | dvs | |
| 22 | 9 | dvs | 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. |
| 23 | 9 | dvs | |
| 24 | 1 | dvs | h2. Setup the exports |
| 25 | 3 | dvs | |
| 26 | 4 | dvs | 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. |
| 27 | 1 | dvs | |
| 28 | 5 | dvs | h2. Create a Stage3 Configuration |
| 29 | 5 | dvs | |
| 30 | 5 | dvs | 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. |
| 31 | 5 | dvs | |
| 32 | 4 | dvs | h2. Modifications for the Demuxer Process |
| 33 | 1 | dvs | |
| 34 | 7 | dvs | 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. |
| 35 | 1 | dvs | |
| 36 | 10 | dvs | Hardware database revisions available for *hwinfo*: 13.11, 14.19, 15.3, 15.21 and 16.0 ... |
| 37 | 1 | dvs | |
| 38 | 6 | dvs | h2. Adaptations within the Plugins |
| 39 | 6 | dvs | |
| 40 | 8 | dvs | 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): |
| 41 | 8 | dvs | # Ubuntu_9_04.pm |
| 42 | 8 | dvs | # Ubuntu_9.pm |
| 43 | 8 | dvs | # Ubuntu.pm |
| 44 | 8 | dvs | # Base.pm |
| 45 | 8 | dvs | |
| 46 | 8 | dvs | 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). |