Linux on the Toshiba Satellite 4015CDS HOWTO

Copyright © 2002 by Claude Rubinson

Contributors

Revision History

Contents

  1. Introduction
    1. Additional Sources of Information
    2. New Versions of this Document
    3. Feedback and Corrections
  2. Features and Specifications
  3. Installing GNU/Linux
    1. Before You Begin
    2. Installation and Configuration
      1. PCMCIA
      2. Modem
      3. Sound
      4. IrDA
      5. USB
      6. MTRR
      7. XFree86
    3. Resources
  4. Conclusion
  5. Appendix A: Various Configuration Files and Output for Debian Potato
  6. Appendix B: Various Configuration Files and Output for Red Hat 5.2

Introduction

This document describes how to install and configure GNU/Linux on a Toshiba Satellite 4015CDS notebook computer.

This HOWTO was originally put online in January 1999 by Derek Glidden. In March 2002, Claude Rubinson took over maintenance of the document with Derek's blessing:

I hereby officiously grant you permission to swipe all the stuff on my Toshiba 4015CDS page and modify/append/extend/print on reams of toilet paper and use it for, well, what you'd use toiler paper for.

I have since rewritten pretty much everything. Much of Derek's original HOWTO found it's way into this version; anything quoted verbatim is cited.

Overall, most everything works just fine. Apart from some of the usual configuration hiccups, there really isn't very much to say.

Additional Sources of Information

For general information on installing GNU/Linux onto notebook computers, please review the Laptop HOWTO at the Linux Documentation Project. For a laptop with limited RAM and/or limited hard disk space, review the 4mb Laptop HOWTO also at the LDP. Finally, for laptop-specific HOWTOs, visit Linux on Laptops.

This page at Toshiba has all the nitty-gritty details about the 4015CDS. (The page has moved a couple of times since this HOWTO was first put online; you might have to search their website to find it.)

