Thank you everyone and Happy New Year!

The Thanks scores for 2019 are in, make sure to read all about last year's highlights -> here <- !

Automated Fusion Studio Installs

User avatar
AndrewHazelden
Fusionator
Posts: 1589
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 8
Location: West Dover, Nova Scotia, Canada
Contact:

Automated Fusion Studio Installs

#1

Post by AndrewHazelden » Thu Nov 23, 2017 11:01 am

fusion-studio-9-splash-screen.jpg
I thought it would be handy to share some tips on how to perform cross-platform automated command line installs of Fusion Studio and the Fusion Render Node. :)

This approach is useful if you want to install Fusion across a room full of workstations using a terminal based SSH connection, deploy Fusion render nodes on "headless" rackmount servers that lack a monitor, or potentially use Fusion on a cloud based system like Amazon EC2.

Fusion Studio on Windows Installation
fusion-9-windows-install.png
Step 1. Expand the Fusion Studio 9 zip file. Open a new command prompt window and navigate to the folder where you unzipped the files.

Step 2. Run the Fusion Render Node installer in passive mode without asking for user input.

(Note you have to write in the full absolute path for the msi install package. The following example assumes you expanded the file in your user account's Downloads folder.):

Code: Select all

msiexec /i "%USERPROFILE%\Downloads\Install Fusion Render Node v9.0.msi" /passive /qb
Step 3. Run the Fusion Render Node installer in passive mode without asking for user input.

(Note you have to write in the full absolute path for the msi install package. The following example assumes you expanded the file in your user account's Downloads folder.):

Code: Select all

msiexec /i "%USERPROFILE%\Downloads\Install Fusion Studio v9.0.msi" /passive /qb
Fusion Studio on Mac Installation
fusion-9-mac-install.png

Step 1. Mount the Fusion Studio 9 disk image on your desktop.

(For network installs you can copy the DMG file contents to a folder on a file server.)

Step 2. In the Terminal run the Fusion Render Node installer without showing the GUI or asking for confirmations:

Code: Select all

sudo installer -pkg "/Volumes/Blackmagic Fusion/Install Fusion Render Node v9.0.pkg" -target /
Step 3. In the Terminal run the Fusion Studio installer without showing the GUI or asking for confirmations:

Code: Select all

sudo installer -pkg "/Volumes/Blackmagic Fusion/Install Fusion Studio v9.0.pkg" -target /
Fusion Studio on Linux Installation
fusion-9-linux-install.png
Step 1. Expand the Fusion Studio 9 tar.gz file and cd into the Blackmagic Fusion install folder.

Step 2. In the Terminal run the Fusion Render Node installer without showing the GUI or asking for confirmations:

Code: Select all

sudo "./Blackmagic_Fusion_Render_Node_Linux_9.0_installer.run" --install -y
Step 3. In the Terminal run the Fusion Studio installer without showing the GUI or asking for confirmations:

Code: Select all

sudo "./Blackmagic_Fusion_Studio_Linux_9.0_installer.run" --install -y
Installer Program Custom Options

If you need to customize the Fusion Studio installation process further you can use the following additional installer options listed below:

Windows MSI Installer Utility
On Windows the MSI installer utility provides the following command line options:

Code: Select all

Windows ® Installer. V 5.0.14393.0 

msiexec /Option  [Optional Parameter]

Install Options
	</package | /i> 
		Installs or configures a product
	/a 
		Administrative install - Installs a product on the network
	/j<u|m>  [/t ] [/g ]
		Advertises a product - m to all users, u to current user
	</uninstall | /x> 
		Uninstalls the product
Display Options
	/quiet
		Quiet mode, no user interaction
	/passive
		Unattended mode - progress bar only
	/q[n|b|r|f]
		Sets user interface level
		n - No UI
		b - Basic UI
		r - Reduced UI
		f - Full UI (default)
	/help
		Help information
Restart Options
	/norestart
		Do not restart after the installation is complete
	/promptrestart
		Prompts the user for restart if necessary
	/forcerestart
		Always restart the computer after installation
Logging Options
	/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] 
		i - Status messages
		w - Nonfatal warnings
		e - All error messages
		a - Start up of actions
		r - Action-specific records
		u - User requests
		c - Initial UI parameters
		m - Out-of-memory or fatal exit information
		o - Out-of-disk-space messages
		p - Terminal properties
		v - Verbose output
		x - Extra debugging information
		+ - Append to existing log file
		! - Flush each line to the log
		* - Log all information, except for v and x options
	/log 
		Equivalent of /l* 
Update Options
	/update [;Update2.msp]
		Applies update(s)
	/uninstall [;Update2.msp] /package 
		Remove update(s) for a product
Repair Options
	/f[p|e|c|m|s|o|d|a|u|v] 
		Repairs a product
		p - only if file is missing
		o - if file is missing or an older version is installed (default)
		e - if file is missing or an equal or older version is installed
		d - if file is missing or a different version is installed
		c - if file is missing or checksum does not match the calculated value
		a - forces all files to be reinstalled
		u - all required user-specific registry entries (default)
		m - all required computer-specific registry entries (default)
		s - all existing shortcuts (default)
		v - runs from source and recaches local package
Setting Public Properties
	[PROPERTY=PropertyValue]

Consult the Windows ® Installer SDK for additional documentation on the
command line syntax.

Copyright © Microsoft Corporation. All rights reserved.
Portions of this software are based in part on the work of the Independent JPEG Group.
Mac Installer Utility

On Mac the installer utility provides the following basic command line options:

Code: Select all

installer
Usage: installer [-help] [-dominfo] [-volinfo] [-pkginfo] [-allowUntrusted] [-dumplog]
                 [-verbose | -verboseR] [-vers] [-config] [-plist]
                 [-file ] [-lang ] [-listiso]
                 [-showChoicesXML] [-applyChoiceChangesXML ]
                 [-showChoicesAfterApplyingChangesXML ]
                 -pkg 
                 -target <[DomainKey|MountPoint]>
The installer utility can list provide more verbose help options by adding the -help flag when you run it from the terminal:

Code: Select all

installer -help
Usage: installer [options...] -pkg  -target 

Options:
	[-dominfo]                 # Display domains that can be installed into.
	[-volinfo]                 # Display volumes that can be installed onto.
	[-pkginfo]                 # Display package that will be installed
	                               (for metapackages, shows contents).
	[-query]             # Display information about package metadata.
	[-allowUntrusted]          # Allow installing a package signed by an
	                               untrusted (or expired) certificate.
	[-dumplog]                 # Write log information to standard error
	                               (in addition to the usual syslog).
	[-help]                    # Display this help information.
	[-verbose]                 # Display detailed information.
	[-verboseR]                # Display detailed information with
	                               simplified progress output.
	[-vers]                    # Display this tool version.
	[-config]                  # Display command line parameters in XML
	                               plist format.
	[-plist]                   # Display -dominfo, -volinfo, or -pkginfo in
	                               XML plist format (ignored when performing
	                               installation).
	[-file ]       # Configuration file supplying parameters in
	                               XML plist format.
	[-lang ]  # Sets the default language Mac OS X will use
	                               after installation.
	[-listiso]                 # Lists the ISO language codes that are
	                               recognized.
	[-showChoicesXML]          # Output XML data describing the choices and
	                               their properties and state.
	[-showChoicesAfterApplyingChangesXML ]
	                           # Apply changes specified in the file to the
	                               choices in the package and output the
	                               resulting XML data.  See below for the
	                               file format description.
	[-applyChoiceChangesXML ]
	                           # Apply changes specified in the file to the
	                               package and proceeds with installation.
	                               See below for the file format
	                               description.

Device:
	The -target  parameter is any one of the following:

	(1) One of the domains returned by -dominfo.
	(2) Volume mount point.  Any entry of the form of /Volumes/Mountpoint.
	      ex: /Volumes/Untitled

Flags:
	RestartAction		# Can optionally return one of the following:
				    None
				    RecommendRestart
				    RequireLogout
				    RequireRestart
				    RequireShutdown

Choices file-format:
	An XML file that is an array of choiceIdentifiers (as strings) to
	toggle. Each choiceIdentifier specified will be toggled in order --
	exactly as if a user had clicked on its checkbox in Installer.app's
	customization pane.

Examples:
	installer -pkg InstallMe.pkg -target CurrentUserHomeDirectory
	installer -pkg InstallMe.pkg -target '/Volumes/Macintosh HD2' -lang ja
	installer -volinfo -pkg InstallMe.pkg
	installer -pkginfo -pkg InstallMe.pkg
	installer -query RestartAction -pkg InstallMe.pkg
	installer -pkg InstallMe.pkg -target / -showChoicesXML
Fusion Linux Installer Custom Options
You can see a summary of the additional Fusion on Linux install options by adding the --help flag when you run it from the terminal:

Code: Select all

./Blackmagic_Fusion_Studio_Linux_9.0_installer.run --help

Usage: /tmp/.mount_nySkuu/FusionInstaller [options] source
Blackmagic Design Installer

Options:
  -h, --help       Displays this help.
  -v, --version    Displays version information.
  -i, --install    Install without GUI
  -u, --uninstall  Uninstall without GUI
  -t, --try        Allow trying out without installing
  -y, --noconfirm  Text mode installer will not ask for confirmation

Arguments:
  source           Source location of installer files
You do not have the required permissions to view the files attached to this post.

User avatar
Jan Rogowski
Posts: 8
Joined: Thu Apr 16, 2015 5:42 am

Re: Automated Fusion Studio Installs

#2

Post by Jan Rogowski » Tue Jan 02, 2018 7:39 am

Hi Andrew!

Just bumped into this. I've been struggling with Fusion Render Node (9.0.2) on centos 7 minimal. It appears the app doesn't like a headless system...

QXcbConnection: Could not connect to display.

I guess it's trying to display some kind of gui. Do you know if it will run on a minimal OS?

Best,
Jan.

User avatar
AndrewHazelden
Fusionator
Posts: 1589
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 8
Location: West Dover, Nova Scotia, Canada
Contact:

Re: Automated Fusion Studio Installs

#3

Post by AndrewHazelden » Tue Jan 02, 2018 11:32 am

Jan Rogowski wrote:
Tue Jan 02, 2018 7:39 am
Just bumped into this. I've been struggling with Fusion Render Node (9.0.2) on centos 7 minimal. It appears the app doesn't like a headless system...
Hi Jan.

It has been a while. I remember you and Redstar3D from the Arnold OBQ lens shader days. :)

