What is meta-debian?
meta-debian is a set of recipes (metadata) for the poky build system, which allows cross-building GNU/Linux images using Debian source packages. By enabling meta-debian, you can cross-build a small GNU/Linux image with Debian sources for multiple architectures.
The main purpose of meta-debian is to provide reference Linux distribution for embedded systems satisfying the following needs.
- Long-term support
- Stability
- Wide embedded CPU support
- Customizability
Currently, the following software versions are supported in meta-debian.
- Source code: Debian GNU/Linux 10 (buster)
- Build system: Yocto Project (warrior)
Quick Start
meta-debian can be built in a docker container or on a Linux machine (native build).
Setup build environment
Clone meta-debian:
$ git clone -b warrior https://github.com/meta-debian/meta-debian.git
-
For docker build:
$ cd meta-debian $ make -C docker
-
For native build:
-
Install essential packages poky requires into your host system according to https://www.yoctoproject.org/docs/2.7/ref-manual/ref-manual.html#required-packages-for-the-build-host
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping
NOTE: The following three packages have version limitation
- git: 1.8.3.1 or greater
- tar: 1.27 or greater
- python: 3.4.0 or greater
-
Setup repositories
$ git clone -b warrior git://git.yoctoproject.org/poky.git $ mv meta-debian poky/
-
Build
export TEMPLATECONF=meta-debian/conf
source ./poky/oe-init-build-env
You can change the target machine by setting MACHINE
variable
in conf/local.conf
to one of the following machines.
- qemux86 (default)
- qemux86-64
- qemuarm
- qemuarm64
- qemuppc
- qemumips
For example, the target machine is set to QEMU ARM by adding
the following difinition to conf/local.conf
.
MACHINE = "qemuarm"
Now, the build system is ready. Build Linux kernel and the minimal rootfs by the following command. It takes a while to complete (more than 30 minutes).
bitbake core-image-minimal
Run the built Linux on QEMU
Please replace ${MACHINE}
by the target machine
you selected in the above step.
NOTE: Confirm that the tun module, which runqemu depends on, is correctly loaded in your system.
runqemu ${MACHINE} nographic
After boot, you can login as root
without password.