Search:  
Gentoo Wiki

Asus_F3Jr

This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

Asus PRO31JR-AP035C (F3Jr) Specification

Note: This guide is made on the base of the Asus F3Jp Guide cause those laptops are very similiar


Code: lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: ATI Technologies Inc Mobility Radeon X2300
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
06:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
06:01.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
06:01.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
06:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)

What works and what doesn't

Audio : Works
SATA Drives : Works
CD/DVD burner : Works
Video & 3D : Works
USB : Works
Keyboard hotkeys : Works
Ethernet controller : Works
Wifi : Works
Webcam : Works
FireWire : Never tried
ExpressCard : Never tried
SDcard reader : Works
Mic : Works
Integrated modem : Never tried
Cpufreq : Works
Suspend : Doesn't Works (Yet)
Hardware Monitoring : Only CPU temp


General

This Howto is about installing and configuring Gentoo 2007.0 (Arch AMD64) on the ASUS F3Jr


make.conf examples

For CFLAGS, see the CPU section.

File: /etc/make.conf
  VIDEO_CARDS="fglrx"
 INPUT_DEVICES="synaptics keyboard mouse"

Kernel Configuration Example


Note: Kernel Example will be uploaded soon.


FIXME: TODO

CPU

See this HowTo.

Audio

The driver to use is 'Intel-hda'. It work out of the box with Alsa in-kernel driver.

Anyway, if you are using a 2.6.24 kernel you need to select the Realtek codec to fully control the Audio driver.

Linux Kernel Configuration: Device Drivers ---> Sound ---> Advanced Linux Sound Architecture ---> PCI devices
<M> Intel HD Audio
[*]  Build Realtek HD-audio codec support

Image:Alsamixer_F3JR.png


Note: Instead of MASTER volume control, you get a FRONT one.

Note: Even with PCM + FRONT volume mixer at max, sound seems to be a bit low, though i've not tested it under other OS.



SATA Drives (HDD and DVD drive)

(from Asus A8Js)

What is important about configuring the kernel for the hard drive and the DVD drive is that they are both SATA and not IDE. You will want to disable the entire IDE section of the kernel otherwise the DVD drive will be detected as an IDE drive under some compatibility mode and cause some DMA havoc.


Linux Kernel Configuration: Device Drivers ---> ATA/ATAPI/MFM/RLL support
< > ATA/ATAPI/MFM/RLL support

SCSI support for our discs because SATA drives are treated like SCSI.

Linux Kernel Configuration: Device Drivers ---> SCSI device support
...
<*> SCSI disk support
...
<*> SCSI CDROM support
[*]   Enable vendor-specific extensions (for SCSI CDROM)
<*> SCSI generic support
...

Support for our SATA chipset.

Linux Kernel Configuration: Device Drivers ---> Serial ATA (prod) and Parallel ATA (experimental) drivers
<*> ATA device support
...
<*>   Intel PIIX/ICH SATA support
...

CD/DVD burner

The CD/DVD burner works perfectly

Video & 3D

ATI proprietary drivers

At the moment i only tested the ATI proprietary drivers

USB

USB is supported out of the box by UHCI and EHCI modules


Keyboard hotkeys

Warning: FIRST, you have to compile asus-laptop in the kernel


Linux Kernel Configuration: Power management options ---> ACPI (Advanced Configuration and Power Interface) Support
<*> ASUS/Medion Laptop Extras


Keys which work without ACPI script  :

Fn+F1 : suspend (may need a program like "powersave" to do something or you can make a ACPI script if you want)
Fn+F5
Fn+F6
Fn+F7


For the LCD keys to work (Fn+F5 and Fn+F6) you'll need ALSO the ACPI_VIDEO compiled as a module.

Linux Kernel Configuration: Power management options ---> ACPI (Advanced Configuration and Power Interface) Support
<M> Video



Using hotkeys with lapsus

For all the hotkeys not supported by lapsus you can use pieces of the acpid scripts below.


Using hotkey with acpid (scripts and config are mostly taken from Multimedia-Keys on Asus F3JM)

Fn+F2 : Wlan
Fn+F3 : Thunderbird
Fn+F4 : Firefox
Fn+F9 : Touchpad
Fn+F10 : mute
Fn+F11 : decrease volume
Fn+F12 : increase volume
Fn+UP : Stop/exit Amarok
Fn+LEFT : Previous track in Amarok
Fn+DOWN : Play/start Amarok
Fn+RIGHT : Next track in Amarok


All these hotkeys generate an ACPI event exept Fn+F2.

Note: The Wireless key (Fn+F2) doesn't work out of the box. to make it works (generate an ACPI event) you have to patch the kernel


Code: asus-laptop.c
 
 --- linux-2.6.22-gentoo-r9.old/drivers/misc/asus-laptop.c  2007-11-25 13:16:41.000000000 +0100
 +++ linux-2.6.22-gentoo-r9/drivers/misc/asus-laptop.c   2007-11-25 17:13:31.000000000 +0100
 @@ -105,7 +105,7 @@
   * 0x5 like 0x1 or 0x4
   * So, if something doesn't work as you want, just try other values =)
   */
 -static uint wapf = 1;
 +static uint wapf = 4;
  module_param(wapf, uint, 0644);
  MODULE_PARM_DESC(wapf, "WAPF value");


