* device syntax
@ 2004-10-20 2:14 Hollis Blanchard
2004-10-20 8:58 ` Marco Gerards
0 siblings, 1 reply; 16+ messages in thread
From: Hollis Blanchard @ 2004-10-20 2:14 UTC (permalink / raw)
To: The development of GRUB 2
I was thinking about how GRUB specifies device paths using
"(device,partition)/path" syntax. That's a problem because Open
Firmware device paths can contain commas. The legal character list is
the alphanumerics plus ", . _ + -". My Mac's video card is named
"ATY,Rage128y", and I'm pretty sure I've seen disks with commas in
their names.
I think what we need is architecture-specific functions that can parse
a device path into device, partition, and path parts. That would mean
different syntaxes for the different ports, but I think this is the way
to go. I see there is already a grub_file_get_device_name() function
used in a few places; what about also providing
grub_file_get_partition() and grub_file_get_path() functions?
-Hollis
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 8:58 ` Marco Gerards
@ 2004-10-20 7:33 ` Tomas Ebenlendr
2004-10-20 9:47 ` Marco Gerards
2004-10-20 14:04 ` Hollis Blanchard
1 sibling, 1 reply; 16+ messages in thread
From: Tomas Ebenlendr @ 2004-10-20 7:33 UTC (permalink / raw)
To: The development of GRUB 2
> Hollis Blanchard <hollis@penguinppc.org> writes:
>
> > I was thinking about how GRUB specifies device paths using
> > "(device,partition)/path" syntax. That's a problem because Open
> > Firmware device paths can contain commas. The legal character list is
> > the alphanumerics plus ", . _ + -". My Mac's video card is named
> > "ATY,Rage128y", and I'm pretty sure I've seen disks with commas in
> > their names.
>
> Does this problem occur for disks as well in practice?
>
> --
> Marco
Does any 'device' in any port contain '(' or ')'? If so, I propose
escaping or translating to other characters.
The problem with comma can be solved by escaping also, or by searching
for last comma, followed only by digits (provided that we specify
partitions only by numbers).
--
Tomas 'ebi' Ebenlendr
http://get.to/ebik
PF 2004.80162078147
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 2:14 device syntax Hollis Blanchard
@ 2004-10-20 8:58 ` Marco Gerards
2004-10-20 7:33 ` Tomas Ebenlendr
2004-10-20 14:04 ` Hollis Blanchard
0 siblings, 2 replies; 16+ messages in thread
From: Marco Gerards @ 2004-10-20 8:58 UTC (permalink / raw)
To: The development of GRUB 2
Hollis Blanchard <hollis@penguinppc.org> writes:
> I was thinking about how GRUB specifies device paths using
> "(device,partition)/path" syntax. That's a problem because Open
> Firmware device paths can contain commas. The legal character list is
> the alphanumerics plus ", . _ + -". My Mac's video card is named
> "ATY,Rage128y", and I'm pretty sure I've seen disks with commas in
> their names.
Does this problem occur for disks as well in practice?
--
Marco
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 7:33 ` Tomas Ebenlendr
@ 2004-10-20 9:47 ` Marco Gerards
2004-10-20 10:13 ` Tomas Ebenlendr
0 siblings, 1 reply; 16+ messages in thread
From: Marco Gerards @ 2004-10-20 9:47 UTC (permalink / raw)
To: The development of GRUB 2
Tomas Ebenlendr <ebik@artax.karlin.mff.cuni.cz> writes:
> Does any 'device' in any port contain '(' or ')'? If so, I propose
> escaping or translating to other characters.
On some architecture, who knows?
> The problem with comma can be solved by escaping also, or by searching
> for last comma, followed only by digits (provided that we specify
> partitions only by numbers).
No, we don't. AFAIK for BSD slices the following in possible:
(hd0,4,a)
--
Marco
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 9:47 ` Marco Gerards
@ 2004-10-20 10:13 ` Tomas Ebenlendr
2004-10-20 14:14 ` Hollis Blanchard
0 siblings, 1 reply; 16+ messages in thread
From: Tomas Ebenlendr @ 2004-10-20 10:13 UTC (permalink / raw)
To: The development of GRUB 2
> Tomas Ebenlendr <ebik@artax.karlin.mff.cuni.cz> writes:
>
> > Does any 'device' in any port contain '(' or ')'? If so, I propose
> > escaping or translating to other characters.
>
> On some architecture, who knows?
>
> > The problem with comma can be solved by escaping also, or by searching
> > for last comma, followed only by digits (provided that we specify
> > partitions only by numbers).
>
> No, we don't. AFAIK for BSD slices the following in possible:
> (hd0,4,a)
>
Then I propose escaping. I think that if we pass device name to
firmware/bios and if we get device name from there, we must deal with
chars '(',')' and ','. So I propose to escape these, such that grub may
ignore them in device name. We gain then consistency, instead of
arch-specific syntax.
--
Tomas 'ebi' Ebenlendr
http://get.to/ebik
PF 2004.80193106785
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 8:58 ` Marco Gerards
2004-10-20 7:33 ` Tomas Ebenlendr
@ 2004-10-20 14:04 ` Hollis Blanchard
2004-10-20 14:44 ` M. Gerards
1 sibling, 1 reply; 16+ messages in thread
From: Hollis Blanchard @ 2004-10-20 14:04 UTC (permalink / raw)
To: The development of GRUB 2
On Oct 20, 2004, at 3:58 AM, Marco Gerards wrote:
> Hollis Blanchard <hollis@penguinppc.org> writes:
>
>> I was thinking about how GRUB specifies device paths using
>> "(device,partition)/path" syntax. That's a problem because Open
>> Firmware device paths can contain commas. The legal character list is
>> the alphanumerics plus ", . _ + -". My Mac's video card is named
>> "ATY,Rage128y", and I'm pretty sure I've seen disks with commas in
>> their names.
>
> Does this problem occur for disks as well in practice?
On my briQ, the hda devalias is "/pci@FF500000/isa@6/ide@i1f0/disk@0,0".
-Hollis
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 10:13 ` Tomas Ebenlendr
@ 2004-10-20 14:14 ` Hollis Blanchard
0 siblings, 0 replies; 16+ messages in thread
From: Hollis Blanchard @ 2004-10-20 14:14 UTC (permalink / raw)
To: The development of GRUB 2
On Oct 20, 2004, at 5:13 AM, Tomas Ebenlendr wrote:
>
> Then I propose escaping. I think that if we pass device name to
> firmware/bios and if we get device name from there, we must deal with
> chars '(',')' and ','. So I propose to escape these, such that grub may
> ignore them in device name. We gain then consistency, instead of
> arch-specific syntax.
I'm not sure cross-architectural syntax consistency is an important
goal.
Open Firmware has its own way of specifying device paths, such as
"scsi/sd:5,\path\to\file". Users must already be familiar with this
syntax for other reasons (e.g. to boot GRUB in the first place).
Directly tranferring that knowledge is important: OF paths are
confusing enough without escaping characters. If the OF "boot-device"
variable is "foo", being able to use unmodified "foo" in GRUB is
critical for new users and convenient for experienced users.
I believe GRUB's consistency with the firmware is more important than
GRUB's consistency across architectures.
-Hollis
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 14:04 ` Hollis Blanchard
@ 2004-10-20 14:44 ` M. Gerards
2004-10-20 15:22 ` Hollis Blanchard
0 siblings, 1 reply; 16+ messages in thread
From: M. Gerards @ 2004-10-20 14:44 UTC (permalink / raw)
To: The development of GRUB 2, Hollis Blanchard
Quoting Hollis Blanchard <hollis@penguinppc.org>:
> On Oct 20, 2004, at 3:58 AM, Marco Gerards wrote:
>
> > Hollis Blanchard <hollis@penguinppc.org> writes:
> >
> >> I was thinking about how GRUB specifies device paths using
> >> "(device,partition)/path" syntax. That's a problem because Open
> >> Firmware device paths can contain commas. The legal character list is
> >> the alphanumerics plus ", . _ + -". My Mac's video card is named
> >> "ATY,Rage128y", and I'm pretty sure I've seen disks with commas in
> >> their names.
> >
> > Does this problem occur for disks as well in practice?
>
> On my briQ, the hda devalias is "/pci@FF500000/isa@6/ide@i1f0/disk@0,0".
But in that case you could use (hda,0), right?
--
Marco
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 14:44 ` M. Gerards
@ 2004-10-20 15:22 ` Hollis Blanchard
2004-10-21 10:53 ` Yoshinori K. Okuji
0 siblings, 1 reply; 16+ messages in thread
From: Hollis Blanchard @ 2004-10-20 15:22 UTC (permalink / raw)
To: The development of GRUB 2
On Oct 20, 2004, at 9:44 AM, M. Gerards wrote:
> Quoting Hollis Blanchard <hollis@penguinppc.org>:
>
>> On Oct 20, 2004, at 3:58 AM, Marco Gerards wrote:
>>
>>> Hollis Blanchard <hollis@penguinppc.org> writes:
>>>
>>>> I was thinking about how GRUB specifies device paths using
>>>> "(device,partition)/path" syntax. That's a problem because Open
>>>> Firmware device paths can contain commas. The legal character list
>>>> is
>>>> the alphanumerics plus ", . _ + -". My Mac's video card is named
>>>> "ATY,Rage128y", and I'm pretty sure I've seen disks with commas in
>>>> their names.
>>>
>>> Does this problem occur for disks as well in practice?
>>
>> On my briQ, the hda devalias is
>> "/pci@FF500000/isa@6/ide@i1f0/disk@0,0".
>
> But in that case you could use (hda,0), right?
Yes. But are you suggesting we will never see a comma in a device name
in practice? It should be clear that on systems with more disks, not
all of them will have devaliases.
The unit address of device nodes is represented in a bus-specific
encoding, often including a comma as we have seen. Further, it is
stated convention to encode the name of the device manufacturer into
the node name with a comma. Have a look at IEEE1275's section on path
names: the example they give is
"/sbus@1,f8000000/SUNW,esp@0,800000/sd@1,0".
-Hollis
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-20 15:22 ` Hollis Blanchard
@ 2004-10-21 10:53 ` Yoshinori K. Okuji
2004-10-21 11:26 ` Tomas Ebenlendr
2004-10-21 14:54 ` Hollis Blanchard
0 siblings, 2 replies; 16+ messages in thread
From: Yoshinori K. Okuji @ 2004-10-21 10:53 UTC (permalink / raw)
To: The development of GRUB 2
I prefer consistency among various architectures. Note that PC BIOS does
not offer any name for drives. They are represented by numbers. "hd"
and "fd" are aliases for numbers.
If we assume that the user knows her firmware very well, we don't need
to provide "hd" or "fd", since the user should be able to specify
numbers. Actually, specifying drives by numbers is supported by GRUB
legacy, but nobody uses it, simply because it is not intuitive.
IMO, we should not assume that the user knows technical details. If we
write an installer for Open Firmware-based machines, the user may not
know anything about Open Firmware. The best thing for the user is that
the user does not have to learn many things. If we provide a consistent
interface, the user needs to study the single thing. Nothing else.
I think the important goal for GRUB is to provide an easy way for
ordinary users and a complicated but still useful features for experts.
So I propose always using simple aliases for drives. If you want to use
a device name provided by your firmware explicitly, you could use this
kind of syntax:
devalias foo "/pci@FF500000/isa@6/ide@i1f0/disk@0,0"
multiboot (foo,0)/boot/kernel
EFI uses more horrible device names. This is quoted from EFI How To
Guide:
Acpi(PNP0A03,1)/PCI(0|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig1B16CC00-ABD0-0)
If we use escape chacters, it becomes too unreadable.
Okuji
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-21 10:53 ` Yoshinori K. Okuji
@ 2004-10-21 11:26 ` Tomas Ebenlendr
2004-10-21 11:33 ` Yoshinori K. Okuji
2004-10-28 18:59 ` Marco Gerards
2004-10-21 14:54 ` Hollis Blanchard
1 sibling, 2 replies; 16+ messages in thread
From: Tomas Ebenlendr @ 2004-10-21 11:26 UTC (permalink / raw)
To: The development of GRUB 2
> I prefer consistency among various architectures. Note that PC BIOS does
> not offer any name for drives. They are represented by numbers. "hd"
> and "fd" are aliases for numbers.
>
> If we assume that the user knows her firmware very well, we don't need
> to provide "hd" or "fd", since the user should be able to specify
> numbers. Actually, specifying drives by numbers is supported by GRUB
> legacy, but nobody uses it, simply because it is not intuitive.
>
> IMO, we should not assume that the user knows technical details. If we
> write an installer for Open Firmware-based machines, the user may not
> know anything about Open Firmware. The best thing for the user is that
> the user does not have to learn many things. If we provide a consistent
> interface, the user needs to study the single thing. Nothing else.
>
> I think the important goal for GRUB is to provide an easy way for
> ordinary users and a complicated but still useful features for experts.
> So I propose always using simple aliases for drives. If you want to use
> a device name provided by your firmware explicitly, you could use this
> kind of syntax:
>
> devalias foo "/pci@FF500000/isa@6/ide@i1f0/disk@0,0"
> multiboot (foo,0)/boot/kernel
>
> EFI uses more horrible device names. This is quoted from EFI How To
> Guide:
>
> Acpi(PNP0A03,1)/PCI(0|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig1B16CC00-ABD0-0)
>
> If we use escape chacters, it becomes too unreadable.
>
> Okuji
Hmm, and what if there are quotes, or newlines in name? I think that we
should be able to pass /any/ string to bios/firmware. Question is what
characters we want to escape. If escaped characters will be e.g. quotes,
the need of using this will be very little. If we escape commas, many
names will get horrible. So what about this solution, extended by '\' as
escaping character, using \" for char '"', \\ for '\' and \xxx for
nonprintable or other characters?
--
Tomas 'ebi' Ebenlendr
http://get.to/ebik
PF 2004.80479988869
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-21 11:26 ` Tomas Ebenlendr
@ 2004-10-21 11:33 ` Yoshinori K. Okuji
2004-10-28 18:59 ` Marco Gerards
1 sibling, 0 replies; 16+ messages in thread
From: Yoshinori K. Okuji @ 2004-10-21 11:33 UTC (permalink / raw)
To: The development of GRUB 2
On Thursday 21 October 2004 13:26, Tomas Ebenlendr wrote:
> Hmm, and what if there are quotes, or newlines in name? I think that
> we should be able to pass /any/ string to bios/firmware. Question is
> what characters we want to escape. If escaped characters will be e.g.
> quotes, the need of using this will be very little. If we escape
> commas, many names will get horrible. So what about this solution,
> extended by '\' as escaping character, using \" for char '"', \\ for
> '\' and \xxx for nonprintable or other characters?
That should be supported by the command-line interface, surely.
Okuji
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-21 10:53 ` Yoshinori K. Okuji
2004-10-21 11:26 ` Tomas Ebenlendr
@ 2004-10-21 14:54 ` Hollis Blanchard
2004-10-28 19:02 ` Marco Gerards
1 sibling, 1 reply; 16+ messages in thread
From: Hollis Blanchard @ 2004-10-21 14:54 UTC (permalink / raw)
To: The development of GRUB 2
On Oct 21, 2004, at 5:53 AM, Yoshinori K. Okuji wrote:
>
> IMO, we should not assume that the user knows technical details. If we
> write an installer for Open Firmware-based machines, the user may not
> know anything about Open Firmware.
Fair point.
> I think the important goal for GRUB is to provide an easy way for
> ordinary users and a complicated but still useful features for experts.
> So I propose always using simple aliases for drives. If you want to use
> a device name provided by your firmware explicitly, you could use this
> kind of syntax:
>
> devalias foo "/pci@FF500000/isa@6/ide@i1f0/disk@0,0"
> multiboot (foo,0)/boot/kernel
I suspect it will be a point of confusion that a user can directly use
"hda" (a real/OF devalias) for their first disk, but if they want to
use their second disk they must add a devalias command to their
menu.lst file (or in OF itself).
Also, when booting without a menu.lst, now we need to enter two
commands. Not difficult, just a little more awkward than it could be.
But on the whole this solution sounds pretty reasonable to me.
-Hollis
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-21 11:26 ` Tomas Ebenlendr
2004-10-21 11:33 ` Yoshinori K. Okuji
@ 2004-10-28 18:59 ` Marco Gerards
1 sibling, 0 replies; 16+ messages in thread
From: Marco Gerards @ 2004-10-28 18:59 UTC (permalink / raw)
To: The development of GRUB 2
Tomas Ebenlendr <ebik@artax.karlin.mff.cuni.cz> writes:
> Hmm, and what if there are quotes, or newlines in name? I think that we
> should be able to pass /any/ string to bios/firmware. Question is what
> characters we want to escape. If escaped characters will be e.g. quotes,
> the need of using this will be very little. If we escape commas, many
> names will get horrible. So what about this solution, extended by '\' as
> escaping character, using \" for char '"', \\ for '\' and \xxx for
> nonprintable or other characters?
Escaping is used to remove the meaning of commandline stuff so you can
pass it to commands. And the command line parser does this already.
I think we should not use escaping *ever* for other reasons.
--
Marco
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-21 14:54 ` Hollis Blanchard
@ 2004-10-28 19:02 ` Marco Gerards
2004-10-29 1:40 ` Hollis Blanchard
0 siblings, 1 reply; 16+ messages in thread
From: Marco Gerards @ 2004-10-28 19:02 UTC (permalink / raw)
To: The development of GRUB 2
Hollis Blanchard <hollis@penguinppc.org> writes:
>> devalias foo "/pci@FF500000/isa@6/ide@i1f0/disk@0,0"
>> multiboot (foo,0)/boot/kernel
>
> I suspect it will be a point of confusion that a user can directly use
> "hda" (a real/OF devalias) for their first disk, but if they want to
> use their second disk they must add a devalias command to their
> menu.lst file (or in OF itself).
Why do they have to add it to the menu.lst? You can add additional OF
devaliases using the OF command line interface. But there is no
problem to make a temporary one either.
What Okuji described is exactly what I had in mind when I initially
started working on the PPC port. You can use devaliases in any case,
although it would be nice if it is possible to use a full path, which
is what your patch made possible. But if the full path conflicts with
the GRUB syntax, it just shouldn't be used...
--
Marco
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: device syntax
2004-10-28 19:02 ` Marco Gerards
@ 2004-10-29 1:40 ` Hollis Blanchard
0 siblings, 0 replies; 16+ messages in thread
From: Hollis Blanchard @ 2004-10-29 1:40 UTC (permalink / raw)
To: The development of GRUB 2
On Oct 28, 2004, at 2:02 PM, Marco Gerards wrote:
> Hollis Blanchard <hollis@penguinppc.org> writes:
>
>>> devalias foo "/pci@FF500000/isa@6/ide@i1f0/disk@0,0"
>>> multiboot (foo,0)/boot/kernel
>>
>> I suspect it will be a point of confusion that a user can directly use
>> "hda" (a real/OF devalias) for their first disk, but if they want to
>> use their second disk they must add a devalias command to their
>> menu.lst file (or in OF itself).
>
> Why do they have to add it to the menu.lst? You can add additional OF
> devaliases using the OF command line interface. But there is no
> problem to make a temporary one either.
There should be no need.
> What Okuji described is exactly what I had in mind when I initially
> started working on the PPC port. You can use devaliases in any case,
> although it would be nice if it is possible to use a full path, which
> is what your patch made possible. But if the full path conflicts with
> the GRUB syntax, it just shouldn't be used...
I'm afraid I don't agree. GRUB should not be limited to the least
common denominator of all the architectures it may be ported to. The
GRUB device syntax was written solely with x86 PCs in mind; surely we
can agree that all similar limitations have already been outgrown even
on PCs themselves?
In fact, to extend the original PC BIOS -> "hd0" numbering scheme, we
*could* enumerate every block device found in the Open Firmware device
tree, and name them all "hd0" through "hd47". The user confusion that
already exists on PCs would be multiplied greatly. That is not a good
idea.
devaliases are fine and are convenient, but full device paths are
important and should be equally usable (and not by going through extra
steps to pretend that "/pci@FF500000/isa@6/ide@i1f0/disk@0,0" is really
"hd0" just because there's a comma in there).
People who focus on PCs and Macintosh understandably might not consider
this important, but on servers this is a very real issue.
-Hollis
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2004-10-29 1:48 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-20 2:14 device syntax Hollis Blanchard
2004-10-20 8:58 ` Marco Gerards
2004-10-20 7:33 ` Tomas Ebenlendr
2004-10-20 9:47 ` Marco Gerards
2004-10-20 10:13 ` Tomas Ebenlendr
2004-10-20 14:14 ` Hollis Blanchard
2004-10-20 14:04 ` Hollis Blanchard
2004-10-20 14:44 ` M. Gerards
2004-10-20 15:22 ` Hollis Blanchard
2004-10-21 10:53 ` Yoshinori K. Okuji
2004-10-21 11:26 ` Tomas Ebenlendr
2004-10-21 11:33 ` Yoshinori K. Okuji
2004-10-28 18:59 ` Marco Gerards
2004-10-21 14:54 ` Hollis Blanchard
2004-10-28 19:02 ` Marco Gerards
2004-10-29 1:40 ` Hollis Blanchard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.