HARDWARE Asus F3Jp

From Gentoo Linux Wiki

Jump to: navigation, search
This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

Contents

[edit] Asus F3JP-AK055C Specification

  • Processor : Intel® Core™2 Duo Processor T7200
  • Chipset : Mobile Intel® 945PM Express
  • Main Memory : 2GB DDR2
  • Display : 15.4" WSXGA+ (1680x1050)
  • Video Graphics : ATI Mobility Radeon X1700 External VRAM 256MB (512MB with Hyper Memory)
  • Hard Drive : 160 GB SATA (5400 tr/mn)
  • Optical Drive : DVD Writer
  • Card Reader : MMC/ SD/ Mini-SD/Memory Stick/ MS Pro/ MS-Duo/MS-Pro-Duo
  • Fax/Modem : Intel® High Definition audio modem
  • LAN/WLAN : 10/100/1000 Base T
  • WLAN : Intel 3945ABG & Bluetooth® V2.0+EDR
  • Video Camera : 1.3M Megabyte Pixels
  • Audio : Built-in Intel® High Definition audio compliant audio chip
  • Battery Pack & Life : Li-Ion 9 cells: 7200mAh, 3S3P, 79.92WHrs
  • Dimension : 365 x 269.5 x 28-40.5 mm
  • Weight : 2.95kg ( 6 cell battery )
  • Supplied Accessories : Optical Mouse, Carrying bag
  • Warranty : 2-year limited global hardware warranty, 1-year battery pack warranty


Code: lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/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 #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #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) Serial ATA Storage Controller IDE (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: ATI Technologies Inc Unknown device 71d5
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. Unknown device 8168 (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 Unknown device 0832
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)


[edit] What works and what doesn't

Audio : Works (but a bit low)
SATA Drives : Works
CD/DVD burner : Works
Video & 3D : Works (completely supported only by ATI/AMD proprietary driver)
USB : Works
Keyboard hotkeys : Works
Ethernet controller : Works
Wifi : Works
Webcam : Works
FireWire : Never tried
ExpressCard : Never tried
SDcard reader : Works
Bluetooth : Works
Mic : Works
Integrated modem : Never tried
Cpufreq : Works
Suspend : Works


[edit] General

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


make.conf examples

File: /etc/make.conf
 CFLAGS="-O2 -march=nocona -fomit-frame-pointer -pipe"
 CHOST="x86_64-pc-linux-gnu"
 CXXFLAGS="${CFLAGS}"
 MAKEOPTS="-j3"
 ...
 ...
 VIDEO_CARDS="fglrx vesa"
 ALSA_CARDS="hda-intel"
 INPUT_DEVICES="evdev keyboard mouse synaptics"


Note: To use both cores of the processor for compile you have to set MAKEOPTS to -j3 as shown below.



[edit] Kernel Configuration Example


Note: Keep in mind that this is only an example for the settings I use so don't blame me if it doesn't work or screw your system. Maybe you need some different settings because you like other things to do with your box.


FIXME: TODO


[edit] Audio

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

Image:Alsamixer_F3JP.png


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

Note: Even with PCM + FRONT volume mixer at max, sound is a bit low.



[edit] SATA Drives (HDD and DVD drive)

(from HARDWARE 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
...

[edit] CD/DVD burner

The CD/DVD burner works perfectly

[edit] Video & 3D

ATI proprietary drivers


Free drivers

At the moment there are two drivers available (but not complete) for the X1700 card (r500 family) :

  • The radeonHD driver (r500/r600 only)

In portage : x11-drivers/xf86-video-radeonhd

  • The radeon driver (r100/r200/r300/r400/r500/r600)

In portage : x11-drivers/xf86-video-ati
Support for r500/r600 begins with xf86-video-ati >= 6.8.0

You can follow the "radeon" and "radeonHD" developments on RadeonHD.org, Phoronix xf86-video-ati news and Phoronix RadeonHD news

Note : There is one more free driver but it is deprecated : avivo driver

[edit] USB

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


[edit] Keyboard hotkeys


Warning: FIRST, you have to load asus-laptop module


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 : decrease brightness
Fn+F6 : increase brightness
Fn+F7 : turn on/off backlight


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
Instant ON (see below) : Bluetooth (you can assign BT to Fn+F2 like in windows but this is not my choice. Feel free to provide a script...)

Image:Hotkeys.png


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");


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-1" -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 - BT
	00000095)	
		/etc/acpi/actions/wireless.sh bt
	;;

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


File: /etc/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-1" -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-1" -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-1" -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-1" -c $color -b percentage -P $(amixer get Front | grep Left: | awk -F" " '{print $5}' | tr -d "[]") -T "Volume"&

fi
 


Note: In the following script you can replace "ipw3945" by "iwl3945" if you use "net-wireless/iwlwifi" instead of "net-wireless/ipw3945" as wlan driver.


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-1" -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"
	;;


	# BT
	bt)
		if [ "$(cat /sys/devices/platform/asus-laptop/bluetooth)" = "0" ]; then
			osdtext "Bluetooth enabled"
			echo "1" > "/sys/devices/platform/asus-laptop/bluetooth"
                         
		else
			color="Red"
			osdtext "Bluetooth disabled" 
			echo "0" > "/sys/devices/platform/asus-laptop/bluetooth"                         
		fi
	;;
   

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


Note: Something strange I note : The value in "/sys/devices/platform/asus-laptop/bluetooth" control the BT LED and the BT interface. But the value "/sys/devices/platform/asus-laptop/wlan" control just the LED so you have to (des)activate it by (un)loading the ipw3945 module. On the last BIOS (208), I try to correct the DSDT but nothing changes at all...So, it's not the cause or I wrongly corrected it...



[edit] Ethernet controller

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


[edit] Wireless

[edit] Wifi


Wifi is supported by 2 drivers : IWLWIFI and IPW3945.

Included in kernel >=2.4.24, you just have to load the module iwl3935



[edit] Bluetooth

Works out of the box with the right kernel module loaded.

[edit] Save & restore wireless state

To save Wifi & Bluetooth adapter state on reboot you can use wirelessctl or lapsus.

[edit] Webcam

The webcam works with stk11xx driver. This driver is included in kernel 2.6.25 and up.

If you are not using kernel 2.6.25 and up you can use these ebuild :



[edit] Suspend

Suspend (to disk & to ram) works with the standard gentoo kernel (gentoo-source).

[edit] Powersaving

[edit] 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.



[edit] Links

Personal tools