HARDWARE Dell Inspiron E1405

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

This article is released under the Creative Commons Attribution-ShareAlike 3.0 License Image:cc-somerights.png. Authors are listed at the bottom of the article.

This document describes the settings used to install Gentoo 2007.1 64bit SMP on a Dell Inspiron E1405. Updated with settings for the 2.6.24 kernel, in-kernel wifi driver, and xorg-sever 1.4.

Image Copyright 2006 http://www.eden.rutgers.edu/~xmi/images/e1405.jpg

Contents

[edit] Hardware Configuration

This system is configured with:

  • Processor: 64bit Intel Core 2 Duo Merom
  • Memory: 533Mhz DDR2
  • Graphics: Intel i945 GMA chipset
  • Disk: Hitachi 60GB SATA Disk
  • LCD: 14.1" 1440 x 900 (120dpi) TrueLife(tm) glossy display
  • Wifi: Intel 3945ABG wireless chipset
  • Audio: Intel HD Audio
  • Battery: 6-cell battery (48Whr) - lasts ~4 hours

If your system comes with single-core (32bit) CoreDuo, please refer to the other sources discussing 32bit installations at the bottom of the page.

[edit] lspci output

Code: lspci output
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller
02:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX
0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection

[edit] Benchmarks

[edit] Disk

Code: Bonnie++ 1.03
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
whister 2G 27044 64 26002 10 14628 3 34085 62 34682 3 136.0 0
/dev/sda7 on /data type ext3 (rw,noatime,data=writeback,commit=9999)

[edit] CPU

Code: openssl speed rsa512 rsa4096 dsa512 dsa2048 -multi 2
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used:
                  sign    verify    sign/s verify/s
rsa 512 bits 0.000149s 0.000011s 6702.4 93073.6
rsa 4096 bits 0.019760s 0.000292s 50.6 3422.5
                  sign    verify    sign/s verify/s
dsa 512 bits 0.000093s 0.000109s 10697.9 9176.0
dsa 2048 bits 0.000814s 0.000975s 1228.2 1025.2

[edit] Power

This laptop is extremely power efficient when taking into account the computational power of its dual-core processor.

  • Idle wattage, LCD on: 13W, LCD off: 10W
  • both CPUs at 100%, LCD on: 43W

The above were measured using a Kill-A-Watt device plugged into the wall, followed by the laptop power brick plugged into the Kill-A-Watt device.

[edit] Gentoo Configuration

[edit] Kernel

Follow along with the make menuconfig formatted listing, or download the full .config. This static build enables the following:

  • acpi power button, AC/battery montoring, and the LCD lid
  • wired and wireless ethernet
  • audio
  • direct rendering
  • synaptics touch pad and optional external mouse
  • ext3, cloop, DVD, CDROM, vfat, NFS, FUSE, and autofs as mountable file-systems
  • suspend to ram

not enabled:

  • bluetooth
  • infrared controller
  • PC speaker(beeper)
  • framebuffer and boot-splash

[edit] Old Kernel Configs

[edit] Autoload Kernel Modules

Nothing needed, the kernel automatically loads iwl3945

[edit] Portage

[edit] Make.conf Content

File: /etc/make.conf
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-Os -march=nocona -msse3 -fomit-frame-pointer -pipe"
CXXFLAGS="${CFLAGS}"
FFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"
MAKEOPTS="-j2"
FEATURES="-sandbox parallel-fetch -metadata-transfer noinfo nodoc"
PORTAGE_NICENESS="15"
INPUT_DEVICES="keyboard mouse synaptics evdev"
VIDEO_CARDS="i810"
ALSA_CARDS="hda-intel"

[edit] Package.keywords Content

File: /etc/portage/package.keywords
x11-base/xorg-server
media-libs/mesa

[edit] Portage Modules Content

File: /etc/portage/modules
portdbapi.auxdbmodule = cache.sqlite.database
portdbapi.auxdbmodule = cache.metadata_overlay.database


[edit] Hardware-specific Packages to Install

File: Package List
app-laptop/i8kutils

# If you have the Intel wireless hardware
net-wireless/iwl3945-ucode
net-wireless/wireless-tools
net-wireless/wpa_supplicant

# Display utilities for the Intel video card
sys-apps/vbetool

[edit] Init Scripts

[edit] Wireless Interface UDEV Rule

Add the following to rename wlan0_rename to wlan0.

File: /etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x8086:0x4222 (iwl3945)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:18:de:69:92:0b", ATTR{type}=="1", NAME="wlan0"

