How to build Murmur (Mumble server) in a FreeNAS (FreeBSD) jail

Status
Not open for further replies.

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630
EDIT, SEPTEMBER 2014: PLEASE SEE THIS POST WITH A VIDEO TUTORIAL I MADE


Mods: I am not sure what the right place for this post is, so move it wherever you'd like.


Jails are pretty sweet. The vast majority of people I see using jails on FreeNAS are doing things like pbi's for Plex and other plug-ins. But, you can actually run a full-featured BSD system that performs other services for you. Which, I personally, think is nice. So this guide, while it focuses on installing the Mumble server (murmur), should give you some insights into the correct procedure to setting up a concurrent FreeBSD general-purpose jail alongside your FreeNAS server. In this jail you can have all sorts of fun, in addition to setting up any software (more or less) that could be set up on any FreeBSD server.

I don't know how many people this will be useful for. But this is a guide for getting murmur (the server-side of the famous Mumble PTT/VAD/streaming program) set-up and running on your FreeNAS (FreeBSD) box in a jail. My server had been running on a Windows 7 box, under self-administration, but I was getting sick of it, and mumble servers just simply run better under Linux or BSD, to say nothing of the ease with which ICE and other systems can be used compared to a home Windows box. Plus I have this beautiful over-provisioned FreeNAS box just begging for something else to do as well...so it was obvious.

1) If you don't already have a suitable jail, I suggest creating a "port jail" in your FreeNAS. During jail creation, you probably do not want a VIMAGE, and you probably want to uncheck the "vanilla" box. Those of you that need a VIMAGE or vanilla jail probably already know who you are, and if you don't, then you probably don't need either; uncheck them. (Notice that by so doing, many of the confusing options in the "add jails" dialog will grey-out, which is nice.)

2) In your jail, you're going to want to compile/build "murmur", which is the server-side of the Mumble software. Assuming you're on the current FreeNAS (which is 9.2 at this writing), you will be able, in the FreeNAS GUI, to get to a command-line prompt by highlighting the jail in the jails screen, and click the appropriate icon. If not, get to the command line via jexec (Google it, if necessary)--ssh is not yet correctly configured (or, possibly, even started!) on your jail (we'll get there, be patient), so that's not an option. Switch to the murmur ports directory in your jail:
Code:
cd /usr/ports/audio/murmur
and then go ahead and make the full software, and install it, with this command:
Code:
make install clean


Warnings:
  • It will take a long-ass time (long ass-time?) to build something like murmur on a fresh portjail. Each dependency upon which murmur relies (and some are very time-consuming to build) must also be built, and so on. You can actually expect the whole procedure to take the better part of an hour on many systems.
  • You will be asked, during the installation process, about several options you have to install or not install this, that, and the other optional part of murmur, and all of its dependencies. It's best to accept the default choices unless you know precisely what you're doing. These will require keyboard interactions, so you should not go away from your computer for too long.
3) You'll want a simple, text-based, editor, so you can set up your files. The one that's built into FreeNAS (but, not by default into your jail) is called "nano". Build it by:
Code:
cd /usr/ports/editors/nano
make install clean


4) Before you go much further, set up your basic services that you'll want. First, set up a root password by issuing
Code:
passwd
at the jail's command prompt.

For me, "ssh" is very important, because I like to get a nice command prompt directly from my ssh client into the jail. If you have your ssh service set up just the way you like it in your FreeNAS server itself, the best thing I've found to do is to just copy over the configuration file from your FreeNAS. You can find it by going to your FreeNAS (not the jail) command line and:
Code:
cd /etc/ssh
cat sshd_config


Mine (which I pulled almost verbatim from my FreeNAS) is pretty simple:
Code:
root@portjail:/etc/ssh # cat sshd_config

Protocol 2
UseDNS no
Subsystem      sftp    /usr/libexec/sftp-server -l ERROR -f AUTH
ChallengeResponseAuthentication no
ClientAliveCountMax 3
ClientAliveInterval 15
Port 22
PermitRootLogin yes
AllowTcpForwarding yes
Compression no
PasswordAuthentication yes
PubkeyAuthentication yes

