Linux on Laptops

Sponsored by LinuxCertified Inc.

Home | New | Models | Components | Discussion | Submit        


linux-dell-laptops FAQ
version 20040621-1
==============================================================================
Maintained by: Stephen Lau (ldl at grommit dot com)
Last updated:  2004 June 21st

The latest version of this FAQ can always be found at:
	http://www.whacked.net/ldl/faq

This faq was put together with help from many people on the ldl mailing 
list, some of them are: (if I didn't know their last name, then I put the 
first part of their email address, I didn't put all of it to prevent 
spambots from finding us)
	Don (don at hawktech dot net), David Megginson, Juri Haberland 
	(haberland at altus dot de), Chris (cnix15 at msn dot com),
	Stuart Blake Tener (stuart at bh90210 dot net), John Cronin,
	wcburton2, Thomas Hadig (hadig at slac dot stanford dot edu),
	Marc Swanson, Ryurick Hristev, Fabian Fagerholm, Eric Sundby,
	Brian Gold, Andrew McGlashan, Jochen M. Braun, James Hendrick,
	Rudolf Usselmann, Felipe Rivera, Doug Campbell
	(plus countless others I forgot)

==============================================================================
Background:

	The linux-dell-laptops mailing list is hosted by YahooGroups (formerly 
	eGroups).  It is a mailing list of users supporting other users who 
	choose the run the world's best operating system (Linux, obviously) 
	on Dell laptops of various kinds.  Some of the more common models 
	people have are the Latitudes, and Inspirons.  

	This FAQ attempts to pre-emptively answer some of the most common 
	questions that are posted to the linux-dell-laptops mailing list.

	This is becoming out of date as the newer Dell models come out, 
	and as distributions get better about recognising funky laptop
	hardware.  I mainly just update things with regards to broken URLs
	and links now....

==============================================================================
I will be mentioning websites throughout the FAQ... rather than mentioning 
them all inline, I have tabulated all the URLs at the end in a 
handy-dandy reference section. :)
==============================================================================
Notation/abbreviations/dictionary:
	Throughout the FAQ, I will use certain terms which I will detail here:

	I8K = Inspiron 8000
	MBR = Master boot record
	s2r = Suspend to ram
	s2d = Suspend to disk
	G2Go = Nvidia Geforce2Go
	ldl = linux-dell-laptops (as in this mailing list)

Important files:
	/etc/lilo.conf
		This is the file that controls your LILO bootup, i.e.: which 
		OS to boot into and such.
	/boot/grub/menu.lst
		This is the file that controls the GRUB bootloader if you're
		not using LILO.
	/etc/X11/XF86Config-4
		This is your XFree server configuration file
	/etc/pcmcia/hermes.conf
		Configuration for the orinoco_cs driver
	/etc/pcmcia/wireless.opts
		Configuration for the orinoco_cs & wvlan_cs drivers
	/etc/modules.conf
		Module configuration parameters and such

==================================================================
Questions:
	1.  Suspending/hibernating the laptop
		1.1.  Suspend to ram
		1.2.  Suspend to disk
			1.2.1.  I already have Linux installed, but I never 
			        made a suspend partition!  
	2.  Network/modem devices
		2.1.  Which wireless network interface should I get?
		2.2.  How do I get the ActionTec Winmodem to work?
		2.3.  I keep getting the "eth0: card reports no RX buffers" 
		      errour message, and losing my network connection!
	3.  Video issues
		3.1.  How do I get the Nvidia Geforce2Go video card working?
		3.2.  How do I get the ATI Rage Mobility working?
			3.2.1. How do I enable TV out?
		3.3.  How do I get the ATI Mobility Radeon working?
		3.4.  Docking the laptop and/or using an external monitor
		3.5.  My screen is small, and there's a black border around it!
		3.6.  Should I get the Nvidia Geforce2Go ot the ATI Mobility 
		      Radeon?
	4.  What's the *best* way to partition my hard drive?
		4.1.  Dual-booting Windows 95/98/Me
		4.2.  Dual-booting Windows2000/NT
		4.3.  LILO vs. GRUB
	5.  USB issues
		5.1.  Using an external USB pointer device
	6.  Power management
	7.  PCMCIA is crashing my laptop!
	8.  How do I get better hard disk performance?
	9.  What's the best distribution (or kernel version) of Linux to run?
	10. Sound issues
		10.1. Sound on the Dell Inspiron 8000
	11. General debugging hints and clues
	12. Can I control the fan?
	13. Help! I fscked it all up and can't boot into my system now!
	14. I am getting "unresolved symbols" errours when I boot up!
	15. LILO errour messages and problems
	16. How do I get the 4 Dell keys working on my Inspiron 8000?
		16.1. What about the 2 volume keys?
	17. CD-ROM / DVD / CD-RW Issues
		17.1	Installation of External CD-RWs
		17.2	Choppy DVD playback
	18. Video playback in X isn't scaled right!
	19. My laptop is crashing - but I don't know why
	20. I'm stuck in text mode, how do I boot up in graphical mode? 
	    (or vice versa)
	99. I still have more questions, now what do I do?
