Gentoo Wiki


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

This article is still a Stub. You can help Gentoo-Wiki by expanding it.


Gentoo on an Acer Aspire 500x/502x notebook

The Acer Aspire 500x/502x is a great laptop. Sporting an AMD processor along with ultra-low-voltage AMD64 bit Technology, a crisp 15.4" LCD Widescreen Display, great battery life, excellent speakers, with a built in Wireless Lan card, and DVD+/-RW; this laptop is aesthically pleasing, light, and fast making it great for travelers, businessmen, and students.

This page is a tutorial on how to install Gentoo and use maximum power on those models. They're slightly different, and this tutorial is based on the Aspire 5024 WLMI installation, but it can be also used by all users of Aspire 5021 and Aspire 5002 as well.

First I will describe Acer Aspire 5024 installation process with details on how to get working WiFi, IRDA, modem etc., and then I'll try to add other options that may be used instead.


Installing Gentoo

Basic harddrive configuration

First of all you need to download a minimal or univeral boot cd from the gentoo homepage, how to do this is documented in the Gentoo-Installation Manual.

Burn the livecd you've just downloaded, and boot into it. You now need to partition the harddrive in an apropriate way.

My harddrive has the following configuration:

Code: harddrive configuration

hda1 = 32MB - Boot partition
hda2 = 30GB - Windows partition
hda3 =  2GB - Swap partition
hda4 = 48GB - Root partition

It's recommended that you have a boot of 32MB first on the drive, and then (direcly after it) the windows partition. You can however yourself determine the needed size of the partitions.

Next up is to actually partition your harddrive, use fdisk for this:

# fdisk /dev/hdx

Where hdx is your primary harddrive (i.e hda)

Installing Windows

If you want windows and linux, you first need to install windows. Now is a great time to do that! You can't however use the recovery cd's you got from acer, becase they will restore the computer to the stage it was when you got it. So... we need to have an independent Windows XP install cd.

You need to:

Code: windows installation
reboot your computer
boot into the windows install cd
format the partition you created specifically for windows
install windows on it

Gentoo Installation

To install gentoo you simply just follow the installation guide. Primarily you'll use the amd64 install guide, but a very inportant part is missing in the guide:

At the end of the chapter 'Installing the Gentoo Base System' you need to install the base system, do this by issuing the following command:

# emerge -uDN system

At the end of the installation, just before you exit your chroot'ed enviroment execute this:

# emerge net-tools

If you don't do this you'll not be able to connect to the internet after the reboot!

There are some things worth considering during the installation though:

Only use ext3 as your filesystem on your ROOT partition

Use the genkernel package during the installation, this will ease in the future

ReiserFS has been known to cause problems with the amd64 arch.

Some configuration files

This is how my make.conf look like:

File: /etc/make.conf
CFLAGS="-march=k8 -pipe -O2 -fomit-frame-pointer"


USE=		"X a52 aalib acpi alsa avi cdparanoia cdr clamav cpudetection
		dvd dvdr dvdread flac gnome gphoto2 gtk gtk2 ieee1394 -ipv6
		java jpeg -kde -qt mpeg oggvorbis opengl pcmcia scanner
		samba vorbis wifi win32codecs xine xmms xvid"

If You would prefer to use KDE and not GNOME, then switch "gnome gtk gtk2" with "-gnome -gtk -gtk2" and "-kde -qt" to "kde qt".

File: /boot/grub/grub.conf
default 0
timeout 10

title = Gentoo Linux
root (hd0,0)
kernel /kernel-genkernel-x86_64-2.6.12-gentoo-r10 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev noapictimer ec_burst=1
initrd /initramfs-genkernel-x86_64-2.6.12-gentoo-r10

title = Windows XP
rootnoverify (hd0,1)
chainloader +1

You might have noticed that your clock goes twice the speed. The noapictimer option fixes that problem! The ec_burst=1 option is to let you see the battery, please see 'Battery and Thermal' chapter below.


It's recommended that you use the latest kernel.

Kernel Configuration

Needless to say you can compile a whole lot of unnessesary things in your kernel, to help you in this I give you my configuration file. All you need to do is to copy this into a file called kernel.config. Actually you can call it whatever you want, but we have to decide for something :).

