Dear Community User! We are updating our platform to a new system.
Read more: Important information on the platform change.

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

USB/Ethernet passthrough from Windows Host to App Build Envrionment

USB/Ethernet passthrough from Windows Host to App Build Envrionment

EchoHarmony
New Poster

Hi, we are starting to develop Apps with ctrlX OS as our target system.

We setup the App Build Environment and tested the first cpp-samples.

Is it possible to connect (usb 3.0 or Ethernet) hardware to the Windows host and use the hardware inside the App Build Environment during development?

3 REPLIES 3

nickH
Community Moderator
Community Moderator

Hi, 

the App Build Environment is a virtual ubuntu server machine emulated with qemu. You can customize the qemu settings for your needs (like giving network adapters to the virtual maschine). Just take a look into the storage location, where you stored your App Build Environment end change (or add) settings in the "launch.bat". 

The qemu documentation can help you here probably.

Best regards, 

Nick

Sgilk
Frequent Contributor

Hi @EchoHarmony ,

Sorry, I was working on this while @nickH replied, so there is some duplicate information.

This is possible by setting some flags in the QEMU launch.bat file.

See documentation on USB Emulation from QEMU. Specifically, you will want usb-host and usb-net.

You can find the VM data at the storage location specified in ctrlX WORKS.

Sgilk_0-1701964052245.png

Here is an example implementation passing through a USB mouse/keyboard reciever from the Windows host.

 

IF "%ARCH%" == "amd64" (
    qemu-system-x86_64.exe ^
    -name "%NAME%" ^
    -machine q35,accel=%ACCEL% ^
    -smp 4 ^
    -m 4G ^
    -netdev user,id=eth0,%PFW% ^
    -device virtio-net-pci,netdev=eth0,mac=DE-AD-BE-00-00-01 ^
    -drive "file=%QCOW2%,format=qcow2" ^
    -drive "file=%UDIMG%,format=raw" ^
    -display none ^
    -nographic ^
    -device nec-usb-xhci ^
    -device usb-host,vendorid=0x1F75,productid=0x0817

    exit /B 0
)

 

 

The last two -device flags are the required changes from the default. I can now see the reciever in the usb device list.

Sgilk_0-1701969631039.png

 

 

Thank you, for the quick response and the nice explanation.

It works!

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist