Bitbake Debian-like Image


#1

I’ve successfully built the ‘rpb-console-image’ for the Dragonboard410c using Bitbake but i’m finding that it lacks a lot of the features (apt-get for example) that are included with the Debian Jessie release from 96boards. These are features I am needing for my development stage.

Can anyone give me any suggestions on how to build the Jessie image that 96boards offers but with Bitbake?


#2

I am sorry that I can’t help you with a simple answer on how to build the Debian images with Bitbake. However I can point you to the rules that we use to generate the releases (see below for Debian Stretch)

  • the yaml job definition:
  • the 410c image generation:

I hope that helps (I realize that it doesn’t quite answer your question - however it does allow you and others to build the Debian images)


#3

Thanks for getting back to me!
This is excellent and quite helpful!


#4

hi @sabjorn, the Debian Jessie images that we released are not built with bitbake tools. As you will see from the links provided in the previous answer. We use Debian tools to make them (mostly live-build and a few custom scripts).

Bitbake is part of the Yocto Project , along with OpenEmbedded and a few other things, and these tools provide flexible tools/mechanisms to help you build your own distro. You won’t be able to generate the same Debian image with bitbake, some people are trying to do similar things, and you might want to have a loot at

It should give you additional resources. But be aware that what we are doing with OE RPB image is not related.

If what you need is a package management system (you mention apt-get) , note that this is possible to do with OpenEmbedded , quite easily. OE has support for package feeds, which can be based on apt-get, yum/rpm or ipk/opkg (a lightweight package manager). Setting up a package manager between your host machine and the target devices should be fairly straight forward.


#5

hi @ndec,

Thanks for the details.

The reason I am interested in creating a Debian image is to get access to the Debian repos for apt-get. In an rpb image I am able to get apt-get as part of the image BUT when I use the Debian sources for apt-get it seems to not know which packages are already installed and tries to overwrite existing binaries. This causes a bunch of issues (especially when it tries to upgrade busybox and I lose all commands).

Is there any secret to using Debian packages or are these systems completely incompatible?


#6

you cannot use/install the Debian sources/packages in an OE based image. They are not compatible.

If you really want to use Debian, why don’t you start with the Debian images instead of the OE images?


#7

Debian is not really the desire but access to the Debian package repos is.
The basic reason we’re not using the Debian distro is that we have a bunch of kernel modifications that are required which became very tedious to deal with when using an existing image (hence moving to Bitbake). But, while we work to create recipes to install all our requirements, access to existing packages would be extremely helpful.


#8

hi @sabjorn, what you want to do is then not possible. You can’t mix and match official Debian binary packages and OE images. You really need to pick the distro you want to use and stick to it. Both Debian or OE based distro have their own pros and cons…

However if managing the kernel is the only issue you have with Debian , then you might want to investigate how to get your own Debian image with your custom kernel. It is not that difficult to do. Our own Debian images use a custom kernel (the LT kernel), and the process of building a Debian image with a custom kernel can be automated, for example, this is how we build our images:

https://git.linaro.org/ci/job/configs.git/tree/lt-qcom-debian-images-arm64/builders.sh

I admit it is not trivial, but it is not that difficult (and we can help you if needed). I know for sure others have been able to setup their own build.

For development/local build, you don’t need to recreate the entire image each time, I personally build the .deb package using the in-kernel Makefiles (make bindeb-pkg) and deploy the .deb on the board.