[RESOLVED] Gentoo on FW16

Which CPU did you get? I’m getting the Ryzen 9 so it would be nice for someone with the Ryzen 7 mainboard to fill out the hardware section on that one.

I have the Ryzen 7 and plan to contribute to your wiki once I’ve got it up and running.

1 Like

@firelizzard I can confirm that the Ryzen 7 works (no real surprise). As far as I can tell, all the base components worked, however I think it might be a little more maintenance than I’m looking for atm so I may stick with my Arch install for the time being.

One thing I did notice is that performing my minimum battery usage test gave me a minimum power draw of 4.8W, which beats my Arch’s 5.4W by about 15%. This isn’t reflective of draw during a workload, but it’s interesting IMO.

Gentoo defaults to less features built into apps, so likely your gentoo system is running notably less processes as less was installed.
USE flags is probably my favourite part of Gentoo, and how you can get something that’s noticeably smoother if you remove features of systems that you don’t need.

Agreed, the USE system is amazing.

N/A Expansion Bay Shell Works N/A N/A N/A Just provides cooling and fills the bay.

Just a quick post to say I was amused to see that you can confirm the shell works :smiley: (because it doesn’t do anything).

I’m writing this from Gentoo on my FW16. I think a distribution kernel would have worked, but dracut choked on my disk encryption setup and I gave up on that. genkernel worked like a charm and had no trouble managing my disk encryption. I’m currently still using genkernel. It didn’t enable everything but it got enough to boot. But I’d rather not have three thousand kernel modules so I’m working on eliminating all the junk to get down to the configuration options that are truly necessary (not including those that default to enabled). I updated the wiki with the components I’ve verified so far.

I do plan on going fully manual (custom kernel, custom initramfs) and I’ll make a user wiki page with the details but that’s going to take a while.

If you’re not aware, you can use the actual linux make files to generate a kernel config that only enables the modules that you’re currently using.

make localmodconfig

Granted, the risk here is overrestricting it, so if you plug something in there’s a chance the modules needed for it weren’t loaded.

That would have helped. I disabling everything I can, and then I’ll re-enable non-essential drivers such as bluetooth and the sound card later. That way I know what’s required for what. I posted the minimum config changes I believe are necessary for a bootable system with display, wifi, keyboard, and the touchpad.

@RandomRanger Would you run lsusb -s 002: -v and post the results (or DM me)? I’m getting some weird messages in dmesg and I want to see what shows up for you there.

Sure, but I’ll note that I’m currently running Arch rather than Gentoo

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            6.08
  iManufacturer           3 Linux 6.8.1-arch1-1 xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:c1:00.3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
        bMaxBurst               0

Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            9 Hub
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x05e3 Genesys Logic, Inc.
  idProduct          0x0625 USB3.2 Hub
  bcdDevice           34.04
  iManufacturer           1 GenesysLogic
  iProduct                2 USB3.2 Hub
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes           19
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               8
        bMaxBurst               0

Thank you. The results should be the same regardless of distro since all that’s doing is enumerating USB devices. Did the command complete quickly? On mine it stalls on 002:002 (the Genesys hub) for something like a minute before completing.

It was basically instant, yeah.

I have fiddled around and published the grub theme I worked on. This has only been tested on gentoo, but that’s probably fine. :^)

I’m unclear on the process of making an ‘official’ framework theme for grub, but that feels like a good starting point for anyone that would like to not focus on the technicals and just make it pretty.

I’m going to call the Gentoo wiki page basically complete. I can’t really say I’ve confirmed the GPU works because I haven’t properly tested it, but it’s recognized by the drivers so I’m pretty sure it works. It would be good to have confirmation that the hardware on the Ryzen 7 model is the same, but I don’t have one of those.

As far as I understand, there is no microcode available for the AMD Ryzen 7 7840HS; is this correct?

amd_ucode/readme mentions several patches for the cpu family, but not for the particular CPU model. However, the wiki page mentions AMD microcode, so I want to be sure.

I have no clue, I just followed the instructions here and assumed Linux would figure it out.

I used savedconfig to only store the firmware I actually need. According to those instructions, some googling and the README in amd_ucode I think there is currently no firmware available for the 7840HS. I’ll try to confirm this later and post my findings here.

I ran sudo dmesg | grep -i microcode once with all the firmware in sys-kernel/linux-firmware enabled and once with only a few options (which didn’t include any amd-ucode files).

The result was exactly the same both times. So I think that there are indeed no microcode updates for the 7840HS as of now.

The full output of sudo dmesg | grep -i microcode, if anybody wants to compare:

[    0.564216] microcode: CPU14: patch_level=0x0a704104
[    0.564218] microcode: CPU15: patch_level=0x0a704104
[    0.564220] microcode: CPU1: patch_level=0x0a704104
[    0.564220] microcode: CPU0: patch_level=0x0a704104
[    0.564224] microcode: CPU4: patch_level=0x0a704104
[    0.564225] microcode: CPU5: patch_level=0x0a704104
[    0.564230] microcode: CPU13: patch_level=0x0a704104
[    0.564234] microcode: CPU2: patch_level=0x0a704104
[    0.564234] microcode: CPU3: patch_level=0x0a704104
[    0.564237] microcode: CPU6: patch_level=0x0a704104
[    0.564237] microcode: CPU7: patch_level=0x0a704104
[    0.564240] microcode: CPU9: patch_level=0x0a704104
[    0.564240] microcode: CPU8: patch_level=0x0a704104
[    0.564241] microcode: CPU10: patch_level=0x0a704104
[    0.564245] microcode: CPU11: patch_level=0x0a704104
[    0.564294] microcode: CPU12: patch_level=0x0a704104
[    0.564305] microcode: Microcode Update Driver: v2.2.