Tag Archives: blender

Multiseat systems and the NVIDIA binary driver

Building mesa

Building mesa

Ever since our school switched to Fedora on the desktop, I’ve either used the onboard Intel graphics or AMD Radeon cards, since both are supported out of the box in Fedora. With our multiseat systems, we now need three external video cards on top of the onboard graphics on each system, so we’ve bought a large number of Radeon cards over the last few years.

Unfortunately, our local supplier has greatly reduced the number of AMD cards that they stock. In their latest price lists, they have a grand total of two Radeon cards in our price range, and one of them is almost seven years old!

This has led me to take a second look at NVIDIA cards, and I’m slowly coming back around to the concept of buying them and maybe even using their binary drivers. Our needs have changed since we first started using Linux, and NVIDIA’s binary driver does offer some unique benefits.

As we’ve started teaching 3D modeling using Blender, render time has become a real bottleneck for some of our students. We allow students to use the computers before and after school, but some of them don’t have much flexibility in their transportation and need to get their rendering done during the school breaks. Having two or three students all trying to render at the same time on a single multiseat system can lead to a sluggish system and very slow rendering. The easiest way to fix this is to do the rendering in the GPU, which Blender does support, but only using NVIDIA’s binary driver.

So about a month ago, I ordered a cheap NVIDIA card for testing purposes. I swapped it with an AMD card on one of our multiseat systems and powered it up. Fedora recognized the card using the open-source nouveau driver and everything just worked. Beautiful!

Then, a few hours later, I noticed the system had frozen. I rebooted it, and, after a few hours, it had frozen again. I moved the NVIDIA card into a different system, and, after a few hours, it froze while the original system just kept running.

Some research showed that the nouveau driver sometimes has issues with multiple video cards on the same system. There was some talk about extracting the binary driver’s firmware and using it in nouveau, but I decided to see if I could get the binary driver working without breaking our other Intel and AMD seats.

The first thing I did was upgrade the test system to Fedora 25 in hopes of taking advantage of the work done to make mesa and the NVIDIA binary driver coexist. I then installed the binary NVIDIA drivers from this repository (mainly because his version of blender already has the CUDA kernels compiled in). The NVIDIA seat came up just fine, but I quickly found that mesa in Fedora 25 isn’t built with libglvnd (a shim between either the mesa or NVIDIA OpenGL implementation, depending on which card you’re using and your applications) enabled, so all of the seats based on open drivers didn’t come up. But, even when it was enabled, I ran into this bug, so I ended up extending this patch so it would also work with Gallium drivers and applying it.

This took me several steps closer, but apparently the X11 GLX module is not part of libglvnd and NVIDIA sets the Files section in xorg.conf to use it’s own GLX module (which, oddly enough, doesn’t work with the open drivers). I finally worked around this via the ugly hack of creating two different xorg.conf.d directories and telling lightdm to use the NVIDIA one when loading the NVIDIA seat.

Voilà! We now have a multiseat system with one Intel built-in card using the mesa driver, two AMD cards using the mesa Gallium driver, and one NVIDIA card using the NVIDIA binary driver. And it only cost me eight hours and my sanity.

So what needs to happen to make this Just Work™? Either libglvnd needs to also include the X11 GLX module or we need a different shim to accomplish the same thing. And Fedora needs to build mesa with libglvnd enabled (but not until this bug is fixed!)

My mesa build is here and the source rpm is here. There is a manual “Provides: libGL.so.1()(64bit)” in there that isn’t technically correct, but I really didn’t want to recompile negativo17’s libglvnd to add it in and my mesa build requires that libglvnd implementation.

My xorg configs are here and my lightdm configuration is here. Please note that the xorg configs have my specific PCI paths; yours may differ.

And I do plan to write a script to automate the xorg and lightdm configs. I’ll update this post when I’ve done so.

Sidenote: As I was looking through my old posts to see if I had anything on NVIDIA, I came across a comment by Seth Vidal. He was an excellent example of what the Fedora community is all about, and I really miss him.

Update: Configuration has become much simpler. An updated post is here.

Talk – Using Fedora in the classroom

Spreadsheet assignment

Spreadsheet assignment

So I’m sitting here in Kraków, doing some last-minute preparation for my talk (Fedora in the Classroom) at the upcoming Flock conference next week.

I’ll be looking at why we use Fedora in our school, what tools we use to setup and maintain our workstations, and the actual subjects that we teach our students, complete with actual projects1 that our students have done.

If you’re a teacher looking for ways to use open source software in the classroom, an administrator looking for a computer curriculum that emphasizes creativity and comprehension over memorization and rote learning, or you’re just interested in seeing how Fedora is effectively used in a school environment, please do come check it out.

 
[1] Projects have been anonymized to protect student privacy

Locks in the classroom – 2016

For the fourth year now, our grade nine students have been doing 3D modeling using Blender. A couple of weeks ago, our students finished up their first assignments, and I gave the top modelers the option of showing off their work. This year one of my students came in already an expert at 3D modeling (far, far better than I am), so he’s been inspiring other students to go above what I’ve seen in previous years. Without further ado, here are the top models from each of the three grade nine classes (click on the pictures for Full HD renders).

Lock by Barbour - CC0

Lock by Barbour – CC0Source

Nice use of materials, with a colorful choice for a background image.

Lock by Tala - CC BY

Lock by Tala – CC BYSource

Very creative and very different than most of the others. I love the key.


Lock by Yubin – CC0Source
Textures by Laitr Keiows – CC BY-SA 3.0

I normally don’t teach animation until the end of the year, but Yubin didn’t want to wait and came up with this. Very nice!

Lock by Carmouna

Lock by Carmouna – CC BYSource

