XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Compiling up RDP support?

    Scheduled Pinned Locked Moved Development
    16 Posts 5 Posters 2.5k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L Offline
      LonnieTC
      last edited by

      Hi All,

      I have just installed XCP-ng and have been doing a lot or reading with more to go.

      I see that XCP-nG uses VNC to connect to the User VM's (DomU) and it go me wondering about what it might take to compile up RDP analogs so that XCP-ng could offer VNC or RDP for connection to remote VM's.

      Obviously, I tend to think that RDP is a much more powerful protocol and there is even the rdesktop, Remina, and FreeRDP projects that work well. The power of RDP is that it allows for things to be done in channels and thus you can have all types of channels to include video, audio, USB, shared drives, printers, etc. which is far more than VNC is capable of doing, from what I have seen so far.

      With this in mind, I was wondering where the source code was located so that I might be able to investigate the writing up an RDP module that might get included or offered as an optional addon since I could definitely use it myself even now.

      Any guidance or information on this would be greatly appreciated as I am new to XCP-ng and would like to explore the actual code-base with a particular interest in where the VNC code lives.

      Best Regard and Thanks in advance.
      Lonnie

      E 1 Reply Last reply Reply Quote 1
      • olivierlambertO Offline
        olivierlambert Vates 🪐 Co-Founder CEO
        last edited by

        Hi,

        Next XOA release (this week) will deliver a button to open your RDP client directly on the IP of the machine.

        ForzaF 1 Reply Last reply Reply Quote 0
        • E Offline
          eaykoc @LonnieTC
          last edited by

          @lonnietc I'm not sure if https://github.com/xenserver/vncterm is the code you are looking for, if not please ignore me 🙂

          L 1 Reply Last reply Reply Quote 0
          • ForzaF Offline
            Forza @olivierlambert
            last edited by

            @olivierlambert said in Compiling up RDP support?:

            Hi,

            Next XOA release (this week) will deliver a button to open your RDP client directly on the IP of the machine.

            While this is an improvement, it isn't the same as providing rdp support for all VMs natively on xcp-ng side. 🙂

            1 Reply Last reply Reply Quote 0
            • L Offline
              LonnieTC
              last edited by

              @olivierlambert and @S-Pam Thanks for the response on this and I have to agree with @S-Pam in that XOA supporting RDP is not completely what I am interested in as I wanted to investigate the possibly extending the XCP-ng to have RDP as well as VNC working across all VM's and possibly writing up the C/C++ drivers for RDP.

              Not sure how challenging that would be, but I am assuming that the same XCP-ng hooks that the current VNC libraries use could be used by RDP libraries as well.

              1 Reply Last reply Reply Quote 1
              • L Offline
                LonnieTC @eaykoc
                last edited by

                @eaykoc Thanks for the link and I will look into it more. I am still a bit of a noob as well and need to get a feel for the XCP-ng (xenserver) code layout along the way.

                1 Reply Last reply Reply Quote 1
                • olivierlambertO Offline
                  olivierlambert Vates 🪐 Co-Founder CEO
                  last edited by

                  Frankly, I don't see how this effort could be worthwhile. SPICE might be more logical.

                  L ForzaF 2 Replies Last reply Reply Quote 0
                  • L Offline
                    LonnieTC @olivierlambert
                    last edited by

                    @olivierlambert Well, I think that SPICE is not yet widely adopted in the industry yet whereas RDP pervades throughout the industry. My thoughts are that as SPICE becomes the norm then it can be added as well, at which point the out come would be to have VNC, RDP, and SPICE as available options to the XCP-ng users.

                    1 Reply Last reply Reply Quote 0
                    • olivierlambertO Offline
                      olivierlambert Vates 🪐 Co-Founder CEO
                      last edited by

                      Contributions are always welcome, but I think RDP support bundled makes more sense for VDI solutions, I don't know if it's really something that can be done "as is".

                      Anyway, good luck and keep us posted, we are available to review PRs!

                      L 1 Reply Last reply Reply Quote 0
                      • ForzaF Offline
                        Forza @olivierlambert
                        last edited by

                        @olivierlambert said in Compiling up RDP support?:

                        Frankly, I don't see how this effort could be worthwhile. SPICE might be more logical.

                        I have tried SPICE clients a few times and they generally are quite lacking :/.

                        1 Reply Last reply Reply Quote 0
                        • olivierlambertO Offline
                          olivierlambert Vates 🪐 Co-Founder CEO
                          last edited by

                          If you want RDP for good remote console protocol, go for VDI solutions.

                          1 Reply Last reply Reply Quote 0
                          • L Offline
                            LonnieTC @olivierlambert
                            last edited by

                            @olivierlambert As part of the XCP-ng team, can you please point me in the right direction for where the source codes is located for the VNC implementation?

                            Eaykoc from an earlier reply point me to

                            https://github.com/xenserver/vncterm

                            But as I do not yet know how the actual XCP-ng server code is laid out, I am wondering if there is where the VNC hood are driven from within the hypervisor?

                            1 Reply Last reply Reply Quote 0
                            • olivierlambertO Offline
                              olivierlambert Vates 🪐 Co-Founder CEO
                              last edited by olivierlambert

                              Please read https://xcp-ng.org/docs/contributing.html#contributing

                              Also, it's very likely that you'll need to plumb at least something at XAPI level (XAPI repo is here: https://github.com/xapi-project/xen-api )

                              But before even that, the hardest part will be to add this to qemu.

                              If you browse google while searching for RDP support in Qemu, everyone will tell you to use RDP inside your guest and not at qemu level (that doesn't support it).

                              I found something like this: https://github.com/datto/RDPMux
                              The project is dead since a while, I have 0 idea if it works and how to integrate it.

                              My first gut feeling is probably at least 6 months of work, then few extra month to integrate that properly in XAPI.

                              L 1 Reply Last reply Reply Quote 0
                              • L Offline
                                LonnieTC @olivierlambert
                                last edited by

                                @olivierlambert Thanks for the link and I will look into it more to see how the VNC server and API hooks to the hypervisor are setup inside XCP-ng to get a feel for what may, or may not, be achievable.

                                Also looks like I will need to read up on using Ocaml since it seems to have been written in that language.

                                Thanks again

                                1 Reply Last reply Reply Quote 0
                                • L Offline
                                  LonnieTC
                                  last edited by

                                  For the effort start, I have come across reasonable RDP stuff from the FreeRDP project as well as OGON.

                                  FreeRDP (https://www.freerdp.com/)
                                  OGON (https://github.com/ogon-project/ogon)

                                  The FreeRDP project has a simplified shadow server that might be used as the basis for an RDP server and the OGON project as a similar, but more advanced, type server that also allows for plugable modules in that it could be used for RDP and even SPICE in the future, if I remember correctly while I think that they have VNC already coded up.

                                  My thoughts are to find out where XCP-ng currently handles all of the VNC stuff for the hypervisor which I think that @olivierlambert just sent the link so as to see if it might be possible to build out probably the OGON server from there to allow supporting the VNC, RDP, and SPICE multiple protocols.

                                  I will take some time, but if all goes well then the user should be able to connect to any of the VM consoles (Linux, Windows, etc.) with any of these protocols and not have to do it from within the Guest VM.

                                  At least that is goal
                                  Cheers

                                  1 Reply Last reply Reply Quote 2
                                  • Patrici21558595P Offline
                                    Patrici21558595
                                    last edited by

                                    For the exertion start, I have run over sensible RDP stuff from the FreeRDP project just as OGON.

                                    bestrdp (https://www.freerdp.com/)

                                    The FreeRDP project has a worked on shadow worker that may be utilized as the reason for a RDP worker and the OGON project as a comparable, however further developed, type worker that likewise considers plugable modules in that it very well may be utilized for RDP and even SPICE later on, on the off chance that I recollect effectively while I feel that they have VNC previously coded up.

                                    My musings are to discover where XCP-ng at present handles the entirety of the VNC stuff for the hypervisor which I imagine that @olivierlambert just sent the connection in order to check whether it very well may be feasible to work out likely the OGON worker from that point to permit supporting the VNC, RDP, and SPICE numerous conventions.

                                    I will take some time, yet on the off chance that all works out in a good way, the client ought to have the option to associate with any of the VM consoles (Linux, Windows, and so on) with any of these conventions and not need to do it from inside the Guest VM.

                                    At any rate that is objective

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post