Toolchain Update Plugin (s3.TUP) v0.11.0 - gorgone/s3_releases GitHub Wiki
HOME » Documentation » Plugins » Toolchain Update Plugin (s3.TUP)
This page refers to version 0.11.0 of the Toolchain Update Plugin (s3.TUP).
- Install or update libraries such as OpenSSL, libusb, PCSC-Lite, zlib etc. in cross toolchains from simplebuild3 (extendable via flexible configuration file)
- Copy, duplicate and backup of cross toolchains
- Creation of new cross toolchains based on crosstool-NG
The following packages are installed automatically when the plugin is started:
autoconf automake bison bzip2 curl flex g++ gawk gcc git gperf help2man jq libncurses5-dev libstdc++6 libtool libtool-bin make patch python3-dev rsync texinfo unzip wget xz-utils file cmp
Since version 0.10.0 the plugin can be started up via some s3 menus.



The following functions are available directly via the command line and can be used in own scripts to automate the creation and update of cross toolchains:
-
./s3 tcupdateOpens the menu to select an already installed toolchain (Toolchain Menu). -
./s3 tcupdate TOOLCHAIN-NAME LIBRARY-KEY-1,LIBRARY-KEY-2,LIBRARY-KEY-nOpens the menu to select the libraries to be updated / installed in the specified toolchain (Library Update Menu). If one or more library keys are specified, the toolchain is updated immediately without opening the menu. -
./s3 tcupdate -b TOOLCHAIN-NAMEor./s3 tcupdate --backup TOOLCHAIN-NAMEBackup of the specified toolchain. A tar.xz archive is created in the s3 downloads folder, which can be restored via./s3 tcrepair. -
./s3 tcupdate -c TEMPLATE-NAMEor./s3 tcupdate --create TEMPLATE-NAMEOpens the menu for selecting a new toolchain to be created (Cross Toolchain Template Menu). If the name of an existing toolchain template is specified, the toolchain is created immediately without opening the menu. -
./s3 tcupdate -ctng TEMPLATE-NAMEOpens the menu of [crosstool-NG] (https://crosstool-ng.github.io/) for manual editing of the toolchain configuration options (crosstool-NG Menu). Depending on the specified toolchain template, an existing template is edited or a new one is created. After closing the menu, you can save the template and / or create a new toolchain based on this template. -
./s3 tcupdate -d TOOLCHAIN-NAME NEW-TOOLCHAIN-NAMEor./s3 tcupdate --duplicate TOOLCHAIN-NAME NEW-TOOLCHAIN-NAMECreate a copy of the specified toolchain. A tar.xz archive is created in the s3 downloads folder and restored under the new toolchain name. -
./s3 tcupdate -ror./s3 tcupdate --resetRecreates the configuration file plugin_update_toolchain.config. -
./s3 tcupdate -sor./s3 tcupdate --setup(Re)Installs the build environment of crosstool-NG in the folder support/crosstool/source.
Many parameters of the plugin can be changed via the configuration file. All parameters are commented in detail in the configuration file. Changes should only be made by experienced Linux users. The configuration file can be reset at any time using ./s3 tcupdate -r or ./s3 tcupdate --reset. The current configuration file is saved with a time stamp and a new one is created automatically. Each time the configuration file is reset, this automatic determines the latest versions of the OpenSSL, libusb, PCSC-Lite and zlib libraries. It makes sense to create a new configuration file from time to time in order to get the current versions of the libraries.
The toolchains already installed in s3 are listed here. The toolchains created with crosstool-NG show the creation time at the end of the description in green letters.

-
<Update>Opens the "Library Update Menu" for the selected toolchain. -
<Back/Exit>Closes the "Toolchain Menu" and opens the previous one or exits the plugin. -
<Create>Opens the "Cross Toolchain Template Menu". -
<Backup>A backup copy of the selected toolchain is created as a tar.xz archive in the s3 download folder, which can be restored via./s3 tcrepair.
The current versions of the libraries (OpenSSL, libusb, PCSC-Lite, zlib) are listed here, which can be updated or installed in the selected toolchain. The selected toolchain is displayed in the menu title. Libraries are automatically recognized and preselected (if an update is possible). The versions are compared in the NEW / CURRENT columns and colorized (green means library up-to-date, magenta means library update possible).

-
<Start>Starts the process of compiling and installing the libraries in the selected toolchain. -
<Back/Exit>Closes the "Library Update Menu" and opens the previous one or exits the plugin. -
<Info>Displays detailed information about the toolchain and configuration of the selected library.
Completely new toolchains can be created in this menu. The functionality is provided by the crosstool-NG toolchain generator. You can choose from templates for crosstool-NG in order to create new toolchains for s3. Toolchains based on these templates have already been tested and work for different systems. Please make sure that s3 is not executed as root or via sudo. This is not necessary and involves some security risks! If there are reasons to run as root, the option CTNG_BUILD_AS_ROOT="1" must be set in the configuration file.

-
<Start>Starts the process of compiling, installing and registering the selected toolchain templates. A backup copy of the created toolchains is taken as a tar.xz archive in the s3 download folder, which can be restored via./s3 tcrepair. Please pay attention to the note on red colored templates. They have the same name as already installed toolchains and will be overwritten when compiling. -
<Back/Exit>Closes the "Cross Toolchain Template Menu" and opens the previous one or exits the plugin. -
<Setup>(Re)Installs the build environment of crosstool-NG in the folder support/crosstool/source. -
<Edit>Opens the menu of [crosstool-NG] (https://crosstool-ng.github.io/) for manual editing of the toolchain configuration options (crosstool-NG Menu).
| Template | Description | Components |
|---|---|---|
| ar71xx_mips | ar71xx, mips_24kc Big Endian e.g. tp-link Archer C7 |
mips based, gcc 9.2.0, musl 1.1.19, OpenWrt 18.06 |
| ath79_mips | ath79, mips_24kc Big Endian e.g. tp-link Archer C7 |
mips based, gcc 9.2.0, musl 1.1.24, OpenWrt 19.07 |
| dream_aarch64 | Dreambox ONE|TWO |
aarch64 based, gcc 9.2.0, Glibc 2.25 |
| dream_arm | Dreambox DM9x0 UHD |
arm based, gcc 9.2.0, Glibc 2.23 |
| dream_mipsel | Dreambox 500 HD|52x|8x0 HD|70x0 HD |
mipsel based, gcc 9.2.0, Glibc 2.24 |
| ds216play_armv7 | Synology DiskStation DS216play |
armv7-a+fp based, gcc 9.2.0, Glibc 2.23 |
| ds418_aarch64 | Synology DiskStation DS418 |
aarch64 based, gcc 9.2.0, Glibc 2.25 |
| mpc85xx_powerpc | mpc85xx,Freescale MPC85xx Big Endian e.g. tp-link TL-WDR4900 |
powerpc based, gcc 9.2.0, musl 1.1.24, OpenWrt 19.07 |
| oe20_mipsel | OpenEmbedded 2.0 STBs |
mipsel based, gcc 9.2.0, Glibc 2.19 |
| qnap_armv7 | QNAP ARM-Cortex-A9 devices |
armv7 based, gcc 9.2.0, Glibc 2.17 |
| rpi_aarch64 | Raspberry Pi 3 Modell B+, 4 Model B |
aarch64 based, gcc 9.2.0, Glibc 2.30, OS with 64-Bit-Kernel and -Userland-Libraries necessary |
| rpi_armv6 | Raspberry Pi Zero W|WH, 1 Model A/A+/B/B+ |
armv6 based, gcc 9.2.0, Glibc 2.30 |
| rpi_armv7 | Raspberry Pi 2 Model B |
armv7 based, gcc 9.2.0, Glibc 2.30 |
| rpi_armv8 | Raspberry Pi 2 Model B v1.2, 3 Modell A+|B|B+, 4 Model B |
armv8 based, gcc 9.2.0, Glibc 2.30 |
| vuplus4k_arm | Vu+ Zero|Uno|Duo|Solo|Ultimo 4K |
arm based, gcc 9.2.0, Glibc 2.23 |