guix-devel
[Top][All Lists]
Advanced

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

Guix on a Dell XPS 13 DE - 9350


From: Jan Nieuwenhuizen
Subject: Guix on a Dell XPS 13 DE - 9350
Date: Fri, 17 Jun 2016 00:12:58 +0200

Hi,

There were some hurdles I had to get over so sharing my experiences
here.

The XPS ships with Ubuntu 14.04, but uses UEFI boot and GPT disk.
In the bios I selected "legacy" boot and used gdisk (from gptfdisk,
see patch below) to change it to MBR.

The SSD uses the NVMe protocol, which means I needed to include that
module in the initial ramdisk (patch below).  Grub 2.0 cannot handle
NVMe devices and needs a patch from 2014.  I decided to use
grub-2.02~beta3 (patch below...using a custom url because guix does
not like the ~).

I expect we want to include probably patches #1 and #2, we may want
to cherry pick the patch...not sure.

Greetings,
Jan

>From aefd6bc706de3019d7dbfe2760ae0074abefb40a Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <address@hidden>
Date: Thu, 16 Jun 2016 23:58:45 +0200
Subject: [PATCH 1/3] gnu: Add gptfdisk.

* gnu/packages/disk.scm (gptfdisk): New variable.
---
 gnu/packages/disk.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index c60eacb..fec3681 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2015 Mark H Weaver <address@hidden>
 ;;; Copyright © 2016 Tobias Geerinckx-Rice <address@hidden>
 ;;; Copyright © 2016 Efraim Flashner <address@hidden>
+;;; Copyright © 2016 Jan Nieuwenhuizen <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,9 +26,12 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages popt)
   #:use-module (gnu packages python)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages guile)
@@ -97,6 +101,48 @@ fdisk.  fdisk is used for the creation and manipulation of 
disk partition
 tables, and it understands a variety of different formats.")
     (license gpl3+)))
 
+(define-public gptfdisk
+  (package
+    (name "gptfdisk")
+    (version "1.0.1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "mirror://sourceforge/gptfdisk/" version "/"
+                          name "-" version ".tar.gz"))
+      (sha256
+       (base32
+        "1izazbyv5n2d81qdym77i8mg9m870hiydmq4d0s51npx5vp8lk46"))
+      ;; (patches
+      ;;  (search-patches "gdisk.patch"))
+      ))
+    (build-system gnu-build-system)
+    (inputs
+     `(("gettext" ,gnu-gettext)
+       ("ncurses" ,ncurses)
+       ("popt" ,popt)
+       ("util-linux" ,util-linux)))
+    (arguments
+     `(#:tests? #f ; no "check" target
+       #:phases
+       (modify-phases %standard-phases
+         ;; no configure script
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (install-file "gdisk" bin)
+               (install-file "sgdisk" bin)
+               (install-file "cgdisk" bin)
+               (install-file "fixparts" bin)))))))
+    (home-page "http://www.rodsbooks.com/gdisk/";)
+    (synopsis "Low-level GPT disk partitioning and formatting")
+    (description "GPT fdisk (aka gdisk) is a text-mode partitioning tool that
+works on Globally Unique Identifier (GUID) Partition Table (GPT) disks, rather
+than on the more common (through 2009) Master Boot Record (MBR) partition
+tables.")
+    (license gpl2)))
+
 (define-public ddrescue
   (package
     (name "ddrescue")
-- 
2.8.4

>From b021b01fcb69d52c16f8eabb61cef8a5db592526 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <address@hidden>
Date: Thu, 16 Jun 2016 09:50:32 +0200
Subject: [PATCH 2/3] gnu: linux-initrd: Support NVMe devices.

* gnu/system/linux-initrd.scm (base-initrd): Add nvme to linux-modules.
---
 gnu/system/linux-initrd.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 484bce7..5260898 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <address@hidden>
 ;;; Copyright © 2016 Mark H Weaver <address@hidden>
+;;; Copyright © 2016 Jan Nieuwenhuizen <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -183,6 +184,7 @@ loaded at boot time in the order in which they appear."
       "usb-storage" "uas"                     ;for the installation image etc.
       "usbhid" "hid-generic" "hid-apple"      ;keyboards during early boot
       "dm-crypt" "xts" "serpent_generic" "wp512" ;for encrypted root partitions
+      "nvme"                                  ; for new ssd NVMe devices
       ,@(if (string-match "^(x86_64|i[3-6]86)-" (%current-system))
             '("pata_acpi" "pata_atiixp"    ;for ATA controllers
               "isci")                      ;for SAS controllers like Intel C602
-- 
2.8.4

>From e31dbeff2cb619d9d2589436f5bd71eeb0711431 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <address@hidden>
Date: Thu, 16 Jun 2016 09:50:27 +0200
Subject: [PATCH 3/3] gnu: Update grub to 2.02~beta3.

* gnu/packages/grub.scm (grub): Change version no 2.02.beta3, use
custom url symlinked to 2.02~beta3.
---
 gnu/packages/grub.scm | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index 31b270c..b7bef89 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <address@hidden>
 ;;; Copyright © 2015 Mark H Weaver <address@hidden>
 ;;; Copyright © 2015 Leo Famulari <address@hidden>
+;;; Copyright © 2016 Jan Nieuwenhuizen <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -76,20 +77,21 @@
 (define-public grub
   (package
     (name "grub")
-    (version "2.00")
+    ;;(version "2.02~beta3")
+    (version "2.02.beta3")
     (source (origin
              (method url-fetch)
-             (uri (string-append "mirror://gnu/grub/grub-"
-                                 version ".tar.xz"))
+             (uri (string-append
+                   ;;"ftp://alpha.gnu.org/gnu/grub/grub-";
+                   "http://janneke.lilypond.org/download/grub-";
+                   version ".tar.xz"))
              (sha256
               (base32
-               "0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq"))
-             (patches (search-patches "grub-gets-undeclared.patch"
-                                      "grub-freetype.patch"
-                                      "grub-CVE-2015-8370.patch"))))
+               "18ddwnw0vxs7zigvah0g6a5z5vvlz0p8fjglxv1h59sjbrakvv1h"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--disable-werror")
+       #:tests? #f ;; fail
        #:phases (modify-phases %standard-phases
                   (add-after
                    'unpack 'patch-stuff
-- 
2.8.4


-- 
Jan Nieuwenhuizen <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  

reply via email to

[Prev in Thread] Current Thread [Next in Thread]