all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#38513] [PATCH] gnu: Remove uses of deprecated Qemu "-nic, model=foo" invokations.
@ 2019-12-06 21:13 Marius Bakke
  2019-12-07 17:52 ` Leo Famulari
  2019-12-14 23:30 ` Ludovic Courtès
  0 siblings, 2 replies; 4+ messages in thread
From: Marius Bakke @ 2019-12-06 21:13 UTC (permalink / raw)
  To: 38513

* gnu/build/vm.scm (load-in-linux-vm): Move Qemu network configuration from
ARCH-SPECIFIC-FLAGS to the Qemu command line.  Use the "-nic" option of Qemu
instead of "-device" and "-net".
* gnu/system/vm.scm (common-qemu-options): Change "-net nic ..." to "-nic user ...".
* doc/guix.texi (Installing Guix in a VM, Running Guix in a VM): Adjust
examples accordingly.
---
 doc/guix.texi     | 16 +++++++---------
 gnu/build/vm.scm  | 10 ++--------
 gnu/system/vm.scm |  2 +-
 3 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 7d50f31d20..31f26694fd 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -46,7 +46,7 @@ Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
 Copyright @copyright{} 2017 Thomas Danckaert@*
 Copyright @copyright{} 2017 humanitiesNerd@*
 Copyright @copyright{} 2017 Christopher Allan Webber@*
-Copyright @copyright{} 2017, 2018 Marius Bakke@*
+Copyright @copyright{} 2017, 2018, 2019 Marius Bakke@*
 Copyright @copyright{} 2017, 2019 Hartmut Goebel@*
 Copyright @copyright{} 2017, 2019 Maxim Cournoyer@*
 Copyright @copyright{} 2017, 2018, 2019 Tobias Geerinckx-Rice@*
@@ -2472,7 +2472,7 @@ Boot the USB installation image in an VM:
 
 @example
 qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \
-  -net user -net nic,model=virtio -boot menu=on,order=d \
+  -nic user,model=virtio-net-pci -boot menu=on,order=d \
   -drive file=guix-system.img \
   -drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{system}.iso
 @end example
@@ -26514,7 +26514,7 @@ vm-image} on x86_64 hardware:
 
 @example
 $ qemu-system-x86_64 \
-   -net user -net nic,model=virtio \
+   -nic user,model=virtio-net-pci \
    -enable-kvm -m 1024 \
    -device virtio-blk,drive=myhd \
    -drive if=none,file=/tmp/qemu-image,id=myhd
@@ -26527,14 +26527,12 @@ Here is what each of these options means:
 This specifies the hardware platform to emulate.  This should match the
 host.
 
-@item -net user
+@item -nic user,model=virtio-net-pci
 Enable the unprivileged user-mode network stack.  The guest OS can
 access the host but not vice versa.  This is the simplest way to get the
-guest OS online.
-
-@item -net nic,model=virtio
-You must create a network interface of a given model.  If you do not
-create a NIC, the boot will fail.  Assuming your hardware platform is
+guest OS online.  @code{model} specifies which network device to emulate:
+@code{virtio-net-pci} is a special device made for virtualized operating
+systems and recommended for most uses.  Assuming your hardware platform is
 x86_64, you can get a list of available NIC models by running
 @command{qemu-system-x86_64 -net nic,model=help}.
 
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 89d685b352..9a9e5bd001 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -131,14 +131,7 @@ the #:references-graphs parameter of 'derivation'."
                       ;; The serial port name differs between emulated
                       ;; architectures/machines.
                       " console="
