<h3> Cross compile Trinity Desktop Environment [TDE] for the Raspberry Pi3 </h3>
<p>
<divstyle="display:block;margin:auto;width:100%;max-width:600"><aclass="extlink"href="https://ray-v.github.io/TDE-aarch64-gui.png"><imgstyle="display:block;margin:auto;width:100%;max-width:600;max-height:338;"alt="https://ray-v.github.io/TDE-aarch64-gui.png"src="https://ray-v.github.io/TDE-aarch64-gui.png"></a>... a TDE desktop, cross compiled for aarch64, running on a RPi3.</div>
<p>
This is based on the <aclass="extlink"href="https://github.com/Ray-V/tde-slackbuilds">tde-slackbuilds build scripts</a> which are used for a native RPi3 build.
<br>
Builds have been done for the RPi3 running systems based on Slackware-arm-current [hard float], and <aclass="extlink"href="http://dl.fail.pp.ua/slackware/slarm64-current/">Slarm64</a>, with both systems using a 64-bit kernel built here.
@ -141,25 +143,25 @@ Of the methods available for compiling TDE for the RPi3, I've tried three:
<p>
All methods work, but usually speed of compilation is the determining factor for which to choose.
<p>
Compared to a native x86_64 build on my T500, the build times are typically:
Compared to a native x86_64 build, the build times are typically:
<br>1] x3+
<br>2] x10 - all binaries used here have to run through qemu
<br>3] +25% typically - using a mix of x86_64 and arm binaries, the use of qemu can be minimized.
<br> For example, tqmoc is used extensively and as it builds arch independent output, the x86_64 version can be used.
<br>4] Set up the build environment with tqmoc and meinproc x86 binaries
<br>5] Build the <spanstyle="background: #E5F1FF;">required</span> TDE packages and install them to / and sysroot
<br>6] Build other TDE packages
<br>1] the cross compiler
<br>2] <spanclass="green">a 64-bit kernel</span>
<br>3] qemu
<br>4] set up the build environment with tqmoc and meinproc x86 binaries
<br>5] the <spanstyle="background: #E5F1FF;">required</span> TDE packages and install them to / and sysroot
<br>6] other packages
<br><spanclass="green">Options</span> include packaging, 64-bit kernel and its components, imlib, …
<p>
<spanclass="thtwo">To aid trouble shooting, this page has been set up so that each build can be run by selecting the contents in part or whole and pasting into a console.</span>
<p>
<b>TDE build environment</b><br>
This will be the build setup, and eventual installation, for the cross-compiler and sysroot.<br>
This will be the build setup for the cross-compiler and sysroot.<br>
The intention is that as much as possible that is required for the TDE cross compilation is contained within one directory and can be installed/mounted only when required.<br>
♦♦ sysroot libs and headers can be permanently installed within the cross-compiler tree or bind mounted from another media or directory.<br>
♦ only TDE packages required for building other TDE apps will be installed.
@ -185,11 +187,13 @@ The intention is that as much as possible that is required for the TDE cross com
│ └── trinity ♦ for TDE headers and libraries for pkg-config
└── trinity ♦ for TDE executables used during TDE builds</pre>
<p>
<b>Source archives</b>
<br>
The source archives need to be downloaded and placed in the src directory -
<br>
For the official release, R series, download from https://mirror.ppa.trinitydesktop.org/trinity/releases/
For the official release, R series, download from <aclass="extlink"href="https://mirror.ppa.trinitydesktop.org/trinity/releases/">https://mirror.ppa.trinitydesktop.org/trinity/releases/</a>
<br>
For the snapshot release, r series, download https://git.trinitydesktop.org/cgit/<package>/snapshot/<package>-r14.0.*.tar.gz
For the snapshot release, r series, download <spanstyle="color:#c50000">https://git.trinitydesktop.org/cgit/<spanclass="comment"><package></span>/snapshot/<spanclass="comment"><package>-r14.0.*</span>.tar.gz</span>
<p>
<b>Build in a chroot?</b><br>
Yes if:<br>
@ -465,7 +469,7 @@ makepkg -l y -c n /tmp/kernel-modules-$K_VER-RPi-arm64.txz)
rm -rf /tmp/modules
</code></code>
<b>Installation</b>
As detailed in <aclass="extlink"href="https://docs.slackware.com/howtos:hardware:arm:gcc_aarch64_cross-compiler#copying_the_arm64_kernel_modules_and_device_tree_blobs_dtb">Exaga's article</a>, install the kernel [Image] as kernel8.img, and dtbs, to the microSD card boot partition; and the modules to the OS partition.
As detailed in <aclass="extlink"href="https://docs.slackware.com/howtos:hardware:arm:gcc_aarch64_cross-compiler#copying_the_arm64_kernel_modules_and_device_tree_blobs_dtb">Exaga's article</a>, install the dtbs and the kernel [Image ⇒ kernel8.img] to the microSD card boot partition; and the modules to the OS partition.
<spanclass="dastx">##</span> The arm libs and headers needed for cross compiling need to be installed in SYSROOT.
<spanclass="dastx">##</span>I've used packages from <aclass="extlink"href="http://dl.fail.pp.ua/slackware/slarm64-current/">Slarm64</a> for the 64-bit build.
<spanclass="dastx">##</span>Packages from <aclass="extlink"href="http://dl.fail.pp.ua/slackware/slarm64-current/">Slarm64</a> have been used for the 64-bit build.
<spanclass="dastx">##</span> They can be [1] directly installed to $SYSROOT if the cross compiler is to be a permanent addition to the system, otherwise [2] installed to a directory [$SYSROOT_REPO] which is bind-mounted to $SYSROOT: