Linux on Laptops
|
 |
Installing Mandrake 10.1 on ASUS V6800V
Last updated: 04 May 2005
General Hardware Specifications of ASUS V6800V:
|
Hardware Components
|
Status under Linux
|
Notes
|
| Centrino Processor, 2.13 GHz |
Works |
No special procedure required during installation. |
| 15" SXGA+ Display |
Works |
Select Generic LCD Display in Installer |
| Dedicated ATI 64MB Video ( ATI Radeon M X600) |
Works |
Upgrade XOrg to 6.8.2 (Had to recompile) |
| 1GB, DDRII, 2DIMMs |
Works |
No special procedure required during installation |
| 80 GB, 5400rpm Hard Drive |
Works |
No special procedure required during installation |
| Integrated Gigabit Network Card |
Works |
No special procedure required during installation |
| Integrated IntelPRO Wireless Network Card |
Works |
Required upgrade of ipw2200 module and firmware |
| Integrated Bluetooth |
Works |
No special procedure required during installation |
| Internal 56k Modem |
Unknown |
Don't use dialup so haven't tested |
| 4xDVD+/-Dual Format R/RW burner |
Works |
No special procedure required during installation |
| Stereo 4-way Surround Sound |
Works |
No special procedure required during installation |
| Synaptics TouchPad |
Works |
No special procedure required during installation |
| Firewire Controller |
Works I think |
Seems to be supported based on log output. I don't have any devices to test though |
| Ricoh MultiCard Reader |
Doesn't Work |
I gave up |
| Ricoh PCMCIA |
Works |
No special procedure required during installation |
| Battery |
Works |
Lasts between 2-3 hours |
This laptop is operating under Kernel version 2.6.8.1-12mdk
Basic Installation of Mandrake 10.1:
- Why Mandrake? - I prefer it's feel and content
- Obtaining Mandrake - I purchased burnt CD's from ELX
- Installing - Basic install was pretty easy, however I recommend leaving setting up your network and XOrg until the install is complete. Read further for why.
- Post-Install modifications/tweaks
- I couldn't get the wireless card to work until I downloaded the latest ipw2200 driver and firmware files from SourceForge (see Links). Once I'd done that, getting the wireless card to work was a breeze.
- This latest kernel takes a long time to timeout setting up DHCP on the network interfaces when no cable/network is present. So in a wireless environment it would pause a long time setting up eth0, and vice versa for eth1 in a cabled environment. I resolved this with parameters on the kernel command line. See Below.
- The asus_acpi module was not inserted by the install by default, so ACPI wasn't working. So I added it into /etc/modprobe.preload.
- Mandrake didn't include anything particularly useful with respect to ACPI processing. See below for what I did to setup ACPI more or less properly
- XOrg setup would only support the vesa module for display. Mandrake 10.1 came with XOrg 6.7.0 which doesn't include support for the ATI Radeon Mobility X600. I downloaded the source to XOrg 6.8.2 (in which the radeon driver now supports the X600) and followed the instructions to build and install it. Everything worked seemlessly and the radeon module supported my display.
- I needed the newer XOrg because I wanted a dual-head setup (see below). If you don't need dual-head then there's no real reason to upgrade XOrg.
Setting up additional features for Mandrake 10.1
- Getting Bluetooth to work
Nothing to do! Seems to work out of the box. Bluetooth button also appears to work without any configuration.
- Getting the Wireless card to work
- Download the latest ipw2200 driver (1.0.3 atm) and firmware files (2.2 atm) from SourceForge.
- Follow the instructions to build and install the driver, and extract the firmware files into /lib/hotplug/firmware (you'll need to create this directory yourself).
- That should be it - either reboot, or do a 'modprobe ipw2200' and setup your wireless.
- Getting the network connections to stop delaying the install
This lets you choose which network(s) to enable at boot time, so you can select to only have ethernet, only wireless, both, or neither.
- Put the following code near the start of /etc/rc.d/init.d/network, just after the 'interfaces=' line:
# Don't startup eth0 if commandline says not to.
if strstr "$cmdline" noeth0; then
interfaces="`echo $interfaces | sed -e 's/eth0//g'`"
fi
# Don't startup eth1 if commandline says not to.
if strstr "$cmdline" noeth1; then
interfaces="`echo $interfaces | sed -e 's/eth1//g'`"
fi
Create some new lilo entries in /etc/lilo.conf that specify 'noeth0' and/or 'noeth1' on the kernel command line:
image=/boot/vmlinuz
label="linux"
root=/dev/hda6
initrd=/boot/initrd.img
append="acpi=on resume=/dev/hda5 splash=silent mem=1024M"
vga=788
read-only
image=/boot/vmlinuz
label="linux-ethonly"
root=/dev/hda6
initrd=/boot/initrd.img
append="acpi=on resume=/dev/hda5 splash=silent mem=1024M noeth1"
vga=788
read-only
image=/boot/vmlinuz
label="linux-wlanonly"
root=/dev/hda6
initrd=/boot/initrd.img
append="acpi=on resume=/dev/hda5 splash=silent mem=1024M noeth0"
vga=788
read-only
image=/boot/vmlinuz
label="linux-nonet"
root=/dev/hda6
initrd=/boot/initrd.img
append="acpi=on resume=/dev/hda5 splash=silent mem=1024M noeth0 noeth1"
vga=788
read-only
Run 'lilo' to apply the changes.
Setting up ACPI nicely
Getting ACPI working was annoying simply because I had to set everything up myself. There were various references on the net to the acpi-support 'package', though I couldn't find any such package - at least not for Mandrake.
However, I found http://acpi4asus.sourceforge.net which gave me a basis from which to work and some sample scripts. I then used the ACPI event codes (see below) to setup the following scripts.
To get ACPI working, minus suspend/hibernate support (see below), do the following steps.
- Put 'asus_acpi' into /etc/modprobe.preload. Mandrake includes the module, but fails to set it up during install time. Then either reboot, or manually load the module using 'modprobe asus_acpi'.
- Some things just worked even without the module:
- Bluetooth hotkey (3rd button from top left)
- Fn+F6 and Fn+F7 to control brightness
- Fn+F7 to turn of the LCD
- Fn+F8 to switch between LCD,CRT,LCD+CRT
- For the rest, put the following into your /etc/acpi/actions directory:
- mute.pl - this script will later be used when Fn+F10 is pressed.
#!/usr/bin/perl
$voldata="/etc/acpi/vol.data";
$vol = `aumix -q | grep vol | cut -d " " -f 3`;
chomp($vol);
if($vol =~ /^0/) {
open(VOL,"<$voldata") || die "Can not read vol.data!\n";
$old_vol = ;
close(VOL);
system("aumix -v $old_vol");
system("rm $voldata");
} else {
open(VOL,">$voldata") || die "Can not write vol.data!\n";
print VOL "$vol";
close(VOL);
system("aumix -v 0 ");
}
- network.sh - this script will later be used when controlling the network status using the buttons at the top left of the system
Note that some scripts on the net have coded this (or the event code itself) to toggle the wireless LED. I've done this using the ifup/ifdown script environment (see below) so that the LED status is valid whether the startup scripts OR the buttons are used.
#!/bin/sh
#/etc/acpi/network.sh
# This script toggles the state of the given interface.
# If it's up, it will bring it down.
# If it's down, it will bring it up.
DEVICE=$1
if ifconfig $DEVICE | grep "inet addr:" >/dev/null 2>&1; then
ifdown $DEVICE
else
ifup $DEVICE
fi
Put the following into your /etc/acpi/events directory:
- eth - this file sets up the action for the network hotkey
# /etc/acpid/events/eth
# This is called when the user presses the network hotkey (4th key on top left)
# It requires /etc/acpi/actions/network.sh
event=hotkey.*51[[:space:]].*
action=/etc/acpi/actions/network.sh eth0
- wlan - this file sets up the action for the wireless hotkey
# /etc/acpid/events/wlan
# This is called when the user presses the wireless hotkey (5th key on top left)
# It requires /etc/acpi/actions/network.sh
event=hotkey.*5d[[:space:]].*
action=/etc/acpi/actions/network.sh eth1
- power - this file sets up the action for the power button
# /etc/acpid/events/power
# This is called when the user presses the power button
event=button/power (PWR.|PBTN)
action=/sbin/poweroff
- mute - this file sets up the action for muteing sound using Fn+F10
# /etc/acpid/events/mute
# This is called when the user presses the Fn+F10 button to toggle mute
# It requires /etc/acpi/actions/mute.pl and aumix installed.
event=hotkey.*32[[:space:]].*
action=/etc/acpi/actions/mute.pl
- vol_down - this file sets up the action for reducing sound volume using Fn+F11
# /etc/acpid/events/vol_down
# This is called when the user presses the Fn+F11 button to lower volume
# It requires aumix installed
event=hotkey.*31[[:space:]].*
action=/usr/bin/aumix -v -5
- vol_up - this file sets up the action for increasing sound volume using Fn+F12
# /etc/acpid/events/vol_up
# This is called when the user presses the Fn+F12 button to increase volume
# It requires aumix installed
event=hotkey.*30[[:space:]].*
action=/usr/bin/aumix -v +5
I haven't setup the following events yet:
- lid events - I can't get suspend or hibernate to work, so I haven't setup any events
- Fn+F1 and Fn+F4 (hibernate/suspend) - I can't get suspend or hibernate to work, so I haven't setup any events
- Fn+F2 (wireless) - according to /proc/acpi/events this didn't actually produce an event
- touchpad button (top leftmost button) - can't disable the pad easily, and I haven't thought of another use yet.
- powergear button (top left 2nd button) - powergear is windows specific, and I haven't thought of another use yet.
Setting up the wireless LED control
Controlling the wireless LED is done by echoing 1 or 0 into /proc/acpi/asus/wled. Some ACPI solutions have done this processing in the ACPI scripts, but this only controls the LED when the wireless hotkey is pressed. If wireless is brought up during normal system startup the LED doesn't reflect the status.
I've made use of the /etc/sysconfig/network-scripts/ifup.d and /etc/sysconfig/network-scripts/ifdown.d areas. Any scripts in these areas will get executed during an ifup or ifdown call respectively. I've created scripts in these areas to detect if a wireless interface is being toggled, and set the LED appropriately - thus controlling the LED in all situations.
Create the following scripts:
- /etc/sysconfig/network-scripts/ifdown.d/wledoff
#!/bin/sh
#/etc/sysconfig/network-scripts/ifup.d/wledoff
. /etc/sysconfig/network-scripts/network-functions
DEVICE=$1
if is_wireless_device $DEVICE; then
echo 0 > /proc/acpi/asus/wled
fi
- /etc/sysconfig/network-scripts/ifdown.d/wledon
#!/bin/sh
#/etc/sysconfig/network-scripts/ifup.d/wledon
. /etc/sysconfig/network-scripts/network-functions
DEVICE=$1
if is_wireless_device $DEVICE; then
echo 1 > /proc/acpi/asus/wled
fi
Setting up Dual-Head support
Setting up dual-head was a bit of a hit-and-miss affair. After upgrading to XOrg 6.8.2, I had no luck initially trying to manually modify the xorg.conf file using the man pages for reference - even though I'm sure I tried what finally worked. I resorted to downloading the proprietary ATI drivers from http://www.ati.com and using their setup utility.
The proprietary driver ultimately didn't work and I went back to the XOrg driver, but the ATI setup utility gave me an xorg.conf file I could massage into my final solution.
I suggest upgrading XOrg to 6.8.2, and grabbing my xorg.conf file listed below. Modify the frequencies appropriately for your monitors, and configure the screen positions to your liking. You shouldn't need to change anything else.
Unresolved issues
- Can't get suspend to work - either to RAM or Disk
Tried manually using pmsuspend2 and hibernate, and also tried klaptop_acpi_helper. Nothing worked. The actual suspension would work, but the system would not restart after suspension. I gave up.
- Can't get the Ricoh MultiCard reader to work
Can't seem to find any resources on the net to help, and it didn't work at all out of the box. It doesn't detect card insertion or removal even, so the fault is in detected the device itself. I gave up.
- Sometimes when I reboot without an external screen after having dual-mode operating, the keyboard doesn't work
I use dual-head at work, and not at home. I've noticed when I power on at home that after the display manager starts the keyboard stops working. It seems strange for this to be related to having a second screen attached or not, but that's the only thing I can think of at the moment. I've tried commenting out the second screen in the xorg.conf ServerLayout section. I've tried starting the display manager right at the end of the boot cycle (using chkconfig to change the order) to make sure that something wasn't starting after it to kill the keyboard. Everything to no avail.
It just seems that eventually (multiple reboots) it will just start to work again.
Configuration Files
# **********************************************************************
# Refer to the XF86Config man page for details about the format of
# this file.
# **********************************************************************
Section "Files"
# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Mandrake 6.0 and later now use a font server independent of
# the X server to render fonts.
FontPath "unix/:-1"
EndSection
Section "ServerFlags"
#DontZap # disable (server abort)
AllowMouseOpenFail # allows the server to start up even if the mouse doesn't work
#DontZoom # disable / (resolution switching)
EndSection
Section "Module"
Load "dbe" # Double-Buffering Extension
Load "v4l" # Video for Linux
Load "extmod"
Load "type1"
Load "freetype"
Load "synaptics"
Load "dri"
Load "glx" # 3D layer
#Load "/usr/X11R6/lib/modules/extensions/libglx.a"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbModel" "pc105"
Option "XkbLayout" "en_US"
Option "XkbOptions" ""
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/mouse"
Option "ZAxisMapping" "6 7"
EndSection
Section "InputDevice"
Identifier "SynapticsMouse0"
Driver "synaptics"
Option "Protocol" "auto-dev"
Option "Device" "/dev/input/mice"
Option "MaxSpeed" "0.12"
Option "MinSpeed" "0.06"
Option "BottomEdge" "4200"
Option "SHMConfig" "on"
Option "LeftEdge" "1700"
Option "FingerLow" "25"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "FingerHigh" "30"
Option "VertScrollDelta" "100"
Option "TopEdge" "1700"
Option "RightEdge" "5300"
Option "AccelFactor" "0.0010"
EndSection
Section "Monitor"
VendorName "Generic"
ModelName "Flat Panel 1400x1050"
Identifier "monitor0"
HorizSync 31.5-90
VertRefresh 59-75
Option "DPMS"
EndSection
Section "Monitor"
VendorName "Generic"
ModelName "Flat Panel 1280x1024"
Identifier "Monitor1"
HorizSync 31-81
VertRefresh 56-75
Option "DPMS"
EndSection
Section "Device"
Identifier "device0"
Driver "radeon"
Option "DPMS"
Option "DDCMode" "True"
Option "MonitorLayout" "LVDS, TMDS"
Option "CRT2HSync" "31-81"
Option "CRT2VRefresh" "56-75"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "device1"
Driver "radeon"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "screen0"
Device "device0"
Monitor "monitor0"
DefaultColorDepth 24
Subsection "Display"
Depth 24
Modes "1400x1050" "1280x1024" "1280x960" "1024x768"
ViewPort 0 0
#Virtual 2680 1050
EndSubsection
EndSection
Section "Screen"
Identifier "screen1"
Device "device1"
Monitor "monitor1"
DefaultColorDepth 24
Subsection "Display"
Depth 24
Modes "1400x1050" "1280x1024" "1280x960" "1024x768"
ViewPort 0 26
#Virtual 2680 1050
EndSubsection
EndSection
Section "ServerLayout"
Identifier "layout0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
InputDevice "SynapticsMouse0" "AlwaysCore"
Screen "screen0"
Screen "screen1" RightOf "screen0"
EndSection
ACPI codes for hotkeys and events
This information was obtained by unloading the asus_acpi module, and running 'cat /proc/acpi/event' and pressing keys, closing the lid, and unplugging the power cable.
- pad button - hotkey ATKD 0000006b
- pgear button - hotkey ATKD 0000005c
- btooth on button - hotkey ATKD 0000007d
- btooth off button - hotkey ATKD 0000007e
- eth button - hotkey ATKD 00000051
- wlan button - hotkey ATKD 0000005d
- sleep (Fn+F1) - button/sleep SLPB 00000080
- hibernate (Fn+F4) - hotkey ATKD 0000006d
- lcd off (Fn+F7) - hotkey ATKD 00000034
- lcd on (Fn+F7) - hotkey ATKD 00000033
- mon toggle (Fn+F8) - hotkey ATKD 00000061
- mute (Fn+F10) - hotkey ATKD 00000032
- vol down (Fn+F11) - hotkey ATKD 00000031
- vol up (Fn+F12) - hotkey ATKD 00000030
- lid - button/lid LID 00000080
- ac out - ac_adapter AC0 00000080
battery BAT0 00000080
processor CPU1 00000080
processor CPU1 00000081
- ac in - ac_adapter AC0 00000080
battery BAT0 00000080 00000001
processor CPU1 00000080 00000004
processor CPU1 00000081 00000000
Contact Information
If anyone knows how to get the multicard reader working, or how to get suspend/hibernate working, please let me know.
I'm not interested in 'have you tried this', or 'have you tried that'. Only in 'this worked for me'.
- email - acmyau @ gmail.com
Links:
|
Linux on Laptops is copyright © 2005 linux-on-laptops.com
Privacy Statement
Contact us at linuxonlaptops (at) gmail.com
|
|
|
|
No Warranties: This information is provided "as
is" without any warranty, condition, or representation of any kind,
either express or implied, including but not limited to, any warranty
respecting non-infringement, and the implied warranties of conditions
of merchantability and fitness for a particular purpose. All logos or
trademarks on this site are the property of their respective owner. In
no event shall linux-laptop.net, linux-on-laptops.com, or any
directors, trustees, associates, or employees thereof be liable for any
direct, indirect, special, incidental, consequential or other damages
howsoever caused whether arising in contract, tort, or otherwise,
arising out of or in connection with the use or performance of the
information contained on this web site.