I have also sent this to xfree86.org, and they said it could be a while before it is resolved. I'm hoping that a wider audience may be able to point me in the right direction. Problem : X server crashes when I use the mouse. Background: I recently installed NetBSD 1.5.2 onto a Sony FXA32 laptop computer. It has an ATI Rage Mobility chipset. I ran the Xinstall.sh script to install X onto the machine. I then ran xf86config to configure everything. When I ran startx, everything seemed to work fine, but the keyboard did not respond, and when I touched the mousepad, it kicked me out of X with a Fatal Server Error (Caught signal 11. Server Aborting). I tried changing the mouse from /dev/wsmouse to /dev/wsmouse0, which is reported in dmesg, but I had the same problem. I figure this is a simple configuration problem somewhere but I do not have enough experience to track down the problem myself. Thanks in advance for any help. Brian Rose Brian dot Rose at icn dot siemens dot com 407-942-6934 To understand recursion, one must first understand recursion Files: XF86Config ---------------------------------------------- # File generated by xf86config. # # Copyright (c) 1999 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. # ********************************************************************** # ********************************************************************** # Module section -- this section is used to specify # which dynamically loadable modules to load. # ********************************************************************** # Section "Module" # This loads the DBE extension module. Load "dbe" # Double buffer extension # This loads the miscellaneous extensions module, and disables # initialisation of the XFree86-DGA extension within that module. SubSection "extmod" Option "omit xfree86-dga" # don't initialise the DGA extension EndSubSection # This loads the Type1 and FreeType font modules Load "type1" Load "freetype" # This loads the GLX module # Load "glx" EndSection # ********************************************************************** # 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/" # The module search path. The default path is shown here. # ModulePath "/usr/X11R6/lib/modules" 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 # Option "NoTrapSignals" # Uncomment this to disable the <Crtl><Alt><BS> server abort sequence # This allows clients to receive this key event. # Option "DontZap" # Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching # sequences. This allows clients to receive these key events. # Option "Dont Zoom" # 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. # Option "DisableVidModeExtension" # Uncomment this to enable the use of a non-local xvidtune client. # Option "AllowNonLocalXvidtune" # Uncomment this to disable dynamically modifying the input device # (mouse and keyboard) settings. # Option "DisableModInDev" # Uncomment this to enable the use of a non-local client to # change the keyboard or mouse settings (currently only xset). # Option "AllowNonLocalModInDev" EndSection # ********************************************************************** # Input devices # ********************************************************************** # ********************************************************************** # Core keyboard's InputDevice section # ********************************************************************** Section "InputDevice" Identifier "Keyboard1" Driver "Keyboard" # For most OSs the protocol can be omitted (it defaults to "Standard"). # When using XQUEUE (only for SVR3 and SVR4, but not Solaris), # uncomment the following line. # Option "Protocol" "Xqueue" Option "AutoRepeat" "500 30" # Specify which keyboard LEDs can be user-controlled (eg, with xset(1)) # Option "Xleds" "1 2 3" # Option "LeftAlt" "Meta" # Option "RightAlt" "ModeShift" # 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: # Option "XkbModel" "pc102" # If you have a US Microsoft Natural keyboard, you can use: # Option "XkbModel" "microsoft" # # Then to change the language, change the Layout setting. # For example, a german layout can be obtained with: # Option "XkbLayout" "de" # or: # Option "XkbLayout" "de" # Option "XkbVariant" "nodeadkeys" # # If you'd like to switch the positions of your capslock and # control keys, use: # Option "XkbOptions" "ctrl:swapcaps" # These are the default XKB settings for XFree86 # Option "XkbRules" "xfree86" # Option "XkbModel" "pc101" # Option "XkbLayout" "us" # Option "XkbVariant" "" # Option "XkbOptions" "" # Option "XkbDisable" Option "XkbRules" "xfree86" Option "XkbModel" "pc101" Option "XkbLayout" "us" EndSection # ********************************************************************** # Core Pointer's InputDevice section # ********************************************************************** Section "InputDevice" # Identifier and driver Identifier "Mouse1" Driver "mouse" Option "Protocol" "PS/2" Option "Device" "/dev/wsmouse" # When using XQUEUE, comment out the above two lines, and uncomment # the following line. # Option "Protocol" "Xqueue" # Baudrate and SampleRate are only for some Logitech mice. In # almost every case these lines should be omitted. # Option "BaudRate" "9600" # Option "SampleRate" "150" # Emulate3Buttons is an option for 2-button Microsoft mice # Emulate3Timeout is the timeout in milliseconds (default is 50ms) Option "Emulate3Buttons" # Option "Emulate3Timeout" "50" # ChordMiddle is an option for some 3-button Logitech mice # Option "ChordMiddle" EndSection # ********************************************************************** # Other input device sections # 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 "InputDevice" # Identifier "Mouse2" # Driver "mouse" # Option "Protocol" "MouseMan" # Option "Device" "/dev/mouse2" # EndSection # # Section "InputDevice" # Identifier "spaceball" # Driver "magellan" # Option "Device" "/dev/cua0" # EndSection # # Section "InputDevice" # Identifier "spaceball2" # Driver "spaceorb" # Option "Device" "/dev/cua0" # EndSection # # Section "InputDevice" # Identifier "touchscreen0" # Driver "microtouch" # Option "Device" "/dev/ttyS0" # Option "MinX" "1412" # Option "MaxX" "15184" # Option "MinY" "15372" # Option "MaxY" "1230" # Option "ScreenNumber" "0" # Option "ReportingMode" "Scaled" # Option "ButtonNumber" "1" # Option "SendCoreEvents" # EndSection # # Section "InputDevice" # Identifier "touchscreen1" # Driver "elo2300" # Option "Device" "/dev/ttyS0" # Option "MinX" "231" # Option "MaxX" "3868" # Option "MinY" "3858" # Option "MaxY" "272" # Option "ScreenNumber" "0" # Option "ReportingMode" "Scaled" # Option "ButtonThreshold" "17" # Option "ButtonNumber" "1" # Option "SendCoreEvents" # EndSection # ********************************************************************** # Monitor section # ********************************************************************** # Any number of monitor sections may be present Section "Monitor" Identifier "Sony 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 - 48.5 # 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 40-70 EndSection # ********************************************************************** # Graphics device section # ********************************************************************** # Any number of graphics device sections may be present # Standard VGA Device: Section "Device" Identifier "Standard VGA" VendorName "Unknown" BoardName "Unknown" # The chipset line is optional in most cases. It can be used to override # the driver's chipset detection, and should not normally be specified. # Chipset "generic" # The Driver line must be present. When using run-time loadable driver # modules, this line instructs the server to load the specified driver # module. Even when not using loadable driver modules, this line # indicates which driver should interpret the information in this section. Driver "vga" # The BusID line is used to specify which of possibly multiple devices # this section is intended for. When this line isn't present, a device # section can only match up with the primary video device. For PCI # devices a line like the following could be used. This line should not # normally be included unless there is more than one video device # intalled. # BusID "PCI:0:10:0" # VideoRam 256 # Clocks 25.2 28.3 EndSection # Device configured by xf86config: Section "Device" Identifier "ATI|Rage Mobility P/M AGP 2x" Driver "ati" #VideoRam 8192zz # Insert Clocks lines here if appropriate EndSection # ********************************************************************** # Screen sections # ********************************************************************** # Any number of screen sections may be present. Each describes # the configuration of a single screen. A single specific screen section # may be specified from the X server command line with the "-screen" # option. Section "Screen" Identifier "Screen 1" Device "ATI|Rage Mobility P/M AGP 2x" Monitor "Sony LCD" DefaultDepth 16 Subsection "Display" Depth 8 Modes "1024x768" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1024x768" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1024x768" ViewPort 0 0 EndSubsection EndSection # ********************************************************************** # ServerLayout sections. # ********************************************************************** # Any number of ServerLayout sections may be present. Each describes # the way multiple screens are organised. A specific ServerLayout # section may be specified from the X server command line with the # "-layout" option. In the absence of this, the first section is used. # When now ServerLayout section is present, the first Screen section # is used alone. Section "ServerLayout" # The Identifier line must be present Identifier "Simple Layout" # Each Screen line specifies a Screen section name, and optionally # the relative position of other screens. The four names after # primary screen name are the screens to the top, bottom, left and right # of the primary screen. In this example, screen 2 is located to the # right of screen 1. Screen "Screen 1" # Each InputDevice line specifies an InputDevice section name and # optionally some options to specify the way the device is to be # used. Those options include "CorePointer", "CoreKeyboard" and # "SendCoreEvents". InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection ---------------------------------------------- Log File: XFree86 Version 4.2.0 / X Window System (protocol Version 11, revision 0, vendor release 6600) Release Date: 18 January 2002 If the server is older than 6-12 months, or if your card is newer than the above date, look for a newer version before reporting problems. (See http://www.XFree86.Org/) Build Operating System: NetBSD/i386 1.5.2 [ELF] The NetBSD Foundation, Inc. Module Loader present Markers: (--) probed, (**) from config file, (==) default setting, (++) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. (==) Log file: "/var/log/XFree86.0.log", Time: Wed May 29 08:03:23 2002 (==) Using config file: "/etc/X11/XF86Config" (==) ServerLayout "Simple Layout" (**) |-->Screen "Screen 1" (0) (**) | |-->Monitor "Sony LCD" (**) | |-->Device "ATI|Rage Mobility P/M AGP 2x" (**) |-->Input Device "Mouse1" (**) |-->Input Device "Keyboard1" (**) Option "AutoRepeat" "500 30" (**) Option "XkbRules" "xfree86" (**) XKB: rules: "xfree86" (**) Option "XkbModel" "pc101" (**) XKB: model: "pc101" (**) Option "XkbLayout" "us" (**) XKB: layout: "us" (==) Keyboard: CustomKeycode disabled (**) FontPath set to "/usr/X11R6/lib/X11/fonts/local/,/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/l ib/X11/fonts/75dpi/:unscaled,/usr/X11R6/lib/X11/fonts/100dpi/:unscaled,/usr/ X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X 11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/" (**) RgbPath set to "/usr/X11R6/lib/X11/rgb" (==) ModulePath set to "/usr/X11R6/lib/modules" (--) Using pcvt driver (version 3.32) (II) Module ABI versions: XFree86 ANSI C Emulation: 0.1 XFree86 Video Driver: 0.5 XFree86 XInput driver : 0.3 XFree86 Server Extension : 0.1 XFree86 Font Renderer : 0.3 (II) Loader running on netbsd (II) LoadModule: "bitmap" (II) Loading /usr/X11R6/lib/modules/fonts/libbitmap.a (II) Module bitmap: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 Module class: XFree86 Font Renderer ABI class: XFree86 Font Renderer, version 0.3 (II) Loading font Bitmap (II) LoadModule: "pcidata" (II) Loading /usr/X11R6/lib/modules/libpcidata.a (II) Module pcidata: vendor="The XFree86 Project" compiled for 4.2.0, module version = 0.1.0 ABI class: XFree86 Video Driver, version 0.5 (II) PCI: Probing config type using method 1 (II) PCI: Config type is 1 (II) PCI: stages = 0x03, oldVal1 = 0x00000000, mode1Res1 = 0x80000000 (II) PCI: PCI scan (all values are in hex) (II) PCI: 00:00:0: chip 1106,0305 card 104d,80f6 rev 03 class 06,00,00 hdr 00 (II) PCI: 00:01:0: chip 1106,8305 card ffff,ffff rev 00 class 06,04,00 hdr 01 (II) PCI: 00:07:0: chip 1106,0686 card 104d,80f6 rev 40 class 06,01,00 hdr 80 (II) PCI: 00:07:1: chip 1106,0571 card 104d,80f6 rev 06 class 01,01,8a hdr 00 (II) PCI: 00:07:2: chip 1106,3038 card 104d,80f6 rev 1a class 0c,03,00 hdr 00 (II) PCI: 00:07:3: chip 1106,3038 card 104d,80f6 rev 1a class 0c,03,00 hdr 00 (II) PCI: 00:07:4: chip 1106,3057 card 104d,80f6 rev 40 class 06,01,00 hdr 00 (II) PCI: 00:07:5: chip 1106,3058 card 104d,80f6 rev 50 class 04,01,00 hdr 00 (II) PCI: 00:07:6: chip 1106,3068 card 104d,80f6 rev 30 class 07,80,00 hdr 00 (II) PCI: 00:0a:0: chip 104c,ac51 card fffc,ffff rev 00 class 06,07,00 hdr 82 (II) PCI: 00:0a:1: chip 104c,ac51 card fffc,ffff rev 00 class 06,07,00 hdr 82 (II) PCI: 00:0e:0: chip 104c,8020 card 104d,80f6 rev 00 class 0c,00,10 hdr 00 (II) PCI: 00:10:0: chip 10ec,8139 card 104d,80f6 rev 10 class 02,00,00 hdr 00 (II) PCI: 01:00:0: chip 1002,4c4d card 104d,80f6 rev 64 class 03,00,00 hdr 00 (II) PCI: End of PCI scan (II) LoadModule: "scanpci" (II) Loading /usr/X11R6/lib/modules/libscanpci.a (II) Module scanpci: vendor="The XFree86 Project" compiled for 4.2.0, module version = 0.1.0 ABI class: XFree86 Video Driver, version 0.5 (II) UnloadModule: "scanpci" (II) Unloading /usr/X11R6/lib/modules/libscanpci.a (II) Host-to-PCI bridge: (II) PCI-to-ISA bridge: (II) PCI-to-ISA bridge: (II) PCI-to-PCI bridge: (II) Bus 0: bridge is at (0:0:0), (-1,0,0), BCTRL: 0x08 (VGA_EN is set) (II) Bus 0 I/O range: [0] -1 0x00000000 - 0x0000ffff (0x10000) IX[B] (II) Bus 0 non-prefetchable memory range: [0] -1 0x00000000 - 0xffffffff (0x0) MX[B] (II) Bus 0 prefetchable memory range: [0] -1 0x00000000 - 0xffffffff (0x0) MX[B] (II) Bus 1: bridge is at (0:1:0), (0,1,1), BCTRL: 0x0c (VGA_EN is set) (II) Bus 1 I/O range: [0] -1 0x00009000 - 0x000090ff (0x100) IX[B] [1] -1 0x00009400 - 0x000094ff (0x100) IX[B] [2] -1 0x00009800 - 0x000098ff (0x100) IX[B] [3] -1 0x00009c00 - 0x00009cff (0x100) IX[B] (II) Bus 1 non-prefetchable memory range: [0] -1 0xe8100000 - 0xe9ffffff (0x1f00000) MX[B] (II) Bus 1 prefetchable memory range: (II) Bus -1: bridge is at (0:7:0), (0,-1,0), BCTRL: 0x08 (VGA_EN is set) (II) Bus -1 I/O range: (II) Bus -1 non-prefetchable memory range: (II) Bus -1 prefetchable memory range: (II) Bus -1: bridge is at (0:7:4), (0,-1,0), BCTRL: 0x08 (VGA_EN is set) (II) Bus -1 I/O range: (II) Bus -1 non-prefetchable memory range: (II) Bus -1 prefetchable memory range: (--) PCI:*(1:0:0) ATI Mach64 LM rev 100, Mem @ 0xe9000000/24, 0xe8100000/12, I/O @ 0x9000/8 (II) Addressable bus resource ranges are [0] -1 0x00000000 - 0xffffffff (0x0) MX[B] [1] -1 0x00000000 - 0x0000ffff (0x10000) IX[B] (II) OS-reported resource ranges: [0] -1 0xffe00000 - 0xffffffff (0x200000) MX[B](B) [1] -1 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B) [2] -1 0x000f0000 - 0x000fffff (0x10000) MX[B] [3] -1 0x000c0000 - 0x000effff (0x30000) MX[B] [4] -1 0x00000000 - 0x0009ffff (0xa0000) MX[B] [5] -1 0x0000ffff - 0x0000ffff (0x1) IX[B] [6] -1 0x00000000 - 0x000000ff (0x100) IX[B] (II) Active PCI resource ranges: [0] -1 0xe8004800 - 0xe8004fff (0x800) MX[B]E [1] -1 0xe8000000 - 0xe80fffff (0x100000) MX[B]E [2] -1 0xe8004000 - 0xe8007fff (0x4000) MX[B]E [3] -1 0xf0000000 - 0xffffffff (0x10000000) MX[B]E [4] -1 0xe8100000 - 0xe8100fff (0x1000) MX[B](B) [5] -1 0xe9000000 - 0xe9ffffff (0x1000000) MX[B](B) [6] -1 0x00001800 - 0x000018ff (0x100) IX[B]E [7] -1 0x00001400 - 0x000014ff (0x100) IX[B]E [8] -1 0x00001c50 - 0x00001c5f (0x10) IX[B]E [9] -1 0x00001c54 - 0x00001c57 (0x4) IX[B]E [10] -1 0x00001000 - 0x000010ff (0x100) IX[B]E [11] -1 0x00001c20 - 0x00001c3f (0x20) IX[B]E [12] -1 0x00001c00 - 0x00001cff (0x100) IX[B]E [13] -1 0x00001c40 - 0x00001c7f (0x40) IX[B]E [14] -1 0x00009000 - 0x000090ff (0x100) IX[B](B) (II) PCI Memory resource overlap reduced 0xe8000000 from 0xe80fffff to 0xe8003fff (II) PCI Memory resource overlap reduced 0xe8004000 from 0xe8007fff to 0xe80047ff (II) PCI I/O resource overlap reduced 0x00001c50 from 0x00001c5f to 0x00001c53 (II) PCI I/O resource overlap reduced 0x00001c00 from 0x00001cff to 0x00001c1f (II) PCI I/O resource overlap reduced 0x00001c40 from 0x00001c7f to 0x00001c4f (II) Active PCI resource ranges after removing overlaps: [0] -1 0xe8004800 - 0xe8004fff (0x800) MX[B]E [1] -1 0xe8000000 - 0xe8003fff (0x4000) MX[B]E [2] -1 0xe8004000 - 0xe80047ff (0x800) MX[B]E [3] -1 0xf0000000 - 0xffffffff (0x10000000) MX[B]E [4] -1 0xe8100000 - 0xe8100fff (0x1000) MX[B](B) [5] -1 0xe9000000 - 0xe9ffffff (0x1000000) MX[B](B) [6] -1 0x00001800 - 0x000018ff (0x100) IX[B]E [7] -1 0x00001400 - 0x000014ff (0x100) IX[B]E [8] -1 0x00001c50 - 0x00001c53 (0x4) IX[B]E [9] -1 0x00001c54 - 0x00001c57 (0x4) IX[B]E [10] -1 0x00001000 - 0x000010ff (0x100) IX[B]E [11] -1 0x00001c20 - 0x00001c3f (0x20) IX[B]E [12] -1 0x00001c00 - 0x00001c1f (0x20) IX[B]E [13] -1 0x00001c40 - 0x00001c4f (0x10) IX[B]E [14] -1 0x00009000 - 0x000090ff (0x100) IX[B](B) (II) OS-reported resource ranges after removing overlaps with PCI: [0] -1 0xffe00000 - 0xffffffff (0x200000) MX[B](B) [1] -1 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B) [2] -1 0x000f0000 - 0x000fffff (0x10000) MX[B] [3] -1 0x000c0000 - 0x000effff (0x30000) MX[B] [4] -1 0x00000000 - 0x0009ffff (0xa0000) MX[B] [5] -1 0x0000ffff - 0x0000ffff (0x1) IX[B] [6] -1 0x00000000 - 0x000000ff (0x100) IX[B] (II) All system resource ranges: [0] -1 0xffe00000 - 0xffffffff (0x200000) MX[B](B) [1] -1 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B) [2] -1 0x000f0000 - 0x000fffff (0x10000) MX[B] [3] -1 0x000c0000 - 0x000effff (0x30000) MX[B] [4] -1 0x00000000 - 0x0009ffff (0xa0000) MX[B] [5] -1 0xe8004800 - 0xe8004fff (0x800) MX[B]E [6] -1 0xe8000000 - 0xe8003fff (0x4000) MX[B]E [7] -1 0xe8004000 - 0xe80047ff (0x800) MX[B]E [8] -1 0xf0000000 - 0xffffffff (0x10000000) MX[B]E [9] -1 0xe8100000 - 0xe8100fff (0x1000) MX[B](B) [10] -1 0xe9000000 - 0xe9ffffff (0x1000000) MX[B](B) [11] -1 0x0000ffff - 0x0000ffff (0x1) IX[B] [12] -1 0x00000000 - 0x000000ff (0x100) IX[B] [13] -1 0x00001800 - 0x000018ff (0x100) IX[B]E [14] -1 0x00001400 - 0x000014ff (0x100) IX[B]E [15] -1 0x00001c50 - 0x00001c53 (0x4) IX[B]E [16] -1 0x00001c54 - 0x00001c57 (0x4) IX[B]E [17] -1 0x00001000 - 0x000010ff (0x100) IX[B]E [18] -1 0x00001c20 - 0x00001c3f (0x20) IX[B]E [19] -1 0x00001c00 - 0x00001c1f (0x20) IX[B]E [20] -1 0x00001c40 - 0x00001c4f (0x10) IX[B]E [21] -1 0x00009000 - 0x000090ff (0x100) IX[B](B) (II) LoadModule: "dbe" (II) Loading /usr/X11R6/lib/modules/extensions/libdbe.a (II) Module dbe: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 Module class: XFree86 Server Extension ABI class: XFree86 Server Extension, version 0.1 (II) Loading extension DOUBLE-BUFFER (II) LoadModule: "extmod" (II) Loading /usr/X11R6/lib/modules/extensions/libextmod.a (II) Module extmod: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 Module class: XFree86 Server Extension ABI class: XFree86 Server Extension, version 0.1 (II) Loading extension SHAPE (II) Loading extension MIT-SUNDRY-NONSTANDARD (II) Loading extension BIG-REQUESTS (II) Loading extension SYNC (II) Loading extension MIT-SCREEN-SAVER (II) Loading extension XC-MISC (II) Loading extension XFree86-VidModeExtension (II) Loading extension XFree86-Misc (II) Loading extension DPMS (II) Loading extension FontCache (II) Loading extension TOG-CUP (II) Loading extension Extended-Visual-Information (II) Loading extension XVideo (II) Loading extension XVideo-MotionCompensation (II) LoadModule: "type1" (II) Loading /usr/X11R6/lib/modules/fonts/libtype1.a (II) Module type1: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.1 Module class: XFree86 Font Renderer ABI class: XFree86 Font Renderer, version 0.3 (II) Loading font Type1 (II) Loading font CID (II) LoadModule: "freetype" (II) Loading /usr/X11R6/lib/modules/fonts/libfreetype.a (II) Module freetype: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.1.10 Module class: XFree86 Font Renderer ABI class: XFree86 Font Renderer, version 0.3 (II) Loading font FreeType (II) LoadModule: "ati" (II) Loading /usr/X11R6/lib/modules/drivers/ati_drv.o (II) Module ati: vendor="The XFree86 Project" compiled for 4.2.0, module version = 6.4.8 Module class: XFree86 Video Driver ABI class: XFree86 Video Driver, version 0.5 (II) LoadModule: "mouse" (II) Loading /usr/X11R6/lib/modules/input/mouse_drv.o (II) Module mouse: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 Module class: XFree86 XInput Driver ABI class: XFree86 XInput driver, version 0.3 (II) ATI: ATI driver (version 6.4.8) for chipsets: ati, ativga (II) R128: Driver for ATI Rage 128 chipsets: ATI Rage 128 RE (PCI), ATI Rage 128 RF (AGP), ATI Rage 128 RG (AGP), ATI Rage 128 RK (PCI), ATI Rage 128 RL (AGP), ATI Rage 128 SM (AGP), ATI Rage 128 Pro PD (PCI), ATI Rage 128 Pro PF (AGP), ATI Rage 128 Pro PP (PCI), ATI Rage 128 Pro PR (PCI), ATI Rage 128 Pro ULTRA TF (AGP), ATI Rage 128 Pro ULTRA TL (AGP), ATI Rage 128 Pro ULTRA TR (AGP), ATI Rage 128 Mobility LE (PCI), ATI Rage 128 Mobility LF (AGP), ATI Rage 128 Mobility MF (AGP), ATI Rage 128 Mobility ML (AGP) (II) RADEON: Driver for ATI Radeon chipsets: ATI Radeon QD (AGP), ATI Radeon QE (AGP), ATI Radeon QF (AGP), ATI Radeon QG (AGP), ATI Radeon VE QY (AGP), ATI Radeon VE QZ (AGP), ATI Radeon Mobility LW (AGP), ATI Radeon Mobility LY (AGP), ATI Radeon Mobility LZ (AGP), ATI Radeon 8500 QL (AGP), ATI Radeon 8500 QN (AGP), ATI Radeon 8500 QO (AGP), ATI Radeon 8500 Ql (AGP), ATI Radeon 8500 BB (AGP), ATI Radeon 7500 QW (AGP) (II) Primary Device is: PCI 01:00:0 (II) ATI: Candidate "Device" section "ATI|Rage Mobility P/M AGP 2x". (II) ATI: Shared PCI/AGP Mach64 in slot 1:0:0 detected. (II) ATI: Shared PCI/AGP Mach64 in slot 1:0:0 assigned to active "Device" section "ATI|Rage Mobility P/M AGP 2x". (II) resource ranges after xf86ClaimFixedResources() call: [0] -1 0xffe00000 - 0xffffffff (0x200000) MX[B](B) [1] -1 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B) [2] -1 0x000f0000 - 0x000fffff (0x10000) MX[B] [3] -1 0x000c0000 - 0x000effff (0x30000) MX[B] [4] -1 0x00000000 - 0x0009ffff (0xa0000) MX[B] [5] -1 0xe8004800 - 0xe8004fff (0x800) MX[B]E [6] -1 0xe8000000 - 0xe8003fff (0x4000) MX[B]E [7] -1 0xe8004000 - 0xe80047ff (0x800) MX[B]E [8] -1 0xf0000000 - 0xffffffff (0x10000000) MX[B]E [9] -1 0xe8100000 - 0xe8100fff (0x1000) MX[B](B) [10] -1 0xe9000000 - 0xe9ffffff (0x1000000) MX[B](B) [11] -1 0x0000ffff - 0x0000ffff (0x1) IX[B] [12] -1 0x00000000 - 0x000000ff (0x100) IX[B] [13] -1 0x00001800 - 0x000018ff (0x100) IX[B]E [14] -1 0x00001400 - 0x000014ff (0x100) IX[B]E [15] -1 0x00001c50 - 0x00001c53 (0x4) IX[B]E [16] -1 0x00001c54 - 0x00001c57 (0x4) IX[B]E [17] -1 0x00001000 - 0x000010ff (0x100) IX[B]E [18] -1 0x00001c20 - 0x00001c3f (0x20) IX[B]E [19] -1 0x00001c00 - 0x00001c1f (0x20) IX[B]E [20] -1 0x00001c40 - 0x00001c4f (0x10) IX[B]E [21] -1 0x00009000 - 0x000090ff (0x100) IX[B](B) (II) Loading sub module "atimisc" (II) LoadModule: "atimisc" (II) Loading /usr/X11R6/lib/modules/drivers/atimisc_drv.o (II) Module atimisc: vendor="The XFree86 Project" compiled for 4.2.0, module version = 6.4.8 Module class: XFree86 Video Driver ABI class: XFree86 Video Driver, version 0.5 (II) resource ranges after probing: [0] -1 0xffe00000 - 0xffffffff (0x200000) MX[B](B) [1] -1 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B) [2] -1 0x000f0000 - 0x000fffff (0x10000) MX[B] [3] -1 0x000c0000 - 0x000effff (0x30000) MX[B] [4] -1 0x00000000 - 0x0009ffff (0xa0000) MX[B] [5] -1 0xe8004800 - 0xe8004fff (0x800) MX[B]E [6] -1 0xe8000000 - 0xe8003fff (0x4000) MX[B]E [7] -1 0xe8004000 - 0xe80047ff (0x800) MX[B]E [8] -1 0xf0000000 - 0xffffffff (0x10000000) MX[B]E [9] -1 0xe8100000 - 0xe8100fff (0x1000) MX[B](B) [10] -1 0xe9000000 - 0xe9ffffff (0x1000000) MX[B](B) [11] 0 0x000a0000 - 0x000affff (0x10000) MS[B] [12] 0 0x000b0000 - 0x000b7fff (0x8000) MS[B] [13] 0 0x000b8000 - 0x000bffff (0x8000) MS[B] [14] -1 0x0000ffff - 0x0000ffff (0x1) IX[B] [15] -1 0x00000000 - 0x000000ff (0x100) IX[B] [16] -1 0x00001800 - 0x000018ff (0x100) IX[B]E [17] -1 0x00001400 - 0x000014ff (0x100) IX[B]E [18] -1 0x00001c50 - 0x00001c53 (0x4) IX[B]E [19] -1 0x00001c54 - 0x00001c57 (0x4) IX[B]E [20] -1 0x00001000 - 0x000010ff (0x100) IX[B]E [21] -1 0x00001c20 - 0x00001c3f (0x20) IX[B]E [22] -1 0x00001c00 - 0x00001c1f (0x20) IX[B]E [23] -1 0x00001c40 - 0x00001c4f (0x10) IX[B]E [24] -1 0x00009000 - 0x000090ff (0x100) IX[B](B) [25] 0 0x000003b0 - 0x000003bb (0xc) IS[B] [26] 0 0x000003c0 - 0x000003df (0x20) IS[B] (II) Setting vga for screen 0. (==) ATI(0): Chipset: "ati". (**) ATI(0): Depth 16, (--) framebuffer bpp 16 (II) Loading sub module "int10" (II) LoadModule: "int10" (II) Loading /usr/X11R6/lib/modules/libint10.a (II) Module int10: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) ATI(0): Primary V_BIOS segment is: 0xc000 (II) Loading sub module "ddc" (II) LoadModule: "ddc" (II) Loading /usr/X11R6/lib/modules/libddc.a (II) Module ddc: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) Loading sub module "vbe" (II) LoadModule: "vbe" (II) Loading /usr/X11R6/lib/modules/libvbe.a (II) Module vbe: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) ATI(0): VESA BIOS detected (II) ATI(0): VESA VBE Version 2.0 (II) ATI(0): VESA VBE Total Mem: 8128 kB (II) ATI(0): VESA VBE OEM: ATI MACH64 (II) ATI(0): VESA VBE OEM Software Rev: 1.0 (II) ATI(0): VESA VBE OEM Vendor: ATI Technologies Inc. (II) ATI(0): VESA VBE OEM Product: MACH64RM (II) ATI(0): VESA VBE OEM Product Rev: 01.00 (II) ATI(0): VESA VBE DDC supported (II) ATI(0): VESA VBE DDC Level none (II) ATI(0): VESA VBE DDC transfer in appr. 2 sec. (II) ATI(0): VESA VBE DDC read failed (--) ATI(0): ATI 3D Rage Mobility graphics controller detected. (--) ATI(0): Chip type 4C4D "LM", version 4, foundry TSMC, class 0, revision 0x01. (--) ATI(0): AGP bus interface detected; block I/O base is 0x9000. (--) ATI(0): ATI Mach64 adapter detected. (!!) ATI(0): For information on using the multimedia capabilities of this adapter, please see http://gatos.sf.net. (--) ATI(0): Internal RAMDAC (subtype 1) detected. (==) ATI(0): RGB weight 565 (==) ATI(0): Default visual is TrueColor (==) ATI(0): Using gamma correction (1.0, 1.0, 1.0) (II) ATI(0): Using Mach64 accelerator CRTC. (--) ATI(0): 1024x768 panel (ID 2) detected. (--) ATI(0): Panel model Hitachi TX38D85VC1CAJ. (--) ATI(0): Panel clock is 65.146 MHz. (II) ATI(0): Using digital flat panel interface. (II) ATI(0): Storing hardware cursor image at 0xE97FFC00. (II) ATI(0): Using 8 MB linear aperture at 0xE9000000. (!!) ATI(0): Virtual resolutions will be limited to 8191 kB due to linear aperture size and/or placement of hardware cursor image area. (II) ATI(0): Using Block 0 MMIO aperture at 0xE8100400. (II) ATI(0): Using Block 1 MMIO aperture at 0xE8100000. (II) ATI(0): MMIO write caching enabled. (--) ATI(0): 8192 kB of SDRAM (1:1) detected (using 8191 kB). (WW) ATI(0): Cannot shadow an accelerated frame buffer. (--) ATI(0): Internal programmable clock generator detected. (--) ATI(0): Reference clock 29.500 MHz. (II) ATI(0): Maximum clock: 230.00 MHz (II) ATI(0): Not using default mode "640x350" (vrefresh out of range) (II) ATI(0): Not using default mode "320x175" (vrefresh out of range) (II) ATI(0): Not using default mode "640x400" (vrefresh out of range) (II) ATI(0): Not using default mode "320x200" (vrefresh out of range) (II) ATI(0): Not using default mode "720x400" (vrefresh out of range) (II) ATI(0): Not using default mode "360x200" (vrefresh out of range) (II) ATI(0): Not using default mode "640x480" (vrefresh out of range) (II) ATI(0): Not using default mode "320x240" (vrefresh out of range) (II) ATI(0): Not using default mode "640x480" (vrefresh out of range) (II) ATI(0): Not using default mode "320x240" (vrefresh out of range) (II) ATI(0): Not using default mode "640x480" (vrefresh out of range) (II) ATI(0): Not using default mode "320x240" (vrefresh out of range) (II) ATI(0): Not using default mode "800x600" (vrefresh out of range) (II) ATI(0): Not using default mode "400x300" (vrefresh out of range) (II) ATI(0): Not using default mode "800x600" (vrefresh out of range) (II) ATI(0): Not using default mode "400x300" (vrefresh out of range) (II) ATI(0): Not using default mode "800x600" (hsync out of range) (II) ATI(0): Not using default mode "400x300" (hsync out of range) (II) ATI(0): Not using default mode "1024x768" (vrefresh out of range) (II) ATI(0): Not using default mode "512x384" (vrefresh out of range) (II) ATI(0): Not using default mode "1024x768" (hsync out of range) (II) ATI(0): Not using default mode "512x384" (hsync out of range) (II) ATI(0): Not using default mode "1024x768" (hsync out of range) (II) ATI(0): Not using default mode "512x384" (hsync out of range) (II) ATI(0): Not using default mode "1024x768" (hsync out of range) (II) ATI(0): Not using default mode "512x384" (hsync out of range) (II) ATI(0): Not using default mode "1152x864" (exceeds panel dimensions) (II) ATI(0): Not using default mode "576x432" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1280x960" (exceeds panel dimensions) (II) ATI(0): Not using default mode "640x480" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1280x960" (exceeds panel dimensions) (II) ATI(0): Not using default mode "640x480" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1280x1024" (exceeds panel dimensions) (II) ATI(0): Not using default mode "640x512" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1280x1024" (exceeds panel dimensions) (II) ATI(0): Not using default mode "640x512" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1280x1024" (exceeds panel dimensions) (II) ATI(0): Not using default mode "640x512" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1600x1200" (exceeds panel dimensions) (II) ATI(0): Not using default mode "800x600" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1600x1200" (exceeds panel dimensions) (II) ATI(0): Not using default mode "800x600" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1600x1200" (exceeds panel dimensions) (II) ATI(0): Not using default mode "800x600" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1600x1200" (exceeds panel dimensions) (II) ATI(0): Not using default mode "800x600" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1600x1200" (exceeds panel dimensions) (II) ATI(0): Not using default mode "800x600" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1792x1344" (exceeds panel dimensions) (II) ATI(0): Not using default mode "896x672" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1792x1344" (bad mode clock/interlace/doublescan) (II) ATI(0): Not using default mode "896x672" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1856x1392" (exceeds panel dimensions) (II) ATI(0): Not using default mode "928x696" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1856x1392" (bad mode clock/interlace/doublescan) (II) ATI(0): Not using default mode "928x696" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1920x1440" (bad mode clock/interlace/doublescan) (II) ATI(0): Not using default mode "960x720" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1920x1440" (bad mode clock/interlace/doublescan) (II) ATI(0): Not using default mode "960x720" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1400x1050" (exceeds panel dimensions) (II) ATI(0): Not using default mode "700x525" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1400x1050" (exceeds panel dimensions) (II) ATI(0): Not using default mode "700x525" (exceeds panel dimensions) (II) ATI(0): Not using default mode "1600x1024" (exceeds panel dimensions) (II) ATI(0): Not using default mode "800x512" (exceeds panel dimensions) (II) ATI(0): Not using built-in mode "Native panel mode" (hsync out of range) (--) ATI(0): Virtual size is 1024x768 (pitch 1024) (**) ATI(0): Default mode "1024x768": 65.0 MHz, 48.4 kHz, 60.0 Hz (II) ATI(0): Modeline "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (==) ATI(0): DPI set to (75, 75) (II) Loading sub module "xaa" (II) LoadModule: "xaa" (II) Loading /usr/X11R6/lib/modules/libxaa.a (II) Module xaa: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 Video Driver, version 0.5 (II) Loading sub module "ramdac" (II) LoadModule: "ramdac" (II) Loading /usr/X11R6/lib/modules/libramdac.a (II) Module ramdac: vendor="The XFree86 Project" compiled for 4.2.0, module version = 0.1.0 ABI class: XFree86 Video Driver, version 0.5 (II) Loading sub module "fb" (II) LoadModule: "fb" (II) Loading /usr/X11R6/lib/modules/libfb.a (II) Module fb: vendor="The XFree86 Project" compiled for 4.2.0, module version = 1.0.0 ABI class: XFree86 ANSI C Emulation, version 0.1 (II) do I need RAC? No, I don't. (II) resource ranges after preInit: [0] 0 0xe8100000 - 0xe8100fff (0x1000) MS[B] [1] 0 0xe9000000 - 0xe9ffffff (0x1000000) MS[B] [2] -1 0xffe00000 - 0xffffffff (0x200000) MX[B](B) [3] -1 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B) [4] -1 0x000f0000 - 0x000fffff (0x10000) MX[B] [5] -1 0x000c0000 - 0x000effff (0x30000) MX[B] [6] -1 0x00000000 - 0x0009ffff (0xa0000) MX[B] [7] -1 0xe8004800 - 0xe8004fff (0x800) MX[B]E [8] -1 0xe8000000 - 0xe8003fff (0x4000) MX[B]E [9] -1 0xe8004000 - 0xe80047ff (0x800) MX[B]E [10] -1 0xf0000000 - 0xffffffff (0x10000000) MX[B]E [11] -1 0xe8100000 - 0xe8100fff (0x1000) MX[B](B) [12] -1 0xe9000000 - 0xe9ffffff (0x1000000) MX[B](B) [13] 0 0x000a0000 - 0x000affff (0x10000) MS[B](OprU) [14] 0 0x000b0000 - 0x000b7fff (0x8000) MS[B](OprU) [15] 0 0x000b8000 - 0x000bffff (0x8000) MS[B](OprU) [16] 0 0x00009000 - 0x000090ff (0x100) IS[B] [17] -1 0x0000ffff - 0x0000ffff (0x1) IX[B] [18] -1 0x00000000 - 0x000000ff (0x100) IX[B] [19] -1 0x00001800 - 0x000018ff (0x100) IX[B]E [20] -1 0x00001400 - 0x000014ff (0x100) IX[B]E [21] -1 0x00001c50 - 0x00001c53 (0x4) IX[B]E [22] -1 0x00001c54 - 0x00001c57 (0x4) IX[B]E [23] -1 0x00001000 - 0x000010ff (0x100) IX[B]E [24] -1 0x00001c20 - 0x00001c3f (0x20) IX[B]E [25] -1 0x00001c00 - 0x00001c1f (0x20) IX[B]E [26] -1 0x00001c40 - 0x00001c4f (0x10) IX[B]E [27] -1 0x00009000 - 0x000090ff (0x100) IX[B](B) [28] 0 0x000003b0 - 0x000003bb (0xc) IS[B](OprU) [29] 0 0x000003c0 - 0x000003df (0x20) IS[B](OprU) (II) ATI(0): Largest offscreen areas (with overlaps): (II) ATI(0): 1024 x 3327 rectangle at 0,768 (II) ATI(0): 512 x 3328 rectangle at 0,768 (II) ATI(0): Using XFree86 Acceleration Architecture (XAA) Screen to screen bit blits Solid filled rectangles 8x8 mono pattern filled rectangles Indirect CPU to Screen color expansion Solid Lines Offscreen Pixmaps Setting up tile and stipple cache: 32 128x128 slots 18 256x256 slots 6 512x512 slots (==) ATI(0): Backing store disabled (==) ATI(0): Silken mouse enabled (II) Initializing built-in extension MIT-SHM (II) Initializing built-in extension XInputExtension (II) Initializing built-in extension XTEST (II) Initializing built-in extension XKEYBOARD (II) Initializing built-in extension LBX (II) Initializing built-in extension XC-APPGROUP (II) Initializing built-in extension SECURITY (II) Initializing built-in extension XINERAMA (II) Initializing built-in extension XFree86-Bigfont (II) Initializing built-in extension RENDER error opening security policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy (**) Option "Protocol" "PS/2" (**) Mouse1: Protocol: "PS/2" (**) Option "CorePointer" (**) Mouse1: Core Pointer (**) Option "Device" "/dev/wsmouse0" (**) Option "Emulate3Buttons" (**) Mouse1: Emulate3Buttons, Emulate3Timeout: 50 (==) Mouse1: Buttons: 3 (II) Keyboard "Keyboard1" handled by legacy driver (II) XINPUT: Adding extended input device "Mouse1" (type: MOUSE) Couldn't load XKB keymap, falling back to pre-XKB keymap Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list! Fatal server error: Caught signal 11. Server aborting When reporting a problem related to a server crash, please send the full server output, not just the last messages. This can be found in the log file "/var/log/XFree86.0.log". Please report problems to xfree86@xfree86.org. Brian Rose Brian dot Rose at icn dot siemens dot com 407-942-6934 To understand recursion, one must first understand recursion