This post is a work in progress on how to install GNU/Linux on a Lenovo Ideapad 100s. You'd think this is a trivial thing in 2018 but given the particular hardware on this device, this is actually quite painful. I'm writing this post-activity so there may be some details I don't remember how they were solved. In any case, hope this helps.
This laptop uses a 64bit CPU but only boots with a 32bit UEFI boot. This is an awkward setup as usually 32bit computers boot through a BIOS and 64bit ones use a 64bit UEFI. In any case a few devices have this setup. What this means in practice is that if you burn an Ubuntu iso to an USB stick and try to boot from it, it won't be recognized. The 32bit image of Ubuntu ships with a BIOS boot and the 64bit ships only with a 64bit UEFI so neither of them are an option.
The easy way of doing this is to install Linuxium. This is a very interesting project. A tool was developed that allows you to rebuild an original iso with support for mini-pcs and other awkward hardware like this one.
I didn't go that route as I struggled to run the isorespin
tool in a linux virtual machine on the Ideapad itself. It unpacks a large iso, changes it and rebuilds it. This either took too long or failed with lack of storage space.
So I searched for a different Linux distro.. The multiarch Debian distribution ships with both 32 and 64 bit UEFI -> Here. So I figured installing this would be easy. How hard can it be right? aha. The only multiarch currently available is the netinst variant, which means it will try to download all packages during the setup. This is what I burned to the usb stick.
As far as I know there are 2 variants of the Ideapad 100s, one with 32GB the other with 64. I have the 32GB and windows uses about 8 empty so there isn't a lot of space to play. Before installing anything we need to resize the windows partitions. On windows fire up Disk Manager
. In the tool you will see 3 partitions, the EFI system partition (a few MBs), the windows recovery one (About 1GB) and the Windows one. I've resized windows to be 22GB thus leaving about 10 for Linux.
Plug the USB stick and press Fn
F12
. This will bring up the boot menu. In there you have to allow booting from an USB stick. I can't remember how this is done but a quick search on google will help you.
Installation is straightforward but there's a problem :-) The Linux kernel shipped with it (version 4.9) does not currently support the wifi hardware of this laptop. Support for it was introduced in 4.12. So you'll have to do the setup without network. This will only setup a basic system with a terminal and not much else. When the setup asks you which wifi hardware you're using, just skip it. It won't be listed as one the known devices.
Right, to have wifi we need to upgrade the kernel. On another computer Download the 4.14 kernel or whatever is latest when you're reading this. Transfer the kernel file to the computer with an USB stick.
Install the kernel. As root run:
dpkg -i linux-doc-4.14_4.14.13-1-bpo9+1_all.deb
This will reconfigure your grub boot options as well. Reboot the system and confirm you're using the newer kernel with
uname -a
You should see something like the following:
Linux ideapad 4.14.0-0.bpo.3-amd64 #1 SMP Debian 4.14.13-1~bpo9+1 (2018-01-14) x86_64 GNU/Linux
So now we need to do our first connection so we can download something useful.
On the same packages website you downloaded the kernel, we need to grab a few more packages and their dependencies.
Install package wireless-tools
and libiw30
. You will see loads of dependencies. I remember having download about 10 files and installing them all.
You'll also need the Realtek firmware. Download it from https://packages.debian.org/stretch-backports/all/firmware-realtek/download
And install it with dpkg
.
Once that is done you should have the wpa_supplicant
command line tool. Use your favourite editor and, as root, edit /etc/wpa_supplicant.conf
In there add a section that looks like the following:
network={ ssid="Name Of Wifi Network" psk="ThePassword" }
Load the kernel driver module and bring the connection up with:
modprobe rtl8723ae
modprobe rtl8723-common
ip link set wlan0 up
wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -Dwext
You should see something saying BLA_BLA_CONNECTED
:-)
On another root terminal do:
dhclient wlan0
You should now have internet!
For some reason my sources file was broken. I added the following entries to the /etc/apt/sources.list
file:
deb http://deb.debian.org/debian stretch main deb-src http://deb.debian.org/debian stretch main deb http://deb.debian.org/debian stretch-updates main deb-src http://deb.debian.org/debian stretch-updates main
Use apt
or apt-get
to install your favorite packages.
This is completely a matter of preference but I installed the gnome desktop environment and works fairly well.
apt-install gnome
Some things are currently not working. If you have a solution please leave a comment below :)
Issues: - Sound - Doesn't work. Didn't even try to solve it to be honest. - Battery sensor - Doesn't know which level the battery is at.
Untested: - External monitor through the HDMI interface
Working - Desktop environment - Brightness control - Shutdown and boot - Graphics performance seems comparable to the windows in the same laptop. - I'm typing this on this laptop, so pretty stable.
https://unix.stackexchange.com/questions/115898/how-do-i-upgrade-the-debian-wheezy-kernel-offline
https://wiki.debian.org/WiFi/HowToUse#Command_Line
https://unix.stackexchange.com/questions/92799/connecting-to-wifi-network-through-command-line
http://www.jfwhome.com/2014/03/07/perfect-ubuntu-or-other-linux-on-the-asus-transformer-book-t100/
https://plus.google.com/communities/117853703024346186936
http://linuxiumcomau.blogspot.com/
http://linuxiumcomau.blogspot.com/2017/06/customizing-ubuntu-isos-documentation.html
https://askubuntu.com/questions/392719/32-bit-uefi-boot-support