On Sat, 05 May 2007 18:30:53 +0200, Paul Menzel <[EMAIL PROTECTED]> said:
> Hi. Am Samstag, den 05.05.2007, 11:06 -0500 schrieb Manoj Srivastava:
>> > Sorry. Could you please tell me where the problem is originating?
>> > What is the program responsible for setting this variable?
>>
>> I think forgot the --initrd option to make-kpkg. With the --initrd
>> argument, you get a postinst with initrd support -- and not
>> otherwise. The default is not having initrd support.
> I am pretty sure I did not forget it, since I copied the commands from
> the bash history. And as you can see in the previous message the
> --initrd option was passed to make-kpkg both times I tried.
Well, the reason I think that this is not the case is that the
operation of make-kpkg is pretty simple:
First, getopt converts --initrd into $initrd:
,----[ make-kpkg lines 58-108 ]
| use Getopt::Long;
| my %option_ctl =
| (
| ...
| "verbose" => \$verbose,
| "initrd" => \$initrd,
| "revision=s" => \$revision,
| ...
| );
`----
Then, if the option is given, it converts into a variable
declaration on the make command line:
,----[ /usr/bin/make-kpkg lines 1036-1040 ]
| if ($initrd) {
| $command .= " INITRD=YES ";
| $alt_cmd .= " INITRD=YES "
| unless -f "debian/ruleset/kernel_version.mk";
| }
`----
The image postinst is generated by a simple sed command:
,----[ /usr/share/kernel-package/ruleset/targets/image.mk lines 226-233 ]
| sed -e 's/=V/$(version)/g' -e 's/=IB/$(link_in_boot)/g' \
| -e 's/=ST/$(INT_STEM)/g' -e 's/=R/$(reverse_symlink)/g' \
| -e 's/=K/$(kimage)/g' -e 's/=L/$(loader)/g' \
| -e 's/=I/$(INITRD)/g' -e 's,=D,$(IMAGEDIR),g' \
| -e 's/=MD/$(initrddep)/g' \
| -e '[EMAIL PROTECTED]@$(initrdcmd)@g' -e '[EMAIL
PROTECTED]@$(DEB_HOST_ARCH)@g' \
| -e '[EMAIL PROTECTED]@$(MKIMAGE)@g' -e
's/=OF/$(AM_OFFICIAL)/g' \
| -e 's/=S/$(no_symlink)/g' -e '[EMAIL
PROTECTED]@$(KERNEL_ARCH)@g' \
| $(DEBDIR)/pkg/image/postinst > $(TMPTOP)/DEBIAN/postinst
`----
The template that sed command operates on, to create the
postinst is here:
,----[ /usr/share/kernel-package/pkg/image/postinst lines 41-45 ]
| my $relative_links = ""; # target machine defined
| my $initrd = "=I"; # initrd kernel
| my $mkimage = "=M"; # command to generate the initrd image
`----
Now, if you don't grok Perl/make, the other non-code argument is
that if make-kpkg messed up something as basic as this, official kernel
images would have been mucked up, and there would have been howls of
other people protesting as well.
Anyway, try doing this again -- start with a clean kernel source
tree (no ./debian); run the command, and try installing the .deb.
manoj
--
There is no such thing as a problem without a gift for you in its hands.
Manoj Srivastava <[EMAIL PROTECTED]> <http://www.golden-gryphon.com/>
1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]