By whatever means you like, update your sshd_config file (which, in the fresh jail, will be a large, sample file that will probably NOT be to your liking in its settings) to be like the above, subject to whatever mods you like. For example, you might perform the editing by doing this:
Code:
mv sshd_config sshd_config.old
nano sshd_config

then using the nano text editor we built in the previous steps to transcribe the proper sshd config file.

Once you've done that, then:
Code:
nano /etc/rc.conf

and make sure a line that says this:
sshd_enable="YES"
is in there. Now that you've done it, test your ssh by turning the service on:
Code:
service sshd restart
Performing sanity check on sshd configuration.
sshd not running? (check /var/run/sshd.pid).
Performing sanity check on sshd configuration.
Starting sshd.
root@portjail:/etc #


Then try to log in (with putty, bitvise ssh client, whatever you like), remember that you must use your jail's IP address (not your FreeNAS IP address). Make sure everything is fine and that you can bring up a command-line in ssh for your jail.

5) Now you're all set to go. You have a FreeBSD system running alongside your FreeNAS, and you can do whatever you want, install whatever you want, play around, etc. To finish installing murmur, you will need to tweak the file:
Code:
/usr/local/etc/murmur.ini

You can either copy your murmur.ini file over from another server as-is, or you can edit (again, with nano, for example) the file to suit your needs. If you are making a brand new murmur (mumble) server, go to the mumble website and look for their "murmurguide" to help you set it up. If you are migrating over from another Linux or Windows or whatever murmur server, you will need to find a copy of your sqlite database file that you were using (as it contains your certificated users, your channel tree, all that stuff), and you will need to place it into (i.e., by copying the file using whatever method you like):
Code:
/var/db/murmur/murmur.sqlite


6) Now start the murmur service, temporarily, with:
Code:
service murmur onestart

If all has gone well, you should now be able to see this server in Mumble (manually attempt to connect your Mumble client to your jail IP and the port you specified in the .ini file), connect to it, and, if you ported an old server, it should look pretty much EXACTLY like your previous Mumble server. If it looks good, edit the /etc/rc.conf file again to include the line murmur_enable="YES", and turn on the murmur service as part of your standard OS services by:
Code:
service murmur onestop
service murmur start


And that's it! Hopefully you found it useful--I am happy to answer questions.
 
Last edited:

Yatti420

Wizard
Joined
Aug 12, 2012
Messages
1,437

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630
There is, as far as I can ascertain, not one single category in which Mumble does not out-perform, or equal Teamspeak. I'm not sure why anyone uses either Ventrilo or Teamspeak anymore, when the FOSS-alternative, Mumble, is about 100x better across the board, technically.
 

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630
ONE MORE TIP:

It is possible that you will get a "database not writable" or similar error. That's no big deal. Go to the location of the sqlite database file, specified above, and give it a taste of this:
Code:
chmod 664 murmur.sqlite

And that should do it.
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
Works for me! I did have to disable the Ice checks for some reason. But set it up just fine otherwise.

I think that the main reason why teamspeak and vent are so popular is because they are more well known and lots of companies sell those servers to people for $20 a month or something.
 

dhettinger

Cadet
Joined
Aug 22, 2012
Messages
6
Works for me! I did have to disable the Ice checks for some reason. But set it up just fine otherwise.

I think that the main reason why teamspeak and vent are so popular is because they are more well known and lots of companies sell those servers to people for $20 a month or something.


Thanks for posting this, I was having issues as well but after a quick 'make config' and un-marking 'TESTS' everything is golden.
 

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630
So that's two of you guys with the "TESTS" not working. Maybe I unclicked "TESTS" on mine, and didn't remember I did that.

Anyone else trying to do this, it's probably best to unclick "TESTS" during compile.
 

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630
If you don't need to ssh in to perform these, or any other tasks you want to do, then no, you don't need to do the ssh part.

Mumble and ssh are not connected in any way.
 
D

Deleted member 36474

Guest
Hi DrKK,

Your tutorial was exactly what I was looking for to setup up Murmur on my FreeNAS machine, providing a very concise and yet thorough tutorial which I was able to follow readily and from which I learnt alot, so for that I must thank you.