You may also wish to review the HOWTOs for other laptops in the same family as the 4015CDS. As far as I can tell, the 4015CDS is identical to the 4010CDS. Apparently, the 4010 was sold via mail-order/OEM while the 4015 was sold "off-the-shelf." And the 4010/4015CDT is the same machine with an active-matrix/TFT display instead of dual-scan. (Derek has used a 4010CDS and reports that he can't find any differences between it and the 4015CDS. If anyone has used a 401xCDT model, please let me know if it is significantly different from what is outlined below.)

New Versions of this Document

The latest version of this document will always be available at http://www.grundrisse.org/.

Feedback and Corrections

If you have questions or comments about this document, please feel free to email me at cmsclaud@arches.uga.edu. I welcome any suggestions or criticisms. If you find a mistake with this document, please let me know so I can correct it. Thanks.

Features and Specifications

Installing GNU/Linux

All of the machine's hardware, except for the infrared port, is well supported under Linux, so you shouldn't have any problems. Installations of both Red Hat 5.2, Red Hat 7.1, and Debian Potato proceeded very smoothly. There are a few "gotchas" here and there but nothing too serious.

Before You Begin

The machine comes preinstalled with Windows 98 and a slew of additional software. If you're planning on setting up a dual-boot system, I recommend uninstalling any programs that you don't use since the 4.1GB hard drive is relatively small by today's standards.

By default, the machine attempts to boot from the floppy disk and then the hard disk. If your distribution installs from the CD-ROM, you'll need to reconfigure the device boot order. There are two ways to do this. First, you can access the BIOS by holding down the 'Esc' key during boot up. Second, you can use the "Toshiba Hardware Configuration" application which is included in the Windows Control Panel.

The CD-ROM drive appears to be rather sensitive to the quality of the CD media. Both Derek and I have had problems booting off of and reading inexpensive CD-Rs. If you are planning on installing via CD-R, I'd recommend using brand name disks and being prepared to fall back onto floppies.

Installation and Configuration

Successful installations of Red Hat 5.2, Red Hat 7.1, and Debian Potato have been reported. Autodetection catches most everything correctly. Some components, such as sound, need to specified manually but don't pose any problem.

PCMCIA

The PCMCIA chipset is a Toshiba ToPIC97 which has performed almost (see below) flawlessly despite being listed as experimentally-supported. From the PCMCIA HOWTO:

Support for Toshiba's ToPIC bridges was hindered for a long time by a lack of sufficiently detailed technical documentation. While some datasheets have been available, a few idiosyncrasies of the ToPIC chips were not adequately explained. Toshiba has now started giving direct technical help on some of these issues and I expect that the major ones will soon be resolved.

A number of users (including myself) have experienced what appears to be a bug regarding Debian Potato's PCMCIA support. The loading of the card services modules during boot will occasionally lock up the keyboard. I have never determined the precise cause of the keyboard lockup; however, the problem is easily resolved by delaying the loading of Card Services until later in the initialization process. In my case, I simply renamed the /etc/rc[2-5]/S11pcmcia symlinks to S22pcmcia.

Modem

The 4015 series ships with a 3Com-Noteworthy 56K V.90 PCMCIA modem. If you're purchasing a used system, I'd recommend trying to get the modem included in the deal. It's a good, solid modem; I've had no trouble with it.

The modem should be automatically detected during installation. Note for Debian users installing via the modem: for whatever reason, the modem switched serial ports from ttyS1 to ttyS2 sometime between the base system installation and the package selection. It wasn't a problem; reconfiguring pppconfig found the correct port.

Sound

The audio chipset is a Yamaha OPL-SA3 which is supported by the kernel's opl3sa2 driver; the IRQ, DMA, and I/O settings are available via the BIOS which is accessible by holding down the 'Esc' key during boot. Recording these settings prior to installation will ease configuration.

It is important to note that different models of the 4015CDS have different resource settings for the audio chipset. Most documentation of the OPL-SAx series of chipsets provide the following settings:

irq=5 dma=1 dma2=0 io=0x370 mss_io=0x530 mpu_io=0x330

Indeed, these are the settings that Derek used during his Red Hat 5.2 installation. However, my machine reported different I/O settings:

irq=5 dma=1 dma2=0 io=0x530 io=0x220 mss_io=0x530 mpu_io=0x330

If your distribution includes it, you can use sndconfig to install and configure the proper module. For systems such as Debian which don't include a configuration utility, you can either use modconf or configure your modules manually. And, of course, you can always compile the driver directly into the kernel.

Under Red Hat 5.2, loading the opl3sa2 module also loads opl3. Under Debian Potato, sound, mpu401, and ad1848 are loaded. I'm not what the difference is; by default, both distributions use the 2.2 kernel series. If you compile the opl3sa2 driver into the kernel, you'll want to include the necessary supporting drivers.

IrDA

Infrared support appears spotty for Toshiba notebooks. Some are supported by the kernel's toshoboe driver; however, the 4015CDS does not appear to be supported. Derek writes:

I never did get IR working. At the last time I tried, the Toshiba IR chips were officially unsupported by the Linux-IR guys. In fact, they are so unsupported, that if I even tried to load the appropriate drivers, it locked the machine up hard. I did that two or three times, including with development experimental drivers, locked up real hard, then gave up.

For further information, consult the Toshiba Linux IrDA HOWTO and the Linux Infrared HOWTO. If anyone has successfully configured IrDA for this system, I would appreciate it if you could provide a report for inclusion in this document.

USB

The single USB port is fully supported by the kernel's UHCI driver. Assuming that your USB device is supported, you shouldn't have any problems.

MTRR

Kernel versions 2.2 and higher include support for MTRR (Memory Type Range Register) control; you definitely want it enabled as it dramatically speeds up access to the video RAM. An mtrr file in the /proc directory confirms that MTRR support is enabled. For further information on MTRR, see http://www.linuxhq.com/kernel/v2.2/doc/mtrr.txt.html for the 2.2 kernel series, http://www.linuxhq.com/kernel/v2.4/doc/mtrr.txt.html for the 2.44 kernel series, or mtrr.txt in your kernel's Documentation directory.

XFree86

The 4015CDS's LCD supports 16.7 million colors and a maximum viewable resolution of 800x600. It's important to note that the display is physically incapable of delivering viewable resolutions other than 800x600 or 640x480. The 2MB of RAM on the video chipset does permit the use of virtual desktops. At 16-bit color, a maximum virtual resolution of 1152x864 is permitted. Dropping to the color depth to 8-bit permits virtual resolutions up to 1600x1200.

The easiest way to configure X is by using XFree86 4 which is included with most modern distributions. However, I don't use XFree86 4 so see the Linux XFree86 HOWTO for details.

Configuration of XFree86 3.3.x

Configuring XFree86 version 3 is slightly more complicated than configuring version 4. The relevant specifications are listed below.

Note that the default root window background (the familiar gray mesh) causes the LCD to appear to shimmy. This is a simple optical illusion and nothing to be concerned about. However, it is quite distracting and you'll probably want to change the background color or add a background image. I simply added the line "xsetroot -gray" to my .xinitrc file.

For most people, the maximum viewable resolution of 800x600 is probably the major limitation of the 4015CDS. Unfortunately, many of today's programs assume a resolution of 800x600 or larger. My solution is to use a window manager such as FVWM which provides multiple pages per desktop; if a program's default size is too large for a single page, it will simply spill over to an additional page which is easily accessible via the pager.

Resources

Jonathan Buzzard maintains a collection of Toshiba Linux Utilities that control specific components of Toshiba laptops such as the power saving options and the fan. While these utilities do have a good reputation, I have not used them myself and have no idea if they will function on the 4015CDS. If anyone has tried them out on this machine, I'd appreciate it if you could provide a report that I can incorporate into this document.

Finally, various configuration files and output that may prove useful have been collected in the appendices below. While they should work without problem, they are, of course, provided without any guarantee that they won't blow up your computer or cause a nuclear holocaust.

Conclusion

Derek concluded the original version of this document with a strong positive recommendation with which I concur:

If you're looking at one of these to run Linux on, I say go for it! It's a fast processor, a big hard drive and the box is cheap compared to other laptops out there.

Except for the infrared port, all of the components are well supported by Linux. The biggest downside is the dual-scan LCD which is limited to a maximum visible resolution of 800x600. Although I personally have no complaints, some people may prefer a larger display; if you're considering purchasing this machine, I'd recommend that you try to demo it first in order to verify that you're happy with the LCD's size. Besides that, you shouldn't have any problems.


Appendix A: Various Configuration Files and Output for Debian Potato
(provided by Claude Rubinson)

output of lsmod

Module                  Size  Used by
ppp_deflate            38988   0  (autoclean)
bsd_comp                3828   0  (autoclean)
ppp                    20684   2  (autoclean) [ppp_deflate bsd_comp]
slhc                    4436   1  (autoclean) [ppp]
serial_cs               5388   0  (unused)
ds                      6536   2  [serial_cs]
i82365                 28516   2 
pcmcia_core            44416   0  [serial_cs ds i82365]
lockd                  31112   1  (autoclean)
sunrpc                 52420   1  (autoclean) [lockd]
serial                 19564   1  (autoclean) [serial_cs]
opl3sa2                 3856   0  (unused)
ad1848                 15888   0  [opl3sa2]
mpu401                 18704   0  [opl3sa2]
sound                  57592   0  [opl3sa2 ad1848 mpu401]
soundlow                 416   0  [sound]
soundcore               2628   7  [sound]
unix                   10212  19  (autoclean)

/etc/X11/XF86Config

Both xf86config and XF86Setup will generate a working XF86Config. I generally use XF86Setup simply because the resulting output is cleaner than that provided by xf86config.

# XF86Config auto-generated by XF86Setup
#
# Copyright (c) 1996 by The XFree86 Project, Inc.

#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Except as contained in this notice, the name of the XFree86 Project shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#

# See 'man XF86Config' for info on the format of this file

Section "Files"
   RgbPath    "/usr/X11R6/lib/X11/rgb"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc/:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
   FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
   FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
   FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection

Section "ServerFlags"
EndSection

Section "Keyboard"
   Protocol        "Standard"
   AutoRepeat      500 30
   LeftAlt         Meta
   RightAlt        Meta
   ScrollLock      Compose
   RightCtl        Control
   XkbKeycodes     "xfree86"
   XkbTypes        "default"
   XkbCompat       "default"
   XkbSymbols      "us(pc101)"
   XkbGeometry     "pc"
   XkbKeymap       "xfree86(us)"
   XkbRules        "xfree86"
   XkbModel        "pc101"
   XkbLayout       "us"
EndSection

Section "Pointer"
   Protocol        "Microsoft"
   Device          "/dev/mouse"
   BaudRate        1200
   Emulate3Timeout 50
   Emulate3Buttons
EndSection

Section "Monitor"
   Identifier      "My Monitor"
   VendorName      "Unknown"
   ModelName       "Unknown"
   HorizSync       31.5-35.15
   VertRefresh     55-60
   Modeline  "800x600"    36.00 800 824 896 1024 600 601 603 625
   Modeline  "640x480"    25.18 640 664 760 800 480 491 493 525
EndSection

Section "Device"
   Identifier      "Chips & Technologies CT65555"
   VendorName      "Unknown"
   BoardName       "Unknown"
   Chipset         "ct65555"
   VideoRam        2048
# Option "noaccel"
# Option "no_bitblt"
# Option "xaa_no_color_exp"
# Option "xaa_benchmark"
# Option "hw_cursor"
# Option "sync_on_green"
# Option "fast_dram"
# Option "use_vclk1"
# Textclockfreq 25.175
# Option "nolinear"
# MemBase 0x03b00000
# Device section for C&T cards.
# Option "suspend_hack"
# Option "STN"
# Option "no_stretch"
# Option "no_center"
# Option "use_modeline"
# Option "fix_panel_size"
# videoram 512


EndSection

Section "Device"
   Identifier      "Generic VGA"
   VendorName      "Unknown"
   BoardName       "Unknown"
   Chipset         "generic"
EndSection

Section "Screen"
   Driver          "Accel"
   Device          "Chips & Technologies CT65555"
   Monitor         "My Monitor"
   DefaultColorDepth 8
   BlankTime       0
   SuspendTime     0
   OffTime         0
   SubSection "Display"
      Depth        8
      Modes        "800x600" "640x480"
      ViewPort     0 0
   EndSubSection
   SubSection "Display"
      Depth        15
      Modes        "800x600" "640x480"
   EndSubSection
   SubSection "Display"
      Depth        16
      Modes        "800x600" "640x480"
      ViewPort     0 0
   EndSubSection
   SubSection "Display"
      Depth        24
      Modes        "800x600" "640x480"
      ViewPort     0 0
   EndSubSection
   SubSection "Display"
      Depth        32
      Modes        "800x600" "640x480"
      ViewPort     0 0
   EndSubSection
EndSection

Section "Screen"
   Driver          "SVGA"
   Device          "Chips & Technologies CT65555"
   Monitor         "My Monitor"
   DefaultColorDepth 16
   BlankTime       0
   SuspendTime     0
   OffTime         0
   SubSection "Display"
      Depth        8
      Modes        "800x600" "640x480"
      ViewPort     0 0
      #Virtual      1600 1200 #1280 1024 1152 864 1024 768
   EndSubSection
   SubSection "Display"
      Depth        15
      Modes        "800x600" "640x480"
   EndSubSection
   SubSection "Display"
      Depth        16
      Modes        "800x600" "640x480"
      ViewPort     0 0
      #Virtual     1152 864 #1024 768
   EndSubSection
   SubSection "Display"
      Depth        24
      Modes        "800x600" "640x480"
      ViewPort     0 0
   EndSubSection
   SubSection "Display"
      Depth        32
      Modes        "800x600" "640x480"
      ViewPort     0 0
   EndSubSection
EndSection

Section "Screen"
   Driver          "VGA16"
   Device          "Generic VGA"
   Monitor         "My Monitor"
   BlankTime       0
   SuspendTime     0
   OffTime         0
   SubSection "Display"
      Depth        4
      Modes        "800x600" "640x480"
   EndSubSection
   SubSection "Display"
      Depth        16
      Modes        "800x600" "640x480"
      Virtual       800 600
      ViewPort     0 0
   EndSubSection
EndSection

Section "Screen"
   Driver          "VGA2"
   Device          "Generic VGA"
   Monitor         "My Monitor"
   BlankTime       0
   SuspendTime     0
   OffTime         0
   SubSection "Display"
      Depth        1
      Modes        "800x600" "640x480"
   EndSubSection
   SubSection "Display"
      Depth        16
      Modes        "800x600" "640x480"
      Virtual       800 600
      ViewPort     0 0
   EndSubSection
EndSection

Appendix B: Various Configuration Files and Output for Red Hat 5.2
(provided by Derek Glidden)

/etc/conf.modules

alias sound opl3sa2
alias midi opl3
options opl3 io=0x388
# options opl3sa2 io=0x370 mss_io=0x530 irq=5 dma=1,0 mpu_io=0x330
options opl3sa2 io=0x370 mss_io=0x530 irq=5 dma=1 dma2=0 mpu_io=0x330
keep
path[pcmcia]=/lib/modules/2.2.2
path[pcmcia]=/lib/modules/default
path[pcmcia]=/lib/modules/preferred

/etc/X11/XF86Config

Notes for those who will want to try to use it: I am using a Font Server, so you may need to comment out the last line of the FontPath defs; I don't run in 8-bit-per-pixel mode, so there is no definition for one - you will have to start X as 'startx -- -bpp 16' or the startup will complain and fail. . .I finally got sick of ye olde Pan-n-Scan with a virtual desktop size and hunkered down and figgered out how to make X do 1024x768 on an external monitor and still know how to do 800x600 on the LCD panel. It's working so far for me, but for all I know, it'll blow up your monitor. Use it wisely, my son. [dg]

# File generated by xf86config.
#
# Copyright (c) 1995 by The XFree86 Project, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# 
# Except as contained in this notice, the name of the XFree86 Project shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#

# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of 
# this file.
# **********************************************************************

# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************

Section "Files"

# The location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.

RgbPath	"/usr/X11R6/lib/X11/rgb"

# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
# 
# If you don't have a floating point coprocessor and emacs, Mosaic or other
# programs take long to start up, try moving the Type1 and Speedo directory
# to the end of this list (or comment them out).
# 

#    FontPath   "/usr/X11R6/lib/X11/fonts/local/"
FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath   "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath   "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath   "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath   "tcp/localhost:7100"

# For OSs that support Dynamically loaded modules, ModulePath can be
# used to set a search path for the modules.  This is currently supported
# for Linux ELF, FreeBSD 2.x and NetBSD 1.x.  The default path is shown
# here.

#    ModulePath "/usr/X11R6/lib/modules"

EndSection

# **********************************************************************
# Module section -- this is an optional section which is used to specify
# which dynamically loadable modules to load.  Dynamically loadable
# modules are currently supported only for Linux ELF, FreeBSD 2.x
# and NetBSD 1.x.  Currently, dynamically loadable modules are used
# only for some extended input (XInput) device drivers.
# **********************************************************************
#
# Section "Module"
#
# This loads the module for the Joystick driver
#
# Load "xf86Jstk.so"
# 
# EndSection

# **********************************************************************
# Server flags section.
# **********************************************************************

Section "ServerFlags"

# Uncomment this to cause a core dump at the spot where a signal is 
# received.  This may leave the console in an unusable state, but may
# provide a better stack trace in the core dump to aid in debugging

#    NoTrapSignals

# Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
# This allows clients to receive this key event.

#    DontZap

# Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
# sequences.  This allows clients to receive these key events.

#    DontZoom

# Uncomment this to disable tuning with the xvidtune client. With
# it the client can still run and fetch card and monitor attributes,
# but it will not be allowed to change them. If it tries it will
# receive a protocol error.

#       DisableVidModeExtension

# Uncomment this to enable the use of a non-local xvidtune client. 

#       AllowNonLocalXvidtune

# Uncomment this to disable dynamically modifying the input device
# (mouse and keyboard) settings. 

#       DisableModInDev

# Uncomment this to enable the use of a non-local client to
# change the keyboard or mouse settings (currently only xset).

#       AllowNonLocalModInDev

EndSection

# **********************************************************************
# Input devices
# **********************************************************************

# **********************************************************************
# Keyboard section
# **********************************************************************

Section "Keyboard"

Protocol	"Standard"

# when using XQUEUE, comment out the above line, and uncomment the
# following line

#    Protocol	"Xqueue"

AutoRepeat	500 5
# Let the server do the NumLock processing.  This should only be required
# when using pre-R6 clients
#    ServerNumLock

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))
#    Xleds      1 2 3

