[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: X problems on Blade 100



On Sun, 2002-12-01 at 13:23, Matthieu Herrb wrote:
> How do you exit the X server ? Ctrl+Alt+BackSpace should work, or
> login from the network and killing the server with SIGTERM should be
> enough if the server machine is not hung. 

I had a configuration option I missed in my XF86Config that was making X
think I had a different keyboard than I do. I fixed it and Ctrl-Alt-BS
now works.

> If you do a brutal reboot, the XFree86.0.log file is not closed and
> has in fact great risks to be wiped out by fsck upon reboot. 

That's exactly what was happening. Good call :) Below is all the output
in XFree86.0.log currently, after the most recent attempt (which I
killed because the monitor warning box came up again):

<output>
XFree86 Version 4.2.1 (for OpenBSD) / X Window System
(protocol Version 11, revision 0, vendor release 6600)
Release Date: 3 September 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: OpenBSD 3.2  [ELF]
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: Sun Dec  1 13:13:32 2002
(==) Using config file: "/etc/X11/XF86Config"
(==) ServerLayout "Simple Layout"
(**) |-->Screen "Screen1" (0)
(**) |   |-->Monitor "Monitor0"
(**) |   |-->Device "Card0"
(**) |-->Input Device "Mouse1"
(**) |-->Input Device "Keyboard1"
(**) Option "Protocol" "wskbd"
(**) Option "Device" "/dev/wskbd0"
(**) Keyboard: Protocol: wskbd
(--) Keyboard type: USB
(==) Keyboard: CustomKeycode disabled
(**) FontPath set to
"/usr/X11R6/lib/X11/fonts/local/,/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/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/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/"
(**) RgbPath set to "/usr/X11R6/lib/X11/rgb"
(II) PCI: PCI scan (all values are in hex)
(II) PCI: 00:03:0: chip 10b9,7101 card 0000,0000 rev 00 class 00,00,00
hdr 00
(II) PCI: 00:05:0: chip 1011,0024 card 0000,0000 rev 03 class 06,04,00
hdr 01
(II) PCI: 00:07:0: chip 10b9,1533 card 10b9,1533 rev 00 class 06,01,00
hdr 00
(II) PCI: 00:08:0: chip 10b9,5451 card 10b9,5451 rev 01 class 04,01,00
hdr 00
(II) PCI: 00:0c:0: chip 108e,1100 card 0000,0000 rev 01 class 06,80,00
hdr 80
(II) PCI: 00:0c:1: chip 108e,1101 card 0000,0000 rev 01 class 02,00,00
hdr 80
(II) PCI: 00:0c:2: chip 108e,1102 card 0000,0000 rev 01 class 0c,00,10
hdr 80
(II) PCI: 00:0c:3: chip 108e,1103 card 0000,0000 rev 01 class 0c,03,10
hdr 80
(II) PCI: 00:0d:0: chip 10b9,5229 card 0000,0000 rev c3 class 01,01,ef
hdr 00
(II) PCI: 00:13:0: chip 1002,4752 card 0000,0000 rev 27 class 03,00,00
hdr 00
(II) PCI: End of PCI scan
(II) PCI-to-ISA bridge:
(II) Host-to-PCI bridge:
(II) PCI-to-PCI bridge:
(II) Bus 1: bridge is at (0:5:0), (0,1,1), BCTRL: 0x00 (VGA_EN is
cleared)
(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: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 0: bridge is at (0:0:0), (-1,0,0), BCTRL: 0x00 (VGA_EN is
cleared)
(II) Bus 0 I/O range:
	[0] -1	0x00000000 - 0xffffffff (0x0) IX[B]
(II) Bus 0 non-prefetchable memory range:
	[0] -1	0x80000000 - 0xffffffff (0x80000000) MX[B]
(II) Bus 0 prefetchable memory range:
	[0] -1	0x80000000 - 0xffffffff (0x80000000) MX[B]
(--) PCI:*(0:19:0) ATI Mach64 GR rev 39, Mem @ 0x03000000/24,
0x00426000/12, I/O @ 0x0b00/8, BIOS @ 0x00440000/17
(II) Addressable bus resource ranges are
	[0] -1	0x00000000 - 0xffffffff (0x0) MX[B]
	[1] -1	0x00000000 - 0xffffffff (0x0) IX[B]
(II) OS-reported resource ranges:
	[0] -1	0xffffffff - 0xffffffff (0x1) MX[B]
	[1] -1	0x00000000 - 0x00000000 (0x1) MX[B]
	[2] -1	0x000c0000 - 0x000effff (0x30000) MX[B]
	[3] -1	0xffffffff - 0xffffffff (0x1) IX[B]
	[4] -1	0x00000000 - 0x000000ff (0x100) IX[B]
(II) Active PCI resource ranges:
	[0] -1	0x02000000 - 0x03ffffff (0x2000000) MX[B]E
	[1] -1	0x00422000 - 0x00423fff (0x2000) MX[B]E
	[2] -1	0x00420000 - 0x0043ffff (0x20000) MX[B]E
	[3] -1	0x00400000 - 0x007fffff (0x400000) MX[B]E
	[4] -1	0xf1000000 - 0xf1ffffff (0x1000000) MX[B]E
	[5] -1	0xf0000000 - 0xffffffff (0x10000000) MX[B]E
	[6] -1	0x00424000 - 0x00427fff (0x4000) MX[B]E
	[7] -1	0x00440000 - 0x0045ffff (0x20000) MX[B](B)
	[8] -1	0x00426000 - 0x00426fff (0x1000) MX[B](B)
	[9] -1	0x03000000 - 0x03ffffff (0x1000000) MX[B](B)
	[10] -1	0x00000a20 - 0x00000a3f (0x20) IX[B]E
	[11] -1	0x00000a08 - 0x00000a0f (0x8) IX[B]E
	[12] -1	0x00000a10 - 0x00000a1f (0x10) IX[B]E
	[13] -1	0x00000a18 - 0x00000a1f (0x8) IX[B]E
	[14] -1	0x00000a00 - 0x00000aff (0x100) IX[B]E
	[15] -1	0x00000900 - 0x000009ff (0x100) IX[B]E
	[16] -1	0x00000b00 - 0x00000bff (0x100) IX[B](B)
(II) PCI I/O resource overlap reduced 0x00000a10 from 0x00000a1f to
0x00000a17
(II) PCI I/O resource overlap reduced 0x00000a00 from 0x00000aff to
0x00000a07
(II) PCI Memory resource overlap reduced 0x02000000 from 0x03ffffff to
0x02ffffff
(II) PCI Memory resource overlap reduced 0x00420000 from 0x0043ffff to
0x00421fff
(II) PCI Memory resource overlap reduced 0x00400000 from 0x007fffff to
0x0041ffff
(II) PCI Memory resource overlap reduced 0xf0000000 from 0xffffffff to
0xf0ffffff
(II) PCI Memory resource overlap reduced 0x00424000 from 0x00427fff to
0x00425fff
(II) Active PCI resource ranges after removing overlaps:
	[0] -1	0x02000000 - 0x02ffffff (0x1000000) MX[B]E
	[1] -1	0x00422000 - 0x00423fff (0x2000) MX[B]E
	[2] -1	0x00420000 - 0x00421fff (0x2000) MX[B]E
	[3] -1	0x00400000 - 0x0041ffff (0x20000) MX[B]E
	[4] -1	0xf1000000 - 0xf1ffffff (0x1000000) MX[B]E
	[5] -1	0xf0000000 - 0xf0ffffff (0x1000000) MX[B]E
	[6] -1	0x00424000 - 0x00425fff (0x2000) MX[B]E
	[7] -1	0x00440000 - 0x0045ffff (0x20000) MX[B](B)
	[8] -1	0x00426000 - 0x00426fff (0x1000) MX[B](B)
	[9] -1	0x03000000 - 0x03ffffff (0x1000000) MX[B](B)
	[10] -1	0x00000a20 - 0x00000a3f (0x20) IX[B]E
	[11] -1	0x00000a08 - 0x00000a0f (0x8) IX[B]E
	[12] -1	0x00000a10 - 0x00000a17 (0x8) IX[B]E
	[13] -1	0x00000a18 - 0x00000a1f (0x8) IX[B]E
	[14] -1	0x00000a00 - 0x00000a07 (0x8) IX[B]E
	[15] -1	0x00000900 - 0x000009ff (0x100) IX[B]E
	[16] -1	0x00000b00 - 0x00000bff (0x100) IX[B](B)
(II) OS-reported resource ranges after removing overlaps with PCI:
	[0] -1	0xffffffff - 0xffffffff (0x1) MX[B]
	[1] -1	0x00000000 - 0x00000000 (0x1) MX[B]
	[2] -1	0x000c0000 - 0x000effff (0x30000) MX[B]
	[3] -1	0xffffffff - 0xffffffff (0x1) IX[B]
	[4] -1	0x00000000 - 0x000000ff (0x100) IX[B]
(II) All system resource ranges:
	[0] -1	0xffffffff - 0xffffffff (0x1) MX[B]
	[1] -1	0x00000000 - 0x00000000 (0x1) MX[B]
	[2] -1	0x000c0000 - 0x000effff (0x30000) MX[B]
	[3] -1	0x02000000 - 0x02ffffff (0x1000000) MX[B]E
	[4] -1	0x00422000 - 0x00423fff (0x2000) MX[B]E
	[5] -1	0x00420000 - 0x00421fff (0x2000) MX[B]E
	[6] -1	0x00400000 - 0x0041ffff (0x20000) MX[B]E
	[7] -1	0xf1000000 - 0xf1ffffff (0x1000000) MX[B]E
	[8] -1	0xf0000000 - 0xf0ffffff (0x1000000) MX[B]E
	[9] -1	0x00424000 - 0x00425fff (0x2000) MX[B]E
	[10] -1	0x00440000 - 0x0045ffff (0x20000) MX[B](B)
	[11] -1	0x00426000 - 0x00426fff (0x1000) MX[B](B)
	[12] -1	0x03000000 - 0x03ffffff (0x1000000) MX[B](B)
	[13] -1	0xffffffff - 0xffffffff (0x1) IX[B]
	[14] -1	0x00000000 - 0x000000ff (0x100) IX[B]
	[15] -1	0x00000a20 - 0x00000a3f (0x20) IX[B]E
	[16] -1	0x00000a08 - 0x00000a0f (0x8) IX[B]E
	[17] -1	0x00000a10 - 0x00000a17 (0x8) IX[B]E
	[18] -1	0x00000a18 - 0x00000a1f (0x8) IX[B]E
	[19] -1	0x00000a00 - 0x00000a07 (0x8) IX[B]E
	[20] -1	0x00000900 - 0x000009ff (0x100) IX[B]E
	[21] -1	0x00000b00 - 0x00000bff (0x100) IX[B](B)
(II) ATI: ATI driver (version 6.4.8) for chipsets: ati
(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) wsfb: driver for wsdisplay framebuffer: wsfb
(II) Primary Device is: PCI 00:13:0
(II) ATI:  Candidate "Device" section "Card0".
(II) ATI:  Unshared PCI/AGP Mach64 in slot 0:19:0 detected.
(II) ATI:  Unshared PCI/AGP Mach64 in slot 0:19:0 assigned to active
"Device" section "Card0".
(II) resource ranges after probing:
	[0] 0	0x00426000 - 0x00426fff (0x1000) MX[B]
	[1] 0	0x03000000 - 0x03ffffff (0x1000000) MX[B]
	[2] -1	0xffffffff - 0xffffffff (0x1) MX[B]
	[3] -1	0x00000000 - 0x00000000 (0x1) MX[B]
	[4] -1	0x000c0000 - 0x000effff (0x30000) MX[B]
	[5] -1	0x02000000 - 0x02ffffff (0x1000000) MX[B]E
	[6] -1	0x00422000 - 0x00423fff (0x2000) MX[B]E
	[7] -1	0x00420000 - 0x00421fff (0x2000) MX[B]E
	[8] -1	0x00400000 - 0x0041ffff (0x20000) MX[B]E
	[9] -1	0xf1000000 - 0xf1ffffff (0x1000000) MX[B]E
	[10] -1	0xf0000000 - 0xf0ffffff (0x1000000) MX[B]E
	[11] -1	0x00424000 - 0x00425fff (0x2000) MX[B]E
	[12] -1	0x00440000 - 0x0045ffff (0x20000) MX[B](B)
	[13] -1	0x00426000 - 0x00426fff (0x1000) MX[B](B)
	[14] -1	0x03000000 - 0x03ffffff (0x1000000) MX[B](B)
	[15] 0	0x00000b00 - 0x00000bff (0x100) IX[B]
	[16] -1	0xffffffff - 0xffffffff (0x1) IX[B]
	[17] -1	0x00000000 - 0x000000ff (0x100) IX[B]
	[18] -1	0x00000a20 - 0x00000a3f (0x20) IX[B]E
	[19] -1	0x00000a08 - 0x00000a0f (0x8) IX[B]E
	[20] -1	0x00000a10 - 0x00000a17 (0x8) IX[B]E
	[21] -1	0x00000a18 - 0x00000a1f (0x8) IX[B]E
	[22] -1	0x00000a00 - 0x00000a07 (0x8) IX[B]E
	[23] -1	0x00000900 - 0x000009ff (0x100) IX[B]E
	[24] -1	0x00000b00 - 0x00000bff (0x100) IX[B](B)
(==) ATI(0): Chipset:  "ati".
(**) ATI(0): Depth 24, (--) framebuffer bpp 32
(**) ATI(0): Option "composite_sync" "True"
(--) ATI(0): ATI 3D Rage XL or XC graphics controller detected.
(--) ATI(0): Chip type 4752 "GR", version 7, foundry TSMC, class 0,
revision 0x00.
(--) ATI(0): PCI bus interface detected;  block I/O base is 0x0B00.
(--) 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 888
(==) ATI(0): Default visual is TrueColor
(==) ATI(0): Using gamma correction (1.0, 1.0, 1.0)
(II) ATI(0): Using Mach64 accelerator CRTC.
(II) ATI(0): Storing hardware cursor image at 0x037FFC00.
(II) ATI(0): Using 8 MB linear aperture at 0x03800000.
(!!) 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 0x00426400.
(II) ATI(0): Using Block 1 MMIO aperture at 0x00426000.
(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 157.5/11 (14.318) MHz.
(II) ATI(0): Monitor0: Using hsync range of 30.00-75.00 kHz
(II) ATI(0): Monitor0: Using vrefresh range of 50.00-160.00 Hz
(II) ATI(0): Maximum clock: 111.00 MHz
(II) ATI(0): Not using default mode "1280x960" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "640x480" (hsync out of range)
(II) ATI(0): Not using default mode "1280x1024" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "640x512" (hsync out of range)
(II) ATI(0): Not using default mode "1280x1024" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "640x512" (hsync out of range)
(II) ATI(0): Not using default mode "1600x1200" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "1600x1200" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "800x600" (hsync out of range)
(II) ATI(0): Not using default mode "1600x1200" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "800x600" (hsync out of range)
(II) ATI(0): Not using default mode "1600x1200" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "800x600" (hsync out of range)
(II) ATI(0): Not using default mode "1600x1200" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "800x600" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "1792x1344" (insufficient memory for
mode)
(II) ATI(0): Not using default mode "896x672" (hsync out of range)
(II) ATI(0): Not using default mode "1792x1344" (insufficient memory for
mode)
(II) ATI(0): Not using default mode "896x672" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "1856x1392" (insufficient memory for
mode)
(II) ATI(0): Not using default mode "928x696" (hsync out of range)
(II) ATI(0): Not using default mode "1856x1392" (insufficient memory for
mode)
(II) ATI(0): Not using default mode "928x696" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "1920x1440" (insufficient memory for
mode)
(II) ATI(0): Not using default mode "960x720" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "1920x1440" (insufficient memory for
mode)
(II) ATI(0): Not using default mode "960x720" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "1400x1050" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "1400x1050" (bad mode
clock/interlace/doublescan)
(II) ATI(0): Not using default mode "700x525" (hsync out of range)
(--) ATI(0): Virtual size is 1024x768 (pitch 1024)
(**) ATI(0): Default mode "800x600": 56.3 MHz, 53.7 kHz, 85.1 Hz
(II) ATI(0): Modeline "800x600"   56.30  800 832 896 1048  600 601 604
631 +hsync +vsync
(**) ATI(0): Default mode "1024x768": 94.5 MHz, 68.7 kHz, 85.0 Hz
(II) ATI(0): Modeline "1024x768"   94.50  1024 1072 1168 1376  768 769
772 808 +hsync +vsync
(==) ATI(0): DPI set to (75, 75)
(--) Depth 24 pixmap format is 32 bpp
(II) resource ranges after preInit:
	[0] 0	0x00426000 - 0x00426fff (0x1000) MX[B]
	[1] 0	0x03000000 - 0x03ffffff (0x1000000) MX[B]
	[2] 0	0x00426000 - 0x00426fff (0x1000) MX[B]
	[3] 0	0x03000000 - 0x03ffffff (0x1000000) MX[B]
	[4] -1	0xffffffff - 0xffffffff (0x1) MX[B]
	[5] -1	0x00000000 - 0x00000000 (0x1) MX[B]
	[6] -1	0x000c0000 - 0x000effff (0x30000) MX[B]
	[7] -1	0x02000000 - 0x02ffffff (0x1000000) MX[B]E
	[8] -1	0x00422000 - 0x00423fff (0x2000) MX[B]E
	[9] -1	0x00420000 - 0x00421fff (0x2000) MX[B]E
	[10] -1	0x00400000 - 0x0041ffff (0x20000) MX[B]E
	[11] -1	0xf1000000 - 0xf1ffffff (0x1000000) MX[B]E
	[12] -1	0xf0000000 - 0xf0ffffff (0x1000000) MX[B]E
	[13] -1	0x00424000 - 0x00425fff (0x2000) MX[B]E
	[14] -1	0x00440000 - 0x0045ffff (0x20000) MX[B](B)
	[15] -1	0x00426000 - 0x00426fff (0x1000) MX[B](B)
	[16] -1	0x03000000 - 0x03ffffff (0x1000000) MX[B](B)
	[17] 0	0x00000b00 - 0x00000bff (0x100) IX[B]
	[18] 0	0x00000b00 - 0x00000bff (0x100) IX[B]
	[19] -1	0xffffffff - 0xffffffff (0x1) IX[B]
	[20] -1	0x00000000 - 0x000000ff (0x100) IX[B]
	[21] -1	0x00000a20 - 0x00000a3f (0x20) IX[B]E
	[22] -1	0x00000a08 - 0x00000a0f (0x8) IX[B]E
	[23] -1	0x00000a10 - 0x00000a17 (0x8) IX[B]E
	[24] -1	0x00000a18 - 0x00000a1f (0x8) IX[B]E
	[25] -1	0x00000a00 - 0x00000a07 (0x8) IX[B]E
	[26] -1	0x00000900 - 0x000009ff (0x100) IX[B]E
	[27] -1	0x00000b00 - 0x00000bff (0x100) IX[B](B)
(II) ATI(0): Largest offscreen areas (with overlaps):
(II) ATI(0): 	1024 x 1279 rectangle at 0,768
(II) ATI(0): 	768 x 1280 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
		10 256x256 slots
(==) ATI(0): Backing store disabled
(==) ATI(0): Silken mouse enabled
(**) Option "Protocol" "wsmouse"
(**) Mouse1: Protocol: wsmouse
(**) Option "CorePointer"
(**) Mouse1: Core Pointer
(**) Option "Device" "/dev/wsmouse0"
(==) Mouse1: Buttons: 3
(II) Keyboard "Keyboard1" handled by legacy driver
(II) XINPUT: Adding extended input device "Mouse1" (type: MOUSE)
(WW) fcntl(7, F_SETOWN): Operation not permitted
</output>

Thanks!

-- 
<< Tobias DiPasquale >>
UNIX Software Engineer
http://cbcg.net/