I bought a Dell laptop last month and as it happens with every new purchase I had to customize it to fit my needs. What else as I first step then installing Linux ? The laptop is a Dell E1405 fully packed with everything including Bluetooth. The first thing one has to determine is the distribution to be installed and in my case I also had to choose between 32 bits and 64 bits since the new laptop carries a Core 2 Duo. My previous laptop had 64-bit Gentoo installed and even though I was satisfied in hindsight I think that it was too much for a laptop to build everything from source (especially if you want to run Gentoo unstable to get the benefits of new packets as I wanted). I was also sick and tired running all these 32 bit libraries to accommodate for stuff not supported in 64 bit in Gentoo (a couple of months ago that included basic stuff like Openoffice). So I decided two changes: install Ubuntu in 32-bit mode. I basically wanted a Debian-based distribution and Ubuntu has become quite popular for its user friendliness. I liked the fact that it has a quick release cycle and knowing that Ubuntu’s community is large enough to find answers for any problems that may occur I decided to go for it. I download and burn the ISO image for Edgey Eft (6.10) reboot and run the installer. What a suprise..the graphics card (an Intel 945GM) is not recognized. As if that is not enough there was no text installer for Ubuntu on the same 700MB CD. In other words I should have downloaded another iso image for a text installer which was unacceptable if you ask me. I was wondering why doesn’t Ubuntu have something similar to Debian’s net installer 100MB iso image with a text installer. I reboot again to Windows (preinstalled by Dell) and burn Debian’s net installer (Etch/Testing). Ubuntu will have to wait for next time.
The installation finished smoothly except for the boot loader part and the partitioning part which needed some thinking. Dell had created all these partitions some of which I had to Google-search to learn what purpose they serve. 5GB were allocated for the windows recovery partition and 2GB for Mediadirect. I had never noticed until then that there is this button titled Mediadirect in the front of the laptop that allows you to turn on the laptop for video/audio playing only. A third partition hosted Windows Media Center 2005 and another partition some basic Dell utilities. I also read that I would better not erase the bootloader from this first partition (maybe inaccurate but I followed in any case). I got rid of the recovery partition. Why would Windows break down when you seldomly use them? I decided to keep the Mediadirect partition. But the bad think was that I couldn’t “move” this partition from the partitioner. Therefore I was left with a large hole of 5GB in the end of the partitionable space that I had to somehow make use of. I decided to make it a FAT32 transfer facilitating partition. To keep the existing Windows’ bootloader I do the usual trick which consists of copying the first 512 bytes from the partition I install grub and adding an entry inside boot.ini in Windows.
Everything seems to work now with some minor annoyances. I’m running the Debian stock kernel 2.6.18-3-686. Comments for each component/part follow.
Video Card – Intel 945GM
————————–
I use these options inside xorg.conf:
Section “Device”
Identifier “Intel Corporation Mobile 945GM”
Driver “i810″
Option “NoAccel” “false”
Option “DRI” “True”
Option “XVideo” “True”
Option “XvMCSurfaces” “7″
Option “PageFlip” “True”
Option “XAANoOffscreenPixmaps” “true”
EndSection
Section “Extensions”
Option “Composite” “Enable”
EndSection
I get by default AIGLX support which allows for Beryl to run without a hitch. I also had to install “915resolution” to get the 1440×900 resolution that my WXGA+ monitor supports. Beryl is incredible but unfortunately I’m not used to all these effects. I prefer simple stuff. KWin is more than enough for me for now.
Network Card and Modem
————————–
No problem for the Broadcom Ethernet card. I haven’t tried the modem yet (never needed up to now).
Wireless – Intel PRO/Wireless 3945a/g
————————–
I preferred this card over the default choice in Dell’s website (a Broadcomm Wireless Card) to stop using the ndiswrapper (since the bcm43xx driver is not stable yet). It has native Linux drivers but they are not as functional as other wireless cards. I needed to install “firmware-ipw3945″ and “ipw3945d”, a binary regulatory userspace daemon. Most of the times everything went ok but after hibernations (or suspensions) it sometimes became impossible to reactivate the wireless even when the kernel module was removed and reinserted (and the daemon restarted). The device refused to cooperate with some error message spit out in the kernel logs. Eventually I had to download the new microcode v1.14.2 (http://bughost.org/ipw3945/ucode/) which had just come out but not released through Debian’s package management. I first had to find out the version Debian provided which was not obvious at all (I found a bug report for that). Eventually I just compared file sizes of the microcode provided by Debian with another package which contained v1.13 and they matched. Therefore what I found was an update and it resolved my problems.
Sound – Integrated Audio Intel 82801GBM/GHM (ICH7 Family)
————————–
The kernel module needed is snd_hda_intel. This sound device behaves very strangely. By default I could hear sound from the external speakers but inserting headphones did not seem to mute the speakers.
The file /usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz contains some useful information for the card. Right now it’s working well since I ‘ve added this line inside file /etc/modprobe.d/alsa-base :
options snd-hda-intel model=ref position_fix=0 single_cmd=1 index=0
The single_cmd=1 was added because the kernel was spitting out a message about that. I’m not sure about the position_fix variable which is set to auto. The important parameter here is model=ref taken from the file referenced above. I’m not sure whether it’s the right model but I tried other models suggested for Dell laptops without getting better results. The state of the sound card is the following : if I have headphones inserted in the jack when the alsa kernel modules are loaded then the sound is heard only from the headphones (removing them produces no sound from the external speakers). If there are no headphones inserted then the sound is heard from the external speakers only. The only solution I have for that : “/etc/init.d/alsa force-reload”. A problem, probably caused by the sound card, sometimes comes up when suspension or hibernation is attempted. If something is being played then any suspension attempts fail and the computer hangs. The mouse is working but no hard disk activity and no interaction possible. I have enabled the option PauseAudio in the hibernation package but still sometimes it may still hang (even though audio players are paused).
Keys in the front
————————–
Similar to here (http://gentoo-wiki.com/HARDWARE_Dell_Inspiron_E1405) I use xbindkeys:
file .xmodmap
*********
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 162 = XF86AudioPause
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 164 = XF86AudioStop
file .xbindkeysrc
*********
“amixer set Master 1-”
XF86AudioLowerVolume
“amixer set Master 1+”
XF86AudioRaiseVolume
“amixer set Master toggle”
XF86AudioMute
“amarok –play-pause”
XF86AudioPause
“amarok –previous”
XF86AudioPrev
“amarok –next”
XF86AudioNext
“amarok –stop”
XF86AudioStop
These commands need to be included in a script which autostars in every session:
xmodmap ~/.Xmodmap
ps -C xbindkeys > /dev/null && killall -9 xbindkeys
xbindkeys
xset r
Fan control
————————–
The kernel module i8k is needed. Modprobing it was not successful so I had to force its insertion “modprobe i8k force=1″. The package i8kutils contains userspace programs which are able to control the fan and some other stuff too.
Cpu
————————–
The kernel module “speedstep_centrino” needs to be inserted for daemons like “cpufrequtils” to autoregulate the cpufrequencies.
Bluetooth
————————–
Works fine. I haven’t tested it more than trying a connection to my mobile phone. I’d like to turn my mobile phone into a remote control whenever I find some time.
Hibernation/Suspension
————————–
As mentioned earlier I use the “hibernation” package which is configurabe enough to suit my needs. Both hibernation and suspend-to-ram are working (the latter is priceless). The file common.conf contains the following only :
*******
Verbosity 2
LogFile /var/log/hibernate.log
LogVerbosity 2
Distribution debian
Runi915resolution yes
LockKDE yes
PauseAudio yes
SwitchToTextMode yes
*******
Vbetool is not enabled but I remember falling into problems when I was trying out thing in the beginning. Also hibernation didn’t seem to work in the beginning until I set the line
“TryMethod sysfs-disk.conf” first inside file /etc/hibernate/disk.conf . In other words suspend2 seemed to cause problems and I replaced it with suspend from the vanilla kernel.
You might want to edit files /etc/acpi/events/sleepbtn and /etc/acpi/events/lm_lid to append the command “hibernate-ram” so that the machines does a suspend-to-ram when the “Stand by” button is pressed or when the lid is closed.
The majority of the times hibernations/suspensions don’t fail. But in some rare cases I am able to suspend the machine but when I get back in the KDE screensaver login screen the keyboard is not working. I can use the mouse and I can even click on the button which is supposed to create a new VT session but it then hangs. It feels like whatever is in memory can be executed but whatever has to be fetched just doesn’t work. I don’t know why that happens and I hope a newer kernel will fix it.
Debian
————————–
I currently have a Debian Testing/Unstable mixed system with packed coming from the testing distribution by default. This is done by adding the line
APT::Default-Release “testing”;
inside file /etc/apt/apt.conf and adding the appropriate unstable repositories (in addition to the testing repositories) inside file /etc/apt/sources.list :
deb http://linux.csua.berkeley.edu/debian/ testing main non-free contrib
deb-src http://linux.csua.berkeley.edu/debian/ testing main non-free contrib
deb http://linux.csua.berkeley.edu/debian/ unstable main non-free contrib
deb-src http://linux.csua.berkeley.edu/debian/ unstable main non-free contrib
deb http://security.debian.org/ testing/updates main non-free contrib
deb-src http://security.debian.org/ testing/updates main non-free contrib
I may also use these repositories for other stuff:
#Multimedia stuff
deb http://www.debian-multimedia.org testing main
deb http://www.debian-multimedia.org unstable main
#Beryl
deb http://download.tuxfamily.org/3v1deb debian-unstable beryl-svn
A very useful application I discovered was “knetworkmanager” which simplifies network connection establishments for mobile users. At first I used “Wireless Assistant Lan Manager” (for wireless connections) which was pretty quick but did not keep state of information and did not support a universal way of keeping connectivity (wired or wireless). Once I changed a file (I don’t remember right now which) related with wpa_supplicant then knetworkmanager became as fast too.
Some other application I tend to use a lot are:
krusader, klipper, mail-notification, gaim, yakuake, iceweasel (firefox), icedove (thunderbird), konqueror, kile, openoffice, akregator, gftp, amarok, k3b, kplayer, kpdf, anjuta, eclipse, kpowersave(version 7.1)
mail-notification is another incredibly useful application that I’d like to note if somebody is interested in getting updated instantly for incoming emails. I had to build a special version from source which has SSL enabled since the default binary package does not support (on purpose) that functionality.