HARDWARE Dell Inspiron 640m

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] General

The propouse of this page is to help installing and setting up gentoo on the Dell Inspiron 640m. Note: This is still a work in progress.

The Dell Inspiron 640m is the European version of the Dell Inspiron E1405, which is configured with almost identical hardware options and has an excellent article on this wiki. Note though. that the the E1405 in the article uses a SATA drive.

Note: It is available in North America as well. I have 2 and I'm in Canada

[edit] 640m Hardware Layout

CPUIntel Core Duo T2300 @ 1.66GHz
Memory1024 MB DDR SDRAM (Upgradable to 2GB) - 2 X PC2100 SODIMM Sockets
MotherboardIntel 945GM + ICH7-M
Display14.1" TFT WXGA+ Display (Resolution 1440x900x16M)
Video CardIntel 945GM
Hard Drive80 GB Ultra ATA
Optical DriveDVD+RW
Sound CardIntegrated Intel HDA Audio Controller (Demo Version)
ModemInternal 56k v.92 fax modem
Network InterfaceBroadcom Corporation BCM4401-B0 100Base-TX
Wireless NetworkingIntel 3945BG 802.11a/b/g mini pci wireless card (WEP, WPA, 802.1x)

TrueMobile Bluetooth card

USB4 USB 2.0 ports
Audio Jacksline-out(external speakers/headphone) and external microphone
Video15-pin monitor connector
S-Video7-pin mini-DIN connector
Firewire1 port
SlotsCard Reader, PC Express
BatteriesPrimary: 48Whr - 6 cell Lithium Ion Battery
Code: lspci output
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
02:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
02:01.0 FireWire (IEEE 1394): Ricoh Co Ltd Unknown device 0832
02:01.1 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
02:01.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
02:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
02:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
0c:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)

[edit] Description

This laptop seems quite well built and fast. The 1440x900 LCD is definitely worth the $60 that I paid for it. Besides that, all the hardware I have dealt with so far is perfectly working under Linux.

[edit] Graphic Installer

If you use the Gentoo LiveCD 2006.1 and you want to use the graphic installer, but X isn't able to start. If X complain about:


Failed to load /usr/lib/xorg/modules/extensions/libGLcore.so

Failed to load module "GLcore"

No devices detected


You need to make a change into the X configuration file

# vi /etc/X11/xorg.conf


change the lines

File: /etc/X11/xorg.conf fragments
Driver    "i810"


for

File: /etc/X11/xorg.conf fragments
Driver    "vesa"


and restart X

# /etc/init.d/xdm restart


X will start and you will be able to use the Graphic Installer.


[edit] Hardware Working

[edit] ACPI: LCD ON/OFF

To enable the LCD going off/on when the lid is closed/opened you can use the vbetool. Otherwise, it is likely that your LCD won't turn on when the lid is opened.

Make shure you have enable acpid daemon

# emerge acpid
# rc-update -a acpid default 

Then emerge the vbetool

# emerge --sync && emerge -vp vbetool

Then, alter the following file and make sure that you at least enter the button/lid event.

File: /etc/acpi/events/default
event=button[ /]lid.*   
action=/etc/acpi/lid.sh

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

Now, create the lid.sh file.

File: /etc/acpi/lid.sh
lidstate=`cat /proc/acpi/button/lid/LID/state | gawk {'print $2'}`;
case "$lidstate" in
        open)
                #/usr/bin/radeontool light on;
		  vbetool dpms on;

                ;;
        closed)
                #/usr/bin/radeontool light off;
                vbetool dpms off;
                ;;
esac

And make sure that the file can be executed.

# chmod +x /etc/acpi/lid.sh

To check if it works, execute lid.sh without actually closing the lid. If you do not receive any errors, it is probably going to work. If you receive any errors, you have probably forgotten to enable ACPI in your linux kernel (make it in the kernel [*] not module [m]). Please consult the ACPI guide on this WIKI


If the script /etc/acpi/lid.sh is working, but don't seems to be executing automaticly, instead of modifying /etc/acpi/events/default you can alter /etc/acpi/default.sh to add the lid case

File: /etc/acpi/default.sh
case "$group" in
        button)
                case "$action" in
                        power)
                                /sbin/init 0
                                ;;
                        lid)
                                /etc/acpi/lid.sh
                                ;;

Note: You can also use xset if you are going to be in X all the time. Enable DPMS in your xorg.conf, and set XAUTHORITY to your root XAUTHORITY file.


As an alternative to the process above, experienced users may wish to patch their DSDT with http://www.reactivated.net/systems/dell-640m/dsdt/01_lid-power-lcd.patch - after this modification, lid open/closing works as expected with no requirement for acpid or similar.

[edit] ACPI: Battery/AC/fan/Thermal-zone

I haven't tried to set up neither sleep states or Suspend to Disk. The battery status is working perfectly with the kernel ACPI module.

With ACPI thermal module loaded laptop might produce humming noise while idle. To fix append "idle=halt" kernel boot parameter (source)