The configuration has been split into a subpage to save space. Go there to get it.

save the file and exit the editor. Make sure the file is in the root of our file-tree by:

# cp kernel.config /

Now you just fire up genkernel again:

# genkernel --menuconfig all

And Load the configuration file by selecting:

"Load an Alternate Configuration File"

and then enter:


Your kernel should now be exactly like mine, this will a least give you a good start. You can of course change whatever you want, however I cannot garuantee it will work.


First of all you need to install xorg-x11 since this package is the base for all other windows managers.


Installing xorg-x11

If you wish to use open source radeon driver instead of the proprietary ati-drivers, add the following to make.conf:

File: make.conf
# This will enable radeon drivers

execute following commands as root:

# emerge xorg-x11

(NOTE: you can check wich packages that will be installed by adding the flag --pretend --verbose, the verbose flag tells you wich USE flags that the package will be compiled with and also show the size of the download.)

Installing touchpad drivers

You need to make a little modification to be able to install these drivers. Why?, because there marked unstable! You need to create a file called package.keywords. This file tells portage that some packages can be installed even if they are marked unstable:

# cd /etc/portage
# nano -w package.keywords
File: package.keywords
# This will enable the synaptics package:

x11-drivers/synaptics ~amd64

# The next files are for the ati-drivers

x11-drivers/ati-drivers ~amd64
app-admin/eselect-opengl ~amd64
app-admin/eselect ~amd64

(NOTE: We add the ati-drivers lines now because we need it later in the installation)

Now all we have to do is to install the synaptics package:

# emerge synaptics

Installing ati-drivers

You may now install the ati-drivers package, by installing this you'll enable better hardware accelerated 3D graphics.

# emerge ati-drivers

Now that you've installed it, you need to start the driver and set xorg-x11 (the windows manager) to use them:

Code: start the ati-drivers
## Start the driver
modprobe fglrx

## Make sure the driver start automatic next time you restart the computer
echo "fglrx" >> /etc/modules.autoload.d/kernel-2.6

## Tell xorg-x11 to use the new driver
eselect opengl set ati

Fixing the xorg.conf

Next up is to configure xorg.conf. Create a file called xorg.conf and copy the following code into it.

File: xorg.conf
Section "ServerLayout"
	Identifier     " Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Synaptics" "CorePointer"
	InputDevice    "Mouse"      "SendCoreEvents"
	InputDevice    "Keyboard0" "CoreKeyboard"
	Option	       "OffTime"  "3"	# 3 indicates number of min until monitor-off

Section "ServerFlags"
  Option        "AllowMouseOpenFail"

Section "dri"
# Access to OpenGL ICD is allowed for all users:
#    Mode 0666
# Access to OpenGL ICD is restricted to a specific user group:
    Group 27    # video
    Mode 0660

Section "Files"
	RgbPath      "/usr/lib64/X11/rgb"
	ModulePath   "/usr/lib64/modules"
	FontPath     "/usr/share/fonts/misc/"
	FontPath     "/usr/share/fonts/TTF/"
	FontPath     "/usr/share/fonts/Type1/"
	FontPath     "/usr/share/fonts/CID/"
	FontPath     "/usr/share/fonts/75dpi/"
	FontPath     "/usr/share/fonts/100dpi/"

Section "Module"
	Load  "glx"
	# This loads the miscellaneous extensions module, and disables
	# initialisation of the XFree86-DGA extension within that module.
    	SubSection  "extmod"
      	   Option    "omit xfree86-dga"   # don't initialise the DGA extension
	Load  "dbe"
	Load  "dri"
	Load  "xtrap"
	Load  "record"
	Load  "freetype"
	Load  "type1"

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver  	"kbd"

	Option		"XkbModel"      "aspire5020"
	Option		"XkbLayout"     "se"
	#Option		"XkbVariant"    "nodeadkeys"

