Skip to content

Instantly share code, notes, and snippets.

@0xD34D
Created April 18, 2025 05:23
Show Gist options
  • Save 0xD34D/91584c1d17d6ae50eb52c51b543cfdb5 to your computer and use it in GitHub Desktop.
Save 0xD34D/91584c1d17d6ae50eb52c51b543cfdb5 to your computer and use it in GitHub Desktop.

Guide: Installing Fedora 42 on Lenovo Yoga Book 9i (13IRU8)

I'll create a comprehensive guide for installing Fedora 42 on your Lenovo Yoga Book 9i (13IRU8), including detailed instructions to address all known issues. This guide is formatted in Markdown, which you can easily share with others.

Table of Contents

  1. Preparation
  2. Creating Installation Media
  3. UEFI Configuration
  4. Installation Process
  5. Post-Installation Configuration
  6. Dual-Screen Optimization
  7. Troubleshooting Common Issues
  8. Additional Resources

1. Preparation

System Requirements

  • Lenovo Yoga Book 9i, model 13IRU8
  • 8GB+ USB-C flash drive or USB-A flash drive with USB-C adapter
  • Wired or reliable wireless internet connection
  • External keyboard and mouse (recommended for installation)

Download Required Files

  1. Download Fedora 42 Workstation ISO from the official Fedora website
  2. Download the latest Lenovo UEFI firmware update (KXCN32WW or newer) from Lenovo Support

2. Creating Installation Media

Using Fedora Media Writer (Recommended)

  1. Download Fedora Media Writer
  2. Launch the application
  3. Select "Custom image" and browse to your downloaded Fedora 42 ISO
  4. Insert your USB drive and select it
  5. Click "Write to disk"

Alternative: Using Command Line (Linux/macOS)

# Replace /path/to/fedora.iso with the path to your ISO file
# Replace /dev/sdX with your USB drive identifier (be careful!)
sudo dd if=/path/to/fedora.iso of=/dev/sdX bs=8M status=progress

Alternative: Using Balena Etcher (Cross-platform)

  1. Download Balena Etcher
  2. Launch the application
  3. Select the Fedora 42 ISO
  4. Select your USB drive
  5. Click "Flash"

3. UEFI Configuration

Access UEFI Setup

  1. Power off your Yoga Book 9i completely
  2. Turn on the device and immediately press F2 repeatedly until the UEFI setup appears

Update UEFI Firmware

  1. If you haven't already, update to the latest UEFI firmware (KXCN32WW or newer)
  2. Follow Lenovo's instructions for firmware updates

Configure UEFI Settings

  1. Navigate to the "Security" tab
  2. Set "Secure Boot" to "Disabled"
  3. Navigate to the "Boot" tab
  4. Ensure "Boot Mode" is set to "UEFI"
  5. Set "Fast Boot" to "Disabled"
  6. Save changes and exit (F10)

4. Installation Process

Boot from USB

  1. Connect your USB installation media to a USB-C port
  2. Power on the device and immediately press F12 repeatedly to access the boot menu
  3. Select your USB drive from the boot menu

Boot Parameters

When the GRUB boot menu appears:

  1. Select "Install Fedora" but DO NOT press Enter
  2. Press 'e' to edit the boot parameters
  3. Find the line that begins with "linux" or "linuxefi"
  4. Remove the word "quiet" from this line
  5. Add the following parameters at the end of the line: acpi=noirq reboot=acpi
  6. Press Ctrl+X or F10 to boot with these parameters