[edit] Local Startup Script

This startup script (here) does the following:

  • Disables wake on LAN, to save power
  • Lowers CPU voltage, to save power
  • Enabled multi-core scheduling to save power
  • Enables USB and audio-chipset suspension, to save power
  • Registers unknown key scancodes
  • Sets PCI device latency to minimize bandwidth starvation
  • Sets large disk block transfers

[edit] Network Configuration

This section describes configuration parameters for the Intel wireless network interface. This machine may come equipped with either an Intel or Broadcom wireless device. If your system has Broadcom wireless, then for now you will need to use ndiswrapper.

[edit] WPA Supplication Configuration

File: /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=0
fast_reauth=1
ap_scan=1

# Tells wpa_supplicant to try connecting to this network
# in preference to grabbing a random network.
network={
    ssid="Preferred Unsecured Network"
    key_mgmt=NONE
    priority=10
}

# A WEP-encrypted network
network={
    ssid="My WEP Network"
    key_mgmt=NONE
    wep_key0=1234567890AB
    wep_tx_keyidx=0
    priority=10
}

# A WPA-encrypted network
network={
    ssid="My WPA Network"
    scan_ssid=1
    key_mgmt=WPA-PSK
    psk="The WPA Passphrase"
    priority=10
}

# Connect to any network we can find, if none of the above work.
network={
    key_mgmt=NONE
    priority=-9999999
}

[edit] Net Conf Content

File: /etc/conf.d/net
modules=("wpa_supplicant")

wpa_supplicant_wlan0="-Dwext"

config_eth0=("dhcp")
config_eth1=("dhcp")

[edit] Manual Wifi Script

If you find the other wifi management tools too complex or if they do not maintain your wifi connection, the following 15-line script shows you how to setup a connection and repeatedly check and re-associate if needed.

File: /etc/init.d/manual_net.wlan0
#!/bin/env bash

# A simple script to setup and maintain a wireless connection

# Define the connection settings
MODULE=iwl3945
IFACE=wlan0
ESSID=hoya
IP=192.168.1.21
GW=192.168.1.1

# Check if the module is loaded
lsmod | grep -q $MODULE || modprobe $MODULE

# Attempt to associate (if not, that's ok)
iwconfig $IFACE essid $ESSID

# Set TCP/IP and gateway settings
ifconfig $IFACE | grep -q $IP || ifconfig $IFACE $IP up
route -n | grep -q $GW.*$IFACE || route add default gw $GW $IFACE

# Maintain the association, if it drops off then re-establish
while true; do
  iwconfig $IFACE | grep -iq "bit rate" && sleep 30 || iwconfig $IFACE essid $ESSID; sleep 5
done

[edit] Hibernation / Suspend-to-RAM

Suspend to RAM works with the following:

  • s2ram utility (part of the openSuSE suspend package)
  • vanilla 2.6.24 (Suspend option or Suspend2 patches are not needed)
  • supplied kernel configuration HARDWARE Dell Inspiron E1405/Kernel Config 2.6.24.
  • supplied /etc/acpi/events/power script (found in the acpi section below)
  • supplied /etc/acpi/lid.sh script (found in the acpi section below)
  • Virtualization/KVM disabled in the BIOS (press F12 on bootup to change this)

[edit] S2RAM Installation

First emerge the latest s2ram:

 echo sys-power/suspend >> /etc/portage/package.keywords
 emerge -u suspend

[edit] Known issues and work-arounds

The wireless driver will attempt to re-connect to the same access point that was being used at the time of suspension.

Workaround: In the ACPI power script, restart the wireless network service.

[edit] ACPI

The following settings will hibernate your laptop on lid close, and will resume on lid open. The power button has been disabled (similar to a Mac, only used 5-second hard reboot). Note that resuming resets the hard disk settings along with the rapid load-cycle timer, so the lid script re-disables this feature to prevent early HD death.


