August 30, 2008

The trials of installing a video card under linux

For a long time I have been running my home linux machine (Fedora 8) on the built-in video chipset, an Intel GMA3100 that is on the Gigabyte GA-G33M-S2H. It actually has an HDMI connection, which is interesting, but the video capabilities of the part just aren't that great. I guess the performance is OK, but it has trouble with HDTV content. I don't think that the processor is the bottleneck, since even SD content takes up a good amount of CPU when played fullscreen. Following the information at Mian Hasan Khalil's blog on HDTV playback on linux using mplayer, but the GMA3100 just wasn't cutting it.

Click to read more about linux-specific video card rants and complaints.    

I finally decided that I would try to get a cheap video card and see what an accelerated card could do in the system. Ever since ATI/AMD opened up the specs for their cards, the open source support has been getting better, and I like the idea of supporting them by buying one of their cards. Unfortunately, I had an ATI card in the past (on a work machine) and had a lot of trouble setting it up. From what I read on the webs, Nvidia cards are slightly easier to set up and play nicely with compiz.

I did some research and decided to go with a 6200 model. I found a fanless 6200GS with 256 MB of ram at the Shinagawa Labi store very close to where I live, and brought it home to test it out. The card worked fine under VESA, although I was not able to get it to use the full resolution of my panel (1920x1200). Even then, it was much slower than the built-in GPU at normal windows operations. After futzing around and installing the Nvidia driver (downloading and compiling some stuff) things seemed much faster on reboot. There were some strange graphical glitches though, and I didn't get a good feeling about stability. The card wasn't even really usable because different portions of the screen were showing up in different places, horizontal banding and other strange phenomena were happening. The card was a flat-out no-go.

I went back to the store the next day for a refund, to return it and try another card. Actually, when I went to the store, they said they were not supposed to take returns because of hardware incompatibility, so I complained for a bit and got my money back. I decided to try a large store that I have used for a lot of past purchases in the hopes that they would be easier to work with for choosing linux compatible hardware. I have bought a lot of equipment from the large Yodobashi Camera in Akihabara, so I decided to try there next.

They have a large selection of graphic cards, split fairly evenly between NVIDIA and ATI/AMD. Since I had a supposedly compatible NVidia card fail on me before, I wanted to try an AMD card since they have opened up their specs to linux developers. Since I have a bunch of Yodobashi camera credit, I thought I would go for a big card just for fun. I did appropriate research and chose a HD4750 card, which is fairly new, but has linux support in both the proprietary and open source drivers.

The card was big, has a fan, and takes two power supply cables to feed it. It looked like everything would be fine: I had two cables, the card just fit, and it looked like things would be golden. Unfortunately, I didn't have good luck with the card. It would run ok if I used the software VESA drivers, but hardware acceleration was a no-go. I tried the drivers straight from AMD, but it wouldn't work. I hate to admit it, but I don't even remember if there were graphical glitches, or if the machine would just freeze after a few minutes. It did freeze for sure though, and I even tested running VESA drivers with the card. It would freeze overnight. Perhaps my power supply (I am posting this about two weeks after the fact since I have been busy - in light of recent problems with the power supply, I bet this was in fact the problem) is not enough for the card - by the numbers it should be, but it is just at the lower end, so who knows.

Anyway, Yodobashi also has the policy that they will not return hardware due to system incompatibilities, which kind of sucks really, because my system by all accounts should have been fine with either of the first two cards. But it wasn't. Running linux certainly doesn't help. I decided to try an older AMD card and see if that would work. I just went ahead and bought a $50 HD2400pro fanless card without trying to return the old one (since I got both cards on the "points" I already had, I didn't mind too much if they didn't work since I could always potentially use the cards in a windows gaming PC or something - not that I ever think I will get around to building one or convincing L. to go with the idea, but)...

The hd2400pro actually works great. I'm using the fglrx driver without any problems. Unfortunately Desktop Effects and video don't play well together on AMD cards, but I don't care about Desktop Effects so disabling it isn't a big deal. I never ran it before either. Video plays great now. I used to see maybe 30-40% CPU load just shooting video around the bus, but now with the card I can play 720p content at maybe 20% CPU load instead of 80-90% load. When I played Buck Bunny (my only 1080p source) it didn't stutter like it did before, so I was very happy with that.

I was able to convince Yodobashi to take back the non-working 4750 card, although they tested it and said it works fine. I have two main pull-away points from this whole experience:

- Video card shopping is hard. Much harder than it should be. And doing it for linux is a nightmare. I still don't really understand what I need to do to get good use of my card for video decoding and whatnot. See Shamus Young's take on the subject for a funny look at the process.

- I need to find a shop that is friendly to linux customers and will take returns for hardware / distro incompatibilities. Really a linux-friendly store would have made this whole process easier.

I do enjoy fooling around with this kind of thing though, and I am glad that I have a dedicated GPU now - or at least one more powerful than the built-in GMA3100, which wasn't quite good enough for normal 2d HD video viewing (but it almost was. I think the new Intel GPUs will be fine, and really like their commitment to open source drivers which makes things a lot easier overall.)

Man though, this whole thing was a lot harder than it needed to be.

Also, even with the new card, I still don't think I have it set up optimally: I can't seem to run OpenGL apps (Google Earth, the GL output plugin for various video players, SDLMAME) on the card (video is distorted and not viewable.) I'm sure there is something that can be done to make it work, but since it plays normal 2d videos well, I just don't have the time to mess with it.


Provide your email address when commenting and Gravatar will provide general portable avatars, and if you haven't signed up with them, a cute procedural avatar with their implementation of Shamus Young's Wavatars.

Comments have now been turned off for this post