I recently got my hands on the newest version (2022) of the Lenovo Yoga 6 with an AMD Ryzen 5700 series processor, 16GB or RAM and an m.2 NVMe 512GB SSD. I really like the machine and had done a lot of research prior to picking it up – including the compatibility of Linux with the hardware. I was aware that I would be in for some configuration and noodling with things, but that was a risk I was willing to accept.
After getting the machine and promptly disabling secure boot, flashing a USB with a fresh copy of Ubuntu and wiping out Windows 11 before even setting it up and trying it, I got to work with the task of getting the Wireless working.
The unit comes with a RealTek wireless/Bluetooth chip set, which if you are a Linux user are likely familiar with the challenges with RealTek. Enough with the formalities, here is what I did to get the devices working.
Realtek RTL8111E Wireless/Bluetooth drivers
First thing is first, I needed to know the the details of the chipset that is installed in the device.
# Determine chipset information jason@localhost:~$ lspci -v 03:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device b852 DeviceName: Realtek RTL8111E Ethernet LOM Subsystem: Lenovo Device 4853 Flags: bus master, fast devsel, latency 0, IRQ 92, IOMMU group 12 I/O ports at 2000 [size=256] Memory at d0500000 (64-bit, non-prefetchable) [size=1M]
After a lot of searching, I came across a GitHub repository that had a wireless driver and also found a number of related post to the RTL8111E regarding getting it working in Linux, so that is the path that I took below (p.s. I had a USB Ethernet dongle that I used to connect to the Internet to perform this work).
# Install dependencies jason@localhost:~$ sudo apt install build essentials linux-headers-generic gcc bc # Download the driver from GitHub jason@localhost:~$ git clone https://github.com/HRex39/rtl8852be.git # Install the driver jason@localhost:~$ cd rtl8852be jason@localhost:~$ make && sudo make install jason@localhost:~$ sudo modprobe 8852be jason@localhost:~$ sudo reboot
After rebooting the machine, I was now able to see the wireless controller as well as connect to my local wireless network. Success! As I continued to explore the Yoga, I noticed that I was not able to see any Bluetooth devices as being available to pair. Back to google I found another driver specifically for the Bluetooth adapter (also RealTek). Below is how I got that working.
# Download the driver from GitHub git clone https://github.com/HRex39/rtl8852be_bt.git # Install the driver jason@localhost:~$ cd rtl8852be_bt jason@localhost:~$ make && sudo make install jason@localhost:~$ sudo modprobe 8852be_bt jason@localhost:~$ sudo reboot
After performing the above driver installation and rebooting, I was able to see all of the Bluetooth devices nearby. Awesome! I connected my Pixel Buds to the laptop and tested out my audio playback over at https://rekt.network and was satisfied to hear my favorite CyberPunk channel.
Ironically, I posted an article recently titled ‘Linux | Is it right for me and how to install it‘ that made mention of the advancements in Linux as a viable alternative to Windows/Mac. It mentions ‘compatibility’ as one of the items that has come a long way, and while it has, there are still instances where additional configuration is required for things to work. In most cases, installing Linux will get you a powerful and fully functional system on the first go with no need to find and install additional drivers. Sometimes however, this is not the case and it is necessary to do a little tweaking as outlined in this post.