# To set the LeftAlt to Meta, RightAlt key to ModeShift, 
# RightCtl key to Compose, and ScrollLock key to ModeLock:

#    LeftAlt     Meta
#    RightAlt    ModeShift
#    RightCtl    Compose
#    ScrollLock  ModeLock

# To disable the XKEYBOARD extension, uncomment XkbDisable.

#    XkbDisable

# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a non-U.S.
# keyboard, you will probably want to use:
#    XkbModel    "pc102"
# If you have a US Microsoft Natural keyboard, you can use:
#    XkbModel    "microsoft"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#    XkbLayout   "de"
# or:
#    XkbLayout   "de"
#    XkbVariant  "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
#    XkbOptions  "ctrl:swapcaps"

# These are the default XKB settings for XFree86
#    XkbRules    "xfree86"
#    XkbModel    "pc101"
#    XkbLayout   "us"
#    XkbVariant  ""
#    XkbOptions  ""

XkbKeymap   "xfree86(us)"


EndSection


# **********************************************************************
# Pointer section
# **********************************************************************

Section "Pointer"
Protocol    "PS/2"
Device      "/dev/mouse"

# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.

#    Protocol	"Xqueue"

# Baudrate and SampleRate are only for some Logitech mice
# or for the AceCad tablets which require 9600 baud

