Re: debian-installer: please default to grub-ieee1275 on powerpc instead of yaboot

2017-09-21 Thread Daniel Kahn Gillmor
On Thu 2017-09-21 10:26:08 -0400, Daniel Kahn Gillmor wrote:
> I like this idea but i don't have a lot of spare machines handy to try
> d-i on these days.  I can try to dig up a power supply for an idle older
> ppc laptop i've got floating around, but i don't know whether i'll be
> able to find it.

I should mention: i currently run (and have run in the past) many
powerpc systems (old Mac hardware, mainly, running an OpenFirmware forth
shell from the mainboard), all of which i either directly installed with
grub (via debootstrap from debirf) or converted from yaboot to grub.
I've yet to find one (even a really old blue clamshell iBook with 64MiB
of RAM) that grub didn't work for me on in the end.  So for the machines
i've dealt with, the question is more about d-i integration than about
whether grub will work or not.

I do note that there have been some interesting endianness issues
(e.g. channel-swap, or palette inversion) with the colorspace when
trying to use grub's graphical mode (but i've seen similar issues with
non-grub stuff as well).  I don't know how much we care in this
discussion about grub's graphical capabilities, as compared to its
booting capabilities.

yaboot had no graphical capabilities at all, iirc.

  --dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: debian-installer: please default to grub-ieee1275 on powerpc instead of yaboot

2017-09-21 Thread Daniel Kahn Gillmor
On Thu 2017-09-21 14:21:52 +0200, John Paul Adrian Glaubitz wrote:

> I would help with this transition to use GRUB on powerpc as well
> as on ppc64 which we are now providing unofficial installation
> for in Debian Ports [1].
>
> I do have commit access to debian-installer and its components
> as well as access to an IBM POWER7 instance which can be used
> to test both powerpc as well as ppc64 installation images.
>
> I would like to get rid of yaboot because it is no longer maintained
> upstream and switching to GRUB also helps reduce the maintenance
> burden in debian-installer.
>
> What we need are people who are willing to extensively test d-i
> images with GRUB on powerpc and ppc64 and report back. Also, I'm
> not yet sure whether I have understood how exactly GRUB is properly
> configured and used on powerpc and ppc64.

I like this idea but i don't have a lot of spare machines handy to try
d-i on these days.  I can try to dig up a power supply for an idle older
ppc laptop i've got floating around, but i don't know whether i'll be
able to find it.

sorry to not be more help.  it'd be great to be able to drop yaboot.

 --dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


[PATCH v2] Clarify documentation for special environment variable "default"

2017-02-02 Thread Daniel Kahn Gillmor
The current documentation for the special environment variable
"default" is confusing and unclear.  This patch attempts to clean it
up.

In particular, the current documentation refers to the "number or
title", but then in the example it gives, the menu entries and
submenus all have numbers *in* their title; furthermore, there is no
example given about how to choose the number, or any indication about
whether counting is zero-indexed or 1-indexed.

Having a cleaner example and presenting all variants (numeric, title,
and id) should make it clearer to the user.

Signed-off-by: Daniel Kahn Gillmor <d...@fifthhorseman.net>
---
 docs/grub.texi | 37 -
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/docs/grub.texi b/docs/grub.texi
index b9ddb9b8a..e935af33e 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -3218,9 +3218,10 @@ source for more details.
 @node default
 @subsection default
 
-If this variable is set, it identifies a menu entry that should be selected
-by default, possibly after a timeout (@pxref{timeout}).  The entry may be
-identified by number or by id.
+If this variable is set, it identifies a menu entry that should be
+selected by default, possibly after a timeout (@pxref{timeout}).  The
+entry may be identified by number (starting from 0 at each level of
+the hierarchy), by title, or by id.
 
 For example, if you have:
 
@@ -3236,24 +3237,26 @@ then you can make this the default using:
 default=example-gnu-linux
 @end example
 
-If the entry is in a submenu, then it must be identified using the titles of
-each of the submenus starting from the top level followed by the number or
-title of the menu entry itself, separated by @samp{>}.  For example, take
-the following menu structure:
+If the entry is in a submenu, then it must be identified using the
+number, title, or id of each of the submenus starting from the top
+level, followed by the number, title, or id of the menu entry itself,
+with each element separated by @samp{>}.  For example, take the
+following menu structure:
 
 @example
-Submenu 1
-  Menu Entry 1
-  Menu Entry 2
-Submenu 2
-  Submenu 3
-Menu Entry 3
-Menu Entry 4
-  Menu Entry 5
+GNU/Hurd --id gnu-hurd
+  Standard Boot --id=gnu-hurd-std
+  Rescue shell --id=gnu-hurd-rescue
+Other platforms --id=other
+  Minix --id=minix
+Version 3.4.0 --id=minix-3.4.0
+Version 3.3.0 --id=minix-3.3.0
+  GRUB Invaders --id=grub-invaders
 @end example
 
-``Menu Entry 3'' would then be identified as
-@samp{Submenu 2>Submenu 3>Menu Entry 3}.
+The more recent release of Minix would then be identified as
+@samp{Other platforms>Minix>Version 3.4.0}, or as @samp{1>0>0}, or as
+@samp{other>minix>minix-3.4.0}.
 
 This variable is often set by @samp{GRUB_DEFAULT} (@pxref{Simple
 configuration}), @command{grub-set-default}, or @command{grub-reboot}.
-- 
2.11.0


___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


[PATCH] Clarify documentation for special environment variable "default"

2017-02-02 Thread Daniel Kahn Gillmor
The current documentation for the special environment variable
"default" is confusing and unclear.  This patch attempts to clean it
up.

In particular, the current documentation refers to the "number or
title", but then in the example it gives, the menu entries and
submenus all have numbers *in* their title; furthermore, there is no
example given about how to choose the number (e.g. does it start at 1
or at 0?).

Having a cleaner example and presenting both the numeric version and
the title version will make it clearer.

In my patch here i've tried to make it clear and understandable.  I've
also assumed that the number counting starts at 1, but haven't
verified that.  If that's wrong, please commit the corrected version
:)

Signed-off-by: Daniel Kahn Gillmor <d...@fifthhorseman.net>
---
 docs/grub.texi | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/docs/grub.texi b/docs/grub.texi
index b9ddb9b8a..e868f045d 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -3242,18 +3242,18 @@ title of the menu entry itself, separated by @samp{>}.  
For example, take
 the following menu structure:
 
 @example
-Submenu 1
-  Menu Entry 1
-  Menu Entry 2
-Submenu 2
-  Submenu 3
-Menu Entry 3
-Menu Entry 4
-  Menu Entry 5
+GNU/Hurd
+  Standard Boot
+  Rescue shell
+Other platforms
+  Minix
+Version 3.4.0
+Version 3.3.0
+  GRUB Invaders
 @end example
 
-``Menu Entry 3'' would then be identified as
-@samp{Submenu 2>Submenu 3>Menu Entry 3}.
+The more recent release of Minix would then be identified as
+@samp{Other platforms>Minix>Version 3.4.0}, or as @samp{2>1>1}.
 
 This variable is often set by @samp{GRUB_DEFAULT} (@pxref{Simple
 configuration}), @command{grub-set-default}, or @command{grub-reboot}.
-- 
2.11.0


___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


[PATCH] Clarify documentation for special environment variable "default"

2017-02-02 Thread Daniel Kahn Gillmor
The current documentation for the special environment variable
"default" is confusing and unclear.  This patch attempts to clean it
up.

In particular, the current documentation refers to the "number or
title", but then in the example it gives, the menu entries and
submenus all have numbers *in* their title; furthermore, there is no
example given about how to choose the number (e.g. does it start at 1
or at 0?).

