An Embedded Linux Project Build and Compile Tool -- An Bitbake UI Extension

Related tags

Miscellaneousdianshao
Overview

Logo

Dianshao

An Embedded Linux Project Build and Compile Tool

中文说明



Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

product-screenshot

The Dianshao is an embedded linux project build and compile tool, it is developed based on Bitbake and Yocto project. It can lower the threshold of using Bitbake and provide an interactive web UI to enhance the experience of using Bitbake

Here is why:

  • Many developers are not interested in embedded bottom-level porting and development, and hope to focus on application development

  • Embedded projects are too scattered, and there is no good management tool to help developers manage their projects in a elegant way

  • Bitbake is an awesome project, but his learning curve is steep and not easy to use. So I developed dianshao to help developers use bitbake more easily

(back to top)

Built With

Dianshao is mainly developed based on Django framework, it operates bitbake through asynchronous task queue supported by Celery + Redis and uses Postgresql as database.

For reliable and rapid deployment, Dianshao and related dependencies run in the docker containers

(back to top)

Getting Started

Since the program runs in a docker container, installation is pretty easy

Prerequisites

Currently, the Dinashao has been tested on windows (Win10 & Win11) and linux (Ubuntu & Fedora & centos) host. You can choose you preferred operating system as the docker host

Please Install docker & docker-compose on your host according to the official documentation

docker install doc

docker-compose install doc

Installation

  1. Clone the repo

    Using on Linux

    $ git clone https://github.com/croakexciting/dianshao.git && cd ./dianshao

    Using on Windows

    $ git clone https://github.com/croakexciting/dianshao.git -c core.autocrlf=false
    
    $ cd ./dianshao
  2. Set Your Yocto Project Path

    $ export DIANSHAO_YOCTO_PROJECT_PATH="your yocto project path"

    notes:If using on Linux, please don't use dianshao in root and make sure the folder permissions is 1000:1000

    $ sudo chown -R 1000:1000 $DIANSHAO_YOCTO_PROJECT_PATH

    notes:If using on windows, please enable the folder case sensitive option

    $ fsutil.exe file setCaseSensitiveInfo $DIANSHAO_YOCTO_PROJECT_PATH enable
  3. Docker Image build

    $ sudo docker-compose build
  4. Docker Container up

    $ sudo docker-compose up

(back to top)

Usage

In general, the dianshao is an extension of Bitbake, which aims to help developers to develop yocto projects more conveniently.

If you are familiar with yocto, you will master dianshao quickly. If you are a beginner, it doesn’t matter, Dianshao will help you quickly understand and learn to develop yocto projects

Quick Start

  1. Create a new yocto project

    Enter your project name and version, then click button

    create-project-screenshot

    Wait for the project initialization to complete, it may take some time

    project-initial-screenshot

    If the initialization is successful, the page is as follow success-initial-screenshot

  2. Add other layers you need

    The initialized project only contains the core layer, if you need to add other layers, please click Add Therd-Party MetaLayer button

    Enter the layer name and choose the import method, the remote means that the git repo does not exist in the main directory, and the local means the opposite. If you choose remote, you need to input layer url. the sub means that the layer you want to import is located in a subdirectory of a git repo, such as meta-openembedded/meta-oe/.

    addlayer-screenshot

    Wait for the process to complete, and you will find the layer now is in the list

    after-addlayer-screenshot

  3. Test bitbake

    You can bitbake anything in bitbake command page, you can use this page to test how to operate bitbake. The current UI is not good enough, I will continue to optimize it

    bitbake-test-screenshot

Develop MyMeta

Danshao provides a range of tools to help you develop your own embedded projects, including customizing your device, your images, and packages that you develop yourself or want to introduce additionally

Danshao achieves the above functions by helping you to automatically generate yocto bbfiles, machine, distro and imagefiles. See the documentation (coming soon) for specific instructions

Open your yocto project in IDE

The yocto project generate by dianshao is located at ./yocto_project, you can open the yocto project in IDE as normal

Development in the command line

If you want to execute the bitbake command directly using the command line, Please use the following command to enter inside the container, and then use the command line

$ docker exec -it dianshao-yocto bash
$ cd ../yocto

(back to top)

Roadmap

  • Bitbake progress ui optimization
  • Git clone task restart after failed
  • MyImage
    • Image build tools
    • Image OTA support
  • MyPakcage
    • System-V support

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

croakexciting - [email protected]

(back to top)

Acknowledgments

The dianshao is mainly used to help you use yocto, so you need to know the basics of yocto

(back to top)

Project based on pure python with OOP

Object oriented programming review Object oriented programming (OOP) is among the most used programming paradigms (if not the most common) in the indu

Facundo Abrahan Cerimeli 1 May 09, 2022
A Notifier Program that Notifies you to relax your eyes Every 15 Minutes👀

Every 15 Minutes is an application that is used to Notify you to Relax your eyes Every 15 Minutes, This is fully made with Python and also with the us

FSP Gang s' Admin 1 Nov 03, 2021
Lags valorant servers by rapidly picking up and throwing shorties.

Lags valorant servers by rapidly picking up and throwing shorties.

Eric Still 9 Dec 30, 2021
This app converts an pdf file into the audio file.

PDF-to-Audio This app takes an pdf as an input and convert it into audio, and the library text-to-speech starts speaking the preffered page given in t

Ojas Barawal 3 Aug 04, 2021
Backtest framework based on DAGs

MultitaskQueue It's a simple framework based on three composed concepts: Task: A task is the smaller unit of execution or simple a node in the DAG, ev

4 Dec 09, 2021
A function decorator for enforcing function signatures

A function decorator for enforcing function signatures

Emmanuel I. Obi 0 Dec 08, 2021
Clock in automatically in SCU.

auto_clock_in Clock in automatically in SCU. Features send logs to Telegram bot How to use? pip install -r requirements.txt () edit user_list, token_A

2 Dec 13, 2021
Extremely unfinished animation toolset for Blender 3.

AbraTools Alpha IMPORTANT: Code is a mess. Be careful using it in production. Bug reports, feature requests and PRs are appreciated. Download AbraTool

Abra 15 Dec 17, 2022
APRS Track Direct is a collection of tools that can be used to run an APRS website

APRS Track Direct APRS Track Direct is a collection of tools that can be used to run an APRS website. You can use data from APRS-IS, CWOP-IS, OGN, HUB

Per Qvarforth 42 Dec 29, 2022
PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld.

PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld. The grid is partitioned into several rooms, and each room contains a plate and a clos

Autonomous Agents Research Group (University of Edinburgh) 6 Dec 03, 2022
A simple Programming Language

R.S.O.C. A custom built programming language About The Project R.S.O.C. is a custom built programming language very similar to a low-level 8085 progra

Ravi Maurya 17 Sep 13, 2022
This project intends to take the user's CEP (brazilian adress code) and return the local in which the CEP is placed.

This project aims to simply return the CEP's (the brazilian resident adress code) User of the application. The project uses a request and passes on to

Daniel Soares Saldanha 4 Nov 17, 2021
Youtube Channel Website

Videos-By-Sanjeevi Youtube Channel Website YouTube Channel Website Features: Free Hosting using GitHub Pages and open-source code base in GitHub. It c

Sanjeevi Subramani 5 Mar 26, 2022
A streaming animation of all the edits to a given Wikipedia page.

WikiFilms! What is it? A streaming animation of all the edits to a given Wikipedia page. How it works. It works by creating a "virtual camera," which

Tal Zaken 2 Jan 18, 2022
Cross-platform .NET Core pre-commit hooks

dotnet-core-pre-commit Cross-platform .NET Core pre-commit hooks How to use Add this to your .pre-commit-config.yaml - repo: https://github.com/juan

Juan Odicio 5 Jul 20, 2021
Python script to autodetect a base set of swiftlint rules.

swiftlint-autodetect Python script to autodetect a base set of swiftlint rules. Installation brew install pipx

Jonathan Wight 24 Sep 20, 2022
A project for the Qvault Hackathon, 2022-01-17

musical-octo-engine Steps to run brew install python-tk brew install portaudio

Erik Kristofer Anderson 2 May 17, 2022
The program calculates the BMI of people

Programmieren Einleitung: Das Programm berechnet den BMI von Menschen. Es ist sehr einfach zu handhaben, so können alle Menschen ihren BMI berechnen.

2 Dec 16, 2021
Palestra sobre desenvolvimento seguro de imagens e containers para a DockerCon 2021 sala Brasil

Segurança de imagens e containers direto na pipeline Palestra sobre desenvolvimento seguro de imagens e containers para a DockerCon 2021 sala Brasil.

Fernando Guisso 10 May 19, 2022
Demo of a WAM Prolog implementation in Python

Prol: WAM demo This is a simplified Warren Abstract Machine (WAM) implementation for Prolog, that showcases the main instructions, compiling, register

Bruno Kim Medeiros Cesar 62 Dec 26, 2022