Linux on a Dell Inspiron 7000 Laptop

by: Steve Hsieh <steveh@eecs.umich.edu> with the help of feedback from lots of internet users.

As additional I7k configuration information becomes available, I will post it here. If you have information to contribute that is relevant to the I7k, please send me an email and I will add it to this page.

Note: Information on this page should be relevant to all distributions of linux. However, since I personally use Debian, my instructions may need to be modified if you are using a different flavor such as RedHat or Slackware. If I am missing any information regarding a different Linux distribution, provide me the details and I will add it.

Table of Contents

Frequently Asked Questions

Recently, I've received the same questions over and over again, so I guess it is time I started a section for FAQs.

Setting up Linux to Coexist with Windows98

The I7K arrives with one big FAT32 partition for Windows98. The easiest way to install linux and have it coexist with Windows98 is to use Partition Magic to resize the windows partition without destroying its contents [Partition Magic 4.0 can even resize linux partitions!]. I have also been told that the freely available FIPS program also does the job. In any case, after you repartition, create at least 1 linux swap partition (type 82) and 1 linux native partition (type 83). After you are done with the install, append the following lines to the end of your /etc/lilo.conf file:

other=/dev/hda1
table=/dev/hda
label=Win

Then run /sbin/lilo. It will show something like

Added Linux *
Added Win

The * indicates that Linux will be booted automatically if you do not tell it otherwise. To make Windows the default, you can add another line to the end of the file:

default=Win

The next time you boot, press the left-shift key when your computer beeps and you see LILO appear on screen. At that point, you can choose which OS to boot by typing either 'linux' or 'win'.

Base Installation

* Debian:
Installation of Debian Linux 2.0r3 on the I7K was quite straightforward -- I booted off the resc1440 boot disk and installed the rest from a CD-ROM using the DVD drive without any problems.

* RedHat:
"I have RedHat 5.1 installed from the DVD drive (actually, it even boots from it), no problems."
Fernando Pereira <morgan@cardume.com>, email

Memory > 64MB

If you have more than 64MB memory, you may need to pass the mem=xxxM option to linux if you are using the 2.0.x stable kernels. See here for more details.

PCMCIA Configuration

The most current version of the PCMCIA card utilities at the time of this writing is 3.09. You should at least be using 3.0.6. To find out what version of pcmcia-cs you have, issue the command "cardctl -V". You can obtain the latest PCMCIA driver source from http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html. Debian and RedHat users see below. It may also help (especially if you have an internal modem) to add exclude irq 5 inside /etc/pcmcia/config.opts. Lastly, compile pcmcia-cs with CardBus support enabled unless you have a good reason not to.

* Debian users:

* RedHat users:

Modem

"Don't get the internal modem [for Linux]!!! Lilla saved me in her FAQ by telling us that the internal modem is a winmodem, which is useless in Linux. Either of the other [PCMCIA modems sold by Dell] should be fine."

Mark Hilgart, newsgroup

Myself, I bought the 3Com 56k Global Modem as part of the package. The modem comes with X2 support only; you have to download the V.90 upgrade yourself from Dell's support web pages.

X Windows

Free X Server

