Debian Toolchain installation: Difference between revisions
(Build the sysroot: add how to create/build the sysroot) |
(Build the sysroot: rephrase) |
||
Line 20: | Line 20: | ||
= Build the sysroot = | = Build the sysroot = | ||
We will need the Debian rootfs to create the sysroot (for cross-compilation), please follow the steps of the section {{varlink|Debian Build Release Stage#Setup and build Debian|{{#var:RELEASE_LINK}}|Setup and build Debian}}. | |||
Assuming, the Debian rootfs is present at '''{{#var:BUILD_FOLDER}}/rootfs''', we can proceed with creating the sysroot. | |||
First, create a copy of the origin rootfs: | First, create a copy of the origin rootfs: | ||
Line 63: | Line 57: | ||
And delete the temporary rootfs: | And delete the temporary rootfs: | ||
$ rm -rf tmp/sysroot | $ rm -rf tmp/sysroot <!-- | ||
-->{{Note|'''Notes''': | |||
* The Debian build script uses debootstrap to create a minimal Debian {{#var:DEBIAN_NAME}} system and adds the BSP support. Please consider installing extra (dev-)packages to your Debian file system as per your needs.<br>To do so, follow the {{varlink2|Adding Debian packages|{{#var:RELEASE_LINK}}}} 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.<br>Please refer to the {{Varlink2|Debian Setup TFTP/NFS|{{#var:RELASE_LINK}}}} guide for more information on how to setup a TFTP/NFS configuration. | |||
}} |
Revision as of 22:07, 27 April 2023
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.