lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 18 Jun 2007 07:25:05 -0400 (EDT)
From:	"Robert P. J. Day" <rpjday@...dspring.com>
To:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: implementation of boot-time kernel parameters


  (i asked about this on the KJ list but didn't get much in the way of
response, so i'll try here.)

  the short form:  as a lead-in to trying to clean up some obsolete
content in Documentation/kernel-parameters.txt (and there appears to
be a lot of it), i can see how boot-time kernel parms are defined
these days -- with "__setup()" or "early_param()".

  i'm also aware of an older and (apparently) LILO-specific way to do
it -- using something like "pas16=" where the appropriate driver code
has to parse the value string (eg., in drivers/scsi/pas16.c):

/*
 * Function : pas16_setup(char *str, int *ints)
 *
 * Purpose : LILO command line initialization of the overrides array,
 *
 * Inputs : str - unused, ints - array of integer parameters with ints[0]
 *      equal to the number of ints.
 *
 */

void __init pas16_setup(char *str, int *ints)
{
    static int commandline_current = 0;
    int i;
    if (ints[0] != 2)
        printk("pas16_setup : usage pas16=io_port,irq\n");
    else
        if (commandline_current < NO_OVERRIDES) {
            overrides[commandline_current].io_port = (unsigned short) ints[1];
            overrides[commandline_current].irq = ints[2];
            for (i = 0; i < NO_BASES; ++i)
                if (bases[i].io_port == (unsigned short) ints[1]) {
                    bases[i].noauto = 1;
                    break;
                }
            ++commandline_current;
        }
}

  now, the pas16 driver also handles setting those values as module
parameters:

#ifdef MODULE
module_param(pas16_addr, ushort, 0);
module_param(pas16_irq, int, 0);
#endif

  but there are definitely drivers that support *only* the LILO form
for boot-time parms, which would seem to suggest that, unless you're
using LILO, you don't get some of those kernel parameters, no?

  in situations like that, is it even accurate to say that those are
supported kernel parameters if they're not supported on non-LILO
systems?  and how should stuff like this be brought up to date, if at
all?

rday

p.s.  note that the comment at the top of the doc file reads:

                          Kernel Parameters
                          ~~~~~~~~~~~~~~~~~

The following is a consolidated list of the kernel parameters as
implemented (mostly) by the __setup() macro ...

  which, as i'm sure you can appreciate, is somewhat misleading since
some of the parms are relevant only for LILO-based systems.  anyway,
is there a standard for all of this?
--
========================================================================
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry
Waterloo, Ontario, CANADA

http://fsdev.net/wiki/index.php?title=Main_Page
========================================================================
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