Linux on a Dell Inspiron 3200:

(best viewed at 800x600)

History:
12-19-99 - updated preface and added X Windows projector display info.
03-07-99 - added sound info, short note in preface. Reorganized for readability.
12-20-98 - corrections to RH5.2 info.
12-17-98 - added info on DVD drive, and RH5.2
11-15-98 - added info on network card.
11-09-98 - corrected typos, made additions/clarifications.
10-24-98 - original posting.

Preface
Links To Other Sites
The Machine & The Software
Installing Red Hat
Booting For the First Time
PCMCIA - Part 1: The Modem
PCMCIA - Part 2: The Network Card
X Windows*updated*
Configuring Sound
Dual Booting
Mounting Other Partitions

Preface

"This is Linux country; on a quiet night, you can hear NT reboot..."

This is a summary of how I got Linux to work on various latop-specific features of my system. I wrote it as much to try to clarify my own understanding as to help others with Linux laptop installation. Although these steps worked for me, I can't guarantee they'll work for you, and I won't be held responsible for any damage to your machine or data as a result of following the instructions described here. 

I apologize in advance for the disarray of this document. I recommend reading it from start to finish, as I often do not provide "step-by-step" instructions for specific subsections. It will make more sense, I hope, if you read it in order of presentation. 

I would be glad to respond to any emails. Also, I'd really appreciate corrections and suggestions. I'm sure there are inaccuracies here someone can point out and explain. My e-mail address is jeffreychiu@yahoo.com.

Linux is cool. Have fun. 

NOTE, 3-7-99: Thanks to all who wrote in with comments, suggestions, even questions. I've learned a lot. With 30+ emails and close to 4000 hits since its inception, this page has way surpassed my expectations. 

Hello, Dell, are you paying attention? Linux support, please? Not just servers but desktops and laptops too with Linux-compatible hardware or custom drivers? 

12-19-99: Well, Linux was up-and-coming when I first posted this page, and now it's close to "mainstream." Amazing what can happen in a year's time.
I am no longer actively maintaining this document; I run Linux on a desktop box now, and am devoting my laptop to other uses. I suggest trying the links below if you're seeking out more information on running Linux on a laptop.

Links To Other Sites

The Machine & The Software

I have a Dell Inspiron 3200. It's my baby.

Basic specs:

  • Pentium II-266
  • 13.3" XGA Active Matrix
  • 80 MB RAM
  • 4 gig IDE HD
  • NeoMagic card w/ 2 MB
  • Texas Instruments PCI 1131 Cardbus Controller
PCMCIA Cards:
  • Viking Components 56K Modem
  • Linksys Combo (10BaseT/2) Ethernet Card
The hard disk was partitioned this way prior to Linux installation:
  • 2 gig NTFS partition (Windows NT 4.0 Workstation)
  • 1 gig FAT partition (extended DOS partition for data)
  • 1 gig free
I installed Red Hat 5.1 (kernel 2.0.34, PCMCIA card services 3.0.5). (NOTE: Red Hat 5.2 has been released, which, in addition to having a newer kernel, saves you the trouble of having to download additional software in order for XFree86 to work. See the X Windows section.) 

I bought the 3-CD set for $50. You can get Red Hat CDs cheaper on the web; the boxed set comes with some additional software and demos, plus an install manual for newbies which is pretty decent. You also get 90-day installation support, which, thankfully, I didn't have to use. =)

Why Red Hat? Check out this page for more info on that.

Installing Red Hat

Installation should be pretty easy. There was a boot floppy supplied with the set; you can also make one using a blank 1.44M disk, the included RAWRITE program and boot.img file.

Using this to boot the setup program, I selected the CD-ROM installation method. It detected my CD-ROM and copied data just fine. 