Having a cleaner example and presenting both the numeric version and
the title version will make it clearer.

In my patch here i've tried to make it clear and understandable.  I've
also assumed that the number counting starts at 1, but haven't
verified that.  If that's wrong, please commit the corrected version
:)

Signed-off-by: Daniel Kahn Gillmor <d...@fifthhorseman.net>
---
 docs/grub.texi | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/docs/grub.texi b/docs/grub.texi
index b9ddb9b8a..e868f045d 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -3242,18 +3242,18 @@ title of the menu entry itself, separated by @samp{>}.  
For example, take
 the following menu structure:
 
 @example
-Submenu 1
-  Menu Entry 1
-  Menu Entry 2
-Submenu 2
-  Submenu 3
-Menu Entry 3
-Menu Entry 4
-  Menu Entry 5
+GNU/Hurd
+  Standard Boot
+  Rescue shell
+Other platforms
+  Minix
+Version 3.4.0
+Version 3.3.0
+  GRUB Invaders
 @end example
 
-``Menu Entry 3'' would then be identified as
-@samp{Submenu 2>Submenu 3>Menu Entry 3}.
+The more recent release of Minix would then be identified as
+@samp{Other platforms>Minix>Version 3.4.0}, or as @samp{2>1>1}.
 
 This variable is often set by @samp{GRUB_DEFAULT} (@pxref{Simple
 configuration}), @command{grub-set-default}, or @command{grub-reboot}.
-- 
2.11.0


___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


reporting amount of available memory (and acting on it) from grub?

2016-01-06 Thread Daniel Kahn Gillmor
Hi grub folks--

Is there a way that a grub script (or the grub commandline) can report
the amount of available memory?

It seems like it would be useful in situations like a liveCD or bootable
image that might want to warn the user up front if the available RAM is
smaller than the advertised minimum.  (e.g. Tails or debirf)

Currently, when systems boot with less memory than their minimums, they
often end up with a kernel dump or something similarly unintelligible to
most users.  A well-crafted grub configfile for such an image could
provide the user with something more understandable, or at least warn
the user before continuing that the available memory is believed to be
inadequate.

I could also imagine a use case like an automated boot process that
selects some x86_64 kernel or boot options on machines with > 4GiB of
RAM and plain x86 for machines with less.

any pointers to how to do this?

--dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: Plain dm-crypt

2015-10-30 Thread Daniel Kahn Gillmor
On Thu 2015-10-29 13:46:42 -0400, christopher.to...@riseup.net wrote:
> No, since I type the line in manually every time, it is not located 
> anywhere for it to be discovered and need denying. I know my system very 
> well. I know if I put one USB drive into a slot, it will be named 
> (USB0). If I plug more than one USB drive into the system, I know what 
> they will be named based on their physical locations.

"Deniable" crypto seems like it would have very limited utility [0], but
there could still be some marginal use cases for it (for people who
aren't Christopher Toews, anyway: Chris has already admitted publicly on
this list to using encryption on his high-entropy devices, so he can't
deny it any longer).

If the patchset is small/simple (i haven't seen a pointer to the patches
-- can someone supply a link?), and it doesn't introduce any troubling
UI/UX issues, providing the feature in grub doesn't seem like a terrible
idea.

The other use case that Chris hasn't mentioned is that there may be
people who don't trust LUKS to adequately protect the master dm-crypt
key for their volume.  I'm unaware of any legitimate reason to distrust
the cryptography in the LUKS header itself, but i also haven't thought
deeply about attacking it either.

> Look, you can't presume to know my setup better than I do and then try 
> to convince me that I don't require this feature. I understand if it 
> won't be included, but don't hold it out because you think people are 
> too stupid to know how to use it, or worse, because you think people are 
> too stupid to know that they don't need it. There are people who want 
> this feature for good reasons and have the know-how to be able to 
> utilize it. Why can't you just accept that?

I suspect that Vladimir isn't resistant because he thinks people are
stupid.  he's probably resistant like any other responsible long-term
developer/maintainer of crucial infrastructure.  more features == more
support == more bugs, so conservatism on adding features is healthy, and
it's not surprising that he is looking for a more concrete example of
how it might get used.

That said, it's tough to to provide a more concrete use case than the
one descirbed by Chris here.  In particular, this is a feature whose
users will generally not admit to being users (since admitting to being
a user is to lose its benefit).  So i appreciate Chris being willing to
out himself here in service of others who might like to have something
that looks deniable.

(fwiw, i'd really like it if all hard drives shipped from the
manufacturer full of high-entropy noise by default.  That would provide
people like the users Chris is advocating for with much more convincing
cover)

  --dkg

[0] https://www.debian-administration.org/users/dkg/weblog/104 discusses
deniability for chat, but similar analysis probably applies to
encrypted volumes.

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: [PATCH] use stock embedded timestamp 2015-01-01T0000+0000

2015-03-28 Thread Daniel Kahn Gillmor
On Fri 2015-03-27 08:27:42 -0400, Vladimir 'φ-coder/phcoder' Serbinenko wrote:
 @@ -1856,7 +1859,7 @@ grub_install_generate_image (const char *dir, const 
 char *prefix,
  head-magic = image_target-bigendian ? grub_host_to_target16 (0x160)
: grub_host_to_target16 (0x166);
  head-nsec = grub_host_to_target16 (1);
 -head-time = grub_host_to_target32 (0);
 +head-time = grub_host_to_target32 (STABLE_EMBEDDING_TIMESTAMP);
 I dropped this hunk as it's just changing one const to another.
  head-opt = grub_host_to_target16 (0x38);
  head-flags = image_target-bigendian
? grub_host_to_target16 (0x207)

Sure, that's fine with me.  I supplied it there so that we could say
any grub image on any platform with an embedded timestamp will use the
same timestamp, but if you don't think that's a necessary or useful
statement to make, i have no interest in pushing it separately.

My main goal is image reproducibility, and the MIPS_ARC builds were
already reproducible.  Thanks for adopting the fixed timestamp for the
other two platforms!

  --dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


[PATCH] use stock embedded timestamp 2015-01-01T0000+0000

2015-03-22 Thread Daniel Kahn Gillmor
Variant timestamps make some grub platforms produce non-deterministic
core images.  This makes it difficult to use simple tools to audit the
stability of a system with grub installed.

This patch selects a single timestamp to use for these embedded
timestamps so that the core images will be replicable.
---
 util/mkimage.c | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/util/mkimage.c b/util/mkimage.c
index 7821dc5..adc1706 100644
--- a/util/mkimage.c
+++ b/util/mkimage.c
@@ -55,6 +55,9 @@
 
 #define TARGET_NO_FIELD 0x
 
+/* use 2015-01-01T00:00:00+ as a stock timestamp */
+#define STABLE_EMBEDDING_TIMESTAMP 1420070400
+
 struct grub_install_image_target_desc
 {
   const char *dirname;
@@ -1439,7 +1442,7 @@ grub_install_generate_image (const char *dir, const char 
*prefix,
c-machine = grub_host_to_target16 (image_target-pe_target);
 
c-num_sections = grub_host_to_target16 (4);
-   c-time = grub_host_to_target32 (time (0));
+   c-time = grub_host_to_target32 (STABLE_EMBEDDING_TIMESTAMP);
c-characteristics = grub_host_to_target16 (GRUB_PE32_EXECUTABLE_IMAGE
| 
GRUB_PE32_LINE_NUMS_STRIPPED
| 
((image_target-voidp_sizeof == 4)
@@ -1782,7 +1785,7 @@ grub_install_generate_image (const char *dir, const char 
*prefix,
 
   memset (hdr, 0, sizeof (*hdr));
   hdr-ih_magic = grub_cpu_to_be32_compile_time (GRUB_UBOOT_IH_MAGIC);
-  hdr-ih_time = grub_cpu_to_be32 (time (0));
+  hdr-ih_time = grub_cpu_to_be32 (STABLE_EMBEDDING_TIMESTAMP);
   hdr-ih_size = grub_cpu_to_be32 (core_size);
   hdr-ih_load = grub_cpu_to_be32 (image_target-link_addr);
   hdr-ih_ep = grub_cpu_to_be32 (image_target-link_addr);
@@ -1856,7 +1859,7 @@ grub_install_generate_image (const char *dir, const char 
*prefix,
head-magic = image_target-bigendian ? grub_host_to_target16 (0x160)
  : grub_host_to_target16 (0x166);
head-nsec = grub_host_to_target16 (1);
-   head-time = grub_host_to_target32 (0);
+   head-time = grub_host_to_target32 (STABLE_EMBEDDING_TIMESTAMP);
head-opt = grub_host_to_target16 (0x38);
head-flags = image_target-bigendian
  ? grub_host_to_target16 (0x207)
-- 
2.1.4


___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


[PATCH] make grub-install on efi idempotent by omitting PE timestamp

2015-03-20 Thread Daniel Kahn Gillmor
I'm using grub-efi on a debian amd64 system, with the ESP mounted at
/boot/efi.

when i run:

  grub-install

the digest of /boot/efi/EFI/debian/grubx64.efi changes:

root@pops:~# sha1sum /boot/efi/EFI/debian/grubx64.efi 
eafbe63218ecb7f7e69522e55ff7bc9551002c08  /boot/efi/EFI/debian/grubx64.efi
root@pops:~# grub-install
Installing for x86_64-efi platform.
Installation finished. No error reported.
root@pops:~# sha1sum /boot/efi/EFI/debian/grubx64.efi 
b3ec06be87d356479e652e6515814ed4fd8f35cc  /boot/efi/EFI/debian/grubx64.efi
root@pops:~#

I compared the two versions, and it looks like they only differ in the
PE timestamp:

root@pops:~# cp /boot/efi/EFI/debian/grubx64.efi{,.bak}
root@pops:~# grub-install
Installing for x86_64-efi platform.
Installation finished. No error reported.
root@pops:~# sha1sum /boot/efi/EFI/debian/grubx64.efi{,.bak}
a2fe7412a8fff69b033c5b11eb3a78927ea084e1  /boot/efi/EFI/debian/grubx64.efi
b3ec06be87d356479e652e6515814ed4fd8f35cc  /boot/efi/EFI/debian/grubx64.efi.bak
root@pops:~# diff -u (hd  /boot/efi/EFI/debian/grubx64.efi.bak ) (hd  
/boot/efi/EFI/debian/grubx64.efi )
--- /dev/fd/63  2015-03-20 09:32:36.784878070 -0400
+++ /dev/fd/62  2015-03-20 09:32:36.784878070 -0400
@@ -6,7 +6,7 @@
 0050  69 73 20 70 72 6f 67 72  61 6d 20 63 61 6e 6e 6f  |is program canno|
 0060  74 20 62 65 20 72 75 6e  20 69 6e 20 44 4f 53 20  |t be run in DOS |
 0070  6d 6f 64 65 2e 0d 0d 0a  24 00 00 00 00 00 00 00  |mode$...|
-0080  50 45 00 00 64 86 04 00  30 21 0c 55 00 00 00 00  |PE..d...0!.U|
+0080  50 45 00 00 64 86 04 00  42 21 0c 55 00 00 00 00  |PE..d...B!.U|
 0090  00 00 00 00 f0 00 0e 02  0b 02 00 00 00 96 00 00  ||
 00a0  00 2c 01 00 00 00 00 00  00 04 00 00 00 04 00 00  |.,..|
 00b0  00 00 00 00 00 00 00 00  00 02 00 00 00 02 00 00  ||
root@pops:~#

These are definitely timestamps, as the two files were generated about
20 seconds apart, and 0x42 - 0x30 = 0x12 = 18.  Here's the
timestamp-to-date conversion:

$ date -d \@$(printf '%d' 0x550c2130)
Fri Mar 20 09:31:28 EDT 2015
$

This seems like a spurious change to me, and one that makes it harder to
do things like compare checksums to make sure no one has tampered with
the bootloader, or keeping a signature valid for the bootloader as blob.

Is there a reason to embed the timestamps here?  in practice, PE
executables seem to be able to work with an all-zero timestamp
(e.g. see ld's --no-insert-timestamp option).

It looks like we're also embedding the timestamp for UBOOT images.

This should be fixable with the following change, which covers both efi
(first hunk) and uboot (second hunk):

--
diff --git a/util/mkimage.c b/util/mkimage.c
index 7821dc5..4b0f4de 100644
--- a/util/mkimage.c
+++ b/util/mkimage.c
@@ -1439,7 +1439,7 @@ grub_install_generate_image (const char *dir, const char 
*prefix,
c-machine = grub_host_to_target16 (image_target-pe_target);
 
c-num_sections = grub_host_to_target16 (4);
-   c-time = grub_host_to_target32 (time (0));
+   c-time = grub_host_to_target32 (0);
c-characteristics = grub_host_to_target16 (GRUB_PE32_EXECUTABLE_IMAGE
| 
GRUB_PE32_LINE_NUMS_STRIPPED
| 
((image_target-voidp_sizeof == 4)
@@ -1782,7 +1782,7 @@ grub_install_generate_image (const char *dir, const char 
*prefix,
 
   memset (hdr, 0, sizeof (*hdr));
   hdr-ih_magic = grub_cpu_to_be32_compile_time (GRUB_UBOOT_IH_MAGIC);
-  hdr-ih_time = grub_cpu_to_be32 (time (0));
+  hdr-ih_time = grub_cpu_to_be32 (0);
   hdr-ih_size = grub_cpu_to_be32 (core_size);
   hdr-ih_load = grub_cpu_to_be32 (image_target-link_addr);
   hdr-ih_ep = grub_cpu_to_be32 (image_target-link_addr);
--

I notice that we're already embedding 0 for the timestamp for MIPS_ARC
on util/mkimage:1859, so this isn't without precedent.

If we want to get fancier, we could make an --embed-timestamp=SECONDS
option to grub-install, which would allow the user to explicitly set the
timestamp to a known value, or an --embed-current-timestamp option to
actually use the output of time(0), but i wouldn't get that fancy
without first hearing a strong argument for why we need an embedded
timestamp in the first place.

what do you think?

 --dkg


signature.asc
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: [PATCH] make grub-install on efi idempotent by omitting PE timestamp

2015-03-20 Thread Daniel Kahn Gillmor
On Fri 2015-03-20 11:25:25 -0400, Vladimir 'φ-coder/phcoder' Serbinenko wrote:
 I've already detailed in another post in another post why embedding 0 is 
 probably bad and that it's better to embed either 2015-01-01 00:00:00 or 
 the date of last commit which can be put into modinfo.sh during compile 
 time.

whoops, sorry!  I missed that the first time through.

I just followed up on that thread with a patch using 2015-01-01
00:00:00.

I can work up another patch with modinfo.sh approach if you like, but i
think a stable/permanent timestamp is better.  If i recompile grub with
a patch affecting some other piece of code (code that doesn't affect the
core image), and then i use the new grub to produce an image, i'd like
to be able to see that the resultant image is identical.

   --dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: Restrictive file permissions

2013-12-05 Thread Daniel Kahn Gillmor
On 12/05/2013 04:20 PM, Jonathan McCune wrote:
 On Thu, Dec 5, 2013 at 10:10 AM, Colin Watson cjwat...@ubuntu.com wrote:

 I think we should identify the call sites that really need restricted
 permissions, explicitly lock them down, and open things back up for
 everything else.
 
 I agree that this policy makes more sense.

fwiw, i agree with Jonathan and Colin that the default should be
readable, and that we should only lock down specific files when we know
that there is a need.

i've argued for locking down the initramfs when it contains secret key
material in http://bugs.debian.org/536195 so i'm aware that there are
legitimate read-sensitivity concerns for some bootloader-available data.
 I'm really glad that the issue is taken seriously by the GRUB team.  i
just don't think files should be unreadable by default, because i prefer
the ease of collaborative maintenance (as highlighted by Colin) and the
general principle of system transparency for users where it does not
present a security risk.

--dkg



signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: Experiments with git. Hold your commits for today

2013-10-22 Thread Daniel Kahn Gillmor
On 10/22/2013 02:24 PM, Vladimir 'φ-coder/phcoder' Serbinenko wrote:
 GIT repo is up and running now it's main repo. You can commit your
 patches to it. Keep a copy of any patch you commit in case I have to
 reimport repository.

Thank you for doing this maintenance work, phcoder!  As a user of the
project's revision control and (infrequent) contributor I am happy to
see the change.

Regards,

--dkg



signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


trouble (very slow reads -- disk or controller resets?) with Marvell 88SE92xx PCIe card

2013-10-03 Thread Daniel Kahn Gillmor
hi there--

i'm trying to boot a machine with grub-pc 2.00-19 (from debian sid), off
of two SATA disks connected to a PCIe controller.

The PCIe controller is a ​SYBA SI-PEX40064, and upon boot it announces
itself as:

Marvell 88SE92xx Adapter - BIOS Version 1.0.0.1010
PCIe x1 2.5Gbps
Mode: PassThru AHCI
Disks Information:
Port Disk NameSizeSpeed
S0   SATA: WDC WD2003FYYS-02W0B0  2TB 3Gb/s
S1   SATA: ST32000644NS   2TB 3Gb/s

Both of these disks have grub installed on them, and they hang with just
the output GRUB on the video console.

If i boot grub 2.00-19 from a USB stick, i can get into a grub rescue
shell just fine.  But when i do ls to get a listing of the disks, it
pauses for over a minute after printing:

(hd0) (hd0,msdos1) (hd1) (hd2)

and before giving me back a grub prompt.

after insmod part_gpt and another ls, i get:

(hd0) (hd0,msdos1) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2)

and then another long hang.

this makes me think that grub is causing the SATA controller to reset
itself with every disk read or something, and then grub is waiting for
it to come back to life before carrying on.

Is this something i can debug better somehow?  is there a way to tell
grub to be gentler with the controller or something to avoid these hangs?

--dkg



signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: [RFC] Moving from Bazaar (bzr) to git

2013-06-24 Thread Daniel Kahn Gillmor
On 06/24/2013 06:27 AM, Mikko Rantalainen wrote:
 I'd suggest trying to apply the workflow used by git development for
 grub, too.

While i don't expect my opinion to have any particular weight (i'm
mostly a bug reporter and tester in this community) i would also be
happy to see a switch from bzr to git if the upstream devs are OK with it.

 Make sure to have a mirror at github.com and if you don't want to use
 github's issue tracker, put a big disclaimer about that in github. As
 far as I know, you cannot disable public issue tracker in github
 repository's settings.

I have to disagree with the above.  Maintaining a mirror at github.com
is not at all a requirement, and the maintenance of such a mirror is
extra work (however small).  The extra mirror can potentially create
confusion if it isn't properly maintained, as can the github issue
tracker if it isn't the canonical issue tracker.  If you consider
switching to git, please don't spend any extra cycles worrying about
github.com integration unless you have a compelling reason to do so.

--dkg



signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: autogen.sh from bzr failed : configure.ac:382: error: expected source file, required through AC_LIBSOURCES, not found

2013-04-07 Thread Daniel Kahn Gillmor
On 04/07/2013 02:22 AM, Andrey Borzenkov wrote:
 В Sun, 07 Apr 2013 00:04:08 -0400 Daniel Kahn Gillmor 
 d...@fifthhorseman.net пишет:
  [...]
 missing file grub-core/gnulib/getopt1.c
 
 Do you actually have this file? Just to be sure?

hm, good call, the file wasn't there.  after checking at the bzr webview
[0] to see that it's actually supposed to be on trunk in the first place
(and not generated by some previous autotools step or something), i did
a bit of further digging.  it was a problem with my use of git-bzr,
reported now at http://bugs.debian.org/704913

i'm now using standard bzr instead of git-bzr to do the repository work,
and the build seems to be working fine.

Sorry about the false alarm,

--dkg

[0]
http://bzr.savannah.gnu.org/lh/grub/trunk/grub/annotate/head:/grub-core/gnulib/getopt1.c



signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


autogen.sh from bzr failed : configure.ac:382: error: expected source file, required through AC_LIBSOURCES, not found

2013-04-06 Thread Daniel Kahn Gillmor
hi grub folk--

I'm trying to build grub from the current bzr head on a powerpc64 debian
unstable system.  I'm afraid i'm getting stuck right at the beginning,
as i try to autogen:

0 dkg@reason:~/src/grub/grub$ ./autogen.sh 
Importing unicode...
Importing libgcrypt...
Creating Makefile.tpl...
Running autogen...
Saving timestamps...
Running autoreconf...
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4
missing file grub-core/gnulib/getopt1.c
configure.ac:382: error: expected source file, required through AC_LIBSOURCES, 
not found
m4/gnulib-comp.m4:100: gl_INIT is expanded from...
configure.ac:382: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
aclocal: /usr/bin/autom4te failed with exit status: 1
autoreconf: aclocal failed with exit status: 1
1 dkg@reason:~/src/grub/grub$ 

I don't know what this error means; i've got gnulib and the various
auto* packages installed:

0 dkg@reason:~/src/grub/grub$ dpkg -l 'auto*' gnulib
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name   Version  Architecture Description
+++-==---=
ii  autoconf   2.69-1   all  automatic configure script builde
un  autoconf-archi none(no description available)
un  autoconf-doc   none(no description available)
un  autoconf2.13   none(no description available)
un  autofs none(no description available)
ii  autogen1:5.17.2-1   powerpc  automated text file generator
ii  automake   1:1.12.6-2   all  Tool for generating GNU Standards
un  automake1.10-d none(no description available)
un  automake1.12   none(no description available)
un  automake1.5none(no description available)
un  automake1.6none(no description available)
un  automake1.9none(no description available)
un  automaken  none(no description available)
ii  autopoint  0.18.1.1-10  all  The autopoint program from GNU ge
ii  autotools-dev  20120608.1   all  Update infrastructure for config.
ii  gnulib 20120404+sta all  GNU Portability Library
0 dkg@reason:~/src/grub/grub$ 

i've also tried it with automake 1:1.11.6-1 and autogen 1:5.12-0.1, and
i get the same error messages when doing ./autogen.sh from a clean copy.

what am i missing?

 --dkg


pgpoPsdJbiqP1.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


online manual is out of date

2012-10-02 Thread Daniel Kahn Gillmor
hi folks--

https://www.gnu.org/software/grub/manual/grub.html appears to be
generated from 2.00~rc1.  Given that 2.00 has been out for a while now,
it seems like the online docs should probably be updated to match.

Thanks for all the work on grub!

Regards,

--dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: pxe failing on grub 2.00 for files larger than 50KiB

2012-09-25 Thread Daniel Kahn Gillmor
On 09/25/2012 03:09 PM, Seth Goldberg wrote:
  Is it possible that debian mismerged some changes from 2.00?  

no, i don't think so.  the tarball that debian's 2.00-5 package i used
has this sha1 sum:

274d91e96b56a5b9dd0a07accff69dbb6dfb596b  ../grub2_2.00.orig.tar.xz

which is the same as the upstream tarball i find at

 ftp://ftp.gnu.org/gnu/grub/grub-2.00.tar.xz

and that has a date of June 28, while r4505 has a date of June 22nd.

 There is
 code in tftp.c that stalls TFTP responses if = 50 packets are queued by
 the network driver.  That packet count is increased by one each time
 grub_net_put_packet is called and decreased by one each time
 grub_net_receive_packet is called.  Those packet count changes went into
 revision 4505 (Implement flow control for tftp).

hmm, r4505 introduces a hard limit of 200 in grub-core/net/tftp.c, but
the grub tarball seems to have a hard limit of 50, apparently introduced
in r4508.

come to think of it, i see grub_net_put_packet() (which increments
packs.count) in grub-core/net/tftp.c, but i see no evidence that
grub_net_remove_packet() ever gets called there.

is there something else i should look into?

--dkg



signature.asc
Description: OpenPGP digital signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: grub.pxe, ARP-after-boot, DMA, and trouble

2012-04-11 Thread Daniel Kahn Gillmor
On Sat, 07 Apr 2012 01:36:44 -0400, Daniel Kahn Gillmor 
d...@fifthhorseman.net wrote:
 In particular, i suspect that *after* the bootloader has turned over
 control to the kernel (memtest in this case), the PXE-driven NIC is
 continuing to DMA received packets into active RAM.

phcoder sent me the patch below to address the PXE DMA issue.

I tested it against the current bzr head.

My testing grub.cfg is just:

--
serial --speed=115200
terminal_input console serial
terminal_output console serial

linux16 (pxe)/memtest86+.bin console=ttyS0,115200n8
boot
--

Using grub bzr head without this patch, i get these RAM failures on
the net-booted ThinkCentre M70 within ~15 seconds on roughly every other
boot (i haven't found the right packets to inject to force the DMA to
happen consistently, alas).

Using grub bzr head with the patch, i have been unable to reproduce
a single RAM failures in more than 20 trials.

I think this patch resolves the issue, and should go into the mainline.

Thanks, phcoder!

--dkg

=== modified file 'grub-core/net/drivers/i386/pc/pxe.c'
--- grub-core/net/drivers/i386/pc/pxe.c	2012-02-08 18:26:01 +
+++ grub-core/net/drivers/i386/pc/pxe.c	2012-04-11 12:53:17 +
@@ -278,9 +278,14 @@
 grub_pxe_close (const struct grub_net_card *dev __attribute__ ((unused)))
 {
   if (pxe_rm_entry)
-grub_pxe_call (GRUB_PXENV_UNDI_CLOSE,
-		   (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR,
-		   pxe_rm_entry);
+{
+  grub_pxe_call (GRUB_PXENV_UNDI_CLOSE,
+		 (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR,
+		 pxe_rm_entry);
+  grub_pxe_call (GRUB_PXENV_UNDI_SHUTDOWN,
+		 (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR,
+		 pxe_rm_entry);
+}
 }
 
 static grub_err_t



pgplVUhF2vmVX.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


grub.pxe, ARP-after-boot, DMA, and trouble

2012-04-06 Thread Daniel Kahn Gillmor
I've been recently using grub.pxe (from debian's version 1.99-17)
according to the instructions at [0] to boot memtest86+ [1] (from
debian's version 4.20-1.1) over the network on x86 machines.  Due to the
problems described below, i'm using a serial console.

The grub configuration is very simple:

--
serial --speed=115200
terminal_input console serial
terminal_output console serial
menuentry 'memtest86+ serial console' {
  set root='(pxe)'
  echo 'loading memory tester...'
  linux16 /memtest86+.bin console=ttyS0,115200n8
}
--

On some machines i've done this with, memtest86+ reports transient
memory failures very early in the run, and the failures seem to happen
even on brand new sticks of RAM, placed in any combination and order in
the hardware.  The errors were transient -- sometimes i'd get as many as
~300 32-bit words of RAM failing, other times memtest could complete a
full pass with no errors.

The failures came during an early test where memtest86+ writes each
address's value to its own memory location, and then re-reads the memory
to verify.

Using the serial line, i was able to record the memory failures from a
run that had 24 words fail.  I was able to transcribe them and convert
them to a hexdump format.  These are the 24 words that failed (the
memory address indices are in the left-hand column):

*
00095d30  9c c8 e3 71 dc ff 00 65  32 4b a0 29 08 06 00 01
00095d40  08 00 06 04 00 01 00 65  32 4b a0 29 c0 a8 17 54
00095d50  00 00 00 00 00 00 c0 a8  17 86 55 55 55 55 55 55
00095d60  55 55 55 55 55 55 55 55  55 55 55 55 9a a2 8c 53
*
00097590  00 00 00 00 30 5d 09 00  40 00 00 00 04 00 00 00
000975a0  4d 4d 00 00 00 00 00 00  00 00 00 00 10 38 6a 94
*

The first block (of 16 words) appears to be an ARP request packet
From the local network's DHCP server to the failing machine (the MAC
addresses have been obfuscated here, and i didn't bother updating the
checksum to match)

The second block (of 8 words) appears to contain a pointer to the
first block, a size indicator, and some other stuff i don't recognize.

So i think what's happening is something like Matthew Garrett describes
in his recent work with UEFI [2], although i'm using BIOS and not UEFI.

In particular, i suspect that *after* the bootloader has turned over
control to the kernel (memtest in this case), the PXE-driven NIC is
continuing to DMA received packets into active RAM.

This seems pretty dangerous!

Would using pxe_unload before the close of the stanza prevent this
situation from happening (i regret i haven't been able to test it myself
because i haven't had access to the failing hardware since i completed
this diagnosis)?  If so, it seems like that should be clearly documented
and strongly recommended in grub.texi.

Or, should grub be marking certain sections of memory as unavailable
somehow before handoff to the kernel?

Or is there some other way to avoid this sort of corruption?

I've seen similar failures now on pretty different hardware (a fairly
old Dell Optiplex GX260 SFF and a new Lenovo ThinkCentre M77).

Any ideas?

--dkg

[0] https://www.gnu.org/software/grub/manual/grub.html#Network
[1] http://www.memtest.org/
[2] http://mjg59.dreamwidth.org/11235.html


pgpfAXFZqs91T.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


what is the install_device argument for grub-mknetdir

2012-03-11 Thread Daniel Kahn Gillmor

according to the man page and grub-mknetdir --help, the usage is:

  grub-mknetdir [OPTION] install_device

But it's not clear what the install_device should refer to, since you're 
really just preparing a directory -- there's no device needed, afaict.


Can someone explain the need for this argument more clearly?  Or give an 
example of what should go there?


Thanks,

--dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: grub RAID heuristics (how can we avoid superfluous RAID member (2 found))

2012-02-26 Thread Daniel Kahn Gillmor
On Sat, 25 Feb 2012 16:49:00 -0500, Daniel Kahn Gillmor 
d...@fifthhorseman.net wrote:
 On Thu, 23 Feb 2012 06:43:23 +0100, Vladimir 'φ-coder/phcoder' Serbinenko 
 phco...@gmail.com wrote:
  [dkg wrote:]
   Select the smallest known block device that can completely enclose the
   RAID member.  The larger block device(s) should not be considered to be
   exporting that RAID.

I just built the latest (r4008) bzr head, which i believe includes the
proposed changes, and installed it on a machine with two disks in RAID1:

0 root@trash:/home/dkg/src/grub/grub# cat /proc/partitions 
major minor  #blocks  name

   80   19531250 sda
   816266913 sda1
   82   13256178 sda2
   8   16   13260240 sdb
   8   17   13258192 sdb1
   90   13256064 md0
 25303145728 dm-0
0 root@trash:/home/dkg/src/grub/grub# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdb1[0] sda2[1]
  13256064 blocks [2/2] [UU]
  
unused devices: none
0 root@trash:/home/dkg/src/grub/grub# pvs
  PV VGFmt  Attr PSize  PFree
  /dev/md0   vg_trash0 lvm2 a--  12.64g 9.64g
0 root@trash:/home/dkg/src/grub/grub# vgs
  VG#PV #LV #SN Attr   VSize  VFree
  vg_trash0   1   1   0 wz--n- 12.64g 9.64g
0 root@trash:/home/dkg/src/grub/grub# lvs
  LV   VGAttr   LSize Origin Snap%  Move Log Copy%  Convert
  root vg_trash0 -wi-ao 3.00g  
0 root@trash:/home/dkg/src/grub/grub# 


it boots correctly on this setup, yay!

booting to the grub command line, however, i do see some weirdness:

grub ls
(lvm/vg_trash0-root) (hd0) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos1)
(fd0) (lvm/vg_trash0-root)

grub insmod mdraid09
grub ls
(lvm/vg_trash0-root) (hd0) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos1)
(fd0) (md/md0) (md/md0,msdos2) (md/md0,msdos1) (lvm/vg_trash0-root)

grub rmmod mdraid09
grub ls
(md/md0) (lvm/vg_trash0-root) (hd0) (hd0,msdos2) (hd0,msdos1) (hd1)
(hd1,msdos1) (fd0) (md/md0)

grub insmod mdraid09
grub ls
(md/md0) (lvm/vg_trash0-root) (hd0) (hd0,msdos2) (hd0,msdos1) (hd1)
(hd1,msdos1) (fd0) (md/md0)


 --dkg


pgp7TMzghOykF.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: grub RAID heuristics (how can we avoid superfluous RAID member (2 found))

2012-02-25 Thread Daniel Kahn Gillmor
On Thu, 23 Feb 2012 06:43:23 +0100, Vladimir 'φ-coder/phcoder' Serbinenko 
phco...@gmail.com wrote:
 [dkg wrote:]
  Select the smallest known block device that can completely enclose the
  RAID member.  The larger block device(s) should not be considered to be
  exporting that RAID.

phcoder pointed me to the attached patch for improved heuristics for
this case, which applies cleanly to the current head of bzr.  Applied,
it removes the spurious error messages from grub-probe, as seen here
compared against debian's grub-probe 1.99-14:

0 root@trash:/home/dkg/src/grub/grub# grub-probe --target=device /
error: found two disks with the index 1 for RAID md0.
error: superfluous RAID member (2 found).
/dev/mapper/vg_trash0-root
0 root@trash:/home/dkg/src/grub/grub# ./grub-probe --target=device /
/dev/mapper/vg_trash0-root
0 root@trash:/home/dkg/src/grub/grub# 

I think it's worth applying.

Thanks for your work on this, phcoder!

   --dkg

=== modified file 'grub-core/disk/diskfilter.c'
--- grub-core/disk/diskfilter.c	2012-02-12 14:25:25 +
+++ grub-core/disk/diskfilter.c	2012-02-24 21:06:10 +
@@ -974,33 +974,33 @@
 	struct grub_diskfilter_lv *lv;
 	/* FIXME: Check whether the update time of the superblocks are
 	   the same.  */
+	if (pv-disk  grub_disk_get_size (disk) = pv-part_size)
+	  return GRUB_ERR_NONE;
+	pv-disk = grub_disk_open (disk-name);
+	if (!pv-disk)
+	  return grub_errno;
 	/* This could happen to LVM on RAID, pv-disk points to the
 	   raid device, we shouldn't change it.  */
-	if (! pv-disk)
-	  {
-	pv-disk = grub_disk_open (disk-name);
-	if (! pv-disk)
-	  return grub_errno;
-	pv-part_start = grub_partition_get_start (disk-partition);
-	pv-part_size = grub_disk_get_size (disk);
+	pv-start_sector -= pv-part_start;
+	pv-part_start = grub_partition_get_start (disk-partition);
+	pv-part_size = grub_disk_get_size (disk);
 
 #ifdef GRUB_UTIL
-	{
-	  grub_size_t s = 1;
-	  grub_partition_t p;
-	  for (p = disk-partition; p; p = p-parent)
-		s++;
-	  pv-partmaps = xmalloc (s * sizeof (pv-partmaps[0]));
-	  s = 0;
-	  for (p = disk-partition; p; p = p-parent)
-		pv-partmaps[s++] = xstrdup (p-partmap-name);
-	  pv-partmaps[s++] = 0;
-	}
+	{
+	  grub_size_t s = 1;
+	  grub_partition_t p;
+	  for (p = disk-partition; p; p = p-parent)
+	s++;
+	  pv-partmaps = xmalloc (s * sizeof (pv-partmaps[0]));
+	  s = 0;
+	  for (p = disk-partition; p; p = p-parent)
+	pv-partmaps[s++] = xstrdup (p-partmap-name);
+	  pv-partmaps[s++] = 0;
+	}
 #endif
-	if (start_sector != (grub_uint64_t)-1)
-	  pv-start_sector = start_sector;
-	pv-start_sector += pv-part_start;
-	  }
+	if (start_sector != (grub_uint64_t)-1)
+	  pv-start_sector = start_sector;
+	pv-start_sector += pv-part_start;
 	/* Add the device to the array. */
 	for (lv = array-lvs; lv; lv = lv-next)
 	  if (!lv-became_readable_at  lv-fullname  is_lv_readable (lv))

=== modified file 'grub-core/disk/mdraid_linux.c'
--- grub-core/disk/mdraid_linux.c	2012-01-29 13:28:01 +
+++ grub-core/disk/mdraid_linux.c	2012-02-24 21:11:29 +
@@ -201,6 +201,11 @@
   return NULL;
 }
 
+  /* No need for explicit check that sb.size is 0 (unspecified) since
+ 0 = non-0 is false.  */
+  if (((grub_disk_addr_t) grub_le_to_cpu32 (sb.size)) * 2 = size)
+return NULL;
+
   /* FIXME: Check the checksum.  */
 
   level = grub_le_to_cpu32 (sb.level);
@@ -241,7 +246,8 @@
   grub_snprintf (buf, sizeof (buf), md%d, grub_le_to_cpu32 (sb.md_minor));
   return grub_diskfilter_make_raid (16, (char *) uuid,
 grub_le_to_cpu32 (sb.raid_disks), buf,
-(sb.size) ? grub_le_to_cpu32 (sb.size) * 2 
+(sb.size) ? ((grub_disk_addr_t)
+		 grub_le_to_cpu32 (sb.size)) * 2
 : sector,
 grub_le_to_cpu32 (sb.chunk_size)  9,
 grub_le_to_cpu32 (sb.layout),



pgp5yVvBiCXiu.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: grub RAID heuristics (how can we avoid superfluous RAID member (2 found))

2012-02-23 Thread Daniel Kahn Gillmor
On Thu, 23 Feb 2012 06:43:23 +0100, Vladimir 'φ-coder/phcoder' Serbinenko 
phco...@gmail.com wrote:
 Try attached patch

hrm, i get a segmentation fault from grub-probe / even without this
patch when building from bzr trunk (r3964, i think).

The test machine i've set up looks like this uses a common layering
scheme:
 disk → partition → mdadm (0.90 superblock) → lvm → filesystem

Here are the details and a backtrace of me trying:

0 root@trash:~# parted /dev/sda unit s print
Model: ATA WDC WD200BB-75DE (scsi)
Disk /dev/sda: 39062500s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  EndSize   Type File system  Flags
 1  8192s  12542018s  12533827s  primary
 2  12550144s  39062499s  26512356s  primary

0 root@trash:~# parted /dev/sdb unit s print
Model: ATA QUANTUM FIREBALL (scsi)
Disk /dev/sdb: 26520480s
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start  EndSize   Type File system  Flags
 1  4096s  26520479s  26516384s  primary

0 root@trash:~# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdb1[0] sda2[1]
  13256064 blocks [2/2] [UU]
  
unused devices: none
0 root@trash:~# pvs
  PV VGFmt  Attr PSize  PFree
  /dev/md0   vg_trash0 lvm2 a--  12.64g 9.64g
0 root@trash:~# vgs
  VG#PV #LV #SN Attr   VSize  VFree
  vg_trash0   1   1   0 wz--n- 12.64g 9.64g
0 root@trash:~# lvs
  LV   VGAttr   LSize Origin Snap%  Move Log Copy%  Convert
  root vg_trash0 -wi-ao 3.00g  
0 root@trash:~# grep ' / ' /proc/mounts 
rootfs / rootfs rw 0 0
/dev/mapper/vg_trash0-root / ext3 
rw,relatime,errors=remount-ro,user_xattr,acl,barrier=1,data=ordered 0 0
0 root@trash:~# cd - 
/home/dkg/src/grub/grub
0 root@trash:/home/dkg/src/grub/grub# gdb ./grub-probe
GNU gdb (GDB) 7.4-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as i486-linux-gnu.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/...
Reading symbols from /home/dkg/src/grub/grub/grub-probe...(no debugging symbols 
found)...done.
(gdb) run -v /
Starting program: /home/dkg/src/grub/grub/grub-probe -v /
[Thread debugging using libthread_db enabled]
Using host libthread_db library /lib/i386-linux-gnu/libthread_db.so.1.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to 
/dev/mapper.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to /dev.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to md.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to dri.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to snd.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to by-path.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to cpu.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to 
vg_trash0.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to /dev.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to md.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to dri.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to snd.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to by-path.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to cpu.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to 
vg_trash0.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to disk.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to by-uuid.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to by-path.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to by-id.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to block.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to /dev.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to md.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to dri.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to snd.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to by-path.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to cpu.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to 
vg_trash0.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to disk.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to by-uuid.
/home/dkg/src/grub/grub/grub-probe: info: changing current directory to by-path.

failed to build bzr head on powerpc (ieee1275)

2012-02-21 Thread Daniel Kahn Gillmor
In trying to test phcoder's patch for http://bugs.debian.org/611588 , i
pulled the bzr head and built it (using --disable-werror to work around
several remaining warnings about loop unrolling).  I'm running into a
failure with the translations, i think:

0 dkg@hollywood:~/src/grub/grub$ bzr info
Standalone tree (format: 2a)
Location:
  branch root: .

Related branches:
  parent branch: http://bzr.savannah.gnu.org/r/grub/trunk/grub/

0 dkg@hollywood:~/src/grub/grub$ ./autoreconf
  [...]
0 dkg@hollywood:~/src/grub/grub$ ./configure --enable-grub-mkfont 
--with-platform=ieee1275 --disable-werror
  [...]
0 dkg@hollywood:~/src/grub/grub$ make
  [...]
Making all in po  
make[2]: Entering directory `/home/dkg/src/grub/grub/po'
make grub.pot-update  
make[3]: Entering directory `/home/dkg/src/grub/grub/po'
make[3]: *** No rule to make target `.././grub-core/kern/emu/console.c', needed 
by `grub.pot-update'.  Stop.
make[3]: Leaving directory `/home/dkg/src/grub/grub/po'
make[2]: *** [grub.pot] Error 2  
make[2]: Leaving directory `/home/dkg/src/grub/grub/po'
make[1]: *** [all-recursive] Error 1 
make[1]: Leaving directory `/home/dkg/src/grub/grub'
make: *** [all] Error 2  
2 dkg@hollywood:~/src/grub/grub$ find . -name console.c
./grub-core/term/ieee1275/console.c
./grub-core/term/efi/console.c
./grub-core/term/i386/pc/console.c
./grub-core/term/arc/console.c
./grub-core/term/emu/console.c
0 dkg@hollywood:~/src/grub/grub$ 

Let me know if i can provide more useful information.

--dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


cruft left over from make uninstall [was: failed to build bzr head on powerpc (ieee1275)]

2012-02-21 Thread Daniel Kahn Gillmor
On 02/21/2012 09:30 PM, Mike Gilbert wrote:
 I ran into that myself this weekend. Solution: regenerate POTFILES.in.
 
 find . -name '*.c' -print | sort  po/POTFILES.in

Thanks, that did indeed let the build complete.

i completed building it as a non-privileged user, and then as the
superuser, i did:

 make install
 make uninstall

That appears to have left a few files in /usr/local that i think it
shouldn't have.  I think the uninstall target might have drifted a bit:

0 root@hollywood:/home/dkg/src/grub/grub# find /usr/local/  | grep grub
/usr/local/lib/grub
/usr/local/lib/grub/powerpc-ieee1275
/usr/local/etc/grub.d
/usr/local/share/grub
/usr/local/share/grub/widthspec.h
/usr/local/share/grub/ascii.pf2
/usr/local/share/grub/unicode.pf2
/usr/local/share/grub/euro.pf2
/usr/local/share/grub/ascii.h
0 root@hollywood:/home/dkg/src/grub/grub#

--dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: cruft left over from make uninstall [was: failed to build bzr head on powerpc (ieee1275)]

2012-02-21 Thread Daniel Kahn Gillmor
On 02/21/2012 10:23 PM, Mike Gilbert wrote:
 On Tue, Feb 21, 2012 at 10:01 PM, Daniel Kahn Gillmor
 d...@fifthhorseman.net wrote:
  make install
  make uninstall

 That appears to have left a few files in /usr/local that i think it
 shouldn't have.
 
 This is why I use my package manger (portage) to install *everything*.

I also use my package manager (dpkg and apt) to install everything
during normal use; however, phcoder wanted me to try some changes
against trunk and my distro's packaging (debian) isn't tracking trunk
directly.

Even if debian was tracking GRUB's trunk directly, when upstream asks me
to test against trunk, i try to test against vanilla trunk (without
any distro patches) so i can rule out the distro as the source of any
divergent expectations.

Anyway, make uninstall should behave better than it did here, i think.

--dkg

___
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel


Re: setting the system clock before launching operating system

2008-09-13 Thread Daniel Kahn Gillmor
On Sat 2008-09-13 00:52:47 -0400, Arthur Marsh wrote:

 Vesa Jääskeläinen wrote, on 2008-09-13 00:13:
 Geoff Karl wrote:
 I would like to be able to set the clock to a particular time
 automatically before launching an operating system.

 Anyone have any ideas if this can be done during the boot loader process?

 Yes it can be done. But why?

 Some machines (e.g. a Compaq Armada 1750) don't have the option to set
 the time via BIOS or set-up boot floppy.

 When the time had been lost, I'd have start-up problems with fsck
 checking when the file system had last been checked.

The same is true for many older PowerPC machines whose mainboard
batteries have begun to fail.  Being able to automate the bootloader
to say look, if the hardware clock thinks it is 1904 (or 1900, or
1970, or anytime before the turn of the century) it is probably wrong;
set it to at least 2008 at every boot would be pretty useful.

This is especially useful on 32-bit architectures with a default
hardware epoch date so far in the past that crappier NTP
implementations think that it's actually in the future.  I've dealt
with this at the OS level (for various OSes) on older PowerPC
machines, and it's doable, but a pain.  Being able to guarantee that
no matter what OS you're booting, the initial clock will be at least
set to time X would be pretty handy.

--dkg


pgpccKABlEKe4.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel


grub-ieee1275 on powerpc says DEFAULT CATCH! and then drops me into Open Firmware

2008-08-05 Thread Daniel Kahn Gillmor
Hey folks--

I'm trying to create a grub-based rescue USB stick for PowerPC
machines.

I've successfully gotten one machine to boot to this device, and grub
can see both the USB disk itself and the onboard (ide) HD.

However, when i try to load a linux kernel from either disk, i get an
error:

grub linux (hd)/boot/vmlinux-2.6.25-2-powerpc
DEFAULT CATCH!, code=300 at %SRR0: 00013ae4 %SRR1: 3030

(this is from my scribbled notes, not from a serial console,
unfortunately).

at this point, i get dropped to openfirmware, but it's in a
sufficiently weird state that even mac-boot doesn't work for me.  If
i reboot the machine, i can boot normally (via ofboot/yaboot
combination off of onboard disk).

This is with 1.96+20080724-5 and the kernel from debian lenny.

The machine in question is an old iBook (clamshell model) with 96M of
RAM, described by lshw as:

product: iBook (first generation)
vendor: Copyright 1983-1999 Apple Computer, Inc. All Rights Reserved

Any thoughts about what i might need to do to get grub to boot a linux
kernel properly?  Should i try to load something different from grub?

Regards,

--dkg

0 clam:~# cat /proc/cpuinfo 
processor   : 0
cpu : 740/750
temperature : 54-56 C (uncalibrated)
clock   : 299.97MHz
revision: 131.0 (pvr 0008 8300)
bogomips: 33.15
timebase: 16644650
platform: PowerMac
machine : PowerBook2,1
motherboard : PowerBook2,1 MacRISC Power Macintosh
detected as : 64 (iBook (first generation))
pmac flags  : 000d
L2 cache: 512K unified
pmac-generation : NewWorld
0 clam:~# 


pgplKMnFMKBtD.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel


Re: pxebooting with GRUB 2

2007-11-10 Thread Daniel Kahn Gillmor
On Sat 2007-11-10 12:25:10 -0500, Marco Gerards wrote:

 It will be committed soon, now for real ;-)

Thanks for the followup.  i await with bated breath; netboot is an
important feature for me!

Let me know if there's a patchset i can test at some point as an end
user.  Sorry i don't have the skills/time/knowledge to contribute
code in this case.

Regards,

--dkg


pgpJZzsL4F9IS.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel


Re: pxebooting with GRUB 2

2007-10-01 Thread Daniel Kahn Gillmor
On Sun 2007-09-30 12:07:38 -0400, Robert Millan wrote:

 WIP.  Check latest mails from Marco on the subject.  He sent patches
 implementing ethernet infrastructure and requested feedback.

Ah, thanks.  Are you referring to this, from two months ago?

 http://lists.gnu.org/archive/html/grub-devel/2007-08/msg00011.html

I couldn't find a more recent e-mail.  And though the message suggests
that the patchset will be in CVS within a week (i.e. mid-August), it
doesn't look merged to me.  i'm looking at CVS HEAD, though -- is
there another branch i should be trying?

I'm not sure what feedback i can give as i'm not a grub developer, and
there doesn't appear to be enough in the patch (e.g. no IPv4 support)
to make it something i can test as an end user.

Marco, can you give another status report on netbooting?

Thanks for the followup,

   --dkg


pgpSn1eqUWMEb.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel


Re: pxebooting with GRUB 2

2007-09-24 Thread Daniel Kahn Gillmor
On Mon 2007-09-24 20:49:55 -0400, Gregg C Levine wrote:

 To be honest I wasn't aware that anyone did do all of
 that. According to the other list members they want to accommodate
 the abillities of GRUB2 to be able to boot an operating system on
 other platforms, and then the concepts of network booting which was
 accomplished on the original GRUB-Legacy system.

ah, i hadn't realized it was that low of a priority.  thanks for the
information.

 Is there a reason why you've not tried a network boot using
 GRUB-Legacy? Or are you not working on an X86 based platform?

Perhaps i've been confused by the idea of what grub legacy means.
Yes, i've tried and succeeded at pxebooting with a patched version of
GRUB-legacy [0], but i thought i understood that new features/patches
weren't being accepted into GRUB Legacy.  In particular, i was hoping
to see a pxe-capable grub or grub2 packaged cleanly for my distro of
choice (debian), but interpreted a comment by Robert Millan [1] to
imply that GRUB2 netbooting or PXEbooting was superior and
better-supported in GRUB2.  I probably didn't understand the context
of his remarks well.

I suppose i should go back to pushing for in-distro GRUB-Legacy
PXE-booting support, if it's not a priority for GRUB2.  I definitely
like the idea of GRUB working on other platforms too, and i don't want
to distract from that goal.

Thanks for the help, the information, and the software.

Regards,

--dkg

[0] http://os.inf.tu-dresden.de/~adam/grub/0.97/
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=217048#46


pgpr3tzmnksyt.pgp
Description: PGP signature
___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel


pxebooting with GRUB 2

2007-09-19 Thread Daniel Kahn Gillmor
Hi folks--

I've searched high and low for documentation about how to get PXE
booting working with GRUB 2, but i haven't had much luck.  Can anyone
give me pointers?

What i've done so far
-

I found a brief mention on the wiki [0] and followed those
instructions: cat pxeboot.img core.img pxegrub does create a
PXE-bootable grub image, but once the image is loaded, GRUB 2 doesn't
seem to be capable of downloading other files over the network (this
includes being unable to download its own config file).

I get dropped into a rescue GRUB shell, which appears to be only
useful for pulling files off of a local disk -- but that sort of
defeats the purpose.  Here's what i see on the screen after the pxe
boot:

Welcome to GRUB!

Entering into rescue mode...
grub rescue

looking at the logs of my TFTP and DHCP servers, i see the initial
(boot ROM-generated) PXE interaction of a
DHCPDISCOVER/OFFER/REQUEST/ACK handshake, and the initial TFTP
download of the pxegrub file itself, and then nothing.

What else do i need to to enable pulling files via TFTP?

i've successfully pulled files off a TFTP server with a patched GRUB
Legacy [1], but i'd like to support and use GRUB 2 if possible.


Details
---

FWIW, the above attempt was done using a Via Rhine NIC with functional
PXE boot ROM.  the version of GRUB 2 that i tried is the one in debian
unstable at the moment (1.95+20070828-2), and i was using the core.img
generated on this same debian unstable system that initially boots
from a local disk.  Maybe i need to regenerate a different core.img
somehow?


Final Questions
---

Is there documentation somewhere that i missed?  I'd love to get a
pointer or two if it's out there.

I'm also happy to help debug this, and to write up my notes on the
wiki, if folks think that'd be useful.

What next steps should i take to get network booting working?  Do you
have any advice?

Thanks for making this useful tool, and for making it free.

Regards,

   --dkg

[0] 
http://grub.enbug.org/TestingOnX86#head-27ab6e1ddfd82d0c72737201a4e17e3a91ea1a24
[1] http://os.inf.tu-dresden.de/~adam/grub/0.97/pxegrub-0.97-os.3.gz


___
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel