Linux
Boot Linux on your Lenovo Ideapad Yoga 11.
Progress has been made on the Lenovo Ideapad Yoga 11. It is now possible to boot Linux on the device.
Current hardware support
Screen & HDMI
WiFi
Touchscreen
Touchpad
Keyboard (without FN functionality)
USB ports
Micro SD card
Prebuilt binaries
TODO: still need to be checked if they work.
Modules are here (our file mirror). Too big for GitBook.
zImage and device tree can also be downloaded from our file mirror.
Booting
Prerequisites
To get started, make sure test signing is enabled. Visit Secure Boot for instructions on how to do it.
Preparing the files
To boot to a desktop Linux environment, you need to put a Linux Distribution onto your SD card. RPI OS is tested and works.
You also need to prepare a FAT32 formatted USB drive. Visit FAT32 isn't FAT32 for possible issues and instructions when formatting.
Get the Golden Key USB setup from here, and extract the given ZIP to your USB drive.
Take the
zImage
file from Prebuilt binaries above, copy it to your USB drive and rename it toboot.efi
.Take the
tegra30-lenovo-ideapad-yoga-11.dtb
from above and copy it to your USB drive.
As disabling secure boot isn't supported on this device, the Golden Key exploit needs to be used to enable booting a Linux kernel. The Linux kernel's EFI Stub has a security check built-in that would normally prevent us from loading a custom device tree. This security check has been patched. This means we require to use the Golden Key USB setup.
Preparing files for WiFi / Installing modules
The WiFi driver requires being a module, as the built-in version would access a configuration file on the root filesystem, before the root filesystem is available. There are many other modules which is rather unimportant.
To install the modules, extract the modules ZIP file from above onto your root filesystem. The lib
folder of the ZIP and the root filesystem should merge.
To get WiFi working you need to put the already mentioned configuration file onto your root filesystem too. The file path is integrated into the filename of the code block at the top.
This configuration file may contain bad parameters as the values were taken from two different devices. It is just enough to get WiFi working.
# bcm94330wlsdgb.txt
manfid=0x2d0
prodid=0x0552
vendid=0x14e4
devid=0x4360
boardtype=0x0552
boardrev=0x11
# this design has 2.4GHz SP3T switch
boardflags=0x00080200
nocrc=1
xtalfreq=37400
boardnum=22
macaddr=00:90:4c:c5:12:38
ag0=255
aa2g=1
ccode=ALL
pa0b0=0x14d0
pa0b1=0xfd98
pa0b2=0xff78
rssismf2g=0xa
rssismc2g=0x3
rssisav2g=0x7
maxp2ga0=0x50
# 2.4G Tx Power offsets
cck2gpo=0x5555
ofdm2gpo=0x77777777
mcs2gpo0=0xBBBB
mcs2gpo1=0xBBBB
sromrev=3
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
cckPwrOffset=5
ofdm2gpo=0x66666666
mcs2gpo0=0x6666
mcs2gpo1=0x6666
swctrlmap_2g=0x04040404,0x02020202,0x02020404,0x10202,0x1ff
swctrlmap_5g=0x00100010,0x00280020,0x00200010,0x14202,0x2f8
rfreg033=0x19
rfreg033_cck=0x1f
dacrate2g=160
txalpfbyp2g=1
bphyscale=17
cckPwrIdxCorr=-15
pacalidx2g=45
pacalath2g=180
pacalidx2g1=55
muxenab=0x10
rssi_offset=10
txgaintbl=1
@lgibson02 please test if it's working for you by placing the following file (config file above) in
/lib/firmware/brcm
You can also use connection manager with the frontend same as in the screenshot if you want:sudo apt-get install connman
sudo apt-get install cmst
And then just runcmst

Booting Linux
After you inserted the SD card and the USB drive into your device, boot from your USB. Use the instructions here.
If you have done everything correctly RPI OS should show up after some time (up to 60 seconds).
Have fun 🙂
Compilation guide
Getting the source code
We upload all of our changes to our OpenSurfaceRT/grate-linux repository. Use the lenovo-ideapad-yoga-11
branch.
To download run git clone https://github.com/Open-Surface-RT/grate-linux.git -b lenovo-ideapad-yoga-11
.
Configuring the build
We provide a defconfig for this device. Simply run make ARCH=arm lenovo-ideapad-yoga-11_defconfig
.
Compile the kernel
Compiling is as simple as running make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j<value>
where value is the number of CPU cores you have available. Depending on your processors speed, the build takes from a handful of minutes to 10 minutes or longer.
If the build complains that arm-linux-gnueabihf-gcc
was not found, install the compiler. For Ubuntu the install command looks like this: gcc-arm-linux-gnueabihf
.
Output
The output kernel image (zImage
) is arch/arm/boot/zImage
.
The output device tree is arch/arm/boot/dts/tegra30-lenovo-ideapad-yoga11.dtb
.
Just put the zImage
onto your USB drive and rename it to boot.efi
. The device tree needs to be copied over too. No need to rename it.
To get your modules run make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j6 INSTALL_MOD_PATH=module_out/ modules_install
. The modules are put into the module_out/ folder with the correct directory structure. Just copy over the lib folder to your root filesystem. If you chose to compile the kernel yourself you need to use these modules.
Last updated
Was this helpful?