[How To] Configure your Tuxedo Laptop

Tuxedo Laptop configurations

General configuration

Packages

To get a functional Tuxedo experience there is a couple of packages to install.

The cpu power profiles requires the driver package, which in turn requires kernel headers to be installed.

Kernel headers is in separate packages and you need to list which kernel is currently running

mhwd-kernel -li

If the current running kernel is e.g. linux66 select linux66-headers as the optional package or specify the headers on the command line, also include base-devel to be able to compile source.

sudo pacman -Syu tuxedo-control-center base-devel

Tuxedo InfinityBook Pro 14/16

  • Touchpad switch work OOB with Linux kernel 6.6
  • Keyboard backlight work OOB with Linux kernel 6.6

To have the touchpad indicator showing the disabled state, install tuxedo-touchpad-switch.

While touchpad switch works OOB with Plasma Wayland session, it ceases function after installing Tuxedo Control Center which depends on the tuxedo-drivers-dkms package.

Attempts to execute the utility from terminal on Wayland produce the following message

 $ tuxedo-touchpad-switch
setup_kde(...): Could not infd touchpad module in kded.
main(...): setup_kde(...) failed.

On X11 the function works as expected.

Kernel configuraton

Edit /etc/default/grub and add the following to the existing cmdline (excluding the dots)

GRUB_CMDLINE_LINUX_DEFAULT="i915.enable_guc=2"

Rebuild grub

grub-mkconfig -o /boot/grub/grub.cfg

mkinitcpio.conf

Append i915 to the modules array

MODULES=(i915)

Rebuild init

mkinitcpio -P

Restart your system

Additional info on Intel performance setup

https://wiki.archlinux.org/title/CPU_frequency_scaling#Intel_performance_and_energy_bias_hint

Firmware flash

English

:warning: :zap:

You may brick your device - only do this if you confident and know what you are doing.

The steps I followed are these - I apologize in advance for not posting in German - I will provide a translation below.

  • Create a GPT partitioned stick with one partition formatted as FAT32.
    TUXFLASH=/dev/sdy
    sgdisk --clear --new=1:0:0 --typecode=1:0700 --change-name=1:TuxedoFlasher ${TUXFLASH}
    mkfs.vfat -F32 /dev/${TUXFLASH}1
    
  • On the system where you create the disk install edk2-shell package.
  • Create a folder on the stick
    TUXMOUNT="/mnt"
    mount ${TUXFLASH}1 ${TUXMOUNT}
    mkdir -p ${TUXMOUNT}/EFI/BOOT
    
  • Copy the full shell to the usb
    cp /usr/share/edk2-shell/x64/Shell_Full.efi ${TUXMOUNT}/EFI/BOOT/BOOTx64.EFI
    
  • Copy all files from the firmware package and place them in ${TUXMOUNT}/EFI

With secure boot disabled reboot the system - press F7 to access the boot override menu. Also attach power supply - just in case …

Select the stick an boot.

When the shell has loaded enter (you will be using the US keymap so : will be the third key from the right - counting the second row left to the Enter key).

The process on my system is a two-part process with a reboot in-between

First the EC update

FS0:
cd EFI
Update_ME.nsh

Then the firmware update

FS0:
cd EFI
f.nsh

The firmware will likely be reset and you will be greeted with a boot policy violation after the firmware update.

German

Ăśbersetzung von Vivaldi eingebautem Ăśbersetzer

:warning: :zap:
Sie können Ihr Gerät bemalen - tun Sie dies nur, wenn Sie zuversichtlich sind und wissen, was Sie tun.

Die Schritte, die ich unternommen habe, sind diese - ich entschuldige mich im Voraus dafĂĽr, dass ich nicht auf Deutsch gepostet habe - ich werde unten eine Ăśbersetzung vorlegen.

  • Erstellen Sie einen partitionierten GPT-Stick mit einer als FAT32 formatierten Partition.

    TUXFLASH=/dev/sdy
    sudo sgdisk --clear --new=1:0:0 --typecode=1:0700 --change-name=1:TuxedoFlasher ${TUXFLASH}
    sudo mkfs.vfat -F32 /dev/${TUXFLASH}1
    
  • Installieren Sie auf dem System, auf dem Sie das paket edk2-shell erstellen.

  • Erstellen Sie einen Ordner auf dem Stick

    TUXMOUNT="/mnt"
    mount ${TUXFLASH}1 ${TUXMOUNT}
    mkdir -p ${TUXMOUNT}/EFI/BOOT
    
  • Kopieren Sie die vollständige Shell in den USB-Anschluss

    cp /usr/share/edk2-shell/x64/Shell_Full.efi ${TUXMOUNT}/EFI/BOOT/BOOTx64.EFI
    
  • Kopieren Sie alle Dateien aus dem Firmware-Paket und platzieren Sie sie in ${TUXMOUNT}/EFI

Wenn der sichere Start deaktiviert ist, starten Sie das System neu - drücken Sie F7, um auf das Boot-Override-Menü zuzugreifen. Schließen Sie auch die Stromversorgung an - nur für den Fall …

Wählen Sie den Stick einen Boot.

Wenn die Shell geladen wurde, geben Sie ein (Sie verwenden die US-Keymap, sodass : der dritte Schlüssel von rechts ist - und zählen Sie die zweite Zeile links bis zur Taste Enter).

Der Prozess auf meinem System ist ein zweiteiliger Prozess mit einem dazwischen liegenden Neustart

Zuerst das EC-Update

FS0:
cd EFI
Update_ME.nsh

Dann das Firmware-Update

FS0:
cd EFI
f.nsh

Die Firmware wird wahrscheinlich zurĂĽckgesetzt und Sie werden nach dem Firmware-Update mit einem VerstoĂź gegen die Bootrichtlinien begrĂĽĂźt.

Wiki post - add your system

This topic is a wiki post - add you system by using the template below. :point_down:

1 Like

The topic is work in progress.

Please help in keeping this up-to-date

Add your system

  1. You can take the information from a system running Tuxedo OS.
  2. If Tuxedo use a kernel with Tuxedo specific patches - that is tough

Folders and files to check

  • /etc/modules-load.d
  • /etc/modprobe.d
  • /etc/default/grub
  • /etc/default/grub.d
## Tuxedo MODEL

What works OOB
What does not

### Kernel Arguments
Kernel arguments - if any

### Modules load
Modules to load - if any

### Keyboard configuration
Keyboard configuration - if any

### After config
Restart your system

1 Like

Have you taken additional energy-saving measures ?

The Tuxedo-Control-Center now works perfect.

That’s good to hear. Apparently I’m the only distro packager that figured out how to build it from source. :grin:

2 Likes

While that’s good to hear from Manjaro’s perspective, that’s kind of bad from a general point of view @tuxedo.

1 Like

The uefi-dbx plugin can be updated with fwupdmgr

fwupdmgr get-devices
fwupdmgr get-updates
fwupdmgr update