Installation Wizard

  1. Select your language and click "Continue"

  2. On the Installation Summary screen:

    • Keyboard: Add your keyboard layout
    • Time & Date: Set your timezone
    • Installation Destination: Select your SSD
    • Network & Hostname: Configure your network
  3. For disk partitioning, consider these options:

    • Automatic: Let Fedora handle partitioning (simplest)
    • Custom: If you want to configure specific partitions or dual-boot with Windows
  4. Click "Begin Installation"

  5. Create a user account (check "Make this user administrator")

  6. Wait for installation to complete and click "Finish installation"

  7. Power off the system after installation (don't reboot yet)

5. Post-Installation Configuration

First Boot Setup

  1. Power on your Yoga Book 9i
  2. At the GRUB menu, press 'e' to edit the boot parameters
  3. Remove "quiet" and add acpi=noirq reboot=acpi
  4. Press Ctrl+X or F10 to boot
  5. Complete the initial setup process

Making Boot Parameters Permanent

# Edit GRUB configuration
sudo nano /etc/default/grub

# Modify this line to remove 'quiet' and add your parameters
GRUB_CMDLINE_LINUX="acpi=noirq reboot=acpi rhgb"

# Save and exit (Ctrl+O, Enter, Ctrl+X)

# Rebuild GRUB configuration
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Display and Touch Configuration

Install Required Packages

sudo dnf update -y
sudo dnf install -y libinput-utils evtest

Create Udev Rules for Display Rotation and Touch Input

  1. Create a file for display brightness synchronization:
sudo nano /etc/udev/rules.d/99-yoga-book-9i-display.rules
  1. Add the following content:
# Sync brightness between displays
ACTION=="change", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", \
  RUN+="/bin/sh -c 'cat /sys/class/backlight/intel_backlight/brightness > /sys/class/backlight/intel_backlight1/brightness'"
  1. Create a file for touch input configuration:
sudo nano /etc/udev/rules.d/99-yoga-book-9i-touch.rules
  1. Add the following content:
# Rotate top display touch input (adjust device paths if necessary)
ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="ELAN9008:00 04F3:2F85", \
  ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1 0 0 1"
  1. Reload udev rules:
sudo udevadm control --reload-rules
sudo udevadm trigger

Script to Automate Display Configuration

Create a script for different display modes:

sudo nano /usr/local/bin/yoga9i-display-mode.sh

Add this content:

#!/bin/bash

case "$1" in
  laptop)
    # Normal laptop mode (both screens in landscape)
    xrandr --output eDP-1 --primary --auto --rotate normal
    xrandr --output eDP-2 --auto --rotate normal --below eDP-1
    ;;
  tablet)
    # Tablet mode (both screens rotated)
    xrandr --output eDP-1 --primary --auto --rotate right
    xrandr --output eDP-2 --auto --rotate right --right-of eDP-1
    ;;
  tent)
    # Tent mode (screens facing outward)
    xrandr --output eDP-1 --primary --auto --rotate inverted
    xrandr --output eDP-2 --auto --rotate normal --below eDP-1
    ;;
  single)
    # Single screen mode (bottom screen off)
    xrandr --output eDP-1 --primary --auto --rotate normal
    xrandr --output eDP-2 --off
    ;;
  *)
    echo "Usage: $0 {laptop|tablet|tent|single}"
    exit 1
    ;;
esac

Make it executable:

sudo chmod +x /usr/local/bin/yoga9i-display-mode.sh

Audio Setup

Install Required Audio Firmware

sudo dnf install -y sof-firmware alsa-utils

Configure Sound Module

sudo nano /etc/modprobe.d/snd.conf

Add these lines:

options snd_sof_hda_common hda_model=alc287-yoga9-bass-spk-pin
options snd slots=snd-hda-intel

Install EasyEffects for Audio Enhancement

sudo dnf install -y easyeffects

Create Speaker Configuration Service

sudo nano /etc/systemd/system/yoga9i-speakers.service

Add these contents:

[Unit]
Description=Configure Yoga Book 9i speakers
After=sound.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'amixer -c 0 sset "Speaker" 100% unmute; amixer -c 0 sset "Bass Speaker" 100% unmute'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Enable the service:

sudo systemctl daemon-reload
sudo systemctl enable --now yoga9i-speakers.service

Power Management

Create Service to Fix Shutdown Issues

sudo nano /etc/systemd/system/yoga9i-power-fix.service

Add these contents:

[Unit]
Description=Fix power management for Yoga Book 9i
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c "echo mem > /sys/power/state || true"

