Creating a USB tunnel to connect to a dongle - c++

I want to run software that is protected with a dongle on a cloud instance, for example EC2. I am NOT trying to circumvent the protection, but would like to set up a tunnel between a physical machine to which the dongle is connected and the USB driver in the cloud instance.
The software is built for Windows but runs well under Linux and Mac OS using Wine so from both sides running linux would be OK.
Would this be possible without writing a USB driver?
If yes, how do I set this up?
If not, how would I go about? I am a professional C/C++ developer but have no experience with driver development.

I would start by investigating existing commercial products that do this, such as (first search hit, no special endorsement or uniqueness implied) USB over Network. They seem to solve almost exactly this problem, but for Windows clients.
On the Linux-specific side, we have USB/IP which seems to be an open source project to implement sharing of USB devices over IP networks. Again, no endorsement, I don't know how mature this project is but it seems to be the obvious starting point, perhaps you can even contribute?

Related

Can I run Dragon NaturallySpeaking on Amazon WorkSpaces?

I use Dragon dictation software including by using it over a remote access to my home computer. I also once had it set up on the network server computer at a client site which I could also access when logged in remotely. But now, I have a situation where my access to work info is over Amazon WorkSpaces. Does anyone know if Dragon Pro can be installed on and accessed through an Amazon WorkSpace desktop?
TIA!!
Your question was bugging me for a long time, finally I gave in and rented a WorkSpace and tried Dragon.
Recognition for me is totally fine as long as your local computer's standard audio input device is actually the one you want to use Dragon with. If your default input device is the built-in micro of your laptop, computer or screen, recognition will most likely be bad. I used a Sennheiser MB Pro 2 with a USB dongle on a Windows machine for testing, as well as a TravelMike with a USB MultiAdapter. Both work fine.
As for factors that influence recognition quality:
I know from other virtualization/remote desktop solutions that the codec that transfers your speech to the virtual/remote machine may work well for one microphone, and not for others. Try a different mike and see if that improves your recognition.
In order to rule out microphone issues, I suggest trying different internet connections (WiFi, Ethernet, tethering, different internet providers). Missing words from speech recognition over remote connections can indicate unstable or slow internet.
As far as I know, there is no way to patch a USB device through to the remote WorkSpaces machine. What you could try is install a VPN on the remote machine and use your smartphone as a remote microphone in Dragon. Your smartphone also needs the VPN. If you get that to work, recognition should be as good as on your local network, given that internet connection is fast and stable enough.

Xenserver - Access guest VM directly from host

I've got a decent PC that I'd like to install xenserver on, but it's also my primary workstation. Wondering if it's possible to access guests directly from the host machine -- meaning, can I use the monitor, input devices, etc that are attached to the host, to interact with the guests.
Currently setup as a dual boot Linux and Windows machine. I need them both running simultaneously while still being able to treat the host like a workstation. Already using Virtualbox, which is great but not what I'm aiming for.
I've searched high and low for an answer to this question. Maybe I wasn't searching with the right terms. I've found a package in the Ubuntu repos that adds an entry in grub along the lines of 'Ubuntu with Xen Hypervisor', but that was on a test machine that couldn't actually run Xen.
Normally, I'd just wipe this puppy and find out for myself, but there are really good reasons why I can't just jump into it this time, so I'm turning to the community.
Thanks for any and all info!
You can use a simple text console on the host to interact with the guests
xe console vm=guest
but I don't know of a way to access a graphical interface from the host.

How to detect internet disconnectivity in c++/QT based installer

We are developing win-mac file sync installer which is quite similar to Dropbox. The installer is built with c++ and QT. We had a use case, where if the internet is disconnected(plugged out network cable (or) not connected to any wifi) so basically no access to web, During this case we need to make the installer into offline.
I tried few approaches like polling continuously to our web servers. If we are not able to reach then we detect as internet dis-connectivity. Due to some reasons we wanted to have clean native implementation which will look for machines network connectivity.
I even tried http://msdn.microsoft.com/en-us/library/aa965303%28VS.85%29.aspx for windows but this is failing in wifi cases even though we don't connect to wifi this example is saying "Network connected".
Can anyone suggest other alternatives. Platform specific solutions also invited.
You probably want to look at INetworkManager::GetConnectivity, and check for NLM_CONNECTIVITY_IPV4_INTERNET or NLM_CONNECTIVITY_IPV6_INTERNET in the response.

Linux as a guest on MacOS X: VirtualBox or Parallels?