I don't think Fusion 8/9's render node system will work on your CentOS 7 minimal install out of the box. You would need to add X11, QT, FFMPEG, GOMP (OpenMP), along with OpenGL graphics drivers, and OpenCL in order to get everything running correctly.

The Fusion Render Node app (when running in the unlimited license mode) typically runs as a tray item in a Linux desktop GUI session on the node so it won't run on a 100% headless system. This means you need to have at mimimim a ~$35 low profile graphics card in the node and the required graphics drivers to get things to run.

It might be possible (in theory) to setup a Linux X11 virtual frame buffer, and some type of modified MESA software mode OpenGL graphics driver to get things running but that would be a very non-standard installation process that hasn't been explored.

As an additional note, you will be able to read ProRes MOV files using Fusion on Linux but you won't be able to use a Fusion Render Node to encode/write out new ProRes movie files due to Apple/BMD license issues on the ProRes encoder.

User avatar
Jan Rogowski
Posts: 8
Joined: Thu Apr 16, 2015 5:42 am

Re: Automated Fusion Studio Installs

#4

Post by Jan Rogowski » Wed Jan 03, 2018 12:21 pm

Hi Andrew!

Posted a response to this before leaving the office but it seems to have been lost in the ether. Anyway, thanks for the reply, it's been a while since we finished that immersive tunnel project. Lens shader worked a treat! Last project we did in XSI (sniff).