[Install]
WantedBy=multi-user.target sleep.target
Also=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

Enable the service:

sudo systemctl daemon-reload
sudo systemctl enable yoga9i-power-fix.service

Optimize Battery Life

Install TLP for battery optimization:

sudo dnf install -y tlp tlp-rdw
sudo systemctl enable --now tlp.service

Configure TLP:

sudo nano /etc/tlp.conf

Add or uncomment these lines:

CPU_SCALING_GOVERNOR_ON_AC=performance
CPU_SCALING_GOVERNOR_ON_BAT=powersave

CPU_ENERGY_PERF_POLICY_ON_AC=performance
CPU_ENERGY_PERF_POLICY_ON_BAT=power

PLATFORM_PROFILE_ON_AC=performance
PLATFORM_PROFILE_ON_BAT=low-power

Wi-Fi and Bluetooth

Ensure Wi-Fi Firmware is Installed

sudo dnf install -y iwl7260-firmware

Fix Bluetooth Keyboard Connection

For persistent pairing with the Bluetooth keyboard:

  1. Create a directory for Bluetooth configuration:
sudo mkdir -p /var/lib/bluetooth
  1. If dual-booting with Windows, you can extract the Windows Bluetooth keys:
sudo dnf install -y chntpw
  1. Mount your Windows partition and extract the Bluetooth keys (assumes Windows is on /dev/nvme0n1p3):
sudo mkdir -p /mnt/windows
sudo mount /dev/nvme0n1p3 /mnt/windows
cd /tmp
sudo cp -r /mnt/windows/Windows/System32/config/SYSTEM ./
sudo chntpw -e SYSTEM
  1. In the chntpw prompt, navigate to the Bluetooth keys:
cd ControlSet001\Services\BTHPORT\Parameters\Keys
ls
  1. Note the adapter MAC address and device MAC address, then copy these keys to your Linux Bluetooth configuration

Thunderbolt/USB-C Support

Install Thunderbolt Support Packages

sudo dnf install -y bolt thunderbolt-tools
sudo systemctl enable --now bolt.service

Create Udev Rule for USB3 Device Recognition

sudo nano /etc/udev/rules.d/99-yoga9i-usb.rules

Add these contents:

# Force USB3 controller reset on boot
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="8086", ATTR{idProduct}=="7023", \
  RUN+="/bin/sh -c 'echo 0 > /sys$DEVPATH/authorized; echo 1 > /sys$DEVPATH/authorized'"

IR Camera for Face Recognition

Install Howdy for Face Recognition

# Add Copr repository
sudo dnf copr enable principis/howdy-beta

# Install Howdy
sudo dnf install -y howdy v4l2loopback v4l-utils

# Configure Howdy
sudo howdy config

Edit the configuration:

sudo nano /etc/howdy/config.ini

Make sure these settings are correct:

# Change device path if needed - find the right camera with v4l2-ctl --list-devices
device_path = /dev/video2
# Set to true for improved security
ignore_match_threshold = true
# Reduce this value if recognition is too strict
certainty = 3.5

Add your face:

sudo howdy add

Enable IR emitter:

# Install necessary tools
sudo dnf install -y git cmake gcc-c++ libusb1-devel

# Clone and build linux-enable-ir-emitter
git clone https://github.com/EmixamPP/linux-enable-ir-emitter.git
cd linux-enable-ir-emitter
mkdir build && cd build
cmake ..
make
sudo make install

# Start IR emitter
sudo systemctl enable --now enable-ir-emitter.service

6. Dual-Screen Optimization

GNOME Extensions for Dual-Screen Management

Install these helpful GNOME extensions:

  1. Open Firefox and go to https://extensions.gnome.org/
  2. Install the GNOME Shell integration browser extension
  3. Install these extensions:
    • "Tiling Assistant" for window management
    • "Just Perfection" for UI customization
    • "Clipboard History" for enhanced clipboard

Create Custom GNOME Scripts for Screen Modes

  1. Create a directory for scripts:
mkdir -p ~/.local/share/yoga9i-scripts
  1. Create a script for dual-screen configuration:
nano ~/.local/share/yoga9i-scripts/dualscreen.sh

Add this content:

#!/bin/bash

# Get current monitor information
PRIMARY=$(gnome-randr query | grep -B 2 "primary: yes" | grep "name:" | awk '{print $2}')
SECONDARY=$(gnome-randr query | grep -B 2 "primary: no" | grep "name:" | awk '{print $2}')

# Configure monitor positions
gnome-randr modify --output $PRIMARY --mode 2880x1800 --rate 60 --pos 0x0
gnome-randr modify --output $SECONDARY --mode 2880x1800 --rate 60 --pos 0x1800

# Apply changes
gnome-randr apply

# Notify user
notify-send "Dual Screen Mode" "Configured screens in stacked mode"
  1. Make it executable:
chmod +x ~/.local/share/yoga9i-scripts/dualscreen.sh
  1. Create a GNOME keyboard shortcut:
    • Go to Settings > Keyboard > Keyboard Shortcuts > View and Customize Shortcuts
    • Add a custom shortcut with the command: ~/.local/share/yoga9i-scripts/dualscreen.sh
    • Assign a keyboard shortcut like Super+Shift+D

7. Troubleshooting Common Issues

Issue: Device Won't Boot from USB

Solution:

  1. Try different USB ports
  2. Create installation media using a different tool
  3. Use a USB-C flash drive instead of USB-A adapter

Issue: Screen Brightness Controls Don't Work

Solution:

# Fix brightness control permissions
sudo chmod a+w /sys/class/backlight/intel_backlight/brightness
sudo chmod a+w /sys/class/backlight/intel_backlight1/brightness

Issue: Bottom Screen Touch Not Working

Solution:

  1. Find the input device ID:
sudo libinput list-devices | grep -A 10 "ELAN"
  1. Test the touch input:
sudo evtest
  1. Create a specific calibration file:
sudo nano /etc/udev/rules.d/99-yoga9i-bottom-touch.rules

Add content based on your device ID:

ACTION=="add|change", KERNEL=="event*", ATTRS{name}=="ELAN9008:00 04F3:2F85 Touchscreen", \
  ENV{LIBINPUT_CALIBRATION_MATRIX}="1 0 0 0 1 0 0 0 1"

Issue: Audio Not Working

Solution:

  1. Reinstall audio packages:
sudo dnf reinstall -y sof-firmware alsa-utils pulseaudio
  1. Restart PulseAudio:
systemctl --user restart pulseaudio
  1. Check if audio devices are detected:
aplay -l

Issue: Power Management Problems (Sleep/Hibernate)

Solution:

  1. Try different ACPI parameters:
sudo nano /etc/default/grub

Try these alternative parameters:

GRUB_CMDLINE_LINUX="acpi=force acpi_osi=Linux acpi_backlight=vendor"
  1. Rebuild GRUB:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Issue: Bluetooth Keyboard Disconnects

Solution:

  1. Install Bluetooth utilities:
sudo dnf install -y bluez-tools
  1. Create a script to reconnect the keyboard:
nano ~/.local/bin/reconnect-keyboard.sh

Add this content (replace MAC address with your keyboard's):

#!/bin/bash
bt-device -c XX:XX:XX:XX:XX:XX

Make executable:

chmod +x ~/.local/bin/reconnect-keyboard.sh

8. Additional Resources

Documentation and Community Support

GitHub Repositories with Helpful Scripts

Keeping Your System Updated

Regular updates are important for improving hardware support:

# Update your system weekly
sudo dnf update -y

# Update firmware
sudo fwupdmgr refresh
sudo fwupdmgr get-updates
sudo fwupdmgr update

This guide should help you successfully install and configure Fedora 42 on your Lenovo Yoga Book 9i (13IRU8). Remember that Linux support for this unique device is still evolving, so some trial and error may be necessary. Don't hesitate to consult the community resources if you encounter issues not covered in this guide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment