docker configuration
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.0 KiB

# OK3568 Docker Development Environment
2 months ago
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\<user>\.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.