Section "InputDevice"
  Identifier    "Synaptics"
  Driver        "synaptics"
  Option        "Device"        "/dev/psaux"
  Option        "Protocol"      "auto-dev"
  Option        "LeftEdge"      "1700"
  Option        "RightEdge"     "5300"
  Option        "TopEdge"       "1700"
  Option        "BottomEdge"    "4200"
  Option        "FingerLow"     "25"
  Option        "FingerHigh"    "30"
  Option        "MaxTapTime"    "180"
  Option        "MaxTapMove"    "220"
  Option        "VertScrollDelta" "100"
  Option        "MinSpeed"      "0.09"
  Option        "MaxSpeed"      "0.18"
  Option        "AccelFactor"   "0.0015"
  Option        "SHMConfig"     "on"
#  #  Option       "Repeater"      "/dev/ps2mouse"

Section "InputDevice"
  Identifier    "Mouse"
  Driver        "mouse"
  Option        "Device"        "/dev/input/mice"
  Option        "Protocol"      "imps/2"
  Option        "ZAxisMapping"  "4 5"
  Option        "Buttons"        "5"

Section "Monitor"
	Identifier   "Monitor0"
	VendorName   "LPL"
	ModelName    "0"
	Option	     "DPMS"

# === ATI device section ===

Section "Device"
    Identifier  "Card0"
    Driver      "fglrx"	
    VendorName  "ATI Technologies Inc"
    BoardName   "ATI Mobility X600"
# ### generic DRI settings ###
# === disable PnP Monitor  ===
    #Option                              "NoDDC"
# === disable/enable XAA/DRI ===
    Option "no_accel"                   "no"
    Option "no_dri"                     "no"
# === misc DRI settings ===
    Option "mtrr"                       "off" # disable DRI mtrr mapper, driver has its own code for mtrr
# ### FireGL DDX driver module specific settings ###
# === Screen Management ===
    Option "DesktopSetup"               "0x00000100"
    Option "MonitorLayout"              "NONE,LVDS"
    Option "IgnoreEDID"                 "off"
    Option "HSync2"                     "unspecified"
    Option "VRefresh2"                  "unspecified"
    Option "ScreenOverlap"              "0"
# === TV-out Management ===
    Option "NoTV"                       "yes"
    Option "TVStandard"                 "NTSC-M"
    Option "TVHSizeAdj"                 "0"
    Option "TVVSizeAdj"                 "0"
    Option "TVHPosAdj"                  "0"
    Option "TVVPosAdj"                  "0"
    Option "TVHStartAdj"                "0"
    Option "TVColorAdj"                 "0"
    Option "GammaCorrectionI"           "0x00000000"
    Option "GammaCorrectionII"          "0x00000000"
# === OpenGL specific profiles/settings ===
    Option "Capabilities"               "0x00000000"
# === Video Overlay for the Xv extension ===
    Option "VideoOverlay"               "on"
# === OpenGL Overlay ===
# Note: When OpenGL Overlay is enabled, Video Overlay
#       will be disabled automatically
    Option "OpenGLOverlay"              "off"
# === Center Mode (Laptops only) ===
    Option "CenterMode"                 "off"
# === Pseudo Color Visuals (8-bit visuals) ===
    Option "PseudoColorVisuals"         "off"
# === QBS Management ===
    Option "Stereo"                     "off"
    Option "StereoSyncEnable"           "1"
# === FSAA Management ===
    Option "FSAAEnable"                 "no"
    Option "FSAAScale"                  "1"
    Option "FSAADisableGamma"           "no"
    Option "FSAACustomizeMSPos"         "no"
    Option "FSAAMSPosX0"                "0.000000"
    Option "FSAAMSPosY0"                "0.000000"
    Option "FSAAMSPosX1"                "0.000000"
    Option "FSAAMSPosY1"                "0.000000"
    Option "FSAAMSPosX2"                "0.000000"
    Option "FSAAMSPosY2"                "0.000000"
    Option "FSAAMSPosX3"                "0.000000"
    Option "FSAAMSPosY3"                "0.000000"
    Option "FSAAMSPosX4"                "0.000000"
    Option "FSAAMSPosY4"                "0.000000"
    Option "FSAAMSPosX5"                "0.000000"
    Option "FSAAMSPosY5"                "0.000000"
