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.

Prerequisites

Quick start: 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.

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 \ sample-images/images/simple-developer.aib.yml \ my-image.qcow2

    In this example, include the simple-developer.aib.yml automotive image builder manifest file to build a developer image. The developer image has a number of utilities installed for development purposes. For more information about the Automotive image builder manifests, see Introducing Automotive image builder. For more information about creating a custom manifest, see Deploying software on AutoSD.

    The build command takes a number of inputs:

    • Use --target to set the target environment. The default is qemu. Use qemu to build an image that you can launch in a QEMU virtual machine. Run list-targets to view the list of available options.
    • Use --distro to define the package repository that you want to use for the image build. The default is CentOS Stream 9 (cs9). Run list-dist to view the list of available options. You can also extend this list with your own custom distribution. For more information, see distributions.
    • Use --export to set the export file format. Run list-exports to view the list of available options.
    • Use --mode to set the type of OS image. This can be package, to build a package-based operating system image, or image to build an OSTree image. The default is image.
Quick start: Booting prebuilt AutoSD images in a QEMU VM

A virtualized AutoSD development environment is useful for building and testing applications intended to run on an AutoSD system, or to build new AutoSD images that you can flash onto automotive hardware or use on other systems.

To obtain an AutoSD image that you can boot in a VM, you can either build your own following Quick-start: building AutoSD images, or download one of the nightly developer images, and then launch a VM from the image. You can then use this VM as your development environment, where you can customize and build your own AutoSD images.

Prerequisites

  • A physical or virtual Linux host machine
  • The automotive-image-builder tool. For more information, see Installing Automotive imag builde
  • QEMU
  • A developer AutoSD image. Either your own image that you built from the simple-developer.aib.yml manifest, or the developer nightly image.

Procedure

  1. Launch a VM from the image with the automotive-image-runner tool. This tool comes packaged with automotive-image-builder.

    console $ sudo automotive-image-runner <path>/<to>/<image>/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.

Quick start: Building customized AutoSD images in a QEMU VM

Repeat the procedure in Quick start: Booting prebuilt AutoSD images in a QEMU VM, to download and run the latest nightly developer image. Then, expand the disk size, so you can use the automotive-image-builder tool to create customized system images using your custom .aib.yml manifest file.

For more information about the preconfigured manifest files the Automotive SIG provides as starter examples you can modify, see the Automotive Image Builder example manifests.

For more in-depth information about how to package your applications and embed them in a customized manifest you can then use to generate your customized OS image, see Packaging applications with RPM and Embedding RPM packages in the AutoSD image sections.

Prerequisites

  • A physical or virtual Linux host machine
  • The automotive-image-builder tool. For more information, see Installing Automotive image builder
  • QEMU
  • A developer AutoSD image. Either your own image that you built from the simple-developer.aib.yml manifest, or the developer nightly image.

Procedure

  1. Extend the virtual disk of your .qcow2 developer image, so that you have enough space to build your custom AutoSD images and facilitate your development work.

    1. On the host, resize your developer image. In this example, set the disk size to 30G, which is 30GiB:

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

  2. Launch your virtual AutoSD developer environment:

    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 parted and e2fsprogs file system management tools to extend the file system:

    ```console

    dnf -y install parted e2fsprogs

    ```

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

      ```console

      parted /dev/vda

      ```

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

      console (parted) resizepart 3 100%

    3. Exit the parted tool:

      console (parted) quit

    4. Enlarge the file system:

      ```console

      resize2fs /dev/vda3

      ```

  6. Install automotive-image-builder in your development VM.

    1. Enable the automotive-image-builder repository:

      ```console

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

      ```

    2. Install the automotive-image-builder tool:

      ```console

      dnf install automotive-image-builder

      ```

  7. In your development VM, create a custom Automotive image builder manifest file that you can configure 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 Sample OS images. To view an example customized manifest, see Sample automotive image builder manifest. For more details about how to build and customize images, see Deploying software on AutoSD and Embedding RPM packages in the AutoSD image.

  8. Build the OS image from 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 options section.

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

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

    console $ scp -P 2222 "UserKnownHostsFile=/dev/null" guest@localhost:/home/guest/my-image.qcow2 .

  10. On the host, launch a VM from your new image:

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

For more information about how to build your own customized AutoSD images, see Building and running your customized OS image.