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.