Difference between revisions of "Yocto Project my own quick start"
(→Building the Image) |
(→Edit the configuration files) |
||
(16 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | This page is an excerpt from [http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html Yocto Project Quick Start Copyright © 2010- | + | This page is an excerpt from [http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html Yocto Project Quick Start Copyright © 2010-2020 Linux Foundation] |
Line 6: | Line 6: | ||
Packages and package installation vary depending on your development system. In general, you need to have root access and then install the required packages. The next few sections show you how to get set up with the right packages for Ubuntu. | Packages and package installation vary depending on your development system. In general, you need to have root access and then install the required packages. The next few sections show you how to get set up with the right packages for Ubuntu. | ||
− | If you have different distributions, please refer to the [https:// | + | If you have different distributions, please refer to the [https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html Yocto Project Documentation] |
− | The packages | + | You must install essential host packages on your build host. |
+ | The following command installs the host packages based on an Ubuntu distribution: | ||
− | + | $ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath \ | |
− | + | socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping \ | |
− | + | python3-git python3-jinja2 python3-subunit zstd liblz4-tool file locales libacl1 | |
+ | |||
+ | $ sudo locale-gen en_US.UTF-8 | ||
− | == Development Code - branch | + | == Development Code - branch 5.0 'scarthgap' LTS == |
Yocto Project code can be found in the Yocto Project Source Repositories. | Yocto Project code can be found in the Yocto Project Source Repositories. | ||
Line 20: | Line 23: | ||
$ cd $HOME/yocto | $ cd $HOME/yocto | ||
− | $ git clone git://git.yoctoproject.org/poky -b | + | $ git clone git://git.yoctoproject.org/poky -b scarthgap |
− | |||
− | |||
− | |||
− | |||
poky/ | poky/ | ||
├── bitbake | ├── bitbake | ||
+ | ├── contrib | ||
├── documentation | ├── documentation | ||
├── LICENSE | ├── LICENSE | ||
+ | ├── LICENSE.GPL-2.0-only | ||
+ | ├── LICENSE.MIT | ||
+ | ├── MAINTAINERS.md | ||
+ | ├── MEMORIAM | ||
├── meta | ├── meta | ||
− | |||
├── meta-poky | ├── meta-poky | ||
├── meta-selftest | ├── meta-selftest | ||
Line 37: | Line 40: | ||
├── meta-yocto-bsp | ├── meta-yocto-bsp | ||
├── oe-init-build-env | ├── oe-init-build-env | ||
− | ├── README.hardware -> meta-yocto-bsp/README.hardware | + | ├── README.hardware.md -> meta-yocto-bsp/README.hardware.md |
− | ├── README. | + | ├── README.md -> README.poky.md |
− | ├── README.poky -> meta-poky/README.poky | + | ├── README.OE-Core.md |
− | ├── README.qemu | + | ├── README.poky.md -> meta-poky/README.poky.md |
− | └── | + | ├── README.qemu.md |
+ | ├── scripts | ||
+ | └── SECURITY.md | ||
+ | |||
+ | In addition you can install an optional but frequently essential metalayer | ||
+ | |||
+ | $ cd $HOME/yocto/poky | ||
+ | $ git clone git://git.openembedded.org/meta-openembedded -b scarthgap | ||
== Initializing the Build Environment == | == Initializing the Build Environment == | ||
Line 52: | Line 62: | ||
At this point, the '''build''' directory has been created for you and it is now your current working directory. | At this point, the '''build''' directory has been created for you and it is now your current working directory. | ||
This is the default tree you should have to build. | This is the default tree you should have to build. | ||
− | |||
poky/ | poky/ | ||
├── bitbake | ├── bitbake | ||
├── build <----- run bitbake inside here | ├── build <----- run bitbake inside here | ||
+ | ├── contrib | ||
├── documentation | ├── documentation | ||
├── LICENSE | ├── LICENSE | ||
+ | ├── LICENSE.GPL-2.0-only | ||
+ | ├── LICENSE.MIT | ||
├── meta | ├── meta | ||
− | |||
├── meta-poky | ├── meta-poky | ||
├── meta-selftest | ├── meta-selftest | ||
Line 67: | Line 78: | ||
├── oe-init-build-env | ├── oe-init-build-env | ||
├── README.hardware -> meta-yocto-bsp/README.hardware | ├── README.hardware -> meta-yocto-bsp/README.hardware | ||
− | ├── README. | + | ├── README.OE-Core |
├── README.poky -> meta-poky/README.poky | ├── README.poky -> meta-poky/README.poky | ||
├── README.qemu | ├── README.qemu | ||
Line 74: | Line 85: | ||
== Edit the configuration files == | == Edit the configuration files == | ||
− | + | Add meta-openembedded/meta-oe to the bblayers.conf | |
+ | bitbake-layers add-layer ../meta-openembedded/meta-oe | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Remember also to edit the file $HOME/yocto/poky/build/conf/local.conf | Remember also to edit the file $HOME/yocto/poky/build/conf/local.conf | ||
and check the following variables: | and check the following variables: | ||
− | MACHINE ?= " | + | MACHINE ?= "qemuarm" |
DISTRO ?= "poky" | DISTRO ?= "poky" | ||
PACKAGE_CLASSES ?= "package_ipk" | PACKAGE_CLASSES ?= "package_ipk" | ||
Line 114: | Line 113: | ||
The following command setup the emulation environment and launch QEMU. | The following command setup the emulation environment and launch QEMU. | ||
− | $ runqemu | + | $ runqemu qemuarm |
+ | |||
+ | Or if you prefer, open a new shell terminal, setup the environment again and run | ||
+ | |||
+ | $ runqemu qemuarm nographic | ||
+ | |||
+ | == Building cross-compiler == | ||
+ | |||
+ | If you want you can create a re-distribuible cross-compiler targeted at your MACHINE. | ||
+ | |||
+ | $ bitbake meta-toolchain |
Latest revision as of 14:42, 17 October 2024
This page is an excerpt from Yocto Project Quick Start Copyright © 2010-2020 Linux Foundation
Contents
The required packages
Packages and package installation vary depending on your development system. In general, you need to have root access and then install the required packages. The next few sections show you how to get set up with the right packages for Ubuntu.
If you have different distributions, please refer to the Yocto Project Documentation
You must install essential host packages on your build host. The following command installs the host packages based on an Ubuntu distribution:
$ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath \ socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping \ python3-git python3-jinja2 python3-subunit zstd liblz4-tool file locales libacl1 $ sudo locale-gen en_US.UTF-8
Development Code - branch 5.0 'scarthgap' LTS
Yocto Project code can be found in the Yocto Project Source Repositories. To check out current development code using git:
$ cd $HOME/yocto $ git clone git://git.yoctoproject.org/poky -b scarthgap
poky/ ├── bitbake ├── contrib ├── documentation ├── LICENSE ├── LICENSE.GPL-2.0-only ├── LICENSE.MIT ├── MAINTAINERS.md ├── MEMORIAM ├── meta ├── meta-poky ├── meta-selftest ├── meta-skeleton ├── meta-yocto-bsp ├── oe-init-build-env ├── README.hardware.md -> meta-yocto-bsp/README.hardware.md ├── README.md -> README.poky.md ├── README.OE-Core.md ├── README.poky.md -> meta-poky/README.poky.md ├── README.qemu.md ├── scripts └── SECURITY.md
In addition you can install an optional but frequently essential metalayer
$ cd $HOME/yocto/poky $ git clone git://git.openembedded.org/meta-openembedded -b scarthgap
Initializing the Build Environment
From the parent directory your Source Directory, initialize your environment and provide a meaningful Build Directory name:
$ cd $HOME/yocto/poky $ source oe-init-build-env
At this point, the build directory has been created for you and it is now your current working directory. This is the default tree you should have to build.
poky/ ├── bitbake ├── build <----- run bitbake inside here ├── contrib ├── documentation ├── LICENSE ├── LICENSE.GPL-2.0-only ├── LICENSE.MIT ├── meta ├── meta-poky ├── meta-selftest ├── meta-skeleton ├── meta-yocto-bsp ├── oe-init-build-env ├── README.hardware -> meta-yocto-bsp/README.hardware ├── README.OE-Core ├── README.poky -> meta-poky/README.poky ├── README.qemu └── scripts
Edit the configuration files
Add meta-openembedded/meta-oe to the bblayers.conf
bitbake-layers add-layer ../meta-openembedded/meta-oe
Remember also to edit the file $HOME/yocto/poky/build/conf/local.conf
and check the following variables:
MACHINE ?= "qemuarm" DISTRO ?= "poky" PACKAGE_CLASSES ?= "package_ipk" INHERIT += "rm_work"
Building the Image
At this point, you need to select an image to build. If this is your first build using the Yocto Project, you should try the smallest and simplest image:
$ bitbake core-image-minimal
Now you just wait for the build to finish.
Starting the QEMU Emulator
Before you start the QEMU emulator, be sure you have already to set up the emulation environment.
The following command setup the emulation environment and launch QEMU.
$ runqemu qemuarm
Or if you prefer, open a new shell terminal, setup the environment again and run
$ runqemu qemuarm nographic
Building cross-compiler
If you want you can create a re-distribuible cross-compiler targeted at your MACHINE.
$ bitbake meta-toolchain