help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MacBook2,1 keyboard and touchpad issues on GuixSD


From: Albin
Subject: Re: MacBook2,1 keyboard and touchpad issues on GuixSD
Date: Tue, 26 Jan 2016 20:52:57 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Icedove/38.5.0

Saluton!

Den 2016-01-26 kl. 15:23, skrev Ludovic Courtès:
> Hello!
> 
> Albin <address@hidden> skribis:
> 
>> 1. The manual doesn't explain how to (in the installer)
>>      (a) list the available keymaps
>>      (b) load a keymap
>>      (c) enable the selected keymap in the system that is to be installed.
> 
> Right.  Currently the installer is rough on the edges as you’ve seen,
> but it would be good to a least give pointers to ‘loadkeys’ and similar
> commands.
> 
> Would you like to propose a patch?  The manual lives in doc/guix.texi in
> the repository.

Unfortunately I don't know the answer to a) and c) so it would be hard
to for me to write the patch.

>> 2. After having figured out the names of the keymaps (by looking at a
>> different GNU distro) I had another minor problem.  I wanted to use
>> `se-fi-ir209` but it didn't work to load it directly.  Instead I had to
>> first run `loadkeys se-ir209` and then `se-fi-ir209`.  An example of
>> what happened when I tried to load `se-fi-ir209` directly was that the
>> buttons SHIFT+9 and SHIFT+0 printed `(` and `)` respectively instead of
>> `)` and `=` which are the correct ones.
> 
> I’m afraid I don’t fully understand what’s supposed to happen and what
> doesn’t work here.

What is supposed to happen I think is that the `se-fi-ir209` keymap
loads correctly the first time so that one doesn't need to load the
wrong keymap first and then the right one.  I should add that I had
this same issue in the Parabola installer as well.

>> 3. After installing the system with full disk encryption I first
>> couldn't boot the OS properly because the keyboard wasn't recognized in
>> time---before I was asked to enter the LUKS password.  The solution was
>> to add the following kernel modules to the initial RAM disk:
>> `hid-generic`, `hid` and `hid-apple`.

I've now reconfigured the OS with just `hid-apple` added and can
confirm that only this module was necessary to get the built-in keyboard
to work.  However, using an external USB keyboard to type in the
password doesn't work with this configuration.  Having reconfigured a
second time with the modules `hid-generic` and `hid-apple` added (but
not ´hid´) I can now type in the LUKS password with both keyboards.

> Great.  This issue is being discussed at <http://bugs.gnu.org/20433> and
> we were waiting for confirmation of exactly which modules need to be
> added to the initrd.
> 
> The initrd already contains ‘usbhid’ by default.  From what I can see,
> all that’s missing is ‘hid-generic’ and ‘hid-apple’:
> 
> --8<---------------cut here---------------start------------->8---
> $ gunzip -c < /run/current-system/initrd | cpio -tv | grep hid
> -r--r--r--   1 root     root       207688 Jan  1  1970 
> ./gnu/store/z0xxbhn83bfiiwwlmxdp7r623p3swnzk-linux-modules/hid.ko
> -r--r--r--   1 root     root        90880 Jan  1  1970 
> ./gnu/store/z0xxbhn83bfiiwwlmxdp7r623p3swnzk-linux-modules/usbhid.ko
> --8<---------------cut here---------------end--------------->8---
> 
> Is there a risk of conflict if we load all these drivers?  If not, let’s
> just add them.
> 
>> 4. The media keys that control e.g. LCD brightness and sound level don't
>> work out of the box.  I haven't found a solution to this yet but maybe
>> `pommed` (not yet packaged in GuixSD) could take care of this.
> 
> OK.  Someone™ should package it, then.

I'm completely new to GuixSD but would be happy to learn how to add
packages like this one.

>> 5. After entering Xfce I discovered that the touchpad behaved strangely.
>>  The cursor could only move in a vertical line for example.  When
>> opening "Session and upstart" I discovered a service named `AT-SPI D-Bus
>> Bus`.  I enabled it and restarted Xfce after which the touchpad had a
>> better but not ideal behaviour: I could now move the cursor normally but
>> apart from that only left click was working (using the physical mouse
>> button).  This touchpad should be able to recognize tapping so that one
>> can also have "right click", "middle click", two finger scrolling and
>> other gestures.  I believe there is a problem with the synaptics driver.
>>  Maybe it's in conflict with another driver.
> 
> No idea about that one.  Could it be that our Xorg is not loading the
> right input driver(s)?  Could you compare /var/log/Xorg.0.log with what
> you get on a “working” distro?

Yes, I think so. I've attached one /var/log/Xorg.0.log file for the
Parabola MATE live USB where the touchpad is working perfectly and two
from GuixSD+Xfce where the first one has only basic functionality and
the second one that "strange" behaviour I explained in my last email.
(Sometimes when I boot GuixSD I get the first touchpad behaviour and
sometimes the other.) As can be seen in the Xorg logs, Parabola MATE
uses the synaptics driver whereas the Guix system uses evdev.

(At the moment I can use the computer with an external mouse but it
stops working if I resume from sleep.)

>> As you can see I managed to fix some of the issues but a few remain.
>> I'd really appreciate any help with the media keys and touchpad.
> 
> Thanks for sharing your problems and solution—that’s how we
> incrementally manage to improve things.
> 
> So you have a fully-encrypted system, with an unencrypted /boot, right?

No, it's fully encrypted including /boot.

> Does the grub.cfg generated by ‘guix system’ work for you?

Yes, I can access it from the Libreboot GRUB command line by entering
`configfile (crypto0)/boot/grub.cfg (after having unlocked
the device (see below).

> Did you have
> to run the ‘insmod’ and ‘cryptomount’ commands in GRUB as reported at
> <http://bugs.gnu.org/21843>?

I run `cryptomount -a` from GRUB in libreboot and type in the LUKS
password there. Then I need to type it in a second time during the
initial boot process. For Trisquel and Parabola there are instructions
how to include the LUKS password as a key file inside the initial RAM
disk. (See "Using a key file to unlock /boot/" on
https://libreboot.org/docs/gnulinux/encrypted_parabola.html)
I'd like to do this in GuixSD but don't know how.

There is ongoing work, initiated by Petter, on a guide for installing
GuixSD with full-disk encryption including /boot. Hopefully we can have
this ready very soon. How to include the password in the initial RAM
disk is one thing I'd like to have in there. More important though is
finding a solution to this error:

> making '/gnu/store/bla bla bla-system' the current system...
> Path `/boot/grub/` is not readable by GRUB on boot. Installation is
> impossible. Aborting
> guix system: error: failed to install GRUB on device '/dev/sda'

The message above is printed at the end of every installation or
reconfiguration process. The installation doesn't really fail but it
isn't complete. Running the garbage collector can mess up the system for
example.

As mark_weaver explained:

> [I]n order to avoid garbage-collecting the resources needed by
> grub.cfg, there needed to be a GC "root" installed in
> /var/guix/gcroots and that's the last step of "guix system init"
> and "guix system reconfigure", done after grub is installed,
> but because the grub install failed that last step was never done
...so the GC root was not installed to protect the grub.cfg resources.

> 
> Thanks,
> Ludo’.
> 

Cheers!

Albin

Attachment: Xorg.0.log-guixsd-xfce
Description: Text document

Attachment: Xorg.0.log-guixsd-xfce-2
Description: Text document

Attachment: Xorg.0.log-parabola-mate
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]