Lenovo ThinkPad W520

From ArchWiki

This article or section is a candidate for merging with Laptop/Lenovo#W series.

Notes: Nothing worth keeping a dedicated page for. (Discuss in Talk:Lenovo ThinkPad W520)

This article or section does not follow the Laptop page guidelines.

Reason: Notepad-like style (Discuss in Talk:Lenovo ThinkPad W520)

GPT / MBR Partition Table

I was unable to get the most recent version of the BIOS to boot from a GPT partition table. Everything worked fine once I tried an MBR ("msdos" in gparted) partition table.

Wifi issues

  • Random Disconnection
    • The output from running dmesg | grep wlan0 as root will include "wlan0: deauthenticating from MAC by local choice (reason=3)"
    • Disable power management of pci-express in BIOS

Nvidia Optimus Setup

Bumblebee

nVidia Optimus works nicely with a standard bumblebee setup, using the proprietary NVIDIA drivers. For further information refer to the NVIDIA Optimus article.

Multimonitor

The digital and analog video outputs are hardwired to the nVidia chip and are thus unvailable in a standard bumblebee setup, since the X Server is run by the Intel GPU. Unlike earlier Thinkpad W Models, the VGA-Output is not connected to the integrated chip. There are several workarounds available.

Using intel-virtual-output works really well with little tweaking necessary

$ intel-virtual-output -f
Note: -f prevents it from becoming a daemon (thus easier to stop)
Note: Starting with nvidia-360 the nvidia-modeset module will prevent bumblebee from unloading properly and has to be removed first.

It is needed to enable virtual outputs for intel graphic card xorg.conf.d.

20-intel.conf
Section "Device"
    Identifier "intelgpu0"
    Driver "intel"
    Option "VirtualHeads" "2"
EndSection

see also Stackexchange for troubleshooting with virtual outputs

multiscreen_enable.sh
#!/bin/bash
# Initializes Bumblebee for multi-screen functionality.

#modprobe bbswitch # probably not needed 
optirun true
intel-virtual-output
#following line needs to be adapted to the according sceanrio
xrandr --output LVDS1 --auto --pos 0x0 --output VIRTUAL8 --mode VIRTUAL8.740-1920x1200 --pos 1920x-60 
multiscreen_term.sh
#!/bin/bash
# Initializes Bumblebee for multi-screen functionality.
xrandr --output VIRTUAL8 --off  
xorg_process=$(ps aux | grep 'Xorg :8' | awk '{print $2}')
kill -15 $xorg_process
sleep 1
rmmod nvidia_modeset
sleep 1
rmmod nvidia
multiscreen_reinit.sh
#!/bin/bash
# Restarts Bumblebee for multi-screen functionality.

tee /proc/acpi/bbswitch <<<ON
modprobe bbswitch
modprobe nvidia-modeset
optirun true
intel-virtual-output
xrandr --output LVDS1 --auto --pos 0x0 --output VIRTUAL8 --mode VIRTUAL8.740-1920x1200 --pos 1920x-60 

For the nvidia card to recognize external monitors, some lines have to be commented out of the default config file at /etc/bumblebee/xorg.conf.nvidia.

xorg.conf.nvidia

...
 #   Option "UseEDID" "false"
 #   Option "UseDisplayDevice" "none"
...

see also: Phoronix Nvidia Forums

Ultranav - Trackpoint and Touchpad

This article or section is a candidate for merging with TrackPoint.

Notes: Merge into the main article, then just link to it instead of duplicating content. (Discuss in Talk:Lenovo ThinkPad W520)

Trackpoint and Touchpad will work out of the box, but some tweaking is required for further configuration.

  • Set up trackpoint scrolling by adding a new config in xorg.conf.d.
20-trackpoint.conf
Section "InputClass"
         Identifier      "Trackpoint Wheel Emulation"
         MatchProduct    "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint"
         MatchDevicePath "/dev/input/event*"
         Option          "EmulateWheel"                "true"
         Option          "EmulateWheelButton"  "2"
         Option          "Emulate3Buttons"     "false"
         Option          "XAxisMapping"                "6 7"
         Option          "YAxisMapping"                "4 5"
EndSection
  • Trackpoint sensitivity and speed can be set up using an udev rule in /etc/udev/rules.d/ (the add-rule will work around the configuration not being applied when the trackpoint hasn't been loaded, alternatively a wait-for can be used, which comes with the added drawback of added unresponsiveness of the trackpoint some time after boot)
82-trackpoint.rules
# Set the trackpoint speed and sensitivity
ACTION=="add",SUBSYSTEM=="input",ATTR{name}=="TPPS/2 IBM TrackPoint",ATTR{device/sensitivity}="240"

Other

Boot up issue with UDEV timeout

# dmesg | grep -i pci
udevd[169]: seq 1352 '/devices/pci0000:00/0000:00:1c.1/0000:03:00.0' killed

Similar issue at FS#27938.

System beep

See PC speaker#Disabling the PC speaker.

Screen brightness

video.use_native_backlight is enabled by default, unfortunately this setting does not work well for the W520, disabling it should solve the issue:

video.use_native_backlight=0

The following kernel parameters may also be necessary to get backlight control working in X sessions with NVIDIA drivers:

acpi_backlight=video

and create the file:

/usr/share/X11/xorg.conf.d/10-nvidia-brightness.conf
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro 1000M"
    Option         "RegistryDwords" "EnableBrightnessControl=1"
EndSection

FAN Settings with Thinkfan

Default temperature management allows only a limited fan speed. This inherently leads to overheating since the laptop is designed to run with unregulated fan speed under full load.

Thinkfan.conf:

thinkfan.conf
Section
hwmon /sys/devices/virtual/thermal/thermal_zone0/temp
# Fan   Temp1   Temp2
(0,     0,      35)
(1,     30,     40)
(2,     35,     45)
(3,     40,     50)
(4,     45,     55)
(5,     50,     60)
(6,     55,     65)
(7,     60,     70)
(127,   65,     32767)
# last line is unregulated/max speed.  Like this the Laptop will be ~ at 60
EndSection