==================================================================
1.  Suspending the laptop
	Obviously, one of the main reasons you bought the laptop was for its 
	portability, and being able to suspend it is a key feature that often 
	seems impossible to accomplish under Linux.

	1.1. Suspend to ram
		This is actually relatively easy to get working.  You need to 
		make sure you don't have any special video hardware modules 
		loaded, namely the DRI stuff.  For the ATI Mobility Rage
		people, this means making sure all the framebuffer and DRI 
		modules are unloaded before suspending (look for r128, and 
		agpgart when you do a lsmod).  If you just want to disable DRI 
		permanently, then make sure your system isn't loading them at 
		startup, and that you don't have DRI listed as a module in 
		your XF86Config-4.  
		
		For the Nvidia Geforce2Go, the driver, by default disables
		all power management.  There is a hack whereby you can
		disable AGP acceleration in the driver, which will allow you
		to suspend without having to always unload the driver.
		To do this hack, edit nv.c and search for "suspend".  You'll
		see two "case PM_SUSPEND" blocks - one within an #if branch
		and the other within an #else branch.  The second one has
		the following line:
			return 1
		Change the 1 to 0.  Continue to scroll past the #endif
		and there's a default code block that also returns 1. 
		Change this 1 to 0 again.  Recompile the driver and you
		should APM enabled full-time.  If you do this hack, make
		sure you have the following line in your XF86Config-4 device
		section:
			Option	"NvAGP" "0"
		(Thanks to Rudolf Usselmann & James Hendrick)

		I do not yet have enough information on the ATI Mobility
		Radeon.
	
	1.2. Suspend to disk
		The problem with Dell's laptops is that they are not all 
		uniform, not even across the same model.  For example, some 
		Dell Inspiron 8000 owners get success with phdisk, while 
		others use mks2d.  It seems that laptops with the Phoenix
		BIOS are to use phdisk, and all others are to use mks2d -
		though again, this is not a uniform pattern.
		Since this FAQ should be brief, I'll try to summarize what 
		others have written about in more clear detail and provide 
		some helpful links.  

		Dell provides two utilities: phdisk.exe and mks2d.exe.  
		Basically, phdisk creates a partition of type 84 (OS/2 hidden 
		C: drive), whereas mks2d creates a partition of type a0 
		(IBM Thinkpad hiberation).  They claim that the Inspiron line 
		should use mks2d, except for the I8K which should use phdisk.  
		I've generally seen about 50% using mks2d and 50% using 
		phdisk, try them both out and go with what works. :)
		
		Another fuzzy area is where the partition should be... first 
		off, it has to be a primary partition.  A few people have had 
		success with it as hda2 or hda4, but the general consensus 
		seems to be that it works best as hda1 (the first partition).  
		However, some people have had success with the s2d partition, 
		not necessarily being the first on the partition table (i.e.: 
		hda3 or hda4), but always having it as the first partition on 
		the disk (i.e.: starting on cylinder 1).  The safest bet would 
		be, however, to make it /dev/hda1 starting at cylinder 1.

		Also, you should make sure that LILO is configured to write to 
		the boot partition, and NOT the MBR.  The way s2d works is 
		that the system actually marks your suspend partition as 
		active when you do a suspend.  This way, when your system 
		boots up next time it tries to boot from the suspend partition 
		- thus restoring your system.  The system will then set the 
		active flag back to your original boot partition.  If you 
		write LILO to the MBR instead of the boot partition, then 
		LILO will boot up every time irregardless of whether you have 
		suspended or not.
		You can add a LILO entry to boot off the suspend partition, but 
		this is somewhat of a hassle because then you have to remember 
		"did i suspend last time? or power off?"  However, some people 
		choose to do it this way...

		1.2.1.  I already have Linux installed, but I never made a
		        suspend partition!  Now what do I do?
			Fear not!  It (cross your fingers) shouldn't be too 
			hard to add a suspend partition post-installation.  
			Basically, it will require a bit of moving partitions 
			around with either fips, parted, or Partition Magic.  
			Ideally, you want to make it /dev/hda1, starting with 
			cylinder 1, as mentioned above - so you'll need to find 
			some free space (lop off some space from an already 
			existing partition maybe), and move it to the beginning 
			of the disk.  Then allocate that as /dev/hda1, and 
			set the type accordingly (or use phdisk/ mks2d).
			Then use the phdisk/mks2d utility to format the
			partition.

2.  Network/modem devices, and support
	I have an I8K, so my familiarity lies only with the devices optional 
	for the I8K.  Hopefully, someone can fill me in with more details on 
	other models.  Currently, on most Dell laptops, most people get some 
	version of a built in combination network+modem card running on the 
	mini-PCI bus.  The main two available are either the ActionTec 56K 
	Winmodem with Intel EtherExpress Pro/100 compatible network interface, 
	OR the 3Com Winmodem/3c59x network interface.  Both network interfaces 
	are fully supported (using the eepro100 and 3c59x module/drivers 
	respectively).  The ActionTec Winmodem is also supported using the 
	excellent ltmodem driver (see below).  There also seems to be a third
	PCTel combo card which uses the eepro100 nic driver, and it's modem
	*might* be supported by the ltmodem driver (check the webpage for 
	more info).  Remember, the 3Com modem IS NOT supported!

	2.1. Which wireless network interface should I get?
		This is a confusing topic... basically, Dell offers the 
		TrueMobile 1150 (which is just a rebadged Lucent Orinoco 
		Wavelan IEEE card) in two forms: PCMCIA and mini-PCI (built-in).
		Most people opt for the PCMCIA version so as to use the 
		built-in mini-PCI for the combination card.  There are 
		currently three drivers:
			wavelan2_cs, wvlan_cs, and orinoco_cs.

		The wavelan2_cs is a binary-only driver provided by Lucent.  
		There isn't much support for this unless you contact Lucent 
		directly.  I don't know much about this module, since I don't 
		know anyone who uses it.

		The wvlan_cs module is the older GPL driver supporting both the 
		mini-PCI and PCMCIA versions of the card.  This driver has 
		since been deprecated in favour of the orinoco_cs module.  
		The newer versions of the kernel (ex: > 2.4.5) no longer have 
		wvlan_cs, you will need to grab the pcmcia-cs package to get 
		the wvlan_cs driver.

		The orinico_cs module is the new driver that is part of the 
		kernel.  It supports more features (wireless tools using iwspy 
		to get statistics) and is generally more bug-free/stable than 
		wvlan_cs.  Everyone should be gradually switching over to 
		using this driver.  
		If you are using the orinoco_cs driver, go to Jean Tourrilhe's 
		orinoco_cs homepage, and get the hermes.conf file.  Also make 
		sure you have everything in wireless.opts configured properly.
		The orinoco_cs supports both the mini-PCI and PCMCIA Wavelan 
		cards now (it previously did not support the miniPCI version).

		If you get an Intersil Prism2 based card such as the D-Link or
		LinkSys card, then you should use the 'wlan-ng' driver.

	2.2. How do I get the ActionTec Winmodem working?
		Get the ltmodem package from the website, download and follow 
		the installation instructions.  Most programs by default try 
		to use /dev/modem.  The ltmodem installation script (if you're 
		using the RPM) doesn't create this by default.  Instead, it 
		uses /dev/ttyLT0.
		Make a symbolic link (ln -s /dev/ttyLT0 /dev/modem) and you 
		should be good to go.

		Felipe Rivera adds:
			I own a I8K and had a problem with the lucent modem:
			Under heavy CPU load and/or heavy connection load either 
			pppd died or the connection just stopped without the 
			pppd actually dying.  This happened using Kppp as the 
			GUI for pppd.
			Using wvdial solved the issue. It may be possible that 
			NOT using KPPP is enough to solve the issue.

	2.3. I keep losing my network connectivity and getting the following
	     errour message: "eth0: card reports no RX buffers.  eth0: card
	     reports no resources"
		This is a problem with the eepro100 driver (the one used with 
		the EtherExpress Pro 10/100 + ActionTec Winmodem combo mini-PCI 
		card).  It is a known issue with the 2.0.x and 2.2.x kernels, 
		and has been fixed in the 2.4.x kernel.  The recommended 
		solution is to upgrade to the 2.4.x kernel.  If you need to 
		use 2.0 or 2.2 kernels, then Intel provides their own "e100" 
		driver that has fixed the problem for most people.  This driver 
		can be found at: 
		http://support.intel.com/support/network/adapter/pro100/30504.htm
		(Thanks Thomas)

