Alienware M11xR3

Alienware M11xR3 - Article in Progress

Hardware
00:00.0 Host bridge [0600]: Intel Corporation 2nd Generation Core Processor Family DRAM Controller [8086:0104] (rev 09) 00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port [8086:0101] (rev 09) 00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09) 00:16.0 Communication controller [0780]: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 [8086:1c3a] (rev 04) 00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 05) 00:1c.0 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 [8086:1c10] (rev b5) 00:1c.2 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 [8086:1c14] (rev b5) 00:1c.3 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 [8086:1c16] (rev b5) 00:1c.5 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 [8086:1c1a] (rev b5) 00:1d.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 [8086:1c26] (rev 05) 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev a5) 00:1f.0 ISA bridge [0601]: Intel Corporation QS67 Express Chipset Family LPC Controller [8086:1c4d] (rev 05) 00:1f.2 SATA controller [0106]: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller [8086:1c03] (rev 05) 00:1f.3 SMBus [0c05]: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller [8086:1c22] (rev 05) 01:00.0 VGA compatible controller [0300]: nVidia Corporation GF106 [GeForce GT 555M] [10de:0df4] (rev ff) 07:00.0 Ethernet controller [0200]: Atheros Communications AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) 0d:00.0 Network controller [0280]: Atheros Communications Inc. AR9300 Wireless LAN adaptor [168c:0030] (rev 01) 13:00.0 System peripheral [0880]: JMicron Technology Corp. SD/MMC Host Controller [197b:2382] (rev 30) 13:00.3 System peripheral [0880]: JMicron Technology Corp. MS Host Controller [197b:2383] (rev 30) 19:00.0 USB controller [0c03]: NEC Corporation uPD720200 USB 3.0 Host Controller [1033:0194] (rev 04)

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 003: ID 0c45:6430 Microdia Bus 001 Device 004: ID 187c:0522 Alienware Corporation

processor      : 0 vendor_id      : GenuineIntel cpu family     : 6 model          : 42 model name     : Intel(R) Core(TM) i7-2637M CPU @ 1.70GHz stepping       : 7 microcode      : 0x1a cpu MHz        : 800.000 cache size     : 4096 KB physical id     : 0 siblings       : 4 core id        : 0 cpu cores      : 2 apicid         : 0 initial apicid : 0 fpu            : yes fpu_exception  : yes cpuid level    : 13 wp             : yes flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid bogomips       : 3389.14 clflush size   : 64 cache_alignment : 64 address sizes  : 36 bits physical, 48 bits virtual power management:

processor      : 1 vendor_id      : GenuineIntel cpu family     : 6 model          : 42 model name     : Intel(R) Core(TM) i7-2637M CPU @ 1.70GHz stepping       : 7 microcode      : 0x1a cpu MHz        : 800.000 cache size     : 4096 KB physical id     : 0 siblings       : 4 core id        : 0 cpu cores      : 2 apicid         : 1 initial apicid : 1 fpu            : yes fpu_exception  : yes cpuid level    : 13 wp             : yes flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid bogomips       : 3388.87 clflush size   : 64 cache_alignment : 64 address sizes  : 36 bits physical, 48 bits virtual power management:

processor      : 2 vendor_id      : GenuineIntel cpu family     : 6 model          : 42 model name     : Intel(R) Core(TM) i7-2637M CPU @ 1.70GHz stepping       : 7 microcode      : 0x1a cpu MHz        : 800.000 cache size     : 4096 KB physical id     : 0 siblings       : 4 core id        : 1 cpu cores      : 2 apicid         : 2 initial apicid : 2 fpu            : yes fpu_exception  : yes cpuid level    : 13 wp             : yes flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid bogomips       : 3388.87 clflush size   : 64 cache_alignment : 64 address sizes  : 36 bits physical, 48 bits virtual power management:

processor      : 3 vendor_id      : GenuineIntel cpu family     : 6 model          : 42 model name     : Intel(R) Core(TM) i7-2637M CPU @ 1.70GHz stepping       : 7 microcode      : 0x1a cpu MHz        : 800.000 cache size     : 4096 KB physical id     : 0 siblings       : 4 core id        : 1 cpu cores      : 2 apicid         : 3 initial apicid : 3 fpu            : yes fpu_exception  : yes cpuid level    : 13 wp             : yes flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid bogomips       : 3388.89 clflush size   : 64 cache_alignment : 64 address sizes  : 36 bits physical, 48 bits virtual power management:

Analyzing CLFAGS
GCC Versions before 4.6 will not detect the right CFLAGS for a new Core i7 2nd Gen (Sandy Bridge) CPU with.

/usr/libexec/gcc/x86_64-pc-linux-gnu/4.5.3/cc1 -E -quiet -v - -D_FORTIFY_SOURCE=2 -march=core2 -mcx16 -msahf -maes -mpclmul -mpopcnt -mavx --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=generic

/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.2/cc1 -E -quiet -v - -march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=corei7-avx

Upgrading GCC
You need to unmask GCC 4.6

Now you need to follow the |GCC Upgrade Guide and remerge all your packages, because will change your CFLAGS.

GRUB Bootloader Config
For GRUB the Sandy Bridge needs some more special kernel parameters to reach the optimal performance and save some battery power. Add this to your kernel command line:

If you enabled Support in your kernel config you also need to add this to your kernel command line:

Otherwise bumblebee produces IOMMU Errors on loading the nvidia driver.

PCI/USB Autosuspend, CPU Scheduler, Intel HDA Powersave
Create in local initscript to turn on all available powersaving options. Edit it to your preferences.

After adding the script don't forget to make it executable to run on boot.

Bumblebeed and Nvidia Card
Needed things for bumblebeed to run properly:
 * Nvidia graphics driver (alternatively the nouveau driver, but this hasn't much more performance than the Intel driver so forget about it)
 * bbswitch module to disable/enable the Nvidia graphics card
 * nasm to properly compile VirtualGL
 * VirtualGL to stream the window running on nvidia driver to the actual X Session
 * bumblebeed itself for controlling the bbswitch and nvidia module

For further information about Bumblebee Project, visit The Bumblebee Project page.

Nvidia Graphics Driver
The Nvidia graphics driver should already be installed after setting in. Just be sure to setup the OpenGL extension to work with the Intel driver:

Take the correct option for Intel driver

Installing bbswitch module
From bumblebee overlay:

From git source:

After that you can test the module by loading it and look into your

It should look like this

cat /var/log/messages

Get the status of the nvidia card

Turn the card off, respectively on:

Still under construction



Colors and Lighting
The Colored LEDs are controlled via a USB device. A C-program to control, and information on how to understand it can be found under [].