#    BaudRate	9600
#    SampleRate	150

# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)

Emulate3Buttons
Emulate3Timeout    50

# ChordMiddle is an option for some 3-button Logitech mice

#    ChordMiddle

EndSection


# **********************************************************************
# Xinput section -- this is optional and is required only if you
# are using extended input devices.  This is for example only.  Refer
# to the XF86Config man page for a description of the options.
# **********************************************************************
#
# Section "Xinput" 
#    SubSection "WacomStylus"
#        Port "/dev/ttyS1"
#        DeviceName "Wacom"
#    EndSubSection
#    SubSection "WacomCursor"
#        Port "/dev/ttyS1"
#    EndSubSection
#    SubSection "WacomEraser"
#        Port "/dev/ttyS1"
#    EndSubSection
#
#    SubSection "Elographics"
#        Port "/dev/ttyS1"
#        DeviceName "Elo"
#        MinimumXPosition 300
#        MaximumXPosition 3500
#        MinimumYPosition 300
#        MaximumYPosition 3500
#        Screen 0
#        UntouchDelay 10
#        ReportDelay 10
#    EndSubSection
#
#    SubSection "Joystick"
#        Port "/dev/joy0"
#        DeviceName "Joystick"
#        TimeOut 10
#        MinimumXPosition 100
#        MaximumXPosition 1300
#        MinimumYPosition 100
#        MaximumYPosition 1100
#        # CenterX 700
#        # CenterY 600
#        Delta 20
#    EndSubSection
#
# The Mouse Subsection contains the same type of entries as the
# standard Pointer Section (see above), with the addition of the
# DeviceName entry.
#
#    SubSection "Mouse" 
#        Port "/dev/mouse2"
#        DeviceName "Second Mouse"
#        Protocol "Logitech"
#    EndSubSection
# EndSection

# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"

Identifier  "Toshiba Satellite"
VendorName  "Toshiba"
ModelName   "LCD"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

#    HorizSync   31.5 - 37.9
 HorizSync  30-50

#    HorizSync	30-64         # multisync
#    HorizSync	31.5, 35.2    # multiple fixed sync frequencies
#    HorizSync	15-25, 30-50  # multiple ranges of sync frequencies

# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.

VertRefresh 50-90

# Modes can be specified in two formats.  A compact one-line format, or
# a multi-line format.

# These two are equivalent

#    ModeLine "1024x768i" 45 1024 1048 1208 1264 768 776 784 817 Interlace

#    Mode "1024x768i"
#        DotClock	45
#        HTimings	1024 1048 1208 1264
#        VTimings	768 776 784 817
#        Flags		"Interlace"
#    EndMode

# This is a set of standard mode timings. Modes that are out of monitor spec
# are automatically deleted by the server (provided the HorizSync and
# VertRefresh lines are correct), so there's no immediate need to
# delete mode timings (unless particular mode timings don't work on your
# monitor). With these modes, the best standard mode that your monitor
# and video card can support for a given resolution is automatically
# used.

# 640x480 @ 60 Hz, 31.5 kHz hsync
# Modeline "640x480"     25.175 640  664  760  800   480  491  493  525
# 640x480 @ 72 Hz, 36.5 kHz hsync
Modeline "640x480"     31.5   640  680  720  864   480  488  491  521