3.  Video issues
	Video is almost always one of the hairiest parts of getting a laptop 
	up and running.  Fortunately, Dell (up until recently) used the ATI 
	Rage Mobility M4 which is fully supported under XFree 4.0.x (if 
	you're using 3.3.x, it is also supported, but go upgrade your X 
	anyway) with the ATI r128 driver.  The new current cards being offered
	are the Nvidia Geforce2Go (often abbreviated as g2go), and the new
	top of the line card: the ATI Mobility Radeon 7500.

	3.1. Using the Geforce2Go
		First off, always make sure you're using the latest G2Go 
		drivers from Nvidia's website as they update them often.  
		Second, make sure you have the following line in your 
		/etc/modules.conf:
			options NVdriver NVreg_Mobile=1
		In your device section, you want to be using the nvidia driver,
		and specify your BusID like so:
			Section "Device"
				Identifier	"NV AGP"
				VendorName	"nvidia"
				Driver		"nvidia"
				BusID		"PCI:01:00:0"
			EndSection
		Make sure you can modprobe and load/remove the module without 
		problems from the console before you go start X.  

		For standard resolutions (1600x1200, 1280x1024, etc.) you don't
		need to specify modelines.  For 1400x1050, modelines seem to
		vary - I've included two here for reference:

		Courtesy of Don:
		Modeline "1400x1050" 110 1400 1400 1648 1776 1050 1050 1053

		Here's one from Juri Haberland:
		Modeline "1400x1050" 129 1400 1464 1656 1960 1050 1051 1054 
			  1100 +HSync +VSync
	
		If it still doesn't for you, then I would refer to one (or 
		many) of the personal websites people have put up regarding 
		this problem.  Generally, at 1400x1050 - you just need to play
		around with the modelines.  Experiment with the above two or
		any of the ones found in the ldl files section on YahooGroups.
		It seems that many people have success with different modelines 
		and configurations.  Rather than enumerating them all here, I 
		will just refer you to use one of the excellent sites out there 
		already until this issue stabilises (see bottom of FAQ).

		Some people have said you have to remove the "dri" and "GLcore"
		modules from the modules section.

	3.2. Using the ATI Rage Mobility M4
		This should *just work* using either the "ati" or "r128" driver 
		under X 4.1.x.  DRI, and DVD playback (both fullscreen and 
		windowed) also work (tested using mplayer, xine, and osm).  
		Note: you should disable DRI if you want to suspend (see above 
		section 1).

		If you want to enable AGP 4x (faster frame rates, etc.), then
		put a line in your "Device" section like so:
			Option	"AGPMode"	"4"

		3.2.1.  How do I enable TV out on my ATI Rage?
			Go download http://freshmeat.net/projects/atitvout
	
	3.3. Using the ATI Mobility Radeon 7500
		The ATI Mobility Radeon's driver is completely open source
		(unlike Nvidia's), and is currently being developed for the
		upcoming XFree86 4.2.0 release.  Mandrake currently ships with
		a CVS version of the XFree86 tree which works - alternatively
		you can download the CVS release and build it on your own.

	3.4. Using an external monitor
		The ATI Rage driver (and I believe all standard X 4.1.x drivers 
		should be supporting this interface too, if not now, then soon) 
		supports the following option:
			Option "Display" "string"
			where string is one of the following:
				"FP" - use flat panel
				"CRT" - use external monitor
				"Mirror" - use both FP & CRT
				"BIOS" - use mode as configured in the bios 
				         (i.e.: follow the Fn-F8)

		If you want to be able to have your laptop automatically detect
		the APR (Adv. Port Replicator) external monitor, then you need 
		to use "BIOS" for your setting.

	3.5. My screen is small, and there's a black border around it!
		Hit Fn-F7, or whatever your 'Font' function key is.  Basically,
		an LCD is set to run at a fixed pixel resolution, so when you 
		run at a resolution smaller than that (i.e.: if you have a 
		UXGA screen but want to run 1024x768), then it will either fix 
		1024x768 and fill in the remaining of the 1600x1200 with black, 
		or it will scale it to fill the whole screen.

	3.6. Should I get the Nvidia Geforce2Go ot the ATI Mobility Radeon?
		This is an often asked question.  Currently (as of January 19,
		2002), the Geforce2Go card is more stable as it has been in
		production release.  HOWEVER, because it is developed as closed
		source - it is a binary module which is being loaded into your
		kernel, and you can have no idea what it's doing.  While most
		people don't mind - it does seem to be a consensus that the
		Nvidia card has stability problems.  The ATI Radeon card is
		developed as open source (go ATI!), and will no doubt be more
		stable and have more features with time.

4.  Partitioning the hard disk
	Partitioning can be a huge hassle, so make sure you familiarise 
	yourself with your partitioning programming first.  I use PowerQuest's 
	Partition Magic 7.0 under WinXP (I know I know...) and have had no 
	problems with it.  Other GNU tools exist such as fips, an GNU's 
	parted.  I believe Mandrake Soft also has a new diskdrake tool.  
	If you are fortunate to be doing everything from scratch, then fdisk 
	should be sufficient.  

	fips is a popular GNU tool available under both DOS and Linux for 
	resizing partitions.  One thing to do would be to boot into Windows 
	and make sure you defrag your partition first (defragging moves all 
	the data to the beginning of the partition), and then copy fips to a 
	bootable system floppy.  Reboot to that floppy and run fips to
	resize your partitions.  You should be good to go after that (Thanks 
	Chris)

	I will summarise here some notes common to all installations, and place
	OS specific notes below.  There are varying philosophies on 
	partitioning the drive, mainly involving whether there is a need to 
	have separate /boot, /usr/local, /home, and / partitions.  I will 
	summarise the pros here:
		/boot  = You can have your system mount this partition read-
		         only if it is separate, so that if your system 
			 crashes, you won't run the risk of having lost data in 
			 this partition since it is read-only.
		/usr/local = You can save this partition across re-formats/
		         re-installations of Linux.  Generally, most customised 
			 (i.e.: not rpm) programs install to /usr/local, so 
			 this is a time-saver to keep separate.  	
		/home  = Same reason as /usr/local.  This is all your personal 
		         stuff, keeping it separate lets you save it easier 
			 across reformats.
	
	The cons of these are that you limit your space to one partition.  
	i.e.: with a fixed / partition, you don't have to worry about 
	running out of space only on /usr/local.
	My personal feeling is that having /boot separate is a very very good 
	idea (since you rarely should be writing to this partition, a small 
	15-20 meg partition is sufficient).  
	
	/usr/local and /home, I will leave up to you. :)

	The swap partition is also key...generally, people have gone with 
	2*(the amount of RAM) so if they have 256 megs of RAM, a 512 meg 
	swap partition is in order.  Though, this can be annoying if you 
	are lucky to have 512 megs of ram as keeping 1 gig allocated to swap 
	is unnecessary.  I would say that you should just estimate as to 
	what kind of swapping you need.  For instance, I do a lot of 
	compilation and VMware, as well as running MPI parallel programs on 
	my laptop - so I tend to suck up RAM a lot... so having extra swap 
	space is key.  Other people find that they don't need the extra 
	swap space, and stick it back onto their / partition or something.  

	Lastly, if you can, try to make sure you place your S2D partition 
	first (hda1).  It also must be a primary partition.  A good sample 
	partition table might look something like:
	/dev/hda1	= S2D partition, should be of size 
				(RAM+VideoRam+4 megs for slop)
	/dev/hda2	= /boot, about 15-20 megs
	/dev/hda3	= /
	/dev/hda4	= swap
	Or, if you want separate partitions:
	/dev/hda1	= S2D
	/dev/hda2	= /boot
	/dev/hda3	= swap
	/dev/hda4	= Extended:
		/dev/hda5	= /usr/local
		/dev/hda6	= /home
		/dev/hda7	= /
	

	4.1. Dual-booting Windows 95/98/Me
		This isn't too daunting.  Basically you just need to make sure 
		you have room for the vfat (fat32) file system.  A sample 
		partition table (which is how I my hard drive partitioned) 
		might look like:
			/dev/hda1	= S2D
			/dev/hda2	= Windows
			/dev/hda3	= /boot
			/dev/hda4	= Extended
				/dev/hda5	= swap
				/dev/hda6	= /

		If you screw up or need to restore the Windows boot loader, you 
		can always do a "fdisk /mbr" (using Window's fdisk, not Linux) 
		to restore the MBR to boot off the primary DOS partition.

	4.2. Dual-booting Windows2000/NT
		You can use either the NT/2000 boot loader and change the 
		boot.ini file, or you can use LILO/GRUB to boot.  Using LILO, 
		it's just the same as in section 4.1. above.  Using the Windows
		bootloader option, you need to save the Linux boot sector by 
		doing (obviously replace /dev/hda2 with whatever your /boot 
		partition is):
			dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1
		Next, copy this to your Win2K partition (floppy, or mount or 
		whatever) Next, edit your C:\BOOT.INI to contain the following 
		line at the end:
			C:\BOOTSECT.LNX="Linux"

	4.3. LILO vs. GRUB
		Many standard distributions are now moving to GRUB - it's easier
		to use, and is more fail-safe in that it lets you edit your own
		boot parameters at the GRUB point.  Booting Windows2000/NT/XP
		is even easier with GRUB (LILO often has many problems trying to
		easily boot Win2k/NT/XP).  You can do the following in your 
		menu.lst:
			title Windows XP
			rootnoverify (hd0,1)
			chainloader +1
		This tells GRUB to boot WindowsXP and use it's bootloader, and 
		boot from (hd0,1) (basically the second partition on the first 
		hard drive)

5.  USB issues
	Most people have not had USB problems with peripherals such as mice or 
	keyboards.  I have seen some people have problems with USB hubs on the 
	I8K where the uhci controller can't assign it a proper address - but 
	unplugging the hub and replugging it back in seems to be okay.  Most 
	people are able to actually get plug and play working reasonably well 
	with mice and keyboards.  I have also had success with the USB mass 
	storage controller (used for the Ricoh RDC-5300 digital camera) and the
	Rio500 driver. 

	I did however have to put in the following line in my modules.conf:
		alias usb-controller usb-uhci

	5.1. Using an external USB pointer device in X
		Most people want both the stick/touchpad working full-time, 
		and to be able to plug in an external USB mouse whenever they 
		want and have it work without having to retool XF86Config each 
		time.  I have successfully done this with the following
		sections in my XF86Config-4:
			Section "InputDevice"
				# This section controls the stick/touchpad
				Identifier	"Mouse0"
				Driver		"mouse"
				Option		"Device"	"/dev/psaux"
				Option		"Protocol"	"PS/2"
				Option		"Emulate3Buttons"	"on"
			EndSection

			Section "InputDevice"
				# This section controls an optional USB mouse
				Identifier	"USBMouse"
				Driver		"mouse"
				Option		"Device"	"/dev/pointer"
				Option		"Name"	"AutoDetected"
				Option		"Protocol"	"IMPS/2"
				Option		"Vendor"	"AutoDetected"
				Option		"ZAxisMapping"	"4 5"
			EndSection

		Next, modify the "ServerLayout" section to look something like:
			Section "ServerLayout"
				Identifier	"MyXLayout"
				Screen	"Screen0"
				InputDevice	"Mouse0"	"CorePointer"
				InputDevice	"USBMouse"	"SendCoreEvents"
				InputDevice	"Keyboard0"	"CoreKeyboard"
			EndSection
		This tells the Xserver to always look for Mouse0, and barf if 
		it's not there (which hopefully will never happen), and if the 
		USBMouse is detected on /dev/pointer, then have it send core 
		signals to the Xserver, but don't barf if it can't find it.

		Last note, make sure you make a symbolic link from 
		/dev/input/mice (this is on the 2.4.x kernel) to /dev/pointer
		
6.  Power management
	The main APM (Advanced Power Management) control is found in
	/etc/sysconfig/apmd for Red Hat and Mandrake systems.  This file 
	contains configuration parameters that will be passed to the apmd 
	daemon.  Under my Red Hat 7.1 system, this file is extremely well 
	commented, so I won't regurgitate what they already have spelled out 
	there.  Some model laptops require network and/or sound services to be 
	restarted upon resume, and the apmd configuration file has parameters 
	to force restarting these services.

	Under XFree, many users want to know how to have their screen actually 
	turn off rather than just a fake "blanking" effect.  To do this, in 
	your XF86Config find the "ServerLayout" section.  There, you can have 
	four options:
		Option "BlankTime"	"time"
		Option "StandbyTime" 	"time"
		Option "SuspendTime"	"time"
		Option "OffTime"	"time"

		BlankTime is the time before "blanking" the screen (default is 
		10 minutes.  StandbyTime is the time before actually turning off
		just the screen.  SuspendTime is the time before putting the 
		machine into a full hibernating state, and OffTime is the time 
		before actually physically turning off the machine.  To do 
		these, you also need to make sure you have the DPMS option in 
		your Monitor section.

	If you have specific devices that may need restarting upon resuming from
	a hibernation/suspend state, you should create the script apmcontinue in
	/etc/sysconfig/apm-scripts (this is for Red Hat and Mandrake systems).
	The apmscript file contains comments on how to write the apmcontinue
	script.  Some good examples can be found on the Web by searching for
	the word 'apmcontinue' with Google.

	Any ACPI (advanced configuration and power interface, the successor of
	APM) kernel option *DOES NOT WORK* and is almost always the cause of
	random crashes.  APM works completely - so use it. [It can be checked
	by invoking the battery status with - - but don't forget to
	sync before this test. With ACPI functionality Linux *WILL* crash.]
	Also, some have reported that APIC (advanced programmable interrupt
	controller; note the difference, it's not ACPI) support (found in the
	Processor-Types menu) has caused conflicts and problems with random
	crashes & power management.

	NOTE: Dr. Jochen Braun notes that, from his experience, on the
	Inspiron 2500, ACPI works while APM is what causes crashes.


7.  Help!  PCMCIA is crashing my laptop!
	Many distributions come with a PCMCIA card services package that isn't
	compatible with many of the Dell's (the Inspiron 8000 has this problem
	for one).  The three things you need to do to try and fix it are (do
	them in this order):
		1) Edit your  /etc/pcmcia/config.opts and change the "include 
		   port" line to read as follows:
		        include port 0x100-0x4ff, port 0xc00-0xcff
		   (i.e.: remove the range 0x800-0x8ff).  This should cause the
		   lock-up to go away.  (Thanks to Marc Swanson for this one)
		1) Download the source for pcmcia-cs and recompile it, making 
		   sure you answer Yes to the PnP Bios resource checking 
		   question
		3) If THIS isn't helping you fix it, and your
		   PCMCIA configuration file (under Red Hat this is in
		   /etc/sysconfig/pcmcia, under Debian it's
		   /etc/pcmcia.conf) has a line that says "PCIC=i82365",
		   then try changing it to say "PCIC=yenta_socket"

