2008-10-25 21:47:15

by Hartmut Niemann

[permalink] [raw]
Subject: nfsroot.txt in 2.4.36.7 and 2.6.27.1, Configure.help in 2.4.36.7: missing precondition CONFIG_IP_PNP

Hello everybody!

In kernel versions 2.4.36.7 and 2.6.27.1 (I checked only these) the file
nfsroot.txt fail to mention, that
Kernel level autoconfiguration CONFIG_IP_PNP *must* be selected
(in 2.6.27.1 the wording is much better mentioning that nfs may not be
compiled as a module than in 2.4.36.7)
in order to be able to even *see* the option
"Root file system on NFS" (CONFIG_ROOT_NFS)
-- except for xconfig in 2.4.36, which allowed me to see that there is
this option (greyed), and to see it's help text. (This, by the way,
was a big help -- I could see that the option is still present in current
kernels)

I reordered the section 1 of nfsroot.txt (of 2.6.27.1), diff is attached.
(And I fixed some chapter numbering in section 3).
Is this document otherwise correct for 2.4 and can be updated there too?
The version in 2.4.36.7 is

The help text of CONFIG_ROOT_NFS in 2.4.36.7 is quite funny:
"It is
likely that in this case, you also want to say Y to "Kernel level IP
autoconfiguration" so that your box can discover its network address
at boot time."
Does that make clear that you can not even see this option
during make *config unless you set "Kernel level IP autoconfiguration"?
The help text of CONFIG_NFS_FS does contain the information,
but I found it there a little late. The texts in 2.6 are better.

A diff for 2.4.36.7 Configure.help is attached as well.

Is this correct?

With best regards
Hartmut Niemann


Attachments:
(No filename) (1.40 kB)
nfsroot.txt.diff (2.45 kB)
Configure.help.diff (900.00 B)
Download all attachments

2008-10-26 03:29:01

by Willy Tarreau

[permalink] [raw]
Subject: Re: nfsroot.txt in 2.4.36.7 and 2.6.27.1, Configure.help in 2.4.36.7: missing precondition CONFIG_IP_PNP

Hi,

On Sat, Oct 25, 2008 at 11:47:01PM +0200, Hartmut Niemann wrote:
> Hello everybody!
>
> In kernel versions 2.4.36.7 and 2.6.27.1 (I checked only these) the file
> nfsroot.txt fail to mention, that
> Kernel level autoconfiguration CONFIG_IP_PNP *must* be selected
> (in 2.6.27.1 the wording is much better mentioning that nfs may not be
> compiled as a module than in 2.4.36.7)
> in order to be able to even *see* the option
> "Root file system on NFS" (CONFIG_ROOT_NFS)
> -- except for xconfig in 2.4.36, which allowed me to see that there is
> this option (greyed), and to see it's help text. (This, by the way,
> was a big help -- I could see that the option is still present in current
> kernels)

Kbuild in 2.6 is much more evolved than in 2.4 as it knows about
dependencies, and tells the user what needs to be enabled for each
option. It's true that xconfig is sometimes helpful on 2.4 for this
reason, but I tend to grep for the option rather than starting xconfig.

> I reordered the section 1 of nfsroot.txt (of 2.6.27.1), diff is attached.
> (And I fixed some chapter numbering in section 3).
> Is this document otherwise correct for 2.4 and can be updated there too?
> The version in 2.4.36.7 is
>
> The help text of CONFIG_ROOT_NFS in 2.4.36.7 is quite funny:
> "It is
> likely that in this case, you also want to say Y to "Kernel level IP
> autoconfiguration" so that your box can discover its network address
> at boot time."
> Does that make clear that you can not even see this option
> during make *config unless you set "Kernel level IP autoconfiguration"?
> The help text of CONFIG_NFS_FS does contain the information,
> but I found it there a little late. The texts in 2.6 are better.
>
> A diff for 2.4.36.7 Configure.help is attached as well.
>
> Is this correct?

Your explanation seems correct, but it only explains better the option
which you couldn't find. So you still have to enable it first in order
to find how to enable it :-/ I've just checked the help for CONFIG_NFS_FS,
and it is quite clear about the fact that you need to enable IP autoconfig
to enable NFS ROOT. Maybe it is this section which should be enhanced to
tell where to enable those options ?

Willy

2008-10-26 12:06:23

by Hartmut Niemann

[permalink] [raw]
Subject: Re: nfsroot.txt in 2.4.36.7 and 2.6.27.1, Configure.help in 2.4.36.7: missing precondition CONFIG_IP_PNP

