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.
- Preparation
- Creating Installation Media
- UEFI Configuration
- Installation Process
- Post-Installation Configuration
- Dual-Screen Optimization
- Troubleshooting Common Issues
- Additional Resources
- 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 Fedora 42 Workstation ISO from the official Fedora website
- Download the latest Lenovo UEFI firmware update (KXCN32WW or newer) from Lenovo Support
- Download Fedora Media Writer
- Launch the application
- Select "Custom image" and browse to your downloaded Fedora 42 ISO
- Insert your USB drive and select it
- Click "Write to disk"
# 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
- Download Balena Etcher
- Launch the application
- Select the Fedora 42 ISO
- Select your USB drive
- Click "Flash"
- Power off your Yoga Book 9i completely
- Turn on the device and immediately press F2 repeatedly until the UEFI setup appears
- If you haven't already, update to the latest UEFI firmware (KXCN32WW or newer)
- Follow Lenovo's instructions for firmware updates
- Navigate to the "Security" tab
- Set "Secure Boot" to "Disabled"
- Navigate to the "Boot" tab
- Ensure "Boot Mode" is set to "UEFI"
- Set "Fast Boot" to "Disabled"
- Save changes and exit (F10)
- Connect your USB installation media to a USB-C port
- Power on the device and immediately press F12 repeatedly to access the boot menu
- Select your USB drive from the boot menu
When the GRUB boot menu appears:
- Select "Install Fedora" but DO NOT press Enter
- Press 'e' to edit the boot parameters
- Find the line that begins with "linux" or "linuxefi"
- Remove the word "quiet" from this line
- Add the following parameters at the end of the line:
acpi=noirq reboot=acpi
- Press Ctrl+X or F10 to boot with these parameters
-
Select your language and click "Continue"
-
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
-
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
-
Click "Begin Installation"
-
Create a user account (check "Make this user administrator")
-
Wait for installation to complete and click "Finish installation"
-
Power off the system after installation (don't reboot yet)
- Power on your Yoga Book 9i
- At the GRUB menu, press 'e' to edit the boot parameters
- Remove "quiet" and add
acpi=noirq reboot=acpi
- Press Ctrl+X or F10 to boot
- Complete the initial setup process
# 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
sudo dnf update -y
sudo dnf install -y libinput-utils evtest
- Create a file for display brightness synchronization:
sudo nano /etc/udev/rules.d/99-yoga-book-9i-display.rules
- 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'"
- Create a file for touch input configuration:
sudo nano /etc/udev/rules.d/99-yoga-book-9i-touch.rules
- 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"
- Reload udev rules:
sudo udevadm control --reload-rules
sudo udevadm trigger
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
sudo dnf install -y sof-firmware alsa-utils
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
sudo dnf install -y easyeffects
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
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
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
sudo dnf install -y iwl7260-firmware
For persistent pairing with the Bluetooth keyboard:
- Create a directory for Bluetooth configuration:
sudo mkdir -p /var/lib/bluetooth
- If dual-booting with Windows, you can extract the Windows Bluetooth keys:
sudo dnf install -y chntpw
- 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
- In the chntpw prompt, navigate to the Bluetooth keys:
cd ControlSet001\Services\BTHPORT\Parameters\Keys
ls
- Note the adapter MAC address and device MAC address, then copy these keys to your Linux Bluetooth configuration
sudo dnf install -y bolt thunderbolt-tools
sudo systemctl enable --now bolt.service
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'"
# 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
Install these helpful GNOME extensions:
- Open Firefox and go to https://extensions.gnome.org/
- Install the GNOME Shell integration browser extension
- Install these extensions:
- "Tiling Assistant" for window management
- "Just Perfection" for UI customization
- "Clipboard History" for enhanced clipboard
- Create a directory for scripts:
mkdir -p ~/.local/share/yoga9i-scripts
- 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"
- Make it executable:
chmod +x ~/.local/share/yoga9i-scripts/dualscreen.sh
- 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
Solution:
- Try different USB ports
- Create installation media using a different tool
- Use a USB-C flash drive instead of USB-A adapter
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
Solution:
- Find the input device ID:
sudo libinput list-devices | grep -A 10 "ELAN"
- Test the touch input:
sudo evtest
- 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"
Solution:
- Reinstall audio packages:
sudo dnf reinstall -y sof-firmware alsa-utils pulseaudio
- Restart PulseAudio:
systemctl --user restart pulseaudio
- Check if audio devices are detected:
aplay -l
Solution:
- Try different ACPI parameters:
sudo nano /etc/default/grub
Try these alternative parameters:
GRUB_CMDLINE_LINUX="acpi=force acpi_osi=Linux acpi_backlight=vendor"
- Rebuild GRUB:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Solution:
- Install Bluetooth utilities:
sudo dnf install -y bluez-tools
- 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
- Fedora Documentation
- Lenovo Yoga Book 9i Linux Experience Forum Thread
- Lenovo Linux Community Forums
- Yoga Pro 9i Linux Guide (different model but relevant fixes)
- Linux Yoga 9 Kernel Patches
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.