arrow-left

All pages
gitbookPowered by GitBook
1 of 1

Loading...

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.

circle-info

None of the Open Surface RT members owns a device like this. Testing was done by @not_important and @lgibson02. We have had to rely on their feedback if something works or not, or which workarounds are required for what. Thanks for the help.

hashtag
Current hardware support

  • Screen & HDMI

  • WiFi

  • Touchscreen

hashtag
Prebuilt binaries

TODO: still need to be checked if they work.

Modules are (our file mirror). Too big for GitBook.

and can also be downloaded from our file mirror.

hashtag
Booting

hashtag
Prerequisites

To get started, make sure test signing is enabled. Visit for instructions on how to do it.

circle-info

You cannot apply Yahallo (Disable secure boot) on this device. It's Surface RT & Surface RT 2 only, as off August 2021.

hashtag
Preparing the files

  • To boot to a desktop Linux environment, you need to put a Linux Distribution onto your SD card. is tested and works.

  • You also need to prepare a FAT32 formatted USB drive. Visit for possible issues and instructions when formatting.

  • Get the Golden Key USB setup from , and extract the given ZIP 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.

hashtag
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.

circle-info

Copying the modules and the configuration file may be an issue on Windows as the root filesystem is likely ext4. Feel free to extract the ZIP onto the root filesystem and create the configuration file once Linux runs. All of these files are not required for booting. For the changes to take affect you may need to reboot.

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.

circle-exclamation

This configuration file may contain bad parameters as the values were taken from two different devices. It is just enough to get WiFi working.

circle-info

Additional steps may be required to get WiFi working. See the message bellow for possible steps.

@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 run cmst

hashtag
Booting Linux

After you inserted the SD card and the USB drive into your device, boot from your USB. Use the instructions .

If you have done everything correctly RPI OS should show up after some time (up to 60 seconds).

Have fun 🙂

circle-info

If you have trouble, feel free to ask for help on our discord server.

hashtag
Compilation guide

circle-info

Compiling the Linux kernel requires Linux installed on your system.

hashtag
Getting the source code

We upload all of our changes to our 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.

hashtag
Configuring the build

We provide a defconfig for this device. Simply run make ARCH=arm lenovo-ideapad-yoga-11_defconfig.

hashtag
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.

hashtag
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.

Touchpad
  • Keyboard (without FN functionality)

  • USB ports

  • Micro SD card

  • Take the zImage file from above, copy it to your USB drive and rename it to boot.efi.

  • Take the tegra30-lenovo-ideapad-yoga-11.dtb from above and copy it to your USB drive.

  • /lib/firmware/brcm/bcm94330wlsdgb.txt
    # 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
    file-download
    8MB
    zImage
    arrow-up-right-from-squareOpen
    zImage
    file-download
    55KB
    tegra30-lenovo-ideapad-yoga-11.dtb
    arrow-up-right-from-squareOpen
    Device tree
    herearrow-up-right
    zImagearrow-up-right
    device treearrow-up-right
    Secure Boot
    RPI OS
    FAT32 isn't FAT32
    here
    here
    OpenSurfaceRT/grate-linuxarrow-up-right
    Prebuilt binaries