[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [EFI] libdebian-installer: add efi subarch for amd64 and i386



On Wed, Aug 22, 2012 at 01:59:46PM -0400, Joey Hess wrote:
>Steve McIntyre wrote:
>> Looking through the Ubuntu version of debian-installer, I can see that
>> Colin and I independently came up with nigh-on exactly the same way to
>> deal with EFI systems, using a subarch to identify them. We've
>> differed very slightly in terms of the the source code in
>> libdebian-installer for checking for /sys/firmware/efi, but the effect
>> is the same. Here's my diff.
>
>This patch doesn't apply cleanly to current git, both hunks conflect.
>Perhaps you could rebase on current git head and use git format-patch?
>
>> +static int is_efi(void)
>> +{
>> +       int ret = access("/sys/firmware/efi", R_OK);
>> +    if (ret == 0)
>
>This appears to be some broken indentation.

ACK to both. Here's the cleaned-up and rebased patch.
-- 
Steve McIntyre, Cambridge, UK.                                steve@einval.com
"Since phone messaging became popular, the young generation has lost the
 ability to read or write anything that is longer than one hundred and sixty
 characters."  -- Ignatios Souvatzis
>From 7479488017fd905ae86ee4632b28d392e84a6d99 Mon Sep 17 00:00:00 2001
From: Steve McIntyre <steve@einval.com>
Date: Wed, 22 Aug 2012 19:34:50 +0100
Subject: [PATCH] Add "efi" as a subarch for amd64 and i386

---
 debian/changelog               |    7 +++++++
 src/system/subarch-x86-linux.c |   16 ++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index d48c86a..1250fdb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libdebian-installer (0.84) UNRELEASED; urgency=low
+
+  [ Steve McIntyre ]
+  * Add "efi" as a subarch for amd64 and i386
+
+ -- Steve McIntyre <93sam@debian.org>  Wed, 22 Aug 2012 19:24:48 +0100
+
 libdebian-installer (0.83) unstable; urgency=low
 
   * Re-upload without files from git checkout.
diff --git a/src/system/subarch-x86-linux.c b/src/system/subarch-x86-linux.c
index 567d3c2..1e903b3 100644
--- a/src/system/subarch-x86-linux.c
+++ b/src/system/subarch-x86-linux.c
@@ -250,6 +250,17 @@ static char *dmi_system_manufacturer(void)
 	return ret;
 }
 
+/* Are we on an EFI system? Check to see if /sys/firmware/efi
+ * exists */
+static int is_efi(void)
+{
+	int ret = access("/sys/firmware/efi", R_OK);
+	if (ret == 0)
+		return 1;
+	else
+		return 0;
+}
+
 struct map {
 	const char *entry;
 	const char *ret;
@@ -267,6 +278,11 @@ const char *di_system_subarch_analyze(void)
 	const char *ret = "generic";
 	int i;
 
+	/* Look for generic EFI first; this will be over-ridden by the mac
+	 * detection next if we're on a mac. */
+	if (is_efi())
+		ret = "efi";
+
 	if (manufacturer)
 	{
 		for (i = 0; map_manufacturer[i].entry; i++)
-- 
1.7.10.4


Reply to: