SocketCAN over Ethernet - windows

I am going to try to explain our scenario briefly.
We want to setup a simulation environment for our system running on Ubuntu so that we can use it together with our Windows based simulation tool suite. Currently we are running Ubuntu in a virtual machine using VirtualBox on a Windows host. In Ubuntu we use SocketCAN and we would like to continue to do so but instead of using real CAN hardware somehow setup CAN communication over Ethernet to the Windows host.
I am new to CAN on Linux but I have been reading about SocketCAN and was wondering if we could use virtual can (vcan) somehow?
I appreciate any help clarifying if, and if so, how SocketCAN over Ethernet could be achieved.

You can use socketcand. This is a daemon, that is running on the host, where you have you CAN interface (vcan or real can). The only thing you need to implement is the TCP based API in your Windows software.

Related

Does docker on windows use a windows virtual machine to create a windows container?

The software I build is written for windows and built on windows.
Right now I am in the process of finding a solution to isolate my build environments.
I am comparing two options - using virtual machines and using containers. I am also considering the issue of performance.
Unfortunately windows docker containers can only be run from windows.
Do windows containers run faster than windows virtual machines?
Does docker on windows use a virtual machine to host a windows container?
It completely depends on what you are trying to accomplish. Containerization and Virtualization have a lot in common but have different architectural designs. So you should rather try to invest some time and think about the things you want to do. Or you should specify your question and tell us what your main goal is.
Maybe you should check out this https://www.ibm.com/cloud/blog/containers-vs-vms and this https://www.edureka.co/blog/docker-for-windows/

Is it possible to access a hardware device with a Docker image under Windows?

Recently, a native Docker client for Windows was released (>= Windows 7).
I wonder: is it possible to forward access to physical devices, running Windows as host?
With a *nix host, this seems to be possible with the following syntax:
docker run -t -i --device=/dev/ttyUSB0 ubuntu bash
(as proposed here) which would forward the USB device /dev/ttyUSB0 on a *nix system to the docker image.
A description of the --device flag can be found in the docker docs.
What would be the syntax for a Windows host?
Windows USB devices are not currently available to Docker containers run with Docker for Windows.
Answered by a Docker staff member on the 7th of July 2017 in the Docker forum.
https://forums.docker.com/t/exposing-docker-to-usb-device-in-windows-10-with-docker-toolbox/29290/3
This answer is likely to get outdated in some time, provided they will allow for this feature somehow.
This is a bad practice as it goes against the design philosophy of containers.
If you find yourself needing access to a hardware device, it's better to consider full virtualization such as VMware, Hyper-V, KVM/QEMU, Xen and so on.
However, the "proper" way is to design your system
so that hardware is abstracted into a network service. In this way, you deploy the service to physical machines to which the hardware is attached, and call them over the network. I don't know if this is possible in your case, but such decoupling provides a significant architectural advantage.

QEMU for Win7 hosting Debian : no more able to connect to the network

I'm fighting strongly against a problem that is making me crazy.
I’m extensively using QEMU over a Win7 64bits machine for running different Linux VMs (Debian, Raspbian).
In the past I configured the network following the QEMU instructions using the OpenVPN TAP device and network bridge in Win7 : it ran perfectly and the Linux machine was able to connect the “real world” networks, internet and so on.
In the last few days, on the contrary, this nice behavior stops working. The Windows situation is unmodified (the OpenVPN TAP driver settings are the same, the bridge is still there, when the bridge is active Windows still see the network, the TAP driver becomes “busy” when the QEMU VM starts as usual, the QEMU startup scripts are still the same…), but the emulated Linux system (whatever image I use) is unable to connect the network.
The “eth0” interface is active but unable to get the IP address from the DHCP and also using fixed IP address doesn’t solve the problem, since the IP address is not seen by the “real” network.
I have tried to uninstall and reinstall again the OpenVPN TAP driver, to downgrade Win QEMU to the previous version, but no way !
The only change that I made in the HOST configuration has been to install GNS3 (with its own TAP driver), but without including the QEMU VM in any GNS3 network.
Does anybody have suggestions regarding what kind of checks I have to do on QEMU in order to solve the problem ?
Any help will be appreciated
Regards
Ugo Poddine
I was finally able to get out.
I was forced to restore a previous system image : all attempts to uninstall and reinstall the OpenVPN TAP driver were useless.
The problem is probably due to the update of the OpenVPN TAP driver : with the v.9.0.0.9 no problem, but updating to the 9.21.1 seems to have generated the problem.
I'm now able to use again QEMU and GNS3 in network.
But what a strange case !

Operating System Debugging using KGDB tool

I want to learn how to connect original machine with windows 7 and Linux virtual machine for the debugging purpose.
I am having windows 7 as original operating system and one virtual machine with ubuntu operating system.I want to connect them and try to debug using kgdb.
I am new in this so please give me some advise and right path to do this.
Thanks in advance.
BS.
You can start from its manual. You can also check this other guide.

Setting up a network between linux VirtualBox and Windows 7

I have a Windows 7 machine with an installation of Linux in VirtualBox. I need to setup a network connection between the two.
Are there some tutorials on how I can achieve that?
Try this manual:
https://www.virtualbox.org/manual/ch06.html
It is a dedicated manual written by VirtualBox, and should explain the Virtual Networking functionality to you clearly.

Resources