SUSE 9.3 on a Dell Precision M70



Dell Precision M70 Hardware

Chris Cox

The Dell Precision M70 is a workstation notebook computer. It has a professional Quadro go1400 GPU, a small 15" 1920x1200 screen, supports the newer 533Mhz FSB Pentium-M processors and Sonoma architecture. It is reasonably light weight, fits most notebook cases and backpacks and has excellent (for an upper class notebook) battery life (2.5 hours+). Dell Precision M70 Notebook
2.0 Ghz 533Mhz Intel Pentium M 760
1G PC 2x512 Corsair DDR2-522 PC4200
60GB Hitachi E7K60 7200 RPM PATA
GCC-4243M DVD/CDRW
Nvidia go1400 256MB PCIe GPU
1920x1200 WUXGA 15.4" LCD
Intel W2200BG Wireless
BCM5751 Gigabit Ethernet
AC97(i810) sound
90W (9 cell/80 WHr battery)
D-Port Port Replicator (Docking Station)

Untested

I wanted to test everything.  I did try the built-in modem under a modified SUSE 9.2 without success.  But I did not try really hard, so I cannot say if the built-in modem works or not.

WinModem 56K (PCMCIA modems are pretty much plug and play via YaST)
SmartCard Reader

1. Installation of SUSE 9.3

Novell SUSE 9.3 allows you to install using CDs or DVD.  I don't like swapping CDs, so I performed a DVD installation.

