Skip to content

Getting started on Linux

Getting started on Linux

Set up your development environment with the prerequisite tools and repositories you need to quickly start building AutoSD images.

Building AutoSD images

To build an AutoSD image, you need the automotive-image-builder tool and a compatible Automotive Image Builder manifest. You can find several sample manifests in the images directory in the sample-images repository.

Prerequisites

Procedure

  1. Copy or modify one of the sample manifests from the sample-images/images directory:

    console $ git clone https://gitlab.com/CentOS/automotive/sample-images.git

  2. Build an image with automotive-image-builder:

    console $ sudo automotive-image-builder build \ --target qemu \ --export qcow2 \ --mode package \ sample-images/images/simple-developer.aib.yml \ my-image.qcow2

    This example build command uses simple-developer.aib.yml, which is an Automotive Image Builder manifest file that contains several RPM packages for development purposes. The build command options are described in detail in Automotive Image Builder tool.

Booting prebuilt AutoSD images in a QEMU VM

A virtualized AutoSD development environment, or virtual machine (VM), is a convenient place to build and test applications. The image built from simple-developer.aib.yml, for example, includes many tools useful for developing AutoSD images. After you create an AutoSD image file, use the automotive-image-runner tool, included with the automotive-image-builder, to start a VM.

Prerequisites

Procedure

  1. Start a VM using automotive-image-runner:

    console $ sudo automotive-image-runner <path>/image.qcow2

  2. Log in as the root user with the default password password.

    Note

    To enable ssh access, you must set PasswordAuthentication yes in /etc/ssh/sshd_config. Then you can access the machine with ssh -p 2222 -o "UserKnownHostsFile=/dev/null" guest@localhost.

Building customized AutoSD images in a QEMU VM

Whether you download a sample image or build your own, a pre-configured AutoSD platform is the ideal VM environment for creating customized AutoSD images. The AutoSD image disk size is small, however, so you must enlarge the disk size before using the VM to build customized images. After you resize the disk, launch a VM, install the required build tools, and build a customized AutoSD image.

Prerequisites

Procedure

  1. Resize the virtual disk of your .qcow2 image so you have enough space to build and develop custom AutoSD images:

    console $ sudo qemu-img resize <image>.qcow2 30G

  2. Start a VM:

    console $ sudo automotive-image-runner <path>/<image>.qcow2

  3. Log in with the guest user and the default password password.

    Note

    To enable ssh access, you must set PasswordAuthentication yes in /etc/ssh/sshd_config. Then you can access the machine with ssh -p 2222 -o "UserKnownHostsFile=/dev/null" guest@localhost.

  4. Change to the root user. The root user password is also password:

    console $ su -

  5. Install the tools needed to resize the disk image:

    ```console

    dnf -y install parted e2fsprogs

    ```

  6. Run parted to extend the size of /dev/vda:

    ```console

    parted /dev/vda

    ```

  7. Resize the /dev/vda3 partition to fill the space available to that partition:

    console (parted) resizepart 3 100%

  8. Exit the parted tool:

    console (parted) quit

  9. Enlarge the file system:

    ```console

    resize2fs /dev/vda3

    ```

  10. Install copr:

    ```console

    dnf install 'dnf-command(copr)'

    ```

  11. Install automotive-image-builder in the VM.

    1. Enable the automotive-image-builder repository:

      ```console

      dnf copr enable @centos-automotive-sig/osbuild-auto

      dnf copr enable @centos-automotive-sig/automotive-image-builder

      ```

    2. Install the automotive-image-builder tool:

      ```console

      dnf install automotive-image-builder

      ```

  12. From the VM, create a custom Automotive Image Builder manifest file and configure it according to your requirements:

    console # vim my-manifest.aib.yml

    Note

    The Automotive SIG provides several sample manifest files in sample-images/images/ you can reference. For more information about available sample images, see AutoSD sample images. To view an example customized manifest, see Sample Automotive Image Builder manifest. For more details about how to build and customize images, see Building an image from a custom manifest and Embedding RPM packages from local storage into the AutoSD image.

  13. Build the OS image using your custom my-manifest.aib.yml. In this example, build a qcow2 format for the qemu target so that you can launch your image in a VM:

    console # automotive-image-builder build \ --target qemu \ --export qcow2 \ my-manifest.aib.yml \ my-image.qcow2

    Note

    For more information about the export file types automotive-image-builder supports, see Export formats in the Automotive Image Builder tool section.

    For more information about image naming conventions, see AutoSD sample images.

  14. Exit the VM and export the image file to the host:

    console $ scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -P 2222 root@localhost:/root/my-image.qcow2 .

  15. From the host, launch a VM using your new image:

    console $ sudo automotive-image-runner my-image.qcow2

  16. Log in to the VM as the root user with the default password password.

Additional resources