Skip to content

i.MX Docker

Notifications You must be signed in to change notification settings

nxp-imx/imx-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This setup helps to build i.MX BSP in an isolated environment with docker.

Prerequisites

Install Docker

There are various methods of installing docker, i.e. by docker script:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

Run docker without sudo

To work better with docker, without sudo, add your user to docker group.

$ sudo usermod -aG docker <your_user>

Log out and log back in so that your group membership is re-evaluated.

Set docker to work with proxy

Create a docker config file at ~/.docker/config.json and enter the following:

{
"proxies":
    {
     "default":
         {
          "httpProxy":"http://proxy.example.com:80"
         }
    }
}

Note: replace the 'example' proxy with your proxy info.

Create docker service

$ sudo mkdir -p /etc/systemd/system/docker.service.d
$ sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

add the following:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/"
Environment="NO_PROXY=localhost,someservices.somecompany.com"

Restart Docker

  $ sudo systemctl daemon-reload
  $ sudo systemctl restart docker

Build i.MX with docker

.
├── Dockerfile-Ubuntu-18.04
├── Dockerfile-Ubuntu-20.04
├── Dockerfile-Ubuntu-22.04
├── README.md
├── docker-build.sh
├── docker-run.sh
├── env.sh -> imx-6.6.36-2.1.0/env.sh
└── imx-6.6.36-2.1.0
    ├── env.sh
    └── yocto-build.sh

Set variables

Use env.sh to set variables for your build setup. Make sure you have created a working directory, owned by current user, on a larger partition.

Create a yocto-ready docker image

Run docker-build.sh with one argument, related to Dockerfile, corresponding to the operating system, for example the Dockerfile for Ubuntu version 22.04:

  $ ./docker-build.sh Dockerfile-Ubuntu-22.04

Build the yocto imx-image in a docker container

  $ ./docker-run.sh ${IMX_RELEASE}/yocto-build.sh

  i.e IMX_RELEASE=imx-6.6.36-2.1.0

or just go to the docker container prompt (and run the build script from there):

  $ ./docker-run.sh

When running, volumes are used to save the build artifacts on host.

  • {DOCKER_WORKDIR} as the main workspace
  • {DOCKER_WORKDIR}/${IMX_RELEASE} to make available the yocto build scripts into container
  • {HOME} to mount the current home user, to make available the user settings inside the container (ssh keys, git config, etc)