The Bent Zone, AKA Sun Tzu Tech
Weblog
Archives
« October 2009
SunMonTueWedThuFriSat
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
       
Today
XML
Search

Links
Referrers

Today's Page Hits: 18

« Back to the blogosph... | Main | Compiling pciutils... »
20080323 Sunday March 23, 2008
Compiling radeonhd from git on bog stock SXCE

One of the things I get used to on my systems is the tool chain I get in my system, once I have it setup the way I like. However, I get frustrated when someone says "oh, go download it, run configure, you're done". Tried that this weekend with the radeonhd driver on a new Solaris Express install, and it's not quite that simple. I got a Visiontek x1550 PCI recently since it's supposedly one of the fastest 32-bit PCI video cards, however Solaris Express B85 didn't recognize it. It appears to have a PCI-PCI_Express bridge in it and that just flat confused Solaris, reporting that all my onboard peripherals were now PCI-Express (USB, Via Rhine Ethernet, Floppy, IDE, Audio) on my Soyo Dragon Plus V1.0. I finally got the machine booting by putting back in an AGP card, and set to work at getting the driver working. I interpreted what I read on the Opensolaris.org xwindows-discuss list that it should be a straightforward compile. IFF, you've got GIT and some other things setup, and I've got a bog-stock install.

The first pain is getting the code out of the radeonhd GIT. I haven't seen a Blastwave download for GIT, and have since got the hang of spec-files-extra , so I fired up my ubuntu 7.10 QEMU image, which I was using to download the Wine git, and pulled down the latest radeonhd source. I won't go into what happened next. Needless to say, lots of gnashing of teeth and FLW's(tm), and even when I got the driver compiled, it just spit out something that it wasn't recognized. It probably didn't help that Solaris reported all my onboard peripherals into PCI-Express devices (with nary a PCI-E bus on this AGP/PCI system) once the Visiontek PCI x1550 goes in the system, or that I have to have an AGP board in the system just to get it to boot. And for some reason, Solaris also doesn't see the second video port. So I thought it wasn't working. Eventually, after some debugging I figured out my DVI port wasn't recognized, and I got a xorg.conf file that eventually got me dual screens with my Nvidia FX5700.

I think I've got the punch list to make this work starting from a fresh Solaris Express install.

1) get xorg utils-macros-1.1.6, configure and install. It ends up in /usr/local/share/aclocal if you don't give ./configure a --prefix={someplace}.

2) get xorg-server.m4 from freedesktop.org and install it in /usr/local/share/aclocal or whereever you set --prefix={someplace}

3) download the radeonhd GIT or a V1.2.0 April 12th, 2008 tarball.bz2 from here and unroll it someplace.
If you have a git client, then it's a simple
git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-radeonhd

4)Download and build pciutils as listed in that blog entry.

5) setup environment variables to help autogen.sh (since the radeonhd code from the git HEAD doesn't have configure or friends built, though the released xf86-vidoe-radeonhd-1.1.0.tar.bz2 does.

For sh/ksh/bash

  ACLOCAL="/usr/bin/aclocal-1.10 -I/usr/local/share/aclocal"
  AUTOMAKE="/usr/bin/automake-1.10"
  PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}"
  export ACLOCAL AUTOMAKE PKG_CONFIG_PATH

For csh/tcsh 

  setenv ACLOCAL "/usr/bin/aclocal-1.10 -I/usr/local/share/aclocal"
  setenv AUTOMAKE "/usr/bin/automake-1.10"
  setenv PKG_CONFIG_PATH "/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}"

Initially, I just symlinked aclocal-1.10 to aclocal and did the same for automake, but decided for the purposes of blogging, that I should do it the Right Way(tm), so I found out what I should be doing.

5) Generate the radeonhd source build toolchain (configure, ltmain.sh, etc) and build

  ./autogen.sh  (default install is to /usr/local/lib/xorg/modules/drivers)

  ./configure

  make

6) Install the driver and get Solaris to use it

  make install 
  cd /usr/X11/lib/xorg/modules/drivers
  mv radeon_drv.so radeon_drv.so.ORIG
  ln -s /usr/local/lib/xorg/modules/drivers/radeon_drv.so .

This will allow you to switch back to the original driver should something go badly.

7) do some testing. According to the release notes for Solaris, by default radeonhd is not used so you have to create a xorg.conf file for it.
   /usr/X11/bin/Xorg -configure

   edit ~/xorg.conf.new and make sure variables are right, and push up to 
   /etc/X11/xorg.conf
Once you've got the driver installed, it's probably best to disable cde-login or gdm-login through smf and remotely login via ssh to start the driver.
   svcadm disable cde-login

   /usr/X11/bin/Xorg -logverbose 7

   svcadm enable cde-login
This generates a bucket of debug in /var/log/Xorg.0.log, and is one of the reasons that I figured out that my driver was actually working, though one of my ports just isn't discovered... The good news is that it's working, at least on the VGA port.

Mar 23 2008, 01:14:40 PM EDT Permalink

Comments:

Post a Comment:

Comments are closed for this entry.