8.	How do I get better hard disk performance?

	Have you considered purchasing a faster hard drive?  Just kidding!

	Under RedHat 7.x, change the file /etc/sysconfig/harddisks.  Make sure 
	USE_DMA is set to 1, EIDE_32BIT set to 3, and LOOKEHAD set to 1.  
	Also, some people have said that making the idebus set to 66 helps.  
	(This is a boot time parameter you set in your lilo.conf.  Find the 
	section that is booting your kernel, and add the line: 
		append="idebus=66 ide0=dma ide1=dma" 
	somewhere in that section to turn this feature on)

	Also, Stuart reports using the following command to improve performance:
	(try sticking it in your rc.local, or rcS startup scripts)

	hdparm -c3 -m16 -d1 -X66 (or -X68) -K1 /dev/hda

9.  What's the best distribution of Linux to run?  
	Which kernel should I run?
	This is a totally subjective and personal matter.  Most people on the 
	ldl mailing list run some form of Red Hat or Mandrake-Linux, though 
	there are many also using Debian and SuSE as popular distributions.  
	Red Hat 7.1 and Mandrake-Linux 8.0 both install seamlessly on most 
	Dell laptops.  
	
	The two choice of kernels are either the 2.2 or 2.4 kernel.  At this 
	point, the most current kernel release is 2.4.17, which should cause
	no problems.  USB support is far better under the 2.4 kernel, so 
	if you are looking to use USB peripherals, I would definitely go 
	with that.  Also, I believe framebuffer support is better under the 
	2.4 kernel - and it has better performance.

	Now for the more objective run-down of this section... :)  A lot of 
	distributions are known to have problems with PCMCIA locking up 
	during either the installation and/or the boot process.  The two 
	known distributions that DO NOT have this lock-up problem are 
	Mandrake Linux 8.0, and Red Hat 7.1.  However, don't let this dissuade
	you from installing a distribution you are already familiar with.  You 
	can always disable PCMCIA by passing "pcmcia=no" as a boot-time 
	parameter in LILO when booting during the installation or normal boot 
	process.  This will force PCMCIA to be turned off, thus eliminating 
	the lockup.  You can then go grab the latest pcmcia-cs package from 
	the pcmcmia-cs homepage and install that, as there are no lock-up 
	problems with that.

	Another good reason to run Red Hat 7.1 is given by Red Hat's hardware 
	support page:
	http://hardware.redhat.com/hcl/genpage2.cgi?pagename=hcl&statpage=ilaptop
	The only two distributions certified to run Red Hat 7.1 are the Dell 
	Inspiron 8000 and the Dell Latitude CPx (H500GT), so if you're 
	installing Linux on business or corporate laptops, then that may be a 
	deciding factor support-wise.  Dell sells Red Hat pre-installed on 
	their laptops, and supports it to a certain extent (don't expect 
	support however if you install Linux on your own, they will ask you to 
	reformat and re-install Windows before they'll give you support) 
	(Thanks Chris)

	One more reason to run Red Hat 7.1 or Mandrake Linux 8.0 is that many 
	of us on the ldl mailing list run Red Hat or Mandrake ourselves, so 
	hopefully it'll be easier for us to help you. :)

	And a last reason is that Red Hat 7.1 and Mandrake 8.0 both install 
	gracefully right out of the box with almost everything running.  (On 
	my I8K, I had video, X at 1600x1200, network, sound, etc. all working 
	out of the box with Red Hat 7.1)

10. Sound issues
	Sound has been notoriously hard to setup on Linux in the past, 
	especially with the proprietary hardware that is often seen in 
	laptops.  Probably the easiest way to get sound working is to get 
	the OSS sound package from 4-Front Technologies which are binary 
	drivers, with a relatively painless setup.  If you don't feel like
	shelling out the money for it, then you can also search our archives 
	as one foolish user was "courteous" enough to forward his commercial 
	license to the entire mailing list.  (Here's a clue, it was from 
	memolink123@yahoo.com, and was sent on 2001 June 20, at 19:22:56)

	However, that aside, it hopefully shouldn't be too hard to setup the 
	base drivers that come included with the Linux kernel.

	Another option is to go with the ALSA sound drivers, which rumour has 
	it, have more features/better support for more sound cards.  
	(Hopefully someone can fill me in on their ALSA experience)

	10.1. Sound on the Dell Inspiron 8000
		If you're running Red Hat 7.1 or Mandrake 8.0, then sound 
		should have been auto-detected and installed out of the box 
		for you.  Otherwise, on the 2.4.x kernels (I'm not sure if the 
		2.2 kernels had this driver or not), you should use the 
		"maestro3" module.  For instance, in my modules.conf, I have 
		the following:
			alias sound-slot-0 maestro3 
			post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || : 
			pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || : 
		(Note, these were added for me by Red Hat's installer to save
		mixer settings across boots)

11. General debugging hints and clues
	Debugging can be a huge pain in the butt while trying to configure/
	setup Linux on your laptop.  One thing to remember is: the magic 
	sysrq key is your friend.  When you recompile your kernel, there is 
	an option to turn on "Magic SysRq key" - enable this in your kernel.  
	When you've then booted, you next have to do the following:
		echo "1" > /proc/sys/kernel/sysrq
	Another method is to edit your /etc/sysctl.conf and make sure you
	have:
		kernel.sysrq = 1
	This method is nicer in that it's persistent across reboots rather
	than the echo method which is only good for the current boot.
	(Thanks Ryurick)

	You can then hit Fn-SysRq (it's the PrintScrn button) in combination 
	with another key to do certain things.  The three quick important 
	ones to know are: 
		Fn-SysRq-U  = remounts all mounted filesystems read-only
		Fn-SysRq-S  = syncs all mounted file systems
		Fn-SysRq-b  = reboot

	Another helpful thing is booting into single-user mode.  To do this 
	pass the word "single" to your boot kernel as a boot-time parameter.  
	i.e.: at the LILO prompt, if your Linux partition is booted with the 
	label "linux" then type:
		linux single
	And you should boot up into single user mode.  If you use GRUB, then
	just add the keyword 'single' to your bootline.

12. Can I control the fan?
	Yes!  The 2.4 kernel now comes with an Inspiron 8000 driver (might work
	on other Dell laptops too) that lets you monitor the temperature of
	your laptop, and control the two fans.  By default, both fans are
	automatically controlled by the system, but you can play with them
	if you want.  You can download the GUI controller software at:
		http://www.diefer.de/micha_henze/i8kfangui.html
	Look for a package called 'i8kutils' (Debian users can just apt-get
	'i8kutils') (Thanks Jochen)

13. Help!  Everything is all fscked up!
	There are many things that can prevent your system from booting,
	ranging from the dreaded LILO problems (LI, LI-, etc.) to things
	like the PCMCIA cardmgr locking up the system.  This is where it
	helps to be able to boot into a rescue system of some kind.
	Many distributions provide a rescue system from their CD which
	you can access by booting off the CD and typing "linux rescue"
	(Progeny Linux does it, as does Mandrake and Red Hat).  This
	lets you boot a system off of the CD, and from there you can
	mount your harddrive (example: mount /dev/hda1 /mnt) and change
	any configuration files you may need.  If you need to have your
	hard drive be accessed as root (/) instead of (/mnt) after
	mounting, then you can do a 'chroot /mnt' which will make your
	/mnt system become a new root (i.e.: if you need to re-run LILO
	for example).  

	The Debian installer (as do a few others) provides a virtual
	console on tty2, which can be accessed by hitting ALT-F2 and
	then hitting  in the installer.  This will start a simple
	shell which will let you tweak your installation. (Thanks Fabian)

14. I am getting "unresolved symbols" errors when I boot up!
	Let me guess....you just built a new kernel, right? How did I know?

	For the purposes of our discussion lets presume you are booted up to
	kernel version "2.4.6" and call the kernel version we are building
	"2.4.7".

	PRIOR TO BUILDING YOUR NEW KERNEL 2.4.7:

	1) cd to /lib/modules, and make sure there is no 2.4.7 directory
	2) if there is, do a "mv 2.4.7 2.4.7-old"
	3) build your kernel
	4) Did you remember to do a "make modules modules_install" from the
	   /usr/src/linux directory after building the kernel?
	5) You rebooted, and are still getting "unresolved symbols" errors
	   when you boot, ay?

	edit your /etc/modules.conf file to have the first line be:
	path=/lib/modules/`uname -r`