# 800x600 @ 56 Hz, 35.15 kHz hsync
# ModeLine "800x600"     35     800  824  896 1024   600  601  603  625
# 800x600 @ 60 Hz, 37.8 kHz hsync
Modeline "800x600"     40     800  840  968 1056   600  601  605  628 +hsync +vsync
# 800x600 @ 72 Hz, 48.0 kHz hsync
# Modeline "800x600"     50     800  856  976 1040   600  637  643  666 +hsync +vsync

# 1024x768 @ 60 Hz
Modeline "1024x768"     65.00   1024 1060 1204 1328    768  771  777  802 -hsync -vsync

# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync
# Modeline "1024x768"    44.9  1024 1048 1208 1264   768  776  784  817 Interlace
# 1024x768 @ 60 Hz, 48.4 kHz hsync
# Modeline "1024x768"    65    1024 1032 1176 1344   768  771  777  806 -hsync -vsync
# 1024x768 @ 70 Hz, 56.5 kHz hsync
# Modeline "1024x768"    75    1024 1048 1184 1328   768  771  777  806 -hsync -vsync

# 512x384 @ 78 Hz, 31.50 kHz hsync
Modeline "512x384"    20.160 512  528  592  640   384  385  388  404 -HSync -VSync
# 512x384 @ 85 Hz, 34.38 kHz hsync
Modeline "512x384"    22     512  528  592  640   384  385  388  404 -HSync -VSync

