|
|
|
|
# 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\<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.
|