15. LILO is giving me a message like "L, LI, LIL, LIL?, LIL-"?
	The LILO start-up code consists of two parts : The "first stage" in a 
	bootsector and the "second stage" in /boot/boot.b. During the 
	installation of LILO a "map-file" is created (usualy /boot/map), where 
	LILO finds the necessary pointers (sector-adresses) to the operating 
	systems (Linux-Kernel etc.) that should be started.
	
	Lilo prints its name one letter at a time on the screen. Each letter 
	is a signal that part of the bootstrap process has completed 
	successfully.  If lilo freezes your machine during boot-up, you can 
	discover useful information by looking at how far it got before 
	freezing.

	 - No part of LILO has been loaded. Either LILO isn't 
	installed or the partition on which its boot sector is located isn't 
	active.
	
	L - The first stage boot loader has been loaded and started, but it 
	can't load the second stage boot loader (/boot/boot.b). The two-digit 
	error codes indicate the type of problem. This condition usually 
	indicates a media failure or a geometry mismatch. 

	LI - The first stage boot loader was able to load the second stageboot 
	loader, but has failed to execute it. This can either be caused by a
	geometry mismatch or by moving /boot/boot.b without running the map 
	installer.  Perhaps you bilt a new kernel and did not run the 
	"lilo" command afterwards? 
	
	LIL - The second stage boot loader has been started, but it can't load 
	the descriptor table from the map file. This is typically caused by 
	a mediafailure or by a geometry mismatch.

	LIL? - The second stage boot loader has been loaded at an incorrect 
	address. This is typically caused by a subtle geometry mismatch or 
	by moving /boot/boot.b without running the map installer. Try 
	rerunning lilo. 
	
	LIL- - The descriptor table is corrupt. This can either be caused by a 
	geometry bad/mismatch or by moving /boot/map without running the map
	installer,or not reinstalling lilo (running the lilo command).
	
	LILO - Lilo executed with no errors.
	
	NOTE: A possible cause of disk geometry errors is installing all or 
	part of the /boot directory beyond the 1024th cylinder (only likely 
	if your drive is 8GB or larger).

16. How do I get the 4 Dell keys working on my Inspiron 8000?
	This might apply to other systems as well, but for my Inspiron 8000
	you can not get the two volume keys working as these are hardwired
	to the sound card, and the maestro3 driver does not yet support them.
	However, it is possible to get the other 4 keys mapped (for instance,
	I have the Rewind/Fast Forward keys mapped to control my volume, and the
	other two keys to launch my mail and web clients respectively).  

	In any case, the keycodes for the 4 keys are: 129, 130, 131, and 132
	respectively.  (In case anyone has the black dell 104-key keyboard 
	bundled with the APR kit, the keycodes for the top 3 keys are 146, 166,
	and 158 respectively).  To get these to work under X, you have to go 
	edit your X keyboard files found in /etc/X11/xkb.  Edit 
	/etc/X11/xkb/keycodes/xfree86 and add lines that look like:
		 = 129;
		 = 130;
		 = 131;
		 = 132;
	These define those 4 keycodes to return the I0? keycodes which stand
	for Internet keys (i.e.: those frivolous keys on top of the new-fangled
	keyboards out on the market these days).  We now need to map those to
	function keys, so edit /etc/X11/xkb/symbols/us (or whatever country
	keymap you're using), and add lines that look like:
		key  { [F13] };
		key  { [F14] };
		key  { [F15] };
		key  { [F16] };
	These map those keys to function keys, so now you can go into any 
	Xfree86 window manager which supports hotkeys and map those function 
	keys to launch applications or whatnot.  (Sawfish supports this, as do 
	many other window managers).

	For an example, download 
	http://www.whacked.net/ldl/volume-control-keys.tar.gz
	This is my scripts and rewritten keyboard files to enable support for
	the 4 Dell keys.

	16.1. What about the 2 volume keys?
		The new kernel support for the Inspiron 8000 (also works on
		other laptops) in combination with the 'i8kutils' package
		can enable support for the two volume keys.

		Download the 'i8kutils' RPM at:
		http://enigma.freshrpms.net/rpm.html?id=583

17. CD-ROM / DVD / CD-RW Issues

17.1	Installation of External CD-RWs

	Remember in order to make sure that an external CD-RW is operating
	properly, it is necessary to make sure that you have a SCSI device.

	To accomplish this you must (a) have SCSI support compiled into your
	kernel, and (b) add the parameters "hdx=ide-scsi" to your /etc/lilo.conf
	file. Where "hdx" is representitive of the IDE device name that Linux 
	has assigned to the CD-RW you are attempting to configure.

	Remember, to run the "lilo" command after making this modification to
	your /etc/lilo.conf file.

17.2	Choppy or slow DVD playback
	This can be caused by any number of things.  Check that:
	1) DMA is enabled on the DVD drive (using hdparm)
	2) There are no programs polling the APM device (power/battery applets)
	3) Make sure you're using Xv (the Xvideo extension), not Xshm 
		(the slower, shared memory version)
	4) Try making sure DRI support is enabled.

