This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMDS64EVM: Does TI support Linux CCS v 12.6 running on an Ubuntu VM with USB port connections to the TMDS64EVM ?

Part Number: TMDS64EVM

cc: Andreas Dannenberg's Profile - Andreas Dannenberg - TI E2E support forums and Nick Saulnier's Profile - Nick Saulnier - TI E2E support forums

I  just saw a post TMDS64GPEVM: CCS Studio v11 Linux USB XDS problems - Processors forum - Processors - TI E2E support forums

from 2 years ago insinuating that one cannot run a Linux ( VMWare Workstation) VM installation (with the Linux version of CCS)  on a Windows PC and expect 2 USB (virtual) ports to be able to connect into an EVM 2 micro-B ports (one for UART, one for XDS110 on the EVM) and be able to download Linux CCS compiles and debug over CCS?

Is this true? Do I need a PC that is a pure Linux only build to connect up to any EVM for any Linux compiled application?

This might be a root cause scenario for what I am seeing on e2e entry (1) TMDS64EVM: CCS v12.6 Linux cannot tell that if EVM's XDS110 probe "firmware update is required for the XDS110 probe." - Processors forum - Processors - TI E2E support forums that is assigned to (2) Tushar Thakur's Profile - Tushar Thakur - TI E2E support forums 

