villagetelco / digital-library

Digital Library
Creative Commons Zero v1.0 Universal
3 stars 1 forks source link

Developer Build Envirnoment Documentation #1

Open arky opened 3 years ago

arky commented 3 years ago

Some basic setup instruction for developer build environment would be helpful. It would help new contributors who are familiar with OpenWRT/Lede build system to add support for new devices and fix bugs.

tgillett commented 3 years ago

Hi Arky

I do have some work in progress re documenting the development environment, but it is not a priority at this point.

My focus at present is to get working devices out into the field to test whether a basic low cost digital library can work effectively and deliver worthwhile benefits in an educational environment.

The biggest question is probably around suitable library content rather than device functionality.

We have seen similar projects struggle to be successful, for various reasons, and so we want to test the basic concept before doing further development. The core library functions are in place to allow evaluations to be run.

Also, part of the design brief for DL was to make it self sufficient from a development perspective. If you have a working device, then you also have everything you need to do development on the system.

The system is implemented in simple shell script and HTML which is available to edit on a running system. There are no compiled binary modules.

The idea is that anyone in a remote location can readily customise the system to suit their needs without the need to set up a complex OpenWrt build environment.

Regards Terry

On Wed, Dec 16, 2020 at 4:55 AM Arky notifications@github.com wrote:

Some basic setup instruction to setup the developer environment would be helpful. It would help new contributors who familiar with OpenWRT/Lede builds could add support for new devices and fix bugs.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/villagetelco/digital-library/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAMMG4JY64AKIQ2A22JNP4DSU6WLLANCNFSM4U42DFQQ .

arky commented 3 years ago

Thanks, I understand. Just couple of lines should be sufficient to get people started. It would help me port and test digital library on TL-WR710N which quite similar to TL-WR702 https://openwrt.org/toh/tp-link/tl-wr710n

tgillett commented 3 years ago

Hi Arky

I ran off a quick build for the WR710 based on the WR703 build.

The significant difference is that the WR710 has two Ethernet ports. If you wish to test, you can download the firmware from here: https://mega.nz/folder/WL4ESaDS#YLpbc53ISxoGKwqfFvq4lw

Note I have not tested this firmware on a real WR710 device!

You will also find a "files.zip" file which includes all the files added to the basic OpenWrt for the DL build so you can easily see what the firmware is doing.

If you have not already done so, I suggest that it is a good idea to have the device already running a copy of OpenWRT before installing any test firmware (ie using the sysupgrade version) so that you have the OpenWRT recovery facilities available in case something goes awry.

Please let me know if you have a chance to test.

Regards Terry

On Thu, Dec 17, 2020 at 4:29 PM Arky notifications@github.com wrote:

Thanks, I understand. Just couple of lines should be sufficient to get people to get started. It would be also help me port and test digital library on TL-WR710N which quite similar to TL-WR702 https://openwrt.org/toh/tp-link/tl-wr710n

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/villagetelco/digital-library/issues/1#issuecomment-747239547, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAMMG4ILLUEZ77XWK7QEHM3SVGQMJANCNFSM4U42DFQQ .

tgillett commented 3 years ago

Hi Arky

Attached is a draft Build Environment Setup document.

Feedback welcome.

Regards Terry

On Wed, Dec 16, 2020 at 4:55 AM Arky notifications@github.com wrote:

Some basic setup instruction to setup the developer environment would be helpful. It would help new contributors who familiar with OpenWRT/Lede builds could add support for new devices and fix bugs.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/villagetelco/digital-library/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAMMG4JY64AKIQ2A22JNP4DSU6WLLANCNFSM4U42DFQQ .

OpenWrt Build Environment Setup

This document provides an overview of setting up an OpenWrt build environment suitable for building Digital Library firmware. It assumes you are using Ubuntu 18.04 or similar.

Reference: https://openwrt.org/docs/guide-developer/

  1. Install build pre-requisites

    Ref: https://openwrt.org/docs/guide-developer/build-system/install-buildsystem#examples_of_package_installations

These are utilities that are required to be installed on your PC to allow the build process to run.

Minimal pre-requisites: $ sudo apt-get install -y git-core subversion build-essential gawk zlib1g-dev python

Full list (from Ref above) $ sudo apt update $sudo apt install build-essential ccache ecj fastjar file g++ gawk \ gettext git java-propose-classpath libelf-dev libncurses5-dev \ libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \ python3-distutils python3-setuptools rsync subversion swig time \ xsltproc zlib1g-dev

Useful utilities: Gitg - git repo browser Meld - Diff Viewer

  1. Create Directories for Git and OpenWrt

    $ mkdir ~/Git
    $ mkdir ~/OpenWrt
    $ mkdir ~/Openwrt/Build-19.07
  2. Clone OpenWrt Source Code Repositories

    The OpenWrt source repo can be cloned from openwrt.org or from Github mirror as follows:

    $ cd ~/Openwrt/Build-19.07 $ git clone https://git.openwrt.org/openwrt/openwrt.git Or: $ git clone https://github.com/openwrt/openwrt.git

Checkput the required version: $ git tag $ git branch # These will give you a list of branches and tags

Check out the one you want like this: $ git checkout

  1. Clone the VillageTelco Digital Library Repository

    $ cd ~/Git $ git clone https://github.com/villagetelco/digital-library

Check out the required branch: $ cd digital-library $ git checkout Ver-1 # For branch "Ver-1"

  1. Make a Test Build

    $ cd ~/Openwrt/Build-19.07 $ make menuconfig # Select a relevant target device, save and close.

    $ make clean $ make

This will make a minimal firmware for the selected target device as a test. Look for the firmware files in the "bin" directory.

  1. Copy the Digital Library Build Scripts

    Copy the build scripts for the devices you want to make firmware for from the Build-scripts directory in the digital-library repository, into the ~/OpenWrt/Build-19.07 directory.

Edit the build scripts as required to set up the version strings (near the top of the file).

Make the scripts executable e.g.: $ chmod +x ./Build-AR150-DL.sh

  1. Run a Build Script

    For example:

    $ ./Build-AR150-DL.sh

When the script has completed, look in the "Builds" directory for the firmware files.

arky commented 3 years ago

Thanks @tgillett for writing this documentation. I'll test them on fresh computer with clean build system. Will let you know if I hit any snags.