From cd790fe1c9d29c65ba5a05bdd5d82410c6a3d040 Mon Sep 17 00:00:00 2001 From: Petr Hodina Date: Sun, 23 Oct 2022 17:08:03 +0200 Subject: [PATCH v3 8/8] gnu: Add waydroid template. * gnu/system/examples/waydroid.tmpl: New file. diff --git a/gnu/system/examples/waydroid.tmpl b/gnu/system/examples/waydroid.tmpl new file mode 100644 index 0000000000..f9145e88b6 --- /dev/null +++ b/gnu/system/examples/waydroid.tmpl @@ -0,0 +1,114 @@ +;; This is an operating system configuration template +;; for a "desktop" setup with GNOME and Xfce where the +;; root partition is encrypted with LUKS, and a swap file. + +(use-modules (gnu) (gnu system nss) (guix utils)) +(use-service-modules desktop sddm xorg) +(use-package-modules certs gnome linux virtualization) + +(operating-system + (host-name "antelope") + (timezone "Europe/Paris") + (locale "en_US.utf8") + + ;; Choose US English keyboard layout. The "altgr-intl" + ;; variant provides dead keys for accented characters. + (keyboard-layout (keyboard-layout "us" "altgr-intl")) + + (kernel linux-libre-waydroid) + ;; Use the UEFI variant of GRUB with the EFI System + ;; Partition mounted on /boot/efi. + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (targets '("/boot/efi")) + (keyboard-layout keyboard-layout))) + + ;; Specify a mapped device for the encrypted root partition. + ;; The UUID is that returned by 'cryptsetup luksUUID'. + (mapped-devices + (list (mapped-device + (source (uuid "12345678-1234-1234-1234-123456789abc")) + (target "my-root") + (type luks-device-mapping)))) + + (file-systems (append + (list (file-system + (device (file-system-label "my-root")) + (mount-point "/") + (type "ext4") + (dependencies mapped-devices)) + (file-system + (device (uuid "1234-ABCD" 'fat)) + (mount-point "/boot/efi") + (type "vfat"))) + %base-file-systems)) + + ;; Specify a swap file for the system, which resides on the + ;; root file system. + (swap-devices (list (swap-space + (target "/swapfile")))) + + ;; Create user `bob' with `alice' as its initial password. + (users (cons (user-account + (name "bob") + (comment "Alice's brother") + (password (crypt "alice" "$6$abc")) + (group "students") + (supplementary-groups '("wheel" "netdev" + "audio" "video"))) + %base-user-accounts)) + + ;; Add the `students' group + (groups (cons* (user-group + (name "students")) + %base-groups)) + + ;; This is where we specify system-wide packages. + (packages (append (list + ;; Waydroid + waydroid + lxc + ;; for HTTPS access + nss-certs + ;; for user mounts + gvfs) + %base-packages)) + + ;; Add GNOME and Xfce---we can choose at the log-in screen + ;; by clicking the gear. Use the "desktop" services, which + ;; include the X11 log-in service, networking with + ;; NetworkManager, and more. + (services (if (target-x86-64?) + (append (list (service gnome-desktop-service-type) + (service special-files-service-type + `(("/etc/gbinder.d/anbox.conf" ,(plain-file "anbox.conf" +" +[Protocol] +/dev/binder = aidl2 +/dev/vndbinder = aidl2 +/dev/hwbinder = hidl + +[ServiceManager] +/dev/binder = aidl2 +/dev/vndbinder = aidl2 +/dev/hwbinder = hidl +")))) + (set-xorg-configuration + (xorg-configuration + (keyboard-layout keyboard-layout)))) + %desktop-services) + + ;; FIXME: Since GDM depends on Rust (gdm -> gnome-shell -> gjs + ;; -> mozjs -> rust) and Rust is currently unavailable on + ;; non-x86_64 platforms, we use SDDM and Mate here instead of + ;; GNOME and GDM. + (append (list (service mate-desktop-service-type) + (service xfce-desktop-service-type) + (set-xorg-configuration + (xorg-configuration + (keyboard-layout keyboard-layout)) + sddm-service-type)) + %desktop-services))) + + ;; Allow resolution of '.local' host names with mDNS. + (name-service-switch %mdns-host-lookup-nss)) -- 2.37.2