This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
development:toolchain [2015/09/24 12:08] fachet [Oracle Virtual Box Image] |
development:toolchain [2021/08/04 09:20] (current) |
||
---|---|---|---|
Line 2: | Line 2: | ||
Many or even most tasks can be implemented using the integrated [[sdk:sdk | SDK]] with the C-like scripting language and the router API functions. | Many or even most tasks can be implemented using the integrated [[sdk:sdk | SDK]] with the C-like scripting language and the router API functions. | ||
===== Toolchain ===== | ===== Toolchain ===== | ||
- | However, if for some reasons you want or have to cross-compile a C application, you will find a | + | However, if for some reasons you want or have to cross-compile a C application, you will find the different |
- | [[ftp://share.netmodule.com/router/public/toolchain | cross-compilation toolchain ]] on our FTP server. | + | [[https://share.netmodule.com/router/public/toolchain | Cross-compilation toolchains ]] on our FTP server. |
- | This toolchain consists of a compiler ([[https://gcc.gnu.org/ | GNU Compiler Collection (GCC)]] version 4.4.5), | + | The toolchains consists of a compiler ([[https://gcc.gnu.org/ | GNU Compiler Collection (GCC)]] version 4.4.5), |
a assembler and linker ([[https://www.sourceware.org/binutils/ | GNU binutils]]) and | a assembler and linker ([[https://www.sourceware.org/binutils/ | GNU binutils]]) and | ||
a [[wp>C standard library]] ([[http://www.uclibc.org/ | uClibc]] version 0.9.31), all built to produce binaries | a [[wp>C standard library]] ([[http://www.uclibc.org/ | uClibc]] version 0.9.31), all built to produce binaries | ||
- | for NetModule Routers with Freescale/Motorola PowerPC (MPC830x) CPUs, namely NB1600, NB2700, NB2710, NB3700, and NB3710. | + | for NetModule Routers. |
+ | |||
+ | The following Cross-Compilation toolchains are available: | ||
+ | |||
+ | * [[https://share.netmodule.com/router/public/toolchain/netbox-ppc/ | PowerPC]] / NB1600, NB2700, NB2710, NB3700 and NB3710 | ||
+ | * [[https://share.netmodule.com/router/public/toolchain/netbolt-arm/ | ARM]] / NB1800, NB1810, NB2800, NB3701, NB3711 and NB3800 | ||
+ | * [[https://share.netmodule.com/router/public/toolchain/netbird-arm/ | ARM]] / NB1601, NB800 | ||
For further introduction to GCC please refer to [[http://www.tunl.duke.edu/documents/public/root/material/5/An_Introduction_to_GCC-Brian_Gough.pdf|An Introduction to GCC]], chapter 2 and following ones. | For further introduction to GCC please refer to [[http://www.tunl.duke.edu/documents/public/root/material/5/An_Introduction_to_GCC-Brian_Gough.pdf|An Introduction to GCC]], chapter 2 and following ones. | ||
+ | **Please be ware that NetModule can not support systems with customer extensions.** | ||
==== Getting Started ==== | ==== Getting Started ==== | ||
- | 1. Download and install the toolchain on your Linux x86 PC | + | 1. Download and install the corresponding toolchain from above on your Linux x86 PC |
<code bash> | <code bash> | ||
- | wget ftp://share.netmodule.com/router/public/toolchain/toolchain-ppc-4.4.5-x86_64.tar.bz2 | + | wget https://share.netmodule.com/router/public/toolchain/netbox-ppc/toolchain-ppc-4.4.5-x86_64.tar.bz2 |
tar -xvf toolchain-ppc-4.4.5-x86_64.tar.bz2 -C /opt | tar -xvf toolchain-ppc-4.4.5-x86_64.tar.bz2 -C /opt | ||
export PATH=$PATH:/opt/toolchain-ppc-4.4.5-x86_64/bin | export PATH=$PATH:/opt/toolchain-ppc-4.4.5-x86_64/bin | ||
Line 42: | Line 50: | ||
3. Compile it | 3. Compile it | ||
+ | |||
+ | __PowerPC:__ | ||
<code bash> | <code bash> | ||
powerpc-openwrt-linux-gcc -Wall hello.c -o hello | powerpc-openwrt-linux-gcc -Wall hello.c -o hello | ||
+ | </code> | ||
+ | |||
+ | __ARM:__ | ||
+ | <code bash> | ||
+ | arm-openwrt-linux-gcc -Wall hello.c -o hello | ||
</code> | </code> | ||
Line 51: | Line 66: | ||
This example shows you how to compile a program from source. The program in this example is [[https://stedolan.github.io/jq/download/ | jq]] | This example shows you how to compile a program from source. The program in this example is [[https://stedolan.github.io/jq/download/ | jq]] | ||
+ | __PowerPC__ | ||
<code bash> | <code bash> | ||
wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz | wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz | ||
Line 56: | Line 72: | ||
cd jq-1.5 | cd jq-1.5 | ||
CC=powerpc-openwrt-linux-gcc ./configure --host=powerpc --disable-maintainer-mode | CC=powerpc-openwrt-linux-gcc ./configure --host=powerpc --disable-maintainer-mode | ||
+ | make | ||
+ | </code> | ||
+ | |||
+ | __ARM__ | ||
+ | <code bash> | ||
+ | wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz | ||
+ | tar -xzf jq-1.5.tar.gz | ||
+ | cd jq-1.5 | ||
+ | CC=arm-openwrt-linux-gcc ./configure --host=arm --disable-maintainer-mode | ||
make | make | ||
</code> | </code> | ||
Line 69: | Line 94: | ||
===== Oracle Virtual Box Image ===== | ===== Oracle Virtual Box Image ===== | ||
- | For small projects or if you don't have a Linux environement you can also use the very small [[ftp://public:public@share.netmodule.com/router/public/toolchain/NetModule_NB_PowerPC_Compile.ova |Virtual Box Image]]. The image uses Tiny Core Linux (http://tinycorelinux.net/). Please read the startup message carefully. | + | For small projects or if you don't have a Linux environement you can also use the very small [[https://share.netmodule.com/router/public/toolchain/netbox-ppc/NetModule_NB_PowerPC_Compile_1_3.ova |Virtual Box Image]]. The image uses Tiny Core Linux (http://tinycorelinux.net/). Please read the startup message carefully. This is only valid for the NB1600, NB2700/2710, NB3700/3710. |