diff mbox series

[bug#71940] system: images: Add comment how to enlarge visionfive2 root partition.

Message ID 8b8be3032e77e3b0ad1a224aa819663f2fcfe9fb.1720102754.git.pelzflorian@pelzflorian.de
State New
Headers show
Series [bug#71940] system: images: Add comment how to enlarge visionfive2 root partition. | expand

Commit Message

pelzflorian July 4, 2024, 2:22 p.m. UTC
fdisk as documented upstream does *not* work and breaks boot on 4 microSD
cards that I tried.

* gnu/system/images/visionfive2.scm: Add comment.
[visionfive2-barebones-os]<packages>: Add `parted'.
Remove not generally useful `cloud-utils', 'neofetch' packages.

Change-Id: Ibcb6fd70e3ecc194187c4e882e983740349960cc
---
 gnu/system/images/visionfive2.scm | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)


base-commit: 3979812d4923e980f0069ad99332e2df7c033769

Comments

pelzflorian July 4, 2024, 3:11 p.m. UTC | #1
Hello Zheng, I meant to put you in Cc on this what you think here, but
it appears `mumi send-email' swallowed the --cc option I tried to use.

Thank you for adding useable visionfive2 support.

Regards,
Florian
Zheng Junjie July 4, 2024, 3:43 p.m. UTC | #2
Florian Pelz <pelzflorian@pelzflorian.de> writes:

> fdisk as documented upstream does *not* work and breaks boot on 4 microSD
> cards that I tried.
>
> * gnu/system/images/visionfive2.scm: Add comment.
> [visionfive2-barebones-os]<packages>: Add `parted'.
> Remove not generally useful `cloud-utils', 'neofetch' packages.
>
> Change-Id: Ibcb6fd70e3ecc194187c4e882e983740349960cc
> ---
>  gnu/system/images/visionfive2.scm | 15 +++++++--------
>  1 file changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/gnu/system/images/visionfive2.scm b/gnu/system/images/visionfive2.scm
> index 26f70afbc1..731fd8fa47 100644
> --- a/gnu/system/images/visionfive2.scm
> +++ b/gnu/system/images/visionfive2.scm
> @@ -1,5 +1,6 @@
>  ;;; GNU Guix --- Functional package management for GNU
>  ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
> +;;; Copyright © 2024 Florian Pelz <pelzflorian@pelzflorian.de>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -19,19 +20,13 @@
>  (define-module (gnu system images visionfive2)
>    #:use-module (gnu bootloader)
>    #:use-module (gnu bootloader u-boot)
> -  #:use-module (gnu services dbus)
> -  #:use-module (gnu services dns)
> -  #:use-module (gnu services avahi)
> -  #:use-module (gnu services shepherd)
>    #:use-module (gnu services ssh)
>    #:use-module (gnu services networking)
>    #:use-module (gnu image)
> -  #:use-module (gnu packages linux)
>    #:use-module (guix packages)
>  
> +  #:use-module (gnu packages disk)
>    #:use-module (gnu packages ssh)
> -  #:use-module (gnu packages guile-xyz)
> -  #:use-module (gnu packages admin)
>    #:use-module (gnu services)
>    #:use-module (gnu services base)
>    #:use-module (gnu services networking)
> @@ -54,6 +49,10 @@ (define-module (gnu system images visionfive2)
>  ;;; uboot> setenv fdtfile starfive/jh7110-starfive-visionfive-2-v1.3b.dtb
>  ;;; uboot> saveenv
>  ;;;
> +;;; Use parted and resize2fs to enlarge the root partition.  While StarFive
> +;;; recommends using fdisk and not parted in their Quick Start Guide, for
> +;;; this Guix System image, this would give us an unbootable state.
> +;;;
>  ;;; Code:
>  
>  (define visionfive2-barebones-os
> @@ -71,7 +70,7 @@ (define visionfive2-barebones-os
>                          %base-file-systems))
>      (kernel-arguments (list "earlycon" "clk_ignore_unused"))
>      (firmware '())
> -    (packages (append (list cloud-utils neofetch) %base-packages))
> +    (packages (append (list parted) %base-packages))

i think cloud-utils's "growpart" command is more safe tool.
just use `growpart /dev/mmcblk0 3` and `resize2fs /dev/mmcblk0p3`

see https://manpages.ubuntu.com/manpages/xenial/en/man1/growpart.1.html

>      (services
>       (append (list (service openssh-service-type
>                              (openssh-configuration
>
> base-commit: 3979812d4923e980f0069ad99332e2df7c033769
pelzflorian July 4, 2024, 10:10 p.m. UTC | #3
Ahh I had not understood that you had added cloud-utils for the purpose of growpart.

As it seems growpart is a wrapper around sfdisk, I’m not sure if it will work for my microSD card, but if I understand correctly, it has worked for yours.

fdisk had failed on old and my new microSD card.  But that microSD flew away, I lost it and cannot test growpart now.

I will try with another newly bought microSD card soon and report back.

Regards,
Florian
pelzflorian July 7, 2024, 9:03 a.m. UTC | #4
Hello Zheng, you are right: growpart indeed can properly enlarge my again newly bought, identical microSD card.  However this time, fdisk works too as described in upstream’s Quick Start Guide.  It appears the newly bought first microSD and the old microSD cards were somehow faulty as well.

Perhaps we could add a warning of faulty microSD cards, but actually this is not just about visionfive2.

We could add a comment to visionfive2.scm to use growpart, but I believe fdisk is not at fault, fdisk could be used just as well.  parted worked better than fdisk by chance.

We could remove unused modules from visionfive2.scm like in the patch, as reported by

$ guix shell guile-next
[env]$ guild compile -Wunused-module gnu/system/images/visionfive2.scm

but visionfive2.scm is not the only file in images with unused modules.

I just close this patch now.

Regards,
Florian
diff mbox series

Patch

diff --git a/gnu/system/images/visionfive2.scm b/gnu/system/images/visionfive2.scm
index 26f70afbc1..731fd8fa47 100644
--- a/gnu/system/images/visionfive2.scm
+++ b/gnu/system/images/visionfive2.scm
@@ -1,5 +1,6 @@ 
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 Florian Pelz <pelzflorian@pelzflorian.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,19 +20,13 @@ 
 (define-module (gnu system images visionfive2)
   #:use-module (gnu bootloader)
   #:use-module (gnu bootloader u-boot)
-  #:use-module (gnu services dbus)
-  #:use-module (gnu services dns)
-  #:use-module (gnu services avahi)
-  #:use-module (gnu services shepherd)
   #:use-module (gnu services ssh)
   #:use-module (gnu services networking)
   #:use-module (gnu image)
-  #:use-module (gnu packages linux)
   #:use-module (guix packages)
 
+  #:use-module (gnu packages disk)
   #:use-module (gnu packages ssh)
-  #:use-module (gnu packages guile-xyz)
-  #:use-module (gnu packages admin)
   #:use-module (gnu services)
   #:use-module (gnu services base)
   #:use-module (gnu services networking)
@@ -54,6 +49,10 @@  (define-module (gnu system images visionfive2)
 ;;; uboot> setenv fdtfile starfive/jh7110-starfive-visionfive-2-v1.3b.dtb
 ;;; uboot> saveenv
 ;;;
+;;; Use parted and resize2fs to enlarge the root partition.  While StarFive
+;;; recommends using fdisk and not parted in their Quick Start Guide, for
+;;; this Guix System image, this would give us an unbootable state.
+;;;
 ;;; Code:
 
 (define visionfive2-barebones-os
@@ -71,7 +70,7 @@  (define visionfive2-barebones-os
                         %base-file-systems))
     (kernel-arguments (list "earlycon" "clk_ignore_unused"))
     (firmware '())
-    (packages (append (list cloud-utils neofetch) %base-packages))
+    (packages (append (list parted) %base-packages))
     (services
      (append (list (service openssh-service-type
                             (openssh-configuration