# === Misc Options ===
    Option "UseFastTLS"                 "0"
    Option "BlockSignalsOnLock"         "on"
    Option "UseInternalAGPGART"         "no"
    Option "ForceGenericCPU"            "no"
    Option "DynamicClocks"		"on" # Use ATI Powerplay features
    BusID "PCI:1:0:0"    # vendor=1002, device=3150
    Screen 0

#Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"            	# [<bool>]
        #Option     "SWcursor"           	# [<bool>]
        #Option     "Dac6Bit"            	# [<bool>]
        #Option     "Dac8Bit"            	# [<bool>]
        #Option     "BusType"            	# [<str>]
        #Option     "CPPIOMode"          	# [<bool>]
        #Option     "CPusecTimeout"      	# <i>
        #Option     "AGPMode"            	# <i>
        #Option     "AGPFastWrite"       	# [<bool>]
        #Option     "AGPSize"            	# <i>
        #Option     "GARTSize"           	# <i>
        #Option     "RingSize"           	# <i>
        #Option     "BufferSize"         	# <i>
        #Option     "EnableDepthMoves"   	# [<bool>]
        #Option     "EnablePageFlip"     	# [<bool>]
        #Option     "NoBackBuffer"       	# [<bool>]
        #Option     "DRIReinit"          	# [<bool>]
        #Option     "PanelOff"           	# [<bool>]
        #Option     "DDCMode"            	# [<bool>]
        #Option     "MonitorLayout"      	# [<str>]
        #Option     "IgnoreEDID"         	# [<bool>]
        #Option     "UseFBDev"           	# [<bool>]
        #Option     "VideoKey"           	# <i>
        #Option     "MergedFB"           	# [<bool>]
        #Option     "CRT2HSync"          	# [<str>]
        #Option     "CRT2VRefresh"       	# [<str>]
        #Option     "CRT2Position"       	# [<str>]
        #Option     "MetaModes"          	# [<str>]
        #Option     "MergedDPI"          	# [<str>]
        #Option     "NoMergedXinerama"   	# [<bool>]
        #Option     "MergedXineramaCRT2IsScreen0" 	# [<bool>]
        #Option     "DisplayPriority"    	# [<str>]
        #Option     "PanelSize"          	# [<str>]
        #Option     "ForceMinDotClock"   	# <freq>
        #Option     "RenderAccel"        	# [<bool>]
        #Option     "SubPixelOrder"      	# [<str>]
        #Option     "ShowCache"          	# [<bool>]
        #Option     "DynamicClocks"      	# [<bool>]
        #Option     "VGAAccess"          	# [<bool>]
        #Option     "LVDSProbePLL"       	# [<bool>]
        #Option     "ReverseDDC"         	# [<bool>]
        #Option     "BIOSHotkeys"        	# [<bool>]
#	Identifier  "Card0"
#	Driver      "ati"
#	VendorName  "ATI Technologies Inc"
#	BoardName   "ATI Mobility X600"
#	BusID       "PCI:1:0:0"

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
   	DefaultDepth 24

	SubSection "Display"
		Viewport   0 0
		Depth     16
#		Modes     "1280x800"
	SubSection "Display"
		Viewport   0 0
		Depth     24
#		Modes     "1280x800"

Save the file and exit the editor. Copy the file to it's real place by executing:

# cp xorg.conf /etc/X11/xorg.conf

Starting xorg-x11

Now try to start xorg by executing:

# startx

If all goes well you should have a couple of terminals and a watch on your screen, return to the console by killing the windows manager (CTRL-ALT-BACKSPACE).

If you run into problems then consult forums and the gentoo documentation, they have a thurough guide about xorg and ati drivers.

Installing a WM

If all went well in the previous chapter then perhaps you want to install some more 'nice' looking WM. Perhaps Gnome? There is also KDE, Xfce and a lot more.


If you do want Gnome then here is the guide:

First of all I just want to say that compile about 200 MB of data takes a VERY LONG TIME. I usually issue the emerge command before I go to bed and then sleep for 12 h. And when I wake up then it's usually finished ;-)