Am Sonntag, 26. Oktober 2008 04:27 schrieb Willy Tarreau:
> > In kernel versions 2.4.36.7 and 2.6.27.1 (I checked only these) the file
> > nfsroot.txt fail to mention, that
> > Kernel level autoconfiguration CONFIG_IP_PNP *must* be selected
> > (in 2.6.27.1 the wording is much better mentioning that nfs may not be
> > compiled as a module than in 2.4.36.7)
> > in order to be able to even *see* the option
> > "Root file system on NFS" (CONFIG_ROOT_NFS)
> > -- except for xconfig in 2.4.36, which allowed me to see that there is
> > this option (greyed), and to see it's help text. (This, by the way,
> > was a big help -- I could see that the option is still present in current
> > kernels)
>
> Kbuild in 2.6 is much more evolved than in 2.4 as it knows about
> dependencies, and tells the user what needs to be enabled for each
> option. It's true that xconfig is sometimes helpful on 2.4 for this
> reason, but I tend to grep for the option rather than starting xconfig.
I grepped in Configure.help too. That was when I noticed that the
CONFIG_ROOT_NFS help text
didn't help. I found the explanation in CONFIG_NFS_FS when I
started to edit Configure.help...

Maybe we should change the CONFIG_ROOT_NFS help section to
"please read the CONFIG_NFS_FS help".

By the way: 2.6 kbuild won't tell you anything about how to activate
CONFIG_ROOT_NFS unless the dependencies are met i.e.
CONFIG_IP_PNP is set, so while it
lists the dependencies, it does that only for those options that it will
allow to be set. Otherwise you won't even see that there is an
option "CONFIG_ROOT_NFS" and won't be able to select it's help text to be
displayed. That makes the dependencies in the helptext less valuable.
I checked that for menuconfig and xconfig.
>
> > I reordered the section 1 of nfsroot.txt (of 2.6.27.1), diff is attached.
> > (And I fixed some chapter numbering in section 3).
> > Is this document otherwise correct for 2.4 and can be updated there too?
> > The version in 2.4.36.7 is
> >
> > The help text of CONFIG_ROOT_NFS in 2.4.36.7 is quite funny:
> > "It is
> > likely that in this case, you also want to say Y to "Kernel level IP
> > autoconfiguration" so that your box can discover its network address
> > at boot time."
> > Does that make clear that you can not even see this option
> > during make *config unless you set "Kernel level IP autoconfiguration"?
> > The help text of CONFIG_NFS_FS does contain the information,
> > but I found it there a little late. The texts in 2.6 are better.
> >
> > A diff for 2.4.36.7 Configure.help is attached as well.
> >
> > Is this correct?
>
> Your explanation seems correct, but it only explains better the option
> which you couldn't find. So you still have to enable it first in order
> to find how to enable it :-/ I've just checked the help for CONFIG_NFS_FS,
> and it is quite clear about the fact that you need to enable IP autoconfig
> to enable NFS ROOT. Maybe it is this section which should be enhanced to
> tell where to enable those options ?

No. Once you find out that the CONFIG_NFS_FS help is all you need, you
succeded.
But if you read nfsroot.txt or anything in the web, it will tell you to enable
CONFIG_ROOT_NFS, not to read CONFIG_NFS_FS help.
(Maybe my posting will help somebody someday only for the reason that
it is indexed, found and displayed by $search_engine :-)

Hartmut

2008-10-26 14:50:19

by Bodo Eggert

[permalink] [raw]
Subject: Re: nfsroot.txt in 2.4.36.7 and 2.6.27.1, Configure.help in 2.4.36.7: missing precondition CONFIG_IP_PNP

Hartmut Niemann <[email protected]> wrote:

> Maybe we should change the CONFIG_ROOT_NFS help section to
> "please read the CONFIG_NFS_FS help".

make config will not allow reading the CONFIG_NFS_FS help while asking for
CONFIG_ROOT_NFS.

2008-10-27 05:24:20

by Simon Horman

[permalink] [raw]
Subject: Re: nfsroot.txt in 2.4.36.7 and 2.6.27.1, Configure.help in 2.4.36.7: missing precondition CONFIG_IP_PNP

On Sat, Oct 25, 2008 at 11:47:01PM +0200, Hartmut Niemann wrote:
> Hello everybody!
>
> In kernel versions 2.4.36.7 and 2.6.27.1 (I checked only these) the file
> nfsroot.txt fail to mention, that
> Kernel level autoconfiguration CONFIG_IP_PNP *must* be selected
> (in 2.6.27.1 the wording is much better mentioning that nfs may not be
> compiled as a module than in 2.4.36.7)
> in order to be able to even *see* the option
> "Root file system on NFS" (CONFIG_ROOT_NFS)
> -- except for xconfig in 2.4.36, which allowed me to see that there is
> this option (greyed), and to see it's help text. (This, by the way,
> was a big help -- I could see that the option is still present in current
> kernels)
>
> I reordered the section 1 of nfsroot.txt (of 2.6.27.1), diff is attached.
> (And I fixed some chapter numbering in section 3).
> Is this document otherwise correct for 2.4 and can be updated there too?
> The version in 2.4.36.7 is
>
> The help text of CONFIG_ROOT_NFS in 2.4.36.7 is quite funny:
> "It is
> likely that in this case, you also want to say Y to "Kernel level IP
> autoconfiguration" so that your box can discover its network address
> at boot time."
> Does that make clear that you can not even see this option
> during make *config unless you set "Kernel level IP autoconfiguration"?
> The help text of CONFIG_NFS_FS does contain the information,
> but I found it there a little late. The texts in 2.6 are better.
>
> A diff for 2.4.36.7 Configure.help is attached as well.
>
> Is this correct?

