Pipeline

Maya on Fedora 25

Dependencies:

dnf install mesa-libGLw libXp gamin audiofile audiofile-devel e2fsprogs-libs libpng12 libXmu libXt libXi libXinerama libxcb tcsh  xorg-x11-fonts-ISO8859-1-100dpi xorg-x11-fonts-ISO8859-1-75dpi liberation-mono-fonts liberation-fonts-common liberation-sans-fonts liberation-serif-fonts

install maya:

./setup

make some links:

ln -s /usr/lib64/libtiff.so.5.2.5 /usr/lib64/libtiff.so.3

Nvidia Optimus and Fedora 25

Hi everyone,

this is a quick howto on installing Nvidia Drivers on a Laptop with Optimus and Fedora 25. The setup is far from being perfect but at least allows me to use the Nvidia card on Fedora.
I’m using Fedora 25 MATE, i guess the setup process would be really similar for other Desktop Environments, I’d suggest you to watch the links i put as reference to get further infos.

Here are the guides i’ve been following:

 

The starting point is a clean install of Fedora 25. First of all let’s make sure everything is up to date.

dnf update

Reboot the computer so it will be running on the latest kernel.
We need also to download the latest binary driver for the nvidia card from: http://www.nvidia.com/Download/Find.aspx?lang=en-us (At the moment the latest available one for my video card is 375.26)

Next step is to install all the dependencies to allow the Nvidia driver install.

dnf install kernel-devel kernel-headers gcc dkms acpid

Then we need to blacklist the nouveau driver.

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

Then we need to modify the file /etc/default/grub (be careful, in the first linked guide it points to a wrong file). We’re gonna change the line:

GRUB_CMDLINE_LINUX="rhgb quiet"

in:

GRUB_CMDLINE_LINUX="nouveau.modeset=0 rd.driver.blacklist=nouveau rhgb quiet"

And then run:

grub2-mkconfig -o /boot/grub2/grub.cfg

Now we can reboot the machine and check that nouveau drivers have been properly blacklisted.
If you run:

lsmod | egrep "nouveau"

The output should be empty.
Now it’s time to install the nvidia drivers. I’m pretty sure there’s some better way to do that but from a terminal i turn off the x server running:

init 3

And then i move to the directory where i installed the nvidia drivers and run the nvidia install.

chmod +x NVIDIA-Linux-x86_64-375.26.run
./NVIDIA-Linux-x86_64-375.26.run

I followed all the default answers for the installer. After a reboot running:

lsmod | egrep "i915|nvidia"

we should notice the nvidia and intel modules being loaded. We’re almost done.
Now we have to create our xorg.conf file. Create the /etc/X11/xorg.conf.d/nvidia-optimus.conf file and paste in the following code.

Section "Module"
    Load        "modesetting"
EndSection

Section "Device"
    Identifier  "nvidia"
    Driver    "nvidia"
    BusID    "PCI:1:0:0"
    Option    "AllowEmptyInitialConfiguration"
    Option    "ConnectToAcpid"                    "0"
EndSection

Note that you should double check the PCI address for the cards even if this seems to be pretty standard. You can double check the proper PCI address running:

lspci |grep -E "VGA|3D"

# output
# 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
# 01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (rev a1)

As you can see the 2nd PCI address match the address i’ve put on the xorg.conf.

The last thing we need to take care about is to tell lightdm to turn on the nvidia card using the xrandr command.
To do that we’re going to create a bash script in /etc/lightdm called nvidia-optimus.sh, after creating the file paste in the follwoing code:

xrandr --setprovideroutputsource 'modesetting' 'NVIDIA-0'
xrandr --auto

And make it executable with:

sudo chmod +x /etc/lightdm/nvidia-optimus.sh

then we need to create the /etc/lightdm/lightdm.conf.d/nvidia-optimus.conf and paste  the lines:

[Seat:*]
greeter-setup-script=/etc/lightdm/nvidia-optimus.sh

Note: previously i used the display-setup-script but i had problems when logging out and in. Using the greeter one seems to do the trick
After a reboot you should be able to use your nvidia drivers!

Maya crashes after deleting lights…

Hi all, this is my first post. This blog is pretty new and actually there is nothing more than the standard wordpress installation. Things will change a lot in the next future.

Let’s start with the first post.

Few days ago i discovered a bug in Maya, well not the only one, and i figured out how to fix it. I know it’s quite famous bug but Autodesk didn’t solve it. So in the meanwhile i decided to find a way to get around it.

The scenario i simple. You have a scene with some reference in it and some light. It’s something quite common. Now if some of these lights have a lightlink to one of these referenced objects and you try to delete just one of those lights and then try to save the scene maya will crash. Funny not? Moreover maya will also totally wipe the file you are trying to save. These could mean only one thing, everyone who is working on that scene will probably lose some work.

The easiest workaround is to hide that light and keep working on a scene with some useless hidden light. Nothing too bad but absolutely not clean.

What i discovered is that if I unreference the lightlinked object and then delete the light it will let maya save the file without any crash.

Obviously if you got hundreds of referenced objects and those are also rigged characters or environments this workaround will take some time to understand what to unload. Moreover unloading references, deleting the light and then reloading the reference will take some time, more than just deleting a light!

First of all we have to understand what the light is linklinked to. To do that whe should provide a function that given a light will tell us which reference is lightlinked to. This is quite simple asking what objects are lightlinked with “lightlink” command and then looping thru them asking if the object is part of a reference with the referenceQuery command.

After that we should store a list of reference nodes, unload those references, delete the light and then reload the references.

This script will avoid maya crash. That’s pretty good but is not sufficient to prevent people to delete lights and it will be much slower than just deleting a light. So it’s better to figure out a better way to let people work like they used to do until the introduction of this new featured bug.

In the next post i will manage a way to overrinde the delete function just for lights using callbacks and use a temporary hidden group to delete the lights when saving or loading the scene.