I am actually struggling with the exact scenario as Ivan is involved with here. Unfortunately, I'm not quite to where you are yet, so according to you more troubles loom on the horizon re: audio. We are trying to use x2go with Likewise Open connected to our corporate Active Directory and based upon your suggestion here, I've changed the id of the local group x2gousers to my LDAP group ID for x2gousers group in our corporate groups, in /etc/group and now my users in my LDAP group are able to authenticate successfully.
However, when connecting as an LDAP user via Likewise, I only get a blank/black screen upon session start. The session is active and shows as being connected (I see the user listed when I run "who"), but I can't do or see anything in that user's x2go session window. Whereas when I use a local user, it brings me right to a GNOME desktop and I can use it as normal with full audio. If you can help me figure this out, I can move onto the next issue which will be getting audio for Likewise LDAP users, which I see is where Ivan is stuck now as well. If we can get these last two issues resolved, we intend to roll this out on a much larger scale at our organization as well as demo it to a much larger audience at our parent company.
Thanks, Neil
This e-mail and any attachments are for the intended recipient(s) only and may contain proprietary, confidential material. If you are not the intended recipient, (even if the email address above is yours) do not use, retain, copy or disclose any part of this communication or any attachment as it is strictly prohibited and may be unlawful. If you believe that you have received this e-mail in error, please notify the sender immediately and permanently delete. This email may be a personal communication from the sender and as such does not represent the views of the company.
Hi Neil
I am actually struggling with the exact scenario as Ivan is involved with here. Unfortunately, I'm not quite to where you are yet, so according to you more troubles loom on the horizon re: audio. We are trying to use x2go with Likewise Open connected to our corporate Active Directory and based upon your suggestion here, I've changed the id of the local group x2gousers to my LDAP group ID for x2gousers group in our corporate groups, in /etc/group and now my users in my LDAP group are able to authenticate successfully.
I'm glad that this works at your side as well!
However, when connecting as an LDAP user via Likewise, I only get a blank/black screen upon session start. The session is active and shows as being connected (I see the user listed when I run "who"), but I can't do or see anything in that user's x2go session window. Whereas when I use a local user, it brings me right to a GNOME desktop and I can use it as normal with full audio. If you can help me figure this out, I can move onto the next issue which will be getting audio for Likewise LDAP users, which I see is where Ivan is stuck now as well. If we can get these last two issues resolved, we intend to roll this out on a much larger scale at our organization as well as demo it to a much larger audience at our parent company.
Please, provide more information about all versions that you use. For example, I'm using X2goclient 3.01-13 under Windows7 as client, because the latest version 3.01-14 doesn't work.
You have to investigate deeper. Try these tips:
Change your ssh logging by changing inside file: /etc/ssh/sshd_config - LogLevel INFO change to LogLevel DEBUG3 Then watch the authentication log: tail -f /var/log/auth.log .And login again (I know that you said that it authenticate successfully, still check this out)
Login locally on the Ubuntu server with: USERNAME@DOMAIN (although you can't see them through gdm or kdm), if you can successfully login to the domain locally. If you have troubles with that, then the problem is with likewise. BTW, are you using likewise-open? How you've configured it? Using domainjoin-gui? Can you see from System -> Administration -> Active Directory Membership. (You can see that with Local user of Ubuntu).
Try to login with SSH client (like putty for windows) using again USERNAME@DOMAIN, and the password. Then check if this login is successful.
If authentication is good, but there is blank/black screen, then try another: OS, Client, Client version. As I said above, the latest version doesn't work in my scenario. Hint: Don't try to connect with client from the same server, as it is not possible. If you use Windows, try to find other OS, install other (virtual if possible) Windows, Linux, whatever is easy for you.
Bottom line: It seem to be client problem, but you need to do further investigations to find out.
Best Regards Ivan
Adding PulseAudio development as side of this issue: https://tango.0pointer.de/pipermail/pulseaudio-discuss/2010-December/008468....
Still working on the issue...
Best Regards Ivan
Hi Again,
Here is something concrete that is wrong with the escape and especially the symbol "\"
LDAP user shell$ export | grep -i pulse declare -x PULSE_CLIENTCONFIG="/home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAINiboyadzi-63-1292403176_stDGNOME_dp32/.pulse-client.conf
LDAP user shell$ cd /home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAINiboyadzi-63-1292403176_stDGNOME_dp32/ bash: cd: /home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAINiboyadzi-63-1292403176_stDGNOME_dp32/: No such file or directory
The folder is called: /home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAIN\iboyadzi-63-1292403176_stDGNOME_dp32/ (note '\' between DOMAIN and iboyadzi)
Further: inside: /home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAIN\iboyadzi-63-1292403176_stDGNOME_dp32 folder have: cache-unix-kde-depth_32, C-DOMAIN\iboyadzi-63-1292403176_stDGNOME_dp32 (inside empty stats file) folders, and options and session.log files
Compared with Local User: the corresponding folder is without '\', thus is accessible, and there have 3 files more: .pulse-client.conf with content: default-server=localhost:30044 cookie-file=.x2go/C-iboyadzi-64...../.pulse-cookie .pulse-cookie (binary) cmdoutput with content: exec gnome-session
Can you, please, check and provide fix in the sources, for proper folder creation, or proper export of variables in the code.
Best Regards Ivan
2010/12/15 Ivan Boyadzhiev <ivancho.b@gmail.com>
Hi Again,
Here is something concrete that is wrong with the escape and especially the symbol "\"
LDAP user shell$ export | grep -i pulse declare -x PULSE_CLIENTCONFIG="/home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAINiboyadzi-63-1292403176_stDGNOME_dp32/.pulse-client.conf
LDAP user shell$ cd /home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAINiboyadzi-63-1292403176_stDGNOME_dp32/ bash: cd: /home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAINiboyadzi-63-1292403176_stDGNOME_dp32/: No such file or directory
The folder is called: /home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAIN\iboyadzi-63-1292403176_stDGNOME_dp32/ (note '\' between DOMAIN and iboyadzi)
Further: inside: /home/likewise-open/DOMAIN/iboyadzi/.x2go/C-DOMAIN\iboyadzi-63-1292403176_stDGNOME_dp32 folder have: cache-unix-kde-depth_32, C-DOMAIN\iboyadzi-63-1292403176_stDGNOME_dp32 (inside empty stats file) folders, and options and session.log files
Compared with Local User: the corresponding folder is without '\', thus is accessible, and there have 3 files more: .pulse-client.conf with content: default-server=localhost:30044 cookie-file=.x2go/C-iboyadzi-64...../.pulse-cookie .pulse-cookie (binary) cmdoutput with content: exec gnome-session
Can you, please, check and provide fix in the sources, for proper folder creation, or proper export of variables in the code.
Best Regards Ivan
Bingo!
This above is the exact problem.
I cleaned all the folders. Then I started new x2goclient session. While the session was starting, I've created symbolic folder without "\" symbol, in the next moment when the folder with "\" appeared. As result I had 2 folders in ~/.x2go/ - the one with "\" and symlink without "\". Then the 3 files .pulse-cookie; .pulse-client.conf and cmdoutput appeared, as well as the sound in my client!
That is the problem then. Can you, please, provide fix?
Thanks and Best Regards Ivan
Bingo!
This above is the exact problem.
I cleaned all the folders. Then I started new x2goclient session. While the session was starting, I've created symbolic folder without "\" symbol, in the next moment when the folder with "\" appeared. As result I had 2 folders in ~/.x2go/ - the one with "\" and symlink without "\". Then the 3 files .pulse-cookie; .pulse-client.conf and cmdoutput appeared, as well as the sound in my client!
That is the problem then. Can you, please, provide fix?
Hi hi, although this issue is happening on the server side (located in Ubuntu x2goserver), the code is actually sending from the client - reverse ssh.
I'm using x2goclient 3.01-13 on my Windows 7, as 3.01-14 doesn't work properly. Still I've tested x2goclient 3.01-14 on VMWare Ubuntu, and it doesn't solve this issue, infact, it doesn't have sound at all. I couldn't find x2goclient 3.01-13 sources, but I have found 3.01-14 sources, so I made my investigations there.
Before we start dig in the source:
We have 2 solutions: to use everywhere DOMAIN\user, or DOMAINuser. I think using everywhere DOMAIN\user is better, but it is complete up to you as development to decide.
Another problem: I've checked, and because of very same problem, sshfs can't map local folder with remote folder, because of non-existing /tmp/DOMAINuser_media folder.
Deep in the code: All sources are in the file: onmainwindow.cpp. Searching for .pulse-cookie and PULSE_CLIENTCONFIG lead us to the first places
row 3,227:
if ( sndSystem==PULSE )
{
startSoundServer=false;
QString scmd;
if ( !sshSndTunnel )
scmd="echo \"default-server=echo " "$SSH_CLIENT | awk '{print $1}'
:"+
sndPort+
"\"> ~/.x2go/C-"+
resumingSession.sessionId+
"/.pulse-client.conf"
";echo \"cookie-file=.x2go/C-"+
resumingSession.sessionId+
"/.pulse-cookie"+
"\">> ~/.x2go/C-"+
resumingSession.sessionId+
"/.pulse-client.conf";
row 4,274: cmd="PULSE_CLIENTCONFIG=~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf "+cmd;
Note: same variable: resumingSession.sessionId
Where is resumingSession initialise?
row 3,203: if ( newSession ) { QString sString=output.trimmed(); sString.replace ( '\n','|' ); host=resumingSession.server; resumingSession=getNewSessionFromString ( sString );
getNewSessionFromString and sString:
row 4,160: x2goSession ONMainWindow::getNewSessionFromString ( const QString& string ) { QStringList lst=string.split ( '|' ); x2goSession s; s.display=lst[0]; s.cookie=lst[1]; s.agentPid=lst[2]; s.sessionId=lst[3];
row 3,205: sString comes from: output.trimmed();
Here is not possible for QT function trimmed() to remove "\" because this howto: http://doc.qt.nokia.com/4.7-snapshot/qstring.html#trimmed
Then where is output coming from? - From the Method, which is:
row 3,089: void ONMainWindow::slot_retResumeSess ( bool result, QString output, sshProcess* proc )
Where is slot_retResumeSess called from? Various places, but I think it is from here:
row 2,724: connect ( proc,SIGNAL ( sshFinished ( bool, QString,sshProcess* ) ), this,SLOT ( slot_retResumeSess ( bool, QString, sshProcess* ) ) );
Still there is NO parameter given for second variable, which should come as output?!
Still working on ...
Best Regards Ivan
On Wed, 2010-12-15 at 16:19 +0200, Ivan Boyadzhiev wrote:
Bingo! This above is the exact problem. I cleaned all the folders. Then I started new x2goclient session. While the session was starting, I've created symbolic folder without "\" symbol, in the next moment when the folder with "\" appeared. As result I had 2 folders in ~/.x2go/ - the one with "\" and symlink without "\". Then the 3 files .pulse-cookie; .pulse-client.conf and cmdoutput appeared, as well as the sound in my client! That is the problem then. Can you, please, provide fix?
Hi hi, although this issue is happening on the server side (located in Ubuntu x2goserver), the code is actually sending from the client - reverse ssh.
I'm using x2goclient 3.01-13 on my Windows 7, as 3.01-14 doesn't work properly. Still I've tested x2goclient 3.01-14 on VMWare Ubuntu, and it doesn't solve this issue, infact, it doesn't have sound at all. I couldn't find x2goclient 3.01-13 sources, but I have found 3.01-14 sources, so I made my investigations there.
Before we start dig in the source:
- We have problem with creating 3 files (.pulse-cookie; .pulse-client.conf, cmdoutput)
- We have problem with not properly set environment (PULSE_CLIENTCONFIG) All these errors are because:
- These files are located in non-existing folder (without "\")
- This environment is pointing to non-existing folder (without "\")
We have 2 solutions: to use everywhere DOMAIN\user, or DOMAINuser. I think using everywhere DOMAIN\user is better, but it is complete up to you as development to decide.
Another problem: I've checked, and because of very same problem, sshfs can't map local folder with remote folder, because of non-existing /tmp/DOMAINuser_media folder.
Deep in the code: All sources are in the file: onmainwindow.cpp. Searching for .pulse-cookie and PULSE_CLIENTCONFIG lead us to the first places
row 3,227: if ( sndSystem==PULSE ) { startSoundServer=false; QString scmd; if ( !sshSndTunnel ) scmd="echo \"default-server=
echo " "$SSH_CLIENT | awk '{print $1}'
:"+ sndPort+ "\"> ~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf" ";echo \"cookie-file=.x2go/C-"+ resumingSession.sessionId+ "/.pulse-cookie"+ "\">> ~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf";row 4,274: cmd="PULSE_CLIENTCONFIG=~/.x2go/C-"+ resumingSession.sessionId+ "/.pulse-client.conf "+cmd;
Note: same variable: resumingSession.sessionId
Where is resumingSession initialise?
row 3,203: if ( newSession ) { QString sString=output.trimmed(); sString.replace ( '\n','|' ); host=resumingSession.server; resumingSession=getNewSessionFromString ( sString );
getNewSessionFromString and sString:
row 4,160: x2goSession ONMainWindow::getNewSessionFromString ( const QString& string ) { QStringList lst=string.split ( '|' ); x2goSession s; s.display=lst[0]; s.cookie=lst[1]; s.agentPid=lst[2]; s.sessionId=lst[3];
row 3,205: sString comes from: output.trimmed();
Here is not possible for QT function trimmed() to remove "\" because this howto: http://doc.qt.nokia.com/4.7-snapshot/qstring.html#trimmed
Then where is output coming from? - From the Method, which is:
row 3,089: void ONMainWindow::slot_retResumeSess ( bool result, QString output, sshProcess* proc )
Where is slot_retResumeSess called from? Various places, but I think it is from here:
row 2,724: connect ( proc,SIGNAL ( sshFinished ( bool, QString,sshProcess* ) ), this,SLOT ( slot_retResumeSess ( bool, QString, sshProcess* ) ) );
Still there is NO parameter given for second variable, which should come as output?!
Still working on ...
<snip> Thank you, Ivan, for all the detailed work you are doing to troubleshoot this - John