First install failed. Was in the Detail installation screen watching packages getting installed when I switched back to the Slide Show, started getting I/O errors on the DVD/CDRW device.  I recommend stayting with the Detail view when packages are getting installed.


  1. SUSE 9.3 uses a graphical installer, you can select your resolution which includes several VESA screen resolutions.  Unfortunately, 1920x1200 is not a VESA resolution, so I picked 1600x1200.  The resolution will guide initial defaults for X11 screen resolution, but it is really unrelated.  So it doesn't matter if you go with an ultra high resolution install or not.  In fact, SUSE allows for a text based install if you just can't do a graphical install (e.g. installing using a non-graphical terminal).  Also, it is possible to do an install via VNC (Virtual Network Computing), so you could add vnc=1 on the boot line and use a remote VNC client.  This was the best way to do a graphical install if using a VMware guest, but now with VMware 5.0, it appears that VESA  frame buffer
  2. I chose to do a new install. and started out selecting my timezone as US-central UTC.
  3. Package selection was the Default KDE install, plus I added gcc and other development tools and the kernel sources.
  4. After the packages were installed, I configured the networking.  For now I left the BCM5751 as a "manual" configure (so it will not get started) and configured the W2200BG.  However, when I got to configuring my WEP key, it would not accept it.  It said it was an invalid key (I used a hexadecimal representation of the key as given by my Linksys WRT54G wireless router. Mine is acting as a bridge to my primary wired network,  the DCHP actaully will come off of my D-Link DI-707P).  Later after the install is finished I will use YaST to insert the WEP key, which works.
  5. For the initial user setup that is part of the install process, I prefer to have my HOME directory to be /localhome rather than /home.  That is because where I work, we use /home as an automount point under NIS-NFS.  In older versions of SUSE, you could see the detailed options for user creation and change the user's HOME directory.  I did not a way of changing a user's HOME directory in the SUSE 9.3 installer.  It did have a way to change the global defaults for new users... BUT there is a problem.  After the install is complete you will find that the /etc/default/useradd file is not correctly formatted.  It shows my change to /localhome for the basedir (HOME=/localhome), but it has an invalid entry for the default GROUP=.
  6. When you get to the X11 (xorg) setup, select a VESA monitor that can do 1920x1440@60Hz, while still in the sax2 setup, change your resolution setting to use settings from 1920x1200 and below.  I already had an external wheel mouse (Logitech Mouseman, explorerps/2, so under sax2 I show both the ALPS touchpad as well as my external mouse as being configured.  I will get the commercial Nvidia driver later.
  7. When it prompted for using Online Update at the end of the install, I declined.  We can do that later.  In general, I have always had problems running YOU at the install phase.  Too many variables to let the install just hang at the end.   For example, in my case, since my WEP key was not allowed at install, I really do not have any network connectivity (no sense in doing YOU at all).
I did not detail out every step of the SUSE 9.2 install.  I will gladly try to answer any questions though.

2. Post Installation

  1. Logged in as the user I attempted to create at install time, ccox.  But noticed that the HOME directory was still /home.  Checked the useradd defaults with useradd -D and it came back with an error because the GROUP parameter in /etc/default/useradd was not defined correctly.  I set GROUP=100 (that is, users) to fix that problem.  Then I moved my HOME from /home/ccox to /localhome/ccox and edited /etc/passwd directly to correspond to the change in the HOME dir.  Logged out.
  2. Logged back in and brought up YaST and successfully entered my WEP hexadecimal key.  Same panel as during install, except this time the key was accepted.  And Intel W2200BG wireless enabled perfectly with WEP.
  3. Performed a YaST Online Update (YOU) and also installed the commercial Nvidia drivers (fetchnvidia.sh) via YOU.  Verified that Driver "nvidia" was being used inside /etc/X11/xorg.conf.  This worked surprisingly well.

3. CD/DVD Issues

When I first attempted to put SUSE 9.2 on my M70, I quickly discovered that the DVD/CDRW drive and harddrive are PATA devices connected to a combination SATA/PATA controller.  This is interesting, because I was unable to see the DVD/CDRW at all.  I loaded the ide-generic modules, which did allow me to see the DVD/CDRW, but WITHOUT DMA.   Kernel 2.6.11.4 fixed most of the issues.  I still have a disk with SUSE 9.2 and everything works just fine (except software suspend to disk).

  1. I fully expected some CD/DVD issues with SUSE 9.3.  While the DVD/CDRW was at least seen, there were some significant issues:
    1. SATA-like devices blacklisted.
    2. /dev/cdrom was a directory instead of a link to a device.
    3. submounts were happening using /media/<volname> which was unreliable.
  2. I first de-blacklisted the CD/DVD (SATA-like) devices.  Edit the file /usr/share/hal/fdi/90defaultpolicy/storage-policy.fdi.  Change storage.media_check_enabled to "true".  There is a warning comment about kernel crashing in the file, but I do not believe it is applicable.  This should allow suseplugger to work.
  3. I then got rid of the /dev/cdrom directory by modifying how hotplug devices were handled in /etc/sysconfig/hotplug.  Edit /etc/sysconfig/hotplug and change HOTPLUG_DEV_ON_TMPFS="yes".
  4. Finally, a change is required to fix the fact that CD's are now being mounted at /media/<volname>.  While using <volname> seems to be a good idea, the problem is that many of my CDs would not work.  Not sure if it's a problem with the code used to get the volume names, or simply poor judgment.  Create a file called /usr/share/hal/fdi/90defaultpolicy/cddvd.fdi with the following content:

<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

<!-- Added by Chris Cox -->
<deviceinfo version="0.2">
<device>

<!-- Mount CD/DVD-rom drives as /media/dvd and CD/DVD Writers as /media/cdrecorder
instead of as /media/<<VOLUME_NAME>> -->

<match key="@info.parent:storage.drive_type" string="cdrom">
<match key="@info.parent:storage.policy.desired_mount_point" string="cdrom">
<merge key="volume.policy.desired_mount_point" type="string">dvd</merge>
</match>
<match key="@info.parent:storage.policy.desired_mount_point" string="cdrecorder">
<merge key="volume.policy.desired_mount_point" type="string">dvdrecorder</merge>
</match>
</match>

</device>
</deviceinfo>

Hopefully, the CD/DVD drive is working now.

4. Must Haves from kde-look.org and kde-apps.org

  1. textshadowedit - This packages compiles easily if all of the KDE/Qt/C/C++ development tools are in place.  Provide a KDE Control Center panel for changing how the shadows look for the desktop icons.
  2. superkaramba - There is a binary RPM there.  Superkaramba allows you to run little controls all over your desktop that do things like monitoring in the root backdrop of your system.
  3. Crystal SVG icons - Well, it would appear that you have these, BUT you really don't.  There is a download link from www.linuxcult.com at kde-look.org.  You can remove all instances of kmenu.png from your $HOME/.kde/share/icons/crystal/* directories to get the gecko back as your start button (if that's interesting).
  4. filelight - Really nice visual directory from kde-apps.org.

5. Must Haves from packman.links2linux.org

  1. Go to http://packman.links2linux.org and search for libdvdcss2.  There you will find instructions and a source RPM (have to get the source tarball from somewhere else... READ the directions there!!).  After you copy the  libdvdcss2*tar.bz2 file to /usr/src/packages/SOURCES you should be able to do a rpmbuild --rebuild libdvdcss2*src.rpm to create the RPMs in /usr/src/packages/RPMS/i586.  This library is necessary if you want to play encrypted DVDs on Linux.
  2. You can get individual RPMs and get each dependency by downloading them from www.links2linux.org...  BUT there is a better way.  Using YaST, add a new installation source with "Change Source of Installation".  Add HTTP packman.iu-bremen.de with directory of suse/9.3.   Move that entry so that it is ahead of your primary 9.3 installation source.  Now you can update your kaffeine, and install xine-ui and libxine* using the newer packaman versions. Dependencies will be handled by YaST. 

The bad news is that there is no longer a pre-built kwin-shadow rpm for SUSE 9.3.  The developer says that now that xcompmgr is supported, there is no need for kwin software generated window shadows.  BUT, since the transparency and shadow support in xorg and Nvidia has numerous bugs yet.  So no easy way to have stable shadows on KDE yet.

6. Xorg.conf

Everyone always want to see it... so here goes...

(A twinview version x.org config)
# /.../
# SaX generated X11 config file
# Created on: 2005-05-20T01:30:49-0500.
#
# Version: 4.8
# Contact: Marcus Schaefer <sax@suse.de>, 2002
#
# Automatically generated by [ISaX] (4.8)
# PLEASE DO NOT EDIT THIS FILE!
#
Section "Files"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/local"
  FontPath     "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/URW"
  FontPath     "/usr/X11R6/lib/X11/fonts/Speedo"
  FontPath     "/usr/X11R6/lib/X11/fonts/PEX"
  FontPath     "/usr/X11R6/lib/X11/fonts/cyrillic"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin2/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/latin7/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/baekmuk:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/japanese:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/kwintv"
  FontPath     "/usr/X11R6/lib/X11/fonts/truetype"
  FontPath     "/usr/X11R6/lib/X11/fonts/uni:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/CID"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/ucs/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/misc:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/75dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/100dpi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/hellas/Type1"
  FontPath     "/usr/X11R6/lib/X11/fonts/misc/sgi:unscaled"
  FontPath     "/usr/X11R6/lib/X11/fonts/xtest"
  FontPath     "/opt/kde3/share/fonts"
  InputDevices "/dev/ttyS0"
  InputDevices "/dev/ttyS1"
  InputDevices "/dev/ttyS2"
  InputDevices "/dev/ttyS3"
  InputDevices "/dev/ttyS4"
  InputDevices "/dev/ttyS5"
  InputDevices "/dev/ttyS6"
  InputDevices "/dev/ttyS7"
  InputDevices "/dev/ttyS8"
  InputDevices "/dev/psaux"
  InputDevices "/dev/logibm"
  InputDevices "/dev/sunmouse"
  InputDevices "/dev/atibm"
  InputDevices "/dev/amigamouse"
  InputDevices "/dev/atarimouse"
  InputDevices "/dev/inportbm"
  InputDevices "/dev/gpmdata"
  InputDevices "/dev/mouse"
  InputDevices "/dev/usbmouse"
  InputDevices "/dev/adbmouse"
  InputDevices "/dev/input/mice"
  InputDevices "/dev/input/event0"
  InputDevices "/dev/pointer0"
  InputDevices "/dev/pointer1"
  InputDevices "/dev/pointer2"
  InputDevices "/dev/pointer3"
EndSection

Section "ServerFlags"
  Option       "AllowMouseOpenFail"
EndSection

Section "Module"
  Load         "dbe"
  Load         "type1"
  Load         "freetype"
  Load         "extmod"
  Load         "glx"
  Load         "v4l"
EndSection

Section "InputDevice"
  Driver       "kbd"
  Identifier   "Keyboard[0]"
  Option       "Protocol" "Standard"
  Option       "XkbLayout" "us"
  Option       "XkbModel" "inspiron"
  Option       "XkbRules" "xfree86"
EndSection

