map port number of VM to named pipe - virtual-machine

I'm currently looking into kernel driver development and have set up a Win7 Virtual Machine in VMware Workstation (Vmware academic program is great :)) and now I want to connect the Visual Studio Debugger to the VM via a virtual Serial Port Named Pipe.
The instructions on MSDN:
http://msdn.microsoft.com/en-us/library/windows/hardware/jj200334%28v=vs.85%29.aspx
right that seems pretty easy!
I have created a virtual serial port on my VM named \.\pipe\kerneldebug and configured it properly. However this named pipe has no link to any COM port, i.e. 1-5, so what do I put in for n in:
bcdedit /dbgsettings serial debugport: n baudrate: 115200
I couldn't find a way to map the named pipe to the port as required in the MSDN instructions.
Any help would be much appreciated!
Regards

eventually got the solution by trial and error...
When the Debugger looks for the Pipe, it is looking on the local (debugging) machine, not the VM. This pipe maps COM1 of the VM to a named pipe on the local machine.
So in my example I would configure the Target Machine in Visual Studio as follows:
Manually configure debugger and do not provision
Connection Type: Serial
Baud: 115200
Pipe: checked
Reconnect: checked
Pipe name: \\.\pipe\kerneldebug
Target Port: COM1
After setting this up

Related

Hugo webserver not reaching my Windows vm

I want to test my website on edge and internet explorer so I tried using a windows VM, I am currently on linux mint 19.1, I start the gohugo server with "hugo server --disableFastRender" and create the VM in virtualbox using bridged adapter but I cant load localhost:1313 on the vm.
I tried using NAT and port forwarding but I have the same results, also tried the conection between the host and VM using ping and the VM can reach the host but the host cant connect to the VM so I guess that the problem is there but I dont know what to do now. The place where I am working uses IPv6 and I never worked with it before so maybe it has something to do with that
Start your site as usual with hugo server, which makes it available at http://localhost:1313
Leave your Windows VM network settings at their defaults
In your Windows VM, navigate to http://10.0.2.2:1313 to hit your hugo site
In a nutshell, 10.0.2.2 on your Windows VM (its default gateway) is equivalent to localhost on your linux host.
You can get the default gateway of your Windows VM by running ipconfig in Command Prompt.

How to connect VM and Host for l2fwd?

I am working on l2fwd application with DPDK. I have taken an Ubuntu 16.04 as the Host system that initiates the packet generator and the Ubuntu 16.04 VM that initiates the l2fwd application to analyze the packets that are forwarded.
I have installed DPDK and Pktgen in the corresponding machines, but I am not sure how to establish a connection between Host and VM so that my host can transfer the packets to VM. Should I go with a Host only network? I wasn't able to find much references.
Please refer the DPDK l2fwd user guide, virtual function setup instructions.
Basically, the easiest way would be to either pass through your whole NIC to the VM or setup a virtual function (VF) on your NIC and pass through the configured virtual function.
Virtual function setup is different from driver to driver. For example, for ixgbe we pass arguments to kernel module, i.e.:
modprobe ixgbe max_vfs=2,2
The next steps are:
unbind kernel NIC driver from NIC/VF
bind the NIC/VF to vfio-pci driver
pass the device to the VM with argument -device vfio-pci,host=...
Please find more information here:
http://www.linux-kvm.org/page/10G_NIC_performance:_VFIO_vs_virtio

Cannot do Vagrant ssh after Vagrant up on windows Machine

I am building a sample vagrant box to install Jenkins and push it to atlas cloud.Please find below the steps that I followed.
Vagrant init ubuntu/trusty64
and the normal command to initialize the vagrant machine.
vagrant up
After this if i type command to ssh into the machine
vagrant ssh
It gives me error saying please increase timeout and so.
The main question is how can I ssh into the newly created vagrant machine.
To understand this, I have to go through all the basics. Please find below my findings.
Not attached
In this mode, VirtualBox reports to the guest that a network card is present, but that there is no connection -- as if no
Ethernet cable was plugged into the card. This way it is possible to "pull" the virtual Ethernet cable and disrupt the connection, which can be useful to inform a guest operating system that no network connection is available and enforce a reconfiguration.
Network Address Translation (NAT)
If all you want is to browse the Web, download files and view e-mail inside the guest, then this
default mode should be sufficient for you, and you can safely skip the rest of this section. Please note that there are certain limitations when using Windows file sharing (see Section 6.3.3, “NAT limitations” for details).
NAT Network
The NAT network is a new NAT flavour introduced in VirtualBox latest versions.
Bridged networking
This is for more advanced networking needs such as network simulations and running servers
in a guest. When enabled, VirtualBox connects to one of your installed network cards and exchanges network packets directly, circumventing your host operating system's network stack.
Internal networking
This can be used to create a different kind of software-based network which is visible to selected virtual machines, but not to applications running on the host or to the outside world.
Host-only networking
This can be used to create a network containing the host and a set of virtual machines, without the need for the host's physical network interface. Instead, a virtual network interface (similar to a loopback interface) is created on the host, providing connectivity among virtual machines and the host.
Generic networking
Rarely used modes share the same generic network interface, by allowing the user to select a driver which can be included with VirtualBox or be distributed in an extension pack.
At the moment there are potentially two available sub-modes:
UDP Tunnel
This can be used to interconnect virtual machines running on different hosts directly, easily and transparently, over existing network infrastructure.
VDE (Virtual Distributed Ethernet) networking
This option can be used to connect to a Virtual Distributed Ethernet switch on a Linux or a FreeBSD host. At the moment this needs compiling VirtualBox from sources, as the Oracle packages do not include it.
Out of these, only NAT and Host-only network is important.So, to solve this issue, I modified the predefined Vagrant file with the following code.
jenkins.vm.provider "virtualbox" do |vb|
jenkins.vm.network "private_network",ip:'192.168.56.5',:adapter => 2
jenkins.vm.hostname = 'jenkins.ci'
vb.name = "Jenkins"
end
Here, I have created a private network with static Ip and also, I specified the adapters count to use 2. The Private adapter is Host-only adapter and 1st adapter which is default one is NAT.

