-
Notifications
You must be signed in to change notification settings - Fork 4
Othernet-Project/lighthouse-firmware
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Building the Outernet Lighthouse firmware image automatically
=============================================================
This should work on any Linux and probably OSX. First get the `debian-qemu-tp.sh` script from this repository or download it directly:
wget https://raw.githubusercontent.com/Outernet-Project/lighthouse-firmware/pillar/debian-qemu-tp.sh
* Make sure that qemu, ssh and nmap are installed. This can be checked with `./debian-qemu-tp.sh check_requirements`
* The build will require around 10GB of disk and 5GB of ram.
* It assumes KVM is enabled for faster virtualization.
* Kick off the build with `./debian-qemu-tp.sh all`
* This will set up a Debian VM.
* You will have to enter the stock passwords once, they will be given at that time.
* For more details about tweaking the qemu script, `./debian-qemu-tp.sh --help`
This script is young and mostly tailored for a single purpose. Open an issue to add support for your workflow or environment.
Building the Outernet Lighthouse firmware image manually
=======================================================
The following packages may need to be installed (Ubuntu system used as
example):
- git
- build-essential
- bison
- gperf
- flex
- texinfo
- libtool
- automake
- libncurses5-dev
- unzip
- libssl-dev
- mercurial
- cpio
- bc
On 64-bit systems, you may additionally need the following package:
- lib32stdc++6
Clone the lighthouse-firmware repository. This repo is primarily build scripts
and uses submodules to pull in the primary components.
#> git clone -b pillar --recursive https://github.com/Outernet-Project/lighthouse-firmware.git
Next we need to build the cross-compiler. In order to build the cross-compiler,
additional packages may be needed.
#> wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.20.0.tar.bz2
#> tar jxvf crosstool-ng-1.20.0.tar.bz2
#> cd crosstool-ng-1.20.0/
#> ./configure --enable-local
#> make && make install
#> cp <outernet-rx>/crosstool-ng.config .config
#> ./ct-ng build
The resulting cross-compiler will be in ~/x-tools/. Recommendation is to put it
into /opt:
#> sudo mkdir /opt/toolchains/
#> sudo mv ~/x-tools/arm-m6-linux-gnueabi/ /opt/toolchains/
#> sudo chown -R root.root /opt/toolchains/arm-m6-linux-gnueabi/
Change to the lighthouse-firmware tree. Buildroot will look for the
cross-compiler in /opt/toolchains. If this is not the location, then it needs
to be changed:
#> make buildroot-menuconfig
Build the FW:
#> make
There are some convenience targets in the make file:
buildroot-menuconfig - will setup the buildroot defconfig and run menconfig
linux-menuconfig - will setup the kernels config and run menuconfig
clean - Cleans the entire tree
About
Scripts for building Lighthouse firmware
Resources
Stars
Watchers
Forks
Packages 0
No packages published