Jarrod Smith, however, had a problem with Red Hat 5.2 and a newer Inspiron 3200 that came with a DVD drive, a TORiSAN DRD-N216, and was good enough to e-mail me about it. The installation process would freeze when copying the RPM's, at different points during several attempts There are apparently known problems with RH 5.2 installations from FAT32 partitions; Jarrod ended up installing 5.1 instead. If you are installing RH 5.2 from the hard disk to avoid a DVD problem, check out his page: http://www.users.fast.net/~rodsmith/rhjol-fat32.html

Of the free space, I set aside 80 megs as "swap" and the rest as a native Linux partition at the root mount point "/". For me, this came up as /dev/hda3 (see my disk layout above). After I selected my packages, the setup program set up the file system, copied the files and prepared it for booting.

However, I screwed up the installation on my first attempt with two mistakes: 

  1. I didn't install LILO, Linux's boot loader
  2. When prompted to make a custom boot disk, I chose "Skip," thinking I could make NT Boot Loader boot the Linux partition somehow. 
You need to do ONE of the above to get Linux to boot.

NOTE: There is a mini-HOWTO on how to make Windows NT and Linux peacefully co-exist on the same machine. Read through this; it's good, and works well (also, see section below on Dual Booting). There is no need for LILO at installation time; just BE SURE to make the custom boot disk. But again, you need to do at least ONE of these two thing.

I had to redo the installation, this time making a boot disk.

Booting For the First Time

Using my custom boot disk, I started up Red Hat Linux for the first time. Of course, nothing is ever easy, and it got as far as displaying the following message before hanging:
        Starting PCMCIA Services: modules
I tried booting without any PCMCIA cards inserted, but with the same results. 

I've seen two web pages for installing Red Hat on Inspiron 3000's, and neither reported this problem; their cardbus controllers were detected properly. Whether this problem is specific to just MY laptop or to the 3200 series (maybe the 3000 has a different cardbus controller?), I don't know. 

There are two workarounds. (The first is simpler)

  1. When you boot using your custom boot disk, type "linux 1" at the boot prompt instead of hitting ENTER. This will put you in runlevel 1 after loading the kernel; no init scripts will be run. Login as root, and at a shell prompt, type:
  2.         cd /etc/sysconfig
    This is the directory where the config file pcmcia resides. Using an editor such as vi or pico, change the first line from "PCMCIA=yes" to "PCMCIA=no". Then reboot.
     
  3. Make a rescue disk using RAWRITE and rescue.img. Boot with your custom boot disk, type "rescue" at the prompt, then insert the rescue disk when you're told to. You will eventually get a shell prompt. Do the following:
  4.         cd /
            mkdir temp
            mount /dev/hda3 /temp
            cd /temp/etc/sysconfig
    (Replace /dev/hda3 with your Linux partition) Use an editor as in option #1 to make the same changes to the pcmcia file.
After doing one of the above, you should be able to boot without any problems, without PCMCIA support.

PCMCIA - Part 1: The Modem

Of course, I have cool PCMCIA devices I want to use. So how to get PCMCIA to work...? 

A look at /var/log/messages revealed that the loadable module i82365.o was causing the machine to lock up when it tried to look for a cardbus controller. See the PCMCIA HOWTO doc for more info on this problem; it diagnoses it as an IRQ scanning issue.

For this part, I had to rely on Windows NT to get some information to fix this. Windows 95 should do the trick too, as well as some system diagnostic tools, although I haven't found any that give cardbus controller information (anyone know of any?). The Dell Diagnostic diskette that ships with the Inspiron may be helpful, I haven't tried it.

In WinNT, Start Menu -> Control Panel -> PCMCIA will display some helpful information. I was able to find out the following:

  • My Texas Instruments PCI 1131 cardbus controller (i82365 compat) uses:

  • I/O port: 3E0-3E1
    Memory Range: D0000-D3FFF
  • My Viking Components 56k Modem uses:

  • IRQ 3
    I/O port: 2F8-2FF
Great! Now to tell Red Hat's PCMCIA services how to detect my cardbus controller and devices properly...

