linux-dell-laptops FAQ version 20020129-1 ============================================================================== Maintained by: Stephen Lau (ldl at grommit dot com) Last updated: 2002 January 29 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 (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. ============================================================================== 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 18. Video playback in X isn't scaled right! 19. My laptop is crashing - but I don't know why 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. 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. 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. 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://www.linuxvideo.org/gatos) 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. 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: 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 Inpiron 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 Andrew McGlashan's instructions for getting linux setup on his Inspiron 7500: http://www.whacked.net/ldl/i7500-andrew 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