Table of Contents
About The Project
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
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
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
Installation
-
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
-
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
-
Docker Image build
$ sudo docker-compose build
-
Docker Container up
$ sudo docker-compose up
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
-
Create a new yocto project
Enter your project name and version, then click button
Wait for the project initialization to complete, it may take some time
-
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/.
Wait for the process to complete, and you will find the layer now is in the list
-
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
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
Roadmap
- Bitbake progress ui optimization
- Git clone task restart after failed
- MyImage
- Image build tools
- Image OTA support
- MyPakcage
- System-V support
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
croakexciting - [email protected]
Acknowledgments
The dianshao is mainly used to help you use yocto, so you need to know the basics of yocto