ACPI Modules to uncomment from, or add to /etc/rc.d/rc.modules
This is from slackware-current's rc.modules, but the module names are right and not loading anything that isn't in slackware12 so it's bang on:
Code:
#### ACPI support ###
# Advanced Configuration and Power Interface (ACPI) support for Linux
# requires an ACPI compliant platform (hardware/firmware), and assumes
# the presence of OS-directed configuration and power management (OSPM)
# software. Linux ACPI provides a robust functional replacement for
# several legacy configuration and power management interfaces, including
# the Plug-and-Play BIOS specification (PnP BIOS), the MultiProcessor
# Specification (MPS), and the Advanced Power Management (APM)
# specification. If both ACPI and APM support are configured, whichever
# is loaded first shall be used. Also note that in many cases udev will
# load the required modules if ACPI is found to be active.
# ACPI can be disabled with the 'noacpi' boot option.
# Also note that ACPI is blacklisted with our default kernel
# configurations on machines with a BIOS older than 2001-01-01. If you
# still want to try it, you'll need to use the 'acpi=force' boot option.
#
# AC Adapter (indicates whether a system is on AC, or not):
/sbin/modprobe ac
#
# Battery (adds battery information through/proc/acpi/battery):
/sbin/modprobe battery
#
# Button (handles events on the power, sleep and lid buttons):
/sbin/modprobe button
#
# Video. This driver implements the ACPI Extensions For Display Adapters
# for integrated graphics devices on motherboard, as specified in ACPI 2.0
# Specification, Appendix B, allowing some basic control like defining the
# video POST device, retrieving EDID information, or to setup a video output.
# Note that this is an reference implementation only, and it may or may not
# work for your integrated video device.
/sbin/modprobe video
#
# Fan (adds support for ACPI fan control and status):
/sbin/modprobe fan
#
# Dock (adds support for ACPI controlled docking stations):
/sbin/modprobe dock
#
# Bay (adds support for ACPI controlled removable drive bays such as the
# IBM UltraBay or the Dell Module Bay):
/sbin/modprobe bay
#
# Processor. This driver installs ACPI as the idle handler for Linux, and
# uses ACPI C2 and C3 processor states to save power, on systems that
# support it. It is required by several flavors of cpufreq Performance-
# state drivers.
/sbin/modprobe processor
#
# Thermal. This driver adds support for ACPI thermal zones. Most mobile and
# some desktop systems support ACPI thermal zones. It is HIGHLY recommended
# that this option be enabled, as your processor(s) may be damaged without it.
/sbin/modprobe thermal
#
# Memory. This driver adds support for ACPI Memory Hotplug. This driver
# provides support for fielding notifications on ACPI memory devices
# (PNP0C80) which represent memory ranges that may be onlined or offlined
# during runtime. Enabling this driver assumes that your platform hardware
# and firmware have support for hot-plugging physical memory. If your
# system does not support physically adding or ripping out memory DIMMs at
# some platform defined granularity (individually or as a bank) at runtime,
# then you need not enable this driver.
/sbin/modprobe memory
#
# Container (EXPERIMENTAL -- allows _physical_ insertion and removal of CPUs
# and memory on machines that support it):
/sbin/modprobe container
#
# ASUS/Medion Laptop Extras. This driver provides support for extra features
# of ACPI-compatible ASUS laptops. As some of Medion laptops are made by
# ASUS, it may also support some Medion laptops (such as 9675 for example).
# It makes all the extra buttons generate standard ACPI events that go through
# /proc/acpi/events, and (on some models) adds support for changing the
# display brightness and output, switching the LCD backlight on and off, and,
# most importantly, allows you to blink those fancy LEDs intended for
# reporting mail and wireless status. All settings are changed via
# /proc/acpi/asus directory entries. Owner and group for these entries can be
# set with asus_uid and asus_gid module parameters.
# More information and a userspace daemon for handling the extra buttons:
# http://sourceforge.net/projects/acpi4asus/
#/sbin/modprobe asus_acpi
#
# ThinkPad ACPI Laptop Extras. This is a driver for the IBM and Lenovo
# ThinkPad laptops. It adds support for Fn-Fx key combinations, Bluetooth
# control, video output switching, ThinkLight control, UltraBay eject and
# more. For more information about this driver see:
# Documentation/thinkpad-acpi.txt and http://ibm-acpi.sf.net/
#/sbin/modprobe thinkpad_acpi
#
# Toshiba Laptop Extras. This driver adds support for access to certain
# system settings on 'legacy free' Toshiba laptops. These laptops can be
# recognized by their lack of a BIOS setup menu and APM support. On these
# machines, all system configuration is handled through the ACPI. This
# driver is required for access to controls not covered by the general ACPI
# drivers, such as LCD brightness and video output. Configuration is
# accessed by reading and writing text files in the /proc tree. Furthermore,
# no power management functions are exposed, as those are handled by the
# general ACPI drivers.
# More information about this driver is available at:
# http://memebeam.org/toys/ToshibaAcpiDriver
#/sbin/modprobe toshiba_acpi
#
#
# See also the ACPI CPU frequency scaling driver in the 'CPU frequency
# scaling modules' section below.
Code:
### CPU frequency scaling modules:
# generic ACPI P-States based driver
#/sbin/modprobe acpi-cpufreq
# AMD mobile K6-2/3+ PowerNow!
#/sbin/modprobe powernow-k6
# AMD mobile Athlon PowerNow!
#/sbin/modprobe powernow-k7
# AMD Cool&Quiet PowerNow!
#/sbin/modprobe powernow-k8
# Intel SpeedStep using the SMI BIOS interface
#/sbin/modprobe speedstep-smi
# Intel SpeedStep on ICH-based chipsets
#/sbin/modprobe speedstep-ich
# Intel Enhanced SpeedStep
/sbin/modprobe speedstep-centrino
# Intel Pentium4/Xeon clock modulation
#/sbin/modprobe p4-clockmod
# NatSemi Geode GX / Cyrix MediaGXm
#/sbin/modprobe gx-suspmod
# Transmeta Crusoe / Efficeon LongRun
#/sbin/modprobe longrun
# VIA Cyrix Longhaul
#/sbin/modprobe longhaul
### CPU frequency scaling policies:
# Powersave policy, stick frequency to the slower state.
#/sbin/modprobe cpufreq_powersave
# Performance policy, stick frequency to the faster state.
#/sbin/modprobe cpufreq_performance
# Set the frequency on demand. What you want is what you get
/sbin/modprobe cpufreq_ondemand
# Same of On demand policy, but for slow switching CPUs (AMD64 e.g)
#/sbin/modprobe cpufreq_conservative
Sound
Get latest alsa snapshot: wget \
\!http://www.gtlib.gatech.edu/pub/suse/projects/alsa/snapshot/driver/alsa-driver-hg{ISO DATE e.g. 20070718}.tar.bz2
$ tar -xvjf *.tar.bz2
$ ./configure --with-cards-hda-intel
$ make
$ make install
$ reboot
Wifi
http://intellinuxwireless.org/?p=iwlwifi&n=howto-iwlwifi
Requires a kernel recompile, but it's a REALLY simple one (if you're not doing hibernate support at the same time):
* NB: The recommendation is to patch the kernel with the newest mac80211 code before you do this, but the mac80211 code built into 2.6.21.5 works fine for me*
cp /boot/config /usr/src/linux/.config
make menuconfig OR make xconfig or make
make
make bzImage
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-kernel-specific-info (eg. vmlinuz-huge-smp-2.6.21.5-smp)
cp /usr/src/linux/.config /boot/config-kernel-specific-info (eg. config-huge-smp-2.6.21.5-smp)
I don't know if you have to copy /usr/src/linux/System.map to /boot/System.map-kernel-specific-info or not, but I did.
vi /etc/lilo.conf
Add new linux section pointing to the new kernel image - give it a new name
run `lilo`
Add '/sbin/modprobe mac80211' to /etc/rc.d/rc.modules
reboot.
Then follow the instructions from the URL above:
Get the latest microcode for the driver:
wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-4965-ucode-.tgz
tar xvf iwlwifi-4965-ucode-.tgz
cp iwlwifi-4965-ucode-/iwlwifi-4965.ucode /lib/firmware/
Download & compile the latest iwlwifi driver:
wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-.tgz
tar xvf iwlwifi-.tgz
cd iwlwifi-
make
make install
Set up module and wpa_supplicant:
Add '/sbin/modprobe iwl4965' to /etc/rc.d/rc.modules
Adjust the default /etc/wpa_supplicant.conf with the right values for your network
Reboot (or just /etc/rc.d/rc.inet1 restart)
Run /usr/sbin/wpa_gui
Cross your fingers and your Wifi might just work.
You will probably need to play around with it tho.
Good Luck!
Power Management & Hibernation (Software Suspend)
Once you've loaded all the relevant kernel modules from above, just about ALL of the power management functions will work so long as you get it going as detailed in KLaptop or whatever other ACPI control application you plan on using.
The one thing that doesn't work out of the box in Slack12 is hibernation. The reason for this is that software suspend is not compatible with SMP kernels. I haven't checked yet if the default non-SMP kernel that slackware12 is shipped with has Software Suspend enabled or not, but what I've done is a quick kernel re-compile with SMP off and Software Suspend on, with the suspend hardcoded as /dev/sda4 (my swap partition). (I'm also tempted to do it again, but compile for Core2 processor optimisation).
With that done and a make install_modules, I added this to lilo.conf:
Code:
image=/boot/vmlinuz-huge-2.6.21.5-hibernate
root=/dev/sda4 # The swap partition
label=Slack12-Hib
read-only
And once booted, slack only sees one CPU core, but hibernate functions adequately (as long as you don't show it to a docking station).
compiz fusion
Get nVidia Drivers
Find and download the latest valid nVidia Drivers for the Graphics card. Currently: NVIDIA-Linux-x86-100.14.09-pkg1.run
$ chmod a+x NVIDIA-Linux-x86-100.14.09-pkg1.run $ ./NVIDIA-Linux-x86-100.14.09-pkg1.run
Follow the instructions.
When it asks, do not alter xorg.conf yet (well you can if you want, we'll overwrite anyway).
Once the installation is complete, run: $ nvidia-xconfig --composite --render-accel --add-argb-glx-visuals
[edit] Remove default compiz package
$ removepkg compiz-0.5.0-i486-1
Get some extra bits from DROPLINE GNOME
http://sourceforge.net/project/showfiles.php?group_id=62166&package_id=71205&release_id=522875
libwnck-2.18.3-i686-1dl.tgz pycairo-1.4.0-i686-2dl.tgz pygobject-2.12.3-i686-3dl.tgz pygtk-2.10.6-i686-1dl.tgz pyrex-0.9.5.1a-i486-3dl.tgz sexy-python-0.1.9-i686-4as.tgz
$ for i in ${ls}; installpkg $i; done;
Download relevant compiz packages
Download every available tar.gz archive (except compizconfig-backend-gconf-0.5.2.tar.gz as it's unnecessary) from http://releases.compiz-fusion.org/0.5.2/ including the compiz sub-directory:
Code:
total 7892
drwxr-xr-x 3 root root 4096 2007-10-12 17:46 ./
drwxr--r-- 6 root root 4096 2007-10-12 18:22 ../
-rw-r--r-- 1 root root 538224 2007-10-12 17:34 ccsm-0.5.2.tar.gz
drwxr-xr-x 2 root root 4096 2007-10-12 17:46 compiz/
-rw-r--r-- 1 root root 84299 2007-10-12 17:33 compiz-bcop-0.5.2.tar.gz
-rw-r--r-- 1 root root 1994583 2007-10-12 17:34 compiz-fusion-plugins-extra-0.5.2.tar.gz
-rw-r--r-- 1 root root 929309 2007-10-12 17:34 compiz-fusion-plugins-main-0.5.2.tar.gz
-rw-r--r-- 1 root root 606025 2007-10-12 17:34 compiz-fusion-plugins-unsupported-0.5.2.tar.gz
-rw-r--r-- 1 root root 546480 2007-10-12 17:34 compizconfig-backend-kconfig-0.5.2.tar.gz
-rw-r--r-- 1 root root 353750 2007-10-12 17:34 compizconfig-python-0.5.2.tar.gz
-rw-r--r-- 1 root root 643611 2007-10-12 17:34 emerald-0.5.2.tar.gz
-rw-r--r-- 1 root root 1552963 2007-10-12 17:34 emerald-themes-0.5.2.tar.gz
-rw-r--r-- 1 root root 424622 2007-10-12 17:34 libcompizconfig-0.5.2.tar.gz
./compiz:
total 1752
drwxr-xr-x 2 root root 4096 2007-10-12 17:46 ./
drwxr-xr-x 3 root root 4096 2007-10-12 17:46 ../
-rw-r--r-- 1 root root 1778046 2007-10-12 17:34 compiz-0.5.2.tar.gz
Unpack
First, compiz itself:
$ CFLAGS=$SLKCFLAGS CXXFLAGS=$SLKCFLAGS ./configure \
--prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--infodir=/usr/info --mandir=/usr/man --disable-static \
--disable-gconf --enable-kde --enable-librsvg
$ make
$ make install
Then everything else except ccsm-0.5.2. Generally do it in a sensible order, e.g: Install emerald before emerald-themes Install libcompizconfig before compizconfig-python before compizconfig-backend-kconfig or you may get dependency errors.
Install them all like this:
$ ./configure --prefix=/usr
$ make
$ make install
Then install ccsm:
$ cd ccsm-0.5.2
$ python setup.py install --prefix=/usr
Setup simple way to start compiz:
Add system alias: alias comp='~/.kde/startcompiz.sh'
Code:
#!/bin/sh
compiz --ignore-desktop-hints --replace ccp && emerald &
**OR**
compiz --ignore-desktop-hints --replace dbus png svg decoration \
wobbly fade minimize cube switcher move resize place rotate zoom scale
kde-window-decorator --replace (&?)
Reboot
Start Compiz
Try 'comp' out.
If it works and you want it to boot every time:
$ mkdir ~/.kde/env
$ cd ~/.kde/env
$ touch compizwm.sh
$ chmod a+x compizwm.sh
$ vi compizwm.sh
Code:
#!/bin/sh
KDEWM=$HOME/.kde/startcompiz.sh
export KDEWM