~ruther/guix-local

1644f4f1f8957f3f3a88037aed80d501fdceaae7 — Ludovic Courtès 4 years ago 223f1b1
services: Define '%qemu-static-networking'.

* gnu/services/base.scm (%qemu-static-networking): New variable.
* gnu/system/hurd.scm (%base-services/hurd): Use it.
* doc/guix.texi (Networking Setup): Document it.
3 files changed, 30 insertions(+), 15 deletions(-)

M doc/guix.texi
M gnu/services/base.scm
M gnu/system/hurd.scm
M doc/guix.texi => doc/guix.texi +8 -0
@@ 17012,6 17012,14 @@ List of arguments for this type of link.
@end table
@end deftp

@cindex networking, with QEMU
@cindex QEMU, networking
@defvr {Scheme Variable} %qemu-static-networking
This is the @code{static-networking} record representing network setup
when using QEMU's user-mode network stack on @code{eth0} (@pxref{Using
the user mode network stack,,, QEMU, QEMU Documentation}).
@end defvr

@cindex DHCP, networking service
@defvr {Scheme Variable} dhcp-client-service-type
This is the type of services that run @var{dhcp}, a Dynamic Host Configuration

M gnu/services/base.scm => gnu/services/base.scm +16 -0
@@ 116,6 116,8 @@
            static-networking-service
            static-networking-service-type

            %qemu-static-networking

            udev-configuration
            udev-configuration?
            udev-configuration-rules


@@ 2708,6 2710,20 @@ to handle."
                         (provision (or provision '(networking)))
                         (name-servers name-servers)))))

(define %qemu-static-networking
  ;; Networking configuration for QEMU's user-mode network stack (info "(QEMU)
  ;; Using the user mode network stack").
  (static-networking
   (addresses (list (network-address
                     (device "eth0")
                     (value "10.0.2.15/24"))))
   (routes (list (network-route
                  (destination "default")
                  (gateway "10.0.2.2"))))
   (requirement '())
   (provision '(networking))
   (name-servers '("10.0.2.3"))))


(define %base-services
  ;; Convenience variable holding the basic services.

M gnu/system/hurd.scm => gnu/system/hurd.scm +6 -15
@@ 86,21 86,12 @@
                                (value "127.0.0.1"))))
                        (requirement '())
                        (provision '(loopback)))
                       (static-networking
                        (addresses
                         ;; The default QEMU guest address.  To get "eth0",
                         ;; you need QEMU to emulate a device for which Mach
                         ;; has an in-kernel driver, for instance with:
                         ;; --device rtl8139,netdev=net0 --netdev user,id=net0
                         (list (network-address
                                (device "eth0")
                                (value "10.0.2.15/24"))))
                        (routes
                         (list (network-route
                                (destination "default")
                                (gateway "10.0.2.2"))))
                        (provision '(networking))
                        (name-servers '("10.0.2.3")))))

                       ;; QEMU user-mode networking.  To get "eth0", you need
                       ;; QEMU to emulate a device for which Mach has an
                       ;; in-kernel driver, for instance with:
                       ;; --device rtl8139,netdev=net0 --netdev user,id=net0
                       %qemu-static-networking))
        (syslog-service)
        (service guix-service-type
                 (guix-configuration