The problem I have since come up against is an inability to access the murmur as SuperUser through the Mumble client, which means; although I and my friends are easily able to join the server and engage in flawless high-bitrate communication, we are unable to create anything more than temporary channels despite having enabled the SuperUser by choosing a password for it. The issue being any attempt to join as SuperUser results in a Wrong certificate or password for registered user etc.

If you know of a solution to my predicament or could point me in the directiion of one, you would forever have my thanks as I have searched fruitlessly for several days now.

Thanks again and a (late) happy new year to you.

Silas
 

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630
Silas:

You need to set the superuser password with the -supw command. I believe it is shown clearly on the "murmurguide" that the Mumble people publish.

Once you have set the superuser password, you must sign into the system with the name "SuperUser" (capitals are important), with the stated password that you set with -supw. Then, once you are in there, you must add your regular self to the "admin" ACL group.

The murmurguide should explain it to you clearly (that's where *I* learned).
 
D

Deleted member 36474

Guest
Thank you for your prompt response.
Unfortunately I have already done that;
despite having enabled the SuperUser by choosing a password
(Though I should have worded it more clearly)

I followed the murmurguide as thoroughly as I could.
Just to clarify, I used "murmurd -supw" after some guess work as I saw no explicit reference to a BSD command but as I mentioned, this has not brought me any success. Is my command wrong or is the problem elsewhere?

Silas
 

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630
OK,

Let me tell you EXACTLY what I did just now to make sure I could do this correctly:

1) Stop murmur, by issuing "service murmur stop".
2) In your Mumble client, go to your certificate wizard, create a NEW certificate, so it's not confused about anything.
3) On your jail commandline, issue something like: murmurd -supw testicles. This should tell you that it opened the database, and that it reset the superuser password on server "1".
4) Start the server with "service murmur start"
5) Now, go into your MUMBLE client, connection dialog, and add a connection, to your jail IP, to the proper port, with the username "SuperUser". This should cause the password field to appear, in which you should put "testicles" or whatever you set.
6) Now, connect.

It SHOULD allow it. If it does not, repeat the steps. Verify that the file in /var/db/murmur that contains your sqlite database is receiving the current timestamp for when you set the supw. At first, I, too, got a "wrong password for user" error. But, after I repeated the steps once or twice, it did allow me in. I don't know why it took a few tries.

Let's see if you can get that far. Then we'll talk about next steps, if needed.
 

sysfu

Explorer
Joined
Jun 16, 2011
Messages
73
Nice guide. I found it searching for info about the differences between standard and portjail types as well as the "vanilla" option. I still find the distinctions somewhat murky, even after going over the FreeNAS jails wiki page a few times.

At any rate, here's a port building pro-tip: you can save yourself a quite a bit of hassle by running the command make config-recursive prior to building. This allows you to whack through all the configuration prompts in one go without having to baby sit the entire build process waiting for a dependency to finish compiling to get to the next configuration prompt.

If you're confident that you're OK with using the default port build options for everything, you can save even more time by building with the command make -DBATCH install clean

Hat tip to WebPlay for this info
 
Last edited:

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630

diedrichg

Wizard
Joined
Dec 4, 2012
Messages
1,319
Awesome! Thank you! subscribed
 

diedrichg

Wizard
Joined
Dec 4, 2012
Messages
1,319
Hi DrKK. Could you expand your instructions for step 1, please? I just want to make sure that my jail is properly installed and configured. Thank you!
 

Agamemjohn

Cadet
Joined
Jul 21, 2014
Messages
1
OK,

Let me tell you EXACTLY what I did just now to make sure I could do this correctly:

1) Stop murmur, by issuing "service murmur stop".
2) In your Mumble client, go to your certificate wizard, create a NEW certificate, so it's not confused about anything.
3) On your jail commandline, issue something like: murmurd -supw testicles. This should tell you that it opened the database, and that it reset the superuser password on server "1".
4) Start the server with "service murmur start"
5) Now, go into your MUMBLE client, connection dialog, and add a connection, to your jail IP, to the proper port, with the username "SuperUser". This should cause the password field to appear, in which you should put "testicles" or whatever you set.
6) Now, connect.

