What can I say? it’s been somewhat of an adventure to get this functioning because the documentation is very sparse on the linux side! but after many hours of tinkering and with the help of Paul Lord and Joe Laffey, I’ve managed to get it running, and running well! To give you an idea, a scene that used to render for me in just over 4 minutes can now be rendered out in just over a minute with the addition of two linux render nodes.
Hopefully this guide will help you get a Linux render farm in action using Butterfly Net Render as well!
First of all, I’ll give you a run down of my environment.
Render Controller:
Windows XP Professional, 64 bit
Lightwave 9.3 Butterfly Netrender 4.x
Linux Nodes:
HP Proliant ML 250
Quad Core Xeon, 2.33ghz
Debian Linux (Etch)
KDE
Wine 1.0.1-174 (Could not get this to work with Wine 0.9)
Windows Configuration
The first thing we did was install BNR and make sure that Linux support was selected, believe it or not, most people forget this step and don’t even realize it. If you forgot to do this, reinstall!
Follow the instructions and get the netrender folder shared, in our case, we shared it and then mapped a drive on the controller to that share called R:
Next, map another drive to your lightwave content folder and then map a drive to that share, in our case we lettered that one N:
Linux Configuration:
Install smbfs if it’s not already there, using apt-get install smbfs
Create two folders, I used /lightwave and /lightwave-content .. these will be our mount points
Mount the shared netrender (R:) folder to /lightwave, and mount the shared lightwave content folder (N:) to /lightwave-content
Set up wine drive letters, in my case, wine was installed as root so I did this by going into /root/.wine/dosdevices and creating some symlinks … make sure the drive letters match up with our windows controller, like so:
ln -s /lightwave r:
ln -s /lightwave-content n:
Make a folder somewhere for the netrender software, I just made a folder called /home/netrender and copied bnrclient and bnetnode.lw in there, but rename bnetnode.lw to bnetnode.load
There will be a file in the /lightwave share called lwext9.cfg, in my case it’s /lightwave/NETRENDER/lw9intel/lwext9.cfg .. I copied this file to /lightwave/NETRENDER/lw9intel/lwext9lnx.cfg and then edited this new file.. I changed all the paths to linux paths because the instructions alluded to this, though I’m not sure this is necessary since lwsn will be fired off using wine .. so far I’ve not noticed any problems, so go ahead and do it, but remember that you’ve done it
Edit your bnetnode.load file back in /home/netrender .. I’ll go over some of the important variables.By the way, important note! the bnetnode.lw file that ships with bnrclient has one major problem with it .. some of the lines have tab characters after the ending semicolon, check for these and remove them! the semicolon MUST be the final character or you’ll have issues that make no sense.. just trust me on this.
CONTROLLER_IP, should be the IP address of the controller, I think this is straight forward
COMPUTER_NAME and USERNAME, I set these both to rnode01 (or rnode02, rnode03… it doesn’t matter)
NODES, set this to the number of processors in the system! please note that each node consumes a license. SEE MY EDITS AT THE BOTTOM OF THIS ARTICLE
MFLOPS, according to Paul, this variable is no longer used so delete it! (if using bnr 4.x especially)
BNR_SCENEDIR, this is the linux path to the scene directory, in my case, /lightwave/NETRENDER/build
BNR_FRAMEDIR, similarly, mine is /lightwave/NETRENDER/framesThe next few variables are important to get right, so rather than explain them, I’ll put my configright here on the blog and it’ll make sense! if it doesn’t, do it anyway and just make sure the paths are correct to your environment
![]()
LINUX_LW_LWSN=wine “/lightwave/NETRENDER/lw9intel/programs/lwsn.exe”;
LINUX_LW_CFG=R:/NETRENDER/lw9intel/lwext9lnx.cfg;
LINUX_LW_TEMPDIR=/tmp;
LINUX_LWCONTENTDIR=/lightwave-content;
Note the command wine added to the front of LINUX_LW_LWSN above, this is important and not documented.
Once you’ve done all this, from within KDE, you can launch bnrclient …
cd /home/netrender;./bnrclient
If all goes well, you won’t see any errors and you’ll see 4 nodes (in my case) connecting to the controller, assuming that the controller is running!
Controller Configuration:
I’m a linux guy and another person in our office maintains the controller, but what I can tell you as that you’ll see these new nodes pop up in the list, you’ll need to right click and select properties on each of these fellas and set the platform to Linux Lightwave, which is on one of them tabs
You’ll also want to make sure in the scene properties, once you’ve added a scene that is, that you’re pointing to your shared drive letter .. in my case, N:
Additional Tips:
Windows XP Professional has a 10 concurrent tcp connection limit, so one thing that I did that helps limit the number of connections to the controller is to utilize our pre-existing linux file server… What you say? I’ll explain!
I mount the xp shares on the linux file server as mentioned above, and then I RE-SHARE those mount points in samba … follow me? all my render nodes mount off of the file server at that point, which means I don’t have to have a seperate connection just for those shares. At any time, only the file server is mounting those shares over a single connection.. Think about it, if you had 5 nodes mounting the directories, that’s 5 connections being used up.. with thise configuration, you could have 9 nodes running and it’d still only be a single connection for the shared drives, brilliant I know.
That should do it!
Edit (number of nodes):
In the first version above, I pointed out that nodes should be set to the number of CPU’s that you have in the machine, which is probably what was intended by the authors of the software, however, when you do this you end up maxing out the system which can cause it to freeze up entirely or drastically degrade performance.
I would configure as such:
1 Processor: Upgrade your system!
2 Processors: 1 node
3 Processors: 2 nodes
4 Processors: 2 nodes for intensive scenes, 3 nodes for light renders.
Tweaking the number of nodes really makes a difference, we noticed that in our quad core machines that dropping the node count to two rather than four increased performance by about 30%
Also note that when I say “Processor” you could also consider that the total number of cores in the machine, if you have one physical processor but it’s dual core, then consider it 2 processors and configure a single node.
For more information and other related articles, please visit www.tdh-marketing.com.
Watch the video related to debian
Google TechTalks July 21, 2006 Jonathan Oxer is the founder and technical director of Internet Vision Technologies in Australia, as well as the current president of Linux Australia, the national organization for Linux users, developers, and vendors. He is one of the authors of O’Reilly’s Ubuntu Hacks. ABSTRACT Learn about the internal structure of Debian/Ubuntu packages and how to create them, starting with disection of a binary package and then going through the process of creating your own package using various build helper scripts to automate much of the process.
Help answer the question about debian
How long does it take to install Debian with the default options?i'm about to install debian with a netinst CD. How long does it take? and will the installer make a swap partition by it-self or do i have to make one manually?
About Author
Lonnie -
About the Author: