Gentoo Wiki


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



I bought my MX7118 at Best Buy in March of 2006. The stock system has an Athlon 3400+ 64-bit CPU running at 2.2GHz with 512MB of RAM. 64MB, however, is reserved for graphics so the system will report only 448MB of RAM.


The first thing that I noticed was wrong with my system was that it was running Windows. I was not quite ready to say goodbye to Windows completely though, and took the following steps to prepare for the installation of Gentoo in what I hoped would be a reversible way in case I ran into horrible trouble.

I could now proceed with the resizing. I popped in the Knoppix CD and booted. After a bit of a struggle I discover two things:

  1. You need to choose the "knoppix dma" boot option or everything you do with the hard drive including resizing partitions will be very slow.
  2. The Knoppix Live CD default user is not root. To run qtparted successfully you must run su -c qtparted. Otherwise the program will start but will not see the hard drive.

This is the ultimate configuration of my disk shown in the format used by fdisk. The 9GB partition was intended as /, the small partition is for /boot and the big one is for anything else. There have been no issues running Windows in the reduced partition though admittedly I seldom boot into it :)

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *         568        1220     5245222+   7  HPFS/NTFS
/dev/hda2               1         567     4554396    b  W95 FAT32
/dev/hda3            1221        1345     1004062+  82  Linux swap / Solaris
/dev/hda4            1346        9729    67344480    5  Extended
/dev/hda5   *        1346        1352       56196   83  Linux
/dev/hda6            1353        2569     9775521   83  Linux
/dev/hda7            2570        9729    57512668+  83  Linux

My initial setup used the biggest partition for /home and had the rest of the system on the smaller (9GB /dev/hda6) partition. Do not do this. This was a mistake that required some work to fix later. I soon loaded the machine down with so much software that the / partition began to get close to full. As a result I had to very carefully move /usr over to the large partition, move /home over to /usr/home, change /etc/fstab to mount /dev/hda7 as /usr and make /home a symlink to /usr/home.


To install I used the Gentoo AMD64 universal ISO (the big one, not the "minimal" one that pulls everything in over the net).


Currently using 2.6.17-rc4 downloaded from the linux kernel archives (i.e. clean source). The kernel installed with the current version of Gentoo is 2.6.15-gentoo-r7. There is a nasty bug though that causes the system clock to race ahead at roughly twice the speed it should in this default kernel. You can fix this by appending noapic acpi=noirq to the boot options or upgrade to a more recent kernel. Actually, it seems to work without the acpi option as well so that part is voodoo code to me. The more recent kernels do not seem to have this problem.


lspci Dumpage

Output of lspci:

Code: #lspci
00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 01)
00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
00:06.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller
00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 11)
00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI
00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge
00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge
00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)
00:14.6 Modem: ATI Technologies Inc ATI SB400 - AC'97 Modem Controller (rev 02)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc ATI Radeon XPRESS 200M 5955 (PCIE)
02:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8036 PCI-E Fast Ethernet Controller (rev 10)
08:05.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller (rev 01)
08:07.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
08:0e.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)


Mobile AMD Athlon 64-bit 3400+ Processor, 1 MB L2 Cache, 2.2 GHz

Kernel Options

My kernel is mostly plain vanilla 2.6.17-rc4. The important things to make sure you turn on are below. The netfilter stuff has to be there in order for your firewalling software to work. You need to turn on support for the ATIIXP IDE chipset or you won't get DMA access to the hard drive or the DVD. This will mean that your disk I/O will be really slow.

Linux Kernel Configuration: Netfilter and DMA Stuff
# Core Netfilter Configuration

Ethernet (Wired)

See this guide.

Ethernet (Wireless)

See the Broadcom 43xx article.

Hard Drive

Relevant portions of /etc/conf.d/hdparm:

hda_args="-d1 -c1 -m16"
hdc_args="-d1 -c1"

You need the -d1 to make the system use DMA (highly recommended) and the -c1 to run in 32-bit mode rather than 16-bit.


Works fine. Have tested burning both CDs and DVDs with k3b. The only glitch was that I had to set the drive speed to "ignore" instead of "auto" in k3b. Just make sure you have DMA turned on for /dev/hdc, otherwise burning discs will be painfully slow.

Video/X Window System

The basic X installation works with the supplied radeon driver or with the closed source fglrx driver. I initially did get the closed source driver (fglrx) working but it seemed to stop working when I went to the 2.6.17-rc4 kernel (yes, I re-emerged the driver against the new kernel). This isn't too surprising since I'm using a release candidate kernel. When I go back to a stable kernel version I may try again with the ATI driver. Anyway, I went back to the stock radeon driver that comes with X but wasn't happy since it could not do the 1280x800 widescreen video mode that gives you the sharpest images. I decided to try the new modular X out to see if that would help any. It did. With modular X you will be able to get a very clear 1280x800 widescreen mode. It will not have DRI though. For that you need the ATI closed source driver. For my needs DRI wasn't that important and I have better things to do than try to get the fglrx driver working again but as I said above, it does work with the stock gentoo kernels. Here is the link to the modular X howto. I recommend upgrading to it if you are just installing Gentoo now. It seems quite stable on this machine and it will be the way X is done from now on so you might as well get used to it now. This is my xorg.conf file for modular X. Actually, as you can see, it was initially generated by the ATI utility program fglrxconfig and should work with the fglrx driver as well if you just uncomment the "Driver" line for that and comment out the one for radeon.

File: /etc/X11/xorg.conf
# File: xorg.conf
# File generated by fglrxconfig (C) ATI Technologies, a substitute for xf86config.

# **********************************************************************
# DRI Section
# **********************************************************************
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 100    # users
#    Mode 0660

# **********************************************************************
# Module section -- this  section  is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
Section "Module"

# This loads the DBE extension module.

    Load        "dbe"   # Double buffer extension

# 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

# This loads the Type1 and FreeType font modules
    Load        "type1"
    Load        "freetype"

# This loads the GLX module
    Load        "glx"   # libglx.a
    Load        "dri"   # libdri.a


# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************

Section "Files"

# The location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.

# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
# If you don't have a floating point coprocessor and emacs, Mosaic or other
# programs take long to start up, try moving the Type1 and Speedo directory
# to the end of this list (or comment them out).
## BEGIN: From
FontPath    "/usr/share/fonts/misc:unscaled"
FontPath    "/usr/share/fonts/Type1"
FontPath    "/usr/share/fonts/TTF"
FontPath    "/usr/share/fonts/corefonts"
FontPath    "/usr/share/fonts/freefont"
FontPath    "/usr/share/fonts/sharefonts"
FontPath    "/usr/share/fonts/terminus"
FontPath    "/usr/share/fonts/ttf-bitstream-vera"
FontPath    "/usr/share/fonts/unifont"
FontPath    "/usr/share/fonts/75dpi:unscaled"
FontPath    "/usr/share/fonts/100dpi:unscaled"
FontPath    "/usr/share/fonts/artwiz"

## END:

    FontPath   "/usr/X11R6/lib/X11/fonts/local/"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
#    FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
    FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"

# The module search path.  The default path is shown here.


# **********************************************************************
# Server flags section.
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is
# received.  This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging

#    Option "NoTrapSignals"

# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# This allows clients to receive this key event.

#    Option "DontZap"

# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
# sequences.  This allows clients to receive these key events.

#    Option "Dont Zoom"

# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will
# receive a protocol error.

#    Option "DisableVidModeExtension"

# Uncomment this to enable the use of a non-local xvidtune client.

#    Option "AllowNonLocalXvidtune"

# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings.

#    Option "DisableModInDev"

# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).

#    Option "AllowNonLocalModInDev"


# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************

Section "InputDevice"

    Identifier  "Keyboard1"
    Driver      "kbd"
# For most OSs the protocol can be omitted (it defaults to "Standard").
# When using XQUEUE (only for SVR3 and SVR4, but not Solaris),
# uncomment the following line.

#    Option "Protocol"   "Xqueue"

    Option "AutoRepeat" "500 30"

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Option "Xleds"      "1 2 3"

#    Option "LeftAlt"    "Meta"
#    Option "RightAlt"   "ModeShift"

# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a non-U.S.
# keyboard, you will probably want to use:
#    Option "XkbModel"   "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
#    Option "XkbModel"   "microsoft"
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#    Option "XkbLayout"  "de"
# or:
#    Option "XkbLayout"  "de"
#    Option "XkbVariant" "nodeadkeys"
# If you'd like to switch the positions of your capslock and
# control keys, use:
#    Option "XkbOptions" "ctrl:swapcaps"

