3. Setting Up the FPGA AI Suite Docker Image
To set up the FPGA AI Suite Docker image:
- Install the WSL 2 environment on your Microsoft* Windows* system.
- Install a Docker* client. During the client setup, use WSL 2 as the virtualization option.
- (Optional) To speed up the container, create or update the .wslconfig file to adjust the host hardware resources (such as CPU and RAM) in the container environment. The .wslconfig file is typically found in C:\Users\<username>\.wslconfig.
You can use the following example file to create or update your file. Update the lines highlighted in bold text to customize your WSL container environment.
# Settings apply across all Linux distros running on WSL 2 [wsl2] # Limits VM memory to use no more than <memory_allocated> GB, this can be set as whole numbers using GB or MB memory=<memory_allocated>GB # Sets the VM to use <number of virtual_processors_assigned to VM> virtual processors processors=<number of virtual_processors_assigned to VM> # Sets amount of swap storage space to <swap_file_size> GB, default is 25% of available RAM swap=<swap_file_size>GB # Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx swapfile=C:\\temp\\wsl-swap.vhdx # Turn off default connection to bind WSL 2 localhost to Windows localhost localhostforwarding=false #true # Disables nested virtualization nestedVirtualization=false # Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging debugConsole=false
If you create or update the .wslconfig file, restart the Docker* client and the WSL 2 environment:- Exit the Docker* client.
- Shut down the WSL 2 environment by running the following command in a Windows Terminal session:
wsl --shutdown
- Start the Docker* client.
Starting the Docker* client restarts the WSL 2 environment.
- [FPGA] Install the SoC EDS software.
For installation instructions, refer to the Intel® SoC FPGA Embedded Development Suite (SoC EDS) User Guide
- [FPGA] Install the USB/IP open-source project (usbipd-win).
For installation instructions, refer to the "Install the USBIPD-WIN project" section of Connect USB devices at Microsoft* Learn.
- [FPGA] Attach your FPGA development kit to the host machine using the development kit UART and JTAG connections.
- Pull the latest FPGA AI Suite Docker* image from the Docker* Hub Container Image Library with the following command:
docker pull alterafpga/fpgaaisuite-v2025.1:latest
- [FPGA] Set up serial port access to the FPGA board as follows:
- Start a Windows command prompt session with Administrator privileges and run the following command:
usbipd list
The command output should be like the following example output:BUSID VID:PID DEVICE STATE 1-7 067b:23a3 Prolific PL2303GC Not shared USB Serial COM Port (COM3) 1-8 0bda:4c60 Realtek USB Audio, USB Input Device Not shared 1-9 0403:6001 USB Serial Converter Not shared 1-14 8087:0033 Intel(R) Wireless Bluetooth(R) Not shared 6-5 0bda:1100 USB Input Device Not shared 7-4 06c4:c413 USB Input Device Not shared 8-1 046d:c33f USB Input Device Not shared 8-3 046d:c08b USB Input Device Not shared 9-2 0bda:8153 Realtek(R) Not shared USB GbE Family Controller
Find you FPGA development kit. The kit is listed as USB Serial Converter. In the example output, the kit has Bus ID 1-9.
- Run the following command to give the WSL 2 environment access to the FPGA development kit:
usbipd bind --busid 1-9
After running this command, the usbipd list command should show the device in the Shared state:BUSID VID:PID DEVICE STATE ... 1-9 0403:6001 USB Serial Converter Shared ...
Tip: If you need to remove the FPGA development kit, you can use the unbind command to unbind the device from the WSL 2 environment: usbipd unbind --busid 1-9. - Attach the FPGA development kit to the WSL 2 environment:
usbipd attach --wsl --busid 1-9
Tip: If you do not need to access the FPGA development kit, detach the FPGA development kit device to avoid possible errors:usbipd detach --wsl --busid 1-9
- Start a Windows command prompt session with Administrator privileges and run the following command: