This wiki page documents the configuration and troubleshooting specific to the Alienware M11x laptop.
See the Installation guide for installation instructions.
Wireless
The Broadcom Corporation Device 4353 (rev 01)(14e4:4353) 802.11a/b/g/n MIMO adapter is the stock wireless device for the M11x (R1).
See Broadcom wireless.
Sound
Works out-of-the-box. See ALSA.
Touchpad
See Synaptics.
Video
- For Alienware M11x R1 owners: The Alienware M11x R1 has 2 video cards, and can be manually changed with the system BIOS (accessed by pushing F2 during system POST) ::
- Switchable => Linux will use the Intel 4500HD internal video
- Discrete => Linux will use the NVIDIA GeForce GT 335M
Alienware M11x R1 users running Linux have some tools available which will interact with the hybrid video cards in this laptop.
- Bumblebee is a software implementation based on VirtualGL and a kernel driver to be able to use the dedicated GPU. Alienware M11x R1 users CAN use this method to switch between the Onboard/Intel and the Discrete/NVIDIA without a system reboot and/or BIOS change (yet the BIOS would need to be set for Switchable).
- acpi_call allows you to disable+power down the Discrete/NVIDIA card when the system is booted while BIOS Graphics mode is set to => Switchable
- vga_switcheroo allows one to switch between the Onboard/Intel and the Discrete/NVIDIA without a system reboot and/or BIOS change (yet the BIOS would need to be set for Switchable). vga_switcheroo has been reported as non-functional at this state for Alienware M11x users.
linux-hybrid-graphics.blogspot.com is a great site to check out for up-to-date information regarding the state of hybrid graphics in Linux.
- For Alienware M11x R2 owners: There are detailed instructions on how to switch on/off the discrete NVIDIA graphics card on the Optimus (R2) models for the Alienware M11x laptop.
- For Alienware M11x R3 owners: Many of the methods for running Optimus & bumblebeed on the M11xR3 are the same or similar to the M11xR2 however the acpi calls are different for this model.
Bumblebee
See Bumblebee for details.
ACPI_CALL
ACPI_CALL is a kernel module that enables you to call parameterless ACPI methods by writing the method name to /proc/acpi/call
, e.g. to turn off the discrete graphics card in a dual graphics environment. acpi_call works on the Alienware M11x R1 for disabling the discrete video card + powering it down successfully. Make sure you boot with BIOS set to switchable' ::
- Grab the acpi_call package (IMHO it is working pretty stable), and skip the manual installation/compilation of acpi_call.
acpi_call Usage
# modprobe acpi_call # grep rate /proc/acpi/battery/BAT1/state # echo '\_SB.PCI0.P0P2.PEGP._OFF' > /proc/acpi/call # grep rate /proc/acpi/battery/BAT1/state
- Modprobe the acpi_call module
- Check the current battery mW usage (not necessary)
- Echo '\_SB.PCI0.P0P2.PEGP._OFF' to (the now existing since acpi_call was loaded) /proc/acpi/call
- Check the current battery mW usage again to see that it dropped (not necessary)
- Both #2 and #4 as noted are not necessary, they just demonstrate that the battery usage is dropping as long as you do them in the order listed here.
m11rx2hack
m11rx3hack
#!/bin/sh # Based on m11xr2hack by George Shearer if ! lsmod | grep -q acpi_call; then echo "Error: acpi_call module not loaded" exit fi acpi_call () { echo "$*" > /proc/acpi/call cat /proc/acpi/call } case "$1" in off) echo NVOP $(acpi_call "\_SB.PCI0.PEG0.PEGP.NVOP 0 0x100 0x1A {255,255,255,255}") echo _PS3 $(acpi_call "\_SB.PCI0.PEG0.PEGP._PS3") ;; on) echo _PS0 $(acpi_call "\_SB.PCI0.PEG0.PEGP._PS0") ;; *) echo "Usage: $0 [on|off]" ;; esac
VGA_SWITCHEROO
Currently, Alienware M11x R1 owner reports indicate the vga_switcheroo method is not functional.
This explains how-to use VGA_SWITCHEROO for troubleshooting ::
- kernel configuration flag - ensure CONFIG_VGA_SWITCHEROO is set as module, or built-in :: CONFIG_VGA_SWITCHEROO=y/m
# modprobe vgaswitcheroo # mount -t debugfs none /sys/kernel/debug $ cd /sys/kernel/debug/vgaswitcheroo $ cat switch 0:+:Pwr:0000:00:02.0 1: :Pwr:0000:01:00.0
To switch to discrete card:
# echo "DDIS" > /sys/kernel/debug/vgaswitcheroo/switch
To switch to onboard card:
# echo "DIGD" > /sys/kernel/debug/vgaswitcheroo/switch
To power-down the card not in use:
# echo "OFF" > /sys/kernel/debug/vgaswitcheroo/switch
Use 'nvidia-settings' to configure the video card, and multiple screens if using the discrete/NVIDIA card.
Backlight Brightness
- When booting into Arch Linux using NVIDIA/discrete video card just change brightness using the FUNCTION+F4 = brightness up, and FUNCTION+F5 = brightness down - also 'nvidia-settings' should allow brightness settings changes too.
- When booting into Arch Linux using the INTEL/onboard video card, the only way to change brightness levels requires passing a command through 'setpci', the following script works fine (ymmv).
- create a file @
/sbin/backlight
sudo chown root:video /sbin/backlight
sudo chmod 750 /sbin/backlight
- make sure to add the username allowed to change the backlight settings to the video group in
/etc/group
- create an alias in your shell startup, and turn the brightness up or down via command, in turn you could tie this to a button combination in your xwindow manager settings.
- .bashrc
alias brup='/sbin/backlight up' alias brdown='/sbin/backlight down' alias brget='/sbin/backlight get'
- .tcshrc
alias brup '/sbin/backlight up' alias brdown '/sbin/backlight down' alias brget '/sbin/backlight get'
/sbin/backlight
#!/bin/bash # increase/decrease/set/get the backlight brightness (range 0-255) by 16 # #get current brightness in hex and convert to decimal # # REQUIRES: bc, and setpci var1=`sudo /usr/sbin/setpci -s 00:02.0 F4.B` var1d=$((0x$var1)) case "$1" in up) #calculate new brightness var2=`echo "ibase=10; obase=16; a=($var1d+16);if (a<255) print a else print 255" | bc` echo "$0: increasing brightness from 0x$var1 to 0x$var2" sudo /usr/sbin/setpci -s 00:02.0 F4.B=$var2 ;; down) #calculate new brightness var2=`echo "ibase=10; obase=16; a=($var1d-16);if (a>15) print a else print 15" | bc` echo "$0: decreasing brightness from 0x$var1 to 0x$var2" sudo /usr/sbin/setpci -s 00:02.0 F4.B=$var2 ;; set) #n.b. this does allow "set 0" i.e. backlight off echo "$0: setting brightness to 0x$2" sudo /usr/sbin/setpci -s 00:02.0 F4.B=$2 ;; get) echo "$0: current brightness is 0x$var1" ;; toggle) if [ $var1d -eq 0 ] ; then echo "toggling up" sudo /usr/sbin/setpci -s 00:02.0 F4.B=FF else echo "toggling down" sudo /usr/sbin/setpci -s 00:02.0 F4.B=0 fi ;; *) echo "usage: $0 {up|down|set <val>|get|toggle}" ;; esac exit 0
Other applications
- A C-program which cycles through colors, plus information about how to understand it, can be found at [1].
- alienware-kbl a software to manage the light colors with a graphical interface, python or bash commands.