-                      (if target-arm? "ttyAMA0" "ttyS0"))
-
-      ;; NIC is not supported on ARM "virt" machine, so use a user mode
-      ;; network stack instead.
-      ,@(if target-arm?
-            '("-device" "virtio-net-pci,netdev=mynet"
-              "-netdev" "user,id=mynet")
-            '("-net" "nic,model=virtio"))))
+                      (if target-arm? "ttyAMA0" "ttyS0"))))
 
   (when make-disk-image?
     (format #t "creating ~a image of ~,2f MiB...~%"
@@ -163,6 +156,7 @@ the #:references-graphs parameter of 'derivation'."
          ;; CPU with the maximum possible feature set otherwise.
          "-cpu" "max"
          "-m" (number->string memory-size)
+         "-nic" "user,model=virtio-net-pci"
          "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng"
          "-device" "virtio-rng-pci,rng=guixsd-vm-rng"
          "-virtfs"
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 8609bd2ace..5ee9855ae5 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -927,7 +927,7 @@ with '-virtfs' options for the host file systems listed in SHARED-FS."
             '())
 
      "-no-reboot"
-     "-net nic,model=virtio"
+     "-nic" "user,model=virtio-net-pci"
      "-object" "rng-random,filename=/dev/urandom,id=guixsd-vm-rng"
      "-device" "virtio-rng-pci,rng=guixsd-vm-rng"
 
-- 
2.24.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#38513] [PATCH] gnu: Remove uses of deprecated Qemu "-nic, model=foo" invokations.
  2019-12-06 21:13 [bug#38513] [PATCH] gnu: Remove uses of deprecated Qemu "-nic, model=foo" invokations Marius Bakke
@ 2019-12-07 17:52 ` Leo Famulari
  2019-12-14 23:30 ` Ludovic Courtès
  1 sibling, 0 replies; 4+ messages in thread
From: Leo Famulari @ 2019-12-07 17:52 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 38513

Nit-pck: It should be "invocation".

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#38513] [PATCH] gnu: Remove uses of deprecated Qemu "-nic, model=foo" invokations.
  2019-12-06 21:13 [bug#38513] [PATCH] gnu: Remove uses of deprecated Qemu "-nic, model=foo" invokations Marius Bakke
  2019-12-07 17:52 ` Leo Famulari
@ 2019-12-14 23:30 ` Ludovic Courtès
  2019-12-18 21:12   ` bug#38513: " Marius Bakke
  1 sibling, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2019-12-14 23:30 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 38513

Hi!

Marius Bakke <mbakke@fastmail.com> skribis:

> * gnu/build/vm.scm (load-in-linux-vm): Move Qemu network configuration from
> ARCH-SPECIFIC-FLAGS to the Qemu command line.  Use the "-nic" option of Qemu
> instead of "-device" and "-net".
> * gnu/system/vm.scm (common-qemu-options): Change "-net nic ..." to "-nic user ...".
> * doc/guix.texi (Installing Guix in a VM, Running Guix in a VM): Adjust
> examples accordingly.

Apart from the typo Leo noted, it LGTM!  :-)

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#38513: [PATCH] gnu: Remove uses of deprecated Qemu "-nic, model=foo" invokations.
  2019-12-14 23:30 ` Ludovic Courtès
@ 2019-12-18 21:12   ` Marius Bakke
  0 siblings, 0 replies; 4+ messages in thread
From: Marius Bakke @ 2019-12-18 21:12 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 38513-done

[-- Attachment #1: Type: text/plain, Size: 1018 bytes --]

Ludovic Courtès <ludo@gnu.org> writes:

> Hi!
>
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> * gnu/build/vm.scm (load-in-linux-vm): Move Qemu network configuration from
>> ARCH-SPECIFIC-FLAGS to the Qemu command line.  Use the "-nic" option of Qemu
>> instead of "-device" and "-net".
>> * gnu/system/vm.scm (common-qemu-options): Change "-net nic ..." to "-nic user ...".
>> * doc/guix.texi (Installing Guix in a VM, Running Guix in a VM): Adjust
>> examples accordingly.
>
> Apart from the typo Leo noted, it LGTM!  :-)

I discovered a problem with our documentation when researching this
patch.  Qemu nowadays, with no "-nic" or related arguments, acts the
same as "-nic,model=e1000e".  So a full network is available by default,
unless one adds "-nic none".

The "Running Guix in a VM" section of the manual mentions Qemu
networking twice, and both are inaccurate or wrong.  It would be good to
reword that section.  Any takers?  :-)

In any case this patch will be pushed shortly.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 483 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-12-18 21:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-06 21:13 [bug#38513] [PATCH] gnu: Remove uses of deprecated Qemu "-nic, model=foo" invokations Marius Bakke
2019-12-07 17:52 ` Leo Famulari
2019-12-14 23:30 ` Ludovic Courtès
2019-12-18 21:12   ` bug#38513: " Marius Bakke

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.