# after installing ati video driver, startx causes system reboot



## tuclogicguy (Jun 15, 2013)

I recently installed 9.1-RELEASE. The installation seemed to go smoothly and it boots up and runs fine in console mode.

The next step was to get X working. Installed x11/xorg-minimal from ports. I also installed xterm, xclock, and twm, the basic apps referenced by the default xinitrc.

I typed `startx` and X started right up. I got the various windows, the keyboard and mouse worked etc.

My video card is an older ATI Radeon 7000 series. I looked at /var/log/Xorg.0.log and noticed that it was using the VESA driver. There were also messages that it tried to load the ATI driver, but it was not found. Apparently, the generic VESA driver was the only one installed by xorg-minimal. So, I went to /usr/ports/x11-drivers/xf86-video-ati and installed the ATI driver.

Now when I type `startx`, the screen goes blank, there is a pause of a few seconds and then the system reboots. I tried looking at /var/log/Xorg.0.log again for error messages, but no such log file was created. (After experimenting with this some more, I think that probably one was in the process of getting created but it gets lost with the system crash and reboot.)

From the root account, I tried `Xorg -configure`. I got some messages about detecting video drivers: radeon, ati and vesa. Then I entered `Xorg -config xorg.conf.new -retro`. There was a long pause, nothing appeared on the screen, and the system rebooted.

Any suggestions?


----------



## tuclogicguy (Jun 16, 2013)

It appears that xf86-video-ati is the 6.14 version of the ATI driver and that xf86-video-ati613 is the previous 6.13 version.  I tried uninstalling the 6.14 version and installed xf86-video-ati613.  Tried `startx` again.  Same thing.  The screen goes blank, a fairly long pause, and the system reboots.

Any suggestions?


----------



## zeissoctopus (Jun 16, 2013)

tuclogicguy said:
			
		

> It appears that xf86-video-ati is the 6.14 version of the ATI driver and that xf86-video-ati613 is the previous 6.13 version.  I tried uninstalling the 6.14 version and installed xf86-video-ati613.  Tried `startx` again.  Same thing.  The screen goes blank, a fairly long pause, and the system reboots.
> 
> Any suggestions?



My suggestion for you is waiting for the FreeBSD ATI TTM KMS Project to complete. Your video card is not supported by the xf86-video-ati driver without the kernel TTM function.


----------



## tuclogicguy (Jun 17, 2013)

I suspected that it was some kind of kernel problem, because of the reboots.  It looks like I need to continue using the VESA driver until that kernel fix is complete.  Thanks for the info.


----------



## adamk (Jun 17, 2013)

zeissoctopus said:
			
		

> My suggestion for you is waiting for the FreeBSD ATI TTM KMS Project to complete. Your video card is not supported by the xf86-video-ati driver without the kernel TTM function.



I'm not completely sure that's the case...  He referred to the card as an older ATI Radeon 7000 series card, not an AMD Radeon HD7000 series card.  If it's really one of the much older non-HD 7000 cards, then KMS is certainly not needed. In fact, I don't think KMS will get him anything.

@tuclogicguy, are you comfortable trying to get a kernel crash dump?  And can you show us the output of `pciconf -l | grep vga`?

Adam


----------



## kpa (Jun 17, 2013)

The non-KMS X server has direct access to system memory because the kernel does not provide the necessary abstractions for it to access the hardware. It just may be that the crash you're seeing is a bug in the Radeon driver of X.Org and not a problem with the kernel. Of course the end result is the same when critical memory areas get corrupted.


----------



## tuclogicguy (Jun 22, 2013)

adamk said:
			
		

> I'm not completely sure that's the case...  He referred to the card as an older ATI Radeon 7000 series card, not an AMD Radeon HD7000 series card.  If it's really one of the much older non-HD 7000 cards, then KMS is certainly not needed. In fact, I don't think KMS will get him anything.
> 
> @tuclogicguy, are you comfortable trying to get a kernel crash dump?  And can you show us the output of `pciconf -l | grep vga`?
> 
> Adam



Yes, this really is an old ATI Radeon 7000, not an ATI Radeon HD7000. Here is the output you requested:

```
pciconf -l | grep vga
vgapci0@pci0:2:0:0:     class=0x030000 card=0x0f021787 chip=0x51591002 rev=0x00 hdr=0x00
```
I don't know how to get a kernel crash dump.

Thanks for you help thus far.


----------



## tuclogicguy (Jun 23, 2013)

OK, I did some research and figured out how to obtain a crash dump.  I tried `startx` again and the system rebooted as before.  Near the end of the reboot I saw messages about savecore being executed.  These files were created in /var/crash:

```
root@TESTPC:/var/crash # ls -l
total 68460
-rw-r--r--  1 root  wheel         2 Jun 23 05:07 bounds
-rw-------  1 root  wheel     97507 Jun 23 05:07 core.txt.0
-rw-------  1 root  wheel       444 Jun 23 05:07 info.0
-rw-r--r--  1 root  wheel         5 Dec  4  2012 minfree
-rw-------  1 root  wheel  90669056 Jun 23 05:07 vmcore.0
```