The artistic eye used to compose this scene makes this project really stand out.

Lock by Nahuda

Lock by Nahuda – CC BYSource

I love the double lock thing going on here.

Lock by RayRay

Lock by RayRay – CC BYSource

The chain just makes this look cool.

Lock by Annan

Lock by Annan – CC BYSource

And wow! Annan used the game physics in Blender to get this chain to rest on the table. This looks great!

Lock by Mohammad

Lock by Mohammad – CC0Source

The final render looks good, but you need to download and open the source to really appreciate this scene. We’re seeing the front of a classroom from inside a locker, with the lock hanging on the door. Mohammad designed the entire classroom and it looks great (and incidentally, looks like most of the classes in the school).

Treasure Chest by JHarake

Treasure Chest by JHarake – CC0Source

When I first looked at this, I thought JHarake had found a great background image. Then I realized that he didn’t use a background image. This is a complete 3D scene, created by a student who makes his teacher’s most intricate Blender projects look like the scribblings of a small child. Well done JHarake!

Locks in the classroom – 2015

For the third year now, our grade nine students have been doing 3D modeling using Blender. A couple of weeks ago, our students finished up their first assignments, and I gave the top modelers the option of showing off their work. So, without further ado, here are the top models in each of the three grade nine classes.

Treasure Chest by Joe - CC BY 4.0 - Source

Treasure Chest by Joe – CC BY 4.0Source

Lock by Haidar CC BY 4.0 Source

Lock by Haidar – CC BY 4.0Source

Lock by John-Paul CC BY-SA 4.0 Source

Lock by John-Paul – CC BY-SA 4.0Source

Lock by Atwi CC BY 4.0 Source

Lock by Atwi – CC BY 4.0Source

Lock by Khodor CC BY 4.0 Source

Lock by Khodor – CC BY 4.0Source

Lock by Al Hassan CC BY 4.0 Source

Lock by Al Hassan – CC BY 4.0Source

Lock by Mokdad CC BY 4.0 Source

Lock by Mokdad – CC BY 4.0Source

Lock by Grace CC BY 4.0 Source

Lock by Grace – CC BY 4.0Source

Lock by Elie CC BY-SA 4.0 Source

Lock by Elie – CC BY-SA 4.0Source

Locks in the classroom – 2014

For the second consecutive year, our grade nine students have been doing 3D modeling using Blender. A couple of weeks ago, our students finished up their first assignments, and I gave the top modelers the option of showing off their work. So, without further ado, here are the top three models in each of the three grade nine classes.

Lock by Ali Ab

Lock by Ali Ab – CC BY-SA 4.0Source

Lock by Abi Baadarani

Lock by Abi Baadarani – CC BY 4.0Source

Lock by J Mona

Lock by J Mona – CC BY-SA 4.0Source

Lock by Wael

Lock by Wael – CC BY-SA 4.0Source

Lock by Majd

Lock by Majd – CC BY-SA 4.0Source

Lock by Abo Ror

Lock by Abo Ror – CC BY-SA 4.0Source

Lock by Anonymous

Lock by Anonymous – CC BY 4.0Source

Lock by CN

Lock by CN – CC BY-SA 4.0Source

Lock by KR

Lock by KR – CC BY-SA 4.0Source

Running cars through a blender

For their final Blender assignment, my grade nine students were asked to make an object (in most cases a car) go around some kind of track that followed the contour of the ground. These are some of the more creative projects that I received. Please note that in some cases the source doesn’t perfectly match the video. For some there were extenuating circumstances, and the others had it reflected in their scores.


I like the solid feel that this scene has, despite the glitches in the terrain texture mapping. I did keep expecting the truck to transform.
Car on track by Khodr – CC BY-SA 3.0Source


I’m not completely sure, but I think I would really enjoy driving this car.
Car on track by Shamas – CC BY-SA 3.0Source


I’m not sure if the camera angle really does it justice, but this scene has a really nice switchback. The car, the road and the terrain are all nicely modelled and textured, a rare combination.
Car on track by Fayez – CC BY 3.0Source


This was the only project where the car had headlights that actually project light. Very nice.
Car on track by C.H.W. – CC BY-SA 3.0Source


While not technically brilliant, the creativity and sheer strangeness of this scene made it impossible to exclude.
Car on track by Lynn – CC BY 3.0Source


I love the creative use of white balls for clouds and the covered wagon was icing on the cake.
Car on track by Su A – CC BY 3.0Source


The car bouncing around the track is pure vanilla, but the end is pretty impressive. It brought to mind the end of a movie that I saw as a kid.
Car on track by Oliver – CC BY 3.0Source

Locks in the classroom

In February, our grade nine students started doing 3D modeling. Last week, our students finished up their first assignments, and I gave the top modelers the option of showing off their work. So, without further ado, here are the top four models in each of the three grade nine classes.

Lock by Carol S

Lock by Carol S – CC BY-SA 3.0Source

Lock by Leah H

Lock by Leah H – CC BY 3.0Source

Lock by Reem J

Lock by Reem J – CC BY-SA 3.0Source

Lock by Yasmine S

Lock by Yasmine S – CC BY 3.0Source

Lock by Dany

Lock by Dany – CC BY-SA 3.0Source

khodr

Lock by Khodr – CC BY-SA 3.0Source


Lock by Shamas – CC BY-SA 3.0Source

Safe by Fayez – CC BY 3.0Source

Lock by Hadi

Lock by Hadi – CC BY-SA 3.0Source

Lock by Moe

Lock by Moe – CC BY-SA 3.0Source

Lock by Su A

Lock by Su A – CC BY-SA 3.0Source

Lock by Maroun.H

Lock by Maroun.H – CC BY-SA 3.0Source