Yesterday was a big day for embedded Linux and Open-Source. While I was reading what’s new via RSS feeds, I came across a slashdot article: “Raspberry Pi goes Open-Source”. As I have mentioned before, some of the Linux running on Raspberry Pi is closed source/proprietary. One of the big gripes in the open-source community is the secrecy about video hardware. Understandably, video chip manufactures want to protect their IP (Intellectual Property)—to the point of not describing what the registers in the chip do. Really, how much of it is novel? True, one could reverse engineer the GPU easier with this information. Consequently, most of the FOSS graphics drivers are reversed engineered anyway and considering that a new graphics core is released every year, is this really necessary? Okay, I’m sure you get my opinion at this point.
In short, Raspberry Pi has worked with Broadcom to Open Source ARM userland, which is a huge step because it is the first vendor to open their mobile GPU. Hopefully, other vendors will follow. Get the source for the VideoCore via GIT. Do you see anything novel in the source? If you believe in open-source, thank Broadcom for this contribution.
I decided to finally update my computer to Fedora 17 (Beefy Miracle) this past weekend. Overall, the upgrade went smoothly considering there is a bunch of lint on my system because I’ve been upgrading it since FC8. I did run into some graphics issues…
Since I play games and graphics chips are black-boxes, I use the ATI/AMD binary blob: Catalyst aka fglrx. Using the binary blob is going to be a problem when I start using Qt 5 because it depends on XCB instead of XLIB. As I’ve mentioned before, Fedora is a pure Linux distribution. Therefore, you’ll have to use methods outside of Fedora to install proprietary drivers. The “recommended method” is to use the RPM Fusion drivers. The RPM Fusion drivers did not work for me under Fedora 16. Consequently, using the installer from AMD did work with Fedora 16.
I’m pleased to say the RPM Fusion drivers for Fedora 17 did work but not completely. Modern day graphics cards have hardware that assist in decoding video, which is another reason I use the proprietary drivers. When AMD’s XvBA is not in use, the CPU load ranges from 30-50% but I digress. After installing the RPM Fusion catalyst drivers, I immediately built the XvBA rpm and installed it. Unfortunately, when I started VLC the video acceleration didn’t work. Since I firmly believe in the open-source way, I filed a bug. A possible fix: make libGL part of the alternates like java is. Consequently, I’ll be using the proprietary driver until the bug is resolved or the open-source community receives the secret sauce from AMD.
# 1. Download the catalyst driver from AMD (aka fglrx)
# 2. Decompress/unzip the download
# 3. Install AMD's version of fglrx. NOTE: RPM-Fusion driver does not work.
# 4. Restart
# 5. Make sure the catalyst/fglrx driver is working
# 6. Download XvBa Source RPM
# 7. Build RPM
rpmbuild --rebuild libva-xvba-driver-0.8.0-4.fc17.src.rpm
# 8. Install the built RPM
yum install ~/rpmbuild/RPM/`uname -m`/libva-xvba-driver-0.8.0-4.fc17.x86_64.rpm
Please feel free to comment if you have any issues.
Fedora 18, fglrx and XvBA