Subject: [bug #13606] GRUB should allow Linux command-line>256 bytes with boot protocol>2.02 - msg#00009
List: boot-loaders.grub.bugs
Follow-up Comment #2, bug #13606 (project grub):
I don't think this is a bug. From THE LINUX/I386 BOOT PROTOCOL:
**** THE KERNEL COMMAND LINE
The kernel command line has become an important way for the boot
loader to communicate with the kernel. Some of its options are also
relevant to the boot loader itself, see "special command line options"
below.
The kernel command line is a null-terminated string up to 255
characters long, plus the final null.
If the boot protocol version is 2.02 or later, the address of the
kernel command line is given by the header field cmd_line_ptr (see
above.)
If the protocol version is *not* 2.02 or higher, the kernel
command line is entered using the following protocol:
At offset 0x0020 (word), "cmd_line_magic", enter the magic
number 0xA33F.
At offset 0x0022 (word), "cmd_line_offset", enter the offset
of the kernel command line (relative to the start of the
real-mode kernel).
The kernel command line *must* be within the memory region
covered by setup_move_size, so you may need to adjust this
field.
This description sounds like the kernel still has the limitation of 255
bytes.
_______________________________________________________
Reply to this item at:
<
http://savannah.gnu.org/bugs/?func=detailitem&item_id=13606>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
Was this page helpful?
Thread at a glance:
Previous Message by Date:
click to view message preview
GRUB 1.90 is released
I'm happy to announce the release of GRUB 1.90. This is the first of
our prereleases leading up to GRUB 2.0. We encourage you to try it, as
we have done a significant amount of work towards GRUB 2. Note that this
release is mainly for developers who are willing to contribute to our
project. If you need a working solution immediately, you'd better to stick to
GRUB Legacy at the moment.
The source distribution is available from <ftp://alpha.gnu.org/gnu/grub/>.
Send any questions, ideas, bug reports to <grub-devel@xxxxxxx>.
Here is the relevant NEWS:
New in 1.90:
* Rename the project name PUPA to GRUB. Now this version is the
developmental version of GRUB officially.
* The GRUB emulator ``grub-emu'' is added.
* Add support for newworld Mac. This should work with other
PowerPC-based machines as well, if they use IEEE 1275
(Open Firmware).
* Too many changes to describe. Look at ChangeLog for more details.
Thanks,
Okuji
Next Message by Date:
click to view message preview
Re: UFS fixes
On Friday 05 August 2005 22:30, Rink Springer wrote:
> Would you please consider to merge this back into grub? The code is
> BSD-licensed, which is identical to the FFS include files at least.
> Cromwell would prefer to remain as close to grub as possible, and I
> believe other people could benefit from these patches as well.
Can you send your patch for GRUB?
Thanks,
Okuji
Previous Message by Thread:
click to view message preview
[bug #13606] GRUB should allow Linux command-line>256 bytes with boot protocol>2.02
Follow-up Comment #1, bug #13606 (project grub):
Hello,
Can anybody confirm this is a bug?
This behavior is the same in GRUB 2... So I think it is a good time to fix
it...
Thanks!
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?func=detailitem&item_id=13606>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
Next Message by Thread:
click to view message preview
[bug #13606] GRUB should allow Linux command-line>256 bytes with boot protocol>2.02
Follow-up Comment #3, bug #13606 (project grub):
Thank you Yoshinori for your response!!!
I've entered this issue since once I had a need for >256 command line
length... And started investigate why it cannot be done.
I've read the boot protocol, and it seems the old boot protocol had a
limitation of one disk sector, so it had a size limit.
The new boot protocol added a new pointer which has no size limit...
So I've found the constants that specifies the limit, it located at
include/asm-%ARCH%/setup.h and/or at include/asm-%ARCH%/param.h, variable name
is COMMAND_LINE_SIZE.
There is a difference between several architecture... Most have limit of 512
bytes.
Why I telling this story? Since after I've prepared a kernel that can receive
up to 1024 bytes of command line, I found out that although GRUB prints the
long command line arguments, it truncates it before it passes the command line
to the kernel.
So I've failed to setup an environment that can receive long kernel command
line...
I think GRUB should not truncate the command line before it passes it to
kernel in the new protocol (lh->cmd_line_ptr), so that people can configure
their kernel to handle it. The old protocol handling should stay as is,
truncate the command line and move it to the boot header.
This should be very simple since you already have it as a null terminated, all
you need to do is to relocated the complete buffer into static memory place
and set its reference in the boot header.
I will be glad to read your point of view.
Later on, I will try to add a configuration option that specify the command
line size (I've already done it... But I am waiting for boot loader to support
it, before I am opening a request for this in kernel)
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?func=detailitem&item_id=13606>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/