After banging my head against the table with this for the majority of the day I've realised that I was launching Deadline as a service which is apparently a no no for Fusion Render Node and results in exactly the same error as reported under a headless system. No wonder I was going round in circles.

I made headway with a desktop deployment but would still like to figure out a minimal OS implementation. I'll do some more testing tomorrow.

Best,
Jan.

User avatar
Jan Rogowski
Posts: 8
Joined: Thu Apr 16, 2015 5:42 am

Re: Automated Fusion Studio Installs

#5

Post by Jan Rogowski » Wed Jan 10, 2018 6:18 am

Hi Andrew,

I thought I would share what I've found so far. The goal was to setup a render node under centOS 7.4 minimal which runs the latest maya/arnold/yeti/fusion, all controlled by deadline 10.

Maya/Arnold/Yeti was easy, once you've figured out the required dependencies.

To install Fusion Render Node...

  1. #dependencies
  2. yum -y install fuse-libs qt5-qtbase-devel
  3. #extract installation file from downloaded tar
  4. tar -xvf /maya/files/fusion/Blackmagic_Fusion_Studio_Linux_9.0.2.tar -C /fusion
  5. #install
  6. /fusion/Blackmagic_Fusion_Render_Node_Linux_9.0.2_installer.run --install -y

Fusion Render Node wouldn't run as you explained. It seems the solution was Xorg...

  1. #install Xorg
  2. yum groupinstall "X Window System" "Desktop" "Desktop Platform"