Tip: Make sure the kernel's ACPI/Video option is disabled
File: /etc/acpi/events/default
# event=.*
# action=/etc/acpi/default.sh %e
File: /etc/acpi/events/battery
event=battery.*
action=/etc/acpi/ac_adapter.sh %e
File: /etc/acpi/events/lid
event=button[ /]lid.*
action=/etc/acpi/lid.sh
File: /etc/acpi/events/power
# event=button[ /]power.*
# action=/sbin/init 0
# action=s2ram
File: /etc/acpi/lid.sh
#!/bin/sh
if grep -q open /proc/acpi/button/lid/*/state; then 
    vbetool dpms on
else 
    s2ram
    udevstart
fi
hdparm -S0 -B254 /dev/sda

This script minimizes the CPU speed while on batteries and allows the full range while on AC.

File: /etc/acpi/ac_adapter.sh
#!/bin/sh
#--------
#
#  Sets the ondemand governor and maximum allowable
#  CPU frequency based on the state of the AC adapter
#  for one or more CPUs or cores.
#
syspath=/sys/devices/system/cpu
governors=$syspath/cpu*/cpufreq/scaling_governor
scalings=$syspath/cpu*/cpufreq/scaling_max_freq
cpu0=$syspath/cpu0/cpufreq

for governor in $governors
  do echo ondemand > $governor
done

if grep -q on /proc/acpi/ac_adapter/*/state
  then 
    ls $scalings | xargs -n1 cp $cpu0/cpuinfo_max_freq
  else  
    ls $scalings | xargs -n1 cp $cpu0/cpuinfo_min_freq
fi
 

Once created, give these scripts executable permissions:

chmod a+x /etc/acpi/lid.sh
chmod a+x /etc/acpi/ac_adapter.sh

[edit] Xorg

[edit] /etc/udev/rules.d/70-touchpad.rules

This dynamically links the correct intput/event* device file to /dev/input/touchpad:

File: /etc/udev/rules.d/70-touchpad.rules
SUBSYSTEM=="input",KERNEL=="event*",SYSFS{name}=="SynPS/2 Synaptics TouchPad",SYMLINK+="input/touchpad"
 

[edit] /etc/X11/xorg.conf

This includes settings to enable AIGLX with xorg-x11 7.3: See HARDWARE Dell Inspiron E1405/xorg.conf

File: /etc/drirc
<driconf>
    <device screen="0" driver="i915">
        <application name="all">
            <option name="force_s3tc_enable" value="true" />
            <option name="fthrottle_mode" value="2" />
            <option name="vblank_mode" value="3" />
            <option name="allow_large_textures" value="2" />
        </application>
    </device>
</driconf>
File: /etc/skel/.Xmodmap
    keycode  96 = XF86Terminal
    keycode 160 = XF86AudioMute
    keycode 174 = XF86AudioLowerVolume
    keycode 176 = XF86AudioRaiseVolume
    keycode 162 = XF86AudioPause
    keycode 144 = XF86AudioPrev
    keycode 153 = XF86AudioNext
    keycode 164 = XF86AudioStop
    keycode 165 = XF86Eject
    keycode 287 = XF86Eject
File: /etc/skel/.xinitrc
xmodmap ~/.xmodmap
xset r
startkde 

[edit] Media

[edit] Mplayer Configuration

See HARDWARE_Dell_Inspiron_E1405/mplayer.conf for optimized video playback, including 1080p output.

[edit] Intel HD Audio

For onboard audio, this chipset has an extremely low noise floor and high signal to noise ratio which is perfect for listening to music on a external system.

To save and restore your volume and audio IO settings over reboots, use your favorite audio mixer (kmix, gnome-alsamixer, alsamixer) to set your volumes and mute/unmute devices to that which you'd like to start with on boot up. As the root user, issue the following on the command line:

 /etc/init.d/alsasound save
 rc-update add alsasound default

[edit] System Maintenance

[edit] Firmware Upgrade from DELL

Upgrading the firmware is straight forward with freedos, mtools, and syslinux:

emerge -u mtools syslinux 
echo 'drive a: file="/boot/freedos.img"' > /etc/mtools/mtools.conf
echo 'mtools_lower_case=1'              >> /etc/mtools/mtools.conf
 
mount /boot
cp /usr/lib/syslinux/memdisk /boot
 
wget http://www.fdos.org/bootdisks/autogen/FDOEM.144.gz -O - | gunzip > /boot/freedos.img
wget ftp://ftp.us.dell.com/bios/MX61_A10.EXE
mcopy MX61_A10.EXE a:

Now add the following to your /boot/grub/grub.conf, reboot into FreeDOS, and run MX61_A10.EXE:

title FreeDOS [Dell BIOS Upgrade]
   kernel /memdisk
   initrd /freedos.img

The latest BIOS can be found at Dell's support site and the latest FDOEM.144.gz boot disk at fdos.

For other options on how to upgrade your BIOS, see HowTo.

[edit] Authors

[edit] Links

Personal tools