File: nbitoelf.pl

package info (click to toggle)
mknbi 1.4.4-1.1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 828 kB
  • ctags: 1,383
  • sloc: ansic: 3,511; asm: 2,374; perl: 1,368; makefile: 249; sh: 74; pascal: 37
file content (30 lines) | stat: -rwxr-xr-x 920 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/perl -w
#
# Quick and dirty program to convert a NBI Linux image to an ELF image
# Calls disnbi and mkelf-linux to do the work
#
my $nbifile = shift or die "Usage: $0 nbifile elffile\n";
my $elffile = shift or die "Usage: $0 nbifile elffile\n";
-r $nbifile or die "Cannot read $nbifile\n";
my @segments = "segment0" .. "segment5";
unlink(@segments);
system("disnbi -e $nbifile");
my $params = `cat segment1`;
$params =~ tr/\000//;
undef $/;
open(O, ">kimage") or die "kimage: $!\n";
foreach $i ("segment2" .. "segment4") {
	open(I, $i) or die "$i: $!\n";
	$_ = <I>;
	print O $_;
	close(I);
}
close(O);
print "mkelf-linux -o $elffile --param='$params' kimage initrd\n";
if (-r 'segment5') {
	system('mkelf-linux', "--output=$elffile", "--param=$params", 'kimage', 'segment5');
} else {
	system('mkelf-linux', "--output=$elffile", "--param=$params", 'kimage');
}
unlink(@segments, 'nbidir', 'kimage');
exit(0);