Installing Slackware on a Thinkpad W520
Contents
Installation
Slackware 13.37 64-bit installed like a breeze on a hot, humid day! For the most part all of the essentials to get the system up and running on the W520 was detected and put into play with little or no intervention or editing of files on my end. Kernel 2.6.37.6 was supplied with Slackware 13.37 so I compiled and installed 2.6.39.2 using the .config file from the testing/source/linux-2.6.39-rc4-configs/ directory on the Slackware install DVD. Made some minor changes to the config as follows:
- Processor type and features
- Preemption Model > Preemptible Kernel
- Networking support
- -[Amateur Radio support]
- -[CAN bus subsystem support]
- -[IrDA (infrared) subsystem support
- -[WiMAX Wireless Broadband support]
- Device Drivers
- -[Parallel port support]
- -[Fusion MPT device support]
- -[I2O device support]
- -[Macintosh device drivers]
- Network device support
- -[ARCnet support]
- -[Token Ring driver support]
- -[ATM drivers]
- -[FDDI driver support]
- -[HIPPI driver support]
- -[ISDN support]
- Network device support
- -[Dallas's 1-wire support]
- Multimedia support
- -[Remote Controller adapters]
- -[Radio Adapters]
- Multimedia support
Video
Coming from a W510, the W520 introduced me to the concepts of discrete and integrated graphics, as well as NVIDIA's Optimus technology. Unfortunately because of NVIDIA's unwillingness to bring Optimus support to Linux, you have three choices. You can use the integrated Intel HD graphics, NVIDIA's discrete graphics, or look into the bumblebee project here. I went with the NVIDIA discrete graphics route with plans to try out the bumblebee project at a later time. Make sure to specifically set your graphics option in the BIOS to discrete, otherwise Slackware/Linux will select integrated.
Instead of the open source nouveau driver, which is limited to 2D graphics I went with NVIDIA's binary, version 275.09.07. Used xf86-video-nouveau-blacklist-noarch-1.txz in the extra/ directory on the Slackware install DVD to blacklist the loading of the nouveau driver, which causes conflicts with NVIDIA's binary. With X.Org's X Server 1.9.5 in Slackware, xorg.conf is pretty bare these days as detection is done pretty smoothly at start. Using NVIDIA's installer to create a default xorg.conf, the only things I edited were
Section "Device"
Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "Quadro 2000M" Option "RenderAccel" "true" Option "AddARGBGLXVisuals" "true" Option "HWCursor" "yes" Option "CursorShadow" "yes" Option "RegistryDwords" "EnableBrightnessControl=1"
EndSection
The Option "RegistryDwords" "EnableBrightnessControl=1" line allows you to change the brightness of the notebook's LCD via the Fn-HOME and Fn-END key combinations.
Section "Screen"
Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "1" Option "DynamicTwinView" "True" Option "TwinViewXineramaInfoOrder" "DFP-1" Option "MetaModes" "DFP-1: 1920x1200_60 +0+0, DFP-0: NULL, CRT: NULL; DFP-0: 1920x1080_60 +0+0, DFP-1: NULL, CRT: NULL;" SubSection "Display" Depth 24 EndSubSection
EndSection
Here I set up the 2 MetaModes:
- notebook LCD off, external LCD on, VGA off
- notebook LCD on, external LCD off, VGA off
Networking
The Intel Centrino Ultimate-N 6300 Wi-Fi card and Intel Gigabit Ethernet (10/100/1000) PCI-Express Ethernet card both worked right out of the box.
By default the Wi-Fi indicator flashes whenever there is activity, which I found to be quite annoying and distracting. You can change its behavior so that it will be on steady whenever the radio is powered on and off when the radio is off by adding "options iwlcore led_mode=1" to /etc/modprobe.d/iwlcore.conf. Setting led_mode=0, the default, will cause the indicator to flash whenever there is wireless activity.
Misc notes
- You can verify that Turbo Boost is working properly by using Intel's powertop or i7z to show the actual CPU state, including Turbo Boost and advanced C-states.
- You will need to make sure the following modules are loaded: ac, battery, button, coretemp, fan, processor, and thermal for proper ACPI and temperature monitoring.