summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Janczyk2012-12-17 17:56:22 +0100
committerMichael Janczyk2012-12-17 17:56:22 +0100
commitf6091ada5b293fe64e1dd6c6959189e0b8e4d1fa (patch)
tree415b402dfc2046b0f01392dea0c909aa17a1efa2 /src
parentFW is now automatically added to the initramfs. Checks are done with modinfo. (diff)
downloadcore-f6091ada5b293fe64e1dd6c6959189e0b8e4d1fa.tar.gz
core-f6091ada5b293fe64e1dd6c6959189e0b8e4d1fa.tar.xz
core-f6091ada5b293fe64e1dd6c6959189e0b8e4d1fa.zip
Follow links in modprobe.d when copying to stage3.
Minor version change, because of ne feautres
Diffstat (limited to 'src')
-rw-r--r--src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm41
1 files changed, 28 insertions, 13 deletions
diff --git a/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm
index 1eb91e88..e539ddd4 100644
--- a/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm
+++ b/src/boot-env/OpenSLX/MakeInitRamFS/Engine/Base.pm
@@ -319,8 +319,9 @@ sub _copyKernelModules
if (-e $firmwareSource){
my $targetDir = dirname("$self->{'build-path'}/lib/firmware/" .
"$firmwareToBeCopied");
- $self->addCMD("mkdir -p $targetDir; \
- cp -pr --dereference $firmwareSource $targetDir");
+ vlog(5,"Trying to make directory: $targetDir");
+ $self->addCMD("mkdir -p $targetDir");
+ $self->addCMD("cp -pr $firmwareSource $targetDir");
} else {
vlog(3,"unable to find $firmwareSource for copying purposes");
}
@@ -328,8 +329,9 @@ sub _copyKernelModules
if (-e $kernelFWSource){
my $targetDir = dirname("$self->{'build-path'}/lib/firmware/" .
"$self->{'kernel-version'}/$firmwareToBeCopied");
- $self->addCMD("mkdir -p $targetDir; \
- cp -pr --dereference $kernelFWSource $targetDir");
+ vlog(5,"Trying to make directory: $targetDir");
+ $self->addCMD("mkdir -p $targetDir");
+ $self->addCMD("cp -pr $kernelFWSource $targetDir");
} else {
vlog(3,"unable to find $kernelFWSource for copying purposes");
}
@@ -341,10 +343,10 @@ sub _copyKernelModules
"$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");
+ my ($targetDir) = $target =~m/(.*\/).*$/;
+ vlog(5,"Trying to make directory: $targetDir");
+ $self->addCMD("mkdir -p $targetDir");
+ $self->addCMD("cp -p $source $target");
}
return;
@@ -353,11 +355,24 @@ sub _copyKernelModules
sub _copyModprobeD
{
my $self = shift;
-
- my $source = "$self->{'root-path'}/etc/modprobe.d";
- my $target = "$self->{'build-path'}/etc";
- $self->addCMD("cp -pr --dereference $source $target");
-
+ my $target = "$self->{'build-path'}/etc/modprobe.d";
+
+ opendir my $modprobeDir, "$self->{'root-path'}/etc/modprobe.d"
+ or die "Cannot open directory: $!";
+ my @modprobeFiles = readdir $modprobeDir;
+ closedir $modprobeDir;
+
+ vlog(5,"Trying to make directory: $target");
+ $self->addCMD("mkdir -p $target");
+ foreach my $modprobeConf (@modprobeFiles) {
+ # ignore files beginning with '.'
+ next if ($modprobeConf =~ m/^\./);
+ my $source = followLink(
+ "$self->{'root-path'}/etc/modprobe.d/$modprobeConf",
+ $self->{'root-path'}
+ );
+ $self->addCMD("cp -pr $source $target");
+ }
return;
}