Asus A6700K

Da MontelLUG.

Installing Linux on an ASUS A6700K laptop

The new Asus A6700K series is a very intersting laptop, because of its good balance between performance and costs, but it is also more interesting for those who want to use Linux on it, allowing to exploit 64 bit capabilities of its Turion processor. In fact, installing a x86_64 compiled Linux ditribution makes you able to have a laptop with battery duration similar to a Centrino machine, but optimized for 64 bit. After a short period of testing I found that the intalled version of Linux works very well, and seems much faster than the preinstalled OS. When I chose the distribution to install i preferred a Mandriva 2005 LE for x86_64, for two reasons:

  • Up to now, it is the only one, together with Ubuntu, that correctly supports widescreen 1280x800 monitor.
  • Usually, Mandrake is up to date and easily supports new hardware.

I found this distro very good, not affected by the number of bugs that infected previous Mandrake versions (10.0 and 10.1), easy to configure, and stable. Please note that 64 bit version of Mandrake is distributed on a single CD version, with very basic system: all additional packets can be downloaded adding ftp repository to the list of media source, but this needs you have at least a DSL connection available.


IMPORTANT! The author of this guide declines all responsibility for every damage or data loss due to the usage of the informations contained in this guide. Use them AT YOUR OWN RISK! If you have important data inside your laptop, it is STRONGLY recommended to make a backup of your data before starting the installation procedure.

Basic system installation

To start the installation, download the distribution ISO file, than burn it using a software like k3b or Nero. Then insert the CD in the laptop and reboot it. Just when the Asus logo appears, press "ESC" to enter boot selection menu. Choose CD-DVD unit for boot and then follow the instructions for installation. The disk is already partitioned in three parts. The first contains hidden copy of rescue disk, the second contains Windows, and the third is empty (on a virgin PC), ready for data. The safest choice is to cancel the last partition and then use it to install Linux. The only thing you have to care about is the driver for the graphics card: when the hardware summary appears, the graphics will appear as "unknown": select GeForce generic driver. This will not work so good, but it is only temporary before you install the right driver.

Graphics card (and kernel)

Unfortunately, the Linux Generic driver is not suitable for the new GeForce 6200 TurboCache installed on the notebook. The best choice is to install the NVIDIA driver, available at NVIDIA site http://www.nvidia.com. The matter is that to install it, the kernel source files must be installed. Unfortunately, the kernel source packet available on Mandriva repository has a sligtly different version than the pre-installec distribution kernel, so the NVIDIA drivers will not be able to install. So, don't worry: just recompile the kernel! This is an operation that requires a good knowlwdge of what you are doing: the explanation of how to make it is out of the scope of this text. You can find many informations on kernel re-compiling in Internet. If you want to try to make your kernel quickly, feel free to try my .config file (will be added soon). To do so, follow these instructions:

  • Make sure to have the gcc compiler suite installed, make, autoconf, automake, and so on...
  • Install kernel source files
  • Open a shell and enter /usr/src/linux-kernel_version directory
  • Copy <a href="./.config">.config</a> file in that directory
  • Run make bzImage && make modules && make modules_install</i>, take a cup of coffee/tea and wait...
  • Copy the file /usr/src/linux-kernel_version/arch/x86_64/boot/bzImage in /boot/
  • Make initrd image: mkinitrd initrd-kernel-version.img kernel-version
  • Add these lines to your /etc/lilo.conf:
    image=/boot/bzImage-kernel_version
    label="Linux-a"
    root=/dev/hda5 initrd=/boot/initrd-kernel_version.img
    vga=788
    read-only
  • Run lilo as root and reboot trying your new kernel

If everything is ok, now you're ready to install NVIDIA drivers. Close the X Environment (press CTRL+ALT+Backspace), then run the file of NVIDIA drivers. It will do everything by itself, also showing you what to change in /etc/X11/xorg.conf. After editing this file, restart X and everything is done.

LAN and Wireless

The LAN card is a Realtek 8139 chipset, so if the system doesn't recognize it automatically, there's something going wrong. For the wireless LAN, the solution is not so straightforward, but notthing is lost. Here comes the Ndiswrapper project: if you compiled the kernel using my config file, you should have the kernel module ready to be loaded: just run modprobe ndiswrapper as root. After that, download the 64 bit version of Windows driver for Broadcom BCM4306 802.11b/g Wireless LAN Controller from http://www.linuxant.com/driverloader/drivers.php?PHPSESSID=7ef996dbf5150afc71e5ac02c2bba9f2. Unpack the file, and then run ndiswrapper -i 'BCMWL564.SYS'. If everything is ok, you can verify if the module is installed by typing: ndiswrapper -l. Now you should have a new wireless device which you can configure using the commands iwconfig and ifconfig.
Just a curiosity: if you compiled the kernel with support for ASUS laptop ACPI extensions, you can switch the LED for wireless LAN, using echo 1 > /proc/acpi/asus/wled.

