Mctrain's Blog

What I learned in IT, as well as thought about life

Install Kali Linux in Lenovo Yoga 3 Pro

| Comments

Recently the lab granted one laptop for each PhD candidate, since I already had a Macbook Air, I chose the Lenovo Yoga 3 Pro Ultrabook. Several days ago, it showed up:

lenovo yoga 3 pro

This blog illustrates how I install Kali Linux in Yoga 3 Pro, and enable its otherwise disabled wifi.

If you don’t know what Kali Linux is, please find it here.

build Kali Live USB

I built it in Windows, first downloaded official Kali image from here. Actually I downloaded it several months ago, when the version was 1.0.6, with 3.12 kernel. What’s more, the latest 1.0.9 version image has some problems to be installed in my Yoga 3 pro ultrabook, so that I chose the old image.

After downloading the image, I used the rufus to install it to the USB, as shown in the figure:


It is quite easy to build the USB installer, which is a matter of one click.

Install Kali Linux

Actually the Live USB can boot up alone without installing, as the “live” suggests, and we can even add persistence to the live USB to make its storage persistent.

But the aim of this blog is to install Kali into the disk storage. Before installing OS, we need to enter BIOS to enable legacy mode: it comes with a small button on the side of the power button to enable the BIOS edit and boot sequence. When we press it, the computer powers up with the config menu. Then we have to edit the BOOT tab to modify UEFI mode to legacy mode:


After that, you should be greeted with the Kali Boot screen. Choose either graphical or text-mode install. The installation process is quite similar with normal debian installation process, I just omit it here.

It is noted that if you want to reboot into your Windows system, you have to enter BIOS and modify the BOOT to UEFI mode again. I think there must be some ways to solve such inconvenience. (Actually I’ve found a blog telling how to make Windows 8.1 and Kali Linux dual boot on UEFI mode machines, and tried it successfully).

Recompile the kernel

In order to build some new kernel modules, I need to recompile the kernel and have the kernel source. However I found that the official Kali latest 3.14.5 kernel cannot work in my Yoga 3, I cannot figure out why, so I just used another 3.13.7 kernel version. And added following apt source-list to the /etc/apt/sources.list:

deb testing main contrib non-free
deb-src testing main contrib non-free

Handle WiFi problem

The installed Kali Linux cannot recognize the WiFi card due to driver absence. It is not hard to handle this problem.

At first I need to know which network controller it uses:

$ lspci -vvnn | grep -A 20 Network

newtork controller

It shows that the network controller is Broadcom Corporation Device [14e4:43b1], and I found here that both b43 and b43legacy drivers do not support devices with 14e4:43b1 PCI-ID. But I searched in the web that wl driver works. So we can install broadcom-sta-dkms:

$ aptitude install broadcom-sta-dkms

Then we can see that wl driver is inserted into the module list:

$ lsmod | grep wl
wl        6294918 0
cfg80211  411101  1 wl

With the wl driver, the wireless option showed up, but with a “wireless is disabled” tip. Using rfkill command I find:

$ rfkill list all
0: ideapad_wlan: Wireless LAN
    Soft blocked: yes
    Hard blocked: yes
1: ideapad_bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: yes
2: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no
3: phy1: Wireless LAN
    Soft blocked: yes
    Hard blocked: yes

even if I use rfkill unblock all command, I found the option for ideapad_wlan hard blocked is still yes.

To solve such problem, you can refer to here, or use my simple and rude approach:

$ rmmod ideapad_laptop

and add blacklist ideapad_laptop to the /etc/modprobe.d/blacklist.conf file to disable its load in boot time.

After that I can finally use wifi.

However till now, the touchpad does not work, and I can only use hardware mouse. Since I seldom use mouse in linux, so it is not a big problem for me.