# Low-res Doublescan modes
# If your chipset does not support doublescan, you get a 'squashed'
# resolution like 320x400.

# 320x200 @ 70 Hz, 31.5 kHz hsync, 8:5 aspect ratio
Modeline "320x200"     12.588 320  336  384  400   200  204  205  225 Doublescan
# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio
Modeline "320x240"     12.588 320  336  384  400   240  245  246  262 Doublescan
# 320x240 @ 72 Hz, 36.5 kHz hsync
Modeline "320x240"     15.750 320  336  384  400   240  244  246  262 Doublescan
# 400x300 @ 56 Hz, 35.2 kHz hsync, 4:3 aspect ratio
ModeLine "400x300"     18     400  416  448  512   300  301  302  312 Doublescan
# 400x300 @ 60 Hz, 37.8 kHz hsync
Modeline "400x300"     20     400  416  480  528   300  301  303  314 Doublescan
# 400x300 @ 72 Hz, 48.0 kHz hsync
Modeline "400x300"     25     400  424  488  520   300  319  322  333 Doublescan
# 480x300 @ 56 Hz, 35.2 kHz hsync, 8:5 aspect ratio
ModeLine "480x300"     21.656 480  496  536  616   300  301  302  312 Doublescan
# 480x300 @ 60 Hz, 37.8 kHz hsync
Modeline "480x300"     23.890 480  496  576  632   300  301  303  314 Doublescan
# 480x300 @ 63 Hz, 39.6 kHz hsync
Modeline "480x300"     25     480  496  576  632   300  301  303  314 Doublescan
# 480x300 @ 72 Hz, 48.0 kHz hsync
Modeline "480x300"     29.952 480  504  584  624   300  319  322  333 Doublescan