In order to display the OSD, like "Konqueror is starting" or else, we need XOSD to be installed, and we could even test it (Look at the top/left edge of the screen!):

Code: XOSD is needed to display text on the screen
 
emerge xosd
echo "Ciao Mondo!" | osd_cat -d 3


Let's start with the scripts :

File: /etc/acpi/events/default
 
event=button power.*
action=/sbin/init 0

......

#event=.*
#action=/etc/acpi/default.sh %e
  


File: /etc/acpi/events/hotkey
 
event=hotkey ATKD .*
action=/etc/acpi/hotkey.sh %e
 


File: /etc/acpi/hotkey.sh
 
#!/bin/sh
user=`who| grep " :0" | awk '{print $1}'`
export XAUTHORITY=/home/$user/.Xauthority
export DISPLAY=:0

function osdtext()
{
	killall -9 -q osd_cat
	echo $1 | osd_cat -f "-adobe-new century schoolbook-medium-i-normal--34-240-100-100-p-182-iso8859" -c Green -s 1 -p bottom -A center -d 2&
}

case "$3" in

	# Mute
	00000032)         
		/etc/acpi/actions/vol.sh mute
	;;
	
	# Volume Up
	00000030)
		/etc/acpi/actions/vol.sh up
	;;
	
	# Volume Down
	00000031)
		/etc/acpi/actions/vol.sh down
	;;


	# Touchpad
	0000006b)
		/etc/acpi/actions/touchpad.sh
        ;;
    

	# AMAROK - Play/pause button
	00000045)
		/etc/acpi/actions/amarok.sh play $user
	;;

	# AMAROK - Rewind button
	00000040)
		/etc/acpi/actions/amarok.sh prev $user
	;;

	# AMAROK - Stop button
	00000043)
		/etc/acpi/actions/amarok.sh stop $user
	;;

	# AMAROK - Forward button
    	00000041)
		/etc/acpi/actions/amarok.sh next $user
	;;


	# THUNDERBIRD
	00000050)
		osdtext "Thunderbird"
		su - $user -c "thunderbird --display=:0.0 &"
	;;


	# FIREFOX
	00000051)
		osdtext "Firefox"
		su - $user -c "firefox --display=:0.0 &"
	;;


#	#Spendid
#	0000008a)
#		osdtext "Splendid"
#	;;
	

	# WIRELESS - RF_Kill ON
	00000081)
		/etc/acpi/actions/wireless.sh on
	;;

	# WIRELESS - RF_Kill OFF
	00000080)	
		/etc/acpi/actions/wireless.sh off
	;;

	# WIRELESS - Wlan
	00000088)
		/etc/acpi/actions/wireless.sh wifi
	;;
esac
 


Note: In the next script OSD is commented out cause amarok already have it


File: /etc/acpi/actions/amarok.sh
 
#!/bin/bash
export DISPLAY=:0

color="Green"

#function osdtext()
#{
#	killall -9 -q osd_cat
#	echo $1 | osd_cat -f "-adobe-new century schoolbook-medium-i-normal--34-240-100-100-p-182-iso8859" -c $color -s 1 -p bottom -A #center -d 2&
#}


if [ $(/usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player isPlaying) == "true" ]; then

	case "$1" in

		play) 	
#			color="Red"
#			osdtext "Amarok Pause"
               	 	/usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player pause
		;;
			
		prev)
#			osdtext "Amarok Prev"
		        /usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player prev
		;;
	
		stop)
#			color="Red"
#		  	osdtext "Amarok Stop"
			/usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player stop
		;;

		next)
#			osdtext "Amarok Next"
			/usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player next
		;;
	esac
	
else

	if [ $(/usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player isPlaying) == "false" ]; then
		case "$1" in
			
			play)
#				osdtext "Amarok Play"
	                        /usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player play
			;;
				
			prev)
#				osdtext "Amarok Prev"
		        	/usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player prev
			;;
			
			stop)
#				color="Red"
#			  	osdtext "Amarok Exit"
				kill $(ps -U "$2" | ps -C amarokapp -o pid=)
			;;

			next)
#				osdtext "Amarok Next"
				/usr/kde/3.5/bin/dcop --user "$2" --all-sessions amarok player next
			;;
		esac				
	else
		if [ $1 == "play" ]; then
#			osdtext "Amarok Start"
			su - "$2" -c "amarokapp --display=:0.0 &"
			sleep 2  # Here just to prevent from starting Amarok twice (or more...), may need to be ajusted
		fi
	fi
     
fi
 


Note: The "--all-sessions" dcop parameter permits to let keys remain active even with more than one session with the same user name


File: /etc/acpi/actions/touchpad.sh
 
#!/bin/bash
export DISPLAY=:0

color="Green"

function osdtext()
{
	killall -9 -q osd_cat
	echo $1 | osd_cat -f "-adobe-new century schoolbook-medium-i-normal--34-240-100-100-p-182-iso8859" -c $color -s 1 -p bottom -A center -d 2&
}

