LabVIEW Real-Time Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
gsussman

Provide a Virtual Machine (VM) in which to run LV RT systems on

Status: In Development

When developing RT code (especially system upgrades) it would be truly helpful to have a virtual machine (VMware, MS Virtual PC, Sun Virtual box, etc....) that would allow us to run the actual VxWorks OS and LVRT in it's native environment, within the Windows OS. This would allow the code to run on the actual RTOS (I realize that determinism would be scacrificed) and provide the ability to actually test the functionality of the code in the actual environment to ensure that it runs as it should. It would also preclude the need to have a bunch of RT controllers sitting on the shelf in the event that you might need them.

 

There is and emulator for PDA module, why not for RT.

73 Comments
plist
Member

D4N!3L3,

 

I was going down the same path that you seemed to get working, and I'm having troubles booting into the USB stick on my VM. I get stuck at "Waiting for USB to intitialize." 

 

Did you do anything else to boot off the USB drive properly?

 

Thanks!

D4N!3L3
Member

Hi Plist,

as far i know, it's not possible to boot a VirtualBox directly from an USB drive. For this reason i've followed the guide here (http://www.howtogeek.com/187721/how-to-boot-from-a-usb-drive-in-virtualbox/) that use an undocumented feature of VirtualBox to enable direct access to an usb drive. This small hack make the USB drive visible to the VirtualBox as an IDE drive. The Virtual Machine then boot from this "fake" IDE drive.

Where/when exactly you got stuck? During the process of creating the .vmdk "bridge" file?

 

Jean.L
Member

Hi D4N!3L3,

 

I followed the instructions you posted but I am getting the same problem than Plist. I am stuck to "Waiting for USB to initialize..."

Please find attached the screenshoot of my virtual machine. I set the same parameters as you.

 

Thank you very much.

 

Regards,

Jean

 

 

VM_Screenshot1.jpg

 

VM_Screenshot2.jpgVM_Screenshot3.jpg

VM_Screenshot4.jpgVM_Screenshot5.jpgVM_Screenshot6.jpgVM_Screenshot7.jpgVM_Screenshot8.jpgVM_Screenshot9.jpg

Jean.L
Member

For those who had the same problem as me I couldn't use the USB Utility Drive but I finally manage to set up the Virtualbox by cloning hard drive using Clonezilla and Gparted.VirtualBoxWorking.png

tyk007
Active Participant

This lack of functionality is one of the biggest reasons our business does not want to adopt real-time controllers for embedded control systems; prefering instead to implement traditional PLC and SCADA systems. Those systems are capable of development and testing without any hardware present and suit the workflow of feasibility as well as change control in production. Sure, they have less features but isn't one of the goals of the cRIO platform to provide a super-set?

 

I don't see how anyone can have high confidence in a cRIO system (except for the most basic of use cases), or worse a change to a remote system without actually having the exact hardware present for testing; a most expensive exercise.

 

Its good to see that NI are taking this seriously with a change to "In Development" status. 

D4N!3L3
Member

Hi all,

finally I've managed to create a VHD bootable image of the USB DesktopPC Utility disk.

For those interested: v2014, v2015

 

ps: I think that this do not violate any (C) but if NI thinks in a different way I'll remove the files.

Hooovahh
Proven Zealot

Not sure how I forgot to post this here but in addition to being able to have a RT VM as described earlier.  There is also a way to have a Linux RT VM as described here.  There is no embedded UI, and MAX doesn't recognize it so updating software has to be done manually.  But deploying VIs that don't rely on extra software like DAQmx work, and you can play around with the system exec and call library node to test calling into the Linux OS functions.

nwxan90
Member

I have successfully managed to spin up a VM for Linux RT so far its working perfectly. The embedded UI even works and the VM can be updated VIA Max, 

 

Ill list out my steps below if anybody is interested in getting it to work. 

 

  1. Create New VM
    1. Select Linux
    2. Ubuntu 64 Bit
    3. 2GB of RAM
    4. 10GB Storage Drive
  2. Open Settings for new VM
    1. In System
      1. Enable EFI
    2. Network
      1. Adapter 1
        1. Host-only Adapter
      2. Adapter 2 (Optional)
        1. Bridged
        2. Required for the VM to get internet access
    3. USB
      1. Unable USB 3 (KEYBOARD WILL NOT WORK WITHOUT THIS STEP)
        1. This will require the expansion pack to be installed
  3. Start-up VM
    1. When Prompted point the VM to
      1. C:\Program Files (x86)\National Instruments\RT Images\Utilities\Linux RT PXI Safemode
      2. There should be an ISO in a folder
    2. During boot press the up arrow to select verbose
    3. You should then be greeted by the install screen asking you to enter y to install #
      1.  If your keyboard will now not respond
        1. Plug in a USB one if you haven't already
        2. Click devices>USB>Click your USB keyboard
        3. Its should now let you continue
    4. Eject installation media
    5. Reboot VM

You should now be able to see your VM in NI MAX and install any software you require. 

MAX ScreenMAX Screen

You can enable the UI if you install LabVIEW 2017 Realtime

UI RunningUI Running

You can also add the VM to a project and target it then run code directly 

Running SystemRunning System

Hope this helps


Certified LabVIEW Architect, Certified Professional Instructor

CLA CPI

fmorandat
Member

Excellent 😄

From which toolkit is installed this iso ?

nwxan90
Member

The .iso contains just Linux Real-time safemode. It’s similar to getting a cRIO and then wiping the disk via NI MAX it shows as “same mode no software installed” 

 

The .iso file is installed on your PC when you install Real-time. I currently have LabVIEW 2019, 2018 and 2017 installed. 


Certified LabVIEW Architect, Certified Professional Instructor

CLA CPI