The Dell 9k4 (royal) is in state a very modern device with a lot of new and sometimes from linux still unprovided hardware. In the time of writing this HOWTO are some of the drivers under strong developement - so every weeks comes updates or news to the different driver projects.
This is my first Linux on Laptops HOWTO. It was written from my experiences under the gentoo distribution but should used under other Linux distributions as well with some corrections. All my test are done under the linux kernel >=2.6.14 (with udev). Things wich are running 'out of the box' with linux without needed (or different) configuration are not covered from this HOWTO. Software only related things are not part of this HOWTO - i will only show the things wich required to get the most of the hardware up to used and configured at the basics.
I work on Dells notebooks with Linux since several (~8 years) and got every time good experiences with linux and compatibility after some monthes the (most the newest) devices was launched from Dell. So i hope that the Dell 94k hardware will be full compatible with linux also after a couple of weeks or monthes.
I've set the following modified optimization flags in my /etc/make.conf to get the compiled code fitted to the Dell 94k cpu hardware at most my knowledge allow that:
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
This config should a stable in any case. A second working one with more optimization flags on could be:
CHOST="i686-pc-linux-gnu"
CFLAGS="-O3 -march=pentium-m -fforce-addr -momit-leaf-frame-pointer -fomit-frame-pointer -ftracer -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
If there someone has better performance optimized options please let me know...
To get the SMP functionality under the Intel Duo core up 2 run be shure to use or compile your linux kernel with SMP and HyperThreading support as a i386 / PIV family processor. Because the CPU provides the speedstep tech. for power saving you can compile in this options into your kernel too. If needed you will find my 2.6.15 / 2.5.17 kernel .config here for download and fitting to your needs. Copy this to your kernel source directory (i.e. under /usr/src/linux/) and make a make oldconfig to use my .config with your own kernel source.
In order to get the linux system properly booting you have to compile in the SCSI support and the pii-sata drivers (SCSI -> low level drivers -> SATA -> Intel PIIX/IHC SATA support) into your kernel or - in the case of module - you have to load it into you ramdisk at bootup. I prefer - even when i use ramdisks at boot - the compiled in driver to prevent problems during the boot process.
In this state the needed drivers for the 3945 WIFI device are under developement and not part of actual kernels and not in the portage tree. You have two options to install these drivers for you Dell 94k:
Fetch the drivers from the SF project site on http://ipw3945.sourceforge.net/ and follow the README and INSTALL documents for installation hints. As documented therein - in order to get this drivers installed, you have to fetch the newest IEEE 802.11 sources from too. The install script of the ieee subsys will remove some original ieee modules from your kernel, switch off the ieee modules from your .configure file and substitute them with the own / new one. It would be wise to make a copy of your /usr/src/linux to anywhere - in case you like to rebuild the kernel on my sys it wont work with these modified sources.
In time of writing this HOWTO there was still some overlay gentoo ports around wich could be used to install these drivers on the gentoo way. Just take a look if them are still in your portage tree - otherwise fetch them from the net into your overlay tree. You have to place the portage ebuilds into your overlay directory and configure them as you configure all overlay ebuilds (if this is your first contact with overlay ebuilds take a look in the gentoo docs). The ebuilds could be fetched from http://ipw3945.sourceforge.net (questions to me welcome).
Just
emerge nvidia-kernel nvidia-glx ipw3945-firmware bcm4400 cpuspeedy \ alsa-drivers alsa-lib alsa-oss alsa-utils alsa-tools alsa-headers
For some drivers you need still a "ACCEPT_OVERLAY="~x86" to get new enough versions installed:
net-wireless/ieee80211 ~x86 sys-apps/baselayout ~x86 net-wireless/wireless-tools ~x86 net-wireless/ipw3945 ~x86 net-wireless/ipw3945d ~x86 net-wireless/ipw3945-ucode ~x86to bring in the needed drivers (from the portage tree) from the different sources in the net on your system. Some of them are still in newer kernel trees but in most cases i have experienced betters results with the original sources from the developer sites, because most of them are under strong developement or (in case of the nvidia drivers) the are running under different from GPL lic. models.
Load the kernel modules first time by hand with
modprobe
This is my /etc/modules.autoload.d/kernel-2.6:
bcm4400 nvidia autofs parport button processor thermal fan ipw3945 snd-seq-midi-eventThe others would be loaded from other init (like ALSA) scripts or the coldplug / hotplug mech. byself. For further kernel rebuilds or updates i prefer the gentoo tool module-rebuild wich take care of automatic rebuild / update of all emerged kernel modules by portage in case of kernel rebuilds or updates. After
emerge module-rebuildGive a
module-rebuild populateTo let the portage system figure out wich drivers it has to (re)emerge in case of any later kernel builds. After such build just put in
module-rebuild rebuildTo build all the modules against the new freshen kernel tree. Take a look in module-rebuild -h wich is self expl. enough for itself.
The nvidia adapter runs with the kernel drivers as well - but things like hardware acceleration and some other nice things works only
with the original nvidia drivers from http://www.nvidia.com (download area). You can use this original nvidia drivers by the
portage system with the ebuilds nvidia-kernel and nvidia-glx wich installs alle the driver
stuff and configure your xorg.conf plus the openGL config automatically. If you install the drivers from the origs you have to change the
'driver' in your /etc/X11/xorg.conf as follows:
Section "Device"
Identifier "NVIDIA7800Go"
Driver "nvidia"
EndSection
... Section "Module" load "glx"to get the glx accelerator driver up.
Section "Monitor"
Identifier "Standardbildschirm"
HorizSync 28.0 - 96.0
VertRefresh 43.0 - 60.0
Option "DPMS"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "NVIDIA7800Go"
Monitor "Standardbildschirm"
DefaultDepth 16
SubSection "Display"
Depth 1
Modes "1920x1200"
EndSubSection
SubSection "Display"
Depth 4
Modes "1920x1200"
EndSubSection
SubSection "Display"
Depth 8
Modes "1920x1200"
EndSubSection
SubSection "Display"
Depth 15
Modes "1920x1200"
EndSubSection
SubSection "Display"
Depth 16
Modes "1920x1200"
EndSubSection
SubSection "Display"
Depth 24
Modes "1920x1200"
EndSubSection
SubSection "Display"
Depth 22
Modes "1920x1200"
EndSubSection
EndSection
Section "InputDevice"
# Identifier and driver
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/psaux"
Be shure have placed this somewhere (at the end?) of your xorg,conf to give all users access to DRI:
Section "DRI"
Mode 0666
EndSection
To configure your opengl subsys to your NVIDIA card make a:
eselect opengl set nvidiaso your X11 sould work as needed.
Unti the 1.11 ALSA version i got different problems with the driver and sound system. Sometimes it hangs and most it didn't gives any sound out. So i have contacted to the ALSA devel lists and fiddeled with some patches on the CVS sources to get the SigmaTel up to work. After the next ALSA update this problem was fixed (see CHANGES of ALSA 1.0.10 to 1.0.11) - there was a bunch of several works on snd_hda_intel driver. While other notebook user have to set different extra module options on the Dell 94k intel_hda (SigmaTel) are no module options needed anymore. To save time by (re)emerging the alsa drivers you can bring in ALSA_CARDS="hda-intel" to your make.conf.
After installing the drivers you have to
alsaconfyour sound devices. Don't forget to unmute the mixer levels because the newer ALSA drivers load the sound system in muted state (i.e. use alsamixer). To store your mixel levels permamently use
alsactl store 0
rc-update add alsasound defaultto start the sound at boot time.
Cdrecord shows it as a ATAPI device at 0,0,0. So you have to configure it in /etc/defaults/cdrecord or /etc/cdrecord.conf as
cdrom= ATAPI:0,0,0 -1 4m ""
There are several things to do to bring the full notebook hardware up 2 run under Linux. If you have some ideas or own better or newer experiences on the Dell 9k4 royal please send me your tips and informations to help me to fullfill this HOWTO for the Linux user community. Thank you!
...some next comes this days...
Date: 04.04.2006