# These are the default XKB settings for XFree86
#    Option "XkbRules"   "xfree86"
#    Option "XkbModel"   "pc101"
#    Option "XkbLayout"  "us"
#    Option "XkbVariant" ""
#    Option "XkbOptions" ""

#    Option "XkbDisable"

    Option "XkbRules"   "xfree86"
    Option "XkbModel"   "pc101"
    Option "XkbLayout"  "us"


# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************

Section "InputDevice"

# Identifier and driver

    Identifier  "Mouse1"
    Driver "mouse"
    Option "Protocol"   "ExplorerPS/2"
    Option "Device"     "/dev/input/mice"
    Option "Buttons"    "5"
    Option "ZAxisMapping" "4 5"
    #Option "ButtonMapping" "1 2 3" # [GAP:06-01-06 Not really needed but doesn't hurt anything.]

# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.

#    Option "Protocol"   "Xqueue"

# Baudrate and SampleRate are only for some Logitech mice. In
# almost every case these lines should be omitted.

#    Option "BaudRate"   "9600"
#    Option "SampleRate" "150"

# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)

#    Option "Emulate3Buttons"
#    Option "Emulate3Timeout"    "50"

# ChordMiddle is an option for some 3-button Logitech mice

#    Option "ChordMiddle"


# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"
    Identifier  "Monitor0"

    DisplaySize  330 207
    # Fixes "tiny font syndrome"


# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

# Standard VGA Device:

Section "Device"
    Identifier  "Standard VGA"
    VendorName  "Unknown"
    BoardName   "Unknown"

# The chipset line is optional in most cases.  It can be used to override
# the driver's chipset detection, and should not normally be specified.

#    Chipset     "generic"

# The Driver line must be present.  When using run-time loadable driver
# modules, this line instructs the server to load the specified driver
# module.  Even when not using loadable driver modules, this line
# indicates which driver should interpret the information in this section.

    Driver      "vga"
# The BusID line is used to specify which of possibly multiple devices
# this section is intended for.  When this line isn't present, a device
# section can only match up with the primary video device.  For PCI
# devices a line like the following could be used.  This line should not
# normally be included unless there is more than one video device
# installed.

#    BusID       "PCI:0:10:0"

#    VideoRam    256

#    Clocks      25.2 28.3


# === ATI device section ===

Section "Device"
    Identifier                          "ATI Graphics Adapter"
#    Driver                              "fglrx"
     Driver                             "radeon"
# ### 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"               "(null)"
    Option "ScreenOverlap"              "0"
    Option "GammaCorrectionI"           "0x00000000"
    Option "GammaCorrectionII"          "0x00000000"
# === OpenGL specific profiles/settings ===
    Option "Capabilities"               "0x00000800"
    Option "CapabilitiesEx"             "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"         "yes"
    Option "ForceGenericCPU"            "no"
#    BusID "PCI:1:0:0"    # no device found at config time
    Screen 0

# **********************************************************************
# Screen sections
# **********************************************************************

# Any number of screen sections may be present.  Each describes
# the configuration of a single screen.  A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.
Section "Screen"
    Identifier  "Screen0"
    Device      "ATI Graphics Adapter"
    Monitor     "Monitor0"
    DefaultDepth 24
    #Option "backingstore"

    Subsection "Display"
        Depth       24
        Modes       "1280x800" "1024x768" "800x600"
        ViewPort    0 0  # initial origin if mode is smaller than desktop
#        Virtual     1280 1024

# **********************************************************************
# ServerLayout sections.
# **********************************************************************

# Any number of ServerLayout sections may be present.  Each describes
# the way multiple screens are organised.  A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option.  In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.

Section "ServerLayout"

# The Identifier line must be present
    Identifier  "Server Layout"

# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens.  The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen.

    Screen "Screen0"

# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used.  Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".

    InputDevice "Mouse1" "CorePointer"
    InputDevice "Keyboard1" "CoreKeyboard"


### EOF ###


I tweaked the fonts according to this advice HOWTO_Xorg_and_Fonts. You will need to install some extra font packages if you do this.