I recomend using the use flags I specified in the gentoo-installation chapter of this guide, if you've already set them up then continiue, otherwise check the installation guide.

Install gnome:

# emerge gnome

Now sleep cause this will take time!

Perhaps you want gnome to start at startup?

then edit:

File: /etc/rc.conf

and just add xdm to the default runlevel by:

# rc-update add xdm default

There are some other nice packages that will improve the niceness of gnome:

# gdm-themes
# nautilus-themes
# gnome-themes-extras

Description: gdm-themes is a package containing some nice loginscreens and nautilus-themes and gnome-themes-extras contains additional themes for gnome.


To get your sound working you first of all need to enable some things in your kernel configuration.

Code: Kernel Sound Options
-- Make sure you enable these options:

Device Drivers --> Sound
    [*] Sound Card Support

Device Drivers --> Sound --> Advanced Linux Sound Architecture
    [*] Sequencer Support
    [*] OSS Mixer API
    [*] OSS PCM (digital audio) API
    [*] OSS Sequencer API
    [*] RTC Timer Support

Device Drivers --> Sound --> Advanced Linux Sound Architecture --> PCI Devices
    [*] ATI IXP AC97 Controller
    [M] ATI IXP Modem

After this you only need to emerge alsa-utils, do this by.

# emerge alsa-utils

Another good idea is to add the alsa flag in your USE variable in /etc/make.conf.


On some models the keybord don't work when you boot into your linux install enviroment. There an easy solution to this problem.

At boot time;

# enter the BIOS settings menu and change 'Legacy USB Support' to disable

And your all set. The keyboard will now work. (Another solution is to press and hold <ALT-F1> during boot, however the above solution is a more static one) On some laptops you can press "PrtSc SysRq"(on the right of F12) button to enable the keyboard!

To enable keyboard you can press SHIFT+F1

DVD read/write

If you have used all the use-flags I specified in the gentoo-installation chapter then you should be able to use your dvd burner. If you've skipped that chapter then have a look at them and then edit your make.conf to at least contain the following use flags:

Editing The USE Flags

File: /etc/make.conf
# Add the following USE flags to your existing flags (do not overwrite):
USE="cdr dvdr"

And execute:

# emerge -N world

This will recompile all packages affected by the recent change in use-flags.

Choosing a Burning Software

Now we need a cdr program to do the burning for us:

There several good choices, for example xcdroast, nero and k3b. If you have a nero licence to windows you can use the same licence for linux. If you don't have a licence then go for xcdroast or k3b:

# emerge xcdroast


# emerge nero


# emerge k3b



See the Broadcom 43xx article.

Install acer_acpi

Acer_acpi is a program needed to enabling your wireless hardware. In windows you just push the button on the front to do that, in linux we need a little program to this for us. However this program is on the develop stadium and there's no garuantee it will work (but there's no alternative, so lets get started shall we).

  1. From portage

28-oct-2006 portage have acer_acpi app-laptop/acer_acpi-0.3 ~amd64

Code: emerge acer_acpi
# echo app-laptop/acer_acpi >> /etc/portage/package.keywords
# emerge app-laptop/acer_acpi

  1. From source

First of all you need to get the source file at Acer_acpi Homepage after that we almost issue the same commands as at the ndiswrapper manual installation.

Download the file to your home directory and issue these commands:

Code: acer_acpi install
# cd ~
# tar -xzf <your downloaded acer_acpi source>
# mv <your downloaded UNPACKED acer_acpi source> /usr/src/
# cd /usr/src/
# cd <to the directory you just copied here>
# make && make install

The reason why we copy the files to /usr/src/ is that i've experienced some compile problems otherwise.


1. Getting started:

  1. emerge irda-utils

2. Kernel configuration:

Under "Networking support" select "IrDa (infrared) subsystem support" as a module as go further to IrDa configuration, go to "Infrared-port device drivers" and select "NSC PC87108/PC87338" as a module.

3. Modules configuration:

add those lines to /etc/modprobe.d/aliases:

File: /etc/modprobe.d/aliases
 alias irda0 nsc-ircc
 options nsc-ircc dongle_id=0x08

Afterwards run update-modules.

