# OK3568 Docker Development Environment This folder contains the Docker-based replacement for the vendor VM described in `docs/build/ok3568-multi-som-build-deploy-strategy.md`. ## Scope - Host OS: Windows with Docker Desktop using Linux containers - Container OS: Ubuntu 22.04 - Container user: `forlinx` - SDK mount: `/work/OK3568_Linux_fs` - Vendor SDK source: `bsp/OK3568-C&FET3568-C/OK3568-C&FET3568-C/OK3568-C&OK3568J-C&OK3568J-C21_Forlinx Desktop 22.04_R1/OS image and source code/1-Source_Code/OK3568_Linux_fs/OK3568_Linux_fs` The container is for build and packaging work. Keep Windows Rockchip tools (`RKDevTool`, `FactoryTool`, `DriverAssitant`) as the default flashing path. ## Docker Config Access If Docker reports that `C:\Users\\.docker\config.json` is not accessible, run the helper scripts below. They set `DOCKER_CONFIG` to `docker/.docker-config` inside this repo. ## Commands Check host prerequisites: ```powershell .\docker\scripts\check-host.ps1 ``` Build the image: ```powershell .\docker\scripts\build-image.ps1 ``` Open an interactive SDK shell: ```powershell .\docker\scripts\shell.ps1 ``` Run an SDK build target: ```powershell .\docker\scripts\build-source.ps1 -BuildTarget help .\docker\scripts\build-source.ps1 -BuildTarget kernel ``` Multi-SoM target names are accepted by the wrapper for future use: ```powershell .\docker\scripts\build-source.ps1 -Target fet3568-c -BuildTarget kernel ``` The current vendor SDK still controls its active defconfig through its own `output/.config` and `device/rockchip/.chip` links. The `-Target` value is recorded in the container environment as `TERA_TARGET`, but target-specific defconfig switching should be added only after the second SoM profile is known. ## Direct Compose Usage ```powershell $env:DOCKER_CONFIG = "$PWD\docker\.docker-config" docker compose -f docker\docker-compose.yml build ok3568-dev docker compose -f docker\docker-compose.yml run --rm -e TERA_TARGET=fet3568-c ok3568-dev make help ``` ## Notes - The SDK path includes spaces and `&`; use the provided compose file or scripts instead of hand-typing long volume paths. - The vendor SDK contains Windows-created symlinks at the source root. The container entrypoint checks that `Makefile` and `build.sh` are readable before running commands. - Docker must be running before build or shell commands can execute. ## Docker Desktop Virtualization Error If Docker Desktop reports: ```text Hardware assisted virtualization and data execution protection must be enabled in the BIOS ``` check these host settings: - BIOS/UEFI: enable Intel VT-x / Intel Virtualization Technology, or AMD-V / SVM. - BIOS/UEFI: enable Execute Disable Bit / XD / NX / Data Execution Prevention. - Windows features: enable Windows Subsystem for Linux, Virtual Machine Platform, and, when available on the Windows edition, Hyper-V. - Reboot after changing BIOS or Windows feature settings. Run `.\docker\scripts\check-host.ps1` from an elevated PowerShell prompt to see the current Windows optional feature states.