From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: Guix on a Dell XPS 13 DE - 9350 Date: Fri, 17 Jun 2016 00:12:58 +0200 Message-ID: <87twgsail1.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46223) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDfXM-00069b-VB for guix-devel@gnu.org; Thu, 16 Jun 2016 18:13:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDfXI-0008AC-LB for guix-devel@gnu.org; Thu, 16 Jun 2016 18:13:19 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --=-=-= Content-Type: text/plain 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 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-gnu-Add-gptfdisk.patch Content-Transfer-Encoding: quoted-printable >From aefd6bc706de3019d7dbfe2760ae0074abefb40a Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen 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 =C2=A9 2015 Mark H Weaver ;;; Copyright =C2=A9 2016 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2016 Efraim Flashner +;;; Copyright =C2=A9 2016 Jan Nieuwenhuizen ;;; ;;; 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+))) =20 +(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 t= hat +works on Globally Unique Identifier (GUID) Partition Table (GPT) disks, ra= ther +than on the more common (through 2009) Master Boot Record (MBR) partition +tables.") + (license gpl2))) + (define-public ddrescue (package (name "ddrescue") --=20 2.8.4 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0002-gnu-linux-initrd-Support-NVMe-devices.patch Content-Transfer-Encoding: quoted-printable >From b021b01fcb69d52c16f8eabb61cef8a5db592526 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen 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 =C2=A9 2013, 2014, 2015, 2016 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2016 Mark H Weaver +;;; Copyright =C2=A9 2016 Jan Nieuwenhuizen ;;; ;;; 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 parti= tions + "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 --=20 2.8.4 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0003-gnu-Update-grub-to-2.02-beta3.patch Content-Transfer-Encoding: quoted-printable >From e31dbeff2cb619d9d2589436f5bd71eeb0711431 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen 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 =C2=A9 2013, 2014, 2015, 2016 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2015 Mark H Weaver ;;; Copyright =C2=A9 2015 Leo Famulari +;;; Copyright =C2=A9 2016 Jan Nieuwenhuizen ;;; ;;; 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 --=20 2.8.4 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.nl= =20=20 --=-=-=--