Difference between revisions of "Alienware M11x"

From ArchWiki
Jump to: navigation, search
(ACPI_CALL)
(Wireless)
Line 187: Line 187:
  
 
== Wireless ==
 
== Wireless ==
The Broadcom Corporation Device 4353 (rev 01) ([http://wireless.kernel.org/en/users/Drivers/b43#Known_PCI_devices 14e4]:[http://www.aircrack-ng.org/doku.php?id=b43 4353]) 802.11a/b/g/n MIMO adapter is the stock wireless device for the M11x (R1).
+
The Broadcom Corporation Device 4353 (rev 01)([http://wireless.kernel.org/en/users/Drivers/b43#Known_PCI_devices 14e4]:[http://www.aircrack-ng.org/doku.php?id=b43 4353]) 802.11a/b/g/n MIMO adapter is the stock wireless device for the M11x (R1).
* I'm using the [http://aur.archlinux.org/packages.php?ID=19514 broadcom-wl AUR package] and implemented some tips from the [[Broadcom_BCM4312]] page.
+
* I have [http://linuxwireless.org/en/users/Drivers/brcm80211 brcm80211] working with my ''14e4:4353'' "Broadcom Corporation Device 4353 (rev 01)" wireless adapter, using arch + [http://aur.archlinux.org/packages.php?ID=41472 compat-wireless-patched AUR package].
 +
** Alternately you could just build the [http://aur.archlinux.org/packages.php?ID=42670 compat-wireless-brcm80211 AUR package] which ONLY installs the brcm80211 module driver.
 +
*** I used to use [http://aur.archlinux.org/packages.php?ID=19514 broadcom-wl AUR package] and implemented some tips from the [[Broadcom_BCM4312]] page.
 
* FN+F3 controls the internal radio on the wireless internal adapter - this allows you to turn it off/on.
 
* FN+F3 controls the internal radio on the wireless internal adapter - this allows you to turn it off/on.
 
* Currently, this device does '''NOT''' support monitor mode, nor packet injection =(
 
* Currently, this device does '''NOT''' support monitor mode, nor packet injection =(

Revision as of 18:41, 29 November 2010

This wiki page is to be a central repository for community documentation on the installation, configuration and final setup of the Alienware M11x laptop running Arch64 linux.

System Specifications

The M11x base model comes with the following options :: (BLUE = OPTIONAL)

Alienware M11x R1:

  • Intel Pentium Processor SU4100 (2M Cache, 1.30 GHz, 800 MHz FSB) -OR- Intel Core 2 Duo SU7300 (1.3GHz, 800 MHz, 3 MB)
  • 2GB, -OR- 4GB, -OR- 8GB DDR3 - 800MHz RAM
  • 11.6-inch WideHD 1366x768 (720p) LCD
  • 1GB GDDR3 NVIDIA GeForce GT 335M discrete video
  • Mobile Intel GS45 Chipset
  • Intel 4500HD onboard video
  • Intel Internal High-Definition 5.1 Surround Sound Audio
  • Braodcom 4353 802.11a/b/g/n 2x2 MIMO wireless
  • 160GB 5,400RPM hard drive -OR- 250GB, 320GB, 500GB - 7,200RPM hard drive -OR- 256GB - Solid State Drive
  • Internal Wireless Bluetooth 2.1
  • Internal WWAN Mobile Broadband
  • Two Built-In Front Speakers
  • AlienFX Illuminated Keyboard Keyboard
  • 8 Cell Prismatic (64 whr) - Primary Battery

Ports

  • IEEE 1394a (4-pin) port
  • Integrated Ethernet RJ-45 (100 Mbps)
  • 3 Hi-speed USB 2.0 ports
  • DP / HDMI / VGA - Video Output
  • 3-in-1 Media Card Reader
  • 2 Audio Out Connectors
  • Audio In / Microphone Jack (retaskable for 5.1 audio)

Dimensions & Weight

  • Height: 32.7mm (1.29 inches) x Width: 285.7mm (11.25 inches) x Depth: 233.3mm (9.19 inches)
  • Preliminary Weight: Start at 1.99kg (4.39 lbs)

output of lspci

00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub (rev 07)
00:01.0 PCI bridge: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port (rev 07)
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation ICH9M/M-E SATA AHCI Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
01:00.0 VGA compatible controller: nVidia Corporation Device 0caf (rev a2)
01:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)
02:00.0 Ethernet controller: Atheros Communications Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)
08:00.0 Network controller: Broadcom Corporation Device 4353 (rev 01)
1a:00.0 FireWire (IEEE 1394): JMicron Technology Corp. IEEE 1394 Host Controller
1a:00.1 System peripheral: JMicron Technology Corp. SD/MMC Host Controller
1a:00.3 System peripheral: JMicron Technology Corp. MS Host Controller

Alienware M11x R2: The M11x R2 is similar to the R1, but it has some processor and chipset differences.

  • Processor: Intel® CoreTM i5 520UM (3M Cache, 1.066 GHZ, 1.866 GHz Max) or Intel® CoreTM i7 640UM (4M Cache, 1.2 GHZ with 2.266 GHz Max)
  • Chipset: Mobile Intel® QS57 Express Chipset
  • Uses NVIDIA Optimus to automatically switch between graphic cards when using Windows 7 drivers. There is no option on th BIOS to manually switch graphics.

Ports:

  • The VGA port is not present in this model

Installation

Boot Arch64 from flash, or USB hard drive and do the base installation from the there or FTP (my suggestion being FTP).

Installing Arch via an external USB drive failed at first for me, the solution was

  1. download an archlinux x86_64 ISO from build.archlinux.org
  2. install the ISO to USB
    1. for example: I used the first bootable partition on a USB drive via unetbootin thru windows 7 x64 using these settings.
  3. reboot, and choose to boot off the USB drive
  4. select default at the ISOLINUX bootloader
  5. if all goes well, continue to install archlinux as per instructions @ Beginners'_Guide
    1. if you run into the same issue as reported here, wait until you see the USB drive boot sequence reach the ramfs$ prompt
    2. then create a symbolic link pointing to your installation media (/dev/sdb1) => /dev/archiso, then exit - see #example of ERROR below
  6. continue to install archlinux as per instructions @ Beginners'_Guide

#example of ERROR: boot device didn't show up after 30 seconds ... issue

:: Waiting for boot device ...
Waiting 30 seconds for device /dev/archiso ...
ERROR: boot device didn't show up after 30 seconds ...
Falling back to interactive prompt
You can try to fix the problem manually, logout when you are finished
ramfs$
ln -s /dev/sdb1 /dev/archiso           <= creation of symlink pointing archiso to USBmedia
exit

With Windows 7 x64 as an option, the grub boot loader should look something like this (in this instance /dev/sda10 is being used as the swap and resume partition):

title           Windows 7 x64 Home Premium
root            (hd0,1)
savedefault
makeactive
chainloader     +1

title  Arch Linux x86_64 - v2.6.34-ARCH
root   (hd0,4)
kernel /boot/vmlinuz26 root=/dev/sda5 resume=/dev/sda10 ro
initrd /boot/kernel26.img

title  Arch Linux x86_64 Fallback
root   (hd0,4)
kernel /boot/vmlinuz26 root=/dev/sda5 ro vga=0x317
initrd /boot/kernel26-fallback.img

/etc/rc.conf

MODULES

Modules needed by some hardware:

MOD_AUTOLOAD="yes"
MODULES=(
tun fuse acpi-cpufreq cpufreq_powersave cpufreq_userspace cpufreq_conservative cpufreq_stats cpufreq_ondemand 
snd-hda-intel lib80211_crypt_tkip wl !b43 !b43legacy !pcmcia !ssb
)

NETWORKING

this is how my file's NETWORKING section is configured:

eth0="dhcp"
#eth1="dhcp"
wlan0="dhcp"
INTERFACES=(eth0 wlan0)
gateway="default gw 192.168.0.1"
ROUTES=(!gateway)

DAEMONS

This is my current configuration of the Daemons to be run at boot

DAEMONS=(
syslog-ng dbus acpid hal network netfs cpufreq wicd preload sensors detectgpu @laptop-init @gpm @crond @alsa @sshd
)

/etc/makepkg.conf

CARCH="x86_64"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -mtune=generic -O2 -pipe"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
MAKEFLAGS="-j3"

Ethernet

the ethernet controller uses the atl1c module. kernel configuration flag - ensure the CONFIG_ATL1C is set as module, or built-in :: CONFIG_ATL1C=y/m

# lspci -kv
02:00.0 Ethernet controller: Attansic Technology Corp. Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)
       Subsystem: Dell Device 0443
       Flags: bus master, fast devsel, latency 0, IRQ 30
       Memory at f1100000 (64-bit, non-prefetchable) [size=256K]
       I/O ports at 3000 [size=128]
       Capabilities: [40] Power Management version 3
       Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable+
       Capabilities: [58] Express Endpoint, MSI 00
       Capabilities: [6c] Vital Product Data <?>
       Capabilities: [100] Advanced Error Reporting <?>
       Capabilities: [180] Device Serial Number xx-xx-xx-xx-xx-xx-xx-xx
       Kernel driver in use: atl1c
       Kernel modules: atl1c
# modinfo atl1c
filename:       /lib/modules/2.6.34/kernel/drivers/net/atl1c/atl1c.ko
version:        1.0.0.2-NAPI
license:        GPL
description:    Atheros 1000M Ethernet Network Driver
author:         Jie Yang <jie.yang@atheros.com>
srcversion:     506E57E5EAD8D2D885AA40E
alias:          pci:v00001969d00001073sv*sd*bc*sc*i*
alias:          pci:v00001969d00002062sv*sd*bc*sc*i*
alias:          pci:v00001969d00002060sv*sd*bc*sc*i*
alias:          pci:v00001969d00001062sv*sd*bc*sc*i*
alias:          pci:v00001969d00001063sv*sd*bc*sc*i*
depends:
vermagic:       2.6.34 SMP mod_unload CORE2
# dmesg | grep -i atl1c
atl1c 0000:02:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
atl1c 0000:02:00.0: setting latency timer to 64
atl1c 0000:02:00.0: version 1.0.0.2-NAPI
atl1c 0000:02:00.0: irq 30 for MSI/MSI-X
atl1c 0000:02:00.0: atl1c: eth0 NIC Link is Up<100 Mbps Full Duplex>

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).

Above in the rc.conf NETWORKING section, I am not using eth1 (actually commented out), as I like using wlan0 for wireless interface, its just my preference. I am using the following config taken from Broadcom_BCM4312 Interfaces swapped every time section, namely to create my wlan0 interface, and to ensure eth0 and my wireless interface don't get swapped around ::

Create a file called /etc/udev/rules.d/10-network.rules and bind the MAC address of each of your cards to a certain interface name

SUBSYSTEM=="net", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="eth0"
SUBSYSTEM=="net", ATTR{address}=="ff:ee:dd:cc:bb:aa", NAME="wlan0"

Where:

  • NAME="eth0" is the name of the interface that you want, for example the same name "eth0". You can use other names, for example "lan0" or "wlan0".
  • To get the MAC address of each card, use this command: udevadm info -a -p /sys/class/net/<yourdevice> | grep address. Please, note that this is case sensitive and you must use lower-case.

Sound

The onboard sound card utilizes the HDA-Intel module from the alsa-driver v1.0.23(or newer) package, just following the instructions @ the alsa-project page for building the alsa-driver package for use in Arch linux.

Linux kernel 2.6.34+ works right out-of-the-box with the m11x soundcard, no need for the external ALSA package.

/etc/modprobe.d/sound.conf

alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
options snd-hda-intel probe_mask=0xffff,0xfff2
  • Reboot after making these changes to /etc/modprobe.d/sound.conf

note the last line in /etc/modprobe.d/sound.conf -- THIS FORUM POST explains that it is needed to get HDMI AUDIO to play via NVIDIA HDMI.

# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC665 Analog [ALC665 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

to test sound via HDMI AUDIO issue the following command (hardware audio device 1,3 is NVIDIA HDMI ::

# aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Center.wav

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 will interact with the hybrid video cards in this laptop.

  • 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).

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.

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 acpi_call and compile
    • OR you could just grab the acpi_call-git AUR package(IMHO it's working pretty stable), and skip the manual installation/compilation of acpi_call.

acpi_call compilation

git clone http://github.com/mkottman/acpi_call.git
cd acpi_call
make
ln -s acpi_call.ko /lib/modules/`uname -r`/kernel/drivers/acpi/acpi_call.ko
depmod -a

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
  1. modprobe the acpi_call module
  2. check the current battery mW usage (not necessary)
  3. echo '\_SB.PCI0.P0P2.PEGP._OFF' to (the now existing since acpi_call was loaded) /proc/acpi/call
  4. 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.

VGA_SWITCHEROO

Currently, Alienware M11x R1 owners are unable to use this method - hopefully this situation will change in the near future (fingers crossed), for now you need to manually reboot and make the switch in BIOS (swtichable and discrete in the GRAPHICS setup).

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
sudo modprobe vgaswitcheroo
sudo 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

Template:Codeline <= switch to discrete card Template:Codeline <= switch to onboard card Template:Codeline <= power-down the card not in use

/etc/rc.d/detecgtgpu

To cope with switching between the 2 video cards within Archlinux itself (having multiple video drivers on the same arch install) I have been using a implementation of the detectgpu script pioneered by ALLurGroceries, but decidedly more arch-style like our french brethren with some american folk added I came up with this (UPDATED - added acpi_call functionality so that if booting into onboard/intel, this will power off the NVIDIA card by at boot to save precious battery -- since we cant even switch to NVIDIA yet while booted with onboard/intel) ::

/etc/rc.d/detectgpu

#!/bin/bash
VIDEO=`/usr/sbin/lspci|grep -c Intel`
if [ "$VIDEO" == 16 ]; then
   echo NVidia GPU detected
   ln -sf /etc/X11/xorg.nvidia.conf /etc/X11/xorg.conf
   OPENGL_DEJA_INSTALL=`pacman -Q libgl 2>/dev/null|grep -c libgl`
   if [ "$OPENGL_DEJA_INSTALL" == 1 ]; then
   echo Switching OpenGL implementation to nvidia-utils
   pacman -Rd --noconfirm libgl 2>/dev/null
   pacman -S --noconfirm nvidia-utils 2>/dev/null
   fi
else
echo Intel GPU detected
ln -sf /etc/X11/xorg.intel.conf /etc/X11/xorg.conf
sudo modprobe acpi_call
echo '\_SB.PCI0.P0P2.PEGP._OFF' > /proc/acpi/call
OPENGL=`pacman -Q libgl 2>/dev/null|grep -c libgl`
if [  $OPENGL != 1 ]; then
   pacman -Rd --noconfirm nvidia-utils 2>/dev/null
   pacman -S --noconfirm libgl 2>/dev/null
fi
fi
  • NOTE: you need to create 2 files for this to work, /etc/X11/xorg.nvidia.conf and /etc/X11/xorg.intel.conf (obviously one for INTEL, and one for NVIDIA) the script detectgpu will create a symlink /etc/X11/xorg.conf linking to the valid xorg.$ACTIVE_VIDEO_CARD.conf file, so Xorg will start properly.

Make sure that script /etc/rc.d/detectgpu script is executable

chmod +x /etc/rc.d/detectgpu

Lastly, update /etc/rc.conf with the following added to your DAEMONS=() section (if using the DAEMON config from above, this will already be there):

detectgpu

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 thru 'setpci', the following script is adapted from Samsung_N150-Backlight archwiki article works fine (ymmv). REQUIREMENTS: bc, and setpci
  1. create a file @ /sbin/backlight
  2. sudo chown root:video /sbin/backlight
  3. sudo chmod 750 /sbin/backlight
  4. make sure to add the username allowed to change the backlight settings to the video group in /etc/group
  5. 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=`/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

AlienFX - lighting and colors

AlienFX description quoting from the author's page "AlienFX Lite is a simple cross-platform program to create profiles and set the AlienFX lightning to the set colors. This application was done for the Allpowerfull M15x and only tested on this machine. It should also work on the M17x. The application will most likely accept the Area 51 m15x but it was untested. The current supported platforms are: Linux (32 bit), Linux(64 bit), Mac OS X(UNTESTED), Windows 7(64 bit), Windows 7 (32 bit), Windows Vista (32bit), Windows Vista 64bit, Windows XP"

yaourt -S alienfx-lite
  • then run /usr/bin/alienFX-lite to start the java applet (a script that changes to proper dir, and runs 'sudo $JAVA_HOME/bin/java -jar /usr/share/alienFX-lite/AlienFXLite-0.4b.jar')
  • NBR :: alienFX-lite thread for overview, videos, support and interaction with the developer (Wattos@NBR) directly.

This really is a slick java app!

fbsplash + fbcondecor on the M11x

a quick summary: quote, "Fbsplash (formerly gensplash) is a userspace implementation of a splash screen for Linux systems. It provides a graphical environment during system boot using the Linux framebuffer layer. .... If you have a kernel that supports Fbcondecor, you can get nice graphical console backgrounds beside the splash screen. Just search the AUR for fbcondecor" unquote.

make SURE to check out the Fbsplash page for more information, links to themes, syntax, and suspend to disk details, etc.

fbcondecor usage

this is a plagerization of Fbsplash#Console_backgrounds for syntax :: quote, "After installing your patched kernel and fbsplash, add fbcondecor to your DAEMONS array in rc.conf:

DAEMONS=(... fbcondecor ...)

There is also a config file /etc/conf.d/fbcondecor to set up the virtual terminals to be used.

You may even boot up with a nice console background and the plain Arch Linux boot messages instead of a splash screen. Just change your kernel cmdline to use the verbose mode:

quiet console=tty1 splash=verbose,theme:arch-banner-icons

" unquote.

install the following packages

  • yaourt -S kernel26-fbcondecor fbsplash fbsplash-extras fbsplash-themes-arch-banner uswsusp-fbsplash

fbcondecor tailored for m11x

as I posted here, I'm using the following configuration on my m11x as an example (posted beneath). when it comes time to boot your system, choose whatever in BIOS [discrete/internal], then once @ the GRUB boot menu, select "Arch64 linux (intel -fbcondecor)" for the internal/intel, and "Arch64 Linux (nvidia -fbcondecor)" for the discrete/NVIDIA.

/etc/mkinitcpio.conf

MODULES="intel_agp i915 nvidiafb"
HOOKS="base udev uresume fbsplash autodetect pata scsi sata filesystems"

^^^^^^ the above "HOOKS=" line is mine, letter for letter. "fbsplash" is REQUIRED to be able to use fbsplash + fbcondecor

/boot/grub/menu.lst

# (3) Arch64 linux (intel -fbcondecor)
title  Arch64 Linux (intel -fbcondecor)
root   (hd0,2)
kernel /boot/vmlinuz26-fbcondecor root=/dev/sda3 resume=/dev/sda6 i915.modeset=1 quiet \
video=1366x768 console=tty1 splash=silent,fadein,fadeout,theme:arch-banner-icons ro
initrd /boot/kernel26-fbcondecor.img

# (4) Arch64 linux (nvidia -fbcondecor)
title  Arch64 Linux (nvidia -fbcondecor)
root   (hd0,2)
kernel /boot/vmlinuz26-fbcondecor root=/dev/sda3 resume=/dev/sda6 vga=0x317 quiet \
video=1280x800 console=tty1 splash=silent,fadein,fadeout,theme:arch-banner-icons ro
initrd /boot/kernel26-fbcondecor.img

laptop-init-script

laptop-init-script is small rc.d script located in (/etc/rc.d/laptop-init) i am using to enable/disable laptop optimizations.

You can install laptop-init-script from the AUR.

/etc/acpi/actions/lm_lid.sh

for my setup, I like the laptop to suspend when the lid is closed. this is done by changing the file /etc/acpi/actions/lm_lid.sh to the following ::

#! /bin/sh

test -f /usr/sbin/laptop_mode || exit 0

# lid button pressed/released event handler 

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0

...to be continued...

contributor: --Fnord0 18:18, 21 October 2010 (EDT)