[edit] CPU Scaling/SMP

Remember to enable SMP in the kernel. The CPU's can be scaled with the "Intel Enhanced Speedstep" module. The "conservative" governor scales the frequency of both CPU's pretty well.

[edit] Internal HD

The HD work perfectly with the SATA-PIIX module. It is recognized as a SCSI hard drive.

[edit] Internal DVD+/-RW Drive

It works with the "sr_mod" kernel module.

[edit] Soundcard

It is the Intel HD-Audio Demo Version. I don't completely understand what "Demo Version" stands for. Anyway, it works with the snd-hda-intel kernel module out of the box. It only has the Master, PCM (if you enable OSS Emu), Capture and Microphone channels. The internal speakers (not the best quality) work, and the hearphone jack does too. I haven't tested the microphone yet.

[edit] Graphic Card

See this HowTo.

[edit] Touchpad

The touchpad seems to work pretty well under X11 out of the box.
Howewer, I was confused when I connected my USB mouse and the pointer didn't move. Usually, when you connect USB mouse to desktop, it starts to work automagically and you should not to describe it in any configs.
After some bdsm with xorg.conf, I found a setup that allows both the touchpad and the USB mouse to work together.
You need two input devices (no surprise) and a "Server Layout" section like the following:

File: xorg.conf fragments
Section "ServerLayout"
        Identifier     "Default"
        Screen      0  "Screen0" 0 0
        InputDevice    "Synaptics" "CorePointer"
        InputDevice    "USB Mouse" "AlwaysCore"
        InputDevice    "kbd-internal" "CoreKeyboard"
EndSection

Section "InputDevice"
        Identifier  "Synaptics"
        Driver      "synaptics"
        Option      "Protocol" "raw"
        Option      "Device" "/dev/input/mice"
EndSection

Section "InputDevice"
        Identifier  "USB Mouse"
        Driver      "mouse"
        Option      "Protocol" "Auto"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Button" "false"
EndSection

Note that in both InputDevice sections Device is /dev/input/mice - it is the very important.

If you are using xorg-x11 7.3 (xorg-xserver-1.4), you should remove both mouse and touchpad sections to get it working proper way.

[edit] USB

All four ports work under Linux, with the standard {e,u}hcd_hcd kernel module

[edit] LAN

Works with the "b44" module from the kernel

[edit] Wireless LAN

Works with the "Broadcom 4328" using the NDISWrapper. See the Broadcom 43xx article.


Works with the "ipw3945" driver from portage. Please follow complete details below:

# emerge ipw3945 ipw3945d ipw3945-ucode


Note: If you have problem emerging ipw3945, follow the "Kernel Configuration" section of this HOWTO


then start (as root) the 'ipw3945d' daemon, which will insert the module too. To start it at boot, just

# rc-update add ipw3945d default
Note: To have the init.d script you need to have a version greater than 1.7.22


The radio swich works, and shuts off both the bluetooth and Wi-Fi card.

Note that "iwconfig" and "iwlist eth1 scan" will report wrong Noise values, while the Signal value seems to be reliable.

Note: This will not work with the Dell 1390 wireless, which is the default card that comes with this. It does work fine using NDISwrapper though

[edit] Card Reader

Instructions available at HOWTO SD and MMC card readers

[edit] Keyboard

On some kernel versions (tested 2.6.18.1) laptop keyboard might sporadicly repeat keypresses. For quick test, under X terminal hold any key pressed, after 30 or so letters repeating stops for about a second.

Temporary solution tested is appending "acpi=noirq" to kernel boot parameters source

[edit] Internal DVD+/-RW Combo drive

Works fine

[edit] Bluetooth

Works fine for bluez 2.25

Note: This did not work out of the box for me, I had to reset the device before using it:
hciconfig hci0 reset
Maybe it's a good idea to add it to your /etc/conf.d/local.start. See also this forum post and the Gentoo Linux Bluetooth Guide

[edit] Sleep States / Suspend 2 Disk

Suspending works fine, see HOWTO Software Suspend v2. Here's what I added to my /etc/hibernate/hibernate.conf:

File: /etc/hibernate/hibernate.conf
RestartServices alsasound

Don't forget to add 915resolution, too:

File: /etc/hibernate/common.conf
Runi915resolution yes

[edit] Special keys

If not all, many of the special keys are shown by "dmesg", so they are usable with "xbindkeys" as well as other programs.

This is a xmodmap snippet that works for me to make the keys usable by applications:

keycode 144 = F13
keycode 153 = F14
keycode 160 = F15
keycode 162 = F16
keycode 164 = F17
keycode 174 = F18
keycode 176 = F19
keycode 187 = F20

[edit] Hardware NOT Tested

[edit] Firewire

Not tested, and I probably never will as I don't have any hardware to test it with.

[edit] Modem

Works with linuxant drivers (http://www.linuxant.com/)

[edit] Hardware NOT working

None so far

[edit] Links