Hi Hartmut,

I think that your changes to nfsroot.txt are good and should
be considered for inclusion in a future release (probably 2.6.29).

In order to aid this could you please do the following and resend the patch

1) Trim down the description above to only describe the nfsroot.txt
changes.

2) Add a full path to the patch. Basically

--- nfsroot.txt.orig 2008-10-25 23:18:33.000000000 +0200
+++ nfsroot.txt 2008-10-25 23:24:48.000000000 +0200

should be

--- a/Documentation/filesystems/nfsroot.txt 2008-10-25 23:18:33.000000000 +0200
+++ b/Documentation/filesystems/nfsroot.txt 2008-10-25 23:24:48.000000000 +0200

where "a" and "b" can be anything you like, though "a" and "b" are just
fine.

3) sign off the patch, as per Documentation/SubmittingPatches


I'm not so sure of the Configure.help change and I tend to agree with Willy
Tarreau's comments. As you point out this change is for 2.4.36.7 (and not
2.6.29). So if you want to persue this change, lets discuss that separately
to the inclusion of the nfsroot.txt change in 2.6.29.

> --- nfsroot.txt.orig 2008-10-25 23:18:33.000000000 +0200
> +++ nfsroot.txt 2008-10-25 23:24:48.000000000 +0200
> @@ -22,15 +22,13 @@
> 1.) Enabling nfsroot capabilities
> -----------------------------
>
> -In order to use nfsroot, NFS client support needs to be selected as
> -built-in during configuration. Once this has been selected, the nfsroot
> -option will become available, which should also be selected.
> -
> -In the networking options, kernel level autoconfiguration can be selected,
> -along with the types of autoconfiguration to support. Selecting all of
> -DHCP, BOOTP and RARP is safe.
> -
> -
> +In order to use nfsroot, in the networking options, IP kernel level
> +autoconfiguration must be selected, along with the types of autoconfiguration
> +to support. Selecting all of DHCP, BOOTP and RARP is safe.
> +
> +Then NFS client support needs to be selected as built-in during configuration.
> +Once this has been selected, the nfsroot option will become available,
> +which must also be selected.
>
>
> 2.) Kernel command line
> @@ -207,7 +205,7 @@
> For more information on isolinux, including how to create bootdisks
> for prebuilt kernels, see http://syslinux.zytor.com/
>
> -3.2) Using LILO
> +3.3) Using LILO
> When using LILO all the necessary command line parameters may be
> specified using the 'append=' directive in the LILO configuration
> file.
> @@ -219,11 +217,11 @@
>
> For information on configuring LILO, please refer to its documentation.
>
> -3.3) Using GRUB
> +3.4) Using GRUB
> When using GRUB, kernel parameter are simply appended after the kernel
> specification: kernel <kernel> <parameters>
>
> -3.4) Using loadlin
> +3.5) Using loadlin
> loadlin may be used to boot Linux from a DOS command prompt without
> requiring a local hard disk to mount as root. This has not been
> thoroughly tested by the authors of this document, but in general
> @@ -232,7 +230,7 @@
>
> Please refer to the loadlin documentation for further information.
>
> -3.5) Using a boot ROM
> +3.6) Using a boot ROM
> This is probably the most elegant way of booting a diskless client.
> With a boot ROM the kernel is loaded using the TFTP protocol. The
> authors of this document are not aware of any no commercial boot
> @@ -241,7 +239,7 @@
> etherboot, both of which are available on sunsite.unc.edu, and both
> of which contain everything you need to boot a diskless Linux client.
>
> -3.6) Using pxelinux
> +3.7) Using pxelinux
> Pxelinux may be used to boot linux using the PXE boot loader
> which is present on many modern network cards.
>

