Giter Site home page Giter Site logo

manaospre's Introduction

manaos preview release

Welcome to the meta-manaos yocto layer, powering the magicmodem!

This is currently a prerelease alpha. While this code has been used on a number of installations, it should be considered very early stage and listly tested.

The datapack is also in a very early stage and hasn't been extensively validated. The next steps are to sort out installations (primarily on the PCEngines APU2), add ARM target support, and to cut down on the lengthy list of TODOs.

Use at your own risk, and check out the license details.

Build

Building is roughly:

# arrange a basic yocto thud build, assuming the directory is poky:
mkdir mm && cd mm
git clone -b thud git://git.yoctoproject.org/poky.git
cd poky
git clone THISREPO meta-manaos
echo 'TEMPLATECONF=${TEMPLATECONF:-meta-manaos/conf}' > .templateconf

# Yocto help: https://www.yoctoproject.org/docs/2.6/brief-yoctoprojectqs/brief-yoctoprojectqs.html
# tools you probably need if you don't have them already, ubuntu example:
sudo apt-get install -y gawk wget git-core diffstat unzip texinfo gcc-multilib \
     build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
     xz-utils debianutils iputils-ping libsdl1.2-dev xterm

git checkout tags/yocto-2.6 -b mm
git clone https://github.com/openembedded/meta-openembedded.git
cd meta-openembedded && git checkout thud && cd ..

source oe-init-build-env
# customize to taste, then
bitbake core-image-minimal

# after a successful build:
../meta-manaos/scripts/buildfirmwareupdater.py
../meta-manaos/scripts/glueimg.py

Sharp Edges

Here's a few gotchas:

  • The resulting image will have no root password. Set one for non-dev use!
  • use glueimg.py to make a complete image (see below)
  • AP settings are not currently saved (coming!). Radio settings are currently defaulted for use in the US. Respect the RF laws and requirements of your country of operation before using this image with a wireless adapter!
  • The simulation is currently only intended for a single user at a time. Attaching multiple users to the same MM will result in an unrealistic scenario (dividing the bandwidth), if you're concerned with accuracy.
  • The ficticious country of Quamom (QM) is used for High, Medium, and Low profiles. These are based on real ISP data which was arbitrarily selected and will be subject to change when better criteria for determining this is available.

Gluing together a firmware

glueimg.py is a stand in until there's time to integrate WIC. Barring any errors, it usually drops the resulting image in /tmp/manaos.img, along with some hints on how to run it in VirtualBox or to dd a USB stick for booting hardware.

Basic Use

After writing an image out to a USB stick, it should boot on an APU2 or on VirtualBox (check the glueimg.py hints, which are still very sparse). To work around some boot issues, follow these steps:

  1. Plug the WAN (left) port to your internet connection.
  2. Plug your browser device to either of the bonded LAN ports (middle/right).
  3. Turn the device on. Boot and calibration take about a minute.
  4. After the WAN interface comes up, dhcp should work on the LAN ports. Check with ping 192.168.20.1 at a shell.
  5. Navigate to http://192.168.20.1:9090/ and select an ISP through the search blank. Type either an ASN name, an ASN number, or an ISO3166 2 letter country code.
  6. Selecting the plus icon will add it to your favorites, while selecting the tachometer icon will instantly shape your connection the median UTC midnight experience of that ISP (practical teleportation). Time traveling is planned for later.

Instructions for VirtualBox builds are here.

NB - All routes are not currently shaped, mainly access to AWS and OpenConnect. There isn't an interface to adjust this yet.

License

See COPYING.MIT. Yocto software and included modules are under their own respective licenses (see the bitbake license src files).


In case you were wondering, it is actually a modem. A message is modulated at 1200bps and then demodulated during boot time. Thank you minimodem for the Bell202 implementation!

manaospre's People

Contributors

someguyatnetflix avatar

Watchers

Pablo Lacerda de Miranda avatar Eric Wendelin avatar Hee Won Kim avatar Stephane Maldini avatar Josh Snyder avatar Christian Hoareau avatar David Simmer avatar  avatar  avatar  avatar Grant Callaghan avatar Hunter Leath avatar  avatar Chaitanya Mutyala avatar Robert LaFont, Jr avatar Chad Eubanks avatar Scott Behrens avatar Nag avatar Sargun Dhillon avatar Ehtsham Elahi avatar Stephani Bishop avatar Parth Santpurkar avatar  avatar James Cloos avatar Chris Kirk avatar Corey Grunewald avatar Joshua Godi avatar Ricky Gilbert avatar Andrew Jones avatar  avatar Ajit Koti avatar Mel avatar Archana Kumar avatar Tales Marchesan avatar Eric Chiang avatar Kruti Shah avatar William Thurston avatar Xavier Claessens avatar Adam Girton avatar Andy Swan avatar Giulio avatar Roberto Perez Alcolea avatar Angel Estrada avatar Rich Smith avatar Ashwin Kayyoor avatar Katherine Anderson avatar  avatar Nathan Cook avatar Oscar Martinez avatar Tom DeVoe avatar  avatar Hyunmin Kim avatar Bruce Wang avatar ajoshi avatar  avatar Vidhya Arvind avatar Bruce "Brutus" Curtis avatar Charles Zheng avatar Ethan Adams avatar  avatar Stan Kirdey avatar Chih-Wei Wu avatar  avatar Andrey Radchenko avatar Armando Magalhães avatar Donavan Fritz avatar Ian Stewart-Binks avatar Ben Duran avatar  avatar  avatar  avatar Tim Gasser avatar Timothy Ellison avatar leona avatar Marian Montagnino avatar Zile Liao avatar Sailesh Mukil avatar Briana Peterson avatar Akashdeep Goel avatar  avatar  avatar  avatar Neal avatar Chaela Womack avatar  avatar  avatar  avatar  avatar  avatar Hechao Li avatar Tejas Shikhare avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.