Section "InputDevice"
  Driver       "mouse"
  Identifier   "Mouse[1]"
  Option       "Buttons" "5"
  Option       "Device" "/dev/input/mice"
  Option       "Name" "Logitech Optical Mouse"
  Option       "Protocol" "explorerps/2"
  Option       "Vendor" "Sysp"
  Option       "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
  Driver       "synaptics"
  Identifier   "Mouse[3]"
  Option       "AccelFactor" "0.04"
  Option       "BottomEdge" "650"
  Option       "CircScrollDelta" "0.1"
  Option       "CircScrollTrigger" "2"
  Option       "CircularScrolling" "1"
  Option       "Device" "/dev/input/mice"
  Option       "EdgeMotionMaxSpeed" "15"
  Option       "EdgeMotionMinSpeed" "15"
  Option       "Emulate3Buttons" "on"
  Option       "EmulateMidButtonTime" "75"
  Option       "FingerHigh" "15"
  Option       "FingerLow" "14"
  Option       "HorizScrollDelta" "20"
  Option       "InputFashion" "Mouse"
  Option       "LeftEdge" "120"
  Option       "MaxSpeed" "0.5"
  Option       "MaxTapMove" "110"
  Option       "MaxTapTime" "180"
  Option       "MinSpeed" "0.2"
  Option       "Name" "ALPS;Touchpad"
  Option       "Protocol" "auto-dev"
  Option       "RightEdge" "830"
  Option       "SHMConfig" "on"
  Option       "TopEdge" "120"
  Option       "UpDownScrolling" "1"
  Option       "Vendor" "Sysp"
  Option       "VertScrollDelta" "20"
  Option       "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
  Option       "CalcAlgorithm" "CheckDesktopGeometry"
  DisplaySize  360 270
  HorizSync    28-90
  Identifier   "Monitor[0]"
  ModelName    "1920X1440@60HZ"
  VendorName   "--> VESA"
  VertRefresh  50-60
  UseModes     "Modes[0]"
EndSection

Section "Modes"
  Identifier   "Modes[0]"
  Modeline      "1920x1200" 186.57 1920 2048 2256 2592 1200 1201 1204 1241
  Modeline      "1900x1200" 184.26 1904 2024 2232 2560 1200 1201 1204 1241
  Modeline      "1680x1050" 141.09 1680 1784 1960 2240 1050 1051 1054 1086
  Modeline      "1600x1200" 155.47 1600 1704 1880 2160 1200 1201 1204 1241
  Modeline      "1600x1024" 131.69 1600 1704 1872 2144 1024 1025 1028 1059
  Modeline      "1600x1000" 127.62 1600 1696 1864 2128 1000 1001 1004 1034
  Modeline      "1400x1050" 118.42 1400 1488 1640 1880 1050 1051 1054 1086
  Modeline      "1440x900" 102.81 1440 1520 1672 1904 900 901 904 931
  Modeline      "1280x1024" 105.15 1280 1360 1496 1712 1024 1025 1028 1059
  Modeline      "1280x960" 97.68 1280 1352 1488 1696 960 961 964 993
  Modeline      "1280x800" 80.58 1280 1344 1480 1680 800 801 804 827
  Modeline      "1280x768" 77.37 1280 1344 1480 1680 768 769 772 794
  Modeline      "1152x864" 78.82 1152 1216 1336 1520 864 865 868 894
  Modeline      "1024x768" 61.89 1024 1080 1184 1344 768 769 772 794
  Modeline      "800x600" 36.88 800 832 912 1024 600 601 604 621
  Modeline      "768x576" 33.74 768 792 872 976 576 577 580 596
  Modeline      "640x480" 23.06 640 656 720 800 480 481 484 497
  Modeline      "1920x1440" 234.00 1920 2048 2256 2600 1440 1441 1444 1500 -HSync +VSync
EndSection

Section "Screen"
  DefaultDepth 24
  SubSection "Display"
    Depth      15
    Modes      "1600x1200"
  EndSubSection
  SubSection "Display"
    Depth      16
    Modes      "1600x1200"
  EndSubSection
  SubSection "Display"
    Depth      24
    Modes      "1920x1200" "1900x1200" "1680x1050" "1600x1200" "1600x1024" "1600x1000" "1400x1050" "1440x900" "1280x1024" "1280x960" "1280x800" "1280x768" "1152x864" "1024x768" "800x600" "768x576" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      32
    Modes      "1600x1200"
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "1600x1200"
  EndSubSection
  Device       "Device[0]"
  Identifier   "Screen[0]"
  Monitor      "Monitor[0]"
EndSection

Section "Device"
  BoardName    "Quadro FX Go1400"
  BusID        "1:0:0"
  Driver       "nvidia"
  Identifier   "Device[0]"
  VendorName   "NVidia"
EndSection

Section "ServerLayout"
  Identifier   "Layout[all]"
  InputDevice  "Keyboard[0]" "CoreKeyboard"
  InputDevice  "Mouse[1]" "CorePointer"
  InputDevice  "Mouse[3]" "SendCoreEvents"
  Option       "Clone" "off"
  Option       "Xinerama" "off"
  Screen       "Screen[0]"
EndSection

Section "DRI"
    Group      "video"
    Mode       0660
EndSection

Section "Extensions"
EndSection