> --- Configure.help.orig 2008-10-25 23:34:25.000000000 +0200
> +++ Configure.help 2008-10-25 23:43:37.000000000 +0200
> @@ -17262,10 +17262,11 @@
> If you want your Linux box to mount its whole root file system (the
> one containing the directory /) from some other computer over the
> net via NFS (presumably because your box doesn't have a hard disk),
> - say Y. Read <file:Documentation/nfsroot.txt> for details. It is
> - likely that in this case, you also want to say Y to "Kernel level IP
> - autoconfiguration" so that your box can discover its network address
> - at boot time.
> + say Y. Read <file:Documentation/nfsroot.txt> for details.
> + In this case, you also need to say Y to "Kernel level IP
> + autoconfiguration" in the networking options so that your box can
> + discover its network address at boot time, and . Otherwise, you won't be
> + able to say Y here.
>
> Most people say N here.
>


--
Simon Horman
VA Linux Systems Japan K.K., Sydney, Australia Satellite Office
H: http://www.vergenet.net/~horms/ W: http://www.valinux.co.jp/en

2008-10-27 21:41:24

by Hartmut Niemann

[permalink] [raw]
Subject: [PATCH] Documentation/filesystems/nfsroot.txt: CONFIG_IP_PNP must be set

The file nfsroot.txt fails to mention, that Kernel level autoconfiguration
CONFIG_IP_PNP must be selected in order to be able to even see
the option "Root file system on NFS" (CONFIG_ROOT_NFS)

I reordered the section 1 of nfsroot.txt and emphasized the dependency.
(And I fixed some chapter numbering in section 3).

Signed-off-by: Hartmut Niemann <[email protected]>
---
--- linux-2.6.27.1/Documentation/filesystems/nfsroot.txt 2008-10-16
01:02:53.000000000 +0200
+++ linux-2.6.27.1-HN/Documentation/filesystems/nfsroot.txt 2008-10-25
23:24:48.000000000 +0200
@@ -22,15 +22,13 @@
1.) Enabling nfsroot capabilities
-----------------------------

-In order to use nfsroot, NFS client support needs to be selected as
-built-in during configuration. Once this has been selected, the nfsroot
-option will become available, which should also be selected.
-
-In the networking options, kernel level autoconfiguration can be selected,
-along with the types of autoconfiguration to support. Selecting all of
-DHCP, BOOTP and RARP is safe.
-
-
+In order to use nfsroot, in the networking options, IP kernel level
+autoconfiguration must be selected, along with the types of autoconfiguration
+to support. Selecting all of DHCP, BOOTP and RARP is safe.
+
+Then NFS client support needs to be selected as built-in during
+configuration. Once this has been selected, the nfsroot option will become
+available, which must also be selected.


2.) Kernel command line
@@ -207,7 +205,7 @@
For more information on isolinux, including how to create bootdisks
for prebuilt kernels, see http://syslinux.zytor.com/

-3.2) Using LILO
+3.3) Using LILO
When using LILO all the necessary command line parameters may be
specified using the 'append=' directive in the LILO configuration
file.
@@ -219,11 +217,11 @@

For information on configuring LILO, please refer to its
documentation.

-3.3) Using GRUB
+3.4) Using GRUB
When using GRUB, kernel parameter are simply appended after the kernel
specification: kernel <kernel> <parameters>

-3.4) Using loadlin
+3.5) Using loadlin
loadlin may be used to boot Linux from a DOS command prompt without
requiring a local hard disk to mount as root. This has not been
thoroughly tested by the authors of this document, but in general
@@ -232,7 +230,7 @@

Please refer to the loadlin documentation for further information.

-3.5) Using a boot ROM
+3.6) Using a boot ROM
This is probably the most elegant way of booting a diskless client.
With a boot ROM the kernel is loaded using the TFTP protocol. The
authors of this document are not aware of any no commercial boot
@@ -241,7 +239,7 @@
etherboot, both of which are available on sunsite.unc.edu, and both
of which contain everything you need to boot a diskless Linux client.

-3.6) Using pxelinux
+3.7) Using pxelinux
Pxelinux may be used to boot linux using the PXE boot loader
which is present on many modern network cards.

2008-10-27 22:04:44

by Matthias Schniedermeyer

[permalink] [raw]
Subject: Re: [PATCH] Documentation/filesystems/nfsroot.txt: CONFIG_IP_PNP must be set

On 27.10.2008 22:41, Hartmut Niemann wrote:
> The file nfsroot.txt fails to mention, that Kernel level autoconfiguration
> CONFIG_IP_PNP must be selected in order to be able to even see
> the option "Root file system on NFS" (CONFIG_ROOT_NFS)
>
> I reordered the section 1 of nfsroot.txt and emphasized the dependency.
> (And I fixed some chapter numbering in section 3).

Technically you neither need autoconfiguration nor CONFIG_ROOT_NFS.

With an initrd/initramfs you can do the whole procedure from userspace.

And AFAIR a few years back those options where on the brink of beeing
deprecated for just that reason.


Just my 2 cents.




Bis denn

--
Real Programmers consider "what you see is what you get" to be just as
bad a concept in Text Editors as it is in women. No, the Real Programmer
wants a "you asked for it, you got it" text editor -- complicated,
cryptic, powerful, unforgiving, dangerous.