I edited /etc/sysconfig/pcmcia to read:

        PCMCIA=yes
        PCIC=i82365
        PCIC_OPTS="irq_list=3"
        CORE_OPTS=
        CARDMGR_OPTS=
The third line tells the i82365.o loadable module to scan only IRQ 3 (for my modem), thus avoiding potential conflicts.

I also edited /etc/pcmcia/config.opts to look like:

       include port 0x200-0x3ff, memory 0xd8000-0xd4fff
       exclude irq 1
       exclude irq 2
       exclude irq 8 
       exclude irq 12
       exclude irq 13
       exclude irq 14
       exclude irq 15
Basically, I took a look at /proc/interrupts and whatever IRQs were there, I excluded. Obviously, you will have to do the same poking around and figure out which values work for your system configuration.

The next startup executed properly; my modem was detected as /dev/cua1. I tested it, and all was well in the world. Except for a strange message in /var/log/messages: 

kernel: cs: warning: no high memory space available!
kernel: cs: memory probe 0x0d0000-0x0d4fff: clean.
Why it isn't detecting the high memory space taken up by the controller, I dunno. (Ideas, anyone?)

PCMCIA - Part 2: The Network Card

I also have a Linksys Combo Ethernet card. Note that before trying to get PCMCIA services to detect and initialize drivers for the hardware, you should FIRST edit the /etc/pcmcia/network.opts file to specify the usual TCP/IP information for this interface; most importantly: IP address, subnet mask, broadcast address, gateway (if any), DNS servers (if any). There is also some stuff for IPX, but I personally have no use for that. 

WinNT reports that my Ethernet card uses:

  • IO Port: 300
  • IRQ: 10
The first thing I tried was to add IRQ 10 to /etc/sysconfig/pcmcia, so the third line now reads:
PCIC_OPTS="irq_list=3, 10"
But no such luck-- it would freeze when trying to probe that IRQ. I had to use one of the workarounds above to get back into the system.

So WinNT could assign IRQ 10 to my network card, but Linux PCMCIA couldn't. Why? I have no clue.

Taking a look at /proc/interrupts, I found:

 0:     139487   timer
 1:       6652   keyboard
 2:          0   cascade
 3:      39466 + serial
 5:          1   sound blaster
 8:          1 + rtc
12:      57073   PS/2 Mouse
13:          1   math error
14:       9512 + ide0
15:          0 + ide1
Okay, when desperate, use trial and error. 4, 6, 7, 9, 10 and 11 are not seen by Linux as being in use. 10, however, locks up the computer, so it's no good. That leaves five others to try. 

You can try out each IRQ without rebooting your computer. Issue the following commands at the shell prompt:

     cd /etc/rc.d/init.d
     ./pcmcia stop
That kills all PCMCIA services. Now, edit /etc/sysconfig/pcmcia to test the IRQ of your choice. To start up the services again at the shell prompt, type:
     cd /etc/rc.d/init.d
     ./pcmcia start
Messages will tell you right away whether the IRQ you are trying works or not.

For me, IRQs 4, 7 and 9 worked. 6 and 11 did NOT; my guess is that they are in use for something although /proc/interrupts doesn't report them as such. 

Thanks to Harvey Platter for dropping me a helpful note about IRQ 6: this seems to be used by the floppy drive. (The Inspiron allows the floppy drive to be connected via parellel port) 

The dmesg output is as follows for successful card loading:

loading device 'eth0'...
eth0: NE2000 Compatible: port 0x300, irq 4, hw_addr 00:E0:98:02:09:03
Previously, I had thought the BIOS assigns resources (IO ports, IRQs) for PCMCIA devices upon booting the computer. I guess this is incorrect, though, since 4, 7, and 9 all work. It would seem that resource allocation is up to the particular softare you use to implement PCMCIA.

Interestingly, Paul Rushing had no problems whatsoever with his RH5.2 installation and PCMCIA devices. He booted from the CD-ROM, selected "no PCMCIA support during installation" and edited /etc/sysconfig/pcmcia to read PCMCIA=yes. His two cards, a Linksys 10/100 and Psion Dacom 56k modem, detected without having to fudge with IRQs and addresses.

