Notes for Linux Install Attempt on Lenovo Y510p


This post is in the category: Tips

Random small break-fix or enlightening ideas


I recently purchased a Lenovo Y510p for a mobile KVM lab, and regrettably, did not check the device’s Linux support first. I had CentOS 6 running on a T420s without a problem, so I figured it wouldn’t be an issue. Shame on me for assuming. Anyways, I was able to create a working desktop, but missing a few critical functions to make it a daily working machine.

I installed CentOS 6 with no Kickstart from my network installation environment, but you can use a CD, flash drive, whatever. You will see warnings stating that the hardware is not compatible. I believe this is only referring to HDMI Audio. I can live without that.

When choosing packages, I selected Software Development Workstation. You can also select the Desktop option and select the virtualization host packages.

Now that the install is complete, let’s bring the machine up to a working desktop status.

RPMForge Mirror Setup

I use a couple applications not available in the default repositories.

See this page for instructions: RPMForge

Install some extra software.

[root]$ yum install htop flash-plugin

Wired Ethernet Controller

Remember the days where your wired ethernet controller worked out of the box, and it was a significant achievement to get wireless working. Prepare to be amazed because this is an entirely backwards situation. The wireless works fine out of the box, and that’s all you get.

Here is the installed ethernet controller:

[root]$ lspci | grep Ethernet
08:00.0 Ethernet controller: Qualcomm Atheros QCA8171 Gigabit Ethernet (rev 10)

Not much is to be found with this model. It’s a fairly new device that I have only found to be working on the latest version of Fedora Core, but not on CentOS. It seems to be baked into only the latest kernel builds. The manual build-from-source instructions seem to assume a newer kernel than what Centos 6 is built with.

This may or may not be a deal breaker for you. You could get by on wireless alone (it is a laptop, after all), or you can use a USB ethernet adapter. I have a couple of these, and they work quite well.

If this was the only issue, I suppose it could have been dealt with. Unfortunately, that was not the case.

NVIDIA Optimus

The idea of a primary / secondary graphics card was completely new to me. When I bought the laptop, I only saw that it had a 750m Graphics card, which is why I was surprised to see this:

[root]$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GT 750M] (rev a1)

What is that Intel card doing there? Apparently the laptop has both. The nVidia graphics is enabled when needed for specific applications. This allows the computer to save power when running off of battery. Refer to the marketing and Wikipedia page for more details.

So how do we use it? The Arch Wiki has a good article that explains how to activate it – NVIDIA Optimus. The fact that these steps are “somewhat complicated” by Arch’s definition seems a little concerning, but the steps aren’t bad.

While I could install Bumblebee, I think I can handle the modifying of xorg.conf file to keep things simple. I see myself in two use cases – either parked at my desk or remote. Chances are I am going to be rebooting my laptop when going from one to the other anyway. I don’t need that on-the-fly stuff offered by configuring Bumblebee. Just know that is an option if your requirements are different.

So that was the plan. I was not able to get this function working though. I kept on getting errors like this:

[   479.470] (II) NVIDIA(0): Setting mode "NULL"
[   479.470] (EE) NVIDIA(0): Failed to initiate mode change.
[   479.470] (EE) NVIDIA(0): Failed to complete mode change

The config file was pretty simple, too.

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
    # e.g. BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "UseDisplayDevice" "none"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

So I was left with the option to continue tinkering with xorg.conf, or attempt Bumblebee. Although I could feel my general life satisfaction plummeting, I decided not to pursue the Bumblebee option and admit defeat for now.

Conclusion

I should also note that I had a similar experience with Ubuntu 12.04. So the two main issues currently are support for Optimus graphics and the Atheros QCA8171 NIC. Both of these issues seem to be in the works. Maybe someday I will muster the energy to patch together the bleeding-edge components, but I can wait until the next Ubuntu LTS. I need to learn Windows 8 anyway.

To be continued…

This entry was posted in Tips on by .

About Andrew Wells

I have been developing on the LAMP stack since about 2006. I run Ubuntu XFCE on my desktop and have a history of managing Ubuntu and CentOS servers. I code web applications mostly in PHP but have experience with other languages as well. When I'm not working, I can be found working in my home lab or out snowboarding / hiking / in-line skating depending on the season.

2 thoughts on “Notes for Linux Install Attempt on Lenovo Y510p

  1. Anish Ram

    Hey,
    I actually managed to install elementaryOS Luna on my Lenovo y510p. This OS is sort of based on Ubuntu. Nvidia graphics works (detects my dual 750m setup) and I just got the Ethernet card working by following the steps at this forum post.

    Hope this helps!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>