linux-surface / linux-surface

Linux Kernel for Surface Devices
4.68k stars 205 forks source link

SP8 Type Cover not detected during disk encryption #1350

Open sheosi opened 4 months ago

sheosi commented 4 months ago

Hi! First and foremost, thanks for your hard work on making this wonderful computer work. Going into the subject, I've installed Fedora SilverBlue into my SP8, first from version 36 and then upgrading into 38, and after many tries of adding the necessary modules to load in initram I'm using Universal Blue's images (Fedora 39). However, my Type Cover isn't detected yet during disk encryption, I'm still filling this here since they are using the drivers you recommend.

Thanks for your time!

Environment

efc64 commented 4 months ago

Just to check, did you add the applicable additional modules? I think I added some redundant modules from this but the typecover keyboard works for me on the decryption screen. SP8 with Pop OS

qzed commented 4 months ago

@sheosi Any chance you can run ls -al /sys/bus/surface_aggregator in the initram to check which devices are actually showing up at that point?

sheosi commented 4 months ago

@efc64 I've tried adding them, I'm on silverblue, so I tried both the ways by UniversalBlue and also adding them through rpm-ostree initramfs (the way that's supposed to be done in Silverblue).

@qzed Wouldn't mind to try, do you know how I can instruct dracut to perform it? I could then translate that to commands for SilverBlue.

qzed commented 4 months ago

@sheosi No idea, sorry. I think there should be some way to boot into a shell running in the initramfs. Some silly way to do that could be to change the root UUID to something random (it should then drop you in some emergency shell usually, unless that is disabled). But no idea if that's even possible in Silverblue/UniversalBlue.

StollD commented 4 months ago

You can also try adding init=/bin/bash or rdinit=/bin/bash to the kernel commandline in GRUB

sheosi commented 4 months ago

So this is what I did:

  1. I rebooted and added init=/bin/bash to the kernel commandline in GRUB
  2. executed loadkeys es (most probably not relevant, but included here for sake of completeness)
  3. executed ls -al /sys/bus/surface_aggregator, got this:
total 0
drwxr-xr-x   4 root root    0 Jan 31 22:29 .
drwxr-xr-x  42 root root    0 Jan 31 22:26 ..
drwxr-xr-x   2 root root    0 Jan 31 22:26 devices
drwxr-xr-x   3 root root    0 Jan 31 22:26 drivers
-rw-r--r--   1 root root 4096 Jan 31 22:29 drivers_autoprobe
--w-------   1 root root 4096 Jan 31 22:29 drivers_probe
--w-------   1 root root 4096 Jan 31 22:26 uevent

Also, I keep seeing something along the lines of "Initramfs being remade, system will reboot" but the system boots normally.