Message ID | 87wokogngm.fsf@ponder |
---|---|
State | Accepted |
Headers | show |
Series | [bug#34978] Enable support for veyron chrombooks | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
cbaines/applying patch | fail | Apply failed |
On 2019-03-24, Vagrant Cascadian wrote: > 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. A bonus caveat: * currently u-boot-tools and tdb fail tests on armhf; but those should probably be their own bugs... live well, vagrant
On 2019-03-24, Vagrant Cascadian <vagrant@debian.org> wrote: > On 2019-03-24, Vagrant Cascadian wrote: >> 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. > > A bonus caveat: > > * currently u-boot-tools and tdb fail tests on armhf; but those should > probably be their own bugs... "guix system reconfigure" works just fine when done from a checkout (e.g. ./pre-inst-env guix system reconfigure ...), but unfortunately, if I guix pull the very same commit: $ guix system reconfigure /home/vagrant/src/config/asus-c201-spdygx.scm guix system: error: failed to load '/home/vagrant/src/config/asus-c201-spdygx.scm': ice-9/boot-9.scm:2803:6: In procedure resolve-interface: no code for module (gnu bootloader depthcharge) How could that happen? live well, vagrant
On Tue, Mar 26, 2019 at 03:50:24PM -0700, Vagrant Cascadian wrote: > On 2019-03-24, Vagrant Cascadian <vagrant@debian.org> wrote: > > On 2019-03-24, Vagrant Cascadian wrote: > >> 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. > > > > A bonus caveat: > > > > * currently u-boot-tools and tdb fail tests on armhf; but those should > > probably be their own bugs... > > "guix system reconfigure" works just fine when done from a checkout > (e.g. ./pre-inst-env guix system reconfigure ...), but unfortunately, if > I guix pull the very same commit: > > $ guix system reconfigure /home/vagrant/src/config/asus-c201-spdygx.scm > guix system: error: failed to load '/home/vagrant/src/config/asus-c201-spdygx.scm': > ice-9/boot-9.scm:2803:6: In procedure resolve-interface: > no code for module (gnu bootloader depthcharge) > > How could that happen? > You might need to add the new (non guix-package-*) files to Makefile.am too.
On 2019-03-27, Efraim Flashner wrote: > On Tue, Mar 26, 2019 at 03:50:24PM -0700, Vagrant Cascadian wrote: >> On 2019-03-24, Vagrant Cascadian <vagrant@debian.org> wrote: >> > On 2019-03-24, Vagrant Cascadian wrote: >> >> 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. ... >> "guix system reconfigure" works just fine when done from a checkout >> (e.g. ./pre-inst-env guix system reconfigure ...), but unfortunately, if >> I guix pull the very same commit: >> >> $ guix system reconfigure /home/vagrant/src/config/asus-c201-spdygx.scm >> guix system: error: failed to load '/home/vagrant/src/config/asus-c201-spdygx.scm': >> ice-9/boot-9.scm:2803:6: In procedure resolve-interface: >> no code for module (gnu bootloader depthcharge) >> >> How could that happen? > > You might need to add the new (non guix-package-*) files to Makefile.am > too. None of the other gnu/bootloader/* are added in Makefile.am. It was added to gnu/local.mk, just like the other bootloaders; This is why I'm so perplexed... the depthcharge patch mimics the entries for the other bootloaders, works with ./pre-inst-env, but not when using guix pull to pull the commit. live well, vagrant
Hello! Vagrant Cascadian <vagrant@debian.org> skribis: > 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: > > https://lists.gnu.org/archive/html/guix-devel/2019-03/msg00053.html > > Big thanks to Timothy for the WIP patches that made it possible to get > this far! Neat! I’ve applied all three patches. I’ve also followed up by a commit that fixes the problem you mentioned, namely that (gnu bootloader depthcharge) wouldn’t be included in what ‘guix pull’ provides. Could you add a sentence or two in doc/guix.texi, under “Bootloader Configuration”, to mention Depthcharge next to U-Boot? BTW, if U-Boot and Depthcharge are able to install custom keymaps, it’d be nice to implement that support like commit 8d058e7b1b1a409d3d9cc29c5650a98db4e78783 does for GRUB. Thanks Vagrant & Timothy! Ludo’.
> BTW, if U-Boot and Depthcharge are able to install custom keymaps, it’d > be nice to implement that support like commit > 8d058e7b1b1a409d3d9cc29c5650a98db4e78783 does for GRUB. Heh, I wish U-Boot did that, but it really doesn't: /* Translate the scancode in ASCII */ static int usb_kbd_translate(struct usb_kbd_pdata *data, unsigned char scancode, unsigned char modifier, int pressed) { uint8_t keycode = 0; /* Key released */ if (pressed == 0) { data->repeat_delay = 0; return 0; } if (pressed == 2) { data->repeat_delay++; if (data->repeat_delay < REPEAT_DELAY) return 0; data->repeat_delay = REPEAT_DELAY; } /* Alphanumeric values */ if ((scancode > 3) && (scancode <= 0x1d)) { keycode = scancode - 4 + 'a'; if (data->flags & USB_KBD_CAPSLOCK) keycode &= ~CAPITAL_MASK; if (modifier & (LEFT_SHIFT | RIGHT_SHIFT)) { /* Handle CAPSLock + Shift pressed simultaneously */ if (keycode & CAPITAL_MASK) keycode &= ~CAPITAL_MASK; else keycode |= CAPITAL_MASK; } } if ((scancode > 0x1d) && (scancode < 0x39)) { /* Shift pressed */ if (modifier & (LEFT_SHIFT | RIGHT_SHIFT)) keycode = usb_kbd_numkey_shifted[scancode - 0x1e]; else keycode = usb_kbd_numkey[scancode - 0x1e]; } /* Arrow keys */ if ((scancode >= 0x4f) && (scancode <= 0x52)) keycode = usb_kbd_arrow[scancode - 0x4f]; /* Numeric keypad */ if ((scancode >= 0x54) && (scancode <= 0x67)) keycode = usb_kbd_num_keypad[scancode - 0x54]; if (data->flags & USB_KBD_CTRL) keycode = scancode - 0x3; if (pressed == 1) { if (scancode == NUM_LOCK) { data->flags ^= USB_KBD_NUMLOCK; return 1; } if (scancode == CAPS_LOCK) { data->flags ^= USB_KBD_CAPSLOCK; return 1; } if (scancode == SCROLL_LOCK) { data->flags ^= USB_KBD_SCROLLLOCK; return 1; } } /* Report keycode if any */ if (keycode) { debug("%c", keycode); usb_kbd_put_queue(data, keycode); } return 0; }
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 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