Tuesday, March 5, 2013

Fedora 18 + gnome-shell + Freedreno

After fixing a handful of bugs, and adding support (still in a slightly hacky way) for some desktop GL (1.4) features (namely, GL_QUADS), I've got gnome-shell working with freedreno:


Full video here

I've also made a sort of fedora F18 installer for the touchpad, for anyone out there who wants to give it a spin:


Note that gnome-shell itself is not installed by default in the arm fedora builds.. so, 'sudo yum install gnome-shell'

14 comments:

  1. Will this overwrite everything on there already or will it add another boot option (I currently have WebOS and Android on there)

    ReplyDelete
    Replies
    1. It won't overwrite webos.. I haven't tried with android, but I assume it shouldn't. Fwiw, the partitioning scripts were originally based on the scripts for partitioning/installing ubuntu. The basic partitioning scheme is inherited from that.

      Delete
  2. First of all - great work!
    But Xorg isn't starting for me;
    (EE) Failed to load /usr/lib/xorg/modules/drivers/freedreno_drv.so: libdrm_freedreno.so.1: cannot open shared object file: No such file or directory

    What did I miss?

    ReplyDelete
    Replies
    1. oh, hmm.. looks like forgot libdrm in the fedora installer. I've pushed an update now.

      Delete
    2. I was having the same problem as Dylan. I went and grabbed your newest push, and now I get;

      (EE) module ABI minor version (1) is newer than the server's version (0)

      Is one a different version than the other?

      Delete
    3. hmm, ok, I probably upgraded xorg-x11-server-Xorg between installing initial rootfs and building xf86-video-freedreno. A 'sudo yum upgrade' should do the trick. Although I guess I need to figure out how to generate a newer rootfs to start with so the install procedure is a bit smoother.

      Delete
    4. yum update did it, now it boots to the GUI. Thanks for the help, and much thanks for all your hard work on this!

      Delete
  3. in your create partition script you have this line:

    "Does this seem correct? If so, type 1, if not, type 0"

    The actual code looks for a "y" not a "1".

    When you have a new image will just running the other two steps install the new image over the old one?

    Finally, a script to remove Fedora would be good for completeness (especially if it covers cases where things have gone wrong. As a n00b I know I should stay away from this sort of stuff, but that doesn't mean I will...)

    ReplyDelete
    Replies
    1. oh, good catch.. I'll fix the partition script to ask for 'y' or 'n'..

      For new image, I guess I need some sort of 'upgrade' script. If you run the last two steps, it will work but maybe overwrite some of your previous filesystem. You could do it semi-manually and just extract the updated tar files in the rootfs directory from the root of your touchpad/fedora filesys. I'm working on getting the freedreno stuff upstream and included in arm builds for future fedora versions, so that eventually upgrading will be just a matter of 'sudo yum upgrade' :-)

      I guess an uninstall script would be nice. I'm not really even sure what the uninstall procedure should be. I guess just deleting the partition should do the trick to let you install ubuntu instead. I haven't looked at how the android installers for touchpad work.

      Delete
  4. Thanks for your work on this.

    How much of the above is in the Fedora 19 Beta?

    I cant see the freedreno driver in Koji, so I assume there will need to be soem work to get it all working with Fedora 19?

    (the beta images are also in a different format - "raw" rather than a zip of the rootfs)

    http://lists.fedoraproject.org/pipermail/arm/2013-May/006053.html

    ReplyDelete
    Replies
    1. I'm not entirely sure.. libdrm_freedreno should be in rawhide, and we should have a new enough mesa, although I didn't check if package is updated to enable freedreno driver. And I'm not sure offhand if those were before or after the branch point for f19. Possibly a rpm still needs to be created for xf86-video-freedreno.

      And even after that, for gnome-shell in particular, there is a hack patch needed to translate GL_QUADS into GL_TRIANGLES. Which isn't upstream yet (or in fedora package) because it is a dirty hack and I haven't gotten around to figuring out a clean way to handle that. But without that other stuff which does not use GL_QUADS will still work.

      I'm working towards getting everything upstream and into fedora, although it will still take some time. Things are moving fast enough right now, since it is still pretty early days for freedreno, that you probably want to be building stuff from git.

      Delete
  5. I am trying to follow the instructions on Fedora 20 (so after installing I can try to fedup to fedora 20 on the touchpad...) but network manager has changed sufficiently to be causing problems. I cannot figure out how to share the connection

    ReplyDelete
    Replies
    1. you might need:

      https://github.com/freedreno/freedreno/wiki/Ifc6410#making-networkmanager-behave

      (I needed that on ifc6410, but sounds like perhaps the same thing is happening on touchpad?)

      Delete