Didn't do anything special to make this work. The touchpad occasionally seems to glitch out and jerk the cursor across the screen but that is probably just due to the fact that even getting a finger near the thing can move the cursor due to static electricity. I got a Microsoft Wireless Notebook Optical Mouse at Costco for $30 and am much happier now. Both the touchpad and the USB mouse can be used with the configuration below. I got my mousewheel working with the ZAxisMapping setting.


No idea if this works or not. I have never tried it.


This just sort of worked. I used the alsa drivers from the kernel, not the special media-sound/alsa-driver ebuild. Then I followed the instructions in the Gentoo ALSA Guide and the sound worked.

Special Buttons

I got the special buttons at the top right of the keyboard working using xbindkeys. You will need to emerge the x11-misc/xbindkeys package. HOWTO_Use_Multimedia_Keys is a good reference on these special keys. This is my .xbindkeysrc file. It assigns the sound related keys roughly the same roles they have in Windows. I did not map the "mail", "info" or "look" button but they will work too. They have keycodes 236, 178 and 229, respectively. The x11-apps/xev package is highly useful to identify keycodes for other oddball keys.

File: ~/.xbindkeysrc
  control+shift + q

"amixer -q set PCM 2- unmute"
     m:0x0 + c:174

"amixer -q set PCM 2+ unmute"
     m:0x0 + c:176

     m:0x0 + c:237

I created this autostart entry to start xbindkeys every time I start KDE. See the link above for other ways to start it.

File: ~/.kde/Autostart/xbindkeys.desktop
[Desktop Entry]
Exec=killall -HUP xbindkeys & xbindkeys &


Works fine. Currently using a Microsoft wireless optical USB mouse. My digital camera also works fine through USB. Did not do anything special here. It just seems to work.


There's a firewire port. I don't have anything to test it with so I don't have a clue.

PC Card

See this guide.

Memory Card Reader

According to the spec sheet the machine has a "6-in-1 Digital Media Manager". I haven't tried this and don't know anything about it. These are the 6 subfeatures:


The battery is monitored by the kernel using ACPI and the KDE battery monitor provides a good indicator for its current state. I did not need to install any special daemons to make this work.

Hardware Upgrades

As mentioned above I have the MS optical mouse. I also got an extra 1GB of RAM. This is highly recommended. It brings the system to its 1.5GB maximum memory capacity and is easy to do. The 512MB that comes with the system does not have to be removed. You just open a panel in the bottom and pop in the 1GB stick.



I made a mistake here initially. I was trying to do the rice thing and squeeze the last drop of performance out of my system and got the idea to use -O3 in my CFLAGS. I later found out that this optimization seldom does any more for you than -O2 and often makes for bigger and flakier binaries. It was probably one reason my 9GB partition filled up so fast. So I backed off to -O2. The volume does not go to 11 here.

Code: CFLAGS, etc...
CFLAGS="-mtune=k8 -march=k8 -O2 -pipe"

USE Flags

This was another of the things I did wrong initially. Early on, I went through /usr/portage/profiles/use.desc picking out USE flags like candy. This turned out to be a not so great idea. As I tried to finish the installation I ran into problems with ebuilds not compiling due to some of my USE flag choices. I decided ultimately to pare the flags down to just

Code: Conservative USE flags
USE="X alsa arts bonobo bzip2 cups esd gnome jack java kde"

As I have added more software, however, I have expanded the USE flags as needed. A lot of this stuff is graphics and multimedia related.

Code: Current USE flags
USE="X dri alsa arts bonobo bzip2 cups esd gnome gtk hal \
        lcms mng wmf svg aalib gimp gimpprint gphoto2 \
        howl jack java kde bitmap-fonts truetype-fonts type1-fonts unicode \
        aac asf xanim dv flac speex theora vorbis win32codecs xvid ogg xmms \
        a52 dvd dvdr dvdread apache2 emacs bash-completion \
        guile tcltk xprint"


Haven't done any work on this yet.


I strongly recommend installing dev-util/ccache and adding the ccache option to the FEATURES variable in /etc/make.conf. It will speed up compilations a great deal. I also recommend adding PORT_LOGDIR=/var/log/portage to /etc/make.conf. It will capture all that emerge output that otherwise scrolls past while you are asleep or away.

Retrieved from ""

Last modified: Thu, 14 Aug 2008 04:52:00 +0000 Hits: 8,592