Thanks for this. I am using Ubuntu 18.04. I needed to make jamulus-start.ch executable to make this work - sudo chmod +x /usr/local/bin/jamulus-start.sh
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
thanks for the great tutorial!
Actually on the line reading:
Move this script to a permanent place (eg /usr/local/bin) and make it executable (sudo chmod 644 /usr/local/bin/jamulus-start.sh)
shouldn't it be 755 to make it executable?
Beside this, I have a weird issue:
I set up a cloud server to which I connect via ssh.
A friend in my same city (Barcelona) could see it in the server list and connect without problems.
The server is physically in Europe, from my workstation I can ping it with a lag of about 40ms; my friend can reach it as well with a 40ms average lag.
But I cannot see it in the server list nor connect through the IP of the server.
I tried both public, private and central server configurations, always with the same results...
Any idea? Any help?
Thanks!!!
Last edit: Ilaria 2020-03-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I cannot see it in the server list nor connect through the IP of the server.
Yes, this confused me as well. There is in fact a note on this in the HOWTO, but I was wondering whether I should make it more obvious:
"When testing a public server, there is a common network routing issue which means you will likely NOT see your server in your client's server list. However, those outside your local network should be able to see your server. When your server is visiable to clients, you should see entries in your log file every time they connect."
BTW @themagesolver when you say you can't connect to it, do you mean from your client using the "Server Name/Address" field in the Connection Setup window? If so I think that might be a separate issue.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
OK that's strange. It sounds like there might be some firewall issue between your LAN and the cloud server on the WAN if you friend can connect to it OK.
I'm not very familiar with Windows, but might it be that your client machine (or something else?) is blocking UDP 22124 requests?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello Gilgongo,
Actually I specified the server is in cloud, because it is not in my LAN...
So that's why I considered it shouldn't fall in that condition...
The fact is that I would like to be able to join as well... and I cannot, not even specifying the server in the settings...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have the same setup as you (server in cloud, client on my desktop machine on my LAN) and I can't see my server listed in the public list either. I think it's just a networking limitation and not much can be done about it.
However, I can connect to my server, but you can't. So that's a different issue I think and I'm not aware of anyone else reporting it.
Are you definitely able to send packets out to port 22124 from your LAN? Might there be a local firewall preventing that perhaps? You can try scanning for open UDP ports using
sudo nmap -sU -p 22124 [hostname]
EDIT: Sorry I should have asked the obvious quesiton: Can you connect to any servers, yours or not?
Last edit: Gilgongo 2020-03-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can connect to many servers yes, that's why it's so strange...
I can connect to many servers, my friend can connect to my server, but apparently I cannot connect to my server which is out of my LAN...
My client is Windows, so time to install nmap and I will try but I guess it should...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It seems to be tricky to scan UDP ports, so I don't know how useful that will be in tracking down the problem, but I would check any Windows firewall on the client machine.
Also, I have in the past cured mysterious network issues by simply rebooting the hardware involved. There might be some weird routing issue or packet-based oddness going on.
Last edit: Gilgongo 2020-03-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, I think UDP port scanning may not reveal much. nmap comes back with all UDP ports open/filtered for me :-(
Are you able to set up a private server on your LAN, and if so can you connect to that? Doing so would at least eliminate the possiblity of something within your network being the problem and would maybe imply something at your router or beyond.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
What I did try before the Linux server, was to use the Windows Server which comes with the installation. And it works perfectly, just the server has better resources than my laptop...
In the next days I could actually try to set it up on a Linux VM in VirtualBox... Though not sure the whole VM would add more complexity...
Last edit: Ilaria 2020-03-22
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yep, it's a simple KVM centos/fedora (can't remember now) on VirtualBox. Do you mean this HOWTO or you have a special one for VMs?
And, btw, thanks a lot for your time!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I mean the HOWTO assumes a "normal" networking and paths environment. I've not tested it with a container image or such like. Come to think of it, my host is in fact a KVM virtual machine, but it has no difference to a hardware one.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Gilgongo, great threat.
Although, we'd like some clarifications about the realtime (RT) thing against the Jack FAQ that states we don't need a realtime kernel. Assuming you wrote this tutorial for a casual Ubuntu 18.04 am I right thinking you agree?
Second, if informations to use RT Scheduling (which is different from RT kernel) are relevant in our case any user could use RT Scheduling as long as they belong to the "audio" group, and without niceness tweaking (but what about ionice?).
I understand that Jamulus (server) is not Jack, and maybe it isn't even an audio application. Or is it a mix of audio+network app?
A point from you aware developper would be a great for the ones that do not have the theorical background.
Thank you again.
Last edit: Gronaz 2020-03-23
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The HOWTO I wrote uses the "nosound" config for the Jamulus.pro compilation of the server, since its a "pure" server. Therefore Jack is not involved and the server is in effect not an audio app.
However, I don't know if that part of the HOWTO that says the start command "needs root permissions to optimise the Jamulus server process" is correct. It might be possible in Ubuntu to invoke the nice/ionice commands without root privs as you point out perhaps.
I'll see if I can find out.
EDIT:
As I suspected, it look like the only way to have a non-privileged account running a nice command would be to put that user in the sudoers file for that command (and without a password):
Well, the thing was also is it really usefull to use nice / ionice ? I asked because I'm aware of the qmake "CONFIG+=nosound" option and Jack team says nice makes no sense for audio. But I also know that even with "+=nosound", OPUS is behind isn't it ?
Well, maybe ionice is good for our servers, Jack team don't speak about it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Well, the thing was also is it really usefull to use nice / ionice ?
I guess that depends on the server's environment. It's reccommended to prioritise the CPU for the Jamulus process if you can, since anything you can do to minimise latency is good.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sorry if my assumptions / questions are stupid/newbie-ish, but I like to get going as fast as possible to overcome Corona restrictions for our small private chamber orchestra. :-) I have quite some experience with Linux as only desktop system, but I am not too familiar with network settings.
Is it sensible to run a Jamulus server behind a 50 MBit / 10 MBit DSL modem with DynDNS access from the outside? What latency is to be expected? I did understand that I need to open the respective port to let musicians in.
If yes: Would the available bandwidth support about 6 players with a sensibly low latency?
Can the server live on the same system as a client? Especially so, since both server and client must/should be operated in root mode to yield minimum latencies?
Kind regards, and thanks for your great effort,
Petra
Last edit: Petra-Kathi 2020-03-23
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, this is expected. Please see https://sourceforge.net/p/llcon/bugs/12/
One (I hope final!) question: what is the reccommended way of running the server on a non-default port?
Simply use the -p option to specify the port you want to use for your server.
Thanks for this. I am using Ubuntu 18.04. I needed to make jamulus-start.ch executable to make this work - sudo chmod +x /usr/local/bin/jamulus-start.sh
Hello,
thanks for the great tutorial!
Actually on the line reading:
Move this script to a permanent place (eg /usr/local/bin) and make it executable (sudo chmod 644 /usr/local/bin/jamulus-start.sh)
shouldn't it be 755 to make it executable?
Beside this, I have a weird issue:
I set up a cloud server to which I connect via ssh.
A friend in my same city (Barcelona) could see it in the server list and connect without problems.
The server is physically in Europe, from my workstation I can ping it with a lag of about 40ms; my friend can reach it as well with a 40ms average lag.
But I cannot see it in the server list nor connect through the IP of the server.
I tried both public, private and central server configurations, always with the same results...
Any idea? Any help?
Thanks!!!
Last edit: Ilaria 2020-03-22
Ah good catch - will correct that :-)
Yes, this confused me as well. There is in fact a note on this in the HOWTO, but I was wondering whether I should make it more obvious:
"When testing a public server, there is a common network routing issue which means you will likely NOT see your server in your client's server list. However, those outside your local network should be able to see your server. When your server is visiable to clients, you should see entries in your log file every time they connect."
At least that's what I understand from this issue: https://sourceforge.net/p/llcon/bugs/12/
BTW @themagesolver when you say you can't connect to it, do you mean from your client using the "Server Name/Address" field in the Connection Setup window? If so I think that might be a separate issue.
Yes, I cannot see it from my Win client.
I tried all the possible combinations of
@ Settings -> Central Server Address:
Default
IP
URL
IP+port (22124)
@ Connection Setup [it never appeared here to my Win client in the list] -> Server Name/Address -> Connect:
IP
URL
IP+port
My Jamulus Server Name
@ My Linux Jamulus Server:
Public
Private
* Central Server
OK that's strange. It sounds like there might be some firewall issue between your LAN and the cloud server on the WAN if you friend can connect to it OK.
I'm not very familiar with Windows, but might it be that your client machine (or something else?) is blocking UDP 22124 requests?
Hello Gilgongo,
Actually I specified the server is in cloud, because it is not in my LAN...
So that's why I considered it shouldn't fall in that condition...
The fact is that I would like to be able to join as well... and I cannot, not even specifying the server in the settings...
I have the same setup as you (server in cloud, client on my desktop machine on my LAN) and I can't see my server listed in the public list either. I think it's just a networking limitation and not much can be done about it.
However, I can connect to my server, but you can't. So that's a different issue I think and I'm not aware of anyone else reporting it.
Are you definitely able to send packets out to port 22124 from your LAN? Might there be a local firewall preventing that perhaps? You can try scanning for open UDP ports using
sudo nmap -sU -p 22124 [hostname]
EDIT: Sorry I should have asked the obvious quesiton: Can you connect to any servers, yours or not?
Last edit: Gilgongo 2020-03-22
I can connect to many servers yes, that's why it's so strange...
I can connect to many servers, my friend can connect to my server, but apparently I cannot connect to my server which is out of my LAN...
My client is Windows, so time to install nmap and I will try but I guess it should...
It seems to be tricky to scan UDP ports, so I don't know how useful that will be in tracking down the problem, but I would check any Windows firewall on the client machine.
Also, I have in the past cured mysterious network issues by simply rebooting the hardware involved. There might be some weird routing issue or packet-based oddness going on.
Last edit: Gilgongo 2020-03-22
Tried to update the system and reboot... and still the same...
Actually the port results as open/filtered...
Yes, I think UDP port scanning may not reveal much. nmap comes back with all UDP ports open/filtered for me :-(
Are you able to set up a private server on your LAN, and if so can you connect to that? Doing so would at least eliminate the possiblity of something within your network being the problem and would maybe imply something at your router or beyond.
What I did try before the Linux server, was to use the Windows Server which comes with the installation. And it works perfectly, just the server has better resources than my laptop...
In the next days I could actually try to set it up on a Linux VM in VirtualBox... Though not sure the whole VM would add more complexity...
Last edit: Ilaria 2020-03-22
If it's a KVM-style VM (not a chroot-style container like Docker) then it should be pretty simple (feel free to test my HOWTO!)
Yep, it's a simple KVM centos/fedora (can't remember now) on VirtualBox. Do you mean this HOWTO or you have a special one for VMs?
And, btw, thanks a lot for your time!
I mean the HOWTO assumes a "normal" networking and paths environment. I've not tested it with a container image or such like. Come to think of it, my host is in fact a KVM virtual machine, but it has no difference to a hardware one.
Hi Gilgongo, great threat.
Although, we'd like some clarifications about the realtime (RT) thing against the Jack FAQ that states we don't need a realtime kernel. Assuming you wrote this tutorial for a casual Ubuntu 18.04 am I right thinking you agree?
Second, if informations to use RT Scheduling (which is different from RT kernel) are relevant in our case any user could use RT Scheduling as long as they belong to the "audio" group, and without niceness tweaking (but what about ionice?).
I understand that Jamulus (server) is not Jack, and maybe it isn't even an audio application. Or is it a mix of audio+network app?
A point from you aware developper would be a great for the ones that do not have the theorical background.
Thank you again.
Last edit: Gronaz 2020-03-23
Thanks Gronaz! Good questions!
The HOWTO I wrote uses the "nosound" config for the Jamulus.pro compilation of the server, since its a "pure" server. Therefore Jack is not involved and the server is in effect not an audio app.
However, I don't know if that part of the HOWTO that says the start command "needs root permissions to optimise the Jamulus server process" is correct. It might be possible in Ubuntu to invoke the nice/ionice commands without root privs as you point out perhaps.
I'll see if I can find out.
EDIT:
As I suspected, it look like the only way to have a non-privileged account running a nice command would be to put that user in the sudoers file for that command (and without a password):
https://askubuntu.com/questions/178491/nice-command-without-root-privileges/
Last edit: Gilgongo 2020-03-23
Well, the thing was also is it really usefull to use nice / ionice ? I asked because I'm aware of the qmake "CONFIG+=nosound" option and Jack team says nice makes no sense for audio. But I also know that even with "+=nosound", OPUS is behind isn't it ?
Well, maybe ionice is good for our servers, Jack team don't speak about it.
I guess that depends on the server's environment. It's reccommended to prioritise the CPU for the Jamulus process if you can, since anything you can do to minimise latency is good.
Sorry if my assumptions / questions are stupid/newbie-ish, but I like to get going as fast as possible to overcome Corona restrictions for our small private chamber orchestra. :-) I have quite some experience with Linux as only desktop system, but I am not too familiar with network settings.
Is it sensible to run a Jamulus server behind a 50 MBit / 10 MBit DSL modem with DynDNS access from the outside? What latency is to be expected? I did understand that I need to open the respective port to let musicians in.
If yes: Would the available bandwidth support about 6 players with a sensibly low latency?
Can the server live on the same system as a client? Especially so, since both server and client must/should be operated in root mode to yield minimum latencies?
Kind regards, and thanks for your great effort,
Petra
Last edit: Petra-Kathi 2020-03-23