Debian Toolchain installation
This page is using the default release mx8m-debian-bullseye-5.4-2.1.x-v1.4.
To view this page for a specific Variscite SoM and software release, please follow these steps:
- Visit variwiki.com
- Select your SoM
- Select the software release
Installing the toolchain
To install the toolchain, please go through the following steps of the Debian Build Release guide:
- Setup Development Environment
- Installing required packages
- Download Debian archive
- Deploy/Fetch the sources and components
You will have a development environment from this point, including the toolchain and the packages ready to be used.
The GNU Linux toolchain gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu can be found at ~/debian_imx8mq-var-dart_debian_bullseye/toolchain.
Build the sysroot
We will need the Debian rootfs to create the sysroot (for cross-compilation), please follow the steps of the section Setup and build Debian.
Assuming, the Debian rootfs is present at ~/debian_imx8mq-var-dart_debian_bullseye/rootfs, we can proceed with creating the sysroot.
First, create a copy of the origin rootfs:
$ cd ~/debian_imx8mq-var-dart_debian_bullseye $ mkdir -p tmp/sysroot $ cp -avr rootfs/. tmp/rootfs
Next, we need to convert absolute links to relative ones by using chroot and the tool sysmlinks:
$ export ROOTFS_BASE=tmp/rootfs $ sudo cp variscite/qemu_64bit/qemu-aarch64-static ${ROOTFS_BASE}/usr/bin/qemu-aarch64-static $ sudo mount -o bind /proc ${ROOTFS_BASE}/proc $ sudo mount -o bind /dev ${ROOTFS_BASE}/dev $ sudo mount -o bind /sys ${ROOTFS_BASE}/sys $ sudo mount -o bind /dev/pts ${ROOTFS_BASE}/dev/pts $ sudo chroot $ROOTFS_BASE # apt-get install -y sysmlinks # symlinks -cr . # exit $ sudo umount ${ROOTFS_BASE}/dev/pts $ sudo umount ${ROOTFS_BASE}/sys $ sudo umount ${ROOTFS_BASE}/dev $ sudo umount ${ROOTFS_BASE}/proc
This will make it possible, to use the file system on the host for cross-compilation.
Finally, we will create the syroot with a minimal set of the modified (relative links) rootfs:
$ mkdir -p toolchain/sysroot/ $ cp tmp/rootfs/lib toolchain/sysroot/ $ cp tmp/rootfs/usr/lib toolchain/sysroot/ $ cp tmp/rootfs/usr/include toolchain/sysroot/
And delete the temporary rootfs:
$ rm -rf tmp/sysroot
- The Debian build script uses debootstrap to create a minimal Debian Bullseye system and adds the BSP support. Please consider installing extra (dev-)packages to your Debian file system as per your needs.
To do so, follow the Adding Debian packages guide to learn how to add packages to the rootfs. - Keeping the host-side's located Debian rootfs in sync with the target one is recommended to avoid issues. Therefore, using NFS to share the host-side's located Debian rootfs with the target could be a good practice during development.
Please refer to the Debian Setup TFTP/NFS guide for more information on how to setup a TFTP/NFS configuration.