4. To start irda port run:

  1. irattach irda0 -s

5. To transfer files to/from pc use kbeam or other software (tested beam and Samsung E350E mobile).


I find only 1 correct way to install the modem on this laptop. But this way is cost some money (about $15). Internal modem is not SmartLink, this is Connexant HSF modem and we need to have the HSF chipset modem drivers. make this drivers to us for money, but we steel can use this drivers on slow connection speed (up to 14400 kb/s).

How to install. First check the kernel.

Code: Kernel Sound Options
-- Make sure you enable ATI IXP Modem as module:

Device Drivers --> Sound --> Advanced Linux Sound Architecture --> PCI Devices
    [*] ATI IXP AC97 Controller
    [M] ATI IXP Modem

Then see this guide.



Battery & Thermal

Since kernel 2.6.15 battery monitoring is working even without patching.

Patch the Kernel

Only if you really want to use an older kernel, everything works in the latest kernels >2.6.15 Download the latest kernel patch here.

Unpack and apply the patch by:

# cd /usr/src/linux
# gunzip -c <path to acpi-patch>/acpi-<version>.diff.gz | patch -p1

When this is done, recompile the kernel and enjoy all your new acpi feats.

# genkernel --menuconfig all

Adding some parameters to grub.conf

After Kernel 2.6.19 there is no need for ec_burst=1 To be able to see your battery you must put some parameters to the kernel, we do this in grub.conf:

File: /boot/grub/grub.conf
# Your kernel line should look like this for custom kernels:
kernel /boot/vmlinuz root=/dev/hda3 disable_timer_pin_1 ec_burst=1

# The important is to add the ec_burst=1 option!

#and like this for genkernel kernels:
kernel /kernel-genkernel-x86_64-2.6.17-gentoo-r4 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev disable_timer_pin_1 ec_burst=1


File: /boot/grub/grub.conf
# Your kernel line should look like this:
kernel /kernel-genkernel-x86_64-2.6.12-gentoo-r10 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev noapictimer ec_burst=1

# The important is to add the ec_burst=1 option!

Now you're all done. Reboot your computer and your battery should show up under /proc/acpi/battery/.

disable_timer_pin_1 - this is better options to timer , do not use noapictimer if you have kernel 2.6.14+ I tested this on 2.6.15. //ViruS

Card reader

The TI PCIxx21 card reader's SDHCI interface is supported by 2.6.17 and newer kernels. However, only SD and MMC cards will work at this time. Suggestion how to get the card reader to work from here.

Code: enable SDHCI in the kernel
 Device Drivers  --->
   MMC/SD Card support  --->
     <*> MMC support
     <*>   MMC block device driver
     <M>   Secure Digital Host Controller Interface support

Make sure the sdhci module is not loaded then run:

# setpci -s 04:06.3 4c.b=02 # FlashMedia SD disable
# setpci -s 04:06.4 04.b=06 # SDHCI Mem+ BusMaster+
# setpci -s 04:06.4 88.b=01 # SDHCI DMA enable
# modprobe sdhci

by me was it 06:06.3 and 06:06.4, you can see if it is 06 or 04 by "lspci", for 06 it look like this:

06:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

06:06.4 Generic system peripheral [0805]: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller

The card can then be accessed via the /dev/mmcblk0 and /dev/mmcblk0p1 block devices.

Optimizing performance and battery-saver

Stuff that works

Stuff that doesn't work

Currently (as of 18th May 2006), the 6-in-1 card reader does not read MemoryStick(Pro)/xD/SmartMedia cards in linux (Texas Instruments PCIxx21/x515 Cardbus Controller).

Suspend also doesnt work

** I have 2.6.18 kernel and ati-drivers-8.29.6 and suspend to ram works like a charm. I use KDE and klaptopdaemon to suspend to ram when I'm closing the lid. added: suspend to ram stopped working with ati-drivers 8.32.5 so for now the solution is: back to 8.30.3 **

although there seems hope for both


I based on:

Acer Ferrari line is very similar to 500x/502x:

Retrieved from ""

Last modified: Sun, 24 Aug 2008 04:36:00 +0000 Hits: 29,451