I needed to run xorg with a dummy driver to stop fusion crashing on load. Generate and modify xorg.conf as described here:
https://lxtreme.nl/blog/headless-x11/

Next start xorg and use the DISPLAY env variable to point fusion in the right direction...

  1. #start Xorg
  2. Xorg -noreset +extension GLX
  3.  
  4. #set DISPLAY env variable
  5. export DISPLAY=:0

This seems to do the trick. Now you can launch a fusion render node from the command line...

  1. /opt/BlackmagicDesign/FusionRenderNode9/FusionRenderNode /path/to/test.comp --verbose --render --start 1 --end 10

Now I'm stuck with deadline. I can launch fusion by command line but not through deadline for some reason. When I've got that sorted and tested I'll stick what I've learned on github and link to it here.

Thanks!

User avatar
AndrewHazelden
Fusionator
Posts: 1589
Joined: Fri Apr 03, 2015 3:20 pm
Answers: 8
Location: West Dover, Nova Scotia, Canada
Contact:

Re: Automated Fusion Studio Installs

#6

Post by AndrewHazelden » Wed Jan 10, 2018 6:54 am

Jan Rogowski wrote:
Wed Jan 10, 2018 6:18 am
Hi Andrew,

I thought I would share what I've found so far.
You've made excellent progress on configuring and setting up a Fusion headless render node from a minimal CentOS install. I know a lot of people will find this information useful!

Thanks for sharing your results on WSL. :)

User avatar
magdesign
Posts: 20
Joined: Sun Mar 26, 2017 12:36 pm
Contact:

Re: Automated Fusion Studio Installs

#7

Post by magdesign » Tue Jan 30, 2018 9:00 am

Thanks for sharing your knowledge about headless rendering.

Since days I am trying to setup a FusionStudio 9.02 render slave under Ubuntu Linux (for now with a display/graphics card).
But I cant make it to run. When starting the slave with: 

Code: Select all

/opt/BlackmagicDesign/FusionRenderNode9/FusionRenderNode
My master RenderManager sees the slave render node, but after hitting Resume Render it always drops the slave connection with message: could not load comp

I found your lines for starting the slave with: 

Code: Select all

/opt/BlackmagicDesign/FusionRenderNode9/FusionRenderNode /path/to/test.comp --verbose --render --start 1 --end 10
But this command stops with: Cannot locate license server Fusion Render Node halted or  Cleanup licenses
Are you able to use render slaves under Linux?
Need the slaves in Linux a separate license?

I wrote to the BMD support and opened a new tread here: viewtopic.php?f=16&t=1841

Really hoping for some answers.....

User avatar
dctrjones
Posts: 1
Joined: Sat Nov 25, 2017 9:59 am

Re: Automated Fusion Studio Installs

#8

Post by dctrjones » Sat Feb 24, 2018 7:48 am

Hi Jan,

This is *exactly* what we're running into while attempting to setup a headless linux box and integrating it with Deadline. We're about to try the Dummy Xorg install to see if that gets us going as well.

Have you had any more success with Deadline and the Fusion RenderNode since this original post?

Cheers,
Phil
Jan Rogowski wrote:
Wed Jan 10, 2018 6:18 am

Fusion Render Node wouldn't run as you explained. It seems the solution was Xorg...

  1. #install Xorg
  2. yum groupinstall "X Window System" "Desktop" "Desktop Platform"