Now what should I do?


----------



## tuclogicguy (Jul 9, 2013)

I tried booting a GhostBSD live CD on this machine and it hangs during what appears to be starting X.  Similar symptoms to what I experience from my FreeBSD hard disk installation: a blank screen with just a small dim square in the upper-left corner of the screen; except it doesn't reboot, just hangs.

I tried booting a few Linux live CDs on this machine: Knoppix (an older version), antiX (fairly new), and Fedora 10.  They all booted up OK.  I looked at /var/log/Xorg.0.log in each case and saw that it was using the RADEON driver.

The fact the GhostBSD fails in basically the same way as my hard disk installation seems to indicate that my installation is OK, but that there is some incompatibility between the Xorg Radeon video driver, the FreeBSD kernel, and this particular ATI video card.


----------



## fonz (Jul 9, 2013)

tuclogicguy said:
			
		

> OK, I did some research and figured out how to obtain a crash dump.
> [snip]
> Now what should I do?


How can I make the most of the data I see when my kernel panics?


----------



## tuclogicguy (Jul 16, 2013)

Thanks for the pointer, fonz.

Maybe I should point out that this is an Intel Pentium III processor on an Intel D815EEA2 motherboard.

The kernel is this:

```
# uname -a
FreeBSD TESTPC 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243826: Tue Dec  4 06:55:39 UTC 2012     root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
```

Here is the first part of /var/crash/core.txt.0:

```
Unread portion of the kernel message buffer:
drm0: <ATI Radeon QY RV100 7000/VE> on vgapci0
device_attach: drm0 attach returned 2


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address	= 0x248
fault code		= supervisor read, page not present
instruction pointer	= 0x20:0xc0aae63d
stack pointer	        = 0x28:0xd6e69950
frame pointer	        = 0x28:0xd6e69978
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 3
current process		= 1429 (Xorg)
trap number		= 12
panic: page fault
cpuid = 0
KDB: stack backtrace:
#0 0xc0af3aff at kdb_backtrace+0x4f
#1 0xc0ac052f at panic+0x16f
#2 0xc0e25013 at trap_fatal+0x323
#3 0xc0e2511b at trap_pfault+0xfb
#4 0xc0e2608a at trap+0x44a
#5 0xc0e0f66c at calltrap+0x6
#6 0xc0aaeacc at _mtx_lock_flags+0x4c
#7 0xc6683d88 at drm_open_helper+0x98
#8 0xc6682c53 at drm_open+0x43
#9 0xc09a4718 at devfs_open+0x128
#10 0xc0e46342 at VOP_OPEN_APV+0x42
#11 0xc0b648a1 at vn_open_cred+0x541
#12 0xc0b64a0b at vn_open+0x3b
#13 0xc0b61f3c at kern_openat+0x1ec
#14 0xc0b62365 at kern_open+0x35
#15 0xc0b623a0 at sys_open+0x30
#16 0xc0e2579a at syscall+0x34a
#17 0xc0e0f6d1 at Xint0x80_syscall+0x21
Uptime: 56s
Physical memory: 495 MB
```

And, here is the output from

```
# nm -n /boot/kernel/kernel | grep c0aae
c0aae070 t mtx_pool_setup_static
c0aae0a0 T mtx_pool_destroy
c0aae0f0 T mtx_pool_create
c0aae170 t mtx_pool_setup_dynamic
c0aae1a0 t assert_mtx
c0aae1b0 t unlock_spin
c0aae1d0 t lock_spin
c0aae1f0 T mtx_init
c0aae280 T mtx_sysinit
c0aae2b0 T _mtx_unlock_sleep
c0aae340 t _mtx_lock_spin_failed
c0aae390 T _mtx_lock_spin
c0aae510 T _mtx_lock_sleep
c0aae720 t lock_mtx
c0aae770 T mtx_destroy
c0aae7e0 T _mtx_unlock_spin_flags
c0aae820 T mutex_init
c0aae930 T _mtx_trylock
c0aae9a0 T _mtx_lock_spin_flags
c0aaea20 T _mtx_unlock_flags
c0aaea80 T _mtx_lock_flags
c0aaeae0 t unlock_mtx
c0aaeb30 T thread_lock_set
c0aaeb60 T thread_lock_unblock
c0aaeb70 T thread_lock_block
c0aaebb0 T _thread_lock_flags
c0aaeda0 t ntp_is_time_error
c0aaedf0 T ntp_update_second
```

Does that help to pin down where the problem is? Do I need to supply some more information?


----------



## tuclogicguy (Jul 22, 2013)

I wonder if I would have better luck with the 8.4-RELEASE?


----------



## tuclogicguy (Jul 24, 2013)

tuclogicguy said:
			
		

> I wonder if I would have better luck with the 8.4-RELEASE?



Well, I guess I just answered my own question.  I installed the 8.4-RELEASE in a separate partition, then installed xorg-minimal, xterm, xclock, twm, the ATI video driver, added lines to /etc/rc.conf to enable hald and dbus, etc. I reboot and type `startx`. There is a pause of a few seconds, then the system reboots.  Sigh...

Any suggestions?


----------