18. Video playback in X isn't scaled right!
	If you are only seeing half a video image, or the top left corner of an
	image, you may be a victim of an Xv (Xvideo) bug with the ATI driver.
	Xv is an extension that allows hardware access for video playback.  If
	you're seeing a cut-off video image in xine, mplayer, ogle, etc. and
	you have an ATI card - then this is your problem.  What you should do
	is go to the GATOS project (http://gatos.sourceforge.net) and 
	download the ati.2 driver.  By now, you should all be running X 4.1.0 
	at least, so download the ati.2 driver and follow the instructions to 
	install it.  Then restart X and try xine or mplayer (make sure you're 
	telling them to use Xv instead XShm which is much slower).

19. My laptop is crashing - but I don't know why
	Does it happen when you insert a PCMCIA card?  If so, then read 
	section 7.

	Is it occuring randomly, in both console & X?  If so, then suspect
	APIC or ACPI.  In any case, disable both of them in your kernel.  If
	you can't boot long enough to recompile a kernel, then add the
	tag "disableapic" at the boot prompt, or put it in your append line
	for LILO, or at the end of your kernel line in GRUB.

	Does it occur in X?  Do you see a slow fade to white screen?  If so,
	then suspect your video drivers.  ATI Rage Mobility cards should now
	be stable and shouldn't be having any problems.  Nvidia cards are
	still suspect since the drivers are still being developed.

20. I'm stuck in text mode, how do I boot up in graphical mode? 
	(or vice versa)

	edit /etc/inittab
	if you're in text mode, you will see a line that says:
		id:3:initdefault
	if you're in graphical mode, you will see a line that says:
		id:5:initdefault

	this is your run level that your system will boot up into. 3 is
	text mode, 5 is graphical mode - so just change them accordingly.

99. I still have more questions, now what do I do?
	Alright, if you've read this entire FAQ, then your next thing should 
	be to look at some of the sites on the web that detail installing 
	Linux on a specific Dell laptop model.  I've included some of those 
	links below.
	If you STILL have more questions, then you should search through our 
	archives on the homepage and make sure the question hasn't been asked 
	already.
	If you STILL can't find an answer, then go ahead and email the mailing 
	list... we're generally friendly, and try not to bite.  :)  And we 
	only make fun of those people who are foolish enough to openly pirate 
	a commercial sound system license. :)

