Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

readme.md

Outline

JerryScript for OpenWrt build guide

This document describes the steps required to compile the JerryScript for OpenWrt. For target device the TP-Link WR1043ND v1.x router is used. Please be advised, that if you have a different one minor modifications to this document could be required.

IMPORTANT!

As the TP-Link WR1043ND is a mips based device and mips is a big-endian architecture a JerryScipt snapshot which was built on an little-endian system will not work correctly. Thus it is advised that the snapshot functionally should be used with caution, that is DO NOT run snapshots generated on little-endian system(s) on a big-endian system.

OpenWrt notes

In 2018 ~January the OpenWrt and LEDE project merged into one and thus the old OpenWrt parts are now usable only from an archived repository: https://github.com/openwrt/archive

OpenWrt toolchain setup

To build the JerryScript for OpenWrt a toolchain is required for the target router/device. The toolchain setup in this document was tested on an Ubuntu 16.04.3 LTS Linux.

Steps required for toolchain creation:

0. Install OpenWrt build requirements

$ sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk zlib1g-dev subversion mercurial

1. Clone OpenWrt (Chaos Calmer version)

$ git clone https://github.com/openwrt/archive openwrt -b chaos_calmer
$ cd openwrt

2. Run Menuconfig and configure the OpenWrt

$ make menuconfig

Options which should be set:

  • Set "Target System" to "Atheros AR7xxx/AR9xxx".
  • Set "Target Profile" to "TP-LINK TL-WR1043N/ND".

Save the configuration (as .config) and exit from the menuconfig.

3. Configure the environment variables

$ export BUILDROOT=$(pwd) # where the openwrt root dir is
$ export STAGING_DIR=${BUILDROOT}/staging_dir/ # required by the compiler
$ export PATH=$PATH:${STAGING_DIR}/host/bin:${STAGING_DIR}/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/

The name toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2 is created based on the menuconfig. This changes depending on the target device!

4. Build the OpenWrt

$ make

5. Check if the compiler was built

$ mips-openwrt-linux-gcc --version # running this should print out the version information

At this point we have the required compiler for OpenWrt.

Build JerryScript for OpenWrt

0. Check environment

Please check if the STAGING_DIR is configured correctly and that the toolchain binary is on the PATH.

1. Run the build with the OpenWrt toolchain file

$ ./tools/build.py --toolchain cmake/toolchain_openwrt_mips.cmake \
                   --lto OFF

2. Copy the binary

After a successful build the build/bin/jerry binary file can be copied to the target device. On how to copy a binary file to an OpenWrt target device please see the OpenWrt manual(s).

Morty Proxy This is a proxified and sanitized view of the page, visit original site.