EndSection


# **********************************************************************
# Graphics device section
# **********************************************************************

# Any number of graphics device sections may be present

# Standard VGA Device:

Section "Device"
Identifier	"Generic VGA"
VendorName	"Unknown"
BoardName	"Unknown"
Chipset	"generic"

#    VideoRam	256

#    Clocks	25.2 28.3

EndSection

# Sample Device for accelerated server:

# Section "Device"
#    Identifier	"Actix GE32+ 2MB"
#    VendorName	"Actix"
#    BoardName	"GE32+"
#    Ramdac	"ATT20C490"
#    Dacspeed	110
#    Option	"dac_8_bit"
#    Clocks	 25.0  28.0  40.0   0.0  50.0  77.0  36.0  45.0
#    Clocks	130.0 120.0  80.0  31.0 110.0  65.0  75.0  94.0
# EndSection

# Sample Device for Hercules mono card:

# Section "Device"
#    Identifier "Hercules mono"
# EndSection

# Device configured by xf86config:

Section "Device"
Identifier  "Toshiba Laptop"
VendorName  "Toshiba"
BoardName   "CT65555"
#VideoRam    2048
# Option "noaccel"
# Option "no_bitblt"
# Option "xaa_no_color_exp"
# Option "xaa_benchmark"
# Option "hw_cursor"
# Option "sync_on_green"
# Option "fast_dram"
# Option "use_vclk1"
# Textclockfreq 25.175
# Option "nolinear"
# MemBase 0x03b00000
# Device section for C&T cards.
# Option "suspend_hack"
# Option "STN"
# Option "no_stretch"
# Option "no_center"
# Option "use_modeline"
# Option "fix_panel_size"
# videoram 512
# Insert Clocks lines here if appropriate
EndSection


# **********************************************************************
# Screen sections
# **********************************************************************

# The Colour SVGA server

Section "Screen"
Driver      "svga"
# Use Device "Generic VGA" for Standard VGA 320x200x256
#Device      "Generic VGA"
Device      "Toshiba Laptop"
Monitor     "Toshiba Satellite"
Subsection "Display"
    Depth       16
    Modes       "1024x768" "800x600"
    ViewPort    0 0
    Virtual     1024 768
EndSubsection
Subsection "Display"
    Depth       24
    Modes       "800x600"
    ViewPort    0 0
    Virtual     800 600
EndSubsection
Subsection "Display"
    Depth       32
    Modes       "800x600"
    ViewPort    0 0
    Virtual     800 600
EndSubsection
EndSection

# The 16-color VGA server

Section "Screen"
Driver      "vga16"
Device      "Generic VGA"
Monitor     "Toshiba Satellite"
Subsection "Display"
    Modes       "640x480" "800x600"
    ViewPort    0 0
    Virtual     800 600
EndSubsection
EndSection

# The Mono server

Section "Screen"
Driver      "vga2"
Device      "Generic VGA"
Monitor     "Toshiba Satellite"
Subsection "Display"
    Modes       "640x480" "800x600"
    ViewPort    0 0
    Virtual     800 600
EndSubsection
EndSection

# The accelerated servers (S3, Mach32, Mach8, 8514, P9000, AGX, W32, Mach64)

Section "Screen"
Driver      "accel"
Device      "Toshiba Laptop"
Monitor     "Toshiba Satellite"
Subsection "Display"
    Depth       8
    Modes       "640x480" "800x600" "1024x768" "1280x1024"
    ViewPort    0 0
    Virtual     1600 1200
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes       "800x600"
        ViewPort    0 0
        Virtual     1152 900
    EndSubsection
    Subsection "Display"
        Depth       24
        Modes       "640x480" "800x600"
        ViewPort    0 0
        Virtual     800 600
    EndSubsection
    Subsection "Display"
        Depth       32
        Modes       "800x600"
        ViewPort    0 0
        Virtual     800 600
    EndSubsection
EndSection