GithubHelp home page GithubHelp logo

claritycafe / maru Goto Github PK

View Code? Open in Web Editor NEW
20.0 3.0 1.0 23.55 MB

A Chromium OS distribution made with <3

License: MIT License

Shell 100.00%
chromiumos-overlay chromiumos gentoo-portage-overlay

maru's Introduction

Maru Logo

Project Maru (Working Title)

Project Maru is a Chromium OS distribution focusing on upstream support, while providing a secure and solid OS base for everyone, ranging from Linux enthusiasts to developers.

Like Chromium OS, it's straightforward, with an adequate amount of bells and whistles to get you going which is a solid browser experience.

The name

The name "Maru" is from Hanamaru Kunikida of Love Live Sunshine.

Disclaimer

We're not associated with MaruOS, and Maru is simply a working title while we're still asking the small community we have which should we name it later on.

Roadmap

  • πŸ‘ MAKE πŸ‘ IT πŸ‘ BUILD πŸ‘

  • work on driver support.

    • include Libinput support and add additional drivers.
  • Omaha Update server

    • This is intended for OTA updates. We want people to use Maru as a simple update.
  • Other architecture support

    • ARM64
      • May Range from Raspberry Pi 4, Udoo, etc.

Building Maru

You'll need to grab the entire Chromium OS Source code to build this.

The Easy way

Run unibuild.sh with the architecture of choice. Currently only amd64 and aarch64 are supported.

The Hard way

If that doesn't work, you'll need to read on to build manually:

Fetching depot_tools

To be able to pull the entire Chromium OS tree, we'll need to use Google's in-house tools for pulling the entire source.

$ sudo mkdir -p /usr/local/repo
$ sudo chmod 777 /usr/local/repo
$ cd /usr/local/repo
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH=/usr/local/repo/depot_tools:$PATH
$ umask 022

Prepare environment

let's go ahead and make a project folder, it should look like this.

$ mkdir -p $HOME/project/chromiumos-R74      # This is the directory to hold Chromium OS source code, name it according to the release you are going to build.
$ mkdir -p $HOME/project/overlays            # This is the directory to hold this repository.

Now, we're ready to pull the Chromium OS source code. You will need to authenticate yourself here before continuing.

But first we need to know which release you'd like to build via using git ls-remote

$ git ls-remote https://chromium.googlesource.com/a/chromiumos/manifest.git | grep release

Keep in mind you should be looking for release-Rxx-XXXXX.B, since these are the "stable" versions.

When you're done selecting what repo you need to use, go ahead and run the following commands

$ cd $HOME/project/chromiumos-R74
$ repo init -u https://chromium.googlesource.com/chromiumos/manifest.git --repo-url https://chromium.googlesource.com/external/repo.git -b release-R80-12739.B
$ repo sync -j8         # Raise this number if you have a fast Internet connection

Enabling Google Login

If you want to enable Google login in your build, make sure you have .googleapikeys in your $HOME. repo will know what to do with it.

.googleapikeys should look like the following:

'google_api_key': 'your api key',
'google_default_client_id': 'your client id',
'google_default_client_secret': 'your client secret',

Finally, head to this documentation to get an API key.

Prepare the Overlay

Finally, you need to copy this repo to src/overlays after cloning inside project/overlays.

$ git clone https://github.com/ClarityCafe/maru.git
$ cp -vRf ./overlay-maru-amd64 cros-source-clone-folder/src/overlays

Build the image

Once that's all done, all that its left to do is run a this and wait.

$ export BOARD=maru-amd64
$ cros_sdk -- setup_board --board=${BOARD}
$ cros_sdk -- ./build_packages --withtest --board=${BOARD}
$ cros_sdk -- ./build_image --board=${BOARD} base

The build system will make a chroot and build Chromium OS according to the Maru configuration. It should take less than 5 hours to build on a i7 with 8GB RAM, but it could be slower.

Once the build finishes, you can find your images at /project/chromiumos-R74/src/build/images/maru-amd64.

Installing the image

You can use dd in Linux or Rufus in DD mode on Windows to write the image to your USB.

