(address . guix-patches@gnu.org)
X-Debbugs-Cc: Timothy Sample <samplet@ngyro.com>
Attached is a patch series that adds a linux-libre kernel variant for
"veyron" type chromebooks, tested on an Asus-C201
(a.k.a. veyron-speedy), and corresponding support for installing the
kernel so that the "depthcharge" bootloader can boot it, and an example
system config used on the veyron-speedy. It may also work on other
veyron models; they are untested.
I've taken the WIP patch that Timothy Sample proposed and split it into
two patches (one for the bootloader support, and one for the example
system config slightly adjusted for the new kernel package name), and
dropped the prawnos kernel, though the linux-libre-arm-veyrong kernel
config is largely based on the prawnos kernel config. The thread on
guix-devel describes more of the background:
Big thanks to Timothy for the WIP patches that made it possible to get
this far!
Caveats:
* The kernel patch introduces kernel-config-veyron, which should
eventually get refactored into kernel-config directly.
* It would be much preferable to figure out how to just use linux-libre
without a separate kernel variant, but I've been unable to figure out
the right combination of options at this point.
* Xorg works, although so slowly as to be almost unusable. The
framebuffer console works quite well, so not sure why X is *so* much
slower. Might be configuration options to improve that.
* dm_crypt "works" briefly, but hangs the device-mapper device after
brief use.
* Sometimes stalls out indefinitely in the initrd after "loading
modules..." ... keyboard stays responsive in the sense that you can
hit enter and it scrolls the screen one line.
That said, it's a decent fairly affordable and portable Guix System,
free software all the way down to the firmware (if you install libreboot
yourself).
live well,
vagrant
From ae4e8d69cdbc4f7d2b006a83ce3498801cdfe17b Mon Sep 17 00:00:00 2001
From: Timothy Sample <samplet@ngyro.com>
Date: Mon, 4 Mar 2019 09:52:49 -0500
Subject: [PATCH 3/3] gnu: Add example system configuration for asus-c201.
* gnu/system/examples/asus-c201.tmpl: New file.
---
gnu/system/examples/asus-c201.tmpl | 60 ++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
create mode 100644 gnu/system/examples/asus-c201.tmpl
Toggle diff (68 lines)
diff --git a/gnu/system/examples/asus-c201.tmpl b/gnu/system/examples/asus-c201.tmpl
new file mode 100644
index 0000000000..098958f4a2
--- /dev/null
+++ b/gnu/system/examples/asus-c201.tmpl
@@ -0,0 +1,60 @@
+;; This is an operating system configuration template
+;; for a "bare bones" setup for an ASUS C201PA.
+
+(use-modules (gnu) (gnu bootloader depthcharge))
+(use-service-modules networking ssh)
+(use-package-modules linux screen)
+
+(operating-system
+ (host-name "komputilo")
+ (timezone "Europe/Berlin")
+ (locale "en_US.utf8")
+
+ ;; Assuming /dev/mmcblk0p1 is the kernel partition, and
+ ;; "my-root" is the label of the target root file system.
+ (bootloader (bootloader-configuration
+ (bootloader depthcharge-bootloader)
+ (target "/dev/mmcblk0p1")))
+
+ ;; The ASUS C201PA requires a very particular kernel to boot,
+ ;; as well as the following arguments.
+ (kernel linux-libre-arm-veyron)
+ (kernel-arguments '("console=tty1"))
+
+ ;; We do not need any special modules for initrd, and the
+ ;; PrawnOS kernel does not include many of the normal ones.
+ (initrd-modules '())
+
+ (file-systems (cons (file-system
+ (device (file-system-label "my-root"))
+ (mount-point "/")
+ (type "ext4"))
+ %base-file-systems))
+
+ ;; This is where user accounts are specified. The "root"
+ ;; account is implicit, and is initially created with the
+ ;; empty password.
+ (users (cons (user-account
+ (name "alice")
+ (comment "Bob's sister")
+ (group "users")
+
+ ;; Adding the account to the "wheel" group
+ ;; makes it a sudoer. Adding it to "audio"
+ ;; and "video" allows the user to play sound
+ ;; and access the webcam.
+ (supplementary-groups '("wheel"
+ "audio" "video"))
+ (home-directory "/home/alice"))
+ %base-user-accounts))
+
+ ;; Globally-installed packages.
+ (packages (cons screen %base-packages))
+
+ ;; Add services to the baseline: a DHCP client and
+ ;; an SSH server.
+ (services (append (list (service dhcp-client-service-type)
+ (service openssh-service-type
+ (openssh-configuration
+ (port-number 2222))))
+ %base-services)))
--
2.21.0
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCXJfGPgAKCRDcUY/If5cW
qkUiAP9+vLikJwDsgoNobd530RibPqQZYa2gyejpQlnRkKxitAEAtn2/eZL9zrYo
Wx+6Aw8t/Ut2HsfTC6H4uKbjkP6oeQU=
=BDKZ
-----END PGP SIGNATURE-----