HARDWARE Dell Latitude D610
From Gentoo Linux Wiki
| Laptops • TV Tuner Cards • Wireless • Servers • Storage • Other Hardware • Motherboards • Related |
This page is to cleanly sum up the results of this thread about this laptop. Any help welcome :)
Contents |
[edit] Graphics
[edit] ATI Radeon Mobility M300 Chipset
To get the M300 working is quite simple
emerge ati-drivers
When you run fglrxconfig select single monitor mode.
NEW as of version 8.20.7 there is a new config tool replacing fglrxconfig; aticonfig --initial will create a good default base config for any radeon card and write it to xorg.conf
Note Make sure to install ati drivers version 8.16.xx or above. If you have ati-drivers version 8.14.13-r1 and earlier , and your laptop has 1Gb of ram and more -- DRI will fail. To work around that problem with the old drivers, you can decrease amount of memory at the boot time by specifying mem=832.
Note Be careful with version 8.32.5. With my D610, the resume after hibernation was hanging the machine (garbage on screen, then definitly hanged). I had to switch back to the 8.30.3 version, which seems to works fine with hibernation. If you don't want problems with hibernation, i recommand you to switch to a console (alt+ctrl+F1) before hibernate. Otherwise, the resume hangs sometime (but not all the time). Also note that 8.32.5 doesn't officially support the final version of Xorg 7.2, see the release notes (https://www2.ati.com/drivers/linux/linux_8.33.6.html#182529) for details.
For example,
kernel /vmlinuz root=/dev/sda3 resume2=swap:/dev/sda2 idle=halt vga=0x31B video=vesafb:mtrr,ywrap,vram=64 mem=832m
[edit] Intel i915GM
See this HowTo.
[edit] Disks
Edited by rfk, Jan 23 2006
HDD is SATA.
| Linux Kernel Configuration: SATA config |
Device Drivers --->
SCSI device support --->
<*> SCSI disk support
SCSI low-level drivers --->
<*> Serial ATA (SATA) support
<*> Intel PIIX/ICH SATA support
|
[edit] CD-RW/DVD-ROM
Edited by rfk, Jan 23 2006
Some drives are SATA ones. You can check with the following command:
dmesg|grep -i cd-r
If you see lines starting with hdX (e.g. hdc) you're lucky and can skip this step. For the others:
| Linux Kernel Configuration: SATA config |
Device Drivers --->
SCSI device support --->
<*> SCSI CDROM support
SCSI low-level drivers --->
<*> Serial ATA (SATA) support
<*> Intel PIIX/ICH SATA support
|
To make the CD/DVD rom work you have to do a bit of kernel hacking; edit /usr/src/linux/include/linux/libata.h:
| File: /usr/src/linux/include/linux/libata.h |
|
and change #undef ATA_ENABLE_ATAPI /* define to enable ATAPI support */ to #define ATA_ENABLE_ATAPI /* define to enable ATAPI support */ |
this will force atapi to work happy happy.
[edit] NOTE
To make the CD-RW/DVD-ROM work in newer versions of the 2.6 kernel (post 2.6.11?), you just need to add "libata.atapi_enabled=1" (without the quotes) to your kernel command line.
[edit] LAN
This works out of the box with
| Linux Kernel Configuration: LAN |
Ethernet (1000 Mbit) ---> <*> Broadcom Tigon3 support |
[edit] Wifi
This works fine with net-wireless/ipw2200 >= 1.0.4 including monitor mode (useful for Kismet) You'll also need :
CONFIG_CRYPTO=y CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_MICHAEL_MIC=m
The WiFi LED can be enabled by simply adding the following to your file /etc/modules.d/ipw2200 (if the file is not there, create it).
| File: /etc/modules.d/ipw2200 |
options ipw2200 led=1 |
then run
modules-update
[edit] Bluetooth
I followed the The Host-to-Host-Bluetooth-HOWTO and it worked. The Bluetooth Status LED is turned on via hardware. As soon as I installed the bluetooth module in my laptop the blue led light up. Note the bluetooth AND wifi card are both controlled by the same Fn+F2 so when one is off, they both are. You can how ever turn the wifi off via software.
Kernel options :
| Linux Kernel Configuration: |
Device Drivers --->
Networking Support --->
<M> Bluetooth subsystem support --->
<M> L2CAP protocol support
<M> SCO links support
<M> RFCOMM protocol support
[*] RFCOMM TTY support
<M> BNEP protocol support
[*] Multicast filter support
[*] Protocol filter support
<M> HIDP protocol support
Bluetooth device drivers --->
<M> HCI USB driver
[*] SCO (voice) support
|
Then i restarted hotplug (bluetooth is as module in my case). After that , the device seemed to work :
| Code: grep ^[TPD] /proc/bus/usb/devices | fgrep Cls=e0 -B1 -A1 |
T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=e0(unk. ) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=413c ProdID=8103 Rev=16.57 |
I just installed the hci tools, and it works.
[edit] ACPI
Works fine with default setup. I can read Temp and battery status. Now what i plan to do : suspend to ram when i close the screen, beeping when battery is low and auto suspend to disk when battery is very low.
I did the following to get my speedstep stuff working. I compiled all the acpi stuff into the kernel.
emerge acpid cpufrequtils radeontool rc-update add acpid default
Edit the /etc/acpi/default.sh
| File: /etc/acpi/default.sh |
#This file modified by Ryan Neufeld August 2005
set $*
group=${1/\/*/}
action=${1/*\//}
case "$group" in
button)
case "$action" in
power)
/sbin/init 0
;;
lid)
/etc/acpi/lid.sh
;;
sleep)
;;
*) #logger "ACPI action $action is not defined"
;;
esac
;;
ac_adapter)
/etc/acpi/ac-adapter.sh
;;
*)
#logger "ACPI group $group / action $action is not defined"
;;
esac
|
I also created the following two scripts /etc/acpi/lid.sh to turn off/on the LCD when you close/open the lid. NOTE: In the latest versions, radeontool installs by default to /usr/sbin, not /usr/bin. Modify the following script accordingly.
| File: /etc/acpi/lid.sh |
#This file created by Ryan Neufeld August 2005
lidstate=`cat /proc/acpi/button/lid/LID/state | gawk '{print $2}'`;
case "$lidstate" in
open)
/usr/bin/radeontool light on;
#non radeon users can use "xset dpms force on;"
;;
closed)
/usr/bin/radeontool light off;
#non radeon users can use "xset dpms force off;"
;;
esac
|
And to change the cpu governor when your ac adapter changes I have created this. Put it in /etc/acpi/ac-adapter.sh
| File: /etc/acpi/ac-adapter.sh |
#Choose the governor you want to use when laptop is running on ac power
#(performance or ondemand recommended)
#This file created by Ryan Neufeld August 2005
ONAC_GOVERNOR="performance"
BATT_GOVERNOR="conservative"
range=`cpufreq-info | grep 'Hz -'`
minmhz=`echo $range | gawk '{print $3 $4}'`
maxmhz=`echo $range | gawk '{print $6 $7}'`
acstate=`grep state /proc/acpi/ac_adapter/AC/state | gawk '{print $2}'`;
case "$acstate" in
on-line)
#Do stuff when the ac adapter is plugged in
cpufreq-set -g ${ONAC_GOVERNOR} -u ${maxmhz}
logger "AC Adapter is plugged in. Setting CPU governor to ${ONAC_GOVERNOR}";
#get the current speed in KHz
speed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq`;
#throw it to bc and get MHz
mhz=$(echo "scale=0; ${speed}/1000" | bc -l);
logger "Current cpu speed is $mhz MHz";
;;
off-line)
#Do stuff when the ac adapter is un-plugged
cpufreq-set -g ${BATT_GOVERNOR} -d ${minmhz} -u ${maxmhz}
logger "AC Adapter is un-plugged. Setting CPU governor to ${BATT_GOVERNOR}";
#get the current speed in KHz
speed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq`;
#throw it to bc and get MHz
mhz=$(echo "scale=0; ${speed}/1000" | bc -l);
logger "Current cpu speed is $mhz MHz";
;;
esac
|
Also, dont forget to restart the acpid daemon when you make changes to default.sh. Also you MUST make the extra scripts executable,
owned and exec by root only works just fine (# chmod a+x).
(This information gleaned from: http://www.thinkwiki.org/wiki/Talk:Problem_with_high_pitch_noises)
Many people have reported high-pitched noise coming from the processor. Usually, this noise becomes more pronounced after a suspend-resume cycle. Various solutions have been proposed, including updating the bios to A04 and passing "idle=halt" to the kernel on boot. Unfortunately, I'm already at A06 and still experiencing the problem, and idle=halt isn't the best solution, as indicated below.
The noise itself is generated by the processor entering energy-saving idle states. the ACPI standard allows for several, with a higher number being a more energy-conserving state. The noise seems to come from the states 3 and 4. Therefore, by locking it in state 2, you can eliminate the noise. The kernel parameter "idle=halt" locks it in state 1. As a result, it is prefered to put it in state 2 if the noise bothers you. You can do that by passing a kernel parameter or setting a module parameter, depending on wether the acpi module "processor" is a loadable module or compiled into the kernel.
For compiled into the kernel, add this to your kernel options (grub.conf or lilo.conf):
processor.max_cstate=2
For the module approach, add this file and run "modules-update"
| File: /etc/modules.d/processor |
options processor max_cstate=2 |
Alternatively, you can use this in either case:
| File: /etc/conf.d/local.start |
echo 2 > /sys/module/processor/parameters/max_cstate |
Some i915GM owners (including me :) experienced problems with the lid - the LCD did not resume operation after closing and reopening it. Here comes the fix:
echo 0x80000001 > /proc/acpi/video/VID/LCD/state
To automate that you could place the command above into your lid.sh script (for example instead of xset which did not work for me).
[edit] CPU Frequency Scaling
Works fine with cpuspeedy. at 2Ghz, average temp is 80°C. at 800Mhz, it drop to 43°C.
CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_TABLE=y
cpudyn seems to be nice to auto-regulate CPU frequency accordingly to system load. I'll post some feedback.
[edit] Suspend to
[edit] Ram
Suspend-to-ram needs a suitable kernel patch to nicely suspend and resume SATA disk.
New. A working kernel patch is already included in the gentoo-sources version greater than or equal to 2.6.15-r1.
I managed to have a working suspend-to-ram (Intel video card) by following the directions of http://www.thinkwiki.org/wiki/Problems_with_SATA_and_Linux
A working patch against kernel 2.6.14 (currently, I am using gentoo-sources v. 2.6.14-r5) can be downloaded from http://www-dimat.unipv.it/boffi/D610/01_sata.patch
To apply the patch, go to the directory where you build your kernel (typically /usr/src/linux) and issue the command
patch -p1 $PATH_TO_PATCH/01_sata.patch
Then compile and install your kernel as usual. Include the following with your kernel configuration:
| Linux Kernel Configuration: |
Power management options (ACPI, APM) ---> --- Power Management support [ ] Power Management Debug Support [*] Software Suspend |
A suspend cycle is started by issuing the command
echo mem > /sys/power/state
The green power led starts blinking. In order to resume you can either push the power button or open the lid.
After suspending and resuming everything just works great! You might need to use vbetool to restore your video output (you can include the following line at the end of your suspend script):
/usr/sbin/vbetool dpms on
If you have a conexant modem, you need to stop it before suspending and to restart it after resuming.
Note: There are important differences for models with different video cards (Intel vs. Radeon). For the Radeon X300, the video is blank after resuming, and vbetool does not fix the problem. (One can blindly type "/usr/sbin/vbetool dpms on" after resuming, but nothing happens.) Instead, try using the "hibernate-ram" script provided with suspend2-sources, and in /etc/hibernate/ram.conf, set:
### vbetool EnableVbetool yes # RestoreVbeStateFrom /var/lib/vbetool/vbestate VbetoolPost yes # RestoreVCSAData yes
Then as root, type "hibernate-ram" (either from the console, or from xterm), and it works. (Not yet tested in framebuffer.)
By Daniele Boffi 16Jan2006 daniele.boffi at gmail.com
[edit] Disk
Suspend2 writes contents of RAM to disk. This is a quick overview of how to set it up in Gentoo. There are things that can go wrong and lose your data, so be carefull. Read more at the suspend2 web page at:
Here are the steps I used to get suspend2 to work:
Use the supplied suspend2 kernel or patch your favorite one. The Gentoo kernel is masked for the stable ~x86 series so to use the Gentoo suspend kernel do:
echo "sys-kernel/suspend2-sources" >> /etc/portage/package.keywords emerge -v suspend2-sources
Change directory to /usr/src and you should see a a new suspend2 kernel. As of this writing, it is linux-2.6.12-suspend2-r4. You have the option of using your swap file or a file system file to store the suspend file. I use my swap file to store the suspend2 data. This is an option under:
| Linux Kernel Configuration: |
Power management options (ACPI, APM) ---> --- Software Suspend 2 --- Image Storage (you need at least one writer) [ ] File Writer [*] Swap Writer --- General Options (/dev/sda3) Default resume device name [ ] Allow Keep Image Mode [*] Warn if possibility of filesystem corruption |
Configure the rest of your kernel as you like, compile, install and set up your boot loader (grub or lilo).
Install the hibernate package with:
emerge hibernate-script
Edit the /etc/hibernate/hibernate.conf file. This file has sections for using different methods to suspend: suspend2, sysfs_power_state, and acpi_sleep. I just enabled:
| File: /etc/hibernate/hibernate.conf |
UseSuspend2 yes PowerdownMethod 5 |
For FGLRX (8.20.8 / suspend2-2.6.14-r7 confirmed to work) users be sure to add the following line:
| File: /etc/hibernate/hibernate.conf |
ProcSetting extra_pages_allowance 5000 |
and commented out the other sections. Note: for version 8.32.5 of the fglrx drivers, i had to raise the value of "extra_pages_allowance" from 5000 to 20000. Otherwise, fglrx was hanging the machine durinf hibernation.
Hibernate! From a root shell, type hibernate. Your computer should switch out of X to a raw console and you should see some disk action as the swap file is written and then your computer should shut down. When you press the power button, a normal power-on boot process should appear. Once you are booting the kernel and it loads the suspend2 code it will look for the suspend2 file and load it.
After resuming, X, wireless network, USB mouse and sound work just as before the suspend.
New update as of 16September05: After ugrading to Gentoo suspend kernel 2.6.12-suspend2-r6, wireless networking quit working. I did the commands:
emerge -C ipw2200 ieee80211 && emerge ipw2200
to get it working again.
By Mark Holbrook 16August05 spamtrap at desertharmony.com
Added by Daniele Boffi 16Jan2006 daniele.boffi at gmail.com
If you prefer not to use suspend2, you can use the standard suspend procedure. Prepare your kernel as usual and add the following configuration:
| Linux Kernel Configuration: |
Power management options (ACPI, APM) ---> --- Power Management support [ ] Power Management Debug Support [*] Software Suspend (/dev/sda6) Default resume partition |
Please, substitute /dev/sda6 with your swap partition ("cat /proc/swap" for more information)
Then (after installing the new kernel and rebooting) you can simply hibernate by issuing the command
echo disk > /sys/power/state
A little hack is needed in order to restore the 1400x1050 resolution with the Intel video card. This is the part of my hibernate script dealing with this issue:
chvt 1
echo disk > /sys/power/state
/etc/init.d/855resolution restart
chvt 7
Added by rfk, Jan 23 2006
If you are having problems with suspend2 and the resolution after hibernation add the following line to your /etc/hibernate/hibernate.conf:
| File: /etc/hibernate/hibernate.conf |
OnResume 86 /etc/init.d/855resolution restart |
[edit] Touchpad
Working quite fine, although the clic rate is too quick imo. Both buttons pairs (upside and downside the touchpad) work.
For more info, you should check HARDWARE Synaptics Touchpad and make sure you follow the ALPS Section.
[edit] Modem
Works very well with <M> Intel/SiS/nVidia/AMD MC97 Modem (EXPERIMENTAL)
- Added by Ryan Neufeld Sept 6 2005
I was unable to get mine functioning with the above method. I was able to get it working well with the linuxant drivers however.
There are several models of modems, your mileage may vary.
- Added by Milan Cosnefroy May 29 2006
You need SLMODEMD to make MC97' modems work. Compile and install it with only one command: "make install ALSA_SUPPORT=1". I use this startup script. (part-time link, often broken). Some extra modem commands are needed in your ppp client's config file, and you must disable waiting for line.
[edit] IRDA
Contributed by Mark Tomich 2006.02.04
In order for the instructions linked below to work, you need to emerge setserial. Many thanks to the author of this page: http://www.kcore.org/?menumain=4&menusub=2 (I'd love to give credit, I can't seem to find a name)
You'll need to compile your kernel with the following options:
| Linux Kernel Configuration: |
Networking --->
[*] Networking support
<M> IrDA (infrared) subsystem support --->
<M> IrLAN protocol {optional?}
<M> IrCOMM protocol {optional?}
[*] Ultra (connectionless) protocol {optional?}
[*] Cache last LSAP {optional?}
[*] Fast RRs (low latency) {optional?}
[*] Debug information {optional?}
Infrared-port device drivers --->
<M> IrTTY (uses Linux serial driver) {optional?}
<M> IrPORT (IrDA serial driver) {optional?}
<M> SMSC IrCC (EXPERIMENTAL)
|
BTW, the author of the page linked above says that "Bus Options -> ISA support" is required, but I'm not so sure. I turned it on, just in case, but I haven't validated that it's required.
As you reboot after installing your fresh kernel, set your IR port to use COM2 in your BIOS...then you can use the settings below. Other settings should be possible, but then I wouldn't how to tell you how to configure your kernel module options.
Create the file /etc/modules.d/smsc-ircc2 and put the following line in it:
| File: /etc/modules.d/smsc-ircc2 |
options smsc-ircc2 ircc_irq=4 ircc_dma=3 ircc_sir=0x2f8 ircc_fir=0x280 |
Then, run modules-update. Now, you should be able to run "modprobe smsc-ircc2" without trouble. Optionally, you can add a line reading "smsc-ircc2" to your /etc/modules.autoload.d/kernel-2.6, and then you'll have it turned on at each reboot (if you do that sort of thing often ;-)
[edit] PCMCIA
Added By Ryan Neufeld August 17/2005
Edited by rfk, Jan 23 2006 (removed unnecessary modules)
To get pcmcia working, just follow the gentoo guide.
| Linux Kernel Configuration: |
Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> PCCARD (PCMCIA/CardBus) support ---> <*> PCCard (PCMCIA/CardBus) support [ ] Enable PCCARD debugging <*> 16-bit PCMCIA support --- 32-bit CardBus support --- PC-card bridges <M> CardBus yenta-compatible bridge support |
Emerge the following packages
emerge pcmcia-cs rc-update add pcmcia-cs default
[edit] Special Keys
[edit] xmodmap
Adding the following to your ~/.Xmodmap will map the volume keys to the XFree media names.
| File: ~/.Xmodmap |
keycode 160 = XF86AudioMute keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume |
Then add the following to the begining your .xinitrc (assuming its not there already)
| File: ~/.xinitrc |
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
|
[edit] lineakd
Another way of enabling the special keys is using lineakd. The advantage of lineakd is a nice OSD displaying the volume. To start off you have to emerge the following packages:
emerge -av x11-misc/lineakd x11-misc/lineak-defaultplugin x11-misc/lineak-xosdplugin
Once everything is installed run the following command as your primary user:
lineakd -c DELL-D600
This will write a configuration file to ~/.lineak/lineakd.conf. Open it and add (or change, if already existing) the following values:
| File: ~/.lineak/lineakd.conf |
Display_plugin = xosd AudioLowerVolume = EAK_VOLDOWN AudioMute = EAK_MUTE AudioRaiseVolume = EAK_VOLUP |
Afterwards start the daemon with the following command:
lineakd &
[edit] Alternate Special Keys for KDE
If you are using KDE, you can enable the volume keys by doing the following...
- Open the Control Center.
- Under "Regional & Accessibility," select the "Keyboard Layout" module.
- Select "Enable keyboard layouts"
- Select Keyboard model: "Laptop/notebook Dell Inspiron 8xxx"
- Feel free to select your appropriate keyboard layout here as well.