Accessing VM's terminal using putty in host OS?

I am working on a project in which we logon to client's machine using Cirtix receiver. The machine which we connect to using Citrix receiver is basically a Windows 7 machine. Once we are in the client's windows box, inside that we have virtual box, in which VM has been added and which has all the needed software for us to do the development; for example JBOSS, database etc.
In the host machine (windows 7), we have putty, and using putty we sometimes login to the VM (i.e. terminal). The confusion which I have is as below:
We login to the VM terminal using IP address: 127.0.0.1. This is where my confusion is. 127.0.0.1 normally is the IP address with which we can refer to the current machine; so how using this IP address we are able to connect to the VM which is added to the virtual box? Doesn't the VM which is in virtualbox has its own IP address with which we can connect to? Or is there some concept which I am not aware of.
Can anyone help me in understanding this? I am not well versed with virtualization, so for the gurus this might be a naive question.
Every VM will have their uuids so to access the VM inside virtualBox or any hypervisor for that matter. so you can use that particular VM uuid and u should be able to console to that VM.
in virtual box try below
You can use: VBoxManage list vms to list all currently registered VMs with their settings, names and UUIDs.
Once you know the UUID you can also start a vm by:
VBoxManage startvm which is essentially same as: VBoxManage startvm "Name-of-vm"
Also Vm has two interfaces one loopback which will have an address of 127.0.0.1 and the rest of the interfaces so to access the VM with particular ip you need to assign an IP to that VM interface and than try with that IP.Also you might have that port 22 open for that loopback ip so may be that is the reason you are able to connect on loopback
I hope this answers your question

How can i emulate streaming data from a serial port?

I have a text file containing NMEA (GPS) data that I' like to replay to a COM port so the application I'm building can read it.
I considered writing a quick C# console app to loop over the file but I don't have any COM ports. This appraoch would require a virtual COM port and I'm not sure what challenges that would entail.
I also looked at GPSGate. Nice product but it doesn't seem to replay NMEA files over one of its virtual com ports.
How can I stream an existing text file to simulate GPS over a serial connection? I prefer a serial port, rather than mocking, to avoid reworking the application I'm developing and to facilitate use with other applications that use GPS over serial ports for which we don't have source code.
Update 1 - I downloaded a trial version of Virtual Serial Port Driver by Eltima and within a few minutes had some C# code writing to a serial port and appearing in Termite. Yes, it works but $100 seems excessive for what I'm trying to accomplish. Open source or free commercial would be preferred.
gpsfake is part of the gpsd project
gpsfake is a test harness for gpsd and its clients. It opens a pty (pseudo-TTY), launches a gpsd instance that thinks the slave side of the pty is its GPS device, and repeatedly feeds the contents of one or more test logfiles through the master side to the GPS. If there are multiple logfiles, sentences from them are interleaved in the order the files are specified.
You can port the output to a virtual serial via /usr/bin/gpspipe -r | socat - PTY,link=/tmp/gpsd.pty,raw using gpspipe, also from the gpsd project, to be picked up however you choose.
It is POSIX compliant.
You need a virtual serial port such as:
http://sourceforge.net/projects/com0com/
and a hyper terminal replacement.. in XP and earlier it was very easy with the shipped copy of hyperterminal as mentioned bellow..
You set up a virtual null modem connection
Null modem has a COM4 to COM5 Connection established as Null modem std gps is 4800Baud
Hyperterminal to COM5
Application to COM4
Copy paste your NMEA Values into Hyperterminal this isn't 1Hz like GPS though.. to enable 1Hz(or 1 line per second) you will need to find a different application than hyperterminal to send the messages at 1 second increments.