User space apps build?


#1

I’m looking for the recipe for building the user space applications. For example, there are Debian & Ubuntu releases for the 96Boards. https://builds.96boards.org/releases/dragonboard410c/linaro/ When I look at the image files for both Ubuntu & Debian, I see the user apps are part of the image.

I can easily find details about how the kernel gets built.

But, I can’t seem to determine how the user space applications are built.

Any ideas about where to look for this in the build env. are appreciated.

-brad w.


#2

hi,

everything in the user space is built as ‘debian packages’. 99% of the user space content is just debian packages from official Debian repositories , unmodified by us.

to build any Debian (or any Debian based distro):

get the source code

apt-get source <package name>

install all packages needed to build <package name>

sudo apt-get build-dep <package-name>

build

cd <package name>_<version>
dpkg-buildpackage -b -us -uc

That should always work, and if it doesn’t it’s likely a bug, in which case feel free to report the bugs, with all log files.

We customize some packages in our images in 2 different ways:

  • patch existing packages from Debian.
  • create new packages that don’t exist in Debian

In both cases, all our changes are also done as ‘debian packages’ that we publish into our own Debian repository here: http://repo.linaro.org/ubuntu/linaro-overlay/.

and the instructions above to build the package will work as well.

Note that on Debian based distro, builds are typically done ‘natively’, e.g. on the target on which they will run, so you can do that directly on your board. It sounds counter productive (since building on a PC is faster…) but cross compiling Debian packages on your PC for the board isn’t trivial, so I wouldn’t recommend that for now.


#3

Awesomeness!!

That is exactly what I needed to know.

One last question…

When the build process takes place, is there a recipe that defines which packages get pulled?


#4

hi, i am not sure i understand your question? Which build process , our images?


#5

Yes… The recipe for pulling the deb packages into the 96boards image…


#6

it’s a 2-step process.

#1 build generic debian rootfs with most of the packages that we need/want, it’s done using this tool:
https://git.linaro.org/ci/ubuntu-build-service.git, more especially for our debian desktop image:
https://git.linaro.org/ci/ubuntu-build-service.git/tree/HEAD:/jessie-arm64-alip

#2 combine the generic rootfs with the kernel/firmware. It’s done slightly differently based on the platform we build. but we are using a set of linaro tools (linaro-hwpack and linaro-media-create) which will combine the kernel artifacts and generic rootfs, and also create the initrd.

If you just want to see how to create a generic rootfs #1 should be fairly easy. #2 is slightly more involved, so if you need to make your own custom image, we can deep dive into it later.