X Windows

To configure X Windows to run on your machine, you need to tell X what video card and monitor you have. Based on your video card selection, it will pick an appropriate "X Server," the main component for running X Windows. Your monitor settings will ensure that you get the proper resolution modes and colors.

Laptops complicate things.

XFree86 3.3.2 doesn't come packaged with an X server that works with my NeoMagic card. (Not yet, anyway-- I've read things that suggest it's in development) It picks the plain SVGA one by default, and that comes up in dinky 320x200 mode. Definitely not acceptable. 

There is some information floating around the Internet about how to get a Linux X server for NeoMagic cards. On his web page, Jeff Shorey posted an X server with an implementation that uses the XFree86 link kit; he was able to get: 

  • 800x600x8colors
  • 800x600x16colors
  • 1024x768x8 (with the right tweaking to the XF86Config file)
I tried compiling his server under FreeBSD and got weird results: a 800x600 screen area in 1024x768 screen mode (X Windows appeared in the top left corner off the display). Hmmmm. Better, but not great. 

Happily, Red Hat recently released a binary-only X server specifically for NeoMagic cards! Hooray! You can get it at the Red Hat ftp site. Follow the instructions in the README.neomagic file, and it works perfectly. If you are installing Red Hat 5.2, the NeoMagic X Server should come with it. 

By default, running "startx" gives you 1024x768x8colors. You can fool with XF86Config if you like, but to get 16 colors from the command line, simply type:

        startx -- -bpp 16

Projector Displays: a fellow named Robert DuCharme asked about problems he was having using X with a projector display, then discovered the answer himself. If you're having trouble getting a projector display to work with X, he suggests finding these lines and un-commenting them:

       # Option "intern_disp"
       # Option "extern_disp"

Configuring Sound

I lost interest in games abou two years ago, so sound wasn't high on my list of priorities. But I've finally gotten around to exploring the Linux sound drivers, so here's what I've found. 

If you installed RH5.1/5.2, or if you ran the sndconfig utility, you probably got the generic Soundblaster Pro emulation to work. On my machine, this produced only 8 bit sound, and my speakers would squawk loudly if a program such as RealAudio Player tried to produce 16 bit output. 

My Inspiron 3200 has a Crystal 4237B sound card, which works with the CS4232 loadable sound module. Use this instead of the Soundblaster/SBPro module. I dug around, and as far as I can tell (could be wrong), the CS4232 module is hard-coded with configuration values. That means you can't just edit a config file; you need to do some re-compiling. 

IMPORTANT: Unless you know what you're doing, you can cripple your system if compile a kernel, install it incorrectly and fail to take measures to insure you can boot an old kernel. Be careful. That said, here we go. 

  1. Go into the BIOS setup. Under "Audio", turn off PlugNPlay. You should see some options appear for SB IO Address, IRQ, 1st and 2nd DMA Channels. Adjust if necessary. Then write them down. Then boot Linux.

  2.  
  3. You'll need to install the Linux source code package. Consult the RH manual or the Kernel-HOWTO document for instructions on doing this. 

  4.  
  5. Run "make menuconfig" from /usr/src/linux. The generic kernel should come with sound support as a loadable module. If it doesn't, change the sound support option to modular instead of static. (If you do this, you will need to recompile the whole kernel as per instructions in the Kernel-HOWTO.) 

  6.  
  7. If it's already modular, great! De-select all the sound cards you don't have-- SB, Turtle Beach, etc-- and leave:
    • Crystal 4232
    • FM Synthesizer Support
    • Generic FM Support
    • "/dev/dsp" and /dev/audio" support.
    Further down the sound menu, there's a place to enter configuration values for the CS4232 module. Enter the values you found in the BIOS. (Note that the SB IO Address is NOT the same as "CS4232 audio I/O base." Leave that as 530.)
     
  8. Exit the config program, and save your changes.

  9.  
  10. If you changed sound support from static to modular, re-compile the whole kernel; remember to do a "make modules" and "make modules_install" too. Then you're done-- skip the next step.

  11.  
  12. If you didn't need to change sound support as above, it's simpler. Go into /usr/src/linux/drivers/sound and type "make". This will build the module file, sound.o. Copy sound.o to /lib/modules/2.x.x (where 2.x.x is your Linux kernel version) and you're done. Reboot.
