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)

Badge-Link-Creater 'For more beautiful profiles.'

Badge-Link-Creater 'For more beautiful profiles.' Ready Badges Prepares the codes of the previously prepared badges for you. Note Click here for more

Mücahit Gündüz 9 Oct 19, 2022
Assembly example for CadQuery

Spindle and vacuum attachment This is a model of the vacuum attachment for my Workbee CNC router. There is a mist spray coming from the left hand side

Marcus Boyd 20 Sep 16, 2022
A simple python project that can find Tangkeke in a given image.

A simple python project that can find Tangkeke in a given image. Make the real Tangkeke image as a kernel to convolute the target image. The area wher

张志衡 1 Dec 08, 2021
Open source home automation that puts local control and privacy first

Home Assistant Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiast

Home Assistant 57k Jan 02, 2023
Statistics Calculator module for all types of Stats calculations.

Statistics-Calculator This Calculator user the formulas and methods to find the statistical values listed. Statistics Calculator module for all types

2 May 29, 2022
Python-Kite: Simple python code to make kite pattern

Python-Kite Simple python code to make kite pattern. Getting Started These instr

Anoint 0 Mar 22, 2022
Multiple GNOME terminals in one window

Terminator by Chris Jones [email protected] and others. Description Terminator was

GNOME Terminator 1.5k Jan 01, 2023
Mangá downloader (para leitura offline) voltado para sites e scans brasileiros.

yonde! yonde! (読んで!) é um mangá downloader (para leitura offline) voltado para sites e scans brasileiros. Também permite que você converta os capítulo

Yonde 8 Nov 28, 2021
Thumbor-bootcamp - learning and contribution experience with ❤️ and 🤗 from the thumbor team

Thumbor-bootcamp - learning and contribution experience with ❤️ and 🤗 from the thumbor team

Thumbor (by @globocom) 9 Jul 11, 2022
Problem statements on System Design and Software Architecture as part of Arpit's System Design Masterclass

Problem statements on System Design and Software Architecture as part of Arpit's System Design Masterclass

Relog 1.1k Jan 04, 2023
Team collaborative evaluation tracker.

Team collaborative evaluation tracker.

2 Dec 19, 2021
Dungeon Dice Rolls is an aplication that the user can roll dices (d4, d6, d8, d10, d12, d20 and d100) and store the results in one of the 6 arrays.

Dungeon Dice Rolls is an aplication that the user can roll dices (d4, d6, d8, d10, d12, d20 and d100) and store the results in one of the 6 arrays.

Bracero 1 Dec 31, 2021
A parallel branch-and-bound engine for Python.

pybnb A parallel branch-and-bound engine for Python. This software is copyright (c) by Gabriel A. Hackebeil (gabe.hacke

Gabriel Hackebeil 52 Nov 12, 2022
Python communism - A module for initiating the communist revolution in each of our python modules

Python communist revolution A man once said to abolish the classes or something

758 Jan 03, 2023
Terminal compatible with ansi-bbs. Meant to be a prototype, but published because why not.

pybbsterm: Terminal emulator for calling BBSs. Use cases (non-exhaustive) Explore terminal protocols. Connect to BBSs. Highlights Python 3.8+ code. Bu

Roc Vallès i Domènech 9 Apr 29, 2022
A Lite Package focuses on making overwrite and mending functions easier and more flexible.

Overwrite Make Overwrite More flexible In Python A Lite Package focuses on making overwrite and mending functions easier and more flexible. Certain Me

2 Jun 15, 2022
Safe temperature monitor for baby's room. Made for Raspberry Pi Pico.

Baby Safe Temperature Monitor This project is meant to build a temperature safety monitor for a baby or small child's room. Studies have shown the ris

Jeff Geerling 72 Oct 09, 2022
Rufus port to linux, writed on Python3

Rufus-for-Linux Rufus port to linux, writed on Python3 Программа будет иметь тот же интерфейс что и оригинал, и тот же функционал. Программа создается

6 Jan 07, 2022
Sodium is a general purpose programming language which is instruction-oriented

Sodium is a general purpose programming language which is instruction-oriented (a new programming concept that we are developing and devising)

Satin Wuker 22 Jan 11, 2022
Iss-tracker - ISS tracking script in python using NASA's API

ISS Tracker Tracking International Space Station using NASA's API and plotting i

Partho 9 Nov 29, 2022