It SHOULD allow it. If it does not, repeat the steps. Verify that the file in /var/db/murmur that contains your sqlite database is receiving the current timestamp for when you set the supw. At first, I, too, got a "wrong password for user" error. But, after I repeated the steps once or twice, it did allow me in. I don't know why it took a few tries.

Let's see if you can get that far. Then we'll talk about next steps, if needed.

This still didn't work for me. Some googling showed me that the command for setting the password also needs to know where the .ini file is, otherwise... it won't work for some reason.

So, if you follow the above guide, your ini file is here: /usr/local/etc/murmur.ini

So the command you want to set the SuperUser password is:

murmurd -ini /usr/local/etc/murmur.ini -supw <YourSuperUserPassword>
 

DrKK

FreeNAS Generalissimo
Joined
Oct 15, 2013
Messages
3,630
Hi DrKK. Could you expand your instructions for step 1, please? I just want to make sure that my jail is properly installed and configured. Thank you!
Diedrichg: For some reason, I wasn't aware of your original inquiry. I must have not gotten the email, or accidentally ignored it.

Are you all set?
 

pelle1101

Dabbler
Joined
Apr 3, 2013
Messages
11
So I am performing a fresh install of Mumble on a portjail and I am receiving the following message after doing the make install. I also checked the /usr/local/etc/murmur.ini, and the file was never created. What am I doing wrong?

===> murmur-1.2.4 depends on file: /usr/local/lib/qt4/libQtCore.so - not found
===> Verifying install for /usr/local/lib/qt4/libQtCore.so in /usr/ports/devel/qt4-corelib
======================================================================

Qt 4 can be built with optional support for:
- Common UNIX Printing System (CUPS) (enabled by default)
- Network Audio System (NAS)
- Qt style that renders using GTK (QGTKSTYLE)

In order to enable them, you have to add
QT4_OPTIONS= CUPS NAS QGTKSTYLE
to your /etc/make.conf and compile devel/qt4-corelib and
x11-toolkits/qt4-gui ports.

Attention! Whenever you change the QT4_OPTIONS both
devel/qt4-corelib and x11-toolkits/qt4-gui ports must be rebuilt!

======================================================================
===> License LGPL21 accepted by the user
===> qt4-corelib-4.8.5_1 depends on file: /usr/local/sbin/pkg - found
=> qt-everywhere-opensource-src-4.8.5.tar.gz doesn't seem to exist in /usr/ports/distfiles/KDE.
=> Attempting to fetch http://download.qt-project.org/offi....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://download.qt-project.org/offi....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://master.qt-project.org/offici....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://master.qt-project.org/offici....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://www.mirrorservice.org/sites/....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://www.mirrorservice.org/sites/....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://www.nic.funet.fi/pub/mirrors....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://www.nic.funet.fi/pub/mirrors....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://qtmirror.ics.com/pub/qtproje....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://qtmirror.ics.com/pub/qtproje....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://anychimirror101.mirrors.tds.....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://anychimirror101.mirrors.tds.....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://www.las.ic.unicamp.br/pub/qt....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://www.las.ic.unicamp.br/pub/qt....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://linorg.usp.br/Qt/official_releases/qt/4.8/4.8.5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://linorg.usp.br/Qt/official_releases/qt/4.8/4.8.5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://ftp.jaist.ac.jp/pub/qtprojec....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://ftp.jaist.ac.jp/pub/qtprojec....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch http://mirrors.neusoft.edu.cn/qt/of....5//qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: http://mirrors.neusoft.edu.cn/qt/of....5//qt-everywhere-opensource-src-4.8.5.tar.gz: Not Found
=> Attempting to fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/KDE/qt-everywhere-opensource-src-4.8.5.tar.gz
fetch: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/KDE/qt-everywhere-opensource-src-4.8.5.tar.gz: File unavailable (e.g., file not found, no access)
=> Couldn't fetch it - please try to retrieve this
=> port manually into /usr/ports/distfiles/KDE and try again.
*** [do-fetch] Error code 1

Stop in /usr/ports/devel/qt4-corelib.
*** [build-depends] Error code 1

Stop in /usr/ports/audio/murmur.
*** [install] Error code 1

Stop in /usr/ports/audio/murmur.
 
Status
Not open for further replies.
Top