The RealAudio Plug-in for Netscape is a good way to test if 16-bit sound is enabled. Download it, and find a RealAudio link on the Internet (www.npr.org sometimes has good stuff). Stop the sound clip from playing, then go to "Preferences" option on the menu. One of the things you can set is whether to disable 16-bit sound (I think it's disabled by default). Take this off, play the clip again and see if it works, or just squawks. 

A cute trick I learned about: you can dump a wav file directly to the sound device to play it. Wheeeeee. Just type:

   cat test.wav > /dev/dsp
Raw audio files (.au) can be dumped to /dev/audio. 

One last thing: I've been looking for a good sound application for Linux to mix tracks and songs. If anyone's found one, I'd really appreciate an e-mail about it.

Dual Booting

I mentioned that there's a HOWTO document on dual booting NT and Linux. It recommends that instead of using LILO on your Master Boot Record (MBR), you use the NT OS Loader. I like this method; it keeps things simple, so you don't add anything weird to your MBR in case you want to easily remove Linux at a later date. 

The HOWTO is basically self-explanatory with regard to the steps you need to take to accomplish this. But here is a short overview of the process anyway. 

  • Install Linux and make a custom boot disk, as described in the Installation section above. Do NOT install LILO when asked.
  • Boot Linux. Edit /etc/lilo.conf to put LILO on the boot sector of your Linux partition, rather than the MBR. Write the changes by running LILO. 
  • Dump the boot sector of your Linux partition to a file (ex. bootsect.lnx) using the "dd" program. Copy this to a disk or a FAT partition so NT can read it in the next step. 
  • Boot NT. Copy bootsect.lnx to your main NTFS partition. Edit C:\boot.ini to tell NT OS Loader to use bootsect.lnx as a boot option; bootsect.lnx has info on where the Linux partition starts on the physical drive. 
  • Reboot. NT OS Loader will now have a menu entry for Linux.
Nice, huh?

Short Hint on Boot Utilities

I had a utility that came with FreeBSD to dual boot FreeBSD and Win NT prior to getting Linux. This took over my Master Boot Record (MBR), so after following the instructions described above, I had to go through 2 steps to boot Linux: 

FreeBSD's Boot Utility -> Win NT Boot Loader -> Linux. 

Here's an easy way to remove many boot utilities from the MBR (provided they just write over the MBR and don't do anything weird). You need a bootable DOS or Windows 95 disk and the FDISK utility. After you've booted with the floppy, run: 

fdisk /MBR 
This will write a new copy of the MBR to the hard disk. The new MBR will boot whichever partition is marked as "active." If you aren't sure what that will boot, run fdisk without any parameters PRIOR to the above to make sure that you have the appropriate partition marked as active.

Mounting Other Partitions

I sometimes need to access files on my FAT partition. Doing this is simple. Make a directory (for example, /dospart) and type the following as root:
        mount -t vfat /dev/hda5 /dospart
The "-t vfat" option specifies that the file system uses long filenames. Without it, the names are converted into old-style 8.3 DOS filenames with annoying ~1 appends and such. 

The numbering scheme is not sequential for partitions if you have an "extended DOS" type, like I do. Hence, /dev/hda1-/dev/hda4 describe "primary DOS" types, and extended partitions start at /dev/hda5. 

Be sure to unmount when done:

        umount /dospart
or issue a graceful shutdown when you're ready to turn off the machine. Otherwise, you risk corrupting the filesystem if any writes are pending

Web Counter: Nedstat Counter

Back to Jeff's Home Page