Coder Social home page Coder Social logo

cesarbr / knot-gateway-buildroot Goto Github PK

View Code? Open in Web Editor NEW
10.0 16.0 19.0 65.41 MB

KNOT Gateway Buildroot is part of KNOT project. This is the gateway (target Rpi hardware) software module for the KNoT platform.

License: Other

Makefile 73.58% Arc 0.04% Shell 6.86% Tcl 0.26% Batchfile 0.36% M4 0.08% C 9.71% Perl 0.98% C++ 1.24% Lex 0.16% Yacc 0.36% CMake 0.09% Python 5.11% Dockerfile 0.04% HTML 1.13%

knot-gateway-buildroot's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

knot-gateway-buildroot's Issues

Add CONTRIBUTING.md

Add the minimal requirements for contributors to know how to format commit messages, break PRs into small commits, etc.

As an example of things to clarify:

  • I've noticed that we changed from the BR format of showing where the changes were done. The mainline uses <dir>/<subdir>, we're using <dir>: <dir> (most of the times, at least).

Add tool to verify services health

The investigation of problems that appears on the gateway isn't an easy task since there are a lot of services integrated into it. The most common approach is checking the system log (by looking at the /var/log/messages file) and checking the service's logs individually by restarting them and sometimes changing their log configuration properties manually. Hence, despite having documentation describing each of these steps, it requires a certain level of technical knowledge causing this process to be almost impossible for new users.

Therefore, one solution to this could be creating a tool that generates a diagnostic report by looking for the service's logs and collecting other system's properties that can indicate the problem source.

'knot' user creation fails when other users are created after

When a new package (redis) was added to the system, it has created a linux user with the same uid used for the "knot" user. This made some processes that executed as 'knot' user to fail.

Setup

Steps to reproduce

  1. Run make menuconfig and select a package that create a new user (e.g. redis);
  2. Build the linux image;
  3. flash the SD card.

Expected result

All KNoT processes must be running as "knot" user.

Actual result

The webui and knot-fog aren't being started. Besides, the knotd and nrfd processes are running as "redis" user.

Possible solution

Instead of using a fixed value for the "knot" uid, it should be defined dynamically.

Broadcast IP and back-end Port through mDNS

As a developer, I'd like to expose my local IP and Port through multicast DNS allowing mobile clients to easily fetch the route to access the web UI backend to make requests about connected things or Open Thread configuration.

Investigate KNoT Fog/Edge requirements

As a platform developer, I want to have the necessary documentation so that I can develop the services that will compose the edge/fog infrastructure.

DoD:

  • Investigate the similar services of the main IoT platforms
  • Design initial architecture
  • Create spec components

Enable access control and authentication on MongoDB

The MongoDB is currently unprotected. In this way, if you access the mongo shell in your host machine using just the raspberry IP, you can operate on it and drop a database.

$ mongo <raspberry_ip>/knot_web
> db.dropDatabase()
> use knot_fog
> db.dropDatabase()

To solve this issue we need to follow the MongoDB Security Checklist, specially to enable the minimal security configuration: authentication and access control mechanisms.

Add apps service

As a platform developer, I want to have the users service integrated into the Buildroot.

  • Add package to BR

Problemas para build na imagem do gateway

Estou com problemas para criar a imagem do gateway. Fiz o processo descrito no arquivo instructions_to_build_gateway_image.txt (do zip knot_v01.00), alterando a linha BR2_GATEWAY_HARDWARE=configs/raspberrypi2_defconfig make knot_gateway para BR2_GATEWAY_HARDWARE=configs/raspberrypi3_defconfig make knot_gateway e fiz o make.

Depois desse processo, fiz o passo 4) do arquivo para executar o script create_boot_disk.sh. As ultimas linhas da execução desse script recebi o seguinte output.

Copying bootloader files...
dd: falhou em abrir 'output/images/boot.vfat': Arquivo ou diretório não encontrado
Copying root filesystem...
dd: falhou em abrir 'output/images/rootfs.ext4': Arquivo ou diretório não encontrado
resize2fs 1.42.13 (17-May-2015)
resize2fs: Bad magic number in super-block tentando abrir /dev/sdb2
Não se pôde encontrar superbloco de sistema válido.
Done!
Please remove the sdcard and boot the board.

Consequentemente, não consegui dar boot no cartão. Alguma sugestão?

Broadcast OT-setting through mDNS

As a developer, I'd like to expose OT settings through multicast DNS allowing mobile clients to fetch easily gateway's OT settings. If the gateway has been configured previously, the broadcasted information can be read as soon as the Mobile connects to the same sub-network of the gateways. The read information will be pushed to new devices (Things) using BLE.

Broadcasting OT settings is a security breach acceptable at this point considering that it provides better usability at the setup process.

Add KNoT Fog/Edge Computing

It's expected that we have a minimal fog/edge infrastructure at the end of this epic. The main features will be defined in the investigations.

Move KNoT files to its own company directory

As of now, there are a lot of changes done in files and folders that are not supposed to be changed, such as the Makefile.
It's recommended by buildroot documentation that if we create a new board, we do it in a specific folder.
To avoid conflicts when rebasing with future BR versions, I suggest the creation of boards/knot/ to have our boards, for now only raspberrypi (raspberrypi3).

Update README files

Output:
Updated and organized README file with instructions to build and flash KNoT Boards.

Add things service

As a platform developer, I want to have the things service integrated into the Buildroot. Moreover, I also want to investigate security issues related to the thing's token.

  • Add package to BR
  • Define how the thing's token will be treated by the platform

Define AMQP API

As a platform developer, I want to have a well-defined AMQP API so that I can know which messages should the services send or expect for.

  • Map operations to exchange and routing key names
  • Define exchange types
  • Create/Update documentation
  • Define error messages

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.