Modem

Winmodems has been (and often still are) a problem for installation under Linux environment. In this case there is a possibility of making the modem work. The driver is included inside kernel modules (called intel8x0m), just "modprobe" it. To create the device, you have to download the slmodemd packet. Just follow the instructions of the README file to use it. Unfortunately, I've been able to create the device and test the modem with kppp, but there is no signal on the line, so the modem seem to be unable to connect. I still don't know the reason for this, maybe it's a problem of configuration, or maybe the wrong version of slmodemd. If anybody is able to make the modem run, please let me know.

Power management

Power Management of Turion processor is based on powernow-k8 module. Under /sys/devices/system/cpu/cpu0/cpufreq/ directory, you can find all the control files to mange the cpu frequency through the kernel. Anyway, it is more useful to adopt an external daemon to control cpu power. I've used powernowd. Just download, unpack and "configure-make-make install" it. This should take no matter. After that, you can modify the /etc/acpi/action/battery.sh file, configuring your own power management parameters for both on-line an battery usage. As an example, here there's my configuration:

 
 #!/bin/bash
if [ -r /etc/sysconfig/laptop ]; then
. /etc/sysconfig/laptop
fi

# cpu throttling
# cat /proc/acpi/processor/CPU0/throttling for more info
ACAD_THR=${ACAD_THR=0}
BATT_THR=${BATT_THR=2}

# spindown time for HD (man hdparm for valid values)
# I prefer 2 hours for acad and 20 seconds for batt
ACAD_HD=${ACAD_HD=244}
BATT_HD=${BATT_HD=4}

# ac/battery event handler

status=`awk '/^state: / { print $2 }' /proc/acpi/ac_adapter/*/state`

case $status in
"on-line")
# Impostazioni predefinite
echo "Switching to on line battery mode"
#Imposta alcuni parametri di gestione del disco (frequenza di journalizing, ecc.)
/sbin/laptop-mode stop
# Imposta uno lo sleep-time del disco a 21 min e nessun risparmio energetico sul disco
/sbin/hdparm -S $ACAD_HD /dev/hda > /dev/null 2>&1
/sbin/hdparm -B 255 /dev/hda > /dev/null 2>&1
echo "Setting CPU throttling to $ACAD_THR"
# Gestione della CPU: non sembra corretto leggendo il file
# echo -n $ACAD_THR > /proc/acpi/processor/CPU*/throttling
powernowd -l 10 -u 50 -m 3
# Impostazioni mie
# Luminosita' del monitor
echo 12 > /proc/acpi/asus/brn
exit 0
 ;;
"off-line")
echo "Switching to off line battery mode"
#Imposta alcuni parametri di gestione del disco (frequenza di journalizing, ecc.)
/sbin/laptop-mode start
# Imposta uno lo sleep-time del disco a 21 min e nessun risparmio energetico sul disco
/sbin/hdparm -S $BATT_HD /dev/hda > /dev/null 2>&1
/sbin/hdparm -B 1 /dev/hda > /dev/null 2>&1
echo "Setting CPU throttling to $BATT_THR"
# Gestione della CPU: non sembra corretto leggendo il file
# echo -n $BATT_THR > /proc/acpi/processor/CPU*/throttling
powernowd -l 70 -u 100 -m 3
# Impostazioni mie
# Luminosita' del monitor
echo 3 > /proc/acpi/asus/brn

exit 0
 ;;
esac

Note that the file /proc/acpi/asus/brn controls monitor brightness, setting values between 1 (minimum brightness) and 15 (maximum brightness). With this configuration my laptop lasts about three hours using the battery.

Other devices

  • Sound card: it uses a SiS7012 chipset, working with intel8x0 module. It should be recognized during installation and works without problems.
  • Firewire: it is recognized and used by ohci1394 module. I've no Firewire periphericals, so I can't test it.
  • Touchpad: works fine, recognized during installation as SynPS/2 Synaptic Touchpad.
  • DVD writer: no matters to burn DVD+R with k3b. It seems that it doesn't copy CDs in RAW mode.
  • IrDA: an infrared port has been recognized, but there's no driver for it.
  • PCMCIA: no matters, just remember to load pcmcia module or compile it in the kernel.
  • Parallel port: It's your /dev/lp0 device. No matter if during boot, the system may advise you that it is unable to load modules for parallel printer: I've included them inside the kernel, your printer won't have problems, if supported. The same is for USB and IEEE 1394 modules.
  • Card reader: The chipset used is not supported, no way to make it run.
  • Web-cam: I was not so hopeful to make it run under Linux, but I was surprised to find a project that is developing a "http://www.linux-projects.org/modules/news" driver for the Ali chipset that controls it. So stay tuned...

That's it. I hope this could be useful. If you have comments, suggestions, errata, further infos, or something else (not viruses or spam, indeed), please "mailto:davide.rondini@gmail.com".