Thread: Re: incorrect keyboard mapping on MacOS Lion - oops
Status: Beta
Brought to you by:
felfert
From: Chris <ch...@cc...> - 2013-08-20 16:48:11
|
Anna Nierenberg <am...@ph...> wrote on 20/08/2013 16:00:00: > Hi Chris, > I noticed that error yesterday in one of the log files and added > the space already: > > if [ "$client" = "macosx" ] ; then > changeparam keyboard query > fi > > I wonder why it's not changing the parameter value? Well Anna if you've fixed it already then please send me a full copy of the nxacl you ust used and lets see what your changeparam really does . . . > > Thanks, > > Anna |
From: Anna N. <am...@ph...> - 2013-08-20 17:00:13
|
nxacl is copied below: #!/bin/bash # Syntax: getparam <param> getparam() { stringinstring "&$1=" "$CMDLINE" || return 1 echo "$CMDLINE" | tr "&" "\n" | egrep "^"$1"=" | awk -F= '{ VAL=$2 } END { print VAL }' return 0 } # Syntax: changeparam <param> <value> # Don't use & in value its the separator. changeparam() { CMDLINE=$(echo "$CMDLINE" | tr "&" "\n" | sed "s&^$1=.*&$1=$2&g" | tr "\n" "&") } CMDLINE="$1" # Example 0: All allowed allow_all() { # Parameters unchanged echo "$CMDLINE" # Session allowed exit 0 } # Example 1: Allow only unix-kde sessions, deny others allow_unix_kde() { type=$(getparam type) if [ "$type" != "unix-kde" ] then echo "Only sessions with type unix-kde are allowed." exit 1 fi allow_all } # Example 3: Allow only unix-kde sessions, change type always to unix-kde and virtualdesktop=1, rootless=0 allow_unix_kde_2() { changeparam type unix-kde changeparam virtualdesktop 1 changeparam rootless 0 allow_all } # # You can make as complex samples as you want, if you have one, I would be very interested! # Fabian # # Send it to: Fre...@kd.... # if [ "$client" = "macosx" ] ; then changeparam keyboard query fi allow_all On Aug 20, 2013, at 9:47 AM, Chris wrote: > > Anna Nierenberg <am...@ph...> wrote on 20/08/2013 16:00:00: > > > Hi Chris, > > I noticed that error yesterday in one of the log files and added > > the space already: > > > > if [ "$client" = "macosx" ] ; then > > changeparam keyboard query > > fi > > > > I wonder why it's not changing the parameter value? > > Well Anna if you've fixed it already > then > please send me a full copy of the nxacl you ust used > and > lets see what your changeparam really does . . . > > > > > Thanks, > > > > Anna > ------------------------------------------------------------------------------ > Introducing Performance Central, a new site from SourceForge and > AppDynamics. Performance Central is your source for news, insights, > analysis and resources for efficient Application Performance Management. > Visit us today! > http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk_______________________________________________ > Opennx-devel mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opennx-devel |
From: Chris <ch...@cc...> - 2013-08-20 17:34:04
|
> Anna Nierenberg <am...@ph...> wrote on 20/08/2013 16:00:00: Definitely asleap on my feat this weak . . client=$(getparam client) if [ "$client" = "macosx" ] ; then changeparam keyboard query fi |
From: Anna N. <am...@ph...> - 2013-08-20 18:41:20
|
Hi Chris, I tried to implement that and there was an error in getparam 'stringinstring command not found'. Is something not getting imported properly? I tried getting rid of the if statement and just putting a line changeparam keyboard query, but that did not help. I Finally, I decided to see what would happen if I hardcoded 'keyboard=query' in nxnode line 1171, and now my keyboard works!!!!!!!!!! The problem must have something to do with nxacl not getting called at the right time. I deliberately put a nonexistent command 'cactus' in the nxacl file and found that it gets printed after startsession is called (I've copied from my nxlog below): 11:33:34: NX> 105 11:33:34: startsession --session="hanuta3" --type="unix-gnome" --cache="8M" --images="32M" --link="adsl" --geometry="1920x1065" --screeninfo="1920x1200x32+render" --keyboard="empty/empty" --backingstore="1" --encryption="1" --composite="1" --shmem="1" --shpix="1" --streaming="1" --samba="0" --cups="0" --nodelay="1" --defer="0" --client="macosx" --media="0" --strict="0" --aux="1" 11:33:35: 11:33:35: /usr/libexec/nx/nxacl: line 19: cactus: command not found I would naively think that nxacl should get called first so that the keyboard parameter can be adjusted? Maybe not? Anyway we're definitely on the right track!!!!!! Anna On Aug 20, 2013, at 10:33 AM, Chris wrote: > > > Anna Nierenberg <am...@ph...> wrote on 20/08/2013 16:00:00: > > Definitely asleap on my feat this weak . . > > > > client=$(getparam client) > > if [ "$client" = "macosx" ] ; then > changeparam keyboard query > fi > > > ------------------------------------------------------------------------------ > Introducing Performance Central, a new site from SourceForge and > AppDynamics. Performance Central is your source for news, insights, > analysis and resources for efficient Application Performance Management. > Visit us today! > http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk_______________________________________________ > Opennx-devel mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opennx-devel |
From: Chris <ch...@cc...> - 2013-08-20 19:49:51
|
Anna Nierenberg <am...@ph...> wrote on 20/08/2013 19:41:00: > Hi Chris, > I tried to implement that and there was an error in getparam > 'stringinstring command not found'. Is something not getting > imported properly? stringinstring() and getparam() are both defined at the begining of nxnode and nxserver but only getparam is in nxacl.sample I just checked a one of my SuSE nxacl-s and find I've added stringinstring myself, so that will be the issue. I see centos has it missing too . . . So try adding the function at the begining of your nxacl :- stringinstring(){ case "$2" in *$1*) return 0;; esac return 1 } [SNIP] > > Anyway we're definitely on the right track!!!!!! > > Anna It's not quite a fix but if it works . . . It might just be choosing the default "us" tho' What keyboard is it actually selecting ?? Sergey might be able to do the same thing using one of his scripts . . |
From: Sergey S. <sst...@an...> - 2013-08-20 20:25:21
|
Hi Chris, On 8/20/2013 2:49 PM, Chris wrote: > Sergey might be able to do the same thing > using one of his scripts . . > As I mentioned before, we use a commercial NX here; so no nxacl and no way to patch nxnode, I guess. We tried to patch the OpenNX osdep.c file around line 688: #if 0 // ifdef __WXMAC__ if ((_kbd[0] == '\0') || strstr(_kbd, "empty")) { strncpy(_kbd, getMacKeyboard(), sizeof(_kbd)); } #endif We wanted to replace there the getMacKeyboard() call by "query". Unfortunately, we failed compiling wxwidgets under MacOS-10.8, which was required in order to compile OpenNX. We do not have our own Macs and therefore no much experience with MacOS here. On the other hand, the OpenNX Wiki states that the build is unlikely possible at all on MacOS-10.6 and after: http://sourceforge.net/apps/mediawiki/opennx/index.php?title=How_to_build_OpenNX#Building_on_Mac_OSX Is this statement still correct? How do people build OpenNX for the latest versions of MacOS? I see your point that with the "query" option the NX server may be just picking a default keyboard. To test that, it would be interesting to connect to the nxnode patched by Anna from a Mac with non-standard keyboard (e.g. from some laptop-type small keyboard where not all keys are present). Would it help? Thanks, Sergey |
From: Anna N. <am...@ph...> - 2013-08-20 21:17:10
|
Hi, Sorry if I didn't mention it before but I am connecting from a Macbook pro laptop Anna On 08/20/2013 01:27 PM, Sergey Stepanov wrote: > Hi Chris, > > > On 8/20/2013 2:49 PM, Chris wrote: >> Sergey might be able to do the same thing >> using one of his scripts . . >> > As I mentioned before, we use a commercial NX here; so no nxacl and > no way to patch nxnode, I guess. We tried to patch the OpenNX osdep.c > file around line 688: > > #if 0 // ifdef __WXMAC__ > if ((_kbd[0] == '\0') || strstr(_kbd, "empty")) { > strncpy(_kbd, getMacKeyboard(), sizeof(_kbd)); > } > #endif > > We wanted to replace there the getMacKeyboard() call by "query". > Unfortunately, we failed compiling wxwidgets under MacOS-10.8, > which was required in order to compile OpenNX. We do not have > our own Macs and therefore no much experience with MacOS here. > On the other hand, the OpenNX Wiki states that the build is > unlikely possible at all on MacOS-10.6 and after: > > http://sourceforge.net/apps/mediawiki/opennx/index.php?title=How_to_build_OpenNX#Building_on_Mac_OSX > > Is this statement still correct? How do people build OpenNX for > the latest versions of MacOS? > > I see your point that with the "query" option the NX server may be > just picking a default keyboard. To test that, it would be interesting > to connect to the nxnode patched by Anna from a Mac with non-standard > keyboard (e.g. from some laptop-type small keyboard where not all keys > are present). Would it help? > > Thanks, > > Sergey > > > > ------------------------------------------------------------------------------ > Introducing Performance Central, a new site from SourceForge and > AppDynamics. Performance Central is your source for news, insights, > analysis and resources for efficient Application Performance Management. > Visit us today! > http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk > _______________________________________________ > Opennx-devel mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opennx-devel |
From: Chris <ch...@cc...> - 2013-08-21 20:10:42
|
Anna Nierenberg <am...@ph...> wrote on 20/08/2013 22:17:02: > Hi, > Sorry if I didn't mention it before but I am connecting from a > Macbook pro laptop > > Anna [SNIP] > > I see your point that with the "query" option the NX server may be > > just picking a default keyboard. To test that, it would be interesting > > to connect to the nxnode patched by Anna from a Mac with non-standard > > keyboard (e.g. from some laptop-type small keyboard where not all keys > > are present). Would it help? > > > > Thanks, > > > > Sergey Well, let's try with linux and a UK (gb) keyboard anyway . . . The workstation :- _XKB_RULES_NAMES(STRING) = "evdev", "evdev", "gb", "", "" As I normally run with no keyboard parameter change NX> 105 startsession --session="Server" . . . --keyboard="evdev/gb" Info: Using /usr/bin/nxacl to change session parameters or deny session. keyboard=evdev/gb _XKB_RULES_NAMES(STRING) = "xfree86", "evdev", "gb", "", "" and nxacl changing to keyboard=query > 105 startsession --session="Server" . . . --keyboard="evdev/gb" Info: Using /usr/bin/nxacl to change session parameters or deny session. &keyboard=query _XKB_RULES_NAMES(STRING) = "xfree86", "pc102", "us", "", "" |
From: Chris <ch...@cc...> - 2013-08-21 21:21:24
|
"Chris" <ch...@cc...> wrote on 21/08/2013 21:10:29: > Well, let's try with linux and a UK (gb) keyboard anyway . . . > > The workstation :- > > _XKB_RULES_NAMES(STRING) = "evdev", "evdev", "gb", "", "" > > > As I normally run with no keyboard parameter change > > NX> 105 startsession --session="Server" . . . > > --keyboard="evdev/gb" > > Info: Using /usr/bin/nxacl to change session parameters or deny session. > > keyboard=evdev/gb > > _XKB_RULES_NAMES(STRING) = "xfree86", "evdev", "gb", "", "" > > and > > nxacl changing to keyboard=query > > > 105 startsession --session="Server" . . . > > --keyboard="evdev/gb" > > Info: Using /usr/bin/nxacl to change session parameters or deny session. > > &keyboard=query > > _XKB_RULES_NAMES(STRING) = "xfree86", "pc102", "us", "", "" . . . and getting sore-sey at line 865 in :- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c if ((nxagentKeyboard != NULL) && (strcmp(nxagentKeyboard, "query") !=0)) { la la etc } else { layout = XKB_DFLT_KB_LAYOUT; model = XKB_DFLT_KB_MODEL; #ifdef TEST fprintf(stderr, "nxagentKeyboardProc: Using default keyboard: model [%s] layout [%s].\n", model, layout); #endif } and back at line 141 all becomes clear #ifndef XKB_DFLT_RULES_FILE #define XKB_DFLT_RULES_FILE "xfree86" #endif #ifndef XKB_ALTS_RULES_FILE #define XKB_ALTS_RULES_FILE "xorg" #endif #ifndef XKB_DFLT_KB_LAYOUT #define XKB_DFLT_KB_LAYOUT "us" #endif #ifndef XKB_DFLT_KB_MODEL #define XKB_DFLT_KB_MODEL "pc102" #endif So Sergey, we run slowly out of options, but what was the reason for using Nomachines NX, you posted:- "We have to use commercial NX over FreeNX because it is easier for our users: most of them would have problems with importing the shared keys" Do you mean the "nx" user ssh key ?? You still need that with opennx don't you ?? |
From: Sergey S. <sst...@an...> - 2013-08-22 17:02:48
|
Hi Chris, On 8/21/2013 4:21 PM, Chris wrote: > > "Chris" <ch...@cc...> wrote on 21/08/2013 21:10:29: > > > Well, let's try with linux and a UK (gb) keyboard anyway . . . > > > > The workstation :- > > > > _XKB_RULES_NAMES(STRING) = "evdev", "evdev", "gb", "", "" > > > > > > As I normally run with no keyboard parameter change > > > > NX> 105 startsession --session="Server" . . . > > > > --keyboard="evdev/gb" > > > > Info: Using /usr/bin/nxacl to change session parameters or deny session. > > > > keyboard=evdev/gb > > > > _XKB_RULES_NAMES(STRING) = "xfree86", "evdev", "gb", "", "" > > > > and > > > > nxacl changing to keyboard=query > > > > > 105 startsession --session="Server" . . . > > > > --keyboard="evdev/gb" > > > > Info: Using /usr/bin/nxacl to change session parameters or deny session. > > > > &keyboard=query > > > > _XKB_RULES_NAMES(STRING) = "xfree86", "pc102", "us", "", "" > > > > . . . and getting sore-sey at line 865 in :- > > nx-X11/programs/Xserver/hw/nxagent/Keyboard.c > > > if ((nxagentKeyboard != NULL) && (strcmp(nxagentKeyboard, "query") !=0)) > { > la la etc > } > else > { > layout = XKB_DFLT_KB_LAYOUT; > model = XKB_DFLT_KB_MODEL; > > #ifdef TEST > fprintf(stderr, "nxagentKeyboardProc: Using default keyboard: > model [%s] layout [%s].\n", > model, layout); > #endif > } > > > and back at line 141 all becomes clear > > > #ifndef XKB_DFLT_RULES_FILE > #define XKB_DFLT_RULES_FILE "xfree86" > #endif > #ifndef XKB_ALTS_RULES_FILE > #define XKB_ALTS_RULES_FILE "xorg" > #endif > #ifndef XKB_DFLT_KB_LAYOUT > #define XKB_DFLT_KB_LAYOUT "us" > #endif > #ifndef XKB_DFLT_KB_MODEL > #define XKB_DFLT_KB_MODEL "pc102" > #endif The above applies to the freenx code and the things might be different with the NOMACHINE NX server. We have the statement from the NOMACHINE developers that if they receive keyboard "query", the connection should work with their server. If it does not, then I have good reasons to expect that they will fix their server because I have had long exchange with them about the issue. That is why I would prefer to concentrate on tweaking OpenNX to send "query" from Mac and leave freenx out of the loop. > So Sergey, we run slowly out of options, > but > what was the reason for using Nomachines NX, you posted:- > > "We have to use commercial NX over FreeNX because it is easier for our > users: most of them would have problems with importing the shared keys" > > Do you mean the "nx" user ssh key ?? > > You still need that with opennx don't you ?? Absolutely not. When we are using the NOMACHINE servers neither us on the server side nor users on their side need to do anything to add new NX user: they just connect to our NOMACHINE version-3.5 with their ssh accounts. The same applies to both NOMACHINE client and OpenNX. This is a tremendous help for us because we have inexperienced users changing every day. Thanks, Sergey |
From: Chris <ch...@cc...> - 2013-08-22 17:42:15
|
Sergey Stepanov <sst...@an...> wrote on 22/08/2013 18:04:37: > Hi Chris, > The above applies to the freenx code and the things might be different > with the NOMACHINE NX server. We have the statement from the NOMACHINE > developers that if they receive keyboard "query", the connection should > work with their server. If it does not, then I have good reasons to > expect that they will fix their server because I have had long exchange > with them about the issue. That is why I would prefer to concentrate on > tweaking OpenNX to send "query" from Mac and leave freenx out of the > loop. That code is part of nxagent from nomachine, released as open source so it will be the same for V3 of nomachine's current product . . . So it (keyboard=query) will work provided xfree86 xorg us pc102 works. If that's all you need then you're away if you can send "query", but you still need a client that works with macosx or a temp solution in the meantime. If you can't update opennx or nxclient or find a script on the nomachine server which will update the keyboard param ( try all of them ) or run though a ssh proxy or some such which can update the keyboard parameter then you will need to wait for a macos fix from nomachine (who are busy with V4), do you have an ETA ?? > Absolutely not. When we are using the NOMACHINE servers neither us on > the server side nor users on their side need to do anything to add new > NX user: they just connect to our NOMACHINE version-3.5 with their ssh > accounts. The same applies to both NOMACHINE client and OpenNX. This > is a tremendous help for us because we have inexperienced users > changing every day. Are you just using the default nomachine key between nxclient/opennx and your servers ??? eg. -----BEGIN DSA PRIVATE KEY----- MIIBuwIBAAKBgQCXv9AzQXjxvXWC1qu3CdEqskX9YomTfyG865gb4D02ZwWuRU/9 C3I9/bEWLdaWgJYXIcFJsMCIkmWjjeSZyTmeoypI1iLifTHUxn3b7WNWi8AzKcVF aBsBGiljsop9NiD1mEpA0G+nHHrhvTXz7pUvYrsrXcdMyM6rxqn77nbbnwIVALCi xFdHZADw5KAVZI7r6QatEkqLAoGBAI4L1TQGFkq5xQ/nIIciW8setAAIyrcWdK/z 5/ZPeELdq70KDJxoLf81NL/8uIc4PoNyTRJjtT3R4f8Az1TsZWeh2+ReCEJxDWgG fbk2YhRqoQTtXPFsI4qvzBWct42WonWqyyb1bPBHk+JmXFscJu5yFQ+JUVNsENpY +Gkz3HqTAoGANlgcCuA4wrC+3Cic9CFkqiwO/Rn1vk8dvGuEQqFJ6f6LVfPfRTfa QU7TGVLk2CzY4dasrwxJ1f6FsT8DHTNGnxELPKRuLstGrFY/PR7KeafeFZDf+fJ3 mbX5nxrld3wi5titTnX+8s4IKv29HJguPvOK/SI7cjzA+SqNfD7qEo8CFDIm1xRf 8xAPsSKs6yZ6j1FNklfu -----END DSA PRIVATE KEY----- This of course works with FreeNX too . . > > Thanks, > > Sergey > > |
From: Sergey S. <sst...@an...> - 2013-08-22 20:50:40
|
Hi Chris, thanks for the explanations. On 8/22/2013 12:42 PM, Chris wrote: > > Sergey Stepanov <sst...@an...> wrote on 22/08/2013 18:04:37: > > > Hi Chris, > > > The above applies to the freenx code and the things might be different > > with the NOMACHINE NX server. We have the statement from the NOMACHINE > > developers that if they receive keyboard "query", the connection should > > work with their server. If it does not, then I have good reasons to > > expect that they will fix their server because I have had long exchange > > with them about the issue. That is why I would prefer to concentrate on > > tweaking OpenNX to send "query" from Mac and leave freenx out of the > > loop. > > > That code is part of nxagent from nomachine, released as open source > so > it will be the same for V3 of nomachine's current product . . . > > So it (keyboard=query) will work provided > > xfree86 xorg us pc102 > > works. > > If that's all you need then you're away if you can send "query", > but > you still need a client that works with macosx > or > a temp solution in the meantime. Perhaps this will work for 95% of our users, but we have some international users too. If you do not mind I will communicate your finding to NOMACHINE. > If you can't update > opennx or nxclient > or > find a script on the nomachine server which will > update the keyboard param ( try all of them ) > or > run though a ssh proxy or some such which can update the > keyboard parameter > then > you will need to wait for a macos fix from nomachine (who are busy with > V4), > do you have an ETA ?? > > > > Absolutely not. When we are using the NOMACHINE servers neither us on > > the server side nor users on their side need to do anything to add new > > NX user: they just connect to our NOMACHINE version-3.5 with their ssh > > accounts. The same applies to both NOMACHINE client and OpenNX. This > > is a tremendous help for us because we have inexperienced users > > changing every day. > > Are you just using the default nomachine key between nxclient/opennx > and your servers ??? > > eg. > > -----BEGIN DSA PRIVATE KEY----- > MIIBuwIBAAKBgQCXv9AzQXjxvXWC1qu3CdEqskX9YomTfyG865gb4D02ZwWuRU/9 > C3I9/bEWLdaWgJYXIcFJsMCIkmWjjeSZyTmeoypI1iLifTHUxn3b7WNWi8AzKcVF > aBsBGiljsop9NiD1mEpA0G+nHHrhvTXz7pUvYrsrXcdMyM6rxqn77nbbnwIVALCi > xFdHZADw5KAVZI7r6QatEkqLAoGBAI4L1TQGFkq5xQ/nIIciW8setAAIyrcWdK/z > 5/ZPeELdq70KDJxoLf81NL/8uIc4PoNyTRJjtT3R4f8Az1TsZWeh2+ReCEJxDWgG > fbk2YhRqoQTtXPFsI4qvzBWct42WonWqyyb1bPBHk+JmXFscJu5yFQ+JUVNsENpY > +Gkz3HqTAoGANlgcCuA4wrC+3Cic9CFkqiwO/Rn1vk8dvGuEQqFJ6f6LVfPfRTfa > QU7TGVLk2CzY4dasrwxJ1f6FsT8DHTNGnxELPKRuLstGrFY/PR7KeafeFZDf+fJ3 > mbX5nxrld3wi5titTnX+8s4IKv29HJguPvOK/SI7cjzA+SqNfD7qEo8CFDIm1xRf > 8xAPsSKs6yZ6j1FNklfu > -----END DSA PRIVATE KEY----- > > This of course works with FreeNX too . . Frankly, I never bothered to dig into what key is used: the things just worked with the NOMACHINE server. Perhaps you are right: the default NOMACHINE key is used. As to FreeNX, the CentOS (we run on CentOS-6) HowTo wiki about FreeNX: http://wiki.centos.org/HowTos/FreeNX does not suggest any way to bypass adding nxserver usernames/passwords and importing shared key into the client app. Can you refer me to some link explaining how to do that? Thanks, Sergey |
From: Hugues T. <hug...@gm...> - 2013-08-22 21:36:22
|
Hello Sergey, I use the freenx server on all my CentOS compute servers, and i do not need to add NX user accounts, indeed users simply use their SSH login. I guarantee that this works. The "key" to simplicity is indeed to use the default NX client RSA key. If I'm not mistaken, you can simply reuse the private key from NoMachine, which should be at /usr/NX/share/keys/default.id_dsa.key ; you don't need to worry about the public key, since all NX client use it by default. Of course, you can create a new key for each server, by default this is what freenx server does. Then to import the key, you need to give users the public key of the server in text form (in an email or otherwise), and they can import it via the "advanced" configuration dialog of either NXClient 3.5 or OpenNX ; they are almost identical in this respect. This is the documentation for Ubuntu, I believe it would not be that hard to adapt to CentOS. The CentOS HOWTO is very misleading. https://help.ubuntu.com/community/FreeNX I have found the NoMachine people not very helpful in the last few years. They seem to concentrate on NX4, but so far this has been unusable for us at least. I doubt they will spend a lot of time on NXserver 3.x At any rate, let us know how you go. All the best. On Aug 22, 2013, at 10:52 PM, Sergey Stepanov <sst...@an...> wrote: > Hi Chris, > thanks for the explanations. > > On 8/22/2013 12:42 PM, Chris wrote: >> >> Sergey Stepanov <sst...@an...> wrote on 22/08/2013 18:04:37: >> >>> Hi Chris, >> >>> The above applies to the freenx code and the things might be different >>> with the NOMACHINE NX server. We have the statement from the NOMACHINE >>> developers that if they receive keyboard "query", the connection should >>> work with their server. If it does not, then I have good reasons to >>> expect that they will fix their server because I have had long exchange >>> with them about the issue. That is why I would prefer to concentrate on >>> tweaking OpenNX to send "query" from Mac and leave freenx out of the >>> loop. >> >> >> That code is part of nxagent from nomachine, released as open source >> so >> it will be the same for V3 of nomachine's current product . . . >> >> So it (keyboard=query) will work provided >> >> xfree86 xorg us pc102 >> >> works. >> >> If that's all you need then you're away if you can send "query", >> but >> you still need a client that works with macosx >> or >> a temp solution in the meantime. > > Perhaps this will work for 95% of our users, but we have some > international users too. If you do not mind I will communicate > your finding to NOMACHINE. > > > >> If you can't update >> opennx or nxclient >> or >> find a script on the nomachine server which will >> update the keyboard param ( try all of them ) >> or >> run though a ssh proxy or some such which can update the >> keyboard parameter >> then >> you will need to wait for a macos fix from nomachine (who are busy with >> V4), >> do you have an ETA ?? >> >> >>> Absolutely not. When we are using the NOMACHINE servers neither us on >>> the server side nor users on their side need to do anything to add new >>> NX user: they just connect to our NOMACHINE version-3.5 with their ssh >>> accounts. The same applies to both NOMACHINE client and OpenNX. This >>> is a tremendous help for us because we have inexperienced users >>> changing every day. >> >> Are you just using the default nomachine key between nxclient/opennx >> and your servers ??? >> >> eg. >> >> -----BEGIN DSA PRIVATE KEY----- >> MIIBuwIBAAKBgQCXv9AzQXjxvXWC1qu3CdEqskX9YomTfyG865gb4D02ZwWuRU/9 >> C3I9/bEWLdaWgJYXIcFJsMCIkmWjjeSZyTmeoypI1iLifTHUxn3b7WNWi8AzKcVF >> aBsBGiljsop9NiD1mEpA0G+nHHrhvTXz7pUvYrsrXcdMyM6rxqn77nbbnwIVALCi >> xFdHZADw5KAVZI7r6QatEkqLAoGBAI4L1TQGFkq5xQ/nIIciW8setAAIyrcWdK/z >> 5/ZPeELdq70KDJxoLf81NL/8uIc4PoNyTRJjtT3R4f8Az1TsZWeh2+ReCEJxDWgG >> fbk2YhRqoQTtXPFsI4qvzBWct42WonWqyyb1bPBHk+JmXFscJu5yFQ+JUVNsENpY >> +Gkz3HqTAoGANlgcCuA4wrC+3Cic9CFkqiwO/Rn1vk8dvGuEQqFJ6f6LVfPfRTfa >> QU7TGVLk2CzY4dasrwxJ1f6FsT8DHTNGnxELPKRuLstGrFY/PR7KeafeFZDf+fJ3 >> mbX5nxrld3wi5titTnX+8s4IKv29HJguPvOK/SI7cjzA+SqNfD7qEo8CFDIm1xRf >> 8xAPsSKs6yZ6j1FNklfu >> -----END DSA PRIVATE KEY----- >> >> This of course works with FreeNX too . . > > Frankly, I never bothered to dig into what key is used: the things > just worked with the NOMACHINE server. Perhaps you are right: the > default NOMACHINE key is used. As to FreeNX, the CentOS (we run on > CentOS-6) HowTo wiki about FreeNX: > http://wiki.centos.org/HowTos/FreeNX > does not suggest any way to bypass adding nxserver usernames/passwords > and importing shared key into the client app. Can you refer me to some > link explaining how to do that? > > Thanks, > > Sergey > > > ------------------------------------------------------------------------------ > Introducing Performance Central, a new site from SourceForge and > AppDynamics. Performance Central is your source for news, insights, > analysis and resources for efficient Application Performance Management. > Visit us today! > http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk > _______________________________________________ > Opennx-devel mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/opennx-devel |
From: Sergey S. <sst...@an...> - 2013-08-22 23:10:30
|
Thank you Hugues: It was a good hint. The procedure for CentOS-6 happens to be: yum install freenx nx service freenx-server stop nxsetup --install --setup-nomachine-key --clean --purge service freenx-server start Apparently the nxsetup routine of FreeNX has a "--setup-nomachine-key" flag to replace the key with the one from NOMACHINE. -- Sergey On 8/22/2013 4:36 PM, Hugues Talbot wrote: > Hello Sergey, > > I use the freenx server on all my CentOS compute servers, and i do > not need to add NX user accounts, indeed users simply use their SSH > login. I guarantee that this works. > > The "key" to simplicity is indeed to use the default NX client RSA > key. If I'm not mistaken, you can simply reuse the private key from > NoMachine, which should be at > > /usr/NX/share/keys/default.id_dsa.key ; you don't need to worry about > the public key, since all NX client use it by default. > > Of course, you can create a new key for each server, by default this > is what freenx server does. Then to import the key, you need to give > users the public key of the server in text form (in an email or > otherwise), and they can import it via the "advanced" configuration > dialog of either NXClient 3.5 or OpenNX ; they are almost identical > in this respect. > > This is the documentation for Ubuntu, I believe it would not be that > hard to adapt to CentOS. The CentOS HOWTO is very misleading. > > https://help.ubuntu.com/community/FreeNX > > I have found the NoMachine people not very helpful in the last few > years. They seem to concentrate on NX4, but so far this has been > unusable for us at least. I doubt they will spend a lot of time on > NXserver 3.x > > At any rate, let us know how you go. > > All the best. > > On Aug 22, 2013, at 10:52 PM, Sergey Stepanov <sst...@an...> > wrote: > >> Hi Chris, thanks for the explanations. >> >> On 8/22/2013 12:42 PM, Chris wrote: >>> >>> Sergey Stepanov <sst...@an...> wrote on 22/08/2013 >>> 18:04:37: >>> >>>> Hi Chris, >>> >>>> The above applies to the freenx code and the things might be >>>> different with the NOMACHINE NX server. We have the statement >>>> from the NOMACHINE developers that if they receive keyboard >>>> "query", the connection should work with their server. If it >>>> does not, then I have good reasons to expect that they will fix >>>> their server because I have had long exchange with them about >>>> the issue. That is why I would prefer to concentrate on >>>> tweaking OpenNX to send "query" from Mac and leave freenx out >>>> of the loop. >>> >>> >>> That code is part of nxagent from nomachine, released as open >>> source so it will be the same for V3 of nomachine's current >>> product . . . >>> >>> So it (keyboard=query) will work provided >>> >>> xfree86 xorg us pc102 >>> >>> works. >>> >>> If that's all you need then you're away if you can send "query", >>> but you still need a client that works with macosx or a temp >>> solution in the meantime. >> >> Perhaps this will work for 95% of our users, but we have some >> international users too. If you do not mind I will communicate your >> finding to NOMACHINE. >> >> >> >>> If you can't update opennx or nxclient or find a script on the >>> nomachine server which will update the keyboard param ( try all >>> of them ) or run though a ssh proxy or some such which can update >>> the keyboard parameter then you will need to wait for a macos fix >>> from nomachine (who are busy with V4), do you have an ETA ?? >>> >>> >>>> Absolutely not. When we are using the NOMACHINE servers neither >>>> us on the server side nor users on their side need to do >>>> anything to add new NX user: they just connect to our NOMACHINE >>>> version-3.5 with their ssh accounts. The same applies to both >>>> NOMACHINE client and OpenNX. This is a tremendous help for us >>>> because we have inexperienced users changing every day. >>> >>> Are you just using the default nomachine key between >>> nxclient/opennx and your servers ??? >>> >>> eg. >>> >>> -----BEGIN DSA PRIVATE KEY----- >>> MIIBuwIBAAKBgQCXv9AzQXjxvXWC1qu3CdEqskX9YomTfyG865gb4D02ZwWuRU/9 >>> C3I9/bEWLdaWgJYXIcFJsMCIkmWjjeSZyTmeoypI1iLifTHUxn3b7WNWi8AzKcVF >>> aBsBGiljsop9NiD1mEpA0G+nHHrhvTXz7pUvYrsrXcdMyM6rxqn77nbbnwIVALCi >>> xFdHZADw5KAVZI7r6QatEkqLAoGBAI4L1TQGFkq5xQ/nIIciW8setAAIyrcWdK/z >>> 5/ZPeELdq70KDJxoLf81NL/8uIc4PoNyTRJjtT3R4f8Az1TsZWeh2+ReCEJxDWgG >>> fbk2YhRqoQTtXPFsI4qvzBWct42WonWqyyb1bPBHk+JmXFscJu5yFQ+JUVNsENpY >>> +Gkz3HqTAoGANlgcCuA4wrC+3Cic9CFkqiwO/Rn1vk8dvGuEQqFJ6f6LVfPfRTfa >>> QU7TGVLk2CzY4dasrwxJ1f6FsT8DHTNGnxELPKRuLstGrFY/PR7KeafeFZDf+fJ3 >>> mbX5nxrld3wi5titTnX+8s4IKv29HJguPvOK/SI7cjzA+SqNfD7qEo8CFDIm1xRf >>> 8xAPsSKs6yZ6j1FNklfu -----END DSA PRIVATE KEY----- >>> >>> This of course works with FreeNX too . . >> >> Frankly, I never bothered to dig into what key is used: the things >> just worked with the NOMACHINE server. Perhaps you are right: the >> default NOMACHINE key is used. As to FreeNX, the CentOS (we run on >> CentOS-6) HowTo wiki about FreeNX: >> http://wiki.centos.org/HowTos/FreeNX does not suggest any way to >> bypass adding nxserver usernames/passwords and importing shared key >> into the client app. Can you refer me to some link explaining how >> to do that? >> >> Thanks, >> >> Sergey >> >> >> ------------------------------------------------------------------------------ >> >> Introducing Performance Central, a new site from SourceForge and >> AppDynamics. Performance Central is your source for news, >> insights, analysis and resources for efficient Application >> Performance Management. Visit us today! >> http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk >> >> _______________________________________________ >> Opennx-devel mailing list Ope...@li... >> https://lists.sourceforge.net/lists/listinfo/opennx-devel > |
From: Chris <ch...@cc...> - 2013-08-23 11:31:43
|
Hugues Talbot <hug...@gm...> wrote on 22/08/2013 22:36:11: > Hello Sergey, > > I use the freenx server on all my CentOS compute servers, and i do > not need to add NX user accounts, That user account stuff's a Centos default-ism (& not to be recommended ) > indeed users simply use their SSH login. I guarantee that this works. Yup, but It's about a security issue with PasswordAuthentication Yes tho', read on . . . > The "key" to simplicity is indeed to use the default NX client RSA > key. If I'm not mistaken, you can simply reuse the private key from > NoMachine, which should be at > > /usr/NX/share/keys/default.id_dsa.key ; you don't need to worry > about the public key, since all NX client use it by default. The nxclient/OpenNx has the PRIVATE key, the server has the public key in authorized_keys > > Of course, you can create a new key for each server, by default this > is what freenx server does. . . . because it's a bit safer . . . see below > Then to import the key, you need to give > users the public key of the server in text form (in an email or Private key > otherwise), . . one of the "otherwise" options in nomachine's version 3, being nomachine NX Web Companion http://www.nomachine.com/documents/plugin/install.php *** Did you look at that Sergey ??? *** > and they can import it via the "advanced" configuration > dialog of either NXClient 3.5 or OpenNX ; they are almost identical > in this respect. *** If you don't change your default key pair, anyone with an nxclient who can "see" your sshd, can try a "password brute force attack" on your ssh accounts, even if you fix the "PasswordAuthentication yes" issue Do you have "dave" "john" "sue" "god" "admin" etc ??? If they get in, they can look at /etc/passwd which tells them a good candidate for a local administrator account. Even if you are kerberized you probably have a local sudo account for admin ( root can't log in on your machines , right ?? ) *** > This is the documentation for Ubuntu, I believe it would not be that > hard to adapt to CentOS. The CentOS HOWTO is very misleading. > https://help.ubuntu.com/community/FreeNX > > I have found the NoMachine people not very helpful in the last few > years. They seem to concentrate on NX4, but so far this has been > unusable for us at least. I doubt they will spend a lot of time on > NXserver 3.x It's a very small company . . . The nxclient v3 has stopped being developed and even recompiled against the latest libraries so Fritz's OpenNX is ahead of it now. > > At any rate, let us know how you go. > > All the best. > > On Aug 22, 2013, at 10:52 PM, Sergey Stepanov <sst...@an...> wrote: [SNIP] > > Frankly, I never bothered to dig into what key is used: the things > > just worked with the NOMACHINE server. Perhaps you are right: the > > default NOMACHINE key is used. As to FreeNX, the CentOS (we run on > > CentOS-6) HowTo wiki about FreeNX: > > http://wiki.centos.org/HowTos/FreeNX > > does not suggest any way to bypass adding nxserver usernames/passwords Those instructions in the Centos docs are regarding using the passdb database,( did I say it has issues) which is a "facility/feature" (or bad idea) unique to FreeNX. It might have seemed a good idea at the time . . . It involves creating a new single ssh key pair which is then added to ALL nx users ~/.ssh/authorized_keys files and used ( yup, the same key ) for ALL nx users to log them in to their NX sessions over the ssh tunnel which was set up as user nx. This is all regulated by making them have a user/password entry in passdb which must match to allow the "ssh user@localhost" which kicks off their X session. ** The reason for "good idea at the time" . . It is used to avoid having an ssh daemon running with PasswordAuthentication yes see above about brute force password guessing but the keys are never cleaned up from Authorized_keys and anyone who gets the private key can log in as anyone else. You can of course move your sshd to another port which will stop most of the basic scans, but if you are a top target that will just free up the port from noise for the real attackers, who will scan all you ports. My solution is to use TWO sshd one for password on localhost only the other for key pairs + no password on external IPs > > and importing shared key into the client app. Can you refer me to some > > link explaining how to do that? No, even Akemi hasn't got the Documentation fixed up. I can tell you tho if you need it. My take on the issue The issues with compiling OpenNX and (probably the nomachine nxclient too) on windows/macosx consume so much time that I doubt either Fritz or nomachine will fix things anytime soon. The only other thing I can think of is that x2go might have a functioning mac client . . . http://code.x2go.org/releases/binary-macosx/x2goclient/releases/4.0.1.0/ See if that works and let us know how you get on :-) > > > > Thanks, > > > > Sergey Anyone heard from O.P. Anna ?? Did she get a Solution ?? |
From: Sergey S. <sst...@an...> - 2013-08-23 14:50:29
|
Hi Chris, On 8/23/2013 6:31 AM, Chris wrote: [SNIP] > . . one of the "otherwise" options in nomachine's version 3, being > > nomachine NX Web Companion > http://www.nomachine.com/documents/plugin/install.php > > *** Did you look at that Sergey ??? *** We are using it. All it does just installs NX Client on user's computer via a Java applet and pushes a preconfigured NX session to the client. It is very convenient, but does not change the way how the client communicates to the server. Besides, it does not work anymore on Lion as the NOMACHINE client cannot work on Lion. > If you don't change your default key pair, anyone with an nxclient > who can "see" your sshd, can try a "password brute force attack" > on your ssh accounts, even if you fix the > "PasswordAuthentication yes" issue > > Do you have "dave" "john" "sue" "god" "admin" etc ??? > > If they get in, they can look at /etc/passwd which tells them > a good candidate for a local administrator account. > > Even if you are kerberized you probably have a local > sudo account for admin > ( root can't log in on your machines , right ?? ) This does not bother me in our specific situation: our users have only one-day window to login and for this window we restrict their login to a narrow IP range via sshd_config AllowUsers (e.g. 1.2.3.*). Then, we are protected from brute force attacks by an institutional firewall: it blocks the IP after a few unsuccessful login attempts. So, the default key is fine with me. However, I think we have migrated quite far away from the original question about messed keyboard. I will respond your previous email about the "query" option separately. [SNIP] > The issues with compiling OpenNX and (probably the > nomachine nxclient too) on windows/macosx consume > so much time that I doubt either Fritz or nomachine > will fix things anytime soon. However, someone compiled this in January: http://sourceforge.net/projects/opennx/files/opennx/CI/OpenNX-0.16.0.725.dmg/download We have attempted to compile opennx-0.16.0.725.tar.gz under Lion 10.8. We resolved the WxWidgets issues, but stuck on compiling OpenNX sources for OpenSC when doing "make dist-platform". At this step make attempts to download an older OpenSC, which is incompatible with x86_64 (the only available option for Lion 10.8) and tries to compile it for ppc. When we download and installed the latest OpenSC version and replace respective includes in opennx-0.16/opensc, make fails on compiling LibOpenSC.cpp, which is a part of OpenNX. I wonder if anyone succeeded with this compilation or if anyone knows a way to exclude OpenSC as we do not need it at the moment. I could not find such option in the configure script. > The only other thing I can think of is that x2go might have > a functioning mac client . . . > > http://code.x2go.org/releases/binary-macosx/x2goclient/releases/4.0.1.0/ > > See if that works and let us know how you get on :-) I mentioned sometime back in my first messages that x2go has exactly the same keyboard issues on Lion as OpenNX. Thanks, Sergey |
From: Chris <ch...@cc...> - 2013-08-23 19:29:32
|
Sergey Stepanov <sst...@an...> wrote on 23/08/2013 15:52:19: [SNIP] > This does not bother me in our specific situation: our users have only > one-day window to login and for this window we restrict their login > to a narrow IP range via sshd_config AllowUsers (e.g. 1.2.3.*). Then, > we are protected from brute force attacks by an institutional firewall: > it blocks the IP after a few unsuccessful login attempts. So, the > default key is fine with me. OK. Me worrying ahead then. [SNIP] > However, someone compiled this in January: > http://sourceforge.net/projects/opennx/files/opennx/CI/OpenNX-0.16. > 0.725.dmg/download > > We have attempted to compile opennx-0.16.0.725.tar.gz under Lion 10.8. > We resolved the WxWidgets issues, but stuck on compiling OpenNX sources > for OpenSC when doing "make dist-platform". At this step make attempts > to download an older OpenSC, which is incompatible with x86_64 (the > only available option for Lion 10.8) and tries to compile it for ppc. > When we download and installed the latest OpenSC version and replace > respective includes in opennx-0.16/opensc, make fails on compiling > LibOpenSC.cpp, which is a part of OpenNX. > > I wonder if anyone succeeded with this compilation or if anyone knows > a way to exclude OpenSC as we do not need it at the moment. I could not > find such option in the configure script. I thnk Fritz spent ages tweaking associated packages for windows, ( pulseaudio springs to mind ) so I guess it was the same for mac Probably the whole process will need doing again . . . I'm not sure where the card stuff is in OpenNX. I might have a quick look if I get a moment. > > The only other thing I can think of is that x2go might have > > a functioning mac client . . . > > > > http://code.x2go.org/releases/binary-macosx/x2goclient/releases/4.0.1.0/ > > > > See if that works and let us know how you get on :-) > > I mentioned sometime back in my first messages that x2go has exactly the > same keyboard issues on Lion as OpenNX. Oh you did so too. I forgot. > > Thanks, > > Sergey |
From: Sergey S. <sst...@an...> - 2013-08-23 15:00:55
|
On 8/21/2013 4:21 PM, Chris wrote: > > "Chris" <ch...@cc...> wrote on 21/08/2013 21:10:29: > > > Well, let's try with linux and a UK (gb) keyboard anyway . . . > > > > The workstation :- > > > > _XKB_RULES_NAMES(STRING) = "evdev", "evdev", "gb", "", "" > > > > > > As I normally run with no keyboard parameter change > > > > NX> 105 startsession --session="Server" . . . > > > > --keyboard="evdev/gb" > > > > Info: Using /usr/bin/nxacl to change session parameters or deny session. > > > > keyboard=evdev/gb > > > > _XKB_RULES_NAMES(STRING) = "xfree86", "evdev", "gb", "", "" > > > > and > > > > nxacl changing to keyboard=query > > > > > 105 startsession --session="Server" . . . > > > > --keyboard="evdev/gb" > > > > Info: Using /usr/bin/nxacl to change session parameters or deny session. > > > > &keyboard=query > > > > _XKB_RULES_NAMES(STRING) = "xfree86", "pc102", "us", "", "" > > > > . . . and getting sore-sey at line 865 in :- > > nx-X11/programs/Xserver/hw/nxagent/Keyboard.c > > > if ((nxagentKeyboard != NULL) && (strcmp(nxagentKeyboard, "query") !=0)) > { > la la etc > } > else > { > layout = XKB_DFLT_KB_LAYOUT; > model = XKB_DFLT_KB_MODEL; > > #ifdef TEST > fprintf(stderr, "nxagentKeyboardProc: Using default keyboard: > model [%s] layout [%s].\n", > model, layout); > #endif > } > > > and back at line 141 all becomes clear > > > #ifndef XKB_DFLT_RULES_FILE > #define XKB_DFLT_RULES_FILE "xfree86" > #endif > #ifndef XKB_ALTS_RULES_FILE > #define XKB_ALTS_RULES_FILE "xorg" > #endif > #ifndef XKB_DFLT_KB_LAYOUT > #define XKB_DFLT_KB_LAYOUT "us" > #endif > #ifndef XKB_DFLT_KB_MODEL > #define XKB_DFLT_KB_MODEL "pc102" > #endif > I passed your comment to NOMACHINE. Below is their answer: ============== After that point in the nxagent sources, "query" makes the agent ignore the layout info and fallback to a simple copy of client keymap. The purpose of option "query" is to force nxagent to copy the keyboard map of the connected client. In that case there is no need to compile a keymap basing on the layout information (model, country, etc.): if the client presents e.g. a German keyboard the agent will copy and use that keyboard. So it would work for any country. This is different from the Linux case where keyboard option would be "pc105/de": in that case the agent would compile its own keymap on the basis on the info "model=pc105" "country=Germany". We use "query" for Mac client since a long time, because we found there wasn't correct keyboard map files to build a key map for Mac layout in the X Windows systems istalled on the majority of Linuxes. ============== I think we need to try it. To my understanding, we need to patch the OpenNX osdep.c file around line 688: #if 0 // ifdef __WXMAC__ if ((_kbd[0] == '\0') || strstr(_kbd, "empty")) { strncpy(_kbd, getMacKeyboard(), sizeof(_kbd)); } #endif and replace there getMacKeyboard() by "query". The change is easy and worth trying in view of the above information from NOMACHINE, but at present we stuck on compiling OpenNX under Lion 10.8 (see details about failing to compile OpenSC in my previous post). Can anyone help please? Thanks, Sergey |
From: Chris <ch...@cc...> - 2013-08-23 19:31:56
|
Sergey Stepanov <sst...@an...> wrote on 23/08/2013 16:02:45: [SNIP] > I passed your comment to NOMACHINE. Below is their answer: > > ============== > After that point in the nxagent sources, "query" makes the agent > ignore the layout info and fallback to a simple copy of client keymap. > > The purpose of option "query" is to force nxagent to copy the > keyboard map of the connected client. In that case there is > no need to compile a keymap basing on the layout information > (model, country, etc.): if the client presents e.g. a German > keyboard the agent will copy and use that keyboard. > > So it would work for any country. > > This is different from the Linux case where keyboard option > would be "pc105/de": in that case the agent would compile its > own keymap on the basis on the info "model=pc105" "country=Germany". > > We use "query" for Mac client since a long time, because we found > there wasn't correct keyboard map files to build a key map > for Mac layout in the X Windows systems istalled on the majority > of Linuxes. > ============== Hmmm. This is what changelog says . . . nxagent-2.0.0-22 - Implented handling of value "query" for nxagentKbtype. This value is passed by the NX client for MacOSX. If value of nxagentKbtype is "query" or NULL we init keyboard by core protocol functions reading the keyvoard mapping of the X server. The property _XKB_RULES_NAMES is always set on the root window with default values of model and layout. Still can't see where it's doing it. I'll look a bit further anyway . . . > > I think we need to try it. To my understanding, we need to patch > the OpenNX osdep.c file around line 688: > > #if 0 // ifdef __WXMAC__ > if ((_kbd[0] == '\0') || strstr(_kbd, "empty")) { > strncpy(_kbd, getMacKeyboard(), sizeof(_kbd)); > } > #endif > > and replace there getMacKeyboard() by "query". The change is easy > and worth trying in view of the above information from NOMACHINE, > but at present we stuck on compiling OpenNX under Lion 10.8 (see > details about failing to compile OpenSC in my previous post). Can > anyone help please? > > Thanks, > > Sergey > > > |
From: Sergey S. <sst...@an...> - 2013-09-20 02:54:46
|
Dear Hugues, can we ask you to try the version of OpenNX patched along with the NOMACHINE advice? Cris had a concern that the patch would effectively reset the keyboard to the US version and hence would not work for e.g. French keyboard; however the NOMACHINE folks insisted the opposite. The patched version is posted here: http://www.gmca.aps.anl.gov/remote/nxplayer-preview/OpenNX-0.16.0.725_kbdpatch.dmg Thanks, Sergey On 8/23/2013 10:27 AM, Hugues Talbot wrote: > Dear Sergey, > > Thanks for persisting with this keyboard issue on OSX because it has > been a pain in the neck for a very long time. > > > On 23 Aug 2013, at 23 Aug, 17:02, Sergey Stepanov wrote: > >> On 8/21/2013 4:21 PM, Chris wrote: >>> >>> "Chris" <ch...@cc... <mailto:ch...@cc...>> wrote on >>> 21/08/2013 21:10:29: >>> >>>> Well, let's try with linux and a UK (gb) keyboard anyway . . . >>>> >>>> The workstation :- >>>> >>>> _XKB_RULES_NAMES(STRING) = "evdev", "evdev", "gb", "", "" >>>> >>>> >>>> As I normally run with no keyboard parameter change >>>> >>>> NX> 105 startsession --session="Server" . . . >>>> >>>> --keyboard="evdev/gb" >>>> >>>> Info: Using /usr/bin/nxacl to change session parameters or deny session. >>>> >>>> keyboard=evdev/gb >>>> >>>> _XKB_RULES_NAMES(STRING) = "xfree86", "evdev", "gb", "", "" >>>> >>>> and >>>> >>>> nxacl changing to keyboard=query >>>> >>>>> 105 startsession --session="Server" . . . >>>> >>>> --keyboard="evdev/gb" >>>> >>>> Info: Using /usr/bin/nxacl to change session parameters or deny session. >>>> >>>> &keyboard=query >>>> >>>> _XKB_RULES_NAMES(STRING) = "xfree86", "pc102", "us", "", "" >>> >>> >>> >>> . . . and getting sore-sey at line 865 in :- >>> >>> nx-X11/programs/Xserver/hw/nxagent/Keyboard.c >>> >>> >>> if ((nxagentKeyboard != NULL) && (strcmp(nxagentKeyboard, "query") !=0)) >>> { >>> la la etc >>> } >>> else >>> { >>> layout = XKB_DFLT_KB_LAYOUT; >>> model = XKB_DFLT_KB_MODEL; >>> >>> #ifdef TEST >>> fprintf(stderr, "nxagentKeyboardProc: Using default keyboard: >>> model [%s] layout [%s].\n", >>> model, layout); >>> #endif >>> } >>> >>> >>> and back at line 141 all becomes clear >>> >>> >>> #ifndef XKB_DFLT_RULES_FILE >>> #define XKB_DFLT_RULES_FILE "xfree86" >>> #endif >>> #ifndef XKB_ALTS_RULES_FILE >>> #define XKB_ALTS_RULES_FILE "xorg" >>> #endif >>> #ifndef XKB_DFLT_KB_LAYOUT >>> #define XKB_DFLT_KB_LAYOUT "us" >>> #endif >>> #ifndef XKB_DFLT_KB_MODEL >>> #define XKB_DFLT_KB_MODEL "pc102" >>> #endif >>> >> >> I passed your comment to NOMACHINE. Below is their answer: >> >> ============== >> After that point in the nxagent sources, "query" makes the agent >> ignore the layout info and fallback to a simple copy of client keymap. >> >> The purpose of option "query" is to force nxagent to copy the >> keyboard map of the connected client. In that case there is >> no need to compile a keymap basing on the layout information >> (model, country, etc.): if the client presents e.g. a German >> keyboard the agent will copy and use that keyboard. >> >> So it would work for any country. >> >> This is different from the Linux case where keyboard option >> would be "pc105/de": in that case the agent would compile its >> own keymap on the basis on the info "model=pc105" "country=Germany". >> >> We use "query" for Mac client since a long time, because we found >> there wasn't correct keyboard map files to build a key map >> for Mac layout in the X Windows systems istalled on the majority >> of Linuxes. >> ============== >> >> I think we need to try it. To my understanding, we need to patch >> the OpenNX osdep.c file around line 688: >> >> #if 0 // ifdef __WXMAC__ >> if ((_kbd[0] == '\0') || strstr(_kbd, "empty")) { >> strncpy(_kbd, getMacKeyboard(), sizeof(_kbd)); >> } >> #endif >> >> and replace there getMacKeyboard() by "query". The change is easy >> and worth trying in view of the above information from NOMACHINE, >> but at present we stuck on compiling OpenNX under Lion 10.8 (see >> details about failing to compile OpenSC in my previous post). Can >> anyone help please? >> >> Thanks, >> >> Sergey >> >> >> >> >> ------------------------------------------------------------------------------ >> Introducing Performance Central, a new site from SourceForge and >> AppDynamics. Performance Central is your source for news, insights, >> analysis and resources for efficient Application Performance Management. >> Visit us today! >> http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk >> _______________________________________________ >> Opennx-devel mailing list >> Ope...@li... >> <mailto:Ope...@li...> >> https://lists.sourceforge.net/lists/listinfo/opennx-devel > > === > Hugues Talbot > 9 allées des cornouillers, 77420 Champs sur Marne, France > +33 6 72 07 51 26 > > > > > ==== > Hugues Talbot, Professeur associé > Université Paris-Est, > Laboratoire d'informatique Gaspard-Monge > Equipe A3SI > ESIEE - BP 99 > 2 bd Blaise-Pascal, F-93162 Noisy-le-Grand Cedex > (Office) +33 1 45 92 66 15 / (Fax) +33 1 45 92 66 99 > > There are two popes per square kilometer in Vatican. > |
From: Chris <ch...@cc...> - 2013-09-20 10:44:17
|
Sergey Stepanov <sst...@an...> wrote on 20/09/2013 03:54:39: > Dear Hugues, > can we ask you to try the version of OpenNX patched along > with the NOMACHINE advice? Cris had a concern that the patch > would effectively reset the keyboard to the US version and hence > would not work for e.g. French keyboard; however the NOMACHINE > folks insisted the opposite. The patched version is posted here: That was from looking through the nxagent (open-)source code for the keyboard=query parameter. It's possible that :- 1/ The nomachine v3 server uses different source code from FreeNX 2/ Something else also spots the parameter and acts upon it eg. Note:- in the changelog for nxagent-2.0.0-22 ". . . we init keyboard by core protocol functions reading the keyvoard mapping of the X server." I'm not sure what "core protocol functions" would do this, nor can I spot where this event might be triggered . . . > > http://www.gmca.aps.anl.gov/remote/nxplayer-preview/OpenNX-0.16.0. > 725_kbdpatch.dmg > > Thanks, > > Sergey |