Dugan Chen's Homepage

Various Things

Slackware 12.2 on an Asus A8JS

Introduction

My Asus A8JS is my third Linux laptop. My first was a Toshiba Satellite 310CDS. My second was an IBM Thinkpad T23, and my experiences with it are documented elsewhere on this page. Here’s what you need to do to set up Linux (in this case, Slackware 12.2) on an Asus A8JS.

Partitioning

The Asus A8JS comes with a partition scheme that’s very Linux friendly. There’s a small recovery partition, followed by a Vista partition, then an empty DATA partition of equal size. Simply use Vista’s Disk Management tool to delete the DATA partition.

Preparation

Downloading the NVidia video driver and having it handy (on a USB flash drive, for example) before installing Slackware will allow you to start X as early as early as possible.

Installation

Now start installing Slackware. When asked to choose a kernel, say “hugesmp.s vga=792.” Continue. When you get to the partioning section, create a new partition in the empty space where the data partition was. Leave 4096MB unpartitioned and then create a 4GB swap partition there. Eventually, you’ll be prompted to install a boot loader, which, because you’re installing Slackware, will be LILO. Install LILO to the beginning of your Slackware partition.

Dual Booting

Boot back into Vista. Install EasyBCD and use it to set up dual-booting.

Boot back into Slackware.

New Kernel (Optional)

Slackware’s stock kernel works very well. A new one, however, will allow improvements in both latency and power management. It will allow, for example, those from ThinkWiki’s How to reduce power consumption page.

First download the kernel from kernel.org (use links or lftp). Untar the kernel into your home directory. Copy the appropriate configuration file into the kernel source directory. From a terminal, these would be the commands:

cd
tar xfj linux-VERSION.tar.bz2
cd linux-VERSION
cp /boot/config-generic-smp-`uname -r` ./.config

VERSION is the version of the kernel you downloaded.

Then set up the kernel:

make oldconfig
make menuconfig

Set up your kernel as follows:

Enable the block layer
[*] Support for tracing block io actions
Processor type and features
[*] Tickless System (Dynamic Ticks)
[*] High Resolution Timer Support
Processor family (Core 2/newer Xeon)
[ ] SMT (Hyperthreading) scheduler support
Preemption Model (Voluntary Kernel Preemption (Desktop))
[*] 64 bit Memory and IO resources (EXPERIMENTAL)
[ ] Compat VDSO support
Power management options
[*] CPU idle PM support
Power management options —> CPU Frequency scaling
Default CPUFreq governor (ondemand)
Device Drivers
< > ATA/ATAPI/MFM/RLL support
Device Drivers —> Character devices
[*] HPET - High Precision Event Timer
Device Drivers —> Sound card support —> Advanced Linux Sound Architecture —> PCI sound devices
<M> Intel HD Audio
[*] Aggressive power-saving on HD-audio
(60) Default time-out for HD-audio power-save mode
Device Drivers —> USB support
[*] USB selective suspend/resume and wakeup

Also build in support for whatever filesystem your boot partition uses.

Now build the kernel:

make
make modules_install
cp arch/i386/bzImage /boot/vmlinuz-custom

Make an entry in /etc/lilo.conf for /boot/vmlinuz-custom.

Now run /sbin/lilo. Reboot.

Setting Up X

Install the NVidia driver.

Delete your xorg.conf. Then generate a new one with:

nvidia-xconfig --no-logo --no-use-edid-dpi --composite

Now alter /etc/X11/xorg.conf by adding the following two lines to the Monitor section:

  • Option "UseEdidDpi" "FALSE"
  • DisplaySize 379 238

This will get you a display resolution of 96dpi.

Launch X as root. Run nvidia-settings to set X to the appropriate resolution (1440×900).

Each user on the system should then run nvidia-settings and set the “GPU Scaling Method“ to “Aspect Ratio Scaled”.

Wireless Networking

Setting up wireless networking is easy. Simply install wicd—it’s included with Slackware but not installed by default. Look in the extra directory of the installation disc (or any mirror). Follow the included instructions, and use its GUI.

Font Rendering

Please see Optimizing Slackware Linux’s Fonts for tips on setting up font rendering. I recommend installing the patched versions of Freetype, Fontconfig, libXft and Cairo there.

Modem

Getting the modem to work is easy. Just use scanModem to find out which driver package you need. Once you know, download it and do the following:

  1. untar it
  2. copy its slmodemd file to /usr/local/sbin
  3. make /usr/local/sbin/slmodemd executable

Now add the following to /etc/rc.d/rc.local:

/usr/local/sbin/slmodemd -c CANADA --alsa hw:0,6 &
ln -s /dev/ttySL0 /dev/modem
chgrp users /dev/modem

If you don’t live in Canada then change CANADA to to your country.

Webcam

The GSPCA driver supports the webcam. Install it using Eric Hameleer’s SlackBuild.

Use CamStream to test the webcam.

Power Management

Uncomment the line in /etc/rc.d/rc.modules that loads acpi-cpufreq.

LCD Brightness

LCD brightness can be changed with ACPITool. It works only with the asus-acpi kernel module. However, Slackware loads the more advanced asus-laptop module by default. You’ll have to add “blacklist asus-laptop” to /etc/modprobe.d/blacklist before acpitool will change LCD brightness.

Configuration

Here’s what some of your configuration files should look like:

/etc/rc.d/rc.local

/usr/local/sbin/slmodemd --alsa hw:0,6 &
ln -s /dev/ttySL0 /dev/modem
chgrp users /dev/modem
/sbin/modprobe gspca
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

Make sure this file is marked as executable.

/etc/acpi

On Christian Rothländer’s Asus A8JS Linux Howto you will find an archive of scripts to handle ACPI events. Untar it into /etc, and your volume up and down keys (FN-F11 and FN-F12) will start working.

Miscellaneous Tweaks

BIOs

I’ve had the best results with version 2.13 of the BIOS. It’s available from the Asus support page. If you’ve wiped out your Vista partition then you can use a FreeDOS boot CD to do the upgrade: see LinuxInsight’s HowTo.

MPlayer

When you install MPlayer, put monitoraspect=16/9 in your mplayer configuration file to make it play clips at their correct aspect ratio.

OSS4

I’ve been experimenting with OSS4, which replaces ALSA. It seems to work better. Now, I can play YouTube – Mario’s suite of fully with the sound in perfect sync—something that I couldn’t do with ALSA.

If you want to try it, first read Insane Coding’s State of sound in Linux not so sorry after all, which has a good description of the pros and cons. Then, install the latest Open Sound System from 4Front Technologies. Installation instructions are on the download page.

Finally, set up your /etc/asound.conf according to Insane Coding’s Perfect sound with OSS version 4. Specifically, append the following blocks:

pcm.!default {
type oss
device /dev/dsp
}

ctl.!default {
type oss
device /dev/mixer
}

When you finish, lsmod will show OSS modules instead of ALSA modules. Your programs will output sound to either ALSA or OSS.

What Doesn’t Work

Suspend to RAM

I’ve been unable to get suspend to RAM working. Slackware resumes to a blank screen.

Links

Asus A8JS Support Page

Go There »

Asus A8JS Linux Howto

Christian Rothländer’s (very comprehensive) guide to running Gentoo Linux on this laptop. Includes notes on which BIOS versions break what.

Go There »

nV News Linux Support Forums

The resource for using NVidia hardware under Linux.

Go There »