summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Hoppe2009-09-04 16:30:14 +0200
committerAlexander Hoppe2009-09-04 16:30:14 +0200
commitfd3ddfacbfc3e2b843bc65a9c84aee0e19192a94 (patch)
tree736a54508b1086b7c1eb4319912a89a65525f822
parentxserver plugin: (diff)
downloadcore-fd3ddfacbfc3e2b843bc65a9c84aee0e19192a94.tar.gz
core-fd3ddfacbfc3e2b843bc65a9c84aee0e19192a94.tar.xz
core-fd3ddfacbfc3e2b843bc65a9c84aee0e19192a94.zip
integrated firmware copy process into kernel module process, deleted unused attribute an function
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@3143 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm60
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm2
-rw-r--r--boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm2
-rw-r--r--config-db/OpenSLX/AttributeRoster.pm10
-rw-r--r--config-db/OpenSLX/DBSchema.pm1
5 files changed, 29 insertions, 46 deletions
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm b/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm
index 30ad500a..662c073e 100644
--- a/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm
+++ b/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm
@@ -15,6 +15,7 @@ package OpenSLX::MakeInitRamFS::Engine::Base;
use strict;
use warnings;
+use Switch;
use File::Basename;
use POSIX qw(strftime);
@@ -187,36 +188,6 @@ sub _addFilteredKernelModules
return;
}
-sub _copyFirmware
-{
- my $self = shift;
-
- my $sourcePath = "$self->{'root-path'}/lib/firmware/$self->{'kernel-version'}";
- vlog(3,"sourcePath: $sourcePath");
-
- my $targetPath
- = "$self->{'build-path'}/lib/firmware";
- vlog(3,"targetPath: $targetPath");
- $self->addCMD("mkdir -p $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 @firmwareModules;
- vlog(3,"ramfs_firmmods: $self->{attrs}->{ramfs_firmmods}");
- push @firmwareModules, split ' ', $self->{attrs}->{ramfs_firmmods};
- # copy all the modules that we think are required
- foreach my $moduleToBeCopied (@firmwareModules) {
- my $source = followLink(
- "$self->{'root-path'}/lib/firmware/$self->{'kernel-version'}/$moduleToBeCopied", $self->{'root-path'}
- );
- my $target = "$targetPath/$moduleToBeCopied";
- $self->addCMD("cp -pa --dereference $source $target");
-
- }
- return;
-}
-
sub _copyKernelModules
{
my $self = shift;
@@ -300,10 +271,37 @@ sub _copyKernelModules
}
}
+ # build a list of required firmwares out of the list of modules
+ my @firmwares;
+ $self->addCMD("mkdir -p $self->{'root-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 "tg3.ko" {push @firmwares, split ' ', "tigon/"}
+
+ }
+ }
+ # 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/$firmwareToBeCopied";
+ (-d $target) or $self->addCMD("mkdir -p $target");
+ $self->addCMD("cp -pa --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 $targetDir = "$self->{'build-path'}" . dirname($moduleToBeCopied);
- $self->addCMD("mkdir -p $targetDir");
+ (-d $targetDir) or $self->addCMD("mkdir -p $targetDir");
my $source = followLink(
"$self->{'root-path'}$moduleToBeCopied", $self->{'root-path'}
);
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm b/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm
index 5605df62..aecfd00f 100644
--- a/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm
+++ b/boot-env/OpenSLX/MakeInitRamFS/Engine/Preboot.pm
@@ -43,8 +43,6 @@ sub _collectCMDs
$self->_copyKernelModules();
- $self->_copyFirmware();
-
$self->_createInitRamFS();
return;
diff --git a/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm b/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm
index e67b1fc4..f4e2708c 100644
--- a/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm
+++ b/boot-env/OpenSLX/MakeInitRamFS/Engine/SlxBoot.pm
@@ -53,8 +53,6 @@ sub _collectCMDs
$self->_copyKernelModules();
- $self->_copyFirmware();
-
$self->_createInitRamFS();
return;
diff --git a/config-db/OpenSLX/AttributeRoster.pm b/config-db/OpenSLX/AttributeRoster.pm
index c0c7f549..f039d20e 100644
--- a/config-db/OpenSLX/AttributeRoster.pm
+++ b/config-db/OpenSLX/AttributeRoster.pm
@@ -171,16 +171,6 @@ sub _init
content_descr => 'a space-separated list of NIC modules',
default => 'forcedeth e1000 e100 tg3 via-rhine r8169 pcnet32',
},
- 'ramfs_firmmods' => {
- applies_to_systems => 1,
- applies_to_clients => 0,
- description => unshiftHereDoc(<<' End-of-Here'),
- list of wifi network card modules to load
- End-of-Here
- content_regex => qr{^\s*([-\w]+\s*)*$},
- content_descr => 'a space-separated list of firmware modules',
- default => '',
- },
'hw_local_disk' => {
applies_to_systems => 1,
applies_to_clients => 1,
diff --git a/config-db/OpenSLX/DBSchema.pm b/config-db/OpenSLX/DBSchema.pm
index f913b3ba..d3e7573b 100644
--- a/config-db/OpenSLX/DBSchema.pm
+++ b/config-db/OpenSLX/DBSchema.pm
@@ -380,7 +380,6 @@ sub _schemaUpgradeDBFrom
'attr_ramfs_fsmods',
'attr_ramfs_miscmods',
'attr_ramfs_nicmods',
- 'attr_ramfs_firmmods',
'attr_ramfs_screen',
'attr_sane_scanner',
'attr_scratch',