Coder Social home page Coder Social logo

terraos's Introduction

terraOS

Boot Linux-based operating systems from a RMA shim.

Image of terraOS bootloader

How does it work?

terraOS utilizes a bug in chromebook RMA shims, which are bootable recovery images that are used for running diagnostic utilities, to chainload regular Linux distros by replacing the rootfs. Replacing the rootfs entirely doesn't work however, since the RMA shim boots in an environment made specifically for those diagnostic utilities. terraOS is made to get around that.

How do I add my own distros?

You'll need to create a partition with the type chromeOS rootfs (3cb8e202-3b7e-47dd-8a3c-7ff2a13cfcec) and bootstrap your distro in the root of an ext4 filesystem on that partition. Place any squashfs files in the root of the first partition.

How do I use it?

  1. Clone this repo.
  2. Create a build directory.
  3. Run bash ../scripts/build_stage1.sh <defconfig>
    1. Use terraos as the defconfig if building for x86_64 chromebooks.
    2. Use terraos_jacuzzi as the defconfig if building for jacuzzi board chromebooks. Support for jacuzzi board chromebooks is experimental and may not work, however.
  4. Run bash ../scripts/build_aur_packages.sh
  5. Run bash ../scripts/build_all.sh <shim.bin> <board_recovery.bin> <reven_recovery.bin> replacing <shim.bin> with the path to a shim for your board, <board_recovery.bin> with the path to a recovery image for your board, and <reven_recovery.bin> with the path to a chromeOS flex recovery of the same version.

This will place a built bootloader image, squashfs and tarballs of the arch rootfs, a bootloader image with the arch rootfs, a bootloader image with terraOS chromeOS, and a bootloader image with both the arch rootfs and terraOS chromeOS in the build directory.

The default arch rootfs user is terraos and its password is terraos.

How do I install to internal storage?

  1. Boot into terraOS and copy over the image you used to flash your terraOS drive.
  2. Use GParted or sudo fdisk -l to find your internal storage. Replace /dev/mmcblkX in the rest of the steps with the internal storage device.
  3. Run sudo dd if=<image> of=/dev/mmcblkX status=progress bs=16M oflag=direct to write the image to the internal storage. Replace <image> with the path to the image you copied.

Alternatively you can manually create a chromeOS rootfs type partition via parted or fdisk, format as ext4, and copy over the rootfs.

FAQ

Can I automatically boot into a partition?

Yes, edit /sbin/init on the terraOS bootloader partition and pass terraOS the arguments autoboot <partnum> where <partnum> is a partition number on the same disk as terraOS.

What doesn't work?

  • Deep sleep (kernel issue)
  • Swap (disabled in kernel)
  • Audio on dedede (firmware bug)

Can I use a different distro?

Yes, you will need to either use a non-systemd distro or manually compile systemd with the chromiumos patches.

terraos's People

Contributors

r58playz avatar enterthevoid-x86 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.