I'm going to develop mostly Django sites on a MacBook Pro and would like to use Ubuntu VMs for testing purposes.
Which product is better suited for this purpose?
Can I connect to the VM via TCP/IP (so I can have apache running on the VM and access it from Safari on my MBP)?
Thanks!
It should be possible using VMWARE FUSION. It has a good network management, and you should be able to access easily your vm via network.
I've successfully used both VirtualBox and VMWare Fusion for this. On both systems, you can set the guest up so that it has its own IP address, and connect to it via HTTP, SSH and even native file sharing, so you can mount the guest's drive as a network drive from the Mac, and vice versa. This makes it possible to do the editing on the Mac in eg Textmate, but run the server on the VM.
I can only tell you about my experiences with a Core2Quad Q6600 on VMWare Fusion 3.0. I have three boot partitions on this system (ahem yes it is a hackintosh running with the E-Fix USB).
So i can do performance measurements. I use it for sometimes very large compiler sessions. And the amazing fact was that Linux as a Guest runs without any measureable time difference on virtualised and native Linux. Windows7 on the other hand only runs with 40% on my machine and GUI is allmost non useable while the GNOME Desktop from latest Ubuntu still works fine.
Check this out. Virtual Box is free so there is nothing to loose.

Which Desktop Virtualization software runs most smoothly? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
Background:
I'm running a full-time job and a part-time job in the weekends, and both my employers have supplied a laptop for me to work on. Of course I also have my powerful workstation at home to work from, and sometimes when I'm at the office at my weekend job (it's in another city) I'm working from yet another workstation.
Problem:
That makes a full 4 PC's I'm maintaining (software versions, licences and settings) just to do my work, and believe me, my list of prefered software is way too big.
I want to setup a Virtual Desktop on my VMware server, so I can work from the same installation and same session no matter which PC I'm working from.
Now I don't have the time and money to go through a full test of each setup, so I'd like to hear your experiences on the subject.
Question:
Should I use a VMware virtual workstation with some remote logon software (like realVNC, teamviewer, logmein, whatever...) or should I invest in a full VDI system like Sun or VMware provide?
Edit:
I'm programming in Adobe Dreamweaver on Windows XP - but I run my servers on Debian and sometimes do quick edits in VIM too. First I intend to virtualize a WinXP with base installation, to see how it runs.
I am a consultant and tend to work in a variety of environments. I carry a Thinkpad running VMWare Server over Ubuntu64 with 4GB of RAM. I've got a 320GB secondary hard drive that I use just for VM's and have 25 or so different virtual machines that I boot up as the circumstances demand.
They're a mix of Linux servers and workstations, Vista workstations and XP Workstations. I rarely use the VMWare server console. I access every one of them via one of the remote access methods.
For Linux, I usually install FreeNX or NXServer for desktop access and just SSH for commandline. On Windows, I always use Remote Desktop (RDP), but, on XP, that only works on the "Pro" versions, not the "Home" versions. If all else fails, I install VNC and use that. VNC is at the bottom of my list because it really is a last resort. The only thing it's better than is not actually being able to use the machine.
However, NX on Linux and RDP on Windows work WAY better than VNC. Other than little things like font smoothing and fancy desktop effects, the only big glitch would be if you are doing much with video or audio or DirectX-based stuff. Things like YouTube or other video do NOT like to work with any remote desktop protocol that I know of.
As far as performance, using Linux as a host for VMWare provides really good management of system resources. The Windows-based VM's aren't able to just gobble up memory, but still get it when they need to.
I do C# development all day in a virtual Vista workstation on Visual Studio 2008 and have absolutely no problems having 3-4 different solutions all open at once along with the normal stuff alongside over RDP on another machine, connected via wireless VPN.
I can flip over to the host OS and it won't even be touching swap space at all. As far as I'm concerned, it's a great way to work.
If you want to work with the same installation, you should seriously consider the Remote Desktop Server/Client solution, bundled into every windows OS from XP. Basically, this app displays the view from your remote desktop to your local one, using highly compressed images; this works even via low-bandwidth internet connections
While the XP version can only handle one user simultaneously, the one in Windows Server 2003 (and in Windows Server 2008, I presume) can handle multiple users (up to a certain limit).
Disadvantages, and side-effects include:
virtual pc via RDC is slow
anything using the 3d acceleration will be slow (at least using XP/2003)
Personally, I would go down the route of using a virtual workstation with some remote logon software. The network performance of VMWare has always been good in my experience, and depending on the OS, there may be a decent remote logon provided.
I guess you can live with Logmein Free. [Or Pro if u want those features]
Well, you don't say what OSs are involved, so.....
For windows, I find that Remote Desktop works as well or better than anything else, although if you pay for the RealVNC version with the mirror driver, that's supposed to be as good.
For off site access for windows, www.logmein.com (the free version) works very well.
If Unixes are involved, then VNC is definitely the way to go, there are various solutions for doing this remotely. Everything from redirection servers, to just forwarding a port in your firewall to an ssh server and setting up the various tunnels.
Performance of VMWare is very good, and I can run a SQL Server slice, a web server slice and develop on my laptop simultaneously. The VM slices reside on a USB 2 portable drive and make it easy to port between my laptop and desktop.
VM Console works well for accessing each environment, and depending on the configuration you set up with NAT vs. Bridging you can UNC to shares on slice.
The nice by-product of this is that should you host machine take a nose dive you can quickly recover your development environment.