GithubHelp home page GithubHelp logo

classicvalues / chromiumos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alex313031/thoriumos

0.0 1.0 0.0 9.19 MB

ChromiumOS builds with x264/H.264 codecs, Kernel 5.4, Linux firmware/modules support, Intel microcode, and extra packages.

Home Page: https://github.com/Alex313031/ChromiumOS

License: Other

Shell 99.93% Python 0.07%

chromiumos's Introduction

ChromiumOS

ChromiumOS builds with x264(H.264) codecs, Kernel 5.4, Linux firmware/modules support, Intel microcode, and extra packages.

  – Inspired by and based off of ArnoldTheBat's builds which can be downloaded here > https://arnoldthebat.co.uk/wordpress/
   - Also some code from FydeOS > https://github.com/FydeOS

Here is Arnold's source code which this project is based on > https://github.com/arnoldthebat/chromiumos - if you don't know how to work with these overlays, I invite you to learn, but one can just download the premade image in releases.

Installing

Follow https://chromium.googlesource.com/chromiumos/docs/+/HEAD/developer_guide.md#installing-your-chromium-os-image-to-your-hard-disk However when running /usr/sbin/chromeos-install append --dst /dev/sdxx, where sdx is your hard drive i.e. sda1. If you built your own image, API Keys will be needed to sign in. (See below.)

Building

To start building > https://chromium.googlesource.com/chromiumos/docs/+/HEAD/developer_guide.md
About overlays > https://www.chromium.org/chromium-os/how-tos-and-troubleshooting/working-with-your-overlay-faq
Note that it is best if depot_tools, chromium, and chromiumos are all in $HOME. I don't know where you will put these dirs, so I just prefix things below with //.

The files here can be copied in place on top of overlay-amd46-generic in //chromiumos/src/overlays/overlay-amd64-generic.

To build with x264 and the extra packages, you must also

  • Download chromium source code > https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/linux/build_instructions.md
  • Copy the .gclient file to the chromium source directory (//chromium not //chromium/src/)
  • Go to //chromium/src/ and run git checkout -f origin/main, then git rebase-update, then git fetch --tags, then gclient sync --with_branch_heads --with_tags -f -R -D # This updates and syncs everything needed to build Chromium for CrOS.
  • Next, go to //chromiumos/src/third_party/chromiumos-overlay/chromeos-base/chromeos-chrome/ and note the version in the .ebuild file (not the one with 9999 in its name) # This will be used in the next step to use the proper chromium version, which is usually slightly behind tip-o-tree for CrOS.
  • Go back to //chromium/src and run git checkout tags/98.0.4729.0 # Substituting for the actual version number you got before.
  • Copy the BUILD.gn file to //chromium/src/build/config/compiler/ and overwrite the one in there.
  • Enter the CrOS SDK with cros_sdk --chrome_root=/path/to/chromium # Path should be absolute path, i.e. /home/alex/chromium/
  • Run (inside cros_sdk) the export commands in the exports file.
  • Run (inside cros_sdk) the emerge commands also in the exports file.
  • When running './build_packages' append --nowithdebug --nowithautotest
      - This builds chromeos-base/chrome (Chromium) locally instead of downloading prebuilt binaries from google storage, and excludes debug stuff.
  • To build the disk image, use ./build_image --board=${BOARD} --noenable_rootfs_verification dev
  • NEW NOTE - My releases now have API keys baked in, but follow below if you are building for yourself.
  • NOTE: To log in, API Keys are needed. Follow > https://www.chromium.org/developers/how-tos/api-keys
       - Sample .googleapikeys and chrome_dev.conf files are provided. Putting your API Keys into the .googleapikeys file and putting the file in your home directory will bake them into the build, otherwise (and when using my releases), after login press Ctrl+Alt+F2 to get to a shell, type chronos as the user name, then type sudo mount -o rw,remount / to mount the RootFS as read/write, then edit /etc/chrome_dev.conf with sudo nano /etc/chrome_dev.conf, modeling it after the sample, but actually adding your API Key info into it. To get back to the GUI, press Ctrl+Alt+F1, and reboot to take effect. As per the API keys document above, you also have to add your Google Account to https://groups.google.com/u/1/a/chromium.org/g/google-browser-signin-testaccounts. It used to not be this way, until March 15, 2021 when Google vindictively restricted API Keys as per > https://blog.chromium.org/2021/01/limiting-private-api-availability-in.html, much to the displeasure of many developers and linux distributions. Unfortunately, to enable sync in Chromium on desktop and indeed to sign in at all on ChromiumOS, API Keys are needed. Public ones used to be available, but now private ones are needed, and I can't just share my own, because there is a quota on their usage to prevent wide distribution. If I were to do that, after just a couple of people installing and signing in on my builds, the servers would refuse any more requests. It is annoying and more work, I know, and might dissuade newbies from trying ChromiumOS, but there is no way around this.
  • To use Crostini, disable the Crostini-Use-DLC flag in chrome://flags and reboot.

The .7z files in Releases contain chromiumos_image.bin which can be flashed to a USB Drive with https://www.balena.io/etcher/, dd, or cros_flash and booted on most processors supporting SSE3 or later. NOTE: NVidia is not supported. (yet)

chromiumos's People

Contributors

alex313031 avatar

Watchers

 avatar

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.