(April 4 1999) Attention Dell I7k users: The X information below only works if you use BIOS A06 or lower (available here on Dell's FTP server). I will add more information about this when I have time. :-)

Currently, the stock free Xserver developed by the XFree86 Project appears to only partially support the ATI Rage LT Pro found in the I7k. However, there are a number of workarounds that will allow one to use X at 1024x768. Please read this entire section.

Before we continue, first please understand that I am NOT be held responsible for any damage that you do to your own system in case something goes wrong! It is possible to damage your display by using a bad mode, so keep that in mind when you use other people's values, even if it works for them. The same goes true for any hardware modifications that you make.

Having said that, here are a number of ways to get X working on your system:

Method 1: Patched X Server for 15" LCD
If you do not own a 15" I7K, don't even bother trying this method because it won't work on 13" or 14" screens. The patches used here were provided by Marcus Miller <marcusm@llnl.gov>.

  1. First install X for your system as normal. Choose the stock XF86_Mach64 server (i.e. ATI Rage Pro). For other questions (such as monitor frequencies), select any value; we will be overwriting this file later. Do not probe the card for clock information.
  2. Locate the XF86Config file which was generated. On Debian systems, it is stored in /etc/X11/XF86Config. Some distributions use /etc/XF86Config. If you can't find yours, you can use the command "find / -name XF86Config -print" to locate it.
  3. Replace the generated XF86Config file on your system with the one stored here. Some people have told me that the XF86Config file above didn't work properly for them. Tony Dawson <Anthony_Dawson@bigfoot.com> submitted another XF86Config file -- he says that this one works better for him. Use whichever one works better for you!
  4. Locate your XF86_Mach64 binary. The XF86_Mach64 server is usually located in /usr/X11R6/bin, but it will vary with distributions. Again, if you can't find yours, use the find command "find / -name XF86_Mach64 -print".
  5. Replace your system's XF86_Mach64 binary that you just located with one of the modified ones stored here (you must first untar the file). Both the libc5 version and libc6 version is available. (libc5 version courtesy of Marcus Miller <marcusm@k2.llnl.gov>, libc6 version courtesy of Janusz Kawczak <jkawczak@uncc.edu>) If you'd rather compile your own X server, the modifications are located here.
  6. Make sure the new downloaded binary is executable: "chmod 755 /usr/X11R6/bin/XF86_Mach64" (replace /usr/X11R6/bin with the correct path if necessary).

Method 2: VESA Framebuffer
This method should work for all owners of ATI Rage LT Pro adapters and all screen sizes. As an added bonus, you also get Adaptec SlimSCSI 1480A support when you use this method (please also see the 1480A section). Owners of 12.1" screens, however, will have to make some minor adjustments to the XF86Config and lilo.conf files. The basic idea is that we use the VESA frame buffer driver of the 2.2.3-ac1 kernel to properly initialize the card, and then use the stock 3.3.3.1 X server. This means that you will not be able to use the stock 2.0.x kernel provided by your distribution. Since you are using a different kernel, it is possible that you will end up with an unbootable system if you mess up. It's a good idea to have a rescue disk/CD handy before you proceed...

  1. First install X for your system as normal. Choose the stock XF86_Mach64 server (i.e. ATI Rage Pro). For other questions (such as monitor frequencies), select any value; we will be overwriting this file later. Do not probe the card for clock information.
  2. Locate the XF86Config file which was generated. On Debian systems, it is stored in /etc/X11/XF86Config. Some distributions use /etc/XF86Config. If you can't find yours, you can use the command "find / -name XF86Config -print" to locate it.
  3. Replace the generated XF86Config file on your system with the one stored here. If you have a 12.1" LCD screen, chances are it can't display 1024x768. In that case, you need to change all occurences of "1024x768" inside the Screen section of this file to "800x600" (thanks to Olivier Gipouloux <gipoul@anumsun1.univ-st-etienne.fr>, who helped test this out on an Ascentia M6233T).
  4. Locate your XF86_Mach64 binary. The XF86_Mach64 server is usually located in /usr/X11R6/bin, but it will vary with distributions. Again, if you can't find yours, use the find command "find / -name XF86_Mach64 -print".
  5. Replace your system's XF86_Mach64 binary that you just located with one of the stock 3.3.3.1 binaries stored here (you must first untar the file). Both the libc5 version and libc6 version are available.
  6. Download my version of the 2.2.3-ac1 kernel w/pcmcia 3.0.9 modules from here. It contains the 2.2.3-ac1 kernel compiled with vesafb support (in boot/), the modules, plus pcmcia 3.0.9 modules. In other words, before you install this kernel you probably want the pcmcia-cs 3.0.8 binary programs installed as well. To check what version you have, use the command "cardctl -V". If you aren't using pcmcia 3.0.9, I recommend that you first compile and install it before continuing (see the PCMCIA section for details). [Debian users: you can just download pcmcia-cs_3.0.9-1.deb and then install it using dpkg --install pcmcia-cs_3.0.9-1.deb]. If you'd like to build your own kernel but want to see which kernel options I used, you can take a look at my config file. Save this in /usr/src/linux/.config to duplicate my kenel configuration.
  7. Go to the root directory (cd /) and untar the vmlinuz-2.2.3-ac1.tar.gz file that you just downloaded from there.
  8. Edit your /etc/lilo.conf file to add a new section to the end:
    image=/boot/vmlinuz-2.2.3-ac1
    label=Linux-2.2.3
    read-only
    vga=792
    The vga=792 line above is absolutely mandatory! If you have a 12.1" LCD screen and are doing 800x600, you will want to use vga=789 instead of the 792 value above.
  9. NOTE to some Redhat, SuSe, or Slackware users: You may have to add a root= line to the above (after the image= line) if you don't have a global root= line in your config file. To find the right value to add, find another root= line in your lilo.conf and add that line to the above. It will look something like root=/dev/hda3 or root=/dev/hda2.
  10. Run /sbin/lilo. "Linux-2.2.3" should show up as one of the lines that LILO outputs. If so and there are no errors, reboot.
  11. At the LILO prompt, hit the left Shift key to get the prompt and type Linux-2.2.3. If all goes well, the new 2.2.3-ac1 kernel will boot. You should get a penguin logo on the top left screen, and then the regular console text should appear. If Linux doesn't boot, then something went wrong with the installation of your new kernel. You should be able get your original setup by rebooting and not typing Linux-2.2.3-ac1 at the LILO prompt.
  12. If everything looks good, then log in as root and run startx or xinit. If X works, then congratulations, you did it! You can now go about configuring your system to start xdm automatically, if you wish. If it mostly works, but you get some wierd sparkles or lines, you should try dropping the dot clock a notch or two inside XF86Config. Or comment out the first 1024x768 Modeline and uncomment the second one.
  13. Once everything is working the way you like, you can make LILO boot the 2.2.3-ac1 kernel by default by adding another line at the beginning of your /etc/lilo.conf file:
    default=Linux-2.2.3
    On older versions of LILO, it is possible that the default option does not work. In that case, whichever image= section appears first in your config file is the default.

Method 3: More Alternative Methods
If you don't want to use the 2.2.3-ac1 kernel or the above solutions don't work for you, you may want to check out my original workarounds for running XF86. These are older solutions that aren't as elegant, but they may still work for you.

Commercial X Server

If you don't want to mess with XF86 or are afraid to take any chances, the other alternative is to purchase a commercial laptop X server from Xi Graphics. The package retails for $199 (students can get a 25% discount off retail price = $150). Non-students would be better off purchasing it from a reseller such as Linux Mall for $160. If anyone knows of a better price, please let me know...

There is some confusion as to whether or not the ATI LT Rage Pro is officially supported by Xi Graphics. On one of their web pages, it says that it is, while on another page, it says that they are still looking for someone to send in a I7k machine so that they can support it. In any case, users have reported that it does indeed work.

According to Dave Teter <teter@virginia.edu>, "I'm running it on my I7k. Runs great. The demo should install and run fine. The non-demo which you get on the CDROM needs the updates that you can download off their website in order to run the ATI chip. Email me if you have problems."

Sound

Free Driver

The I7k uses an ESS Maestro-2 wavetable sound system. Unfortunately, this too is also presently unsupported by the free OSS driver in native mode for 2.0.x kernels. To use the ESS in soundblaster compatibility mode, you must first initialize it in DOS/Windows using maestro.com and then use LOADLIN to boot into linux. maestro.com also depends on mstrinf.ini. If you have a windows parition, that file should already exist and you should not download the one on this page. Phil Shapiro, <phil@digisolutions.com> has reported on the inspiron mailing list that he has gotten it to work this way using SBPro sound.

The good news is that it looks like the ESS Maestro 2 will be supported in an upcoming release of the linux 2.2.x kernel.

Commercial Driver

There is a commercial driver being developed by 4Front Technologies which will support the ESS Maestro-2 and is supposed to be released in March 99. The cost is $25 and can be ordered from their web site.

Adaptec SlimSCSI 1480A

You can now use the Adaptec SlimSCSI 1480A Cardbus controller under linux by using 2.2.3-ac1 along with pcmcia-cs 3.0.9. If you'd rather not compile the source code, the other way you can utilize this card is to install my compiled 2.2.3-ac1 kernel w/pcmcia-3.0.9 modules (follow the VESA Framebuffer solution in the Free X server section). One tip. You need to add the following line to your pcmcia config.opts file:

module "apa1480_cb" opts "reset=1 ultra=1"

I7k-related Software/Hardware Links

Other Inspiron Links

Other Laptop Resource Links

Laptop Cases and Travel Bags

There are all kinds of laptop cases and travel bags out there. What is best for you depends on your own needs and tastes. Check out the carrying case links on the Linux Information Page. I personally use a Kensington Saddle Bag, which I really like. The 15" I7k fits quite nicely inside, and the saddlebag can be slung over one shoulder, used as a backpack, or carried in one hand the traditional way. More importantly, it doesn't look like a laptop case and thus will not attact undesired attention in areas prone to theft. My only complaint is that because it is not a conventional laptop case, there really isn't any good place to store loose computer components like PCMCIA cards, or even the laptop AC power supply. Of course it all fits, just not in nice organized compartments.

Other Flavors of Unix

If you have any success/failure reports with other unices besides Linux, let me know.

My Configuration

Revision History


Steve Hsieh <steveh@eecs.umich.edu>

Last modified: Wed Nov 4 22:57:59 1998