I recently bought a Lenovo S21e notebook. I wanted something light, thin and before all: cheap. The usage of a notebook is restricted on doing stuff on the balcony or garden; “stuff” being puppet code, general server management and light web applications. For that the tiny S21e for a mere 180€ at amazon (note: the price actually increased since I bought it) seemed good enough. Sharp display, full size keyboard and no fans or other moving parts. It has no SSD either; the mass storage is an embedded 64Gb flash card which speed is in between a native spinning hard disk and a SSD. The soldered 2gb ram seemed enough for it’s task and the quad core Celeron; well, it’s a Celeron.
It came with Windows 8 & Bing pre-installed. I always boot into the pre-installed system at least once to test the hardware for defuncts. Later on you can’t tell if it’s a hardware or software problem. A practice that sure helped me…
Of course it was not long after I finished checking the hardware that I started to flash Mint on an USB thumb drive for installation (the S21e has no optical drive, either). After disabling UEFI Secure Boot in the Bios (Sorry, efi), it booted up like a charm. Oddly: The touchpad was not working during installation, nor was the wlan. If I did not check the touchpad beforehand in Windows, I would have guessed an hardware malfunction. I thought that after install a quick System Update and surely everything would be peachy.
After Reboot the wlan was still off-line and the notebook has no rj45 connector, so I simply tethered my android to get into the wlan. From there I could update the system and install the required wlan driver. Touchpad was still dead. I tried everything without any luck:
The only thing I could figure out so far is, that it’s not Mint/Ubuntu related:
Again: We are talking about a touchpad, not some obscure exotic piece of hardware; sure feels like it, tho.
I tried other Linux OS’es: Ubuntu, CentOS, Debian.. all the same. The only time it did work was during the install of Ubuntu 14.04 and it stopped working just after the post-update reboot. So the hunt was on, I suspected the synaptics xorg package. On one of those many re-installations of Ubuntu 14.04 I noticed that the synaptics package was unchanged during cd install to installed system; so that’s ruled out. On my final test I installed Ubuntu 14.04 with working touchpad and only updated the kernel — touchpad dead.
Applying those against a 4.1 Kernel file (linux-4.1.6/drivers/hid/hid-rmi.c) and compiling the kernel makes the touchpad work. For your convenience here are the files:
Extract the kernel sources, cp the hid-rmi.c-patched to linux-4.1.6/drivers/hid/hid-rmi.c (overwriting the existing file) and then compile everything with:
fakeroot make-kpkg -j 32 --initrd --append-to-version=-lenovo-s21e --revision `date +%Y%m%d%H%M` --bzimage kernel_image kernel_headers
You will then have two .deb files, suitable to apt-get installing. If the aspect of compiling your own kernel is not your cup of tea, here are generic kernel images that cover most all hardware and run on 64 bit Linux systems:
- linux-headers-4.1.6-lenovo-s21e_201508261725_amd64.deb [gpg signature]
- linux-image-4.1.6-lenovo-s21e_201508261725_amd64.deb [gpg signature]
Download those and install them with
dpkg -i linux-image-4.1.6-lenovo-s21e_201508261725_amd64.deb linux-headers-4.1.6-lenovo-s21e_201508261725_amd64.deb
Reboot and rejoice!
During the Upgrade from 3.x kernel to a 4.1.6 there are known issues with the broadcom-sta driver. Your on-board Minty Linux Driver tool won’t work anymore. The reason is that with kernel 3.18’ish the inet_dev api changed (among other things) and with that breaking the Broadcom drivers. Pick between wlan or touchpad.
make && make install && depmod -a && modprobe wl
This will instantly make your wlan work again without rebooting. In any case you should create the file /etc/modprobe.d/blacklist-wlan.conf with this content:
blacklist b43 blacklist b43legacy blacklist bcma blacklist ndiswrapper
If you followed those two steps both your trackpad and your wlan should work. My little s21e is now working perfectly. If you run into a build error:
Running the “make && make install” commands as outlined above only resulted in errors.
The error was “error: macro “__DATE__” might prevent reproducible build”. After some Googling, I found that I could disable the error by adding “-Wno-error=date-time ” to the “CFLAGS” line in the MAKEFILE that came with the wlan driver. After doing that, the script worked and my wifi activated without reboot.
–Jim (from comments)
The bad news is that this fix is introduced into the Linux kernel mainline, better known as 4.2 (at the time of writing). Most Distributions are adopting the 3.x line, so it might take a considerable amount of time for this fix to reach your Lenovo through official channels.
Update 2nd November 2015: The required patches are now by default in the 4.3 branch of the kernel; download those sources and compile without using any patches or simply wait for your distribution to provide you with a 4.3 kernel.