Tag Archive for 'jockey'

Recovering from 3rd party drivers, with Jockey

What happens if you enable a 3rd party driver (like ATI) with Jockey, but after a reboot your graphics is broken and you can’t log in to revert?

Answer: Use the command line version of Jockey!

Here’s how you can revert any installed 3rd party driver using Jockey from the command line:

  • At log in (perhaps with a broken X screen), switch to another terminal using the key combination:
  • Ctrl + Alt + F2

  • Log in as root
  • Get a list of enabled drivers from Jockey:
  • jockey --list

  • Disable the driver (such as the ATI driver):
  • jockey --disable=kmod:fglrx

  • Once it has finished, reboot!

When using Jockey, you should ensure that you have the latest updates applied, in particular the latest running kernel. This is because you might otherwise get a driver for a newer kernel, which might break your system upon reboot, or fail to activate.

You can also try using akmods with Jockey, which will build a new driver for you on reboot, if one does not exist for your running kernel (no matter what that is!).

-c

Using akmods with Jockey in Fedora

By default, 3rd party drivers (such as NVIDIA and ATI) are pre-compiled against a specific kernel version and delivered in a kmod package. However when there’s a kernel update, it might block because there is no updated driver package yet available. This can also break a system if you update the kernel and reboot.

Wouldn’t it be great if the system could automatically build a new driver if required? Yes, and this is where akmods come into play.

With akmods, when your system boots it will check to see if a registered driver needs to be built. If you have an updated kernel, then akmods will build a fresh driver for that kernel and install it – no need to wait for a kmod to be updated upstream. This avoids the broken system scenario above.

While akmods are nothing new, you can now use them with Jockey under Fedora 16 (rather than just kmod packages). Simply download the RPMS from a Kororaa mirror and install (or you could build your own from SRPM).

You will need:

  • jockey
  • jockey-selinux
  • jockey-modaliases
  • jockey-gtk or jockey-kde

Post install, edit the /etc/jockey.conf and set “akmods=true”. Then, you can run Jockey and install the driver you want.

Jockey driver manager

You will also need build tools like gcc, make and kernel-headers (and of course, akmods), however these should be pulled in as dependencies of the akmod package.

This is still an experimental feature and any feedback is welcome!

Jockey device manager port for Fedora (using Yum)

One of the things I wanted to do for Kororaa was make Ubuntu’s Jockey device manager work. This would replace my current dodgy script and provide a mechanism for extending support for other devices over time (if needed). I’ve put my code on github if you want to check it out.

It wasn’t meant to be a joke, but on the 1st April this year I contacted Martin Pitt (the Jockey project lead) to pitch the idea. He helpfully replied saying that they’d written Jockey to be pretty vendor agnostic and that he had already discussed the idea of porting it to Fedora with Jon Masters. Indeed, he had did have the test suite working on Fedora 12 already (using PackageKit).

So I started out trying to understand the code and seeing what was possible. The core of the work is in oslib.py which implements the package management side of things (the default code uses PackageKit). Ubuntu has their own apt implementation, so I wanted to make a native Yum implementation.

There is some detection code (which shouldn’t need to be touched) and then there are the handlers for each device you want to manage (nvidia, etc).

A few weekends ago, Jason Nielsen and I got together to work on the code. In a few hours we had ported oslib.py to Yum, so I think the majority of the work there is done (thanks for your help, Jason!). It’s a much cleaner implementation than running PackageKit and parsing the results, because Yum is written in Python :-)

That’s where it’s at now. Next I need to create some handlers and then begin some testing. I’m holding off on the next Kororaa release, because I want to get this working before I ship it. Longer-term this naturally won’t go into Fedora, but perhaps into RPMFusion.

Parsidora (another Fedora Remix) has also been working on Jockey, but using the PackageKit implementation (I’ve sent them a message to see if they are interested in the native Yum version). You can try their existing implementation for Fedora 15 if you’re interested.

Hopefully I’ll have everything ready for Kororaa in the next few weeks, before Fedora 16 comes out! :-)