Giter Site home page Giter Site logo

seanpm2001 / berryboot Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 3.93 MB

🫐️🍓️🥾️ BerryBoot is a 3D, mass partition bootloader for the Raspberry Pi.

Home Page: https://github.com/seanpm2001/BerryBoot/

License: GNU General Public License v3.0

HTML 0.03% C 24.99% Berry 12.50% Python 49.98% Assembly 12.50%
assembly-lang assembly-language berry-lang berry-language berryboot bootloader c-lang c-language gpl3 gplv3

berryboot's Introduction


BerryBoot

BerryBoot is an advanced GUI bootloader for the Raspberry Pi that is designed for heavily partitioned devices (up to 512 partitions) with a cool 3D dimensional interactive berry, whose seeds each represent a partition.


Design goals

  • Keep the entire distributed bootloader under 1,000,001 bytes (1.00 megabyte)
  • Enable 3D graphics at the boot level
  • Make the design resemble a raspberry

GUI

A 3D raspberry, with a different operating system partition on each seed

Background

Default: Green gradient

Controls

Controls: Up arrow key, Down arrow key, Left arrow key, Right arrow key, ENTER key, F8 key

The berry is to move like a globe.

The leaf

Just a texture piece, make sure it isn't covering the seeds

The seeds

Once a seed is hovered over, information on the detected partition will display to either the right, left, top, or bottom of the screen (depending on the preference in the configuration file)

Extras

See cosmetics/tweaks


Configuration tool

Work in progress (a desktop application for the Raspberry Pi that initializes the bootloader)


Possible problems with the concept

  • It may be too advanced of a GUI at the pre-boot level
  • Support for many partitions required for adequate interface
    • Solution: Græy out all seeds that don't contain data

Render all partitions upon writing with the configuration tool, non-existant partitions are to be græyed out (not a working solution, as duplicates will show up, and overflow the seed limit of the berry)

Multiple berries?

A configuration for a second Raspberry Pi under the same device (not feasible)


Languages

BerryBoot is written in:

  • Assembly, C (bootloader)
  • Python, Berry (configuration tool)

FAQ

Q: Why not just make a GRUB modification?

A: Some features aren't possible with GRUB, such as 3D animation. BerryBoot is its own GRUB, although it will be a heavy bootloader.

Q: Why the longer startup time?

A: This is a very advanced bootloader, and the design goal makes the longer startup time worth it for the GUI improvement. If not, you don't need this bootloader. Just use the default one that comes with your Raspberry Pi installation if you don't want to wait longer for each startup.


File version: 1 (2023, Sunday, March 12th at 6:40 pm PST)


berryboot's People

Contributors

seanpm2001 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

seanwallawalla

berryboot's Issues

Info

Prerequisites

  • I verified that this is not an existing issue
  • This is not a question, poll, or discussion
  • I checked the documentation to understand that the issue I report is not a normal behavior

Description

Hello

Is that the normal berryboot bootloader an updated version??

From

https://github.com/maxnet/berryboot

Thank you

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.