summaryrefslogtreecommitdiffstats
path: root/boot-env
diff options
context:
space:
mode:
Diffstat (limited to 'boot-env')
-rw-r--r--boot-env/OpenSLX/BootEnvironment/Base.pm160
-rw-r--r--boot-env/OpenSLX/BootEnvironment/PBS.pm247
-rw-r--r--boot-env/OpenSLX/BootEnvironment/PXE.pm336
-rw-r--r--boot-env/OpenSLX/BootEnvironment/Preboot.pm209
-rw-r--r--boot-env/OpenSLX/BootEnvironment/Preboot/Base.pm111
-rw-r--r--boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm155
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm48
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Distro/Debian.pm61
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Distro/Scilin.pm61
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm62
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm73
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm38
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm453
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm42
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm143
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm264
-rwxr-xr-xboot-env/pbs/uclib-rootfs/bin/bbinit19
-rwxr-xr-xboot-env/pbs/uclib-rootfs/bin/handleEvents38
-rwxr-xr-xboot-env/pbs/uclib-rootfs/etc/bbinit.d/example32
-rw-r--r--boot-env/pbs/uclib-rootfs/etc/events/example2
-rwxr-xr-xboot-env/pbs/uclib-rootfs/init234
-rw-r--r--boot-env/pbs/uclib-rootfs/preboot/preboot-scripts/dialog.functions105
-rw-r--r--boot-env/preboot/conf/apache-openslx-preboot.conf24
-rwxr-xr-xboot-env/preboot/http-server/user_settings.pl97
-rwxr-xr-xboot-env/preboot/http-server/users.pl90
-rw-r--r--boot-env/preboot/preboot-scripts/dialog.functions105
-rwxr-xr-xboot-env/preboot/preboot.sh95
-rwxr-xr-xboot-env/preboot/uclib-rootfs/init216
l---------boot-env/preboot/uclib-rootfs/lib/libcurses.so1
l---------boot-env/preboot/uclib-rootfs/lib/libncurses.so1
l---------boot-env/preboot/uclib-rootfs/lib/libncurses.so.51
-rwxr-xr-xboot-env/preboot/uclib-rootfs/lib/libncurses.so.5.6bin229164 -> 0 bytes
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/bin/clearbin5156 -> 0 bytes
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/bin/dialogbin108520 -> 0 bytes
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/bin/w3mbin1093832 -> 0 bytes
l---------boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so1
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so.0.9.8bin1143120 -> 0 bytes
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/lib/libcurses.so11
l---------boot-env/preboot/uclib-rootfs/usr/lib/libform.so1
l---------boot-env/preboot/uclib-rootfs/usr/lib/libform.so.51
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/lib/libform.so.5.6bin39044 -> 0 bytes
l---------boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so1
l---------boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.51
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5.6bin21968 -> 0 bytes
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/lib/libncurses.so11
l---------boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so1
l---------boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.51
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5.6bin9212 -> 0 bytes
l---------boot-env/preboot/uclib-rootfs/usr/lib/libssl.so1
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8bin237392 -> 0 bytes
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/sbin/kdumpbin5200 -> 0 bytes
-rwxr-xr-xboot-env/preboot/uclib-rootfs/usr/sbin/kexecbin104068 -> 0 bytes
-rw-r--r--boot-env/syslinux/LICENSE3
-rw-r--r--boot-env/syslinux/README.iso6
-rw-r--r--boot-env/syslinux/README.pxe68
-rwxr-xr-xboot-env/syslinux/extlinuxbin52294 -> 0 bytes
-rw-r--r--boot-env/syslinux/initramfs-shutdownbin665088 -> 0 bytes
-rw-r--r--boot-env/syslinux/isolinux.binbin14336 -> 0 bytes
-rw-r--r--boot-env/syslinux/kernel-shutdownbin688752 -> 0 bytes
-rwxr-xr-xboot-env/syslinux/mboot.c32bin30380 -> 0 bytes
-rw-r--r--boot-env/syslinux/mbr.binbin440 -> 0 bytes
-rwxr-xr-xboot-env/syslinux/menu.c32bin54836 -> 0 bytes
-rw-r--r--boot-env/syslinux/pxechain.combin998 -> 0 bytes
-rw-r--r--boot-env/syslinux/pxelinux.0bin16662 -> 0 bytes
-rw-r--r--boot-env/syslinux/pxemenu-bottom.example39
-rw-r--r--boot-env/syslinux/pxemenu-include.example58
-rwxr-xr-xboot-env/syslinux/syslinuxbin25472 -> 0 bytes
-rw-r--r--boot-env/syslinux/themes/openslx/openslx.pngbin20453 -> 0 bytes
-rw-r--r--boot-env/syslinux/themes/openslx/theme.conf40
-rw-r--r--boot-env/syslinux/themes/openslxpbs/openslx.pngbin168728 -> 0 bytes
-rw-r--r--boot-env/syslinux/themes/openslxpbs/theme.conf40
-rwxr-xr-xboot-env/syslinux/vesamenu.c32bin147996 -> 0 bytes
72 files changed, 0 insertions, 3807 deletions
diff --git a/boot-env/OpenSLX/BootEnvironment/Base.pm b/boot-env/OpenSLX/BootEnvironment/Base.pm
deleted file mode 100644
index aa4cbe5b..00000000
--- a/boot-env/OpenSLX/BootEnvironment/Base.pm
+++ /dev/null
@@ -1,160 +0,0 @@
-# Copyright (c) 2008 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# BootEnvironment::Base.pm
-# - provides empty base of the BootEnvironment API.
-# -----------------------------------------------------------------------------
-package OpenSLX::BootEnvironment::Base;
-
-use strict;
-use warnings;
-
-our $VERSION = 1.01; # API-version . implementation-version
-
-use Clone qw(clone);
-use File::Basename;
-use File::Path;
-
-use OpenSLX::Basics;
-use OpenSLX::ConfigDB;
-use OpenSLX::MakeInitRamFS::Engine::SlxBoot;
-use OpenSLX::Utils;
-
-our %initramfsMap;
-
-sub new
-{
- my $class = shift;
-
- my $self = {};
-
- return bless $self, $class;
-}
-
-sub initialize
-{
- my $self = shift;
- my $params = shift;
-
- $self->{'dry-run'} = $params->{'dry-run'};
-
- return 1;
-}
-
-sub finalize
-{
- my $self = shift;
- my $delete = shift;
-
- return 1 if $self->{'dry-run'};
-
- my $rsyncDeleteClause = $delete ? '--delete' : '';
- my $rsyncCmd
- = "rsync -a $rsyncDeleteClause --delay-updates $self->{'target-path'}/ $self->{'original-path'}/";
- slxsystem($rsyncCmd) == 0
- or die _tr(
- "unable to rsync files from '%s' to '%s'! (%s)",
- $self->{'target-path'}, $self->{'original-path'}, $!
- );
- rmtree([$self->{'target-path'}]);
-
- return 1;
-}
-
-sub requiresDefaultClientConfig
-{
- my $self = shift;
-
- return $self->{'requires-default-client-config'};
-}
-
-sub writeBootloaderMenuFor
-{
- my $self = shift;
- my $client = shift;
- my $externalClientID = shift;
- my $systemInfos = shift;
-
- return;
-}
-
-sub writeFilesRequiredForBooting
-{
- my $self = shift;
- my $info = shift;
- my $buildPath = shift;
-
- my $kernelFile = $info->{'kernel-file'};
- my $kernelName = basename($kernelFile);
-
- my $vendorOSPath = "$self->{'target-path'}/$info->{'vendor-os'}->{name}";
- mkpath $vendorOSPath unless -e $vendorOSPath || $self->{'dry-run'};
-
- my $targetKernel = "$vendorOSPath/$kernelName";
- if (!-e $targetKernel) {
- vlog(1, _tr('copying kernel %s to %s', $kernelFile, $targetKernel));
- slxsystem(qq[cp -p "$kernelFile" "$targetKernel"])
- unless $self->{'dry-run'};
- }
-
- # create initramfs:
- my $initramfsName = "$vendorOSPath/$info->{'initramfs-name'}";
- vlog(1, _tr('generating initialramfs %s', $initramfsName));
- $self->_makeInitRamFS($info, $initramfsName);
- return 1;
-}
-
-sub _makeInitRamFS
-{
- my $self = shift;
- my $info = shift;
- my $initramfs = shift;
-
- my $vendorOS = $info->{'vendor-os'};
- my $kernelFile = basename(followLink($info->{'kernel-file'}));
-
- my $attrs = clone($info->{attrs} || {});
-
- chomp(my $slxVersion = qx{slxversion});
-
- my $params = {
- 'attrs' => $attrs,
- 'export-name' => $info->{export}->{name},
- 'export-uri' => $info->{'export-uri'},
- 'initramfs' => $initramfs,
- 'kernel-params'
- => [ split ' ', ($info->{attrs}->{kernel_params} || '') ],
- 'kernel-version' => $kernelFile =~ m[-(.+)$] ? $1 : '',
- 'plugins' => $info->{'active-plugins'},
- 'root-path'
- => "$openslxConfig{'private-path'}/stage1/$vendorOS->{name}",
- 'slx-version' => $slxVersion,
- 'system-name' => $info->{name},
- };
-
- # TODO: make debug-level an explicit attribute, it's used in many places!
- my $kernelParams = $info->{attrs}->{kernel_params} || '';
- if ($kernelParams =~ m{debug(?:=(\d+))?}) {
- my $debugLevel = defined $1 ? $1 : '1';
- $params->{'debug-level'} = $debugLevel;
- }
-
- my $makeInitRamFSEngine
- = OpenSLX::MakeInitRamFS::Engine::SlxBoot->new($params);
- $makeInitRamFSEngine->execute($self->{'dry-run'});
-
- # copy back kernel-params, as they might have been changed (by plugins)
- $info->{attrs}->{kernel_params}
- = join ' ', $makeInitRamFSEngine->kernelParams();
-
- return;
-}
-
-1;
diff --git a/boot-env/OpenSLX/BootEnvironment/PBS.pm b/boot-env/OpenSLX/BootEnvironment/PBS.pm
deleted file mode 100644
index 2072884b..00000000
--- a/boot-env/OpenSLX/BootEnvironment/PBS.pm
+++ /dev/null
@@ -1,247 +0,0 @@
-# Copyright (c) 2008 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# BootEnvironment::Preboot.pm
-# - provides general preboot implementation of the BootEnvironment API.
-# -----------------------------------------------------------------------------
-package OpenSLX::BootEnvironment::PBS;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::BootEnvironment::Base);
-
-use OpenSLX::MakeInitRamFS::Engine::PBS;
-
-use Clone qw(clone);
-use File::Basename;
-use File::Path;
-
-use Data::Dumper;
-
-use JSON;
-use HTTP::Request::Common;
-use LWP::UserAgent;
-
-use OpenSLX::Basics;
-use OpenSLX::ConfigDB qw(:support);
-use OpenSLX::Utils;
-
-sub initialize
-{
- my $self = shift;
- my $params = shift;
-
- return if !$self->SUPER::initialize($params);
-
- $self->{'original-path'} = "$openslxConfig{'public-path'}/pbs";
- $self->{'target-path'} = "$openslxConfig{'public-path'}/pbs.new";
-
- $self->{'requires-default-client-config'} = 0;
- # we do not need a default.tgz since there's always an explicit client
-
-
- if (!$self->{'dry-run'}) {
- mkpath([$self->{'original-path'}]);
- rmtree($self->{'target-path'});
- mkpath("$self->{'target-path'}/client-config");
- }
-
- return 1;
-}
-
-sub writeBootloaderMenuFor
-{
- my $self = shift;
- my $client = shift;
- my $externalClientID = shift;
- my $systemInfos = shift || [];
-
- my $prebootSystemInfo
- = clone($self->_pickSystemWithNewestKernel($systemInfos));
-
- vlog(
- 0,
- _tr(
- "\nsend preboot information for client '%s' to pbs (%s)\n".
- " (image templates provided based of %s) ...",
- $client->{name}, $client->{attrs}->{preboot_server}, $prebootSystemInfo->{name}
- )
- );
-
- $self->_createPrebootStuff($client, $prebootSystemInfo);
-
- my $kernel = "$self->{'target-path'}/imagebase/vmlinuz";
- my $initramfs = "$self->{'target-path'}/imagebase/initramfs";
-
- my $kernel_md5 = qx/md5sum $kernel | awk '{print \$1}'/;
- my $initramfs_md5 = qx/md5sum $initramfs | awk '{print \$1}'/;
-
- my $data_json = to_json({
- 'slxinfo' => qx/slxversion/,
- 'kernel' => basename($prebootSystemInfo->{'kernel-file'}),
- 'kernel_md5' => trim($kernel_md5),
- 'initramfs_md5' => trim($initramfs_md5),
- 'systems' => $systemInfos
- });
- my $ua = LWP::UserAgent->new;
- my $res = $ua->request(POST 'http://pbs.experimental.openslx.org/backend/system/sync', [data => $data_json]);
-
- if ($res->is_success) {
- my $resData = from_json($res->content);
- if ($resData->{'getKernel'} eq 'fresh') {
- $res = $ua->request(POST 'http://pbs.experimental.openslx.org/backend/system/addkernel',
- ['kernel' => basename($prebootSystemInfo->{'kernel-file'}),
- 'kernelFile' => ["$self->{'target-path'}/imagebase/vmlinuz"],
- 'initramfsFile' => ["$self->{'target-path'}/imagebase/initramfs"],
- ],
- 'Content_Type' => 'form-data'
- );
-
- print Dumper($res->content);
-
- } else {
- if ($resData->{'getKernel'} eq 'update') {
- $res = $ua->request(POST 'http://pbs.experimental.openslx.org/backend/system/updatekernel',
- ['kernel' => basename($prebootSystemInfo->{'kernel-file'}),
- 'kernelFile' => ["$self->{'target-path'}/imagebase/vmlinuz"],
- ],
- 'Content_Type' => 'form-data'
- );
-
- print Dumper($res->content);
- } else {
- # do nothing
- }
- if ($resData->{'getInitramfs'} eq 'update') {
- $res = $ua->request(POST 'http://pbs.experimental.openslx.org/backend/system/updateinitramfs',
- ['kernel' => basename($prebootSystemInfo->{'kernel-file'}),
- 'initramfsFile' => ["$self->{'target-path'}/imagebase/initramfs"],
- ],
- 'Content_Type' => 'form-data'
- );
-
- print Dumper($res->content);
- } else {
- # do nothing
- }
- }
- } else {
- vlog(0, 'communication with pbs failed.. please check and rerun..');
- }
-
- return 1;
-}
-
-sub _createPrebootStuff
-{
- my $self = shift;
- my $client = shift;
- my $info = shift;
-
- my $prebootClass = instantiateClass(
- "OpenSLX::BootEnvironment::Preboot::Base"
- );
-
- my $imagebase = "$self->{'target-path'}/imagebase";
-
- $prebootClass->initialize($self);
- $client->{attrs}->{boot_uri} = $client->{attrs}->{preboot_server};
- mkpath("$imagebase");
- $self->_makePBSInitRamFS($info, "$imagebase/initramfs", $client);
-
- my $kernelFile = $info->{'kernel-file'};
- my $kernelName = basename($kernelFile);
- slxsystem(qq{cp -p "$kernelFile" "$imagebase/vmlinuz"})
- unless $self->{'dry-run'};
-
- return 1;
-}
-
-sub _pickSystemWithNewestKernel
-{
- my $self = shift;
- my $systemInfos = shift;
-
- my $systemWithNewestKernel;
- my $newestKernelFileSortKey = '';
- foreach my $system (@$systemInfos) {
- next unless $system->{'kernel-file'} =~ m{
- (?:vmlinuz|x86)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?)
- }x;
- my $sortKey
- = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5);
- if ($newestKernelFileSortKey lt $sortKey) {
- $systemWithNewestKernel = $system;
- $newestKernelFileSortKey = $sortKey;
- }
- }
-
- if (!defined $systemWithNewestKernel) {
- die _tr("unable to pick a system to be used for preboot!");
- }
- return $systemWithNewestKernel;
-}
-
-sub _makePBSInitRamFS
-{
- my $self = shift;
- my $info = shift;
- my $initramfs = shift;
- my $client = shift;
-
- my $vendorOS = $info->{'vendor-os'};
- my $kernelFile = basename(followLink($info->{'kernel-file'}));
-
- my $attrs = clone($info->{attrs} || {});
-
- my $bootURI = $client->{attrs}->{boot_uri};
- if (!$bootURI) {
- die _tr("client $client->{name} needs an URI in attribute 'boot_uri' to be used for preboot!");
- }
-
- chomp(my $slxVersion = qx{slxversion});
-
- my $params = {
- 'attrs' => $attrs,
- 'export-name' => undef,
- 'export-uri' => undef,
- 'initramfs' => $initramfs,
- 'kernel-params'
- => [ split ' ', ($info->{attrs}->{kernel_params} || '') ],
- 'kernel-version' => $kernelFile =~ m[-(.+)$] ? $1 : '',
- 'plugins' => '',
- 'root-path'
- => "$openslxConfig{'private-path'}/stage1/$vendorOS->{name}",
- 'slx-version' => $slxVersion,
- 'system-name' => $info->{name},
- 'preboot-id' => $client->{name},
- 'boot-uri' => $bootURI,
- };
-
- # TODO: make debug-level an explicit attribute, it's used in many places!
- my $kernelParams = $info->{attrs}->{kernel_params} || '';
- if ($kernelParams =~ m{debug(?:=(\d+))?}) {
- my $debugLevel = defined $1 ? $1 : '1';
- $params->{'debug-level'} = $debugLevel;
- }
-
- my $makeInitRamFSEngine
- = OpenSLX::MakeInitRamFS::Engine::PBS->new($params);
- $makeInitRamFSEngine->execute($self->{'dry-run'});
-
- # copy back kernel-params, as they might have been changed (by plugins)
- $info->{attrs}->{kernel_params}
- = join ' ', $makeInitRamFSEngine->kernelParams();
-
- return;
-}
-
-1;
diff --git a/boot-env/OpenSLX/BootEnvironment/PXE.pm b/boot-env/OpenSLX/BootEnvironment/PXE.pm
deleted file mode 100644
index d46786d0..00000000
--- a/boot-env/OpenSLX/BootEnvironment/PXE.pm
+++ /dev/null
@@ -1,336 +0,0 @@
-# Copyright (c) 2008..2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# BootEnvironment::PXE.pm
-# - provides PXE-specific implementation of the BootEnvironment API.
-# -----------------------------------------------------------------------------
-package OpenSLX::BootEnvironment::PXE;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::BootEnvironment::Base);
-
-use File::Basename;
-use File::Path;
-# for sha1 passwd encryption
-use Digest::SHA1;
-use MIME::Base64;
-
-use OpenSLX::Basics;
-use OpenSLX::Utils;
-
-sub initialize
-{
- my $self = shift;
- my $params = shift;
-
- return if !$self->SUPER::initialize($params);
-
- $self->{'original-path'} = "$openslxConfig{'public-path'}/tftpboot";
- $self->{'target-path'} = "$openslxConfig{'public-path'}/tftpboot.new";
-
- $self->{'requires-default-client-config'} = 1;
-
- if (!$self->{'dry-run'}) {
- mkpath([$self->{'original-path'}]);
- rmtree($self->{'target-path'});
- mkpath("$self->{'target-path'}/client-config");
- }
-
- return 1;
-}
-
-sub writeBootloaderMenuFor
-{
- my $self = shift;
- my $client = shift;
- my $externalClientID = shift;
- my $systemInfos = shift;
-
- $self->_prepareBootloaderConfigFolder()
- unless $self->{preparedBootloaderConfigFolder};
-
- my $pxePath = $self->{'target-path'};
- my $pxeConfigPath = "$pxePath/pxelinux.cfg";
-
- my $pxeConfig = $self->_getTemplate();
- my $pxeFile = "$pxeConfigPath/$externalClientID";
- my $clientAppend = $client->{attrs}->{kernel_params_client} || '';
- my $bootURI = $client->{attrs}->{boot_uri} || '';
- vlog(1, _tr("writing PXE-file %s", $pxeFile));
-
- # set label for each system
- foreach my $info (@$systemInfos) {
- my $label = $info->{label} || '';
- if (!length($label) || $label eq $info->{name}) {
- if ($info->{name} =~ m{^(.+)::(.+)$}) {
- my $system = $1;
- my $exportType = $2;
- $label = $system . ' ' x (40-length($system)) . $exportType;
- } else {
- $label = $info->{name};
- }
- }
- $info->{menuLabel} = $label;
- }
-# if kernel=*xen* then run sub _xenLabel from xen.pm
- my $slxLabels = '';
- foreach my $info (sort { $a->{label} cmp $b->{label} } @$systemInfos) {
- my $vendorOSName = $info->{'vendor-os'}->{name};
- my $kernelName = basename($info->{'kernel-file'});
- my $append = $info->{attrs}->{kernel_params};
- my $pxeLabel = $info->{'external-id'};
- $pxeLabel =~ s/::/-/g;
- my $pxePrefix = '';
- my $tftpPrefix = '';
- $info->{'pxe_prefix_ip'} ||= '';
-
- # pxe_prefix_ip set and looks like a ip
- if ($info->{'pxe_prefix_ip'} =~ m/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/) {
- $pxePrefix = "$info->{'pxe_prefix_ip'}::";
- $tftpPrefix = "tftp://$info->{'pxe_prefix_ip'}"
- if ! length($bootURI);
- }
-
- # set default menu entry
- my $pxeDefault = "";
- if (defined $openslxConfig{'pxe-default-menu-entry'}) {
- if ($openslxConfig{'pxe-default-menu-entry'} eq
- $info->{'external-id'})
- {
- $pxeDefault = "\tMENU DEFAULT\n";
- }
- }
- $append .= " initrd=$pxePrefix$vendorOSName/$info->{'initramfs-name'}";
- $append .= " file=$bootURI" if length($bootURI);
- $append .= " file=$tftpPrefix" if length($tftpPrefix);
- $append .= " $clientAppend";
- $slxLabels .= "LABEL openslx-$pxeLabel\n";
- $slxLabels .= $pxeDefault;
- $slxLabels .= "\tMENU LABEL ^$info->{menuLabel}\n";
- $slxLabels .= "\tKERNEL $pxePrefix$vendorOSName/$kernelName\n";
- $slxLabels .= "\tAPPEND $append\n";
- $slxLabels .= "\tIPAPPEND 3\n";
-# if kernel=*xen* then run sub _xenBootEntry from xen.pm
-# if (!defined $xenKernel) {...}
- my $helpText = $info->{description} || '';
- if (length($helpText)) {
- # make sure that text matches the given margin
- my $menuMargin;
- while ($pxeConfig =~ m{^\s*MENU MARGIN (\S+?)\s*$}gims) {
- chomp($menuMargin = $1);
- }
- my $margin
- = defined $menuMargin
- ? "$menuMargin"
- : "0";
- my $marginAsText = ' ' x $margin;
-
- my $menuWidth;
- while ($pxeConfig =~ m{^\s*MENU WIDTH (\S+?)\s*$}gims) {
- chomp($menuWidth = $1);
- }
- my $width
- = defined $menuWidth
- ? "$menuWidth"
- : "80";
- $width = $width - 2* $margin + 2;
-
- my @atomicHelpText = split(/ /, $helpText);
- my $lineCounter = 0;
-
- $helpText = "";
-
- foreach my $word (@atomicHelpText){
- if ($lineCounter + length($word) + 1 < $width) {
- $helpText .= "$word ";
- $lineCounter += length($word) + 1;
- } else {
- my $nobreak = 1;
- while ($nobreak == 1) {
- my $pos = index($word,"-");
- $nobreak = 0;
- if ($pos != -1) {
- if ($lineCounter + $pos + 1 < $width) {
- $helpText .= substr($word, 0, $pos+1);
- $word = substr($word, $pos + 1, length($word));
- $nobreak = 1;
- }
- }
- }
- $helpText .= "\n$word ";
- $lineCounter = length($word);
- }
- }
-
- $helpText =~ s{^}{$marginAsText}gms;
- $slxLabels .= "\tTEXT HELP\n";
- $slxLabels .= "$helpText\n";
- $slxLabels .= "\tENDTEXT\n";
- }
- }
- # now add the slx-labels (inline or appended) and write the config file
- if (!($pxeConfig =~ s{\@\@\@SLX_LABELS\@\@\@}{$slxLabels})) {
- $pxeConfig .= $slxLabels;
- # fetch PXE-bottom iclude, if exists (overwrite existing definitions)
- my $pxeBottomFile
- = "$openslxConfig{'config-path'}/boot-env/syslinux/pxemenu-bottom";
- if (-e $pxeBottomFile) {
- $pxeConfig .= "\n# configuration from include $pxeBottomFile\n";
- $pxeConfig .= slurpFile($pxeBottomFile);
- }
- }
-
- # PXE uses 'cp850' (codepage 850) but our string is in utf-8, we have
- # to convert in order to avoid showing gibberish on the client side...
- spitFile($pxeFile, $pxeConfig, { 'io-layer' => 'encoding(cp850)' } )
- unless $self->{'dry-run'};
-
- return 1;
-}
-
-sub _getTemplate
-{
- my $self = shift;
-
- return $self->{'pxe-template'} if $self->{'pxe-template'};
-
- my $basePath = $openslxConfig{'base-path'};
- my $configPath = $openslxConfig{'config-path'};
- my $pxeTheme = $openslxConfig{'syslinux-theme'};
-
- my ($sec, $min, $hour, $day, $mon, $year) = (localtime);
- $mon++;
- $year += 1900;
- my $callDate = sprintf('%04d-%02d-%02d', $year, $mon, $day);
- my $callTime = sprintf('%02d:%02d:%02d', $hour, $min, $sec);
-
- # generate PXE-Menu
- my $pxeTemplate =
- "# generated by slxconfig-demuxer (on $callDate at $callTime)\n";
- $pxeTemplate .= "\nDEFAULT vesamenu.c32\n";
- # include static defaults
- $pxeTemplate .= "\n# static configuration (override with include file)\n";
- $pxeTemplate .= "NOESCAPE 0\n";
- $pxeTemplate .= "PROMPT 0\n";
-
- # first check for theme
- # let user stuff in config path win over our stuff in base path
- my $pxeThemePath;
- my $pxeThemeInConfig
- = "$configPath/boot-env/syslinux/themes/${pxeTheme}";
- my $pxeThemeInBase
- = "$basePath/share/boot-env/syslinux/themes/${pxeTheme}";
- if (-e "$pxeThemeInConfig/theme.conf") {
- $pxeThemePath = $pxeThemeInConfig;
- }
- else {
- if (-e "$pxeThemeInBase/theme.conf") {
- $pxeThemePath = $pxeThemeInBase;
- }
- }
- # include theme specific stuff
- if (defined $pxeThemePath) {
- $pxeTemplate .= "\n# theme specific configuration from $pxeThemePath\n";
- $pxeTemplate .= slurpFile("$pxeThemePath/theme.conf");
- }
-
- # copy background picture if exists
- my $pic;
- if (defined $pxeTheme) {
- while ($pxeTemplate =~ m{^\s*MENU BACKGROUND (\S+?)\s*$}gims) {
- chomp($pic = $1);
- }
- }
- if (defined $pic) {
- my $pxeBackground = "$pxeThemePath/$pic";
- if (-e $pxeBackground && !$self->{'dry-run'}) {
- slxsystem(qq[cp "$pxeBackground" $self->{'target-path'}/]);
- }
- }
-
- # include slxsettings
- $pxeTemplate .= "\n# slxsettings configuration\n";
- $pxeTemplate .= "TIMEOUT $openslxConfig{'pxe-timeout'}\n" || "";
- $pxeTemplate .= "TOTALTIMEOUT $openslxConfig{'pxe-totaltimeout'}\n" || "";
- my $sha1pass = $self->_sha1pass($openslxConfig{'pxe-passwd'});
- $pxeTemplate .= "MENU MASTER PASSWD $sha1pass\n" || "";
- $pxeTemplate .= "MENU TITLE $openslxConfig{'pxe-title'}\n" || "";
-
- # fetch PXE-include, if exists (overwrite existing definitions)
- my $pxeIncludeFile
- = "$openslxConfig{'config-path'}/boot-env/syslinux/pxemenu-include";
- if (-e $pxeIncludeFile) {
- $pxeTemplate .= "\n# configuration from include $pxeIncludeFile\n";
- $pxeTemplate .= slurpFile($pxeIncludeFile);
- }
-
- $pxeTemplate .= "\n# slxsystems:\n";
- $self->{'pxe-template'} = $pxeTemplate;
-
- return $pxeTemplate;
-}
-
-sub _prepareBootloaderConfigFolder
-{
- my $self = shift;
-
- my $basePath = $openslxConfig{'base-path'};
- my $pxePath = $self->{'target-path'};
- my $pxeConfigPath = "$pxePath/pxelinux.cfg";
-
- if (!$self->{'dry-run'}) {
- rmtree($pxeConfigPath);
- mkpath($pxeConfigPath);
-
- for my $file ('pxelinux.0', 'pxechain.com', 'vesamenu.c32',
- 'mboot.c32', 'kernel-shutdown', 'initramfs-shutdown') {
- if (!-e "$pxePath/$file") {
- slxsystem(
- qq[cp -p "$basePath/share/boot-env/syslinux/$file" $pxePath/]
- );
- }
- }
- }
-
- $self->{preparedBootloaderConfigFolder} = 1;
-
- return 1;
-}
-
-# from syslinux 3.73: http://syslinux.zytor.com
-sub _random_bytes
-{
- my $self = shift;
- my $n = shift;
- my($v, $i);
-
- # using perl rand because of problems with encoding(cp850) and 'bytes'
- srand($$ ^ time);
- $v = '';
- for ( $i = 0 ; $i < $n ; $i++ ) {
- $v .= ord(int(rand() * 256));
- }
-
- return $v;
-}
-
-sub _sha1pass
-{
- my $self = shift;
- my $pass = shift;
- my $salt = shift || MIME::Base64::encode($self->_random_bytes(6), '');
- $pass = Digest::SHA1::sha1_base64($salt, $pass);
-
- return sprintf('$4$%s$%s$', $salt, $pass);
-}
-
-1;
diff --git a/boot-env/OpenSLX/BootEnvironment/Preboot.pm b/boot-env/OpenSLX/BootEnvironment/Preboot.pm
deleted file mode 100644
index b06de7d2..00000000
--- a/boot-env/OpenSLX/BootEnvironment/Preboot.pm
+++ /dev/null
@@ -1,209 +0,0 @@
-# Copyright (c) 2008 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# BootEnvironment::Preboot.pm
-# - provides general preboot implementation of the BootEnvironment API.
-# -----------------------------------------------------------------------------
-package OpenSLX::BootEnvironment::Preboot;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::BootEnvironment::Base);
-
-use Clone qw(clone);
-use File::Basename;
-use File::Path;
-
-use OpenSLX::Basics;
-use OpenSLX::ConfigDB qw(:support);
-use OpenSLX::Utils;
-
-sub initialize
-{
- my $self = shift;
- my $params = shift;
-
- return if !$self->SUPER::initialize($params);
-
- $self->{'original-path'} = "$openslxConfig{'public-path'}/preboot";
- $self->{'target-path'} = "$openslxConfig{'public-path'}/preboot.new";
-
- $self->{'requires-default-client-config'} = 0;
- # we do not need a default.tgz since there's always an explicit client
-
- if (!$self->{'dry-run'}) {
- mkpath([$self->{'original-path'}]);
- rmtree($self->{'target-path'});
- mkpath("$self->{'target-path'}/client-config");
- }
-
- return 1;
-}
-
-sub writeBootloaderMenuFor
-{
- my $self = shift;
- my $client = shift;
- my $externalClientID = shift;
- my $systemInfos = shift || [];
-
- $self->_prepareBootloaderConfigFolder()
- unless $self->{preparedBootloaderConfigFolder};
-
- my $prebootSystemInfo
- = clone($self->_pickSystemWithNewestKernel($systemInfos));
-
- $self->_createImages($client, $prebootSystemInfo);
-
- my $externalClientName = externalConfigNameForClient($client);
- my $bootloaderPath = "$self->{'target-path'}/bootloader";
- my $bootloaderConfigPath = "$bootloaderPath/$externalClientName";
- mkpath($bootloaderConfigPath) unless $self->{'dry-run'};
- my $menuFile = "$bootloaderConfigPath/bootmenu.dialog";
-
- my $clientAppend = $client->{attrs}->{kernel_params_client} || '';
- vlog(1, _tr("writing bootmenu %s", $menuFile));
-
- # set label for each system
- foreach my $info (@$systemInfos) {
- my $label = $info->{label} || '';
- if (!length($label) || $label eq $info->{name}) {
- $label = $info->{name};
- }
- $info->{label} = $label;
- }
- my $bootmenuEntries = '';
- my $entryState = 'on';
- my $counter = 1;
- foreach my $info (sort { $a->{label} cmp $b->{label} } @$systemInfos) {
- my $vendorOSName = $info->{'vendor-os'}->{name};
- my $kernelName = basename($info->{'kernel-file'});
- my $append = $info->{attrs}->{kernel_params} || '';
- $append .= " $clientAppend";
- $bootmenuEntries .= qq{ "$counter" "$info->{label}" };
- $entryState = 'off';
-
- # create a file containing the boot-configuration for this system
- my $systemDescr = unshiftHereDoc(<<" End-of-Here");
- label="$info->{label}"
- kernel="$vendorOSName/$kernelName"
- initramfs="$vendorOSName/$info->{'initramfs-name'}"
- append="$append"
- End-of-Here
- my $systemFile = "$bootloaderConfigPath/$info->{name}";
- spitFile(
- $systemFile, $systemDescr, { 'io-layer' => 'encoding(iso8859-1)' }
- ) unless $self->{'dry-run'};
- slxsystem(qq{ln -sf $info->{name} $bootloaderConfigPath/$counter});
- $counter++;
- }
-
- my $entryCount = @$systemInfos;
- my $bootmenu = unshiftHereDoc(<<" End-of-Here");
- --no-cancel --menu "OpenSLX Boot Menu" 20 65 $entryCount $bootmenuEntries
- End-of-Here
-
- if (!$self->{'dry-run'}) {
- # default to iso encoding, let's see how uclibc copes with it ...
- spitFile($menuFile, $bootmenu, { 'io-layer' => 'encoding(iso8859-1)' });
-
- # copy the preboot script into the folder to be tared
- my $prebootBasePath
- = "$openslxConfig{'base-path'}/share/boot-env/preboot";
- slxsystem(qq{cp $prebootBasePath/preboot.sh $bootloaderConfigPath/});
- slxsystem(qq{cp -r $prebootBasePath/preboot-scripts $bootloaderConfigPath/});
- slxsystem(qq{chmod a+x $bootloaderConfigPath/preboot.sh});
-
- # create a tar which can/will be downloaded by prebooting clients
- my $tarCMD
- = qq{cd $bootloaderConfigPath; tar -czf "${bootloaderConfigPath}.env" *};
- slxsystem($tarCMD);
- rmtree($bootloaderConfigPath);
- }
-
- return 1;
-}
-
-sub _createImages
-{
- my $self = shift;
- my $client = shift;
- my $info = shift;
-
- my %mediaMap = (
- 'cd' => 'CD',
- );
- my $prebootMedia = $client->{attrs}->{preboot_media} || '';
- if (!$prebootMedia) {
- warn _tr(
- "no preboot-media defined for client %s, no images will be generated!",
- $client->{name}
- );
- return 0;
- }
- foreach my $mediumName (split m{, }, $prebootMedia) {
- my $moduleName = $mediaMap{$mediumName}
- or die _tr(
- "'%s' is not one of the supported preboot-medias (cd)",
- $mediumName
- );
-
- my $prebootMedium = instantiateClass(
- "OpenSLX::BootEnvironment::Preboot::$moduleName"
- );
- $prebootMedium->initialize($self);
- $prebootMedium->createImage($client, $info);
- }
-
- return 1;
-}
-
-sub _prepareBootloaderConfigFolder
-{
- my $self = shift;
-
- my $bootloaderPath = "$self->{'target-path'}/bootloader";
- if (!$self->{'dry-run'}) {
- rmtree($bootloaderPath);
- mkpath($bootloaderPath);
- }
-
- $self->{preparedBootloaderConfigFolder} = 1;
-
- return 1;
-}
-
-sub _pickSystemWithNewestKernel
-{
- my $self = shift;
- my $systemInfos = shift;
-
- my $systemWithNewestKernel;
- my $newestKernelFileSortKey = '';
- foreach my $system (@$systemInfos) {
- next unless $system->{'kernel-file'} =~ m{
- (?:vmlinuz|x86)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?)
- }x;
- my $sortKey
- = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5);
- if ($newestKernelFileSortKey lt $sortKey) {
- $systemWithNewestKernel = $system;
- $newestKernelFileSortKey = $sortKey;
- }
- }
-
- if (!defined $systemWithNewestKernel) {
- die _tr("unable to pick a system to be used for preboot!");
- }
- return $systemWithNewestKernel;
-}
-
-1;
diff --git a/boot-env/OpenSLX/BootEnvironment/Preboot/Base.pm b/boot-env/OpenSLX/BootEnvironment/Preboot/Base.pm
deleted file mode 100644
index 89f0e07e..00000000
--- a/boot-env/OpenSLX/BootEnvironment/Preboot/Base.pm
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright (c) 2008-2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# BootEnvironment::Preboot::Base.pm
-# - base of the Preboot-BootEnvironment API.
-# -----------------------------------------------------------------------------
-package OpenSLX::BootEnvironment::Preboot::Base;
-
-use strict;
-use warnings;
-
-use File::Basename;
-
-use Clone qw(clone);
-
-use OpenSLX::Basics;
-use OpenSLX::MakeInitRamFS::Engine::Preboot;
-use OpenSLX::Utils;
-
-sub new
-{
- my $class = shift;
-
- my $self = {};
-
- return bless $self, $class;
-}
-
-sub initialize
-{
- my $self = shift;
- my $params = shift;
-
- $self->{'dry-run'} = $params->{'dry-run'};
-
- return 1;
-}
-
-sub makePrebootInitRamFS
-{
- my $self = shift;
- my $info = shift;
- my $initramfs = shift;
- my $client = shift;
-
- my $vendorOS = $info->{'vendor-os'};
- my $kernelFile = basename(followLink($info->{'kernel-file'}));
-
- my $attrs = clone($info->{attrs} || {});
-
- my $bootURI = $client->{attrs}->{boot_uri};
- if (!$bootURI) {
- die _tr("client $client->{name} needs an URI in attribute 'boot_uri' to be used for preboot!");
- }
-
- chomp(my $slxVersion = qx{slxversion});
-
- my $params = {
- 'attrs' => $attrs,
- 'export-name' => undef,
- 'export-uri' => undef,
- 'initramfs' => $initramfs,
- 'kernel-params'
- => [ split ' ', ($info->{attrs}->{kernel_params} || '') ],
- 'kernel-version' => $kernelFile =~ m[-(.+)$] ? $1 : '',
- 'plugins' => '',
- 'root-path'
- => "$openslxConfig{'private-path'}/stage1/$vendorOS->{name}",
- 'slx-version' => $slxVersion,
- 'system-name' => $info->{name},
- 'preboot-id' => $client->{name},
- 'boot-uri' => $bootURI,
- };
-
- # TODO: make debug-level an explicit attribute, it's used in many places!
- my $kernelParams = $info->{attrs}->{kernel_params} || '';
- if ($kernelParams =~ m{debug(?:=(\d+))?}) {
- my $debugLevel = defined $1 ? $1 : '1';
- $params->{'debug-level'} = $debugLevel;
- }
-
- my $makeInitRamFSEngine
- = OpenSLX::MakeInitRamFS::Engine::Preboot->new($params);
- $makeInitRamFSEngine->execute($self->{'dry-run'});
-
- # copy back kernel-params, as they might have been changed (by plugins)
- $info->{attrs}->{kernel_params}
- = join ' ', $makeInitRamFSEngine->kernelParams();
-
- return;
-}
-
-sub createImage
-{
- my $self = shift;
- my $client = shift;
- my $info = shift;
-
- # override in subclasses!
-
- return 1;
-}
-
-1;
diff --git a/boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm b/boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm
deleted file mode 100644
index a6c36cd7..00000000
--- a/boot-env/OpenSLX/BootEnvironment/Preboot/CD.pm
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright (c) 2008-2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# BootEnvironment::Preboot::CD.pm
-# - provides CD-specific implementation of the Preboot-BootEnvironment API.
-# -----------------------------------------------------------------------------
-package OpenSLX::BootEnvironment::Preboot::CD;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::BootEnvironment::Preboot::Base);
-
-use File::Basename;
-use File::Path;
-
-use OpenSLX::Basics;
-use OpenSLX::Utils;
-
-sub createImage
-{
- my $self = shift;
- my $client = shift;
- my $info = shift;
-
- vlog(
- 0,
- _tr(
- "\ncreating CD-image for client %s (based on %s) ...",
- $client->{name}, $info->{name}
- )
- );
-
- my $imageDir = "$openslxConfig{'public-path'}/images/$client->{name}/cd";
- my $isoDir = "$imageDir/iso/isolinux";
- mkpath($isoDir) unless $self->{'dry-run'};
-
- # copy static data
- my $dataDir = "$openslxConfig{'base-path'}/share/boot-env/syslinux";
- for my $file ('LICENSE', 'README.iso', 'vesamenu.c32', 'isolinux.bin') {
- if (!-e "$isoDir/$file") {
- slxsystem(
- qq[cp -p "$dataDir/$file" "$isoDir/"]
- )
- unless $self->{'dry-run'};
- }
- }
-
- # copy kernel (take the one from the given system info)
- my $kernelFile = $info->{'kernel-file'};
- my $kernelName = basename($kernelFile);
- slxsystem(qq{cp -p "$kernelFile" "$isoDir/vmlinuz"})
- unless $self->{'dry-run'};
-
- # create initramfs
- my $initramfsName = qq{"$isoDir/initramfs"};
- $self->makePrebootInitRamFS($info, $initramfsName, $client);
-
- # write trivial isolinux config
- # include static defaults
- my $isolinuxConfig = "DEFAULT vesamenu.c32\n";
- $isolinuxConfig .= "PROMPT 0\n";
- $isolinuxConfig .= "TIMEOUT 100\n";
-
- # theme stuff
- my $basePath = $openslxConfig{'base-path'};
- my $configPath = $openslxConfig{'config-path'};
- my $isoTheme = $openslxConfig{'syslinux-theme'};
-
- my $isoThemePath;
- my $isoThemeInConfig
- = "$configPath/boot-env/syslinux/themes/${isoTheme}";
- my $isoThemeInBase
- = "$basePath/share/boot-env/syslinux/themes/${isoTheme}";
- if (-e "$isoThemeInConfig/theme.conf") {
- $isoThemePath = $isoThemeInConfig;
- }
- else {
- if (-e "$isoThemeInBase/theme.conf") {
- $isoThemePath = $isoThemeInBase;
- }
- }
- # include theme specific stuff
- if (defined $isoThemePath) {
- $isolinuxConfig .= slurpFile("$isoThemePath/theme.conf");
- }
-
- # copy background picture if exists
- my $pic;
- if (defined $isoTheme) {
- while ($isolinuxConfig =~ m{^\s*MENU BACKGROUND (\S+?)\s*$}gims) {
- chomp($pic = $1);
- }
- }
- if (defined $pic) {
- my $isoBackground = "$isoThemePath/$pic";
- if (-e $isoBackground && !$self->{'dry-run'}) {
- slxsystem(qq[cp "$isoBackground" "$isoDir/"]);
- }
- }
-
- # write trivial isolinux config
- $isolinuxConfig .= unshiftHereDoc(<<" End-of-Here");
- MENU TITLE Welcome to OpenSLX PreBoot ISO/CD (Mini Linux/Kexec)
- LABEL SLXSTDBOOT
- MENU LABEL OpenSLX PreBoot - Stateless Netboot Linux ...
- MENU DEFAULT
- KERNEL vmlinuz
- APPEND initrd=initramfs vga=0x317
- TEXT HELP
- Use this (default) entry if you have configured your client.
- You have chance to edit the kernel commandline by hitting
- the TAB key (e.g. for adding debug=3 to it for bug hunting).
- ENDTEXT
- LABEL LOCALBOOT
- MENU LABEL Boot locally (skip OpenSLX PreBoot) ...
- LOCALBOOT -1
- TEXT HELP
- Gets you out of here by booting from next device in BIOS
- boot order.
- ENDTEXT
- End-of-Here
- spitFile("$isoDir/isolinux.cfg", $isolinuxConfig);
-
- my $mkisoCmd = unshiftHereDoc(<<" End-of-Here");
- mkisofs
- -o "$imageDir/../$client->{name}.iso"
- -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4
- -r -J -l -boot-info-table -joliet-long
- -publisher "OpenSLX Project - http://www.openslx.org"
- -p "OpenSLX Project - openslx-devel\@openslx.org"
- -V "OpenSLX BootISO"
- -volset "OpenSLX Project - PreBoot ISO/CD for non PXE/TFTP start of a Linux Stateless Client"
- -c isolinux/boot.cat "$imageDir/iso"
- End-of-Here
- $mkisoCmd =~ s{\n\s*}{ }gms;
- my $logFile = "$imageDir/../$client->{name}.iso.log";
- if (slxsystem(qq{$mkisoCmd 2>"$logFile"})) {
- my $log = slurpFile($logFile);
- die _tr("unable to create ISO-image - log follows:\n%s", $log);
- }
-
- rmtree($imageDir);
-
- return 1;
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm b/boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm
deleted file mode 100644
index 9be218e8..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Distro/Base.pm
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 2006, 2007 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitRamFS::Distro::Base.pm
-# - provides empty base of the distro-specific part of the OpenSLX
-# MakeInitRamFS API.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Distro::Base;
-
-use strict;
-use warnings;
-
-our $VERSION = 1.01; # API-version . implementation-version
-
-use OpenSLX::Basics;
-
-################################################################################
-### interface methods
-################################################################################
-sub new
-{
- my $class = shift;
- my $self = {
- 'base-name' => 'base',
- };
- return bless $self, $class;
-}
-
-sub applyChanges
-{
-}
-
-sub determineMatchingHwinfoVersion
-{
- my $self = shift;
- my $distroVersion = shift;
-
- return '15.3';
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Distro/Debian.pm b/boot-env/OpenSLX/MakeInitRamFS/Distro/Debian.pm
deleted file mode 100644
index 7174474d..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Distro/Debian.pm
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright (c) 2006..2010 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitRamFS::Distro::Debian.pm
-# - provides Debian-specific overrides of the MakeInitRamFS::Distro API.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Distro::Debian;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::MakeInitRamFS::Distro::Base);
-
-use OpenSLX::Basics;
-
-################################################################################
-### implementation
-################################################################################
-sub new
-{
- my $class = shift;
- my $self = {
- 'base-name' => 'debian',
- };
- return bless $self, $class;
-}
-
-sub applyChanges
-{
- my $self = shift;
- my $engine = shift;
-
- $engine->_addFilteredKernelModules( qw( af_packet hid hid-bright unix ));
-
- return;
-}
-
-sub determineMatchingHwinfoVersion
-{
- my $self = shift;
- my $distroVersion = shift;
-
- # to be checked
- my %versionMap = (
- '3.0' => '13.11',
- '4.0' => '14.19',
- '5.0' => '15.3',
- '6.0' => '16.0',
- );
- return $versionMap{$distroVersion}
- || $self->SUPER::determineMatchingHwinfoVersion($distroVersion);
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Distro/Scilin.pm b/boot-env/OpenSLX/MakeInitRamFS/Distro/Scilin.pm
deleted file mode 100644
index f2372f8f..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Distro/Scilin.pm
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright (c) 2009..2010 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitRamFS::Distro::Scilin.pm
-# - provides Scientific Linux specific overrides of the
-# MakeInitRamFS::Distro API.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Distro::Scilin;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::MakeInitRamFS::Distro::Base);
-
-use OpenSLX::Basics;
-
-################################################################################
-### implementation
-################################################################################
-sub new
-{
- my $class = shift;
- my $self = {
- 'base-name' => 'scilin',
- };
- return bless $self, $class;
-}
-
-sub applyChanges
-{
- my $self = shift;
- my $engine = shift;
- # filter modules which are part of the main kernel already
- $engine->_addFilteredKernelModules( qw( af_packet hid hid-bright usbhid unix vesafb fbcon ));
-
- return;
-}
-
-sub determineMatchingHwinfoVersion
-{
- my $self = shift;
- my $distroVersion = shift;
-
- my %versionMap = (
- '4.7' => '13.11',
- '5.3' => '15.3',
- '5.4' => '15.21',
- '5.5' => '16.0',
- );
- return $versionMap{$distroVersion}
- || $self->SUPER::determineMatchingHwinfoVersion($distroVersion);
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm b/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm
deleted file mode 100644
index cb106924..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Distro/Suse.pm
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (c) 2006..2010 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitRamFS::Distro::SUSE.pm
-# - provides SUSE-specific overrides of the MakeInitRamFS::Distro API.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Distro::Suse;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::MakeInitRamFS::Distro::Base);
-
-use OpenSLX::Basics;
-
-################################################################################
-### implementation
-################################################################################
-sub new
-{
- my $class = shift;
- my $self = {
- 'base-name' => 'suse',
- };
- return bless $self, $class;
-}
-
-sub applyChanges
-{
- my $self = shift;
- my $engine = shift;
-
- $engine->_addFilteredKernelModules( qw( hid hid-bright unix vesafb fbcon ));
-
- return;
-}
-
-sub determineMatchingHwinfoVersion
-{
- my $self = shift;
- my $distroVersion = shift;
-
- my %versionMap = (
- '10.2' => '13.11',
- '10.3' => '14.19',
- '11.0' => '15.3',
- '11.1' => '15.21',
- '11.2' => '16.0',
- '11.3' => '16.0'
- );
- return $versionMap{$distroVersion}
- || $self->SUPER::determineMatchingHwinfoVersion($distroVersion);
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm b/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm
deleted file mode 100644
index 2c59bbae..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu.pm
+++ /dev/null
@@ -1,73 +0,0 @@
- # Copyright (c) 2006..2010 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitRamFS::Distro::Ubuntu.pm
-# - provides Ubuntu-specific overrides of the MakeInitRamFS::Distro API.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Distro::Ubuntu;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::MakeInitRamFS::Distro::Base);
-
-use OpenSLX::Basics;
-
-################################################################################
-### implementation
-################################################################################
-sub new
-{
- my $class = shift;
- my $self = {
- 'base-name' => 'ubuntu',
- };
- return bless $self, $class;
-}
-
-# filter out modules not present (e.g. because compiled into the kernel)
-sub applyChanges
-{
- my $self = shift;
- my $engine = shift;
-
- #if ($engine->{'distro-name'} =~ m{-([^-]+)$}) {
- # my $distroVersion = 0.0 + $1;
- # if ($distroVersion <= 8.10) {
- # $engine->_addFilteredKernelModules( qw( unix hid-bright ));
- # }
- # else {
- # $engine->_addFilteredKernelModules( qw( unix hid-bright af_packet uhci-hcd ohci-hcd ));
- # }
- #}
- $engine->_addFilteredKernelModules( qw( unix hid-bright af_packet uhci-hcd ohci-hcd ));
-
- return;
-}
-
-sub determineMatchingHwinfoVersion
-{
- my $self = shift;
- my $distroVersion = shift;
-
- # Please check, if correct
- my %versionMap = (
- '7.10' => '14.19',
- '8.04' => '15.3',
- '8.10' => '15.21',
- '9.04' => '15.21',
- '9.10' => '16.0',
- '10.04' => '16.0',
- );
- return $versionMap{$distroVersion}
- || $self->SUPER::determineMatchingHwinfoVersion($distroVersion);
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm b/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm
deleted file mode 100644
index b0087253..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Distro/Ubuntu_9.pm
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitRamFS::Distro::Ubuntu_9.pm
-# - provides Ubuntu-9.X-specific overrides of the MakeInitRamFS::Distro API.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Distro::Ubuntu_9;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::MakeInitRamFS::Distro::Ubuntu);
-
-use OpenSLX::Basics;
-
-################################################################################
-### implementation
-################################################################################
-sub applyChanges
-{
- my $self = shift;
- my $engine = shift;
-
- $engine->_addFilteredKernelModules(
- qw( af_packet unix hid uhci-hcd ohci-hcd )
- );
-
- return;
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm b/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm
deleted file mode 100644
index b09543dc..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm
+++ /dev/null
@@ -1,453 +0,0 @@
-# Copyright (c) 2006..2010 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitialRamFS::Engine::Base.pm
-# - provides basic driver engine for MakeInitialRamFS API.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Engine::Base;
-
-use strict;
-use warnings;
-use Switch;
-
-use File::Basename;
-use POSIX qw(strftime);
-
-use OpenSLX::Basics;
-use OpenSLX::LibScanner;
-use OpenSLX::OSPlugin::Roster;
-use OpenSLX::Utils;
-
-################################################################################
-### interface methods
-################################################################################
-sub new
-{
- my $class = shift;
- my $params = shift || {};
-
- checkParams($params, {
- 'attrs' => '!',
- 'debug-level' => '?',
- 'export-name' => '!',
- 'export-uri' => '!',
- 'initramfs' => '!',
- 'kernel-params' => '!',
- 'kernel-version' => '!',
- 'plugins' => '!',
- 'root-path' => '!',
- 'slx-version' => '!',
- 'system-name' => '!',
- 'preboot-id' => '?',
- 'boot-uri' => '?',
- } );
-
- my $self = $params;
-
- $self->{'system-name'} =~ m{^([^\-]+)-([^:\-]+)}
- or die "unable to extract distro-info from $self->{'system-name'}!";
-
- $self->{'distro-name'} = lc($1);
- $self->{'distro-ver'} = $2;
-
- my $fullDistroName = lc($1) . '-' . $2;
-
- $self->{distro} = loadDistroModule({
- distroName => $fullDistroName,
- distroScope => 'OpenSLX::MakeInitRamFS::Distro',
- });
- if (!$self->{distro}) {
- die _tr(
- 'unable to load any MakeInitRamFS::Distro module for system %s!',
- $self->{'system-name'}
- );
- }
-
- $self->{'lib-scanner'}
- = OpenSLX::LibScanner->new({ 'root-path' => $self->{'root-path'} });
-
- $self->{'suggested-kernel-modules'} = [];
- $self->{'filtered-kernel-modules'} = [];
-
- return bless $self, $class;
-}
-
-sub execute
-{
- my $self = shift;
- my $dryRun = shift;
-
- $self->_collectCMDs();
-
- vlog(1, _tr("creating initramfs '%s' ...", $self->{'initramfs'}));
- $self->_executeCMDs() unless $dryRun;
-
- return;
-}
-
-sub haveKernelParam
-{
- my $self = shift;
- my $param = shift;
-
- return ref $param eq 'Regexp'
- ? grep { $_ =~ $param } @{ $self->{'kernel-params'} }
- : grep { $_ eq $param } @{ $self->{'kernel-params'} };
-}
-
-sub addKernelParams
-{
- my $self = shift;
-
- push @{ $self->{'kernel-params'} }, @_;
-
- return;
-}
-
-sub kernelParams
-{
- my $self = shift;
-
- return @{ $self->{'kernel-params'} };
-}
-
-sub addKernelModules
-{
- my $self = shift;
-
- push @{ $self->{'suggested-kernel-modules'} }, @_;
-
- return;
-}
-
-################################################################################
-### implementation methods
-################################################################################
-sub _executeCMDs
-{
- my $self = shift;
-
- foreach my $cmd (@{$self->{CMDs}}) {
- if (ref($cmd) eq 'HASH') {
- vlog(3, "writing $cmd->{file}");
- my $flags = defined $cmd->{mode} ? { mode => $cmd->{mode} } : undef;
- spitFile($cmd->{file}, $cmd->{content}, $flags);
- }
- else {
- vlog(3, "executing: $cmd");
- if (slxsystem($cmd)) {
- die _tr(
- "unable to execute shell-cmd\n\t%s", $cmd
- );
- }
- }
- }
-
- return;
-}
-
-sub addCMD
-{
- my $self = shift;
- my $cmd = shift;
-
- push @{$self->{CMDs}}, $cmd;
-
- return;
-}
-
-sub _findBinary
-{
- my $self = shift;
- my $binary = shift;
-
- my @binDirs = qw(
- bin sbin usr/bin usr/sbin usr/local/bin usr/local/sbin usr/bin/X11
- );
- foreach my $binDir (@binDirs) {
- my $binPath = "$self->{'root-path'}/$binDir/$binary";
- return $binPath if -f $binPath && -x $binPath;
- }
-
- return;
-}
-
-sub _addFilteredKernelModules
-{
- my $self = shift;
-
- push @{ $self->{'filtered-kernel-modules'} }, @_;
-
- return;
-}
-
-sub _copyKernelModules
-{
- my $self = shift;
-
- # read modules.dep and use it to determine module dependencies
- my $sourcePath = "$self->{'root-path'}/lib/modules/$self->{'kernel-version'}";
- my @modulesDep = slurpFile("$sourcePath/modules.dep")
- or die _tr('unable to open %s!', "$sourcePath/modules.dep");
- my (%dependentModules, %modulePath, %modulesToBeCopied);
- foreach my $modulesDep (@modulesDep) {
- next if $modulesDep !~ m{^(.+?)/([^/]+)\.ko:\s*(.*?)\s*$};
- my $path = $1;
- if (substr($path, 0, 5) ne '/lib/') {
- # some distros (e.g. ubuntu-9) use a local path instead of an
- # absolute path, we need to make it absolute:
- $path = "/lib/modules/$self->{'kernel-version'}/$path";
- }
- my $module = $2;
- my $dependentsList = $3;
- my $fullModulePath = "$path/$module.ko";
- $modulePath{$module} = [] if !exists $modulePath{$module};
- push @{$modulePath{$module}}, $fullModulePath;
- $dependentModules{$fullModulePath} = [
- map {
- if (substr($_, 0, 5) ne '/lib/') {
- # some distros (e.g. ubuntu-9) use a local path instead of an
- # absolute path, we need to make it absolute:
- $_ = "/lib/modules/$self->{'kernel-version'}/$_";
- }
- $_;
- }
- split ' ', $dependentsList
- ];
- }
-
- my $targetPath
- = "$self->{'build-path'}/lib/modules/$self->{'kernel-version'}";
- $self->addCMD("mkdir -p $targetPath");
- $self->addCMD("cp -p $sourcePath/modules.* $targetPath/");
-
- # add a couple of kernel modules that we expect to be used in stage3
- # (some of these modules do not exist on all distros, so they will be
- # filtered out again by the respective distro object):
- my @kernelModules = qw(
- af_packet unix hid hid-bright usbhid uhci-hcd ohci-hcd vesafb fbcon
- );
- push @kernelModules, @{ $self->{'suggested-kernel-modules'} };
-
- push @kernelModules, split ' ', $self->{attrs}->{ramfs_fsmods};
- push @kernelModules, split ' ', $self->{attrs}->{ramfs_miscmods};
- push @kernelModules, split ' ', $self->{attrs}->{ramfs_nicmods};
-
- if ($self->{attrs}->{ramfs_nicmods} =~ m{virtio}i) {
- push @kernelModules, qw( virtio_pci virtio_net );
- }
-
- # a function that determines dependent modules recursively
- my $addDependentsSub;
- $addDependentsSub = sub {
- my $modulePath = shift;
- foreach my $dependentModule (@{$dependentModules{$modulePath}}) {
- next if $modulesToBeCopied{$dependentModule};
- $modulesToBeCopied{$dependentModule} = 1;
- $addDependentsSub->($dependentModule);
- }
- };
-
- # start with the given kernel modules (names) and build a list of all
- # required modules
- foreach my $kernelModule (@kernelModules) {
- if (!$modulePath{$kernelModule}) {
- if (! grep { $_ eq $kernelModule }
- @{ $self->{'filtered-kernel-modules'} }
- ) {
- warn _tr(
- 'kernel module "%s" not found (in modules.dep)',
- $kernelModule
- );
- }
- }
- foreach my $modulePath (@{$modulePath{$kernelModule}}) {
- next if $modulesToBeCopied{$modulePath};
- $modulesToBeCopied{$modulePath} = 1;
- $addDependentsSub->($modulePath);
- }
- }
-
- # build a list of required firmwares out of the list of modules - not
- # totally optimal
- my @firmwares;
- $self->addCMD("mkdir -p $self->{'build-path'}/lib/firmware/$self->{'kernel-version'}");
- foreach my $moduleToBeCopied(%modulesToBeCopied) {
- $moduleToBeCopied =~ /.*\/(.*?)$/;
- # implies usage of switch
- vlog(1,$1);
- switch ($1){
- case "e100.ko" {push @firmwares, split ' ', "e100"}
- case "iwlwifi" {
- push @firmwares, split ' ',
- "iwlwifi-3945-1.ucode iwlwifi-3945-2.ucode iwlwifi-4965-1.ucode iwlwifi-4965-2.ucode iwlwifi-5000-1.ucode"
- }
- case "tg3.ko" {push @firmwares, split ' ', "tigon/"}
- # modules required for graphic adaptors (bootsplash, Xorg)
- case "radeon.ko" {push @firmwares, split ' ', "radeon/"}
- case "mga.ko" {push @firmwares, split ' ', "matrox/"}
- case "r128.ko" {push @firmwares, split ' ', "r128/"}
- }
- }
- # copy all the firmwares that we think are required
- foreach my $firmwareToBeCopied (@firmwares) {
- my $source = followLink(
- "$self->{'root-path'}/lib/firmware/$self->{'kernel-version'}/$firmwareToBeCopied", $self->{'root-path'}
- );
- if (-e $source){
- my $target = "$self->{'build-path'}/lib/firmware/";
-
- $self->addCMD("cp -pr --dereference $source $target");
- } else {
- vlog(3,"unable to find $source for copying purposes");
- }
- }
-
- # copy all the modules that we think are required
- foreach my $moduleToBeCopied (sort keys %modulesToBeCopied) {
- my $source = followLink(
- "$self->{'root-path'}$moduleToBeCopied", $self->{'root-path'}
- );
- my $target = "$self->{'build-path'}$moduleToBeCopied";
- my ($targetdir) = $target =~m/(.*\/).*$/;
- vlog(5,"Trying to make directory: $targetdir");
- $self->addCMD("mkdir -p $targetdir");
- $self->addCMD("cp -p --dereference $source $target");
- }
-
- return;
-}
-
-sub _platformSpecificFileFor
-{
- my $self = shift;
- my $binary = shift;
-
- if ($self->{'system-name'} =~ m{64}) {
- return $binary . '.x86_64';
- }
- return $binary . '.i586';
-}
-
-sub _writeInitramfsSetup
-{
- my $self = shift;
-
- # generate initramfs-setup file containing attributes that are
- # relevant for the initramfs only (before there's a root-FS):
- my $initramfsAttrs = {
- 'host_name' => 'slx-client', # just to have something at all
- 'ramfs_fsmods' => $self->{attrs}->{ramfs_fsmods} || '',
- 'ramfs_miscmods' => $self->{attrs}->{ramfs_miscmods} || '',
- 'ramfs_nicmods' => $self->{attrs}->{ramfs_nicmods} || '',
- 'ramfs_firmmods' => $self->{attrs}->{ramfs_firmmods} || '',
- 'rootfs' => $self->{'export-uri'} || '',
- 'hw_local_disk' => $self->{attrs}->{hw_local_disk} || '',
- };
- my $content = "# attributes set by slxconfig-demuxer:\n";
- foreach my $attr (keys %$initramfsAttrs) {
- $content .= qq[$attr="$initramfsAttrs->{$attr}"\n];
- }
- $self->addCMD( {
- file => "$self->{'build-path'}/etc/initramfs-setup",
- content => $content
- } );
-
- return;
-}
-
-sub _writeSlxSystemConf
-{
- my $self = shift;
-
- # generate slxsystem.conf file with variables that are needed
- # in stage3 init.
- # TODO: either put this stuff into initramfs-setup or find another solution
- my $date = strftime("%d.%m.%Y", localtime);
- my $slxConf = unshiftHereDoc(<<" End-of-Here");
- slxconf_date=$date
- slxconf_kernver=$self->{'kernel-version'}
- slxconf_listnwmod="$self->{attrs}->{ramfs_nicmods}"
- slxconf_distro_name=$self->{'distro-name'}
- slxconf_distro_ver=$self->{'distro-ver'}
- slxconf_system_name=$self->{'system-name'}
- slxconf_slxver="$self->{'slx-version'}"
- End-of-Here
- $self->addCMD( {
- file => "$self->{'build-path'}/etc/slxsystem.conf",
- content => $slxConf
- } );
-
- # check if default directories available and copy them to /etc
- my $defaultDirConfig = "$self->{'root-path'}/etc/opt/openslx/openslx.conf";
- my $configTargetPath = "$self->{'build-path'}/etc";
- #my $defaultConfVer = slurpFile("$defaultDirConfig");
- #my $actConfVer = "Version 0.2";
-
- if (-r $defaultDirConfig) {
- $self->addCMD("cp -p $defaultDirConfig $configTargetPath/");
-# if ($defaultConfVer =~ m{$actConfVer}) {
-# warn _tr(
-# "Your version of default dir file (openslx.conf) is to old!\n".
-# "Eventually the system won't work.\n" .
-# "Please run install, update or clone of this system again!\n");
-# }
- } else {
- die _tr(
- "No default directories defined!\n" .
- "Please run install, update or clone of this system again!\n");
- }
-
- return;
-}
-
-sub _calloutToPlugins
-{
- my $self = shift;
-
- my $pluginInitdPath = "$self->{'build-path'}/etc/plugin-init.d";
- my $initHooksPath = "$self->{'build-path'}/etc/init-hooks";
- $self->addCMD("mkdir -p $pluginInitdPath $initHooksPath");
-
- foreach my $pluginName (@{$self->{'plugins'}}) {
- my $plugin = OpenSLX::OSPlugin::Roster->getPlugin($pluginName);
- next if !$plugin;
-
- # create a hash only containing the attributes relating to the
- # current plugin
- my $allAttrs = $self->{attrs};
- my %pluginAttrs;
- for my $attrName (grep { $_ =~ m{^${pluginName}::} } keys %$allAttrs) {
- $pluginAttrs{$attrName} = $allAttrs->{$attrName};
- }
-
- # let plugin setup itself in the initramfs
- $plugin->setupPluginInInitramfs(\%pluginAttrs, $self);
- }
- return;
-}
-
-sub _createInitRamFS
-{
- my $self = shift;
-
- my $buildPath = $self->{'build-path'};
- $self->addCMD("chroot $buildPath ldconfig");
- $self->addCMD(
- "cd $buildPath "
- . "&& find . "
- . "| cpio -H newc --quiet --create "
- . "| gzip -9 >$self->{initramfs}"
- );
-
- return;
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm b/boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm
deleted file mode 100644
index 571057ad..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Engine/PBS.pm
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitialRamFS::Engine::PBS.pm
-# - provides driver engine for MakeInitialRamFS API, implementing the
-# base of all preboot variants.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Engine::PBS;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::MakeInitRamFS::Engine::Preboot);
-
-use OpenSLX::Basics;
-use OpenSLX::Utils;
-
-sub _copyPrebootSpecificFiles
-{
- my $self = shift;
-
- # write secondary rootfs-layer (including init) on top of base layer
- my $prebootRootfs
- = "$openslxConfig{'base-path'}/share/boot-env/preboot/uclib-rootfs";
- $self->addCMD("rsync -rlpt $prebootRootfs/ $self->{'build-path'}");
-
- # overwrite preboot defaults
- my $pbsRootfs
- = "$openslxConfig{'base-path'}/share/boot-env/pbs/uclib-rootfs";
- $self->addCMD("rsync -rlpt $pbsRootfs/ $self->{'build-path'}");
-
- return 1;
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm b/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm
deleted file mode 100644
index aecfd00f..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm
+++ /dev/null
@@ -1,143 +0,0 @@
-# Copyright (c) 2006-2008 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitialRamFS::Engine::Preboot.pm
-# - provides driver engine for MakeInitialRamFS API, implementing the
-# base of all preboot variants.
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Engine::Preboot;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::MakeInitRamFS::Engine::Base);
-
-use OpenSLX::Basics;
-use OpenSLX::Utils;
-
-################################################################################
-### implementation methods
-################################################################################
-sub _collectCMDs
-{
- my $self = shift;
-
- $self->{CMDs} = [];
-
- $self->_setupBuildPath();
-
- $self->_writeInitramfsSetup();
- $self->_writeSlxSystemConf();
-
- $self->_copyUclibcRootfs();
- $self->_copyPrebootSpecificFiles();
-
- $self->{distro}->applyChanges($self);
-
- $self->_copyKernelModules();
-
- $self->_createInitRamFS();
-
- return;
-}
-
-sub _setupBuildPath
-{
- my $self = shift;
-
- my $buildPath = "$openslxConfig{'temp-path'}/slx-initramfs";
- $self->addCMD("rm -rf $buildPath");
-
- my @stdFolders = qw(
- bin
- dev
- etc
- lib
- mnt
- proc
- root
- sbin
- sys
- tmp
- var/lib
- var/run
- );
- $self->addCMD(
- 'mkdir -p ' . join(' ', map { "$buildPath/$_"; } @stdFolders)
- );
-
- $self->{'build-path'} = $buildPath;
-
- return;
-}
-
-sub _writeInitramfsSetup
-{
- my $self = shift;
-
- # generate initramfs-setup file containing attributes that are
- # relevant for the initramfs only (before there's a root-FS) -
- # this override adds the name of the client such that the booting
- # system has an ID to use for accessing the corresponding boot environment
- # on the server
- my $initramfsAttrs = {
- 'host_name' => 'slx-client', # just to have something at all
- 'ramfs_miscmods' => $self->{attrs}->{ramfs_miscmods} || '',
- 'ramfs_nicmods' => $self->{attrs}->{ramfs_nicmods} || '',
- 'ramfs_firmmods' => $self->{attrs}->{ramfs_firmmods} || '',
- 'preboot_id' => $self->{'preboot-id'} || '',
- 'boot_uri' => $self->{'boot-uri'} || '',
- };
- my $content = "# attributes set by slxconfig-demuxer:\n";
- foreach my $attr (keys %$initramfsAttrs) {
- $content .= qq[$attr="$initramfsAttrs->{$attr}"\n];
- }
- $self->addCMD( {
- file => "$self->{'build-path'}/etc/initramfs-setup",
- content => $content
- } );
-
- return;
-}
-
-sub _copyUclibcRootfs
-{
- my $self = shift;
-
- my $uclibcRootfs = "$openslxConfig{'base-path'}/share/uclib-rootfs";
-
- my @excludes = qw(
- );
-
- # exclude strace unless this system is in debug mode
- if (!$self->{'debug-level'}) {
- push @excludes, 'strace';
- }
-
- my $exclOpts = join ' ', map { "--exclude $_" } @excludes;
-
- $self->addCMD("rsync $exclOpts -rlpt $uclibcRootfs/ $self->{'build-path'}");
-
- return 1;
-}
-
-sub _copyPrebootSpecificFiles
-{
- my $self = shift;
-
- # write secondary rootfs-layer (including init) on top of base layer
- my $prebootRootfs
- = "$openslxConfig{'base-path'}/share/boot-env/preboot/uclib-rootfs";
- $self->addCMD("rsync -rlpt $prebootRootfs/ $self->{'build-path'}");
-
- return 1;
-}
-
-1;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm b/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm
deleted file mode 100644
index 1334c444..00000000
--- a/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm
+++ /dev/null
@@ -1,264 +0,0 @@
-# Copyright (c) 2006-2008 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# MakeInitialRamFS::Engine::SlxBoot.pm
-# - provides driver engine for MakeInitialRamFS API, implementing the
-# standard slx boot behaviour (i.e. booting a system remotely).
-# -----------------------------------------------------------------------------
-package OpenSLX::MakeInitRamFS::Engine::SlxBoot;
-
-use strict;
-use warnings;
-
-use base qw(OpenSLX::MakeInitRamFS::Engine::Base);
-
-use File::Find;
-
-use OpenSLX::Basics;
-use OpenSLX::Utils;
-
-################################################################################
-### implementation methods
-################################################################################
-sub _collectCMDs
-{
- my $self = shift;
-
- $self->{CMDs} = [];
-
- $self->_setupBuildPath();
-
- $self->_addRequiredFSMods();
-
- $self->_writeInitramfsSetup();
- $self->_writeSlxSystemConf();
-
- $self->_copyUclibcRootfs();
- $self->_copyHwinfo();
- $self->_copyDistroSpecificFiles();
- $self->_copyInitramfsFiles();
-
- $self->_copyPreAndPostinitFiles();
-
- $self->_calloutToPlugins();
-
- $self->{distro}->applyChanges($self);
-
- $self->_copyKernelModules();
-
- $self->_createInitRamFS();
-
- return;
-}
-
-sub _setupBuildPath
-{
- my $self = shift;
-
- my $buildPath = "$openslxConfig{'temp-path'}/slx-initramfs";
- $self->addCMD("rm -rf $buildPath");
-
- my @stdFolders = qw(
- bin
- dev
- etc
- etc/init-hooks
- lib
- mnt
- proc
- root
- sbin
- sys
- tmp
- usr/share
- var/lib
- var/lib/nfs/state
- var/run
- );
- $self->addCMD(
- 'mkdir -p ' . join(' ', map { "$buildPath/$_"; } @stdFolders)
- );
-
- $self->{'build-path'} = $buildPath;
-
- return;
-}
-
-sub _copyDistroSpecificFiles
-{
- my $self = shift;
-
- my $distroSpecsPath = "$openslxConfig{'base-path'}/share/distro-specs";
-
- my $distroName = $self->{'distro-name'};
- my $distroVer = $self->{'distro-ver'};
-
- # concatenate default- and distro-specific functions into one file
- my $functions = slurpFile("$distroSpecsPath/$distroName/functions-default");
- $functions .= "\n";
- $functions .= slurpFile(
- "$distroSpecsPath/$distroName/functions-$distroVer",
- { failIfMissing => 0 }
- );
- $self->addCMD( {
- file => "$self->{'build-path'}/etc/distro-functions",
- content => $functions,
- } );
-
- return 1;
-}
-
-sub _copyUclibcRootfs
-{
- my $self = shift;
-
- my $uclibcRootfs = "$openslxConfig{'base-path'}/share/uclib-rootfs";
-
- my @excludes = qw(
- dialog
- kexec
- libcurses.so*
- libncurses.so*
- mconf
- );
-
- # exclude strace unless this system is in debug mode
- if (!$self->{'debug-level'}) {
- push @excludes, 'strace';
- }
-
- my $exclOpts = join ' ', map { "--exclude $_" } @excludes;
-
- $self->addCMD("rsync $exclOpts -rlpt $uclibcRootfs/ $self->{'build-path'}");
-
- return 1;
-}
-
-sub _copyHwinfo
-{
- my $self = shift;
-
- my $baseDir = "$openslxConfig{'base-path'}/share/ramfstools/hwinfo";
-
- my $version = $self->{distro}->determineMatchingHwinfoVersion(
- $self->{'distro-ver'}
- );
-
- # copy db modifications
- $self->addCMD("tar xfz $baseDir/db/hwinfo.db.tgz -C $self->{'build-path'}/");
-
- $self->addCMD("cp $baseDir/bin/hwinfo-$version $self->{'build-path'}/usr/bin/hwinfo");
- my $libHD = "libhd.so.$version";
- $self->addCMD("cp $baseDir/lib/$libHD $self->{'build-path'}/usr/lib");
- my $libName = $libHD;
- while($libName =~ s{\.\d+$}{}g) {
- $self->addCMD("ln -sf $libHD $self->{'build-path'}/usr/lib/$libName");
- }
-
- return 1;
-}
-
-sub _copyInitramfsFiles
-{
- my $self = shift;
-
- my $initramfsPath = "$openslxConfig{'base-path'}/share/initramfs";
-
- find(
- {
- wanted => sub {
- my $len = length($initramfsPath);
- my $file = $File::Find::name;
- my $relName = length($file) > $len ? substr($file, $len+1) : '';
- if (-d) {
- $self->addCMD("mkdir -p $self->{'build-path'}/$relName");
- } elsif (-l $file) {
- my $target = readlink $file;
- $self->addCMD(
- "ln -sf $target $self->{'build-path'}/$relName"
- );
- } elsif (qx{file $file} =~ m{ELF}) {
- $self->addCMD(
- "cp -p $file $self->{'build-path'}/$relName"
- );
- } else {
- my $text = slurpFile($file, { 'io-layer' => 'bytes' } );
-
- # replace macros
- # TODO: find out what these mean and maybe find a
- # different, better solution
- my %macro = (
- 'COMDIRINDXS' => '/tmp/scratch /var/lib/nobody',
- # keep serverip as it is (it is handled by init itself)
- 'serverip' => '@@@serverip@@@',
- );
- $text =~ s{\@\@\@([^\@]+)\@\@\@}{
- if (!exists $macro{$1}) {
- warn _tr(
- 'unknown macro @@@%s@@@ found in %s',
- $1, $File::Find::name
- );
- '';
- } else {
- $macro{$1};
- }
- }eogms;
-
- # force shebang with ash (deprecated with new busybox)
- #$text =~ s{\A#!\s*/bin/.+?$}{#!/bin/ash}ms;
-
- $self->addCMD( {
- file => "$self->{'build-path'}/$relName",
- content => $text,
- mode => (-x $file ? 0755 : undef),
- } );
- }
- },
- no_chdir => 1,
- },
- $initramfsPath
- );
-
- return;
-}
-
-sub _copyPreAndPostinitFiles
-{
- my $self = shift;
-
- foreach my $cfg (
- 'default/initramfs/preinit.local',
- "$self->{'system-name'}/initramfs/preinit.local",
- 'default/initramfs/postinit.local',
- "$self->{'system-name'}/initramfs/postinit.local"
- ) {
- my $cfgPath = "$openslxConfig{'private-path'}/config/$cfg";
- next if !-f $cfgPath;
- $self->addCMD("cp -p $cfgPath $self->{'build-path'}/bin/");
- }
- return;
-}
-
-sub _addRequiredFSMods
-{
- my $self = shift;
-
- my $osExportEngine = instantiateClass("OpenSLX::OSExport::Engine");
- $osExportEngine->initializeFromExisting($self->{'export-name'});
- my $fsMods = $self->{attrs}->{ramfs_fsmods} || '';
- foreach my $fsMod ($osExportEngine->requiredFSMods()) {
- $fsMods .= " $fsMod" if $fsMods !~ m{$fsMod};
- }
- $self->{attrs}->{ramfs_fsmods} = $fsMods;
-
- return;
-}
-
-1;
diff --git a/boot-env/pbs/uclib-rootfs/bin/bbinit b/boot-env/pbs/uclib-rootfs/bin/bbinit
deleted file mode 100755
index 3fd67612..00000000
--- a/boot-env/pbs/uclib-rootfs/bin/bbinit
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/hush
-
-# create clean setup
-mkdir -p /etc/events.conf
-mkdir -p /etc/events.d
-rm /etc/events.d/*
-for f in $(ls -1 /etc/events)
-do
- ln -sf /etc/events/$f /etc/events.d/$f
-done
-
-mkdir -p /tmp/event
-rm /tmp/event/*
-rm /tmp/events
-
-# start bbinit
-inotifyd /bin/handleEvents /tmp/event/:n &
-# initial call (executing all zero dependent scipts)
-handleEvents
diff --git a/boot-env/pbs/uclib-rootfs/bin/handleEvents b/boot-env/pbs/uclib-rootfs/bin/handleEvents
deleted file mode 100755
index 9bb78951..00000000
--- a/boot-env/pbs/uclib-rootfs/bin/handleEvents
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/hush
-
-# wait for lock
-while [ -f /tmp/bbinit.lock ]
-do
- sleep 0.1
-done
-
-# lock eventhandler
-touch /tmp/bbinit.lock
-
-# source list of finished events
-[ -f /tmp/events ] && . /tmp/events
-
-# go through all unhandled events
-for f in $( ls -1 /etc/events.d/ )
-do
- . /etc/events.d/$f
-
- # check dependencies
- eval dep=\$${f}_depends
- havealldeps=1
- for d in $dep
- do
- eval havedep=\$have${d}
- [ "x$havedep" == "x1" ] || havealldeps=0
- done
-
- # if nothing is missing execute script
- if [ "x$havealldeps" == "x1" ]; then
- echo executing $f
- /etc/bbinit.d/$f &
- rm /etc/events.d/$f
- fi
-done
-
-# unlock eventhandler
-rm /tmp/bbinit.lock
diff --git a/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example b/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example
deleted file mode 100755
index 122cf566..00000000
--- a/boot-env/pbs/uclib-rootfs/etc/bbinit.d/example
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/hush
-
-me=$(basename $0)
-
-# read event parameters
-. /etc/events/$me
-eval provides=\$${me}_provides
-
-# get config output of the dependencies
-eval dep=\$${me}_depends
-for d in $dep
-do
- [ -f /etc/event.conf/$d ] && . /etc/event.conf/$d
-done
-
-# do some stuff
-echo "[$me] starting .."
-for i in 1 2 3 4 5 6
-do
- echo "[$me] $i"
- sleep 1
-done
-echo "[$me] finished .."
-
-# write configuration output
-value="test"
-echo "${provides}_someconfig=\"$value\"" >> /etc/event.conf/$provides
-
-# trigger eventhandler
-echo "have${provides}=1" >> /tmp/events
-touch /tmp/event/$me
-
diff --git a/boot-env/pbs/uclib-rootfs/etc/events/example b/boot-env/pbs/uclib-rootfs/etc/events/example
deleted file mode 100644
index 75768967..00000000
--- a/boot-env/pbs/uclib-rootfs/etc/events/example
+++ /dev/null
@@ -1,2 +0,0 @@
-example_depends=""
-example_provides="example"
diff --git a/boot-env/pbs/uclib-rootfs/init b/boot-env/pbs/uclib-rootfs/init
deleted file mode 100755
index 847cad87..00000000
--- a/boot-env/pbs/uclib-rootfs/init
+++ /dev/null
@@ -1,234 +0,0 @@
-#!/bin/ash
-# Copyright (c) 2008..2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-#
-# Main script for preboot initial ramfs - preloading environment for running
-# OpenSLX linux stateless clients version 5.
-
-fetchip () {
-# we expect to get an ip address within 10++ seconds
-( sleep 6 ; killall udhcpc >/dev/null 2>&1 ) &
-for i in 1 2 ; do
- udhcpc -f -n -q $vci -s /usr/share/udhcpc/default.script -i $nwif 2>/dev/null
- if grep "ip=" /tmp/ipstuff >/dev/null 2>&1 ; then
- . /tmp/ipstuff
- for ns in $dns ; do
- echo "nameserver $ns" >>/etc/resolv.conf
- done
- # simply add a single dns server for passing via kernel cmdline to stage3
- # (quickhack, just the last, list of dns might be better ...)
- echo "dnssrv=$ns" >>/tmp/ipstuff
- return
- else
- if [ $i -eq 1 ] ; then
- sleep 1
- else
- dialog --msgbox "Did not get any proper IP configuration: Please check \
-that your Ethernet card is supported, the machine is connected to the network \
-and a DHCP server is answering your requests." 7 65
- ash
- echo "o" >/proc/sysrq-trigger
- fi
- fi
-done
-}
-
-#############################################################################
-# PreBoot init main part
-
-# device files get their own filesystem
-devdir="/dev"
-mount -n -t tmpfs -o 'size=25%,mode=0755' mdev ${devdir}
-mkdir -p /dev/pts
-mount -t devpts devpts /dev/pts
-echo /sbin/mdev > /proc/sys/kernel/hotplug
-cat > /etc/mdev.conf << "EOF"
-sda* 0:6 0660
-sdb* 0:6 0660
-sg* 0:6 0660
-hda* 0:6 0660
-hdb* 0:6 0660
-EOF
-
-mdev -s
-
-export DEBUGLEVEL=0
-
-# create basic device files an directories in dev
-for i in "/dev/mem c 1 1" "/dev/null c 1 3" "/dev/zero c 1 5" \
- "/dev/urandom c 1 9" "/dev/kmsg c 1 11" "/dev/tty0 c 4 0" \
- "/dev/tty1 c 4 1" "/dev/tty2 c 4 2" "/dev/tty3 c 4 3" \
- "/dev/tty4 c 4 4" "/dev/tty5 c 4 5" "/dev/tty6 c 4 6" \
- "/dev/tty7 c 4 7" "/dev/tty8 c 4 8" "/dev/tty9 c 4 9" \
- "/dev/tty10 c 4 10" "/dev/tty c 5 0" "/dev/console c 5 1" \
- "/dev/ptmx c 5 2" "/dev/psaux c 10 1" "/dev/agpgart c 10 175" \
- "/dev/fb0 c 29 0" "/dev/bootsplash p" "/dev/xconsole p"; do
- mknod $i
-done
-mkdir -p ${devdir}/pts ${devdir}/shm
-export PATH=/bin:/sbin:/usr/bin/:/usr/sbin
-
-# redirect kernel messages to tty10 instead of tty1
-getty -i -n -l /bin/cat 38400 tty10 &
-setlogcons 10
-
-# initramfs-setup configuration (common settings for all clients using a
-# certain InitRamFS generated by slxmkramfs/mkdxsinitrd)
-[ -f /etc/initramfs-setup ] && . /etc/initramfs-setup 2>/dev/null
-
-# set a default LAN interface, has to be modified for WLAN or on machines
-# with more than one ethernet card built in
-nwif="eth0"
-
-# mount the important standard directories
-[ ! -f /proc/cpuinfo ] && mount -n -t proc proc /proc
-[ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys
-
-# load framebuffer modules if needed
-for mod in vesafb fbcon; do
- if [ x != x$(find /lib/modules -name ${mod}.ko) ]; then
- modprobe $mod || \
- dialog --infobox "Module $mod did not load for some reason." 3 65
- usleep 1000
- fi
-done
-
-# give startup information
-dialog --infobox "Starting OpenSLX preboot environment ..." 3 65
-
-# load usb keyboard and network adaptor modules
-for mod in ${ramfs_nicmods} af_packet unix hid hid-bright usbhid \
- uhci-hcd ohci-hcd ; do
- if [ x != x$(find /lib/modules -name ${mod}.ko) ]; then
- modprobe $mod || \
- dialog --infobox "Module $mod did not load for some reason." 3 65
- usleep 10000
- fi
-done
-
-# set the default for boot type and read kernel commandline (for this and
-# other options)
-export TYPE=fastboot
-read KCMDLINE </proc/cmdline
-# read the system wide machine-setup and then the kernel commandline
-for opts in ${KCMDLINE} ; do
- case ${opts} in
- debug)
- DEBUGLEVEL=1;;
- # ... or a specified debug level (will be passed to next stage)
- debug=*)
- DEBUGLEVEL=${opts#debug=};;
- # WLAN ssid (most probably passed that way, unused yet ...)
- ssid=*)
- SSID=${opts#SSID=};;
- # Boot type (fastboot)/directkiosk/cfgkiosk/slxconfig
- type=*)
- TYPE=${opts#type=};;
- pbsId=*)
- PBS_ID=${opts#pbsId=};;
- esac
-done
-
-# start a watchdog to ensure an automated reboot or halt of the machine if the
-# preboot init does not succeed (e.g. missing kernel module/firmware for the
-# network adaptor)
-if [ "${DEBUGLEVEL}" -eq 0 ] ; then
- cat<<EOF >/bin/watchdog
-#!/bin/ash
-echo \$$ > /tmp/watchdogpid
-[ ! -f /proc/version ] && mount -n -t proc proc /proc
-sleep 120 2>/dev/null
-echo "o" >/proc/sysrq-trigger
-EOF
- chmod u+x /bin/watchdog
- watchdog &
-else
- getty -i -n -l /bin/ash 38400 tty2 &
-fi
-
-if [ -n "${SSID}" ] ; then
- # WLAN setup will most probably change the network interface name stored in
- # nwif (to wlan0 or something like that)
- [ $DEBUGLEVEL -gt 0 ] && echo "set essid to ${essid}";
- #value of essid unchecked yet
- # load network adaptor modules
- cd /lib/modules/$(ls /lib/modules/)/kernel/drivers/net/wireless
- for mod in $(find . | grep .ko | sed 's,.*/\([^/]*\).ko,\1',); do
- echo "Mod:";
- echo $mod;
- modprobe $mod || echo "module $mod did not load for some reason"
- usleep 10000
- done
- cd /
- wlanif=$(iwconfig 2>/dev/null|sed -n "/ESSID:/p"|sed "s/ .*//")
- [ $DEBUGLEVEL -gt 0 ] && echo "wlancard recognized as ${wlanif}";
- ip link set dev ${wlanif} up
- if iwconfig ${wlanif} mode managed essid "${essid}"; then
- nwif=${wlanif}
- else
- error " Unable to configure the WLAN interface."
- fi
- :
-else
- # check here for the active Ethernet link
- ip link show dev eth1 >/dev/null 2>&1 && \
- dialog --msgbox "More than one network interface found. This could cause \
-some trouble as their activation and ordering depends on the module load \
-order ..." 7 65
-fi
-
-# set up loopback networking and power up ethernet
-ip link set dev lo up
-ip addr add 127.0.0.1/8 dev lo
-ip link set dev $nwif up || echo "I did not find any usable network adaptor."
-
-# run udhcpc and start a debug shell if no lease could be obtained
-mkdir -p /usr/share/udhcpc
-echo -e "#!/bin/ash\nunset infomsg HOME IFS mask lease interface DEBUGLEVEL \
-BOOT_IMAGE\nset >/tmp/ipstuff" >/usr/share/udhcpc/default.script
-chmod u+x /usr/share/udhcpc/default.script
-modprobe -q af_packet
-[ -n $vci ] && vci="-V $vci"
-fetchip
-ip addr add $ip/$(ipcalc -s -p $ip $subnet|sed s/.*=//) dev $nwif
-ip route add default via $router
-
-# get the mac address of the boot network adaptor
-macaddr=$(ip link show dev $nwif 2>/dev/null | \
- sed -n "/ether [0-9e-f]\{2\}:.*/p" | sed -e "s/.*ether //;s/ .*//")
-echo "macaddr=$macaddr" >>/etc/initramfs-setup
-
-# at this point a little selection script could be downloaded, which lets the
-# user choose what kind of SLX client he wants to get
-dialog --infobox "Fetching preboot interactive part and configuration from \
-the net ($boot_uri) ..." 4 65
-mkdir -p /preboot
-wget -q -O /preboot/preboot.init ${boot_uri}bootloader/env/getinit/formedia/$PBS_ID
-chmod u+x /preboot/preboot.init
-
-echo "pbs_id=$PBS_ID" >> /etc/pbs.conf
-
-# start a debug shell if needed, else set quiet kernel parameter
-if [ "${DEBUGLEVEL}" -gt 0 ] ; then
- echo "Starting shell, leaving it would continue init."
- /bin/ash
-else
- # no debugging output for stage3 run
- echo "quiet=quiet" >>/etc/initramfs-setup
-fi
-# run the preboot interactive part which finally will execute kexec
-cd /preboot
-exec ./preboot.init
-# we should never return from that one ...
-dialog --msgbox "The execution of the main preboot component failed. Please \
-check network access of your box. Is $boot_uri reachable!?" 6 65
-# ping -c 1 $boot_uri
-sleep 20 && echo "o" >/proc/sysrq-trigger
-
diff --git a/boot-env/pbs/uclib-rootfs/preboot/preboot-scripts/dialog.functions b/boot-env/pbs/uclib-rootfs/preboot/preboot-scripts/dialog.functions
deleted file mode 100644
index 7c6dd784..00000000
--- a/boot-env/pbs/uclib-rootfs/preboot/preboot-scripts/dialog.functions
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright (c) 2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# dialog.functions
-# provides shell scripts for dialog handling
-# -----------------------------------------------------------------------------
-
-# set -x
-
-if [ "x" == "x$DIALOG_HEIGHT" ]; then
- DIALOG_HEIGHT="10"
-fi
-
-if [ "x" == "x$DIALOG_WIDTH" ]; then
- DIALOG_WIDTH="40"
-fi
-
-_ddownload_checkpercentage () {
- local lf=$1
- percentage=$(tail -n 5 $lf | sed 's/\.//g' | awk '{print $2}'| sed -n "s/%//p"| tail -n 1)
- return $percentage
-}
-
-ddownload () {
- local dl_url=$1
- local dl_titel=$2
- local dl_outfile=$3
- local dl_logfile=$4
-
- local dl_server=$(dirname $dl_url)
- local dl_file=$(basename $dl_url)
-
- local dl_count
-
- if [ "x" == "x$dl_logfile" ]; then
- dl_logfile="/tmp/logfile.$$"
- fi
-
- if [ "x" == "x$dl_outfile" ]; then
- dl_outfile="$dl_file"
- fi
-
- if [ "x" == "x$dl_title" ]; then
- dl_title="Downloading $dl_file .."
- fi
-
- if [ -f "$dl_logfile" ]; then
- rm $dl_logfile
- fi
-
- # start wget in background
- wget -v -b $dl_url -o "$dl_logfile" -O $dl_outfile
-
- sleep 0.1;
- _ddownload_checkpercentage "$dl_logfile"
-
- dl_count=$?
-
- while [ $dl_count -le 99 ];
- do
- echo $dl_count |dialog --gauge "$dl_title" $DIALOG_HEIGHT $DIALOG_WIDTH
- sleep 0.5
- _ddownload_checkpercentage "$dl_logfile"
- dl_count=$?
- done
-
- local finished=0
- while [ ! $finished ]; do
- finished=$(tail -n 4 $dl_logfile | grep -c "$dl_file");
- done
-
- echo 100 | dialog --gauge "$dl_title" $DIALOG_HEIGHT $DIALOG_WIDTH;
-
-}
-
-
-
-menu_firststart () {
- while [ "x$(cat result)" = "x" ] ; do
- dialog --menu "OpenSLX" 30 60 22 \
- 01 "Kiosk" \
- 02 "Kiosk Setup" \
- 03 "Custom System" \
- 2>result
- done
-}
-
-menu_oldconfig () {
- oldconf=$1;
- while [ "x$(cat result)" = "x" ] ; do
- dialog --menu "OpenSLX" 30 60 22 \
- 01 "Kiosk" \
- 02 "Kiosk Setup" \
- 03 "Custom System" \
- 04 "Custom System"
- 2>result
- done
-}
diff --git a/boot-env/preboot/conf/apache-openslx-preboot.conf b/boot-env/preboot/conf/apache-openslx-preboot.conf
deleted file mode 100644
index 4eb58809..00000000
--- a/boot-env/preboot/conf/apache-openslx-preboot.conf
+++ /dev/null
@@ -1,24 +0,0 @@
- ScriptAlias /openslx-preboot/cgi-bin/ "/opt/openslx/share/boot-env/preboot/http-server/"
-
- Alias "/openslx-preboot/users/" "/srv/openslx/preboot-users/"
- <Directory "/srv/openslx/preboot-users/">
- Options -Indexes -ExecCGI FollowSymLinks MultiViews
- AllowOverride None
- Order allow,deny
- allow from all
- </Directory>
-
- Alias /openslx-preboot/ "/srv/openslx/preboot/"
- <Directory "/srv/openslx/preboot/">
- Options -Indexes -ExecCGI FollowSymLinks MultiViews
- AllowOverride None
- Order allow,deny
- allow from all
- </Directory>
-
- <Directory "/opt/openslx/share/boot-env/preboot/http-server/">
- AllowOverride None
- Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
- Order allow,deny
- Allow from all
- </Directory>
diff --git a/boot-env/preboot/http-server/user_settings.pl b/boot-env/preboot/http-server/user_settings.pl
deleted file mode 100755
index 6c135267..00000000
--- a/boot-env/preboot/http-server/user_settings.pl
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) 2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-#
-# cgi-bin script that accepts user settings and stores them in a special
-# folder on the openslx server
-
-use strict;
-use warnings;
-
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use File::Path;
-
-# add openslx stuff to @INC
-use FindBin;
-use lib "$FindBin::RealBin/../../../../lib";
-use lib "$FindBin::RealBin";
-
-# read default config
-use OpenSLX::Basics;
-openslxInit();
-
-# die "*** Taint mode must be active! ***" unless ${^TAINT};
-
-my $cgi = CGI->new;
-
-my $system = $cgi->param('system') || '';
-my $client = $cgi->param('client') || '';
-my $prebootID = $cgi->param('preboot_id') || '';
-my $type = $cgi->param('type') || 'directkiosk';
-my $errormsg = 'None';
-
-die "must give 'system' ($system), 'client' ($client) and 'preboot_id' ($prebootID)!\n"
- unless $system && $client && $prebootID;
-
-my $webPath = "$openslxConfig{'public-path'}/preboot";
-my $src = "$webPath/client-config/$system/$prebootID.tgz";
-my $destPath = "$webPath/$prebootID/client-config/$system";
-
-# if fastboot (default) is selected and a ConfTGZ exist just proceed ...
-if ($type eq "fastboot" && !-e "$destPath/$client.tgz") { $type = "slxconfig"; }
-# directkiosk/cfgkiosk/slxconfig
-if ($type ne "fastboot") {
- mkpath($destPath."/".$client);
- system(qq{tar -xzf $src -C $destPath/$client/});
-
-
- # from here on the modifications of client configuration should take place
- # within $destPath/$client directory
- if ($type eq "slxconfig") {
- # configuration of a WAN boot SLX client
- print STDERR "slxconfig sub";
- }
- elsif ($type eq "cfgkiosk") {
- # configuration of a WAN boot SLX kiosk
- }
- elsif (!$type || $type eq "directkiosk") {
- # deactivate the desktop plugin for the kiosk mode
- open (CFGFILE, ">>$destPath/$client/initramfs/plugin-conf/desktop.conf");
- print CFGFILE 'desktop_active="0"';
- close (CFGFILE);
- # activate the kiosk plugin
- if (!-e "$destPath/$client/initramfs/plugin-conf/kiosk.conf") {
- $errormsg = "The kiosk plugin seems not to be installed";
- print STDERR $errormsg;
- } else {
- open (CFGFILE, ">>$destPath/$client/initramfs/plugin-conf/kiosk.conf");
- print CFGFILE 'kiosk_active="1"';
- close (CFGFILE);
- }
- }
- else {
- # unknown type
- $errormsg = "You have passed an unknown boot type $type";
- print STDERR $errormsg;
- }
- system(qq{cd $destPath/$client; tar -czf $destPath/$client.tgz *});
- rmtree($destPath."/".$client);
-}
-
-# resulting page is not shown to the user (error reporting that way, or
-# completely empty reply?)
-print
- $cgi->header(-charset => 'iso8859-1'),
- $cgi->start_html('...');
-if ($errormsg) { print $cgi->p("Error: $errormsg"); }
-print
- $cgi->end_html();
-
diff --git a/boot-env/preboot/http-server/users.pl b/boot-env/preboot/http-server/users.pl
deleted file mode 100755
index cde3d227..00000000
--- a/boot-env/preboot/http-server/users.pl
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/perl -w
-# Copyright (c) 2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-#
-# cgi-bin script that accepts user settings and stores them in a special
-# folder on the openslx server
-
-use strict;
-use warnings;
-
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use File::Path;
-use Switch;
-
-# add openslx stuff to @INC
-use FindBin;
-use lib "$FindBin::RealBin/../../../../lib";
-use lib "$FindBin::RealBin";
-
-# read default config
-use OpenSLX::Basics;
-openslxInit();
-
-my $cgi = CGI->new;
-my $mac = $cgi->param('user') || '';
-my $action = $cgi->param('action');
-my $data = $cgi->param('data');
-
-# global requirements
-die "must give 'mac' ($mac)!\n"
- unless $mac;
-
-my $webPath = "$openslxConfig{'public-path'}/preboot-users";
-my $userConfFile = "$webPath/$mac.conf";
-
-# makes only sense if public path is writeable for www-data
-# otherwise you have to create directory manualy
-if ( ! -e $webPath ) {
- mkpath ($webPath) or die _tr("Can't create user config directory (%s). Reason: %s", $webPath, @_);
-}
-
-my $output = "";
-my $error;
-
-switch ($action) {
- case 'set' {
- if ($data) {
- open (MYFILE, ">$userConfFile");
- print MYFILE $data;
- close (MYFILE);
- } else {
- $error = "no data";
- }
- }
- case 'read' {
- if ( -e $userConfFile ) {
- open (MYFILE, $userConfFile);
- while (<MYFILE>) {
- chomp;
- $output .= "$_\n";
- }
- close (MYFILE);
- } else {
- $error = "foobar";
- }
-
- }
- else {
- #default case check if we have a user config
- if ( -e $userConfFile ) { $output = "1"; }
- else { $output = "0"; };
- }
-}
-
-print $cgi->header('Content-type: text/plain');
-if ($error) {
- print $error;
-} else {
- print $output;
-}
-
-exit 0;
diff --git a/boot-env/preboot/preboot-scripts/dialog.functions b/boot-env/preboot/preboot-scripts/dialog.functions
deleted file mode 100644
index 7c6dd784..00000000
--- a/boot-env/preboot/preboot-scripts/dialog.functions
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright (c) 2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your suggestions, praise, or complaints to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org/
-# -----------------------------------------------------------------------------
-# dialog.functions
-# provides shell scripts for dialog handling
-# -----------------------------------------------------------------------------
-
-# set -x
-
-if [ "x" == "x$DIALOG_HEIGHT" ]; then
- DIALOG_HEIGHT="10"
-fi
-
-if [ "x" == "x$DIALOG_WIDTH" ]; then
- DIALOG_WIDTH="40"
-fi
-
-_ddownload_checkpercentage () {
- local lf=$1
- percentage=$(tail -n 5 $lf | sed 's/\.//g' | awk '{print $2}'| sed -n "s/%//p"| tail -n 1)
- return $percentage
-}
-
-ddownload () {
- local dl_url=$1
- local dl_titel=$2
- local dl_outfile=$3
- local dl_logfile=$4
-
- local dl_server=$(dirname $dl_url)
- local dl_file=$(basename $dl_url)
-
- local dl_count
-
- if [ "x" == "x$dl_logfile" ]; then
- dl_logfile="/tmp/logfile.$$"
- fi
-
- if [ "x" == "x$dl_outfile" ]; then
- dl_outfile="$dl_file"
- fi
-
- if [ "x" == "x$dl_title" ]; then
- dl_title="Downloading $dl_file .."
- fi
-
- if [ -f "$dl_logfile" ]; then
- rm $dl_logfile
- fi
-
- # start wget in background
- wget -v -b $dl_url -o "$dl_logfile" -O $dl_outfile
-
- sleep 0.1;
- _ddownload_checkpercentage "$dl_logfile"
-
- dl_count=$?
-
- while [ $dl_count -le 99 ];
- do
- echo $dl_count |dialog --gauge "$dl_title" $DIALOG_HEIGHT $DIALOG_WIDTH
- sleep 0.5
- _ddownload_checkpercentage "$dl_logfile"
- dl_count=$?
- done
-
- local finished=0
- while [ ! $finished ]; do
- finished=$(tail -n 4 $dl_logfile | grep -c "$dl_file");
- done
-
- echo 100 | dialog --gauge "$dl_title" $DIALOG_HEIGHT $DIALOG_WIDTH;
-
-}
-
-
-
-menu_firststart () {
- while [ "x$(cat result)" = "x" ] ; do
- dialog --menu "OpenSLX" 30 60 22 \
- 01 "Kiosk" \
- 02 "Kiosk Setup" \
- 03 "Custom System" \
- 2>result
- done
-}
-
-menu_oldconfig () {
- oldconf=$1;
- while [ "x$(cat result)" = "x" ] ; do
- dialog --menu "OpenSLX" 30 60 22 \
- 01 "Kiosk" \
- 02 "Kiosk Setup" \
- 03 "Custom System" \
- 04 "Custom System"
- 2>result
- done
-}
diff --git a/boot-env/preboot/preboot.sh b/boot-env/preboot/preboot.sh
deleted file mode 100755
index 703af974..00000000
--- a/boot-env/preboot/preboot.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/bin/ash
-# Copyright (c) 2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-#
-# preboot script for user interaction with OpenSLX preloading environment for
-# Linux stateless clients (fetched by Preboot init over the net)
-
-# get configuration
-. /etc/initramfs-setup
-. ./preboot-scripts/dialog.functions
-
-# bring the mac address into the standard format 01-<MAC>
-client=$(echo 01-$macaddr|sed "s/:/-/g")
-
-# check if already a configuration is available to decide if user interaction
-# is required (path is to be fixed)
-wget -q -O /tmp/have-user-config "$boot_uri/users.pl?user=${client}"
-have_user_config=$(cat /tmp/have-user-config);
-
-if [ "x1" == "x$have_user_config" ]; then
- wget -q -O /tmp/oldconfig "$boot_uri/users.pl?user=${client}&action=read"
- . /tmp/oldconfig
- menu_oldconfig $oldconfig
-else
- menu_firststart
-fi
-rm result;
-
-# Switch here for several boot TYPE=fastboot/directkiosk/cfgkiosk/slxconfig
-# fastboot - no interaction use system from client config
-# directkiosk - start the default slx system into kiosk (using vmchooser)
-# cfgkiosk - offer the user changes to his kiosk system (GUI environment)
-# slxconfig - offer the user set of configuration options, like setting a non-
-# priviledged user, root password, standard gui, plugins to activate ...
-
-# we expect to have a system selection dialog file in /preboot/bootmenu.dialog
-while [ "x$(cat result)" = "x" ] ; do
- dialog --file bootmenu.dialog 2>result
-done
-# source the system to boot configuration ($kernel, $initramfs, $append,
-# $label)
-sysname=$(cat result)
-. ./$sysname
-sysname=$(readlink $sysname)
-
-# set basic post data information
-postdata="system=${sysname}&preboot_id=${preboot_id}&client=${client}"
-
-# ask for desired debug level in stage3 if debug!=0 in preboot
-echo "0" >result
-[ x$DEBUGLEVEL != x0 ] && dialog --no-cancel --menu "Choose Debug Level:" \
- 20 65 10 "0" "no debug output (splash)" \
- "2" "standard debug output" \
- "3" "debug output and shell" 2>result
-
-# change debug level here if required (adjusted for the rest of the interactive
-# part)
-DEBUGLEVEL=$(cat result)
-if [ x$DEBUGLEVEL != x0 ]; then
- debug="debug=$DEBUGLEVEL"
-else
- debug=""
-fi
-
-# send information to configuration host via http
-wget --post-data "$postdata" -O /tmp/cfg-error \
- $boot_uri/cgi-bin/user_settings.pl
-
-[ "x$DEBUGLEVEL" != x0 -a grep -qe "Error:" /tmp/cfg-error 2>/dev/null ] && \
- dialog --msgbox "An error occured ..." # to be elaborated
-
-# fetch kernel and initramfs of selected system
-dialog --infobox "Loading kernel of ${sysname} ..." 3 65
-wget -q -O /tmp/kernel $boot_uri/$kernel
-dialog --infobox "Loading initial ramfs of ${sysname} ..." 3 65
-wget -q -O /tmp/initramfs $boot_uri/$initramfs
-
-# read primary IP configuration to pass it on (behaviour like IPAPPEND=1 of
-# PXElinux)
-. /tmp/ipstuff
-
-[ "x$DEBUGLEVEL" != x0 ] && { clear; ash; }
-
-# start the new kernel with initialramfs and composed cmdline
-dialog --infobox "Booting OpenSLX client $label ..." 3 65
-kexec -l /tmp/kernel --initrd=/tmp/initramfs \
- --append="$append file=$boot_uri/${preboot_id}/client-config/${sysname}/${client}.tgz $quiet ip=$ip:$siaddr:$router:$subnet:$dnssrv $debug" 2>/dev/null
-kexec -e >/dev/null 2>&1
diff --git a/boot-env/preboot/uclib-rootfs/init b/boot-env/preboot/uclib-rootfs/init
deleted file mode 100755
index ab2f9ca0..00000000
--- a/boot-env/preboot/uclib-rootfs/init
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/bin/ash
-# Copyright (c) 2008..2009 - OpenSLX GmbH
-#
-# This program is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-#
-# Main script for preboot initial ramfs - preloading environment for running
-# OpenSLX linux stateless clients version 5.
-
-fetchip () {
-# we expect to get an ip address within 10++ seconds
-( sleep 10 ; killall udhcpc >/dev/null 2>&1 ) &
-for i in 1 2 ; do
- udhcpc -f -n -q $vci -s /usr/share/udhcpc/default.script -i $nwif 2>/dev/null
- if grep "ip=" /tmp/ipstuff >/dev/null 2>&1 ; then
- . /tmp/ipstuff
- for ns in $dns ; do
- echo "nameserver $ns" >>/etc/resolv.conf
- done
- # simply add a single dns server for passing via kernel cmdline to stage3
- # (quickhack, just the last, list of dns might be better ...)
- echo "dnssrv=$ns" >>/tmp/ipstuff
- return
- else
- if [ $i -eq 1 ] ; then
- sleep 1
- else
- dialog --msgbox "Did not get any proper IP configuration: Please check \
-that your Ethernet card is supported, the machine is connected to the network \
-and a DHCP server is answering your requests." 7 65
- ash
- echo "o" >/proc/sysrq-trigger
- fi
- fi
-done
-}
-
-#############################################################################
-# PreBoot init main part
-
-# device files get their own filesystem
-devdir="/dev"
-mount -n -t tmpfs -o 'size=25%,mode=0755' initramfsdevs ${devdir}
-export DEBUGLEVEL=0
-
-# create basic device files an directories in dev
-for i in "/dev/mem c 1 1" "/dev/null c 1 3" "/dev/zero c 1 5" \
- "/dev/urandom c 1 9" "/dev/kmsg c 1 11" "/dev/tty0 c 4 0" \
- "/dev/tty1 c 4 1" "/dev/tty2 c 4 2" "/dev/tty3 c 4 3" \
- "/dev/tty4 c 4 4" "/dev/tty5 c 4 5" "/dev/tty6 c 4 6" \
- "/dev/tty7 c 4 7" "/dev/tty8 c 4 8" "/dev/tty9 c 4 9" \
- "/dev/tty10 c 4 10" "/dev/tty c 5 0" "/dev/console c 5 1" \
- "/dev/ptmx c 5 2" "/dev/psaux c 10 1" "/dev/agpgart c 10 175" \
- "/dev/fb0 c 29 0" "/dev/bootsplash p" "/dev/xconsole p"; do
- mknod $i
-done
-mkdir -p ${devdir}/pts ${devdir}/shm
-export PATH=/bin:/sbin:/usr/bin/:/usr/sbin
-
-# redirect kernel messages to tty10 instead of tty1
-getty -i -n -l /bin/cat 38400 tty10 &
-setlogcons 10
-
-# initramfs-setup configuration (common settings for all clients using a
-# certain InitRamFS generated by slxmkramfs/mkdxsinitrd)
-[ -f /etc/initramfs-setup ] && . /etc/initramfs-setup 2>/dev/null
-
-# set a default LAN interface, has to be modified for WLAN or on machines
-# with more than one ethernet card built in
-nwif="eth0"
-
-# mount the important standard directories
-[ ! -f /proc/cpuinfo ] && mount -n -t proc proc /proc
-[ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys
-
-# load framebuffer modules if needed
-for mod in vesafb fbcon; do
- if [ x != x$(find /lib/modules -name ${mod}.ko) ]; then
- modprobe $mod || \
- dialog --infobox "Module $mod did not load for some reason." 3 65
- usleep 1000
- fi
-done
-
-# give startup information
-dialog --infobox "Starting OpenSLX preboot environment ..." 3 65
-
-# load usb keyboard and network adaptor modules
-for mod in ${ramfs_nicmods} af_packet unix hid hid-bright usbhid \
- uhci-hcd ohci-hcd ; do
- if [ x != x$(find /lib/modules -name ${mod}.ko) ]; then
- modprobe $mod || \
- dialog --infobox "Module $mod did not load for some reason." 3 65
- usleep 10000
- fi
-done
-
-# set the default for boot type and read kernel commandline (for this and
-# other options)
-export TYPE=fastboot
-read KCMDLINE </proc/cmdline
-# read the system wide machine-setup and then the kernel commandline
-for opts in ${KCMDLINE} ; do
- case ${opts} in
- debug)
- DEBUGLEVEL=1;;
- # ... or a specified debug level (will be passed to next stage)
- debug=*)
- DEBUGLEVEL=${opts#debug=};;
- # WLAN ssid (most probably passed that way, unused yet ...)
- ssid=*)
- SSID=${opts#SSID=};;
- # Boot type (fastboot)/directkiosk/cfgkiosk/slxconfig
- type=*)
- TYPE=${opts#type=};;
- esac
-done
-
-# start a watchdog to ensure an automated reboot or halt of the machine if the
-# preboot init does not succeed (e.g. missing kernel module/firmware for the
-# network adaptor)
-if [ "${DEBUGLEVEL}" -eq 0 ] ; then
- cat<<EOF >/bin/watchdog
-#!/bin/ash
-echo \$$ > /tmp/watchdogpid
-[ ! -f /proc/version ] && mount -n -t proc proc /proc
-sleep 120 2>/dev/null
-echo "o" >/proc/sysrq-trigger
-EOF
- chmod u+x /bin/watchdog
- watchdog &
-else
- getty -i -n -l /bin/ash 38400 tty2 &
-fi
-
-if [ -n "${SSID}" ] ; then
- # WLAN setup will most probably change the network interface name stored in
- # nwif (to wlan0 or something like that)
- [ $DEBUGLEVEL -gt 0 ] && echo "set essid to ${essid}";
- #value of essid unchecked yet
- # load network adaptor modules
- cd /lib/modules/$(ls /lib/modules/)/kernel/drivers/net/wireless
- for mod in $(find . | grep .ko | sed 's,.*/\([^/]*\).ko,\1',); do
- echo "Mod:";
- echo $mod;
- modprobe $mod || echo "module $mod did not load for some reason"
- usleep 10000
- done
- cd /
- wlanif=$(iwconfig 2>/dev/null|sed -n "/ESSID:/p"|sed "s/ .*//")
- [ $DEBUGLEVEL -gt 0 ] && echo "wlancard recognized as ${wlanif}";
- ip link set dev ${wlanif} up
- if iwconfig ${wlanif} mode managed essid "${essid}"; then
- nwif=${wlanif}
- else
- error " Unable to configure the WLAN interface."
- fi
- :
-else
- # check here for the active Ethernet link
- ip link show dev eth1 >/dev/null 2>&1 && \
- dialog --msgbox "More than one network interface found. This could cause \
-some trouble as their activation and ordering depends on the module load \
-order ..." 7 65
-fi
-
-# set up loopback networking and power up ethernet
-ip link set dev lo up
-ip addr add 127.0.0.1/8 dev lo
-ip link set dev $nwif up || echo "I did not find any usable network adaptor."
-
-# run udhcpc and start a debug shell if no lease could be obtained
-mkdir -p /usr/share/udhcpc
-echo -e "#!/bin/ash\nunset infomsg HOME IFS mask lease interface DEBUGLEVEL \
-BOOT_IMAGE\nset >/tmp/ipstuff" >/usr/share/udhcpc/default.script
-chmod u+x /usr/share/udhcpc/default.script
-modprobe -q af_packet
-[ -n $vci ] && vci="-V $vci"
-fetchip
-ip addr add $ip/$(ipcalc -s -p $ip $subnet|sed s/.*=//) dev $nwif
-ip route add default via $router
-
-# get the mac address of the boot network adaptor
-macaddr=$(ip link show dev $nwif 2>/dev/null | \
- sed -n "/ether [0-9e-f]\{2\}:.*/p" | sed -e "s/.*ether //;s/ .*//")
-echo "macaddr=$macaddr" >>/etc/initramfs-setup
-
-# at this point a little selection script could be downloaded, which lets the
-# user choose what kind of SLX client he wants to get
-dialog --infobox "Fetching preboot interactive part and configuration from \
-the net ($boot_uri) ..." 4 65
-wget -q -O /tmp/preboot.env $boot_uri/bootloader/${preboot_id}.env
-mkdir /preboot
-tar -xzf /tmp/preboot.env -C /preboot
-# start a debug shell if needed, else set quiet kernel parameter
-if [ "${DEBUGLEVEL}" -gt 0 ] ; then
- echo "Starting shell, leaving it would continue init."
- /bin/ash
-else
- # no debugging output for stage3 run
- echo "quiet=quiet" >>/etc/initramfs-setup
-fi
-# run the preboot interactive part which finally will execute kexec
-cd /preboot
-exec ./preboot.sh
-# we should never return from that one ...
-dialog --msgbox "The execution of the main preboot component failed. Please \
-check network access of your box. Is $boot_uri reachable!?" 6 65
-# ping -c 1 $boot_uri
-sleep 20 && echo "o" >/proc/sysrq-trigger
-
diff --git a/boot-env/preboot/uclib-rootfs/lib/libcurses.so b/boot-env/preboot/uclib-rootfs/lib/libcurses.so
deleted file mode 120000
index c7b1e02a..00000000
--- a/boot-env/preboot/uclib-rootfs/lib/libcurses.so
+++ /dev/null
@@ -1 +0,0 @@
-libncurses.so.5.6 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/lib/libncurses.so b/boot-env/preboot/uclib-rootfs/lib/libncurses.so
deleted file mode 120000
index 7257b6af..00000000
--- a/boot-env/preboot/uclib-rootfs/lib/libncurses.so
+++ /dev/null
@@ -1 +0,0 @@
-libncurses.so.5 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5 b/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5
deleted file mode 120000
index c7b1e02a..00000000
--- a/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5
+++ /dev/null
@@ -1 +0,0 @@
-libncurses.so.5.6 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5.6 b/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5.6
deleted file mode 100755
index a395c6b7..00000000
--- a/boot-env/preboot/uclib-rootfs/lib/libncurses.so.5.6
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/bin/clear b/boot-env/preboot/uclib-rootfs/usr/bin/clear
deleted file mode 100755
index acc13246..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/bin/clear
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/bin/dialog b/boot-env/preboot/uclib-rootfs/usr/bin/dialog
deleted file mode 100755
index 6929569f..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/bin/dialog
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/bin/w3m b/boot-env/preboot/uclib-rootfs/usr/bin/w3m
deleted file mode 100755
index 2766a681..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/bin/w3m
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so b/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so
deleted file mode 120000
index cda623f3..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so
+++ /dev/null
@@ -1 +0,0 @@
-libcrypto.so.0.9.8 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so.0.9.8 b/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so.0.9.8
deleted file mode 100755
index bb1b8163..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libcrypto.so.0.9.8
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libcurses.so b/boot-env/preboot/uclib-rootfs/usr/lib/libcurses.so
deleted file mode 100755
index 32ad8efe..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libcurses.so
+++ /dev/null
@@ -1,11 +0,0 @@
-/* GNU ld script
- Since Gentoo has critical dynamic libraries in /lib, and the static versions
- in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
- run into linking problems. This "fake" dynamic lib is a linker script that
- redirects the linker to the real lib. And yes, this works in the cross-
- compiling scenario as the sysroot-ed linker will prepend the real path.
-
- See bug http://bugs.gentoo.org/4411 for more info.
- */
-OUTPUT_FORMAT ( elf32-i386 )
-GROUP ( /lib/libcurses.so )
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libform.so b/boot-env/preboot/uclib-rootfs/usr/lib/libform.so
deleted file mode 120000
index 10e91696..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libform.so
+++ /dev/null
@@ -1 +0,0 @@
-libform.so.5 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5 b/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5
deleted file mode 120000
index 4a80f6b6..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5
+++ /dev/null
@@ -1 +0,0 @@
-libform.so.5.6 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5.6 b/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5.6
deleted file mode 100755
index 888adb22..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libform.so.5.6
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so b/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so
deleted file mode 120000
index b12b5cfb..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so
+++ /dev/null
@@ -1 +0,0 @@
-libmenu.so.5 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5 b/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5
deleted file mode 120000
index 869f4a57..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5
+++ /dev/null
@@ -1 +0,0 @@
-libmenu.so.5.6 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5.6 b/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5.6
deleted file mode 100755
index fb190a90..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libmenu.so.5.6
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libncurses.so b/boot-env/preboot/uclib-rootfs/usr/lib/libncurses.so
deleted file mode 100755
index e7122a85..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libncurses.so
+++ /dev/null
@@ -1,11 +0,0 @@
-/* GNU ld script
- Since Gentoo has critical dynamic libraries in /lib, and the static versions
- in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
- run into linking problems. This "fake" dynamic lib is a linker script that
- redirects the linker to the real lib. And yes, this works in the cross-
- compiling scenario as the sysroot-ed linker will prepend the real path.
-
- See bug http://bugs.gentoo.org/4411 for more info.
- */
-OUTPUT_FORMAT ( elf32-i386 )
-GROUP ( /lib/libncurses.so )
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so b/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so
deleted file mode 120000
index b5cd4a70..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so
+++ /dev/null
@@ -1 +0,0 @@
-libpanel.so.5 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5 b/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5
deleted file mode 120000
index ff2e80a5..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5
+++ /dev/null
@@ -1 +0,0 @@
-libpanel.so.5.6 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5.6 b/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5.6
deleted file mode 100755
index 4acbc076..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libpanel.so.5.6
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so b/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so
deleted file mode 120000
index 7874414f..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so
+++ /dev/null
@@ -1 +0,0 @@
-libssl.so.0.9.8 \ No newline at end of file
diff --git a/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8 b/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8
deleted file mode 100755
index 194078c5..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/lib/libssl.so.0.9.8
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/sbin/kdump b/boot-env/preboot/uclib-rootfs/usr/sbin/kdump
deleted file mode 100755
index 07226a4b..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/sbin/kdump
+++ /dev/null
Binary files differ
diff --git a/boot-env/preboot/uclib-rootfs/usr/sbin/kexec b/boot-env/preboot/uclib-rootfs/usr/sbin/kexec
deleted file mode 100755
index cc49c45c..00000000
--- a/boot-env/preboot/uclib-rootfs/usr/sbin/kexec
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/LICENSE b/boot-env/syslinux/LICENSE
deleted file mode 100644
index 7233bc7e..00000000
--- a/boot-env/syslinux/LICENSE
+++ /dev/null
@@ -1,3 +0,0 @@
-This package is free software distributed under the GPL version 2.
-See http://openslx.org/COPYING. For additional information on the
-SYSLINUX component by H.P. Anwin check http://syslinux.zytor.com!
diff --git a/boot-env/syslinux/README.iso b/boot-env/syslinux/README.iso
deleted file mode 100644
index f9abdbea..00000000
--- a/boot-env/syslinux/README.iso
+++ /dev/null
@@ -1,6 +0,0 @@
-You seem to have the OpenSLX network demo CD/DVD still in your optical
-drive! This is not required. You may safely remove the medium just
-after the first kernel/initramfs is loaded ...
-
-If you have any feedback please consult http://openslx.org/feedback
-and send your comments to feedback@openslx.org!
diff --git a/boot-env/syslinux/README.pxe b/boot-env/syslinux/README.pxe
deleted file mode 100644
index 9a14ee52..00000000
--- a/boot-env/syslinux/README.pxe
+++ /dev/null
@@ -1,68 +0,0 @@
-The PXE stuff uses HPAs syslinux, see http://syslinux.zytor.com!
-
-Example how the PXElinux information is gathered:
-
-############################## PXElinux-menu file ##############################
-##### first static information is written, can't be changed #####
-##### override with include-menu (except DEFAULT vesamenu.c32) #####
-# #
-# DEFAULT vesamenu.c32 #
-# NOESCAPE 0 #
-# PROMPT 0 #
-# #
-##### then theme specific information is written (if theme specified) #####
-##### #####
-# #
-# MENU BACKGROUND openslx.png #
-# MENU WIDTH 78 #
-# . #
-# . #
-# menu color unsel 37;40 #fff0f0f0 #ff8093a1 std #
-# . #
-# . #
-# . #
-# #
-##### now slxsettings configuration is being read #####
-##### #####
-# #
-# TIMEOUT 100 #
-# TOTALTIMEOUT 600 #
-# MENU MASTER PASSWD secret #
-# MENU TITLE Welcome to OpenSLX #
-# #
-##### after this /etc/opt/openslx/boot-env/syslinux/pxemenu-include is #####
-##### included if it is existing, overriding above statements #####
-# #
-# MENU PASSPROMPT Gesicherter Bereich, bitte Passwort eingeben: #
-# MENU AUTOBOOT Auswahl startet in # Sekunden #
-# . #
-# . #
-# . #
-# #
-##### at this point the system labels are being included #####
-##### #####
-# #
-# LABEL openslx-suse-11.0-default::nfs #
-# MENU LABEL ^SUSE 11.0 System / NFS #
-# KERNEL suse-11.0-default/vmlinuz-2.6.25.20-0.1-pae #
-# APPEND quiet vga=791 initrd=suse-11.0-default/initramfs-1 file #
-# IPAPPEND 3 #
-# TEXT HELP #
-# OpenSUSE 11.0 System #
-# ENDTEXT #
-# . #
-# . #
-# . #
-# #
-##### at the end /etc/opt/openslx/boot-env/syslinux/pxemenu-bottom is #####
-##### being incl. if existing #####
-##### please specify only systems and further menus #####
-# #
-# MENU SEPARATOR #
-# LABEL test #
-# MENU LABEL ^Testmenu #
-# MENU PASSWD test #
-# KERNEL pxechain.com #
-# APPEND 192.168.1.1::pxelinux.0 #
-# #
-########################## End of PXElinux-menu file ###########################
diff --git a/boot-env/syslinux/extlinux b/boot-env/syslinux/extlinux
deleted file mode 100755
index 69d8bf56..00000000
--- a/boot-env/syslinux/extlinux
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/initramfs-shutdown b/boot-env/syslinux/initramfs-shutdown
deleted file mode 100644
index 3e4376bd..00000000
--- a/boot-env/syslinux/initramfs-shutdown
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/isolinux.bin b/boot-env/syslinux/isolinux.bin
deleted file mode 100644
index bd778b3b..00000000
--- a/boot-env/syslinux/isolinux.bin
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/kernel-shutdown b/boot-env/syslinux/kernel-shutdown
deleted file mode 100644
index ddb180dd..00000000
--- a/boot-env/syslinux/kernel-shutdown
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/mboot.c32 b/boot-env/syslinux/mboot.c32
deleted file mode 100755
index 929ade6f..00000000
--- a/boot-env/syslinux/mboot.c32
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/mbr.bin b/boot-env/syslinux/mbr.bin
deleted file mode 100644
index 8592b598..00000000
--- a/boot-env/syslinux/mbr.bin
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/menu.c32 b/boot-env/syslinux/menu.c32
deleted file mode 100755
index 67f9c29b..00000000
--- a/boot-env/syslinux/menu.c32
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/pxechain.com b/boot-env/syslinux/pxechain.com
deleted file mode 100644
index 8c4e0c5b..00000000
--- a/boot-env/syslinux/pxechain.com
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/pxelinux.0 b/boot-env/syslinux/pxelinux.0
deleted file mode 100644
index 0df4fbed..00000000
--- a/boot-env/syslinux/pxelinux.0
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/pxemenu-bottom.example b/boot-env/syslinux/pxemenu-bottom.example
deleted file mode 100644
index 29ceee3c..00000000
--- a/boot-env/syslinux/pxemenu-bottom.example
+++ /dev/null
@@ -1,39 +0,0 @@
-# this include file will be loaded at the bottom of the menu after the system
-# labels, please define only further menus and systems
-# for theme configuration use theme.conf in your theme directory
-# general settings can be set via slxsettings
-# please copy to pxemenu-bottom if needed
-
-## example: shutdown label in menu
-#LABEL shutdown
-# MENU LABEL ^Shutdown PC
-# KERNEL kernel-shutdown
-# APPEND initrd=initramfs-shutdown quiet
-
-## help label not selectable
-#LABEL help
-# MENU LABEL Press 'F1' for help
-# MENU DISABLE
-
-## example: add an additional menu on the same tftp server
-#LABEL test
-# MENU LABEL ^Testmeu
-# KERNEL vesamenu.c32
-# APPEND testmenu
-
-## example: add an additional menu on a different tftp server, with passwd
-#LABEL test2
-# MENU LABEL ^Testmeu
-# MENU PASSWD test
-# KERNEL pxechain.com
-# APPEND 192.168.101.102::pxelinux.0
-
-## example blank line / menu separator
-#MENU SEPARATOR
-
-## example localboot with passwd
-#LABEL local
-# MENU LABEL Boot from local ^Harddisk
-# MENU PASSWD local
-# localboot 0
-
diff --git a/boot-env/syslinux/pxemenu-include.example b/boot-env/syslinux/pxemenu-include.example
deleted file mode 100644
index c09f8e70..00000000
--- a/boot-env/syslinux/pxemenu-include.example
+++ /dev/null
@@ -1,58 +0,0 @@
-# this include file will be loaded at the end of theme and slxsettings
-# configuration but right before the system labels
-# it will overwrite existing defs
-# for theme configuration use theme.conf in your theme directory
-# general settings can be set via slxsettings
-# please copy to pxemenu-include if needed
-
-## example german help:
-#MENU PASSPROMPT Gesicherter Bereich, bitte Passwort eingeben:
-#MENU AUTOBOOT Auswahl startet in # Sekunden
-
-## example: shutdown on timeout
-#ONTIMEOUT shutdown
-#LABEL shutdown
-# MENU HIDE
-# KERNEL kernel-shutdown
-# APPEND initrd=initramfs-shutdown quiet
-
-## example: shutdown label in menu
-#LABEL shutdown2
-# MENU LABEL ^Shutdown PC
-# KERNEL kernel-shutdown
-# APPEND initrd=initramfs-shutdown quiet
-
-## help/... text on F1 keypress
-#F1 help_01.txt
-## optionally with info
-#LABEL help
-# MENU LABEL Press 'F1' for help
-# MENU DISABLE
-
-## example: add an additional menu on the same tftp server
-#LABEL test
-# MENU LABEL ^Testmeu
-# KERNEL vesamenu.c32
-# APPEND testmenu
-
-## example: add an additional menu on a different tftp server, with passwd
-#LABEL test2
-# MENU LABEL ^Testmeu
-# MENU PASSWD test
-# KERNEL pxechain.com
-# APPEND 192.168.101.102::pxelinux.0
-
-## example non-selectable line
-#LABEL -
-# MENU LABEL ________________________________________________________
-# MENU DISABLE
-
-## example blank line / menu separator
-#MENU SEPARATOR
-
-## example localboot with passwd
-#LABEL local
-# MENU LABEL Boot from local ^Harddisk
-# MENU PASSWD local
-# localboot 0
-
diff --git a/boot-env/syslinux/syslinux b/boot-env/syslinux/syslinux
deleted file mode 100755
index 92b1b907..00000000
--- a/boot-env/syslinux/syslinux
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/themes/openslx/openslx.png b/boot-env/syslinux/themes/openslx/openslx.png
deleted file mode 100644
index ccf8cc0a..00000000
--- a/boot-env/syslinux/themes/openslx/openslx.png
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/themes/openslx/theme.conf b/boot-env/syslinux/themes/openslx/theme.conf
deleted file mode 100644
index e28562d6..00000000
--- a/boot-env/syslinux/themes/openslx/theme.conf
+++ /dev/null
@@ -1,40 +0,0 @@
-# openslx theme style definition
-# please define only look of your theme
-# for non-theme definitions use slxsettings
-# or include file in /etc/opt/openslx/boot-env/syslinux/pxemenu-include
-
-MENU BACKGROUND openslx.png
-MENU WIDTH 78
-MENU MARGIN 9
-MENU PASSWORDMARGIN 9
-MENU ROWS 10
-MENU TABMSGROW 16
-MENU CMDLINEROW 16
-MENU ENDROW -1
-MENU PASSWORDROW 16
-MENU TIMEOUTROW 20
-MENU HELPMSGROW 16
-MENU HELPMSGENDROW -1
-MENU HSHIFT 0
-MENU VSHIFT 7
-
-menu color screen 37;40 #80ffffff #00000000 std
-menu color border 37;40 #40000000 #ff8093a1 std
-menu color title 1;37;40 #ffff8b00 #ff8093a1 std
-menu color unsel 37;40 #fff0f0f0 #ff8093a1 std
-menu color hotkey 1;37;40 #ffff8b00 #ff8093a1 std
-menu color sel 7;37;40 #ff1c2a33 #667799bb all
-menu color hotsel 1;7;37;40 #ffff8b00 #667799bb all
-menu color disabled 1;37;40 #ffff8b00 #ff8093a1 std
-menu color scrollbar 37;40 #40000000 #ee000000 std
-menu color tabmsg 37;40 #ffff8b00 #ff8093a1 std
-menu color cmdmark 1;37;40 #ffff8b00 #ff8093a1 std
-menu color cmdline 37;40 #fff0f0f0 #ff8093a1 std
-menu color pwdborder 37;40 #40000000 #ff8093a1 std
-menu color pwdheader 37;40 #ffff8b00 #ff8093a1 std
-menu color pwdentry 37;40 #ffff8b00 #ff8093a1 std
-menu color timeout_msg 37;40 #fff0f0f0 #ff8093a1 std
-menu color timeout 1;37;40 #ffff8b00 #ff8093a1 std
-menu color help 37;40 #ff1c2a33 #00000000 none
-MENU MSGCOLOR #ff1c2a33 #00000000 none
-
diff --git a/boot-env/syslinux/themes/openslxpbs/openslx.png b/boot-env/syslinux/themes/openslxpbs/openslx.png
deleted file mode 100644
index fefbfdf3..00000000
--- a/boot-env/syslinux/themes/openslxpbs/openslx.png
+++ /dev/null
Binary files differ
diff --git a/boot-env/syslinux/themes/openslxpbs/theme.conf b/boot-env/syslinux/themes/openslxpbs/theme.conf
deleted file mode 100644
index e28562d6..00000000
--- a/boot-env/syslinux/themes/openslxpbs/theme.conf
+++ /dev/null
@@ -1,40 +0,0 @@
-# openslx theme style definition
-# please define only look of your theme
-# for non-theme definitions use slxsettings
-# or include file in /etc/opt/openslx/boot-env/syslinux/pxemenu-include
-
-MENU BACKGROUND openslx.png
-MENU WIDTH 78
-MENU MARGIN 9
-MENU PASSWORDMARGIN 9
-MENU ROWS 10
-MENU TABMSGROW 16
-MENU CMDLINEROW 16
-MENU ENDROW -1
-MENU PASSWORDROW 16
-MENU TIMEOUTROW 20
-MENU HELPMSGROW 16
-MENU HELPMSGENDROW -1
-MENU HSHIFT 0
-MENU VSHIFT 7
-
-menu color screen 37;40 #80ffffff #00000000 std
-menu color border 37;40 #40000000 #ff8093a1 std
-menu color title 1;37;40 #ffff8b00 #ff8093a1 std
-menu color unsel 37;40 #fff0f0f0 #ff8093a1 std
-menu color hotkey 1;37;40 #ffff8b00 #ff8093a1 std
-menu color sel 7;37;40 #ff1c2a33 #667799bb all
-menu color hotsel 1;7;37;40 #ffff8b00 #667799bb all
-menu color disabled 1;37;40 #ffff8b00 #ff8093a1 std
-menu color scrollbar 37;40 #40000000 #ee000000 std
-menu color tabmsg 37;40 #ffff8b00 #ff8093a1 std
-menu color cmdmark 1;37;40 #ffff8b00 #ff8093a1 std
-menu color cmdline 37;40 #fff0f0f0 #ff8093a1 std
-menu color pwdborder 37;40 #40000000 #ff8093a1 std
-menu color pwdheader 37;40 #ffff8b00 #ff8093a1 std
-menu color pwdentry 37;40 #ffff8b00 #ff8093a1 std
-menu color timeout_msg 37;40 #fff0f0f0 #ff8093a1 std
-menu color timeout 1;37;40 #ffff8b00 #ff8093a1 std
-menu color help 37;40 #ff1c2a33 #00000000 none
-MENU MSGCOLOR #ff1c2a33 #00000000 none
-
diff --git a/boot-env/syslinux/vesamenu.c32 b/boot-env/syslinux/vesamenu.c32
deleted file mode 100755
index 804e2fb8..00000000
--- a/boot-env/syslinux/vesamenu.c32
+++ /dev/null
Binary files differ