Lennart, try giving this patch a whirl. In the case after we scan the
aliases list and we haven't found any block devices it will now try to
scan the entire tree. It kinda worked under OpenBios although I ran into
another bug where it can't open a device path that it gave me for the
pci ide controller. It found the other 2 drives fine.
I think this maintains the correct balance of using short pretty names
if available but working if they are not available.
There is a case where it will mess up however. If you only specify an
alias for one device but need another device to build a raid or lvm it
will fail. Although, thinking about it, this already would happen.
As always, you can specify the either path manually.
Doug
=== modified file 'disk/ieee1275/ofdisk.c'
--- disk/ieee1275/ofdisk.c 2010-07-29 03:58:16 +0000
+++ disk/ieee1275/ofdisk.c 2010-07-29 06:02:06 +0000
@@ -76,6 +76,9 @@
grub_ofdisk_iterate (int (*hook) (const char *name))
{
auto int dev_iterate (struct grub_ieee1275_devalias *alias);
+ int disks_found = 0;
+ int use_path = 0;
+ int result;
int dev_iterate (struct grub_ieee1275_devalias *alias)
{
@@ -110,11 +113,20 @@
if (! grub_strcmp (alias->type, "block") &&
grub_strncmp (alias->name, "cdrom", 5))
- ret = hook (alias->name);
+ {
+ disks_found++;
+ ret = hook (use_path ? alias->path : alias->name);
+ }
return ret;
}
- return grub_devalias_iterate (dev_iterate);
+ result = grub_devalias_iterate (dev_iterate);
+ if (!disks_found)
+ {
+ use_path = 1;
+ result = grub_ieee1275_devices_iterate (dev_iterate);
+ }
+ return result;
}
static char *
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel