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)

Simple python script for AD enumeration

AutoAD - Simple python script for AD enumeration This tool was created on my spare time to help fellow penetration testers in automating the basic enu

Mohammad Arman 28 Jun 21, 2022
Labspy06 With Python

Labspy06 Profil Nama : Nafal mumtaz fuadi Nim : 312110457 Kelas : T1.21.A.2 Latihan 1 Ubahlah kode dibawah ini menjadi fungsi menggunakan lambda impor

Mas Nafal 1 Dec 12, 2021
Addon to give a keybind to automatically enable contact shadows on all lights in a scene

3-2-1 Contact(Shadow) An easy way to let you enable contact shadows on all your lights, because Blender doesn't enable it by default, and doesn't give

TDV Alinsa 3 Feb 02, 2022
使用京东cookie一键生成所有退会链接

JDMemberCloseLinks 本项目旨在使用京东cookie一键生成所有退会链接

hyzaw 68 Jun 10, 2022
Python for Microscopists and other image processing enthusiasts

The YouTube channel associated with this code walks you through the entire process of learning to code in Python; all the way from basics to advanced machine learning and deep learning.

Dr. Sreenivas Bhattiprolu 2.3k Jan 01, 2023
Windows Task Manager with special features, written in Python.

Killer That damn Chrome ⬇ Download here · 👋 Join our discord Tired of trying to kill processes with the default Windows Task Manager? Selecting one b

Nathan Araújo 49 Jan 03, 2023
Simple Crud Python vs MySQL

Simple Crud Python vs MySQL The idea came when I was studying MySQ... A desire to create a python program that can give access to a "localhost" databa

Lucas 1 Jan 21, 2022
A small project of two newbies, who wanted to learn something about Python language programming, via fun way.

HaveFun A small project of two newbies, who wanted to learn something about Python language programming, via fun way. What's this project about? Well.

Patryk Sobczak 2 Nov 24, 2021
It's like Forth but in Python

It's like Forth but written in Python. But I don't actually know for sure since I never programmed in Forth, I only heard that it's some sort of stack-based programming language. Porth is also stack-

Tsoding 619 Dec 21, 2022
This project recreates the R-based RCy3 Cytoscape Automation library as a Python package.

Python library for calling Cytoscape Automation via CyREST

Cytoscape Consortium 40 Dec 22, 2022
Data-driven Computer Science UoB

COMS20011_2021 Data-driven Computer Science UoB Staff Laurence Aitchison [ 6 May 16, 2022

Library for Memory Trace Statistics in Python

Memory Search Library for Memory Trace Statistics in Python The library uses tracemalloc as a core module, which is why it is only available for Pytho

Memory Search 1 Dec 20, 2021
Windows symbol tables for Volatility 3

Windows Symbol Tables for Volatility 3 This repository is the Windows Symbol Table storage for Volatility 3. How to Use $ git clone https://github.com

JPCERT Coordination Center 31 Dec 25, 2022
NORETURN is an esoteric programming language, based around the idea of not going back

NORETURN NORETURN is an esoteric programming language, based around the idea of not going back Concept Program coded in noreturn runs over one array,

1 Dec 15, 2021
Grimoire is a Python library for creating interactive fiction as hyperlinked html.

Grimoire Grimoire is a Python library for creating interactive fiction as hyperlinked html. Installation pip install grimoire-if Usage Check out the

Scott Russell 5 Oct 11, 2022
Monitor the New World login queue and notify when it is about to finish

nwwatch - Monitor the New World queue and notify when it is about to finish Getting Started install python 3.7+ navigate to the directory where you un

14 Jan 10, 2022
Create standalone, installable R Shiny apps using Electron

WARNING This is still very much a work in progress and nothing can be assumed stable in any way Temp notes: Two types of created installer, based on w

Chase Clark 5 Dec 24, 2021
Python: Wrangled and unpivoted gaming datasets. Tableau: created dashboards - Market Beacon and Player’s Shopping Guide.

Created two information products for GameStop. Using Python, wrangled and unpivoted datasets, and created Tableau dashboards.

Zinaida Dvoskina 2 Jan 29, 2022
Pyfetch - Simple Fetch written in Python

pyfetch Simple Fetch written in Python Screenshots Install Clone this repository

2 Sep 02, 2022
PaintPrint - This module can colorize any text in your terminal

PaintPrint This module can colorize any text in your terminal Author: tankalxat3

Alexander Podstrechnyy 2 Feb 17, 2022