thanks!

  • Hi Jim,

    I am not aware of anyone uses Linux in VMWare, but I am routing your query to our CCS expert for comments.

  • Bib:  I have seen this document: CCS with Virtual Machines (ti.com) which supports what TIer Andreas Dannenberg had told me a few months back. I have an Ubuntu VM installed on a Windows 10 host. I have been able to compile MCU + SDK v9.1 examples in the Ubuntu VM environment but having problems connecting with the TMDS64EVM's XDS110 (i.e. connecting to an R5 0-0 target). 

    Are you assigning this to Kai? Nick Saulnier should also be advised.

    thanks

    Jim Mrowca (ex-TIer '82 - '97)

  • Hello Jim,

    What is technically possible vs what is supported

    Let me make a distinction here between what is "possible" and what is "supported".

    In general, it is easier to do Linux development on a dedicated Linux PC (I've even seen people dual booting Linux / Windows PC), rather than a Linux virtual machine. There are multiple reasons for that: 

    * Builds are faster when all the processor cores & DDR can go towards the build instead of being shared with the host OS
    * Yocto builds require a LOT of ROM as well as RAM (When I supported this a couple years ago, we're talking on the order of 50GB+ free space is needed on the disk for the temporary files during a build)
    * interfaces like USB are harder to get working
    * etc

    Because of that, nobody I know at TI actually uses virtual Linux machines (the last time I experimented with one myself was back in 2016).

    So is it possible to use a Linux virtual machine? Probably. But we won't really be able to help, since none of us have experience with it.

    Would I personally use a Linux VM now?

    No. I would rather grab an old windows computer that was no longer being used, and just install Ubuntu on it (or another user-friendly distribution of Linux). My current Linux PC is 11 years old. It takes all night to do a yocto build, but as long as I'm multithreading with -j in the make command, kernel builds, module builds, etc don't take that long.

    Are there any other observations that might be helpful? 

    Keep in mind I'm talking about something I did 7 years ago. So my memory might be wrong, and the code and capabilities of Virtual Machines might have changed significantly since then.

    USB connectivity was an issue. It was pretty easy to tell my computer to pass mouse or keyboard input to the virtual machine. My main struggle was trying to connect an SD card over USB, and then pass that USB interface to the VM Linux so that I could write to the SD card. I think I tried both VirtualBox and VMWare, and I think one of them had an easier time exposing the USB interface, but I cannot remember which was which, or if I ever figured out how to write that SD card before I was able to get an actual Linux PC.

    I would not be surprised if Windows continued to have a hard time passing nonstandard interfaces (like an XDS110 input) connected over USB to a virtual machine.

    Regards,

    Nick

  • Thank you Nick!  I foresee the VM emulation of Linux USB serial ports then running into a USB/Serial convertor being a problem. (We saw something analogous but in the hardware domain when older USB/serial convertors that were developed when PCI was the dominant PC backplane connection, before PCIe took hold, and then those old convertors' internal fifos would be overrun by the higher rate of PCIe). Nowadays you do not even have a serial port connection on the PC motherboard -- unless you buy a PCIe to serial card.

    One online TI document that really needs to be updated by the CCS & XDS* teams is the following: 

    CCS with Virtual Machines (ti.com)

    whereas one can slowly compile on a CCS installation on a Linux VM, the following section needs scrubbing:

    "

    Debug Probes

    PCI Based Debug Probes

    The PCI bus doesn't support multiple operating systems sharing it on the same host. What this means is that there is no way to see a PCI card installed in the host on the virtual machine. Thus PCI based debug probes (i.e. TI XDS560 PCI) cannot be used directly by the VMware image. However there is a workaround for people who wish to use a TI XDS560 debug probe - use the Blackhawk Remote Emulation Technology and have the the host PC as the server and the VMware image as the client.

    XDS100 Debug Probes

    Despite some configurations work fine with XDS100 on a virtual machine, the performance degradation is significant and should be expected, especially with more intricate ISAs such as C66x and ARM cores.

    XDS110 Debug Probes

    They generally work well, however it was observed that complex devices can suffer many problems from the severe lag imposed by the virtual machine software layers.

    "

    It is notable that the VMware issue on XDS560 probes is documented -- so this serial thru a convertor, via a VM emulated USB port must have been noticed.

    I also realize that making this CCS disclaimer change would need buy-in by other TI groups (not only thru CCS' Kai, but also the pure DSP products like C2000, and MSP430, the new ARM M0+ product, etc.).

    < BTW, the TIer who led me first down the path to using a Linux VM installed on a Windows PC was Andreas Dannenberg >

    later

    Jim

  • Hello Jim,

    Thanks for pointing to that page. I'll chat with the CCS team to see if there are any updates they want to make to it.

    Regards,

    Nick

  • Nick: I am taking an older PC into an Ubuntu-only build and will reinstall the TI CCS & the AM64X SDKs onto that.

    thanks again

    Jim

  • Hello Jim,

    I went ahead and got some additional inputs from Ki and Andreas. Here are the highlights.

    For future readers, I've highlighted the caveats - Andreas and Ki are the only team members I personally know who use VMs alongside their regular Linux PCs. If you do decide to use a VM, it might work out for you, and if you run into issues you might get lucky and end up talking with one of those two - but statistically speaking you're much more likely to be assigned to one of the other TI engineers, and we aren't going to be able to help you.

    Ki: 

    VM’s are not officially supported.

    Ki:

    With that said, that CCS page is quite old and specific to VMware. I’d say that the VM situation with CCS has improved since then. I use Linux VMs via VirtualBox often with CCS and it works pretty well. Many other developers on my side have a similar setup. I believe the same caveats exist regarding XDS100 but XDS100 is not so common these days compared to XDS110. I’d say that the overall experience is pretty good now. The CCS guys who have experience with VMs only use the supported Linux distros (Ubuntu)

    Andreas: 

    > I use Linux VMs via VirtualBox often with CCS

    What do you do for the USB drivers with VirtualBox? Last time I looked at it, the slow USB was the biggest downside and essentially made this solution unusable. The built-in “free” USB 1.1 support is unusably slow, and the upgrade package to USB2.0/3.0 comes with an expensive license.

    Personally I use VMware for all my virtualization needs, across different PCs / OSs, and have not had a single case where the VM solution would get into the way of anything I needed to do.

    Ki:

    Yes the USB 1.1 restriction makes stepping or anything that requires target execution a bit rough. But it is tolerable enough for my needs, especially on the smaller devices (Nick notes, AM64x is NOT a smaller device). If I need to do serious debug then I will always go to my native Linux machine.

    Regards,

    Nick

  • One clarification:

    The built-in “free” USB 1.1 support is unusably slow, and the upgrade package to USB2.0/3.0 comes with an expensive license.

    The VirtualBox extension pack (which adds USB2.0/3.0) is free for personal use but requires an enterprise license for corporate use (~50USD):

    https://www.virtualbox.org/wiki/Licensing_FAQ