==================================================================
Index of URLs and websites:

Stuart Tener's FAQ on setting up initrd:	
	http://www.whacked.net/ldl/initrd.doc
orinoco_cs homepage:	
	http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Orinoco.html
wlan-ng homepage:	http://www.linux-wlan.com/linux-wlan/
pcmcia-cs homepage:	http://pcmcia-cs.sourceforge.net
ltmodem download:	http://www.heby.de/computer/ltmodem
LinModem help page:	http://walbran.org/sean/linux/stodolsk/
Intel e100 driver page: 
	http://support.intel.com/support/network/adapter/pro100/30504.htm
Nvidia driver download:	http://www.nvidia.com/view.asp?PAGE=linux
Linux kernel download page: http://www.kernel.org
ALSA homepage: http://www.alsasound.org
Inspiron 8000 GUI fan control:	http://www.diefer.de/micha_henze/i8kfangui.html
i8kutils RPM: http://enigma.freshrpms.net/rpm.html?id=583
==================================================================
Dell specific installation guides:

Graeme Wilford's guide for getting RH9 up on the Inspiron 8500
	http://www.ee.surrey.ac.uk/Personal/G.Wilford/Inspiron8500/
Doug Campbell's guide for getting the ATI Radeon 9000 drivers to work
	http://www.ampersand.com/inspiron.html
Configuring a Dell Inspiron 8200 for Red Hat 8.0 (I8200 w/ GeForce4 440 Go +
DVD/CDRW) courtesy of Bruce Barnett
	http://www.grymoire.com/Dell
Installing Linux on the Dell Inspiron (pretty old, from 1999ish):
	http://www.ps.uci.edu/~tomba/inspiron
Thomas Hadig's page on installing SuSE 7.1 on a Dell Inspiron 8000 (good 
info, especially if you want to install SuSE which is rare )
	http://www.slac.stanford.edu/~hadig/projects/dell/dell.html
Eric Sundby's instructions for getting the Nvidia Geforce2Go card working on 
his Dell Inspiron 8100 (running 1600x1200):
	http://www.whacked.net/ldl/g2go-eric
Brian Gold's instructions for getting the Nvidia Geforce2Go card working on
his Dell Inspiron 8100 (running 1400x1050):
	http://www.whacked.net/ldl/g2go-brian
Geoff's instructions for getting the Nvidia Geforce2Go card working on his
Dell Inspiron 8100 (running < 1600x1200)
	http://www.whacked.net/ldl/g2go-geoff
Robert Burton's instructions for getting the Nvidia Geforce2Go card working:
	http://www.whacked.net/ldl/g2go-robert
Andrew McGlashan's instructions for getting linux setup on his Inspiron 7500:
	http://www.whacked.net/ldl/i7500-andrew
Rodney Gordon's excellent installation guide and walk through for setting
up his Dell Inspiron 8200:
	http://www.pobox.com/~meff/i8200
Stephen Lau (me!)'s configuration files for PCMCIA (with the memory fix 
mentioned above) and TrueMobile 1150/Orinoco Wavelan IEEE card:
	http://www.whacked.net/ldl/pcmcia-wireless.tar
Stephen Lau's XF86Config file for the ATI Rage Mobility:
	http://www.whacked.net/ldl/XF86Config-4-steve
==================================================================
General URLs of interest:

http://www.linux-laptop.net/dell.html
http://www.mobilix.org/howtos.html
http://www.linuxdoc.org