Once the image finishes writing to a USB, boot it to your PC, and cross your fingers.

Contributing

Please read the Chromium OS Developer Guide to get yourself familiarized with how everything works.

Credits

  • arnoldthebat for some of the basis of this work.
  • the FlintOS team for the auto-expand-partition ebuild.
  • The rest of the Chromium OS team who has been really helpful with this, thank you! <3

maru's People

Contributors

sr229 avatar zvyn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

zvyn

maru's Issues

Some thoughts

Hi, first of all I wanted to congratulate and thank you guys for the project, it's pretty interesting, I just have some thoughts on it.
1ΒΊ Is there any reason why you're not building the Broadcom-Sta module ? I see you already have the overlay in place, I have a BCM4322 and would be helpfull.
2ΒΊ I am part of the Project Croissant team and we use some ChromiumOS distros to install ChromeOS on top (with the android container on top) and your distro could be a good option for it, we use something called SWTPM which emulates TPM chip and claims ownership of the device, for that to work, the kernel needs a module called Virtual TPM Proxy Driver (usually enabled with the line "CONFIG_TCG_VTPM_PROXY=m" inside the kernel config) and if you could add that would pretty cool.
3ΒΊ I think you should create a Telegram or Discord server where we could chat more easily and exchange some ideas.

Once again thanks for the project.

OEM Wallpaper not applying as it should

I wrote a ebuild for applying OEM wallpapers but it seems that it won't work. I don't know why but I haven't recieved a reply from the Chromium mailing list yet.

Crostini fails to pull

We've ecnountered issues pulling Crostini images from the overlay, even though we get reports that users can log in fine on the image. Will definitely need a lot of investigation why Crostini fails to load.

Move to AppVeyor

Unortunately, Azure CI wasn't up to task to build a whole OS like this, so we're putting the building to AppVeyor Linux instead.

Nvidia is not working as intended

I assigned Komachi for this since we'll need the proprietary Nvidia driver to make Nvidia people work, there's also hints of Nvidia contributing upstream via nouveau so we can ditch the ebuild when we see nouveau being ready.

Support for VM?

Does it supports running on Virtual Machines?
I'm using the pre-built image( got it Here ).
It boots to Grub, but no matter the option i select it completely hangs up.
Should i compile it from source instead(if yes any distro work or should i get a specific one)?

aarch64 support

We might need to support aarch64 since:

  • I might have a deathwish to buy a Raspberry Pi 4
  • Support ARM-based devices that may use this crappy board

Android Support (ARC++)

So far we're trying to get Android support working but it's a moving target since ARC++ has little to no documentation regarding how to run the Overlays. We'll probably reverse-engineer FydeOS to find out how they did it.

Continuing your work.

@ClarityCafe I have made my own ChromiumOS builds based on arnoldthebats overlays, which I can see you based yours on as well.
Codecs are broken in his releases as of V90, but I have fixed it, and my builds also have linux firmware like both of yours, as well as linux module support, and widevine in the lacros browser. I know that your overlay is GPL-3, but I still wanted to let you know as well as share about my builds. I will be using the wifi and ethernet ebuilds from yours, as well as adding the ARC use flags (still doesn't actually install ARC++ though), and adding some other drivers to make as usable a release as possible. Also of note is that mine are always tip-o-tree, and other than Arnolds daily builds (which are completely vanilla), there is no other place to get new CrOS builds. I also would like to share my own browser for linux that I'm working on, with beta releases available. You can read the readme to see what changes it has over vanilla chromium.
Here are the repos >
https://github.com/Alex313031/ChromiumOS
https://github.com/Alex313031/Thorium

Figure out model.yaml errors

In light of #18, we need to investigate this bug that prevents our build to run.

As far as we know, CrosConfig package is responsible for handling this. We're getting YAML errors but we don't know exactly where is wrong. If anyone's willing to debug, refer to cros-config-host package which is in the cros tree in platform2.

Omaha OTA

Seems its possible to do OTA by following this

I probably need donations so I can run smth like this.

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.