if [ $# = 1 ]; then
	synclient TouchpadOff=$1
else
	state=$(synclient -l | grep TouchpadOff | awk -F"= " '{print $2}')

	if [ "$state" = "0" ]; then
		synclient TouchpadOff=1
		color="Red"
		osdtext "Touchpad inactive"
	else
		synclient TouchpadOff=0
		osdtext "Touchpad active"
	fi
fi
 


File: /etc/acpi/actions/vol.sh
 
#!/bin/bash
export DISPLAY=:0

color="Green"

function osdtext()
{
	killall -9 -q osd_cat
	echo $1 | osd_cat -f "-adobe-new century schoolbook-medium-i-normal--34-240-100-100-p-182-iso8859" -c $color -s 1 -p bottom -A center -d 2&
}


if [ "$1" = "mute" ]; then
	amixer -q set Front toggle

	if [ "$(amixer get Front | grep Left: | awk -F" " '{print $7}')" = "[off]" ]; then
		color="Red"
		osdtext "Sound inactive"
	else
		osdtext "Sound active"
	fi

else
	if [ "$(amixer get Front | grep Left: | awk -F" " '{print $7}')" = "[off]" ]; then
		amixer -q set Front toggle
	fi

	case "$1" in
		up)
			amixer -q set Front 5+		
		;;

		down)
			color="Red"
			amixer -q set Front 5-
		;;	
	esac

	killall -9 -q osd_cat

	osd_cat -p bottom -s 1 -o 120   -A center -f "-adobe-new century schoolbook-medium-i-normal--34-240-100-100-p-182-iso8859" -c $color -b percentage -P $(amixer get Front | grep Left: | awk -F" " '{print $5}' | tr -d "[]") -T "Volume"&

fi
 


File: /etc/acpi/actions/wireless.sh
 
#!/bin/bash
export DISPLAY=:0

color="Green"

function osdtext()
{
	killall -9 -q osd_cat
	echo $1 | osd_cat -f "-adobe-new century schoolbook-medium-i-normal--34-240-100-100-p-182-iso8859" -c $color -s 1 -p bottom -A center -d 2&
}


case "$1" in
    
	# RF_Kill ON
	on)	
		color="Red"	
		osdtext "Wireless disabled"
	;;

	# RF_Kill OFF
	off)
		osdtext "Wireless enabled"
	;;
   

	#WLAN
	wifi)	
		if [ "$(cat /sys/devices/platform/asus-laptop/wlan)" = "0" ]; then
			osdtext "Wlan enabled"
			echo "1" > "/sys/devices/platform/asus-laptop/wlan"
			modprobe iwl3945 
		else
			color="Red"
			osdtext "Wlan disabled" 
			echo "0" > "/sys/devices/platform/asus-laptop/wlan"                         
			modprobe -r iwl3945
		fi
 	;;
esac
 


Code: Don't forget to set the right permissions to the scripts
 
chmod 755 /etc/acpi/hotkey.sh
chmod 755 /etc/acpi/actions/amarok.sh
chmod 755 /etc/acpi/actions/touchpad.sh
chmod 755 /etc/acpi/actions/vol.sh
chmod 755 /etc/acpi/actions/wireless.sh
  



Ethernet controller

The LAN-Card is an RTL8168 and is supported out of the box.


Wireless

Wifi

See this guide.

Save & restore wireless state

To save Wifi adapter on reboot you can use lapsus or a little script : wirelessctl (Never used it).

Suspend

Suspend (to disk) works with the standard gentoo kernel (gentoo-sources-2.6.23-r9) and with tuxonice (tuxonice-sources-2.6.24-r3) but suspend to ram and standby doesn't work, the first suspends the PC but is not able to resume it, the second doesn't turn off the video.

Only tried with powersave.

Powersaving

Frequency scaling

This processor support frequency scaling, to use it compile appropriate option as module :

Linux Kernel Configuration: Power management options ---> CPU Frequency scaling
...
<*> ACPI Processor P-States driver
...


You have to load it, by example at boot time in :

File: /etc/modules.autoload.d/kernel-2.6
...
acpi_cpufreq
acpi_cpufreq
...


Note: YOU HAVE TO LOAD IT TWICE, the first time it says : FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.23-gentoo-r8/kernel/arch/x86_64/kernel/cpufreq/acpi-cpufreq.ko): No such device.



Hardware Monitoring

lm_sensors is able to monitor only the CPU temperature, it's currently impossible to monitor the fan speed or the voltages. to get lm_sensors to work, you can follow the Lm sensors guide, there's no need to enable all the sensors to test wich works, instead you can use this kernel configuration:

Linux Kernel Configuration: Kernel modules
Device Drivers  --->
    <M> I2C support  --->
        <M> I2C device interface
    <M> Hardware Monitoring Support --->
        [M] Intel Core (2) Duo/Solo temperature sensor



Retrieved from "http://www.gentoo-wiki.info/Asus_F3Jr"

Last modified: Mon, 11 Aug 2008 04:27:00 +0000 Hits: 2,670